Author: Paul Jakma <[email protected]>
Date:   Fri Sep 7 16:54:01 2007 +0000

   [release] bump to 0.99.9

   2007-09-07 Paul Jakma <[email protected]>

       * configure.ac: Bump version to 0.99.9

Author: Paul Jakma <[email protected]>
Date:   Fri Sep 7 14:24:55 2007 +0000

   [bgpd] low-impact DoS: crash on malformed community with debug set

   2007-09-07 Paul Jakma <[email protected]>

       * (general) bgpd can be made crash by remote peers if debug
         bgp updates is set, due to NULL pointer dereference.
         Reported by "Mu Security Research Team",
         <[email protected]>.
       * bgp_attr.c: (bgp_attr_community) If community length is 0,
         don't set the community-present attribute bit, just return
         early.
       * bgp_debug.c: (community_str,community_com2str) Check com
         pointer before dereferencing.

Author: Denis Ovsienko <[email protected]>
Date:   Thu Sep 6 14:34:41 2007 +0000

   + fixed bug #400: adjusted rtread_sysctl.c:route_read()

Author: Paul Jakma <[email protected]>
Date:   Thu Aug 30 13:36:17 2007 +0000

   [bgpd] bug #398 Bogus free on out route-map, and assert() with rsclients

   2007-08-27 Paul Jakma <[email protected]>

       * bgp_route.c: (bgp_announce_check) Fix bug #398, slight
         modification of Vladimir Ivanov's suggested fix - to keep
         memory alloc conditional.
         (bgp_process_announce_selected) Don't take struct attr as
         argument, none of the callers need it and it needlessly
         distances allocation from use.
         Free the extended attr, the attr itself is on the stack.
         Fix bad indentation.
       * bgp_attr.c: (bgp_packet_attribute) Remove incorrect assert,
         and adjust conditional to test attr->extra, diagnosis by
         Vladimir Ivanov in bug #398.

   2007-08-27 Vladimir Ivanov <[email protected]>

       * bgp_route.c: (bgp_announce_check_rsclient) copy of
         ri->attr is no longer deep enough, due to addition of
         attr->extra. It should use bgp_attr_dup, as
         bgp_announce_check() does.

Author: Paul Jakma <[email protected]>
Date:   Thu Aug 23 23:22:02 2007 +0000

   [bgpd] Pass NOSUB to regexec

   2007-08-23 Paul Jakma <[email protected]>

       * bgp_regex.c: (bgp_regcomp) Pass NOSUB flag to regcomp to
         prevent parsing of substitutions, which can have profound
         performance effects on bgpd and are of no use to the CLI
         anyway. How much it helps depends on the regex
         implementation.

Author: Denis Ovsienko <[email protected]>
Date:   Tue Aug 21 16:32:56 2007 +0000

   Bug #362 is fixed now.

Author: Denis Ovsienko <[email protected]>
Date:   Tue Aug 21 16:15:39 2007 +0000

   Looks like bug #320 is finally fixed now.

Author: Denis Ovsienko <[email protected]>
Date:   Tue Aug 21 16:12:40 2007 +0000

   Fixed ioctl_solaris.c:if_get_mtu() for IPv6'less operation

Author: Denis Ovsienko <[email protected]>
Date:   Fri Aug 17 14:16:30 2007 +0000

   Fixed bug #394 "RTF_DONE is ignored in rtm_read()"

Author: Denis Ovsienko <[email protected]>
Date:   Tue Aug 14 09:46:48 2007 +0000

   Merged own patch for bug #390 (rewrite zebra/zebra_rib.c:nexthop_active_update())

Author: Denis Ovsienko <[email protected]>
Date:   Mon Aug 13 16:03:06 2007 +0000

   Merged own patch for the bug #391 (debugging and comments mostly).

Author: vize <vize>
Date:   Fri Aug 10 06:25:20 2007 +0000

   Use the proper field length for the peer's address (netlink_interface_addr)

Author: Paul Jakma <[email protected]>
Date:   Wed Aug 8 14:13:03 2007 +0000

   [tests] Add bgp_capability_test.c, should have been part of earlier commit

Author: Paul Jakma <[email protected]>
Date:   Wed Aug 8 11:19:27 2007 +0000

   [isisd] Commit new files which should have been part of previous commit..

Author: Paul Jakma <[email protected]>
Date:   Tue Aug 7 18:49:18 2007 +0000

   [isisd] Add support for Solaris DLPI

   2007-08-07 James Carlson <[email protected]>

       * configure.ac: Added support for separate link-layer access
         mechanisms in isisd.
       * isis_network.c: split up into isis_bpf.c, isis_dlpi.c, and
         isis_pfpacket.c, selected by autoconf, and added DLPI support.
       * (general) Fixed to allow compilation and use on Solaris.

Author: Paul Jakma <[email protected]>
Date:   Tue Aug 7 16:22:05 2007 +0000

   [ospfd] Finish explanatory comment started in previous commit..

   2007-08-07 Paul Jakma <[email protected]>

       * ospf_spf.c: (ospf_spf_next) Finish off the explanatory
         comment made in previous commit

Author: Paul Jakma <[email protected]>
Date:   Mon Aug 6 19:25:11 2007 +0000

   [zebra] Add extra debug logging for RIB and RIB queueing

   2007-08-06  Denis Ovsienko

       * zebra_rib.c: (general) Add extra debug logging for RIB and
         RIB queue.

Author: Paul Jakma <[email protected]>
Date:   Mon Aug 6 18:52:45 2007 +0000

   [ospfd] Fix bad SPF calculation on some topologies - incorrect sorting

   2007-08-07 Atis Elsts <[email protected]>

       * ospf_spf.c: (ospf_spf_next) Sort heap in correct direction
         after vertex cost is changed, thus fixing incorrect SPF
         calculation on certain topologies.
       * lib/pqueue.{c,h}: Export trickle_up

Author: Greg Troxel <[email protected]>
Date:   Mon Aug 6 15:50:20 2007 +0000

   Fix last commit - add back in closing paren which was apparently
   uninentionally deleted along with a test.

Author: Paul Jakma <[email protected]>
Date:   Mon Aug 6 15:27:12 2007 +0000

   [ospfd] Bug #331, NSSA ASBR regression - failure to set E-bit in NSSA areas

   2007-08-06 Paul Jakma <[email protected]>

       * ospf_lsa.c: (router_lsa_flags) Bug #331, NSSA regression caused
         caused ASBRs to not advertise E-bit into NSSA areas.

Author: Paul Jakma <[email protected]>
Date:   Mon Aug 6 15:24:51 2007 +0000

   [bgpd] Add support for AS_PATHLIMIT / draft-ietf-idr-as-pathlimit

   2007-07-31 Paul Jakma <[email protected]>

       * (general) Support for draft-ietf-idr-as-pathlimit-03.
       * bgp_attr.h: (struct attr) Add pathlimit struct
             bgp_attr.c: (attr_str) Add BGP_ATTR_AS_PATHLIMIT string.
             (attrhash_key_make) tally pathlimit too
             (attrhash_cmp) cmp pathlimit attr
             (bgp_attr_aspathlimit) New, parse AS_PATHLIMIT attr.
             (bgp_attr_parse) ditto
             (bgp_packet_attribute) Write out AS_PATHLIMIT when set
             (bgp_dump_routes_attr) ditto
            * bgp_route.h: (struct bgp_static) Add TTL field
            * bgp_route.c: (bgp_announce_check) Drop paths that are over
              their hop-count TTL before sending via EBGP.
              Mangle ASN in pathlimit for confeds/private as best we can.
              (bgp_static_update_{rsclient,main}) Add any configure pathlimit
              information.
              (bgp_pathlimit_update_parents) New, update atomic-aggr setting for
              parents of an aspathlimit'ed static.
              (bgp_static_set) Add TTL argument, for all the 'bgp network'
              commands.
              Call previous for TTL changed statics.
              (bgp_static_unset) Call pathlimit_update_parents.
              (various bgp network commands) Add 'pathlimit <0-255>' qualifier
              to all the various forms, bar route-map - which can set ttl
              itself.
            * bgp_routemap.c: (general) Add support for 'set pathlimit ttl' and
              'match pathlimit as'.
            * doc/bgpd.texi: Document 'network ... pathlimit <ttl>'

Author: Paul Jakma <[email protected]>
Date:   Mon Aug 6 15:21:45 2007 +0000

   [bgpd] cleanup, compact and consolidate capability parsing code

   2007-07-26 Paul Jakma <[email protected]>

       * (general) Clean up and compact capability parsing slightly.
         Consolidate validation of length and logging of generic TLV, and
         memcpy of capability data, thus removing such from cap specifc
         code (not always present or correct).
       * bgp_open.h: Add structures for the generic capability TLV header
         and for the data formats of the various specific capabilities we
         support.  Hence remove the badly named, or else misdefined, struct
         capability.
       * bgp_open.c: (bgp_capability_vty_out) Use struct capability_mp_data.
         Do the length checks *before* memcpy()'ing based on that length
         (stored capability - should have been validated anyway on input,
         but..).
         (bgp_afi_safi_valid_indices) new function to validate (afi,safi)
         which is about to be used as index into arrays, consolidates
         several instances of same, at least one of which appeared to be
         incomplete..
         (bgp_capability_mp) Much condensed.
         (bgp_capability_orf_entry) New, process one ORF entry
         (bgp_capability_orf) Condensed. Fixed to process all ORF entries.
         (bgp_capability_restart) Condensed, and fixed to use a
         cap-specific type, rather than abusing capability_mp.
         (struct message capcode_str) added to aid generic logging.
         (size_t cap_minsizes[]) added to aid generic validation of
         capability length field.
         (bgp_capability_parse) Generic logging and validation of TLV
         consolidated here. Code compacted as much as possible.
       * bgp_packet.c: (bgp_open_receive) Capability parsers now use
         streams, so no more need here to manually fudge the input stream
         getp.
         (bgp_capability_msg_parse) use struct capability_mp_data. Validate
         lengths /before/ memcpy. Use bgp_afi_safi_valid_indices.
         (bgp_capability_receive) Exported for use by test harness.
       * bgp_vty.c: (bgp_show_summary) fix conversion warning
         (bgp_show_peer) ditto
       * bgp_debug.h: Fix storage 'extern' after type 'const'.
           * lib/log.c: (mes_lookup) warning about code not being in
             same-number array slot should be debug, not warning. E.g. BGP
             has several discontigious number spaces, allocating from
             different parts of a space is not uncommon (e.g. IANA
             assigned versus vendor-assigned code points in some number
             space).

Author: Greg Troxel <[email protected]>
Date:   Thu Aug 2 14:13:56 2007 +0000

   Add comment questioning part of previous change (Denis?).
   Fix indentation to match accumulated changes.

Author: Greg Troxel <[email protected]>
Date:   Thu Aug 2 14:07:07 2007 +0000

   Bugzilla #384.

   2007-08-02  Denis Ovsienko

       * rt_socket.c (kernel_rtm_ipv4): Only call rtm_write when changes
       are intended.  Don't set FIB flag on failed additions (such as
       occur with multiple paths.


   http://bugzilla.quagga.net/attachment.cgi?id=235&action=view

Author: Greg Troxel <[email protected]>
Date:   Thu Aug 2 13:38:38 2007 +0000

   disable gmake workaround now that solaris directory is not built by
   default

Author: Greg Troxel <[email protected]>
Date:   Thu Aug 2 13:37:30 2007 +0000

   note the use of GNU make extensions.

Author: Greg Troxel <[email protected]>
Date:   Thu Aug 2 13:36:56 2007 +0000

   Add --enable-solaris to descend into solaris-specific build directory.
   While it doesn't take a long time to build, this is currently the only
   thing in the tree that doesn't work with BSD make, and there's no
   reason to build solaris package control files on other systems.

Author: Greg Troxel <[email protected]>
Date:   Thu Aug 2 13:23:57 2007 +0000

   workaround buggy solaris/Makefile.am which requires GNU make.

Author: Paul Jakma <[email protected]>
Date:   Tue Jul 31 17:35:36 2007 +0000

   [bgpd] Dont schedule dumps multiple times for same command

   2007-07-31 Lorenzo Colitti <[email protected]>

       * bgp_dump.c: (general) Add comments to code.
         (bgp_dump_interval_add) remove some redundant lines.
         (bgp_dump_set) Use enum for type argument.
         Avoid scheduling dump twice if exact same command
         is given twice..