Author: Paul Jakma <paul.jakma@sun.com>
Date:   Fri Sep 7 16:54:01 2007 +0000

    [release] bump to 0.99.9
    
    2007-09-07 Paul Jakma <paul.jakma@sun.com>
    
    	* configure.ac: Bump version to 0.99.9

Author: Paul Jakma <paul.jakma@sun.com>
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 <paul.jakma@sun.com>
    
    	* (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",
    	  <security@musecurity.com>.
    	* 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 <linux@pilot.org.ua>
Date:   Thu Sep 6 14:34:41 2007 +0000

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

Author: Paul Jakma <paul.jakma@sun.com>
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 <paul.jakma@sun.com>
    
    	* 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 <wawa@yandex-team.ru>
    
    	* 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 <paul.jakma@sun.com>
Date:   Thu Aug 23 23:22:02 2007 +0000

    [bgpd] Pass NOSUB to regexec
    
    2007-08-23 Paul Jakma <paul.jakma@sun.com>
    
    	* 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 <linux@pilot.org.ua>
Date:   Tue Aug 21 16:32:56 2007 +0000

    Bug #362 is fixed now.

Author: Denis Ovsienko <linux@pilot.org.ua>
Date:   Tue Aug 21 16:15:39 2007 +0000

    Looks like bug #320 is finally fixed now.

Author: Denis Ovsienko <linux@pilot.org.ua>
Date:   Tue Aug 21 16:12:40 2007 +0000

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

Author: Denis Ovsienko <linux@pilot.org.ua>
Date:   Fri Aug 17 14:16:30 2007 +0000

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

Author: Denis Ovsienko <linux@pilot.org.ua>
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 <linux@pilot.org.ua>
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 <paul.jakma@sun.com>
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 <paul.jakma@sun.com>
Date:   Wed Aug 8 11:19:27 2007 +0000

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

Author: Paul Jakma <paul.jakma@sun.com>
Date:   Tue Aug 7 18:49:18 2007 +0000

    [isisd] Add support for Solaris DLPI
    
    2007-08-07 James Carlson <james.d.carlson@sun.com>
    
    	* 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 <paul.jakma@sun.com>
Date:   Tue Aug 7 16:22:05 2007 +0000

    [ospfd] Finish explanatory comment started in previous commit..
    
    2007-08-07 Paul Jakma <paul.jakma@sun.com>
    
    	* ospf_spf.c: (ospf_spf_next) Finish off the explanatory
    	  comment made in previous commit

Author: Paul Jakma <paul.jakma@sun.com>
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 <paul.jakma@sun.com>
Date:   Mon Aug 6 18:52:45 2007 +0000

    [ospfd] Fix bad SPF calculation on some topologies - incorrect sorting
    
    2007-08-07 Atis Elsts <atis@mikrotik.com>
    
    	* 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 <gdt@fnord.ir.bbn.com>
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 <paul.jakma@sun.com>
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 <paul.jakma@sun.com>
    
    	* ospf_lsa.c: (router_lsa_flags) Bug #331, NSSA regression caused
    	  caused ASBRs to not advertise E-bit into NSSA areas.

Author: Paul Jakma <paul.jakma@sun.com>
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 <paul.jakma@sun.com>
    
    	* (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 <paul.jakma@sun.com>
Date:   Mon Aug 6 15:21:45 2007 +0000

    [bgpd] cleanup, compact and consolidate capability parsing code
    
    2007-07-26 Paul Jakma <paul.jakma@sun.com>
    
    	* (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 <gdt@fnord.ir.bbn.com>
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 <gdt@fnord.ir.bbn.com>
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 <gdt@fnord.ir.bbn.com>
Date:   Thu Aug 2 13:38:38 2007 +0000

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

Author: Greg Troxel <gdt@fnord.ir.bbn.com>
Date:   Thu Aug 2 13:37:30 2007 +0000

    note the use of GNU make extensions.

Author: Greg Troxel <gdt@fnord.ir.bbn.com>
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 <gdt@fnord.ir.bbn.com>
Date:   Thu Aug 2 13:23:57 2007 +0000

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

Author: Paul Jakma <paul.jakma@sun.com>
Date:   Tue Jul 31 17:35:36 2007 +0000

    [bgpd] Dont schedule dumps multiple times for same command
    
    2007-07-31 Lorenzo Colitti <lorenzo@colitti.com>
    
    	* 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..