Patch Name
Author: Bill Siadak

    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.