Patch Name           Files           Date     Submittor     OS    Summary                                                

Variable not being   ospf_init.c     10-24-95 Phuong Thanh  All   In OSPF structure there is a variable intf_offset is   
reset                                         Nguyen              used to prevent the timers to be fired at the same     
                                                                  time. This vaiable is increased when                   
                                                                  ospf_interface_init is called and never be reset as    
                                                                  long as OSPF is stay up. Full Description              
                                                                                                                         

Couple of fixes      ospf_init.c     11-20-95 Acee Lindem   All   2 fixes.                                               
                     parser.y                                                                                            
                                                                  1. Ospf.intf_offset increases every time an interface  
                                                                  goes up and down.                                      
                                                                                                                         
                                                                  2. Typo in parser.y. Full Description                  
                                                                                                                         

Efficiency           rt_mib.c        11-30-95 Curt Conrad   All   Allow gated to respond much more efficiently to a      
improvement for                                                   request for the size of the IP forwarding table. The   
ipForwardNumber in                                                old code in o_rt_lookup() and o_ip_route_match()       
gated-R3_5_Beta                                                   counts the number of active routes as each SNMP        
                                                                  request is received; the new code uses a pre-existing  
                                                                  counter in the (predominate) case when only one        
                                                                  gateway is installed in the kernel per destination.    
                                                                  Full Description                                       
                                                                                                                         

Kernel remnant fix   krt.c           11-30-95 Curt Conrad   All   Fix to eliminate warning messages about remnants for   
for                  krt_rt_sock.c                                point-to-point interfaces. Full Description            
gated-R3_5Beta_1                                                                                                         
                                                                                                                         
                                                                                                                         

Missing  sockaddr    sockaddr.c      11-30-95 Curt Conrad   All   Fix to strcmp in sockaddr.c Full Description           
fix in                                                                                                                   
gated-R3_5Beta1                                                                                                          

aspath.c and         aspath.c        12-1-95  Dennis        All   I have included diffs below with the AS_PATH SEQUENCE  
generate routes                               Ferguson            fix by Dennis (already in alpha 11), and fixes for     
                                                                  "generate" routes in aspath_aggregate_changed().       
                                                                  without these fixes, generated defaults may not be     
                                                                  exportable to certain protocols (BGP), and may result  
                                                                  in gated cores.                                        
                                                                                                                         
                                                                  The assert() verifies that if an aggregate routes has  
                                                                  no contributors, then the aggregate head does not      
                                                                  have an AS path list. I know that an assert() in a     
                                                                  "patch" may be risky.                                  
                                                                                                                         
                                                                  The final diff lines ensure that if the AS_PATH of     
                                                                  the primary contributor to a generate route has        
                                                                  changed, or if there are no longer any contributors,   
                                                                  then the  RTAHF_ASPCHANGED flag is set. This ensures   
                                                                  that new generated routes are assigned AS_PATHs, and   
                                                                  that former generated routes lose their AS_PATHs.      
                                                                  See aspath_do_aggregation() for further details.       
                                                                  Full Description                                       
                                                                                                                         

rt_aggregrate.c and  rt_aggregrate.c 12-1-95  Dennis        All   3 fixes for generate and aggregrate routes.            
more                                          Ferguson                                                                   
generate/aggregrate                                               1. The first fix ensures that generated routes with    
fixes                                                             no contributors are treated as if they have no         
                                                                  gateways (for correct deletion).                       
                                                                                                                         
                                                                  2. The second fix ensures that the new AS_PATH is not  
                                                                  considered when a contributor is removed from an       
                                                                  aggregate. The third fix ensures that the old AS_PATH  
                                                                  is not considered when a contributor is added to an    
                                                                  aggregate.                                             
                                                                                                                         
                                                                  3. The second and third fixes fix gated cores with     
                                                                  overlapping aggregates -- aspath_aggregate_changed()   
                                                                  updating refcounts for irrelevent AS_PATHs in AS_PATH  
                                                                  list processing. See aspath.c.  Full Description       
                                                                                                                         

SNMP get-next        bgp_mib.c       1-10-96  Acee Lindem   All   Fixes a problem with an SNMP get-next accessing the    
accessing                                                         bgpPeerTable. The cached entry is not necessarily the  
bgpPeerTable                                                      correct one for a get-next if the new BGP peers are    
                                                                  added - hence, the cache must be cleared. I also       
                                                                  removed a superfluous if clause.                       
                                                                  Full Description                                       
                                                                                                                         

Remove               icmp.c          1-12-96  Acee Lindem   All   The ICMP_NO_HEADER definition is broken and should be  
ICMP_NOIP_HEADER                                                  removed. Full Description                              
definition.                                                                                                              
                                                                                                                         

Fixes for minor      ospf_tqhandle.c 1-12-96  Jeong S. Lee  All   OSPF bad checksum assert in dbage(). Full Description  
OSPF trace bugs                                                                                                          
                                                                                                                         
                                                                                                                         

A fix for potential  rt_aggregrate.c 1-12-96  Jeong S. Lee  All   The rt_aggregate_rtparms structure is shared by the    
reconfig core for                                                 rt_aggregate_flash() and rt_aggregate_reinit()         
aggregrate/generate                                               routines to add aggregate/generate routes. The         
                                                                  structure is initialized in rt_aggregate_init(),       
                                                                  which is only called from rt_family_init(), which is   
                                                                  called only once at startup. If there are stale        
                                                                  rt_routers in the structure (and rt_n_gw > 0), then a  
                                                                  new aggregate/generate route at reconfig time can      
                                                                  cause a gated core.                                    
                                                                                                                         
                                                                  The fix is to clear the structure on each call to      
                                                                  rt_aggregate_reinit() (i.e. at startup and each        
                                                                  reconfig). One might consider removing the structure   
                                                                  initialization out of rt_aggregate_init(), but I       
                                                                  didn't. Full Description                               
                                                                                                                         

A fix for aspath     aspath.c        1-12-96  Jeong S. Lee  All   The following fix corrects the one case in which the   
refcounts and                                                     function aspath_do_aggregation() does not increment    
aggregrate generate                                               the refcount of the aspath that it returns. Note that  
routes                                                            the only routine that calls this function,             
                                                                  rt_aggregate_flash(), will always decrement the        
                                                                  refcount of any aspath returned from                   
                                                                  aspath_do_aggregation(). Once the aspath refcount is   
                                                                  wrong, an eventual flush of routes will cause a        
                                                                  certain core dump. Full Description                    
                                                                                                                         

Fixes for OSPF       ospf_spf_leaves 1-12-96  Jeong S. Lee  All   Ensure that the lsdb_border pointer is cleared for     
loops with           .c                                           SUM_NETs, SUM_ASBs, and ASEs when the ABR/ASBR is not  
SUM_NETs, SUM_ASBs,                                               "active". Otherwise, inactive ABR/ASBRs can be freed   
and ASEs                                                          and re-allocated to other ABR/ASBRs, which can easily  
                                                                  cause routing loops. In addition, since the            
                                                                  lsdb_route and lsdb_ab_rtr pointers are unioned, an    
                                                                  lsdb with a route may be confused for an active ABR    
                                                                  and cause a core. Full Description                     
                                                                                                                         

Some bug fixes in    ospf_monitor.c  2-29-96  Noriko        All   Three gated bugs.                                      
gated-R-3.5Beta      ospf_build_ls.c          Katayama                                                                   
                                                                  1. When the specified filename over than 5 characters  
                     ospf_rxpkt.c                                 in ospf_monitor 'f'  sub-command, this command does    
                                                                  not work. Because it failed in setting the specified   
                                                                  finename into work space due to buffer size shortage.  
                                                                                                                         
                                                                   2. In RFC1583 "12.4.3. Summary links" Page-120/121,   
                                                                  there is the following  statements:  Else, if the      
                                                                  destination of this route is an AS boundary router,    
                                                                  generate a Type 4 link state advertisement for the     
                                                                  destination, with Link State ID equal to the AS        
                                                                  boundary router's Router ID and metric equal to the    
                                                                  routing table entry's cost. These advertisements       
                                                                  should  not be generated if Area A has been            
                                                                  configured as a stub area.                             
                                                                                                                         
                                                                  3. In RFC1583 "10.7. Receiving Link State Request      
                                                                  Packets" Page-89, there is the following statements:   
                                                                  This section explains the detailed processing of       
                                                                  received Link State Request packets. Received Link     
                                                                  State Request Packets specify a list of link state     
                                                                  advertisements that the neighbor wishes to receive.    
                                                                  Link State Request Packets should be accepted when     
                                                                  the neighbor is in states Exchange, Loading, or Full.  
                                                                  In all other states Link State Request Packets should  
                                                                  be ignored. Without this fix, gated outputs the        
                                                                  following error message and counts error log. Full     
                                                                  Description                                            
                                                                                                                         

Assertion failing    bgp_init.c      3-18-96  Acee Lindem   All   A timing problem where the remote peer is  setting up  
in bgp_init.c                                                     the connection in between the time interface for the   
                                                                  peer comes up and GateD reading the interfaces. This   
                                                                  causes the above  assertion failure for type internal  
                                                                  BGP groups. Full Description                           
                                                                                                                         

Fix to aspath.c      aspath.c        4-24-96  John G.       All   Gated gags on optional, non-transitive path            
                                              Scudder             attributes which don't have (attribute data) length    
                                                                  zero. In my case the symptom was that it would send a  
                                                                  malformed PDU error and tear the session down but      
                                                                  other things could possibly happen depending on the    
                                                                  amount of attribute data. The (small) fix is below --  
                                                                  we just need to skip over the data we want to ignore.  
                                                                  Full Description                                       
                                                                                                                         
                                                                                                                         

Gated fixes          if.c            4-25-96  Scott Mace    All   if.c: netmask change sometimes causes gated core       
                     ospf_monitor.c                               ospf_build_ls.c: permit local address of               
                                                                  point-to-point as OSPF stubhost ospf_monitor.c:        
                                                                  prevent ospf_monitor cores on unusual input            
                                                                  ospf_rt.c: use maximum cost for OSPF network range     
                                                                  (per Dennis Ferguson); fix logic error when checking   
                                                                  for OSPF direct routes ospf_rxpkt.c: check for init    
                                                                  and master bits in dbsums when loading or full         
                                                                  ospf_spf.c: fix case when gated's point-to-point       
                                                                  neighbor uses an unnumbered point-to-point link. Full  
                                                                  Description                                            
                                                                                                                         

Patch to support     bgp.h           7-22-96  Rob           All   In the distributed version of gated R3_5Beta3, routes  
routes from route    bgp_init.c               Liebschutz          received from the route servers are discarded if the   
servers              bgp_rt.c                                     first ashop does not match that of the peeras. This    
                                                                  patch adds an option which can be specified on either  
                                                                  the group statement or peer clause to cause a          
                                                                  mismatch in the first ashop to be ignored.             
                                                                                                                         
                                                                  Note, I also moved the test for the "KEEP NONE" bit    
                                                                  one level outside of the test for the firstashop !=    
                                                                  peeras. I don't see how the KEEP NONE option ever      
                                                                  could have worked correctly before since it was only   
                                                                  applied of the firstashop != peeras test suceeded.     
                                                                  Full Description                                       
                                                                                                                         

Routes received      config file     7-22-96  Rob           All   In the distributed version of gated R3_5Beta3, routes  
from                 bgp.h                    Liebschutz          received from                                          
the route servers    bgp_init.c                                   the route servers are discarded if the first ashop     
are discarded if     bgp_rt.c                                     does not match                                         
the first ashop      parse.c                                      that of the peeras.  This patch adds an option which   
does not match       parse.y                                      can be                                                 
that of the peeras.                                               specified on either the group statement or peer        
                                                                  clause to                                              
                                                                  cause a mismatch in the first ashop to be ignored.     
                                                                                                                         
                                                                                                                         
                                                                  Note,  I also moved the test for the "KEEP NONE" bit   
                                                                  one level                                              
                                                                  outside of the test for the firstashop != peeras.  I   
                                                                  don't see                                              
                                                                  how the KEEP NONE option ever could have worked        
                                                                  correctly before                                       
                                                                  since it was only applied of the firstashop != peeras  
                                                                  test                                                   
                                                                  suceeded.                                              
                                                                                                                         

First Ashop routes   bgp.h           7-22-96  Rob           All   Routes received from the route servers are discarded   
are discarded        bgp_init.c               Liebschutz          if the first ashop does not match that of the peeras.  
                     bgp_rt.c                                     This patch adds an option to cause the first ashop to  
                     parse.c                                      be ignored.                                            

Handling ICMP        rt_redirect.c   9-9-96   BENNETT@PROCE All   The bug is that when redirects are turned off in the   
redirects                                     SS.COM              gated.conf file,                                       
                                                                  it still deletes routes from redirects.                
                                                                                                                         
                                                                  The code in question is in rt_redirect.c (lines        
                                                                  210-216 in release                                     
                                                                  R3.6 Alpha 2) as follows:                              
                                                                                                                         
                                                                  When redirects are turned off, the redirect_ignore     
                                                                  flag is set to 1.                                      
                                                                  This causes the code to jump to the "Delete" label,    
                                                                  which will attempt                                     
                                                                  to delete the route specified in the redirect.  I      
                                                                  believe the code                                       
                                                                  should be changed so that line 215 is "goto Return;"   
                                                                  instead of                                             
                                                                  "goto Delete;".  This would cause the redirect         
                                                                  handling to                                            
                                                                  exit the routine, doing nothing, instead of deleting   
                                                                  the route.                                             
                                                                                                                         

bugs in IGMP         igmp.c          9-14-96  Andrew        All   The patch below fixes a number of bugs in IGMP:        
                                              Romanenko           1. IP packet length was put in the header in host      
                                                                  byte order [FIXED]                                     
                                                                  2. Ttl was set to IP_MAX_TTL in all of packets sent    
                                                                  by igmp_send [FIXED]                                   
                                                                  3. Checksum of an IGMP packet was counted by an        
                                                                  incorrect way [FIXED]                                  
                                                                  Also, I added two little things in igmp.c that allow   
                                                                  IGMP works properly                                    
                                                                  on Linux boxes.                                        
                                                                  But... The current implementation of IGMP is           
                                                                  compliant to IGMPv1. I                                 
                                                                  guess it is better to make it compliant to IGMPv2. At  
                                                                  least, the election                                    
                                                                  of a subnet querier should be done by IGMP and not by  
                                                                  DVMRP or PIM as it                                     
                                                                  has been now. Perhaps the DVMRP_SEND_NEIGHBORS         
                                                                  function should be moved                               
                                                                  from dvmrp.c to igmp.c. I have implemented             
                                                                  DVMRP_SEND_NEIGHBORS2                                  
                                                                  (now it is in dvmrp.c) and would like to hear any      
                                                                  suggestion about moving                                
                                                                  it to igmp.c.                                          
                                                                                                                         

Another igmp bug     igmp.c          9-18-96  Andrew        All   encountered another bug in igmp.c. When an IGMP        
                                              Romanenko           packet should be                                       
                                                                  delivered via a dvmrp tunnel the source address and    
                                                                  the destination                                        
                                                                  address of the packet were the same. This patch fixes  
                                                                  the problem.                                           
                                                                  The new patch is to replace the old one (posted with   
                                                                  the subject                                            
                                                                  "[GATED #197] IGMP bugs/fixes" and should look as the  
                                                                  following:                                             
                                                                                                                         

Allow multiple       rt_static.c     9-20-96  Acee Lindem   All   Allows multiple static routes with the same            
static routes.                                                    destination/mask but different preference.             
                                                                                                                         
                                                                                                                         

Here's code cut to   parse.c         10-1-96  Susan Hares   All   parse.c:#ifdef  T_ANALRETENTIVE                        
replace                                                           parse.c:    KWE(T_ANALRETENTIVE, "anal-retentive" ),   
anal-retentive                                                    parse.c:    KWE(T_ANALRETENTIVE, "analretentive" ),    
                                                                  parse.c:    KWE(T_ANALRETENTIVE, "show-warnings" ),    
                                                                  parse.c:    KWE(T_ANALRETENTIVE, "showwarnings" ),     
                                                                  parse.c:#endif  /* T_ANALRETENTIVE */                  
                                                                                                                         

Core dumps when      if.c            10-17-96 Jeff Honig    All   When an interface is up and it goes away the           
interfaces going up                                               protocols are now being notified                       
and down.                                                                                                                

Avoid compiler       gdc.c           10-17-96 Jeff Honig    All   Use %lu  not  %u to avoid warning messages             
warnings                                                                                                                 

Allow specification  configs/README  10-17-96 Jeff Honig    All   Update configuration files to include chown.           
of UID to own gdc.   Makefile.templa                                                                                     
                     te                                                                                                  
                     util/config.awk                                                                                     
                                                                                                                         
                     inst-man.sh                                                                                         
                                                                                                                         

BGP router           bgp_init.c      10-17-96 Jeff Honig    All   Remove the restriction that the router specified by    
restriction                                                       the 'gateway' BGP peer parameter must be on the same   
                                                                  network as the local address.                          
                                                                                                                         

Passing a pointer    str.c           10-17-96 Jeff Honig    All   Gated's print routines pass a around a pointer to a    
around.              str.h                                        va_list. This patch changes the routines to pass a     
                                                                  va_list.