[vyatta-svn] BGP/OSPF/RIP/RIB routing daemons: Changes to 'upstream'

shemminger@suva.vyatta.com shemminger at suva.vyatta.com
Fri Jun 20 12:13:22 PDT 2008


 ChangeLog                 |    8 
 HACKING                   |    2 
 INSTALL.quagga.txt        |    2 
 NEWS                      |    3 
 README.NetBSD             |    2 
 bgpd/ChangeLog            |   25 ++
 bgpd/IMPLEMENTATION.txt   |    2 
 bgpd/bgp_aspath.c         |   82 ++++++-
 bgpd/bgp_aspath.h         |    3 
 bgpd/bgp_attr.c           |   53 +++-
 bgpd/bgp_attr.h           |    5 
 bgpd/bgp_main.c           |   10 
 bgpd/bgp_route.c          |   10 
 bgpd/bgp_routemap.c       |  115 +++++++++
 bgpd/bgpd.conf.sample     |    2 
 configure.ac              |    4 
 isisd/dict.c              |    4 
 isisd/dict.h              |    4 
 lib/ChangeLog             |   12 +
 lib/command.c             |    2 
 lib/log.c                 |    2 
 lib/log.h                 |    2 
 lib/md5.c                 |    2 
 lib/md5.h                 |    2 
 lib/memtypes.awk          |    2 
 lib/memtypes.c            |    2 
 lib/route_types.awk       |    2 
 lib/str.h                 |    2 
 lib/stream.c              |    4 
 lib/stream.h              |    4 
 lib/workqueue.c           |   16 -
 lib/workqueue.h           |    3 
 lib/zassert.h             |    2 
 lib/zebra.h               |    2 
 mkinstalldirs             |    2 
 ospf6d/ospf6_main.c       |    3 
 ospfd/OSPF-ALIGNMENT.txt  |    2 
 ospfd/ospf_main.c         |    3 
 pkgsrc/README.txt         |    2 
 ripd/ChangeLog            |    4 
 ripd/rip_main.c           |    3 
 ripd/ripd.c               |    2 
 ripd/ripd.conf.sample     |    2 
 ripngd/ripng_main.c       |    3 
 ripngd/ripngd.conf.sample |    2 
 solaris/Makefile.am       |    2 
 solaris/quagga.init.in    |    2 
 tests/ChangeLog           |    4 
 tests/Makefile.am         |    6 
 tests/bgp_mp_attr_test.c  |  535 ++++++++++++++++++++++++++++++++++++++++++++++
 tests/heavy-thread.c      |    2 
 tests/heavy-wq.c          |    2 
 tests/heavy.c             |    2 
 tests/main.c              |    2 
 tests/test-privs.c        |    2 
 tools/multiple-bgpd.sh    |   27 +-
 watchquagga/watchquagga.c |    2 
 zebra/ChangeLog           |   21 +
 zebra/client_main.c       |    2 
 zebra/connected.c         |   13 -
 zebra/main.c              |    3 
 zebra/rib.h               |   16 +
 zebra/rt_netlink.c        |   55 ++++
 zebra/zebra.conf.sample   |    2 
 zebra/zebra_rib.c         |  160 +++++++++++--
 zebra/zserv.h             |    1 
 66 files changed, 1149 insertions(+), 137 deletions(-)

New commits:
commit 11f4f0e55dbd48a4dd56e96202731d6679041594
Author: paul <paul>
Date:   Thu Jun 12 18:53:09 2008 +0000

    [tools/multiple-bgpd] setup IPv6 advertisments

commit db54fd68292ee898b07ec639630419e755bf4a41
Author: paul <paul>
Date:   Wed Jun 11 19:40:57 2008 +0000

    [administrivia] commit missing ChangeLog update...

commit b930fcabb7bcb2e025cb35ba3455542a4c1f67ee
Author: paul <paul>
Date:   Tue Jun 10 21:25:38 2008 +0000

    [release] Bump version to 0.99.10
    
    2008-06-10 Paul Jakma <paul at jakma.org>
    
    	* configure.ac: Bump version to 0.99.10

commit ac11987761b608c89dace7c6bccce289a82b625c
Author: paul <paul>
Date:   Sat Jun 7 20:44:30 2008 +0000

    [tests] BGP MP_(UN)REACH_NLRI unit tests (actual file..)
    
    2008-06-07 Paul Jakma <paul at jakma.org
    
    	* bgp_mp_attr_test.c: MP_(UN)REACH_NLRI unit tests

commit 15382922a695cd9245da8a57546d51154c6a35f4
Author: paul <paul>
Date:   Sat Jun 7 20:42:07 2008 +0000

    [lib] trivial: add const qualifier to stream_put/write
    
    2008-06-07 Paul Jakma <paul at jakma.org>
    
    	* stream.{c,h}: (stream_{put,write}) add const qualifier to source
    	  argument. Change u_char to void *.

commit 3be53b16b4e4f7a6b5fd51553f471d0a0e0315cc
Author: paul <paul>
Date:   Sat Jun 7 20:37:10 2008 +0000

    [bgpd] minor changes to bgp_mp_reach_parse
    
    2008-06-07 Paul Jakma <paul at jakma.org>
    
    	* bgp_attr.{c,h}: (bgp_mp_{un,}reach_parse) export, for unit tests.
    	* bgp_attr.c: (bgp_mp_reach_parse) Add logging. Tighten length test
    	  to bounds check against the attribute length rather than the
    	  stream length..

commit 814e2b5a7d72d997b931789937bbc341555dbb4f
Author: paul <paul>
Date:   Sat Jun 7 20:32:38 2008 +0000

    [tests] BGP MP_(UN)REACH_NLRI unit tests
    
    2008-06-07 Paul Jakma <paul at jakma.org
    
    	* bgp_mp_attr_test.c: MP_(UN)REACH_NLRI unit tests

commit 16eb12a26536c6a2d9b9f1038d4194daa66c1dee
Author: pilot <pilot>
Date:   Sat Jun 7 17:54:38 2008 +0000

    + note the meta-queue in NEWS

commit 90443036ecda07a5f8d5c3501faef465301365bd
Author: pilot <pilot>
Date:   Mon Jun 2 12:03:22 2008 +0000

    + initial edition of meta-queue for RIB updates processing (bug #431)

commit ab8d703bf1eb4599479161d467fdd4b87c7efed1
Author: paul <paul>
Date:   Sun Jun 1 14:29:03 2008 +0000

    [bgpd] bug #419: partial aspath-limit incorrectly causes session reset
    
    2008-06-01 jfletche at gmail.com
    
    	* bgp_attr.c: (bgp_attr_aspathlimit) fix silly bug in flags check
    	  that was causing BGP to drop sessions if it received a
    	  aspath-limit with partial set. Fixes bug #419.

commit f6fb57c58bbc808004486efa7fc1a47b7550efdb
Author: paul <paul>
Date:   Sun Jun 1 14:26:48 2008 +0000

    [tools] multiple-bgpd.sh: make paths more configurable

commit a75c0b43cd9a27e2c3f5113e1a2141e428fb2288
Author: paul <paul>
Date:   Thu May 29 19:03:08 2008 +0000

    [ripd] Fix mistaken empty string test
    
    2008-05-29 Stephen Hemminger <stephen.hemminger at vyatta.com>
    
    	* ripd.c: (rip_auth_md5) fix bogus empty string test

commit a73770abf4e87b073ca51ca0cd4171d712ca9bff
Author: paul <paul>
Date:   Thu May 29 18:29:16 2008 +0000

    [daemons] Sanity check port number arguments before use
    
    2008-05-29 Martin Nagy <mnagy at redhat.com>
    
    	* */*main.c: Sanity check port numbers before using.

commit bccd4b06852d712dd5de868c583102bd4c2bdea1
Author: paul <paul>
Date:   Thu May 29 18:23:08 2008 +0000

    [zebra/linux] Use BPF to filter out responses, to try avoid netlink overruns
    
    2008-05-29 Stephen Hemminger <stephen.hemminger at vyatta.com>
    
    	* rt_netlink.c: (netlink_install_filter) BPF filter to catch and
    	  drop responses to zebra's own route messages.
    	  (kernel_init) add BPF filter on the netlink socket.

commit 7920889cfd2ecb3e2d3cf9c4e69748e79e835e38
Author: pilot <pilot>
Date:   Thu Apr 10 11:53:33 2008 +0000

    + fix the set statement name

commit 76dc183651b95721cdba0e6652cb16289e2944d4
Author: pilot <pilot>
Date:   Thu Apr 10 11:47:45 2008 +0000

    + [bgpd] Added new route-map set statement: "as-path ignore"

commit ac7a446d06688f8db705356f37be1ec5aee9486c
Author: paul <paul>
Date:   Thu Mar 13 03:31:24 2008 +0000

    [bgpd] remove unnecessary 0 entries from struct message's
    
    2008-03-13 Paul Jakma <paul.jakma at sun.com>
    
    	* (various) Remove 0 entries from struct message's, unneeded due to
    	  recent improvements in mes_lookup/LOOKUP.

commit c0d1a74a92ef1523ed1a49e964d4ec8d6cf51c2b
Author: paul <paul>
Date:   Thu Mar 13 03:28:13 2008 +0000

    [ripd] remove unnecessary 0 entries from struct message's
    
    2008-03-13 Paul Jakma <paul.jakma at sun.com>
    
    	* ripd.c/rip_interface.c: Remove 0 entries from rip_msg
    	  ri_version_msg struct message's, not needed with recent fixes
    	  to mes_lookup.

commit 8bd8d860740dc0eefdc79d8ce26bb38cc780bc5c
Author: paul <paul>
Date:   Thu Feb 28 23:26:02 2008 +0000

    [lib] Fix the struct message LOOKUP function to be more robust
    
    2008-02-28 Paul Jakma <paul.jakma at sun.com>
    
    	* log.c: (mes_lookup) Sowmini Varadhan diagnosed a problem where
    	  this function can cause a NULL dereference, on lookups for unknown
    	  indices, or messages with NULL strings. Can occur, e.g., debug
    	  logging code when processing received messages. Fixed to accept a
    	  pointer to a default string to be used if there is no match.
    	* log.h: LOOKUP adjusted to match

commit 3fd5ece7f5923e1722a29990a92afc60e27ecf07
Author: paul <paul>
Date:   Thu Feb 28 00:09:04 2008 +0000

    [lib/linklist] Enforce "nodes must have data" invariant more rigorously
    
    2008-02-28 Paul Jakma <paul.jakma at sun.com>
    
    	* linklist.c: This implementation expects that the data pointer not
    	  be null, e.g. listgetdata() asserts this. The list add methods
    	  don't apply the same sanity check.
    
    	  Noted by Jim Carlson in bug #437.

commit 3b98020d90eeb01eccf07b899585819ce7b6c8b1
Author: pilot <pilot>
Date:   Tue Feb 26 14:02:24 2008 +0000

    + fix bug#326 by rib_lookup_and_pushup()

commit c38943974c6ddb8ba0ab15f61da65b08a9ecd091
Author: paul <paul>
Date:   Tue Feb 26 09:16:09 2008 +0000

    [c++] remove/rename some names in headers that clash with C++ reserved words
    
    2008-01-30 Peter Szilagyi <sp615 at hszk.bme.hu>
    
    	* lib/stream.h: Remove named 'new' parameter in prototype
    	  for c++ header compatibility.
    	* ospfd/ospf_opaque.h: ditto
    	* ospfd/ospfd.h: Renamed struct export to _export for c++
    	  header compatibility.
    	* ospf6d/ospf6_area.h: ditto

commit 8bad3ecb08602a6aefcb5d191b4810c5a888522f
Author: paul <paul>
Date:   Sat Feb 23 16:57:03 2008 +0000

    [tests:bgp] Further tests for 0 sized as_path segments
    
    2008-02-23 Paul Jakma <paul.jakma at sun.com>
    
    	* aspath_test.c: Test for 0-ASN sequences that still have data.

commit 28b1e7a8073abac7342f1df74cc9ca0c1c753269
Author: paul <paul>
Date:   Tue Jan 29 19:29:44 2008 +0000

    [isisd] Bug #437: fix ssert caused by bad list management
    
    2008-01-29 James Carlson <james.d.carlson at sun.com>
    
    	* Fix bug #437, assert due to bogus index management
    	* isis_flags.c: (flags_initialize) new
    	* (flags_get_index) fix off by one, leading to list assert
    	  on null node data.
    	  (flags_free_index) ditto.
    	* isisd.c: (isis_area_create) use flags_initialize
    	  (isis_area_destroy) deconfigure circuits when
    	  taking down area.

commit 5f85b8539f7d2d8f510c6f03d65d1aede337b1c4
Author: paul <paul>
Date:   Tue Jan 29 17:26:34 2008 +0000

    [bgpd] fix crash on startup if compiled IPv4-only
    
    2008-01-29 Jorge Boncompte <jorge at dti2.net>
    
    	* bgp_network.c: (bgp_socket) IPv4-only version crashes if -l is not
    	  used as address will be null.

commit 5e33388bfae49d1404abea41e9e6699fddfa4252
Author: paul <paul>
Date:   Sun Jan 13 18:52:15 2008 +0000

    [solaris] add missing makefile.am dependency
    
    2008-01-13 Paul Jakma <paul.jakma at sun.com>
    
    	* Makefile.am: pkg target should depend on the 'depend.%' files.
    	  Crops up now that solaris/ doesn't get descended into by
    	  general Quagga build.

commit 383e6e590e8d8571d926cf9594401e157085e3e8
Author: ajs <ajs>
Date:   Fri Jan 11 16:33:59 2008 +0000

    [link-detect] Improve BSD support.
    2008-01-11 Ingo Flaschberger <if at xip.at>
    
    	* configure.ac: Improve HAVE_BSD_LINK_DETECT test.

commit 033305144d57b98416df160adf3f050cd7c20b35
Author: ajs <ajs>
Date:   Fri Jan 11 15:57:13 2008 +0000

    [link-detect] Improve BSD support.
    2008-01-11 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* lib/zebra.h: Revert previous change, no need to include
    	  <net/if_media.h> here.
    	* zebra/ioctl.c: If HAVE_BSD_LINK_DETECT is defined, include
    	  <net/if_media.h>
    	  (if_get_flags) Remove debug messages about BSD link state.
    	* zebra/kernel_socket.c: (bsd_linkdetect_translate) If link state
    	  is unknown, we should set the IFF_RUNNING flag.

commit 1e70bfb680354e1ea007618851a16166d9397393
Author: ajs <ajs>
Date:   Thu Jan 10 15:24:32 2008 +0000

    [link-detect] Try to get BSD link-detect to work properly.
    
    2008-01-10 Ingo Flaschberger <if at xip.at>
    
    	* configure.ac: Define HAVE_BSD_LINK_DETECT if <net/if_media.h> is
    	  present.
    	* lib/zebra.h: If HAVE_BSD_LINK_DETECT is defined,
    	  include <net/if_media.h>.
    	* zebra/ioctl.c: (if_get_flags) If HAVE_BSD_LINK_DETECT, use the
    	  SIOCGIFMEDIA ioctl to ascertain link state.
    	* zebra/kernel_socket.c: (bsd_linkdetect_translate) New function to
    	  map the ifm_data.ifi_link_state value into the IFF_RUNNING flag.
    	  (ifm_read) Call bsd_linkdetect_translate to fix the IFF_RUNNING
    	  flag before calling if_flags_update.

commit c31b318efc94a7e8df8f498bdd3703e8a87ba485
Author: ajs <ajs>
Date:   Tue Jan 8 20:12:46 2008 +0000

    [link-detect] Static interface routes should behave properly with link-detect.
    
    2008-01-08 Michael Larson <mike at vyatta.com>
    
    	* zebra_rib.c: (nexthop_active_check) Replace if_is_up with
    	  if_is_operative to solve problems with static interface
    	  routes not behaving properly with link-detect.

commit 8dd8d2f5136af92abf9ad21eeaa8615299375971
Author: paul <paul>
Date:   Tue Jan 8 13:50:11 2008 +0000

    [lib] add mising UL qualifier to numerical constant
    
    2008-01-08 Pavol Rusnak <prusnak at suse.cz>
    
    	* memory.c: (mtype_memstr) Fix accidental shift past width of type,
    	  constant should have been forced to UL, rather than being left to
    	  default to int.

commit 8355abdf5da8c2f0b264ef99a7d0c89e3065af69
Author: paul <paul>
Date:   Sat Dec 22 16:49:52 2007 +0000

    [bgpd] Fix number of DoS security issues, restricted to configured peers.
    
    2007-12-22 Paul Jakma <paul.jakma at sun.com>
    
    	* Fix series of vulnerabilities reported by "Mu Security
    	  Research Team", where bgpd can be made to crash by sending
    	  malformed packets - requires that bgpd be configured with a
    	  session to the peer.
    	* bgp_attr.c: (bgp_attr_as4_path) aspath_parse may fail, only
    	  set the attribute flag indicating AS4_PATH if we actually managed
    	  to parse one.
    	  (bgp_attr_munge_as4_attrs) Assert was too general, it is possible
    	  to receive AS4_AGGREGATOR before AGGREGATOR.
    	  (bgp_attr_parse) Check that we have actually received the extra
    	  byte of header for Extended-Length attributes.
    	* bgp_attr.h: Fix BGP_ATTR_MIN_LEN to account for the length byte.
    	* bgp_open.c: (cap_minsizes) Fix size of CAPABILITY_CODE_RESTART,
    	  incorrect -2 left in place from a development version of as4-path
    	  patch.
    	* bgp_packet.c: (bgp_route_refresh_receive) ORF length parameter
    	  needs to be properly sanity checked.
    	* tests/bgp_capability_test.c: Test for empty capabilities.

commit cf67fbbea54dc8ccd3002e50f47bc14cba3068ae
Author: pilot <pilot>
Date:   Tue Dec 18 15:13:06 2007 +0000

    + fixed no_set_aspath_prepend() to correctly match existing "set" statement

commit 2bceab82b5ccb05db536e3a5dda8e23980b5e07f
Author: paul <paul>
Date:   Wed Nov 21 21:25:34 2007 +0000

    [bgpd] Fix typo in previous commit to bgp_main.c

commit a3fb7552674afa663de20bb7e0af31f53e42f428
Author: paul <paul>
Date:   Tue Nov 13 09:32:23 2007 +0000

    [bgpd] small fix for crash if 'listenon' argument is not given
    
    2007-11-13 Paul Jakma <paul.jakma at sun.com>
    
    	* bgp_main.c: Small fix, format string parameters should never
    	  be NULL - it's not strictly valid and some libc's don't let
    	  you away with.

commit b359e35f78c929071ed04d7f4d0b41f23c48e992
Author: pilot <pilot>
Date:   Mon Nov 12 14:55:01 2007 +0000

    + fixed bug #418 (changing address on an existing interface doesn't cause existing static routes to be revalidated)

commit 024f3587fee751c4a95d8237087113bfeb10eab8
Author: paul <paul>
Date:   Thu Nov 1 14:29:11 2007 +0000

    2007-10-30 Nick Hilliard <nick at inex.ie>
    
    	* bgp_main.c: Add 'listenon' argument, to pass address to bind
    	  to.
    	* bgp_network.c: (bgp_socket) Extend to take bind address.
    	* bgpd.c: (bgp_init) Pass stored address.
    	* bgpd.h: (struct bgp_master) storage for bind address
    
    2007-11-01 Paul Jakma <paul.jakma at sun.com>
    
    	* tools/multiple-bgpd.sh: New, quick script to launch a bunch of
    	  bgpds.

commit b4b69030ca3a25034613dab66eed4b91f2864bb8
Author: pilot <pilot>
Date:   Wed Oct 24 13:13:21 2007 +0000

    + fix the bug reported by Milan Kocian (IPv6 route handling was broken by the RIB debug changeset).
    after

commit 719fff6ccd5c13e888cf199b9e9f4756769437f8
Author: paul <paul>
Date:   Mon Oct 22 18:34:41 2007 +0000

    [ospf6d] Fix removal of defunct ASBR routes
    
    2007-10-22 Phil Spagnolo <phillip.a.spagnolo at boeing.com>
    
    	* ospf6_asbr.c: (ospf6_asbr_lsentry_remove) Remove shortcut
    	  of LSDB search - it's based on assumption non-BEST routes
    	  can't have ASBR routes, which appears to be wrong. Safest to
    	  search.

commit 1e758975b6029d986a3ee935488341e71c7a697b
Author: paul <paul>
Date:   Mon Oct 22 15:53:17 2007 +0000

    [snmp-smux] Fix problems if 'smux peer ...' is issued multiple times
    
    2007-10-22 Lorenzo Colitti <lorenzo at colitti.com>
    
    	* smux.c: (smux_stop) Avoid cancelling a defunct thread pointer
    	  (smux_start) Stop smux before trying to start it, possibly again.

commit 0f1fefc972c3fdd7f4623a41d887ade135b222b7
Author: paul <paul>
Date:   Mon Oct 22 12:02:57 2007 +0000

    [news] Fix top-line version

commit ec5b6b2fd5943231cc49fca4d1e9df6025ca3415
Author: paul <paul>
Date:   Thu Oct 18 16:33:08 2007 +0000

    [tests] Forgot to commit ecommunity_tests.c

commit c1d7668853803656d4565dc18003c7affb0ea398
Author: paul <paul>
Date:   Sun Oct 14 22:32:21 2007 +0000

    [bgpd] Merge AS4 support
    
    2007-10-14 Paul Jakma <paul.jakma at sun.com>
    
    	* NEWS: Note that MRT dumps are now version 2
    	* (general) Merge in Juergen Kammer's AS4 patch.
    
    2007-09-27 Paul Jakma <paul.jakma at sun.com>
    
    	* bgp_aspath.c: (assegment_normalise) remove duplicates from
    	  from sets.
    	  (aspath_reconcile_as4) disregard a broken part of the RFC around
    	  error handling in path reconciliation.
    	* aspath_test.c: Test dupe-weeding from sets.
    	  Test that reconciliation merges AS_PATH and AS4_PATH where
    	  former is shorter than latter.
    
    2007-09-26 Paul Jakma <paul.jakma at sun.com>
    
    	* aspath_test.c: Test AS4_PATH reconcilation where length
    	  of AS_PATH and AS4_PATH is same.
    
    2007-09-25 Paul Jakma <paul.jakma at sun.com>
    
    	* bgp_open.c: (peek_for_as4_capability) Fix to work.
    	* bgp_packet.c: (bgp_open_receive) Fix sanity check of as4.
    	* tests/bgp_capability_test.c: (general) Extend tests to validate
    	  peek_for_as4_capability.
    	  Add test of full OPEN Option block, with multiple capabilities,
    	  both as a series of Option, and a single option.
    	  Add some crap to beginning of stream, to prevent code depending
    	  on getp == 0.
    
    2007-09-18 Paul Jakma <paul.jakma at sun.com>
    
    	* bgp_open.c: (bgp_capability_as4) debug printf inline with others.
    	  (peek_for_as4_capability) There's no need to signal failure, as
    	  failure is better dealt with through full capability parser -
    	  just return the AS4, simpler.
    	* bgp_packet.c: (bgp_open_receive) Update to match
    	  peek_for_as4_capability change.
    	  Allow use of BGP_AS_TRANS by 2b speakers.
    	  Use NOTIFY_OPEN_ERR rather than CEASE for OPEN parsing errors.
    	  (bgp_capability_msg_parse) missing argument to debug print
    	  (bgp_capability_receive) missing return values.
    	* tests/bgp_capability_test.c: (parse_test) update for changes to
    	  peek_for_as4_capability
    
    2007-07-25 Paul Jakma <paul.jakma at sun.com>
    
    	* Remove 2-byte size macros, just make existing macros take
    	  argument to indicate which size to use.
    	  Adjust all users - typically they want '1'.
    	* bgp_aspath.c: (aspath_has_as4) New, return 1 if there are any
    	  as4's in a path.
    	  (aspath_put) Return the number of bytes actually written, to
    	  fix the bug Juergen noted: Splitting of segments will change
    	  the number of bytes written from that already written to the
    	  AS_PATH header.
    	  (aspath_snmp_pathseg) Pass 2-byte flag to aspath_put. SNMP
    	  is still defined as 2b.
    	  (aspath_aggregate) fix latent bug.
    	  (aspath_reconcile_as4) AS_PATH+NEW_AS_PATH reconciliation
    	  function.
    	  (aspath_key_make) Hash the AS_PATH string, rather than
    	  just taking the addition of assegment ASes as the hash value,
    	  hopefully sligthly more collision resistant.
    	  (bgp_attr_munge_as4_attrs) Collide the NEW_ attributes
    	  together with the OLD 2-byte forms, code Juergen
    	  had in bgp_attr_parse but re-organised a bit.
    	  (bgp_attr_parse) Bunch of code from Juergen moves
    	  to previous function.
    	  (bgp_packet_attribute) Compact significantly by
    	  just /always/ using extended-length attr header.
    	  Fix bug Juergen noted, by using aspath_put's
    	  (new) returned size value for the attr header rather
    	  than the (guesstimate) of aspath_size() - the two could
    	  differ when aspath_put had to split large segments, unlikely
    	  this bug was ever hit in the 'wild'.
    	  (bgp_dump_routes_attr) Always use extended-len and
    	  use aspath_put return for header length. Output 4b ASN
    	  for AS_PATH and AGGREGATOR.
    	* bgp_ecommunity.c: (ecommunity_{hash_make,cmp}) fix
    	  hash callback declarations to match prototypes.
    	  (ecommunity_gettoken) Updated for ECOMMUNITY_ENCODE_AS4,
    	  complete rewrite of Juergen's changes (no asdot support)
    	* bgp_open.c: (bgp_capability_as4) New, does what it says
    	  on the tin.
    	  (peek_for_as4_capability) Rewritten to use streams and
    	  bgp_capability_as4.
    	* bgp_packet.c: (bgp_open_send) minor edit
    	  checked (in the abstract at least) with Juergen.
    	  Changes are to be more accepting, e.g, allow AS_TRANS on
    	  a 2-byte session.
    	* (general) Update all commands to use CMD_AS_RANGE.
    	* bgp_vty.c: (bgp_clear) Fix return vals to use CMD_..
    	  Remove stuff replicated by VTY_GET_LONG
    	  (bgp_clear_vty) Return bgp_clear directly to vty.
    	* tests/aspath_test.c: Exercise 32bit parsing. Test reconcile
    	  function.
    	* tests/ecommunity_test.c: New, test AS4 ecommunity changes,
    	  positive test only at this time, error cases not tested yet.
    
    2007-07-25 Juergen Kammer <j.kammer at eurodata.de>
    
    	* (general) AS4 support.
    	* bgpd.h: as_t changes to 4-bytes.
    	* bgp_aspath.h: Add BGP_AS4_MAX and BGP_AS_TRANS defines.
    	* bgp_aspath.c: AS_VALUE_SIZE becomes 4-byte, AS16_VALUE_SIZE
    	  added for 2-byte.
    	  Add AS16 versions of length calc macros.
    	  (aspath_count_numas) New, count number of ASes.
    	  (aspath_has_as4) New, return 1 if there are any as4's in a
    	  path.
    	  (assegments_parse) Interpret assegment as 4 or 2 byte,
    	  according to how the caller instructs us, with a new
    	  argument.
    	  (aspath_parse) Add use32bit argument to pass to
    	  assegments_parse. Adjust all its callers to pass 1, unless
    	  otherwise noted.
    	  (assegment_data_put) Adjust to be able to write 2 or 4 byte
    	  AS, according to new use32bit argument.
    	  (aspath_put) Adjust to write 2 or 4.
    	  (aspath_gettoken) Use a long for passed in asno.
    	* bgp_attr.c: (attr_str) Add BGP_ATTR_AS4_PATH and
    	  BGP_ATTR_AS4_AGGREGATOR.
    	  (bgp_attr_aspath) Call aspath_parse with right 2/4 arg, as
    	  determined by received-capability flag.
    	  (bgp_attr_aspath_check) New, code previously in attr_aspath
    	  but moved to new func so it can be run after NEW_AS_PATH
    	  reconciliation.
    	  (bgp_attr_as4_path) New, handle NEW_AS_PATH.
    	  (bgp_attr_aggregator) Adjust to cope with 2/4 byte ASes.
    	  (bgp_attr_as4_aggregator) New, read NEW_AGGREGATOR.
    	  (bgp_attr_parse) Add handoffs to previous parsers for the two
    	  new AS4 NEW_ attributes.
    	  Various checks added for NEW/OLD reconciliation.
    	  (bgp_packet_attribute) Support 2/4 for AS_PATH and
    	  AGGREGATOR, detect when NEW_ attrs need to be sent.
    	* bgp_debug.{c,h}: Add 'debug bgp as4'.
    	* bgp_dump.c: MRTv2 support, unconditionally enabled, which
    	  supports AS4. Based on patches from Erik (RIPE?).
    	* bgp_ecommunity.c: (ecommunity_ecom2str) ECOMMUNITY_ENCODE_AS4
    	  support.
    	* bgp_open.c: (peek_for_as4_capability) New, peek for AS4
    	  capability prior to full capability parsing, so we know which
    	  ASN to use for struct peer lookup.
    	  (bgp_open_capability) Always send AS4 capability.
    	* bgp_packet.c: (bgp_open_send) AS4 handling for AS field
    	  (bgp_open_receive) Peek for AS4 capability first, and figure
    	  out which AS to believe.
    	* bgp_vty.c: (bgp_show_peer) Print AS4 cap
    	* tests/aspath_test.c: Support asn32 changes, call aspath_parse
    	  with 16 bit.
    	* vtysh/extract.pl: AS4 compatibility for router bgp ASNUMBER
    	* vtysh/extract.pl.in: AS4 compatibility for router bgp ASNUMBER
    	* vtysh/vtysh.c: AS4 compatibility for router bgp ASNUMBER

commit ec99aa17ed4a6f0fa1197ebe451ce08163dc77de
Author: pilot <pilot>
Date:   Thu Oct 4 15:09:19 2007 +0000

    + pidfiles are now always created with 0644 perms instead if LOGFILE_MASK (0600)

commit 62fa1121673046a05cfbea5f96078f157a470438
Author: pilot <pilot>
Date:   Thu Oct 4 10:49:21 2007 +0000

    + rib_process() speedup for multi-nexthop route nodes

commit 932a9c104add252b9bb13bfcb460e8358efa252c
Author: pilot <pilot>
Date:   Wed Oct 3 12:27:16 2007 +0000

    + Minor bugfix: IPv6 prefixes were logged incorrectly in RIB debugging calls. Fixed.

commit bddddc2528dd175feacd14f763b5a887e717d00d
Author: paul <paul>
Date:   Tue Sep 18 18:07:18 2007 +0000

    [privs/Solaris] Quagga should work in zones with IP instances
    
    2007-09-18  Paul Jakma <paul.jakma at sun.com>
    
    	* privs.c: definition of ZCAP_NET_ADMIN on Solaris should
    	  be PRIV_SYS_IP_CONFIG, when that's available. Thus allowing
    	  Quagga to work with in Solaris zones with exclusive IP
    	  instances.

commit 8fc395c49ca24ac6a700f3b44f4a094874fefb0b
Author: paul <paul>
Date:   Tue Sep 18 12:11:26 2007 +0000

    [bgpd] Fix typo, which prevented advertisement of MP (non-IPv4) prefixes
    
    2007-09-17 Paul Jakma <paul.jakma at sun.com>
    
    	* bgp_open.c: (bgp_capability_mp) We were setting
    	  afc_nego[safi][safi] rather than afc_nego[afi][safi], thus
    	  failling to announce any non-IPv4 prefixes. Remove the extra,
    	  typo-ed character.
    	* bgp_capability_test.c: Test that peer's adv_recv and adv_nego get
    	  set correctly for MP capability and given AFI/SAFI.
    	  Colour OK/failed result so it's easier to find them.

commit 3d144689daca77af8068fdd8cc665dbfedb9d2dc
Author: pilot <pilot>
Date:   Tue Sep 18 09:03:13 2007 +0000

    + fix missing arg to zlog_warn()

commit bf29e7c38f97f9dee7aeb30b8f3ada4c87ee941d
Author: pilot <pilot>
Date:   Tue Sep 18 09:01:13 2007 +0000

    + fix minor regression in OSPF sending buffer adjustment logic

commit d3c31e99d04a740b1ec3077f48c5abb075634e6b
Author: pilot <pilot>
Date:   Fri Sep 14 14:56:28 2007 +0000

    + sayonara old_pid!

commit c3273834bc2fc09d74212a0a5723cf1808b58204
Author: pilot <pilot>
Date:   Fri Sep 14 13:31:52 2007 +0000

    + fixed bug #402: now the second zebra process doesn't destroy routes
      of the first one before dying
    + we are not going to receive routing messages originated by old_pid,
      because rib_sweep_route() is called after damon() now. This will allow
      to drop old_pid completely soon.

commit 2308b7bc49a0b57738de4dc34a6460f1576e4022
Author: pilot <pilot>
Date:   Fri Sep 14 11:31:55 2007 +0000

    Switch from LOOKUP() to lookup() for rtm_type (see bug #401 for details).

commit ae1d12b680a39bc249250115e1dea8f6c223cf54
Author: pilot <pilot>
Date:   Wed Sep 12 15:24:27 2007 +0000

    * rt_socket.c: (kernel_rtm_ipv4) prefix_buf could be passed
      to zlog_err() uninitialized with debug disabled. Fixed.

commit 9710867ce3fcddaab7dc4c66b4ecd8ee768fe957
Author: paul <paul>
Date:   Fri Sep 7 16:54:01 2007 +0000

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

commit 376ebca1a54b124c33c202fbea65bc4c63f523c0
Author: paul <paul>
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 at 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 at 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.

commit 241ca25d0d512a0cf71908ea0759fc71a57eb7a2
Author: pilot <pilot>
Date:   Thu Sep 6 14:34:41 2007 +0000

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

commit 487be1bab641b49f18e0be0bc3d628830fb898df
Author: paul <paul>
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 at 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 at 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.

commit 12565c4db8f1f8ff50da36cd5063b62c7f39c805
Author: paul <paul>
Date:   Thu Aug 23 23:22:02 2007 +0000

    [bgpd] Pass NOSUB to regexec
    
    2007-08-23 Paul Jakma <paul.jakma at 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.

commit 145d7ef8b69cccb5c415da16962c261c7a501613
Author: pilot <pilot>
Date:   Tue Aug 21 16:32:56 2007 +0000

    Bug #362 is fixed now.

commit 3bf3a9903982084a4b56488866719371947bd51d
Author: pilot <pilot>
Date:   Tue Aug 21 16:15:39 2007 +0000

    Looks like bug #320 is finally fixed now.

commit 6770d6fe71b33d65e255c2843ec6a3cc59a5f90f
Author: pilot <pilot>
Date:   Tue Aug 21 16:12:40 2007 +0000

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

commit a0536cff38cea9c67343f5e91ca0a00a8f35559a
Author: pilot <pilot>
Date:   Fri Aug 17 14:16:30 2007 +0000

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

commit 6113aee5c6bd635ff0869d29af2981bde26235c7
Author: pilot <pilot>
Date:   Tue Aug 14 09:46:48 2007 +0000

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

commit cd7af8958b703dde9f75d8ded37106d420d37c7b
Author: pilot <pilot>
Date:   Mon Aug 13 16:03:06 2007 +0000

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

commit 367abfb60028ca3af5d951d1e4362c919ee97005
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)

commit 63eb3054ca69e9e31da81d3f74771ca1568a4abb
Author: paul <paul>
Date:   Wed Aug 8 14:13:03 2007 +0000

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

commit 8e4db03e4318527e119e2f117585a66c37793bf1
Author: paul <paul>
Date:   Wed Aug 8 11:19:27 2007 +0000

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

commit 2d192a330b41f105157945fde45d1f2a6cfd0b9e
Author: paul <paul>
Date:   Tue Aug 7 18:49:18 2007 +0000

    [isisd] Add support for Solaris DLPI
    
    2007-08-07 James Carlson <james.d.carlson at 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.

commit 420692ec70367ad8d2429ecf3bcab7843863ec49
Author: paul <paul>
Date:   Tue Aug 7 16:22:05 2007 +0000

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

commit 9dc5038492d1608fbb0601ccde443c3d2d045988
Author: paul <paul>
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.

commit 610c53c8ef123d256f62bbe472a33908b7726eba
Author: paul <paul>
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 at 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

commit 1f3d9fc78b550c2bb80f9febe3cf5acb93623f1d
Author: gdt <gdt>
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.

commit 29999a2f6a8b47191ad61fff1f36d2e37f9becc5
Author: paul <paul>
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 at sun.com>
    
    	* ospf_lsa.c: (router_lsa_flags) Bug #331, NSSA regression caused
    	  caused ASBRs to not advertise E-bit into NSSA areas.

commit cecab5e9725792e60a5e4b473e238a14cd85815d
Author: paul <paul>
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 at 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>'

commit b20d0bbe698d94c28b1c5f34bea8f48ea3c27192
Author: paul <paul>
Date:   Mon Aug 6 15:21:45 2007 +0000

    [bgpd] cleanup, compact and consolidate capability parsing code
    
    2007-07-26 Paul Jakma <paul.jakma at 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).

commit dff6177e7d40fbd9b770c0d47e9f67c8068fa99d
Author: gdt <gdt>
Date:   Thu Aug 2 14:13:56 2007 +0000

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

commit 876b693ee548b21dafebb3120932a6944fcdd163
Author: gdt <gdt>
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

commit 6cda37430f289c59833b299f4f059b837ca280e3
Author: gdt <gdt>
Date:   Thu Aug 2 13:38:38 2007 +0000

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

commit 7df06c1480f8faf1d9e4b10166b636aacf7026c1
Author: gdt <gdt>
Date:   Thu Aug 2 13:37:30 2007 +0000

    note the use of GNU make extensions.

commit 73232ea6ecd5687582129cb55f2743a468616505
Author: gdt <gdt>
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.

commit 8fbf32d1065e964bbc76d2f26ebb7a893e1559a6
Author: gdt <gdt>
Date:   Thu Aug 2 13:23:57 2007 +0000

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

commit fae996b95097d86eb214246f18a7f37055941d88
Author: paul <paul>
Date:   Tue Jul 31 17:35:36 2007 +0000

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

commit 2df0f3ece56219618c2683b059f7fd537ddbd2cf
Author: paul <paul>
Date:   Fri Jul 27 16:48:55 2007 +0000

    2007-07-27 Paul Jakma <paul.jakma at sun.com>
    
    	* configure.ac: Bump version to 0.99.8

commit eae24b1a5af33cb94bc8d273014c8a95aeed1145
Author: ajs <ajs>
Date:   Fri Jul 6 17:00:24 2007 +0000

    [lib] Add comments regarding setsockopt_multicast_ipv4 arguments.
    
    2007-07-06 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* sockopt.{c,h}: (setsockopt_multicast_ipv4) Add some comments about
    	  the arguments.

commit d2709b9e648e55d0f33ee33d5d4ac2dc5fe40b6b
Author: paul <paul>
Date:   Wed Jun 27 11:12:38 2007 +0000

    [zebra] rib loop check for RIB_ENTRY_REMOVED checks wrong var
    
    2007-06-25 Denis Ovsienko
    
    	* zebra_rib.c: (rib_add_ipv4_multipath) Loop through RIB
    	  is using 'same' variable, but RIB_ENTRY_REMOVED check
    	  is testing the constant 'rib' variable, fix. Impact
    	  unknown at this point.

commit 122bc5d4276b933123c40827a696223ae3a39e9e
Author: hasso <hasso>
Date:   Mon Jun 25 19:30:59 2007 +0000

    2007-06-25 Hasso Tepper <hasso at quagga.net>
    
    	* configure.ac: Fix typo so it compiles again on BSD systems.

commit 8206c1372374edb69a56385b57d55e2dbf810225
Author: paul <paul>
Date:   Fri Jun 22 19:11:14 2007 +0000

    [bgpd] bug #368: Fix possible loop between peers going Idle<->OpenSent
    
    2007-06-22 Paul Jakma <paul.jakma at sun.com>
    
    	* bgp_fsm.c: (struct FSM) Bug #368. TCP Errors during OpenSent
    	  should cycle to Active, not to Idle or else peer bringup can
    	  race and cycle Idle<->Active. Reported and fix tested by
    	  Mukesh Agrawal.

commit c61376a3ecb45df549309357b8ddb2006259f7de
Author: paul <paul>
Date:   Fri Jun 22 16:14:42 2007 +0000

    [build] configure needs to check for struct icmphdr for IRDP
    
    2007-06-22 Paul Jakma <paul.jakma at sun.com>
    
    	* configure.ac: IRDP also depends on struct icmphdr, enabling
    	  only on in_pktinfo breaks when an OS acquires pktinfo, as
    	  Solaris NV has. Reported by Jim Carlson.

commit 2fab1afcdcb0f729ee35eeb6de78c5c8305e143f
Author: paul <paul>
Date:   Wed Jun 20 15:22:14 2007 +0000

    [vtysh] bug #371: vtysh forgets to print 'end' for write-terminal
    
    2007-06-20 Nicolas Deffayet <nicolas at deffayet.com>
    
    	* vtysh.c: (vtysh_write_terminal) Write 'end' when done,
    	  to be consistent with telnet vty, and expected by tools
    	  like rancid.

commit cc805779aaa2e0d3599b87aa6ad572911f5a0968
Author: paul <paul>
Date:   Thu Jun 14 11:17:58 2007 +0000

    [bgpd] bug #370, default-originate was broken by a silly thinko
    
    2007-05-25 Paul Jakma <paul.jakma at sun.com>
    
    	* bgp_route.c: (bgp_default_originate) Sanity check added
    	  previously was broken and always failed, thus this function
    	  never could run, bug #370.

commit f3a941ac36c30a2c2e853f4f41e25f4c615c00d5
Author: ajs <ajs>
Date:   Thu Jun 7 13:11:58 2007 +0000

    [ospf6d] Fix silly bug: muse use strcmp to compare strings
    
    2007-06-07 Pavol Rusnak <prusnak at suse.cz>
    
    	* ospf6_lsa.c: (no_debug_ospf6_lsa_hex_cmd) Fix bug: must use strcmp
    	  to compare strings.

commit 7faa2b1518cb0ea9566e683a8ab315d2adb7652c
Author: ajs <ajs>
Date:   Fri Jun 1 13:21:20 2007 +0000

    [linux] Fix strange compilation problem by explicitly including <linux/types.h>
    
    2007-06-01 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* zebra.h: On linux, we seem to need to include <linux/types.h> before
    	  <sys/sysctl.h>, otherwise we get isisd compilation errors about
    	  __be16 not being defined.

commit a84ac5f61e153dcb5703589324fd252ecf57827c
Author: ajs <ajs>
Date:   Wed May 30 20:10:34 2007 +0000

    [zebra] Trivial patches so we can compile when IPv6 is not enabled
    
    2007-05-30 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* zebra_routemap.c: (route_set_src_compile) Use '#ifdef HAVE_IPV6'
    	  as needed.
    	* zebra_vty.c: (vty_show_ip_route_detail, vty_show_ip_route) Use
    	  '#ifdef HAVE_IPV6' as needed.
    	  (show_ip_protocol) Move function definition outside of
    	  '#ifdef HAVE_IPV6' section.

commit 15f92dc4cd5c5b433dc530901409c7f9a4863759
Author: ajs <ajs>
Date:   Thu May 17 15:00:41 2007 +0000

    [PtP] Fix BSD problems with PtP interfaces: must treat RTA_BRD as peer address
    
    2007-05-17 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* kernel_socket.c: (ifam_read_mesg) Grab RTA_DST and RTA_GATEWAY
    	  addresses from the message (if present, which seems unlikely on
    	  current BSD platforms), and show them in the debug messages.
    	  Also, add ifam_flags to the debug messages.
    	  (ifam_read) If the interface is point-to-point, then the RTA_BRD
    	  address should be treated as a peer address.

commit 76df3043e6b4e4a4f6c8f1a56cabd0fc5ef04350
Author: paul <paul>
Date:   Thu May 10 17:05:16 2007 +0000

    [autoconf] Fix missing space character in previous commit

commit 89510b0a476de0c12de5d91a5605d127bd8989e2
Author: paul <paul>
Date:   Thu May 10 16:53:04 2007 +0000

    [autoconf] GNU_SOURCE can be defined twice, through AC_FUNC_STRNLEN
    
    2007-05-10 Paul Jakma <paul.jakma at sun.com>
    
    	* configure.ac: Use AC_GNU_SOURCE to define _GNU_SOURCE, rather
    	  than having lib/zebra.h do it.
    	  AC_FUNC_STRNLEN has side-effects with latest autoconf, use
    	  AC_CHECK_FUNC on strnlen instead.
    	* lib/zebra.h: Don't try define _GNU_SOURCE, autoconf should do it.

commit 3634f82a121d9ff9bf14bcd585e71c7082e472d2
Author: paul <paul>
Date:   Thu May 10 16:52:26 2007 +0000

    [autoconf] add back check for inet_aton
    
    2007-05-10 Paul Jakma <paul.jakma at sun.com>
    
    	* configure.ac: Add back check for inet_aton, which got dropped
    	  somehow in previous jumbo patch.

commit 976e6a498f2457b559e40d7eebf45e551694f077
Author: paul <paul>
Date:   Thu May 10 03:00:09 2007 +0000

    [ospfd] Fix address qualified 'ip ospf auth' commands
    
    2007-05-09 Milan Kocian <milon at wq.cz>
    
    	* ospf_vty.c: Fix commands: 'ip ospf authentication A.B.C.D',
    	  'no ip ospf authentication A.B.C.D', 'no ip ospf
    	  authentication-key A.B.C.D'. Simply fix argv's indexes and
              argc check in DEFUN functions.

commit 66afda8a04f8fe0a64a4b4a5a94348b65f561885
Author: paul <paul>
Date:   Thu May 10 02:38:51 2007 +0000

    [autoconf] bugs 162,303,178: Fix 'present but can not be compiled' warnings
    
    2007-05-09 Paul Jakma <paul.jakma at sun.com>
    
    	* configure.ac: sys/conf.h depends on sys/param.h, at least on
    	  FBSD 6.2.
    	  (bug #363) Should check for in_pktinfo for IRDP
    
    2006-05-27 Paul Jakma <paul.jakma at sun.com>
    
    	* configure.ac: General cleanup of header and type checks, introducing
    	  an internal define, QUAGGA_INCLUDES, to build up a list of
    	  stuff to include so as to avoid 'present but cant be compiled'
    	  warnings.
    	  Misc additional checks of things missing according to autoscan.
    	  Add LIBM, for bgpd's use of libm, so as to avoid burdening
    	  LIBS, and all the binaries, with libm linkage.
    	  Remove the bad practice of using m4 changequote(), just
    	  quote the []'s in the case statements properly.
    	  This should fix bugs 162, 303 and 178.
    	* */*.{c,h}: Update all HAVE_* to the standard autoconf namespaced
    	  HAVE_* defines. I.e. HAVE_SA_LEN -> HAVE_STRUCT_SOCKADDR_SA_LEN,
    	* bgpd/Makefile.am: Add LIBM to bgpd's LDADD, for pow().

commit e352b56272789f2afe9c0ab2f066935431282389
Author: paul <paul>
Date:   Mon May 7 16:38:35 2007 +0000

    [ospfd] Bug #330 regression: Fix ospf_spf_add_parent assert
    
    2007-05-07 Paul Jakma <paul.jakma at sun.com>
    
    	* ospf_spf.c: (ospf_vertex_new) Dont init vertices to infinity,
    	  just let 0 be a special case.
    	  (ospf_spf_add_parent) 0 distance candidate vertex is special,
    	  cost still to be initialised - asserting that new distance
    	  is <= existing only makes sense where w already has a cost.
    	  (ospf_spf_next) Infinite cost links should not be followed,
    	  bar those of the root.

commit 932cb1fbf80f1cc620c472dd6188c44b721a7416
Author: paul <paul>
Date:   Fri May 4 20:15:47 2007 +0000

    [bgpd] Trim memory usage of BGP routes
    
    2007-05-03 Paul Jakma <paul.jakma at sun.com>
    
    	* bgp_route.h: (struct info) Move less frequently used
    	  fields to a lazily allocated struct info_extra.
    	  Export bgp_info_extra_get
    	* bgp_route.c: (bgp_info_extra_new) allocate extra
    	  (bgp_info_extra_free) Free damp info and the info_extra.
    	  (bgp_info_extra_get) Retrieve the info_extra of a struct
    	  info, allocating as required.
    	  (generally) adjust to use info->extra
    	* bgp_damp.c: (generally) use bgp_info_extra_get to access
    	  dampinfo
    	* bgp_attr.h: Move rarely allocated attributes from struct attr
    	  to a struct attr_extra, for a substantial saving in size of
    	  struct attr.
    	* bgp_attr.c: (bgp_attr_extra_{new,free}), new, self-explanatory.
    	  (bgp_attr_extra_get) Get the attr_extra for a given struct
    	  attr, allocating it if needs be.
    	  (bgp_attr_dup) Shallow copy the struct attr and its attr_extra.
    	  (generally) adjust to know about attr->extra.
    	* bgp_debug.c: (bgp_dump_attr) ditto
    	* bgp_vty.c: (show_bgp_memory) print attr and info extra sizes.
    	* bgp_nexthop.c: (generally) adjust to know about attr->extra
    	  and info->extra.
    	* bgp_{packet,routemap,snmp,zebra}.c: ditto
    	* lib/memtypes.c: Add MTYPE_ATTR_EXTRA and MTYPE_BGP_ROUTE_EXTRA

commit 439093ecf05d6df2b51d0534114a07e9a93b7b5b
Author: paul <paul>
Date:   Fri May 4 20:13:20 2007 +0000

    [zebra] Add zebra_routemap.c
    
    	* zebra_routemap.c should have been in the commit of Steven's
    	  routemap patch.

commit fb6ce7ca5dfee02536e32ec5c76be7ae8737cb4e
Author: paul <paul>
Date:   Wed May 2 16:05:35 2007 +0000

    [zebra] Routemap support on received routes, with 'set src' command (linux)
    
    2007-05-01 David L Stevens <dlstevens at us.ibm.com>
    
    	* (general) These changes collectively add route-map and
    	  prefix-list support to zebra and fix a bug in "show
    	  route-map" (with no argument).
    	* doc/main.texi: added route-map, prefix-list, ip protocol
    	  and set src documentation
    	* lib/command.h: added PROTOCOL_NODE type
    	* lib/log.c: (proto_name2num) new function, protocol name to
    	  number translation.
    	* lib/routemap.c: (vty_show_route_map) fixed "show route-map"
    	  without route-map name
    	* lib/routemap.h: added RMAP_ZEBRA type
    	* lib/zebra.h: added proto_name2num() prototype
    	* vtysh/extract.pl.in: added VTYSH_ZEBRA flag for route-map and
    	  plist
    	* vtysh/Makefile.am: added zebra_routemap.c
    	* vtysh/vtysh.h: added VTYSH_ZEBRA flag to VTYSH_RMAP
    	* zebra/connected.c: (connected_up_ipv4) added src preference argument
    	  to rib_add_ipv4()
    	* zebra/kernel_socket.c: (rtm_read) ditto
    	* zebra/main.c: added prefix list initialization
    	* zebra/Makefile.am: added zebra_routemap.c source file
    	* zebra/rib.h: added generic address union "g_addr" and use in
    	  existing places that had an explicit union.
    	  Added "src" to struct nexthop.
    	  Added preferred src arg to nexthop_ipv4_add and rib_add_ipv4.
    	* zebra/rt_netlink.c: (netlink_routing_table) set preferred source on
    	  netlink messages.
    	  (netlink_route_change) ditto
    	  (netlink_route_multipath) ditto.
    	* zebra/rtread_getmsg.c: (handle_route_entry) added (NULL) src to
    	  rib_add_ipv4() call.
    	* zebra/rtread_proc.c: (proc_route_read) ditto
    	* zebra/zebra_rib.c: (nexthop_ipv4_add) add src argument.
    	  (nexthop_ipv4_ifindex_add) ditto
    	  (rib_add_ipv4) ditto
    	  (nexthop_active_check) Add route-map processing.
    	* zebra/zebra_routemap.c: new file for zebra route-map commands.
    	* zebra/zebra_vty.c: (ip_protocol_cmd) Apply route-map to protocol
    	  (vty_show_ip_route_detail) added "src" printing
    	  (vty_show_ip_route) ditto
    	  (show_ip_protocol_cmd) new command, list routemaps.
    	  (config_write_protocol) write out routemap protocl config.
    	  (zebra_vty_init) Install the new routemap protocol commands.
    	* zebra/zserv.c: (zread_ipv4_add) added (NULL) src arg
    	  (zebra_init) init zebra route-maps.
    	* zebra/zserv.h: add zebra_route_map_init

commit c69790c5465dc87f6c9e136328158c87a111bf2a
Author: ajs <ajs>
Date:   Mon Apr 30 19:14:08 2007 +0000

    [build] Improve portability by invoking gcc with -std=gnu99 instead of -std=c99
    
    2007-04-30 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* configure.ac: Change gcc CFLAGS from '-std=c99' to '-std=gnu99'
    	  to improve portability.

commit 9eee1cadf2cc2f49d43177259ae30458c5f58ef4
Author: ajs <ajs>
Date:   Mon Apr 30 16:52:05 2007 +0000

    [ospfd] network command now behaves more logically when a peer prefix is defined
    
    2007-04-30 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* ospfd/ospfd.c: (ospf_network_match_iface) Comment out
    	  COMPATIBILITY_MODE.  Going forward, the ospf "network" command
    	  will use a simple test: does the network command prefix
    	  contain the connected (destination) prefix of the interface?
    	* doc/ospfd.texi: Add a paragraph to the description of the OSPFv2
    	  network command to explain how we handle interfaces with
    	  peer addresses.

commit c96d9379e0973589482cb130bdea7aa8ad1eaabf
Author: paul <paul>
Date:   Sun Apr 29 20:13:35 2007 +0000

    [0.99] Version bump to 0.99.7
    
    2007-04-29 Paul Jakma <paul.jakma at sun.com>
    
    	* configure.ac: Bump to 0.99.7

commit b8c9ca468e536fc8f3ca0f528a5eccbd0efc229d
Author: paul <paul>
Date:   Sun Apr 29 18:31:07 2007 +0000

    [bgpd] Use defines for default weight
    
    2007-04-22 Sebastien Tandel <sebastien at tandel.be>
    
    	* bgp_attr.h : Definition of BGP_ATTR_DEFAULT_WEIGHT.
    	* bgp_attr.c : (bgp_attr_default_intern) now uses
    	  bgp_attr_default_set instead of duplicating the same code.
    	  (general) Use of BGP_ATTR_DEFAULT_WEIGHT. Replace two 16 by
    	  IPV6_MAX_BYTELEN.

commit ecc21b46cd3bc078777eb387b61b8ec929cad220
Author: paul <paul>
Date:   Sun Apr 29 18:25:17 2007 +0000

    [bgpd] Fix warnings: hash callbacks should match hash API declarations
    
    2007-04-22 Sebastien Tandel <sebastien at tandel.be>
    
    	* bgp_advertise.c : (baa_hash_alloc, baa_hash_key, baa_hash_cmp)
    	  conforms to quagga hash API. Defines _hash_[alloc|key|cmp] with
    	  void * arguments as defined by the API.
    	* bgp_aspath.c,h : (aspath_key_make) conforms to quagga hash API.
    	  Defines _hash_[alloc|key|cmp] with void * arguments as defined by
    	  the API.
    	* bgp_attr.c,h : (cluster_hash_alloc, cluster_hash_key_make,
    	  cluster_hash_cmp, transit_hash_alloc, transit_hash_key_make,
    	  transit_hash_cmp, attrhash_key_make, attrhash_cmp,
    	  bgp_attr_hash_alloc) conforms to quagga hash API. Defines
    	  _hash_[alloc|key|cmp] with void * arguments as defined by the API.

commit 86b06c86337b7d4fa8f6686ede7d2aebb32891e9
Author: paul <paul>
Date:   Sun Apr 29 17:32:08 2007 +0000

    [zebra/solaris] fix if_get_index passing wrong arg to lifreq_set_name
    
    2007-04-29 Paul Jakma <paul.jakma at sun.com>
    
    	* if_ioctl_solaris.c: (if_get_index) Fix bogus argument passed
    	  to lifreq_set_name().

commit 2997ba49ce6e80bf3ab8bd8836b57a89469c0ddf
Author: paul <paul>
Date:   Sun Apr 29 16:50:46 2007 +0000

    [zebra] Fix merge error in previous solaris changeset
    
    2007-04-29 Paul Jakma <paul.jakma at sun.com>
    
    	* ioctl{_solaris,}.c: (if_get_mtu) Fix missing ; in last commit.

commit d108165de1b0ab760d996e1c297d888e08618d99
Author: ajs <ajs>
Date:   Sun Apr 29 15:48:22 2007 +0000

    [logging] Minor performance tweak
    
    2007-04-29 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* log.c: (quagga_timestamp) Optimize the subsecond timestamp generation.

commit 3f22ce86e6da9e2109bb4ef465ec11c5caf43432
Author: ajs <ajs>
Date:   Sun Apr 29 15:24:15 2007 +0000

    [logging] Add new "log timestamp precision" command for subsecond timestamps
    
    2007-04-29 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* basic.texi: Document the new 'log timestamp precision' command.

commit 28938ce590318f4f4751626f576821aa7c7ca4cd
Author: ajs <ajs>
Date:   Sun Apr 29 03:53:31 2007 +0000

    [logging] Add new "log timestamp precision" command for subsecond timestamps
    
    2007-04-28 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* vtysh.c: (vtysh_log_timestamp_precision,
    	  no_vtysh_log_timestamp_precision) Implement new log timestamp
    	  precision commands: send to all daemons.
    	  (vtysh_init_vty) Install new log timestamp precision commands.

commit 870a1b5e5b7a25411fdb9c66d3a90ff463d8535e
Author: ajs <ajs>
Date:   Sat Apr 28 22:14:10 2007 +0000

    [logging] Add new "log timestamp precision" command for subsecond timestamps
    
    2007-04-28 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* command.c: (config_write_host) Save "log timestamp precision"
    	  if not default value.
    	  (show_logging) Show configured timestamp precision.
    	  (config_log_timestamp_precision) Enable configuration of timestamp
    	  precision.
    	  (no_config_log_timestamp_precision) Restore default timestamp
    	  precision.
    	  (cmd_init) Install new timestamp precision commands.
    	* log.h: (struct zlog) New timestamp_precision field.
    	  (quagga_timestamp) New function to generate a timestamp with the
    	  desired precision.
    	  (struct timestamp_control) Declare a structure for use in avoiding
    	  repeated duplicate calls to quagga_timestamp.
    	* log.c: (quagga_timestamp) New function to generate a timestamp
    	  of the desired precision.
    	  (time_print) Call quagga_timestamp if the time hasn't already been
    	  calculated.
    	  (vzlog) Initialize a timestamp_control structure and pass it to
    	  time_print and vty_log.
    	  (zlog_backtrace) Fix 64-bit problem: cannot print size_t with %u.
    	* vty.h: Must now include "log.h".
    	  (vty_log) Takes an additional struct timestamp_control argument.
    	* vty.c: (vty_log_out) Use new struct timestamp_control and new
    	  quagga_timestamp function to print timestamps of the desired
    	  precision.
    	  (vty_time_print) Use new quagga_timestamp function.
    	  (vty_log) Accept new struct timestamp_control argument and pass it
    	  down to vty_log_out.

commit 11fbf18fb9b0712c3c963c7f335c4b708e359045
Author: ajs <ajs>
Date:   Fri Apr 27 18:13:15 2007 +0000

    [64-bit] Fix 4 problems with printf formats and 64-bit size_t
    
    2007-04-27 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* lib/smux.c: (smux_trap) Fix printf format to work with 64-bit size_t.
    	* ospf6d/ospf6_snmp.c: (ospfv3AreaEntry, ospfv3AreaLsdbEntry) Fix some
    	  zlog_debug printf formats to work with 64-bit size_t.

commit 6c44cd4095599ad96ff750c8a64973a513f93eed
Author: ajs <ajs>
Date:   Fri Apr 27 18:03:11 2007 +0000

    [ripd, ripngd] Remove useless code in rip_vty_out_uptime function
    
    2007-04-27 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* ripd/ripd.c: (rip_vty_out_uptime) Remove unused variable timer_now.
    	* ripngd/ripngd.c: (ripng_vty_out_uptime) Remove unused variable
    	  timer_now.

commit 1ab7eee16a111011fc5b12660d3490db9de2209c
Author: ajs <ajs>
Date:   Sat Apr 21 20:46:31 2007 +0000

    [ospfd] Fix bug in 'passive-interface default' behavior
    
    2007-04-21 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* ospf_interface.c: (ospf_if_set_multicast) Fix bug: was testing
    	  interface passive status improperly in light of the recent
    	  'passive-interface default' patch.  Now need to test
    	  OSPF_IF_PASSIVE_STATUS(oi) instead of
    	  OSPF_IF_PARAM(oi, passive_interface).

commit b0d83a468da6c71810b1a93ea7a2e215d00432a8
Author: dyoung <dyoung>
Date:   Mon Apr 16 23:13:01 2007 +0000

    Use 'path (category)' form.

commit f1eaadbd69152da75917f652ffbb52cd33194a6d
Author: dyoung <dyoung>
Date:   Mon Apr 16 23:11:19 2007 +0000

    Note my change to zebra/connected.c.

commit 9d0392fdbe6cbb796102c2cb55f5ad33312e4456
Author: dyoung <dyoung>
Date:   Mon Apr 16 05:54:02 2007 +0000

    Only suppress adding a connected route to the kernel if it is
    already marked "real" (ZEBRA_IFC_REAL), i.e., "in kernel." According
    to Paul Jakma, this probably fixes Quagga bug #202.

commit 8bb64b758588a85a7cc389bec78937c298a933c0
Author: ajs <ajs>
Date:   Sun Apr 15 19:17:24 2007 +0000

    [bgpd] Minor performance improvement patch
    
    2007-04-15 Sebastien Tandel <sebastien at tandel.be>
    
    	* bgp_aspath.c: (aspath_as_add, aspath_segment_add) Minor performance
    	  optimization: while loop should test one pointer instead of two.

commit 89e6a961d0cacb5ea74e2144078e018cf660c092
Author: vincent <vincent>
Date:   Thu Apr 12 07:43:49 2007 +0000

    Fix the display of some timers. (show ipv6 ripng and show ipv6 ripng status)

commit 4401fc12253ecfbe5fe78d070394c6d92d454008
Author: vincent <vincent>
Date:   Wed Apr 11 15:12:05 2007 +0000

    Fix the display of route timeout in "show ip rip". (Use thread_timer_remain_second)

commit 7c2602a1df9aaeec980d05683ca88890315d0bc5
Author: paul <paul>
Date:   Tue Apr 10 19:43:43 2007 +0000

    [zebra] MTU change should propogate to zserv client on BSD/Solaris
    
    2007-04-10 Paul Jakma <paul.jakma at sun.com>
    
    	* ioctl{_solaris,}.c: (if_get_mtu) Ping clients via
              zebra_interface_up_update if MTU is changed.

commit 3e3ddfe0eaec1c2fbf85e3e2692d15fe0d017455
Author: paul <paul>
Date:   Tue Apr 10 19:36:48 2007 +0000

    [bgpd] Bug #354: Take care to keep reads of MP_(UN)REACH_NLRI in bounds
    
    2007-04-08 Paul Jakma <paul.jakma at sun.com>
    
    	* bgp_attr.c: (general) Bug #354: parsing of MP_REACH_NLRI and
    	  MP_UNREACH_NLRI does not take sufficient care to ensure reads
    	  from stream buffer stay in-bounds. Hence bgpd may attempt to read
    	  beyond end of stream, if given a crafted packet. As it uses the
    	  stream access methods to do so, this will typically result in
    	  assert() being hit in stream.c. Where code is compiled without
    	  assert() enabled, result is unknown.
    	  (struct message attr_str) should be static.
    	  (bgp_mp_reach_parse) Carefully check length remaining in stream
    	  against amount desired to read from stream, prior to each read,
    	  particularly where lengths are conditional on data obtained from
    	  stream - using STREAM_READABLE.
    	  Remove code to parse SNPA-number, it's a defunct field and changed
    	  to a fixed size in latest BGP MP update RFC - log warning if
    	  SNPA-number is not 0.
    	  (bgp_mp_unreach_parse) Check withdraw_length carefully against
    	  STREAM_READABLE.
    	  (bgp_attr_parse) If attribute-parser function returns error, log
    	  warning.
    	  Log attribute type on mismatch.

commit f777db6d305cfba4a4b2bb367aa9b440213eff9a
Author: paul <paul>
Date:   Tue Apr 10 19:32:10 2007 +0000

    [bgpd] V. quick route flap gets mistaken for duplicate, route is then ignored
    
    2007-04-08 Paul Jakma <paul.jakma at sun.com>
    
    	* bgp_route.c: (general) Same bug as fixed on 2006-11-28 by ajs for
    	  bgp static routes, but for main BGP RIB: Quick 'flap' of routes
    	  can cause bgpd to mistake a new route for a duplicate route,
    	  due to presence of removed, but not yet processed BGP RIB entry.
    	  (bgp_update_rsclient) Ignore REMOVED bgp_info for duplicate,
    	  restore route instead.
    	  (bgp_update_main) Ditto.

commit 760499ccb836bdd300687474ecc689d90e7c5dc9
Author: paul <paul>
Date:   Tue Apr 10 19:30:20 2007 +0000

    [zebra] Retain configured IPv4 address upon removal by kernel
    
    2007-04-08 Paul Jakma <paul.jakma at sun.com>
    
    	* interface.c: (if_delete_update) Address removal triggered
    	  by kernel shouldn't remove configured IPv4 address from connected
    	  list.

commit 253f5780556115e52717926df555390b97f34eb7
Author: paul <paul>
Date:   Tue Apr 10 19:28:04 2007 +0000

    [testzebra] stubs should call kernel_address_add on IP address install
    
    2007-04-08 Paul Jakma <paul.jakma at sun.com>
    
    	* {ioctl,kernel}_null.c: Install of IP address should
    	  reflect back to zebra via kernel_address_add..., makes
    	  testzebra more useful.

commit 7450a19a3407361bdbc91b07dc8b50ba363a7dce
Author: paul <paul>
Date:   Tue Apr 10 19:24:45 2007 +0000

    [zebra] Bug #351: Don't redistribute routes to ipv4 link-local prefixes
    
    2007-04-07 Paul Jakma <paul.jakma at sun.com>
    
    	* lib/prefix.h: Add define to match IPv4 Link-Local addresses
    	* zebra/redistribute.c: (zebra_check_addr) Don't redistribute routes
    	  to IPv4 link-local prefixes, fixes bug #351.
    	* zebra/redistribute.h: Export zebra_check_addr.
    	* zebra/router-id.c: (router_id_bad_address) re-use zebra_check_addr
    	  rather than implementing similar logic.

commit d3fbe6e66cb381516b8450cdbba581c2f6a0bf29
Author: paul <paul>
Date:   Tue Apr 10 19:20:29 2007 +0000

    [bgpd] bug #352: IPv6/Multicast address-family config not written out
    
    2007-04-07 Paul Jakma <paul.jakma at sun.com>
    
    	* bgpd.c: (general) Fix bug #352
    	  (bgp_config_write_family_header) write ipv6/multicast
    	  address family header.
    	  (bgp_config_write) write out ipv6 multicast AF config.

commit a367c20ba477455db5a2582eda516434393fe5d0
Author: paul <paul>
Date:   Fri Mar 23 11:19:08 2007 +0000

    [ospfd] Bug #330 regression: failure to calculate routes through networks
    
    2007-03-23 Paul Jakma <paul.jakma at sun.com>
    
    	* ospf_spf.c: (ospf_nexthop_calculation) Fix silly regression
    	  causing ospfd to fail to calculate paths past networks not
    	  attached to root vertex, introduced with bug #330 fixes.

commit daf98eb6569acbe896c9e837d75f2b4ebf5afcc4
Author: paul <paul>
Date:   Fri Mar 23 11:17:28 2007 +0000

    [ospfd] Instrument ospf_spf with more debug log messages
    
    2007-03-23 Paul Jakma <paul.jakma at sun.com>
    
    	* ospf_spf.c: (various) Add more debug statements.

commit ac7ace4a823a3e2e35ca73e6cc6b3e943e44115c
Author: ajs <ajs>
Date:   Wed Mar 21 21:03:44 2007 +0000

    [doc] Makefile VPATH patch
    
    2007-03-21 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* Makefile.am: Patch rule for draft-zebra-00.txt to work
    	  in VPATH build environments.

commit d7044bc6326d650cac62504427cfc5af7675b3ed
Author: ajs <ajs>
Date:   Wed Mar 21 18:57:38 2007 +0000

    [ripd] Fix "show ip rip status" display of time until next update
    
    2007-03-21 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* ripd.c: (show_ip_rip_status) Use new thread_timer_remain_second
    	  function instead of rip_next_thread_timer to display the time until
    	  next update properly.
    	  (rip_next_thread_timer) Remove obsolete function.

commit 2afa1544a80c883d534701626c467c446353cf3b
Author: ajs <ajs>
Date:   Tue Mar 20 20:48:27 2007 +0000

    [lib] Make message lookup function more robust.
    
    2007-03-20 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* log.c: (mes_lookup) Make the function more robust: check for
    	  cases where the index does not match the key value at that position.
    	  If so, give a warning and fall back to a linear search.
    	  And improve the error message in cases where even that fails.

commit bf31e2f961211bb3ccfbe5e76afdf0134b216a72
Author: ajs <ajs>
Date:   Wed Mar 14 22:05:18 2007 +0000

    [ospfd] Return SNMP standard neighbor state values, not quagga internal ones
    
    2007-03-14 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* ospf_snmp.c: (ospf_snmp_neighbor_state) New function to
    	  map internal quagga neighbor states to SNMP standard values.
    	  (ospfNbrEntry) Call new ospf_snmp_neighbor_state function.

commit bc9cc94ba54dde3f36743df17ab26f51e276e383
Author: ajs <ajs>
Date:   Wed Mar 14 20:21:43 2007 +0000

    [ospfd] Fix two debug messages that used inet_ntoa more than once
    
    2007-03-14 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* ospf_zebra.c: (ospf_zebra_add, ospf_zebra_delete) Fix bug
    	  where inet_ntoa was used twice in the same debug message,
    	  which doesn't work because there's a single shared buffer
    	  for the returned string.  The fix is to use inet_ntop.

commit b58cef00a0e1f9f88d76e581b90e2ed30c53fb62
Author: paul <paul>
Date:   Thu Mar 8 17:50:01 2007 +0000

    [ospf6d] Bug 322: ospf6d show ipv6 neighbour showing wrong times
    
    2007-03-08 David Siebörger d.sieborger at ru.ac.za
    
    	* ospf6_neighbor.c: (ospf6_neighbor_show) Fix bug #322, ospf6d
    	  wasn't updated to match thread times changing to relative
    	  time.

commit fc18121589a2fecd71cf300c277b49c8c3696854
Author: paul <paul>
Date:   Tue Mar 6 13:43:05 2007 +0000

    [zebra] Fix interface metric bug on BSD
    
    2007-03-06 Paul Jakma <paul.jakma at sun.com>
    
    	* kernel_socket.c: (ifam_read) Do not update interface metric on
    	  receipt of NEW/DEL ADDR messages, bogus as: a) some systems
    	  dont include iface metric for address events b) we didn't
    	  update clients either. Initial diagnosis by Eugene Grosbein.

commit 877127ceaed35f30e9df6f74ecce761676654cb8
Author: ajs <ajs>
Date:   Tue Feb 27 15:24:36 2007 +0000

    [ospf6d] Fix string comparison bug in ospf6_lsa_handler_name.
    
    2007-02-27  Pavol Rusnak <prusnak at suse.cz>
    
    	* ospf6_lsa.c: (ospf6_lsa_handler_name) Fix bug: must use strcmp
    	  to compare strings.

commit 4b81db8d5d2e4b0db4a34d9007d0227416380588
Author: ajs <ajs>
Date:   Tue Feb 27 13:55:46 2007 +0000

    [ospfd] Fix bug: should exit immediately on SIGTERM if OSPF not actually running
    
    2007-02-27 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* ospfd.c: (ospf_terminate) Exit immediately if ospf is not
    	  actually running (e.g. the config file was empty).  Fixes
    	  bug where SIGTERM would not kill ospfd.

commit a116ca11a4979744cb59e17c05da78691fbc3b2a
Author: paul <paul>
Date:   Mon Feb 26 17:14:48 2007 +0000

    [ospfd] Fix regression in SPF introduced by bug#330 fixes
    
    2007-02-26 Paul Jakma <paul.jakma at sun.com>
    
    	* ospf_spf.c: Fix regression introduced with bug #330 fix: The
    	  cost update added to ospf_spf_add_parent only handled PtP
    	  case, differing from same functionality in higher-level
    	  ospf_spf_next. Regression diagnosed by Anders Pedersen,
    	  mailnews+router-quagga-dev at news.cohaesio.com.
    	  (ospf_vertex_new) Initialise vertices to max-cost.
    	  (ospf_spf_init) Root vertex always creates with 0 cost.
    	  (ospf_spf_add_parent) Remove the buggy V->W cost calculating
    	  code, instead take the new distance as a parameter.
    	  (ospf_nexthop_calculation) Take distance as parameter, so it
    	  can be passed down to add_parent.
    	  (ospf_spf_next) Dont initialise candiate vertex distance,
    	  vertex_new does so already. Pass distance down to
    	  nexthop_calculation (see above).

commit f4c334e8032b1d9201d61cbba4efc7ca238d2533
Author: paul <paul>
Date:   Mon Feb 26 17:11:45 2007 +0000

    [zebra] IRDP should ignore non-IPv4 addresses
    
    2007-02-26 Robert Olsson <Robert.Olsson at data.slu.se>
    
    	* irdp_main.c: (irdp_send_thread) Skip non-AF_INET addresses,
    	   i.e. do not try interpret IPv6 addresses as IPv4 addresses
    	   to broadcast in IRDP announcements..

commit 20c0f6917a0845557660d30e8eeadb2ce9ff0ec5
Author: paul <paul>
Date:   Thu Feb 22 17:55:20 2007 +0000

    [solaris] Add licence boilerplate to files for clarity
    
    2007-02-22 Paul Jakma <paul.jakma at sun.com>
    
    	* quagga.{xml,init}.in: Add licence boilerplate to ensure
    	  licence terms are clear.

commit d1a809bbfd69938d22233e077690aaeb8ce0c168
Author: paul <paul>
Date:   Thu Feb 22 17:48:42 2007 +0000

    [bgpd] Peer delete can race with reconfig leading to crash
    
    2007-02-22 Paul Jakma <paul.jakma at sun.com>
    
    	* bgp_fsm.c: (bgp_fsm_change_status) Handle state change into
    	  clearing or greater here. Simpler.
    	  (bgp_event) Clearing state change work moved to previous
    	* bgp_route.c: (bgp_clear_route_node) Clearing adj-in here
    	  is too late, as it leaves a race between a peer being deleted
    	  and an identical peer being configured before clearing
    	  completes, leading to a crash.
    	  Simplest fix is to clean peers Adj-in up-front, rather than
    	  queueing such work.
    	  (bgp_clear_route_table) Clear peer's Adj-In and Adj-Out
    	  up-front here, rather than queueing such work.
    	  Extensive comment added on the various bits of indexed data
    	  that exist and how they need to be dealt with.
    	  (bgp_clear_route) Update comment.

commit 7ca67954c4ef76b0c8763033d087517925566d29
Author: gdt <gdt>
Date:   Tue Feb 6 20:10:35 2007 +0000

    use generic sed test so this works on autoconf 2.59

commit 74e8886cb0fbaca91a746f1708b77268fc369353
Author: gdt <gdt>
Date:   Tue Feb 6 19:56:31 2007 +0000

    de-support NetBSD 1.6, and note that FreeBSD 4 is on thin ice.
    
    Update notes on required tool versions Note that autoconf 2.59 is the
    standard (even though it's old, 2.60 and 2.61 are pretty recent).  For
    others, pick releases that are at least 1.5 years old.
    
    Note that GNU awk is required.
    
    Replace update-autotools reference with bootstrap.sh.
    
    (no changelog, doc change only, per GNU coding standards)

commit d99058d6c9b2e34628e14b553ccabfd7bb555221
Author: gdt <gdt>
Date:   Tue Feb 6 19:36:47 2007 +0000

    Better comment explaining that GNU awk is really required.

commit 608326934fcbfbe9a06c8ce726b85c80b9705702
Author: gdt <gdt>
Date:   Tue Feb 6 19:28:28 2007 +0000

    autoreconf -i

commit ab0eea7e4e3fdbd2af33001b7fa1200130ad0e81
Author: gdt <gdt>
Date:   Sat Feb 3 22:30:02 2007 +0000

    add AC_PROC_SED

commit dfeda3f2f4f15bd9ec32ab80cf3a7b53a395c4f8
Author: gdt <gdt>
Date:   Sat Feb 3 01:07:01 2007 +0000

    remove crufty m4 files from 2004.  With the files, autoheader (2.61)
    bombs on NetBSD.  (Without, all is ok.  We may need workarounds, but
    first we should identify minimum tool versions and figure out what's
    still wrong.)
    
    ok'd by paul.

commit eb66f42e856b2d408e11346fd0876dbeb491ce4e
Author: gdt <gdt>
Date:   Fri Feb 2 17:03:03 2007 +0000

    use bootstrap.sh

commit 7caffc4eaf782b21b179652c4aabaf1cf086e52f
Author: gdt <gdt>
Date:   Fri Feb 2 17:01:58 2007 +0000

    Provide 'standard interface', even if it just invokes autoreconf.

commit 29c05b398f3c8659a4efb7ae027ba36bc10a9756
Author: gdt <gdt>
Date:   Fri Feb 2 16:54:23 2007 +0000

    ospf6d.h: remove declaration of errno (should be via header)
    
    (from pkgsrc)

commit 20e9e14d2fbfdfb8d271f4f7900d37f514189a24
Author: gdt <gdt>
Date:   Fri Feb 2 16:52:38 2007 +0000

    * README.NetBSD:  use update-autotools instead of autoreconf
    * update-autotools: print out tool name before invoking to aid debugging

commit db5741fb3b5fab74f893d03717be9a243ec435e9
Author: paul <paul>
Date:   Wed Jan 24 14:51:51 2007 +0000

    [ospfd] Bug #330: SPF must consider that nexthop-calc may fail
    
    2007-01-24 Paul Jakma <paul.jakma at sun.com>
    
    	* ospf_spf.c: Bug #330: Nexthop calculation sometimes may fail,
    	  and it needs to indicate this result to SPF.
    	  (ospf_spf_add_parent) Flush of parent list needs to be done here,
    	  for simplicity.
    	  (ospf_nexthop_calculation) Caller needs to know whether
    	  nexthop calculation succeeded. Every return statement must
    	  correctly indicate such.
    	  (ospf_spf_next) Queueing/prioritisation of vertices in SPF
    	  must take into account whether nexthop_calculation succeeded,
    	  or SPF may fail to find best paths.

commit 0f892679e7114ace5d8af696d55aeb6e95d57de1
Author: ajs <ajs>
Date:   Wed Dec 13 15:44:15 2006 +0000

    [zebra] For solaris IPv6 PtP interfaces, try to support prefixlen != 128
    
    2006-12-13 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* if_ioctl_solaris.c: (if_get_addr) For IPv6, stop assuming
    	  that all IFF_POINTOPOINT have prefixlen of IPV6_MAX_BITLEN.
    	  Instead, always try the SIOCGLIFSUBNET ioctl; if that fails,
    	  then we fall back to IPV6_MAX_BITLEN for PtP interfaces.

commit 5473a17309434869238cb6cfedf07a2e88f6de6d
Author: ajs <ajs>
Date:   Tue Dec 12 19:18:21 2006 +0000

    [PtP over ethernet] New peer flag allows much more addressing flexibility
    
    2006-12-12 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* if.h: (struct connected) Add new ZEBRA_IFA_PEER flag indicating
    	  whether a peer address has been configured.  Comment now shows
    	  the new interpretation of the destination addr: if ZEBRA_IFA_PEER
    	  is set, then it must contain the destination address, otherwise
    	  it may contain the broadcast address or be NULL.
    	  (CONNECTED_DEST_HOST,CONNECTED_POINTOPOINT_HOST) Remove obsolete
    	  macros that were specific to IPv4 and not fully general.
    	  (CONNECTED_PEER) New macro to check ZEBRA_IFA_PEER flag.
    	  (CONNECTED_PREFIX) New macro giving the prefix to insert into
    	  the RIB: if CONNECTED_PEER, then use the destination (peer) address,
    	  else use the address field.
    	  (CONNECTED_ID) New macro to come up with an identifying address
    	  for the struct connected.
    	* if.c: (if_lookup_address, connected_lookup_address) Streamline
    	  logic with new CONNECTED_PREFIX macro.
    	* prefix.h: (PREFIX_COPY_IPV4, PREFIX_COPY_IPV6) New macros
    	  for better performance than the general prefix_copy function.
    	* zclient.c: (zebra_interface_address_read) For non-null destination
    	  addresses, set prefixlen to equal the address prefixlen.  This
    	  is needed to get the new CONNECTED_PREFIX macro to work properly.
    	* connected.c: (connected_up_ipv4, connected_down_ipv4,
    	  connected_up_ipv6, connected_down_ipv6) Simplify logic using the
    	  new CONNECTED_PREFIX macro.
    	  (connected_add_ipv4) Set prefixlen in destination addresses (required
    	  by the CONNECTED_PREFIX macro).  Use CONNECTED_PEER macro instead
    	  of testing for IFF_POINTOPOINT.  Delete invalid warning message.
    	  Warn about cases where the ZEBRA_IFA_PEER is set but no
    	  destination address has been supplied (and turn off the flag).
    	  (connected_add_ipv6) Add new flags argument so callers may set
    	  the ZEBRA_IFA_PEER flag.  If peer/broadcast address satisfies
    	  IN6_IS_ADDR_UNSPECIFIED, then reject it with a warning.
    	  Set prefixlen in destination address so CONNECTED_PREFIX will work.
    	* connected.h: (connected_add_ipv6) Add new flags argument so
    	  callers may set the ZEBRA_IFA_PEER flag.
    	* interface.c: (connected_dump_vty) Use CONNECTED_PEER macro
    	  to decide whether the destination address is a peer or broadcast
    	  address (instead of checking IFF_BROADCAST and IFF_POINTOPOINT).
    	* if_ioctl.c: (if_getaddrs) Instead of setting a peer address
    	  only when the IFF_POINTOPOINT is set, we now accept a peer
    	  address whenever it is available and not the same as the local
    	  address.  Otherwise (no peer address assigned), we check
    	  for a broadcast address (regardless of the IFF_BROADCAST flag).
    	  And must now pass a flags value of ZEBRA_IFA_PEER to
    	  connected_add_ipv4 when a peer address is assigned.
    	  The same new logic is used with the IPv6 code as well (and we
    	  pass the new flags argument to connected_add_ipv6).
    	  (if_get_addr) Do not bother to check IFF_POINTOPOINT: just
    	  issue the SIOCGIFDSTADDR ioctl and see if we get back
    	  a peer address not matching the local address (and set
    	  the ZEBRA_IFA_PEER in that case).  If there's no peer address,
    	  try to grab SIOCGIFBRDADDR regardless of whether IFF_BROADCAST is set.
    	* if_ioctl_solaris.c: (if_get_addr) Just try the SIOCGLIFDSTADDR ioctl
    	  without bothering to check the IFF_POINTOPOINT flag.  And if
    	  no peer address was found, just try the SIOCGLIFBRDADDR ioctl
    	  without checking the IFF_BROADCAST flag.  Call connected_add_ipv4
    	  and connected_add_ipv6 with appropriate flags.
    	* if_proc.c: (ifaddr_proc_ipv6) Must pass new flags argument to
    	  connected_add_ipv6.
    	* kernel_socket.c: (ifam_read) Must pass new flags argument to
    	  connected_add_ipv6.
    	* rt_netlink.c: (netlink_interface_addr) Copy logic from iproute2
    	  to determine local and possible peer address (so there's no longer
    	  a test for IFF_POINTOPOINT).  Set ZEBRA_IFA_PEER flag appropriately.
    	  Pass new flags argument to connected_add_ipv6.
    	  (netlink_address) Test !CONNECTED_PEER instead of if_is_broadcast
    	  to determine whether the connected destination address is a
    	  broadcast address.
    	* bgp_nexthop.c: (bgp_connected_add, bgp_connected_delete)
    	  Simplify logic by using new CONNECTED_PREFIX macro.
    	* ospf_interface.c: (ospf_if_is_configured, ospf_if_lookup_by_prefix,
    	  ospf_if_lookup_recv_if) Simplify logic using new CONNECTED_PREFIX
    	  macro.
    	* ospf_lsa.c: (lsa_link_ptop_set) Using the new CONNECTED_PREFIX
    	  macro, both options collapse into the same code.
    	* ospf_snmp.c: (ospf_snmp_if_update) Simplify logic using new
    	  CONNECTED_ID macro.
    	  (ospf_snmp_is_if_have_addr) Simplify logic using new CONNECTED_PREFIX
    	  macro.
    	* ospf_vty.c: (show_ip_ospf_interface_sub) Use new CONNECTED_PEER macro
    	  instead of testing the IFF_POINTOPOINT flag.
    	* ospfd.c: (ospf_network_match_iface) Use new CONNECTED_PEER macro
    	  instead of testing with if_is_pointopoint.  And add commented-out
    	  code to implement alternative (in my opinion) more elegant behavior
    	  that has no special-case treatment for PtP addresses.
    	  (ospf_network_run) Use new CONNECTED_ID macro to simplify logic.
    	* rip_interface.c: (rip_interface_multicast_set) Use new CONNECTED_ID
    	  macro to simplify logic.
    	  (rip_request_interface_send) Fix minor bug: ipv4_broadcast_addr does
    	  not give a useful result if prefixlen is 32 (we require a peer
    	  address in such cases).
    	* ripd.c: (rip_update_interface) Fix same bug as above.

commit 7db8ac32d96a6dfed8c7c450d44c0a296d1125f5
Author: paul <paul>
Date:   Fri Dec 8 21:27:08 2006 +0000

    [0.99] Bump version to 0.99.6
    
    2006-12-08 Paul Jakma <paul.jakma at sun.com>
    
    	* configure.ac: Bump to 0.99.6

commit bdeb7580d3f90876dc8d05ce57aa8d99dc96f926
Author: paul <paul>
Date:   Fri Dec 8 01:09:50 2006 +0000

    [isisd] Fix compiler warnings and allow v4-only compilation
    
    2006-12-08 Hannes Gredler <hannes at gredler.at>
    
    	* isis_adjacency.c: (isis_new_adj) Allow NULL snpa argument.
    	* isis_pdu.c: (various) Update calls to isis_new_adj() to pass
    	  NULL and use default.
    	* (general) Add forward declarations where required.
    	  Fix up const char *'s.
    	  Allow V4-only compilation.

commit 983bf4abef71566c61b757cf2a6a54ceae3d50ef
Author: paul <paul>
Date:   Fri Dec 8 00:53:14 2006 +0000

    [zebra] Changes of nexthops of static routes didnt take effect
    
    2006-12-08 Piotr Chytla <pch at packetconsulting.pl>
    
    	* zebra_rib.c: (static_install_ipv{4,6}) Case where existing
    	  RIB is updated must explicitely rib_addqueue the route_node,
    	  to ensure the update actually takes effect.

commit 98cd2f2958864526b36766921de707679b1c75e7
Author: paul <paul>
Date:   Fri Dec 8 00:31:22 2006 +0000

    [bgpd] Bug #302, bgpd can get stuck in state Clearing
    
    2006-12-07 Paul Jakma <paul.jakma at sun.com>
    
    	* bgp_fsm.c: Bug #302 fix, diagnosis, suggestions and testing
    	  by Juergen Kammer <j.kammer at eurodata.de>. Fix follows from
    	  his suggested fix, just made in a slightly different way.
    	  (bgp_event) Transitions into Clearing always must call
    	  bgp_clear_route_all().
    	  (bgp_stop) No need to clear routes here, BGP FSM should do
    	  it.

commit bf6804ce1d1d331ba0290cf0f48d31eabde8b46c
Author: ajs <ajs>
Date:   Mon Dec 4 18:26:37 2006 +0000

    [ospfd] Consider all connected addresses when creating ospf interfaces
    
    2006-12-04 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* ospfd.c: (ospf_network_run) Remove an offending 'break' statement.
    	  Previously, after creating a single ospf_interface on a given
    	  network interface, the code would skip to the next interface
    	  without considering other connected addresses on the interface.
    	  After removing the 'break', we now consider all connected addresses.

commit a99935f9f0ab166facf077e2abc4c948a4104f43
Author: ajs <ajs>
Date:   Thu Nov 30 16:36:57 2006 +0000

    [bgpd] Implement 'debug bgp zebra' to log all messages to and from zebra.
    
    2006-11-30 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* bgp_debug.h: Declare new bgp_debug_zebra conf and term flags,
    	  and define BGP_DEBUG_ZEBRA.
    	* bgp_debug.c: Declare conf_bgp_debug_zebra and term_bgp_debug_zebra.
    	  (debug_bgp_zebra, no_debug_bgp_zebra, undebug_bgp_zebra) New
    	  functions to enable/disable bgp zebra debugging.
    	  (no_debug_bgp_all) Turn off zebra debugging.
    	  (show_debugging_bgp) Show whether zebra debugging is on.
    	  (bgp_config_write_debug) Add 'debug bgp zebra' if configured.
    	  (bgp_debug_init) Add new zebra debugging commands.
    	* bgp_zebra.c: (bgp_router_id_update, bgp_interface_add,
    	  bgp_interface_delete, bgp_interface_up, bgp_interface_down,
    	  bgp_interface_address_add, bgp_interface_address_delete,
    	  zebra_read_ipv4, zebra_read_ipv6, bgp_zebra_announce,
    	  bgp_zebra_withdraw, bgp_redistribute_set, bgp_redistribute_unset)
    	  If zebra debugging is enabled, log an appropriate debug message.

commit a04310a56d3874df924ea166f024c196643f667c
Author: ajs <ajs>
Date:   Thu Nov 30 16:17:02 2006 +0000

    [ospfd] Add debug messages for a few zebra messages that had been overlooked
    
    2006-11-30 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* ospf_zebra.c: (ospf_router_id_update_zebra,
    	  ospf_interface_address_add, ospf_interface_address_delete)
    	  If (IS_DEBUG_OSPF (zebra, ZEBRA_INTERFACE)) is enabled, then
    	  add a debug message about what Zebra is telling us.
    	  (ospf_zebra_add_discard) Add a debug message matching the one
    	  already in ospf_zebra_delete_discard.

commit be13d47199ca10fce523ebf9600257e251bca486
Author: ajs <ajs>
Date:   Tue Nov 28 19:50:46 2006 +0000

    [bgpd] Fix bug where a deleted route that was quickly re-added was being lost
    
    2006-11-28 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* bgp_route.c: (bgp_info_restore) New function that undoes
    	  the effects of a previous call to bgp_info_delete.  This is
    	  used when a route is deleted and quickly re-added before the
    	  deletion has been processed.
    	  (bgp_static_update_rsclient, bgp_static_update_main,
    	  bgp_redistribute_add) Check whether a pre-existing route
    	  has the BGP_INFO_REMOVED set, and, if so, we need to call
    	  bgp_info_restore to resurrect it.

commit 9afa1081944cd188386eb65f476a85a3b39c12e1
Author: ajs <ajs>
Date:   Tue Nov 28 16:36:39 2006 +0000

    [ospfd] Fix bug in passive-interface default commands.
    
    2006-11-28 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* ospf_vty.c: (ospf_passive_interface_default) Take additional
    	  'newval' arg so we can update ospf->passive_interface_default inside
    	  this function.  More importantly, we now call ospf_if_set_multicast
    	  on all ospf_interfaces.
    	  (ospf_passive_interface, no_ospf_passive_interface) Fix bug:
    	  for 'default' case, argv[0] is undefined, so we must test for
    	  (argc == 0) before using argv[0].  And since
    	  ospf_passive_interface_default now calls ospf_if_set_multicast as
    	  needed, we can just return after calling
    	  ospf_passive_interface_default.

commit 25b4ee9914a98fe03566b65444c604da2e481c94
Author: paul <paul>
Date:   Fri Oct 27 16:58:20 2006 +0000

    [bgpd] trivial: non C99 u_int.._t should be uint.._t
    
    2006-10-27 Paul Jakma <paul.jakma at sun.com>
    
    	* bgp_route.c: (bgp_table_stats) oops, u_intXX_t should be
    	  uintXX_t

commit ae3bf3c182cb62e2423d1b10f7d43d412f7aa442
Author: ajs <ajs>
Date:   Tue Oct 24 19:04:26 2006 +0000

    [ospfd] Stop losing subsequent default-information originate 'always' info
    
    2006-10-24 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* ospf_zebra.c: (ospf_redistribute_default_set) Fix bug where
    	  a new value for ospf->default_originate was being ignored
    	  if a previous 'default-information originate' command
    	  had already been processed.

commit 3f0a0ac188e55b2fdf30071a13888903a29ba7df
Author: paul <paul>
Date:   Sun Oct 22 20:07:53 2006 +0000

    [ospfd] Add passive-interface default support
    
    2006-10-22 Yar Tikhiy <yar at comp.chem.msu.su>
    
    	* (general) Add support for passive-interface default (with
    	  minor edits by Paul Jakma).
    	* ospf_interface.h: Add OSPF_IF_PASSIVE_STATUS macro, looking
    	  at configured value, or the global 'default' value, as
    	  required.
    	* ospf_interface.c: (ospf_if_new_hook) Leave passive
    	  unconfigured per default, allowing global 'default' to
    	  take effect for unconfigured interfaces.
    	* ospf_packet.c: (various) use OSPF_IF_PASSIVE_STATUS
    	* ospf_vty.c: (ospf_passive_interface_default) new function,
    	  unset passive from all interfaces if default is enabled, as
    	  the per-iface settings become redundant.
    	  (ospf_passive_interface_update) new func, update passive
    	  setting taking global default into account.
    	  ({no,}ospf_passive_interface_addr_cmd) Add support for
    	  'default' variant of command.
    	  (show_ip_ospf_interface_sub) Update to take global
    	  default into account when printing passive status.
    	  (ospf_config_write) ditto.
    	* ospfd.c: (ospf_new) set global passive-interface default.
    	* ospfd.h: (struct ospf) Add field for global
              passive-interface.

commit f6a371d9165c2efa83cf180e2de825e28d182b70
Author: paul <paul>
Date:   Sun Oct 22 19:13:07 2006 +0000

    [bgpd] struct peer must have bgp field valid (redistribute crash)
    
    2006-10-19 Paul Jakma <paul.jakma at sun.com>
    
    	* bgpd.c: (peer_new) bgp element of peer absolutely must be
    	  filled in, make peer_new() require it as argument and update
    	  all callers. Fixes a crash reported by Jan 'yanek' Bortl and
    	  Andrew Schorr where bgpd would crash in bgp_pcount_adjust
    	  trying to dereference the bgp member of bgp->peer_self,
    	  triggered through redistribution.
    	* bgp_route.c: (bgp_pcount_adjust) assert sanity of arguments.

commit 2f80bca7f982c9c3be0b10d4fedf0b64796b6f4f
Author: paul <paul>
Date:   Sun Oct 15 23:50:16 2006 +0000

    [bgpd] Coverity CID #64: Needless NULL check, CID #64: Deref of potentially NULL pointer.
    
    2006-10-15 Paul Jakma <paul.jakma at sun.com>
    
    	* bgp_packet.c: (bgp_update_packet) adv->rn can not be NULL,
    	  check is bogus - changed to assert(), CID#64.
    	  binfo is checked for NULL, but then dereferenced
    	  unconditionally, fix, CID #63.
    	  (bgp_withdraw_packet) Assert adv->rn is valid, as with
    	  bgp_update_packet().

commit 4b6be254d1ab72ac1a7652ee9c2a466130486ba8
Author: paul <paul>
Date:   Sun Oct 15 23:41:16 2006 +0000

    [bgpd] CID#73, potential crash in bgp statistics if called for AFI/SAFI with emtpy table
    
    2006-10-15 Paul Jakma <paul.jakma at sun.com>
    
    	* bgp_route.c: (bgp_table_stats_walker) NULL deref if table is
    	  empty, bgp_table_top may return NULL, Coverity CID#73.

commit bc14a82f0ec5f3c3008348903ec0db4eed91f1ee
Author: paul <paul>
Date:   Sun Oct 15 23:39:59 2006 +0000

    [bgpd] Bug #302 fixes. ClearingCompleted event gets flushed, leaving peers stuck in Clearing.
    
    2006-10-14 Paul Jakma <paul.jakma at sun.com>
    
    	* bgp_fsm.h: Remove BGP_EVENT_FLUSH_ADD, dangerous and not
    	  needed.
    	* bgp_fsm.c: (bgp_stop) Move BGP_EVENT_FLUSH to the top of the
    	  of the function, otherwise it could flush a ClearingCompleted
              event, bug #302.
    	* bgp_packet.c: Replace all BGP_EVENT_FLUSH_ADD with
    	  BGP_EVENT_ADD, fixing bug #302.

commit 70ad2da67e6edee613c6eefae9480c9e9955c2fc
Author: paul <paul>
Date:   Sun Oct 15 23:35:57 2006 +0000

    [daemon startup] Add --dry-run/-C argument to daemons, to check config file syntax
    
    2006-10-04 Oliver Hookins <ohookins at gmail.com>
    
    	* bgpd/bgp_main.c: Add configuration check option, with
    	'-C' rather than '-c' for consistency between daemons.
    	* isisd/isis_main.c: ditto
    	* ospf6d/ospf6_main.c: ditto
    	* ospfd/ospf_main.c: ditto
    	* ripngd/ripng_main.c: ditto
    	* vtysh/vtysh_main.c: ditto
    	* ripd/rip_main.c: Change the config check option to
    	'-C' and tidy up the code.
    	* zebra/main.c: ditto
    
    2006-10-04 Stergiakis Alexandros <astergiakis at antcor.com>
    
    	* ripd/rip_main.c: This trivial patch introduces a new
    	  command-line option '-c', which instructs zebra/ripd
    	  to check its configuration file for validity,	print
    	  any error message, and then exit. This is useful when
    	  the configuration file is edited by hand or otherwise,
    	  and you simply want to validate it without any other
    	  effect.
    	* zebra/main.c: ditto

commit 4bac3bd5f3ef6190de68b1a970171cf536ebb992
Author: paul <paul>
Date:   Sun Oct 15 23:33:50 2006 +0000

    [lib] Handle upgrade from SUNWzebra to Quagga for 'interface fooX:Y' commands
    
    2006-10-14 Paul Jakma <paul.jakma at sun.com>
    
    	* if.c: (general) Handle upgrades from SUNWzebra, which tried
    	  to track each logical interface as a seperate struct
    	  interface, to Quagga, which assigns only one struct interface
    	  per ifindex.
    	  (if_sunwzebra_get) Try decompose a logical interface name
              (fooX:Y) to the 'primary' name (fooX), for Solaris.
              (interface_cmd) Use if_sunwzebra_get on Solaris.

commit 355f37976bcbeedb0c268cfa444964d8539c8676
Author: ajs <ajs>
Date:   Tue Sep 26 15:30:43 2006 +0000

    [snmp] Fix asn_build calls to pass correct variable sizes (fixes 64-bit issues)
    
    2006-09-26 Pierre-Yves Ritschard <pierre-yves at spootnik.org>
    
    	* smux.c: (smux_open,smux_trap,smux_register) Fix various
    	  asn_build_* calls to pass the proper length in the final
    	  argument: use sizeof(<variable>) instead of sizeof(<type>),
    	  since there were several inconsistencies between the actual
    	  variable type and the size that was passed.  This should
    	  fix some problems on 64-bit architectures where sizeof(int)
    	  != sizeof(long).

commit 7a1adac66c950f3db67a069d09ba4bb344f11ab2
Author: ajs <ajs>
Date:   Mon Sep 25 13:26:14 2006 +0000

    [ospfd] Improve some warning messages.
    
    2006-09-25 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* ospf_packet.c: (ospf_packet_dup, ospf_make_md5_digest)
    	  Fix zlog_warn messages to eliminate compiler warnings.
    	  (ospf_hello) Improve warning messages to show why we
    	  are complaining.

commit 6c866d19516dda220948d48f2b93aafde2e75981
Author: gdt <gdt>
Date:   Wed Sep 20 14:46:07 2006 +0000

    Add recent NetBSD/FreeBSD versions to list of what ought to work.
    Add Dragonfly.
    
    Clarify that the C99 requirement includes libraries and headers, not
    just compiler.

commit dcf98c6731d3d836c815ea2fab5e5100c37384e0
Author: ajs <ajs>
Date:   Tue Sep 19 18:51:53 2006 +0000

    [bgpd] Trivial fix of printf format/arg mismatch
    
    2006-09-19 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* bgpd.c: (peer_uptime) Fix printf format/arg mismatch in
    	  zlog_warn message (%ld/size_t -> %lu/u_long).

commit 5d67aab0d487dcd11b1ddb64d0c3f20cc0a76ba2
Author: paul <paul>
Date:   Thu Sep 14 03:38:16 2006 +0000

    [bgpd] reduce the process queue hold time to something more sensible
    
    2006-09-14 Paul Jakma <paul.jakma at sun.com>
    
    	* bgp_route.c: (bgp_process_queue_init) process queue hold time
    	  too high, adds extra memory load. Change to be much lower,
    	  until such time as it's made configurable.

commit 619c93ea9e230f8f23171ae37a1f9f2adbbb9465
Author: paul <paul>
Date:   Thu Sep 14 03:06:54 2006 +0000

    [bgpd] RIB statistics address space size shouldnt double count space
    
    2006-09-14 Paul Jakma <paul.jakma at sun.com>
    
    	* bgp_route.c: (bgp_table_stats_walker) Address space announced
    	  should only count top-level unaggregateable prefixes, to
    	  avoid falling afoul of anti-dodgy-accounting regulations
    	  in various jurisdictions.. ;)

commit 7529b9ebd0b84f174be55c4d2a3438e91bd51000
Author: paul <paul>
Date:   Thu Sep 14 03:02:02 2006 +0000

    [bgpd] simplify peer refcounts, squash slow peer leak
    
    2006-09-14 Paul Jakma <paul.jakma at sun.com>
    
    	* (general) fix the peer refcount issue exposed by previous, by
    	  just removing refcounting of peer threads, which is mostly
    	  senseless as they're references leading from struct peer,
    	  which peer_free cancels anyway. No need to muck around..
    	* bgp_fsm.h: Just remove the refcounting from the various
    	  TIMER/READ/WRITE/EVENT ON/OFF/ADD macros.
    	* bgp_fsm.c: (bgp_stop) use BGP_EVENT_FLUSH, no refcounts attached
    	  to events anymore.
    	  (bgp_event) remove peer_unlock, events not refcounted.
    	* bgpd.c: (peer_free) flush events before free.

commit ddf4cb34870f7e7ae31b02b97d3a942e75f20072
Author: paul <paul>
Date:   Thu Sep 14 02:58:49 2006 +0000

    [bgpd] Fix 0.99 shutdown regression, introduce Clearing and Deleted states
    
    2006-09-14 Paul Jakma <paul.jakma at sun.com>
    
    	* (general) Fix some niggly issues around 'shutdown' and clearing
    	  by adding a Clearing FSM wait-state and a hidden 'Deleted'
    	  FSM state, to allow deleted peers to 'cool off' and hit 0
    	  references. This introduces a slow memory leak of struct peer,
    	  however that's more a testament to the fragility of the
    	  reference counting than a bug in this patch, cleanup of
    	  reference counting to fix this is to follow.
    	* bgpd.h: Add Clearing, Deleted states and Clearing_Completed
    	  and event.
    	* bgp_debug.c: (bgp_status_msg[]) Add strings for Clearing and
    	  Deleted.
    	* bgp_fsm.h: Don't allow timer/event threads to set anything
    	  for Deleted peers.
    	* bgp_fsm.c: (bgp_timer_set) Add Clearing and Deleted. Deleted
    	  needs to stop everything.
    	  (bgp_stop) Remove explicit fsm_change_status call, the
    	  general framework handles the transition.
    	  (bgp_start) Log a warning if a start is attempted on a peer
    	  that should stay down, trying to start a peer.
    	  (struct .. FSM) Add Clearing_Completed
    	  events, has little influence except when in state
    	  Clearing to signal wait-state can end.
    	  Add Clearing and Deleted states, former is a wait-state,
    	  latter is a placeholder state to allow peers to disappear
    	  quietly once refcounts settle.
    	  (bgp_event) Try reduce verbosity of FSM state-change debug,
    	  changes to same state are not interesting (Established->Established)
    	  Allow NULL action functions in FSM.
    	* bgp_packet.c: (bgp_write) Use FSM events, rather than trying
    	  to twiddle directly with FSM state behind the back of FSM.
    	  (bgp_write_notify) ditto.
    	  (bgp_read) Remove the vague ACCEPT_PEER peer_unlock, or else
    	  this patch crashes, now it leaks instead.
    	* bgp_route.c: (bgp_clear_node_complete) Clearing_Completed
    	  event, to end clearing.
    	  (bgp_clear_route) See extensive comments.
    	* bgpd.c: (peer_free) should only be called while in Deleted,
    	  peer refcounting controls when peer_free is called.
    	  bgp_sync_delete should be here, not in peer_delete.
    	  (peer_delete) Initiate delete.
    	  Transition to Deleted state manually.
    	  When removing peer from indices that provide visibility of it,
    	  take great care to be idempotent wrt the reference counting
    	  of struct peer through those indices.
    	  Use bgp_timer_set, rather than replicating.
    	  Call to bgp_sync_delete isn't appropriate here, sync can be
    	  referenced while shutting down and finishing deletion.
    	  (peer_group_bind) Take care to be idempotent wrt list references
    	  indexing peers.

commit 4f74ffab5ca838c6c29ee332089ee396b157719e
Author: paul <paul>
Date:   Thu Sep 14 02:56:07 2006 +0000

    [bgpd] Add RIB reporting commands, show bgp ... statistics
    
    2006-09-13 Paul Jakma <paul.jakma at sun.com>
    
    	* bgp_aspath.c: (aspath_highest) new, return highest ASN in an
    	  aspath.
    	* bgp_route.c: (bgp_peer_count_walker) new, do the walk done
    	  in bgp_peer_counts as a thread.
    	  (bgp_peer_counts) move walk to previous and call it via
    	  thread_execute so this RIB walk shows up in thread stats.
    	  (bgp_table_stats) New, gather some statistics for a given
    	  RIB.
    	  (bgp_table_stats_walker) New, RIB walker thread for former.
    	  (bgp_table_stats_vty) Parsing front-end for 'show bgp ...',
    	  useful model for future rationalisation of 'show ... bgp'.
    	  (bgp_route_init) Add new RIB stats commands.

commit f6b18f37b2f219d820380218223a2cb0c68dd89d
Author: gdt <gdt>
Date:   Wed Sep 13 12:13:08 2006 +0000

    2006-09-13 Tom Everett <tom at khubla.com>
    
            * kernel_socket.c (rtm_type_str): ifdef RTM_OLD{ADD,DEL} to
            compile on systems that no longer define them.

commit df0ddbb1ea9e1e76fa34cd8a8d20f9b9d76fb359
Author: paul <paul>
Date:   Mon Sep 11 02:14:16 2006 +0000

    [ripd] bug #293: routemap set metric doesn't check for underflow correctly
    
    2006-09-11 Paul Jakma <paul.jakma at sun.com>
    
    	* rip_routemap.c: (route_set_metric) underflow check needs to
    	  use signed, problem identified and diagnosed by Pavel
    	  Nikiforov in bug #293.

commit dda820ac440613fbd4a956f5de42d790fdbc6f55
Author: paul <paul>
Date:   Mon Sep 11 02:10:40 2006 +0000

    [ripd] bug #278: remove gratuitous use of mid-function declaration
    
    2006-09-11 Paul Jakma <paul.jakma at sun.com>
    
    	* ripd.c: (rip_read) remove gratuitous use of mid-function
    	  declaration of vrecv, bug #278.

commit 87c609b6c72042ac36fabd06c1d245b9e0b8c727
Author: paul <paul>
Date:   Thu Sep 7 00:24:49 2006 +0000

    [bgpd] Handle pcount as flags are changed, fixing pcount issues
    
    2006-09-06 Paul Jakma <paul.jakma at sun.com>
    
    	* (general) Squash any and all prefix-count issues by
    	  abstracting route flag changes, and maintaining count as and
    	  when flags are modified (rather than relying on explicit
    	  modifications of count being sprinkled in just the right
    	  places throughout the code).
    	* bgp_route.c: (bgp_pcount_{dec,inc}rement) removed.
    	  (bgp_pcount_adjust) new, update prefix count as
    	  needed for a given route.
    	  (bgp_info_{uns,s}et_flag) set/unset a BGP_INFO route status
    	  flag, calling previous function when appropriate.
    	  (general) Update all set/unsets of flags to use previous.
    	  Remove pcount_{dec,inc}rement calls.
    	  No need to unset BGP_INFO_VALID in places where
    	  bgp_info_delete is called, it does that anyway.
    	* bgp_{damp,nexthop}.c: Update to use bgp_info_{un,}set_flag.
    	* bgp_route.h: Export bgp_info_{un,}set_flag.
    	  Add a 'meta' BGP_INFO flag, BGP_INFO_UNUSEABLE.
    	  Move BGP_INFO_HOLDDOWN macro to here from bgpd.h

commit 560f239d6aa21e34cc1e9d48fcf2432c6280c521
Author: paul <paul>
Date:   Mon Sep 4 01:10:36 2006 +0000

    [bgpd] Add 'show ... neighbor .... prefix-counts' command
    
    2006-09-03 Paul Jakma <paul.jakma at sun.com>
    
    	* bgp_route.c: Add 'show ... bgp ... <neighbour> prefix-count'
    	  commands, to provide detailed counts of prefixes for a peer.
    	  Informative, and should help pin down to pfxcnt drift
    	  problems.

commit af97114f21b3a826b383143530ac6e305b2472b9
Author: paul <paul>
Date:   Wed Aug 30 18:47:37 2006 +0000

    [ospfd] Fix assertion in DB-exchange fix, hit by ogier-db-ex-opt commit
    
    2006-08-28 Andy Gay <andy at andynet.net>
    
    	* ospf_packet.c: (ospf_make_db_desc) Assert added with More-bit
    	  fixes does not hold up with addition of Ogier DB-Exchange
    	  optimisation, which can empty the db-summary list in between
    	  sent DD packets. Remove assert, update More-bit always when
    	  in Exchange.

commit 0df179074c699b917e34aef8fabc68581fa9f008
Author: paul <paul>
Date:   Sun Aug 27 22:06:12 2006 +0000

    [0.99] version bump to 0.99.5
    
    2006-08-27 Paul Jakma <paul.jakma at sun.com>
    
    	* configure.ac: Bump to 0.99.5

commit 57ea1460a786a5e9c9e7a50c6fb3489b6a40f0d6
Author: paul <paul>
Date:   Sun Aug 27 08:01:20 2006 +0000

    [ospfd] redistribute default no longer works after complete reconfig, fix
    
    2006-08-27 J.J. Krabbendam <jkrabbendam at aimsys.nl>
    
    	* ospfd.c: (ospf_finish_final) default redistribute should be
    	  unset too, fixes bug where reconfiguring ospfd completely
    	  can no longer enable default redistribution.

commit 487ba489513eaf0dacc1423f4c41b13e89e2258f
Author: paul <paul>
Date:   Sun Aug 27 06:57:47 2006 +0000

    [bgpd] fix mtype in XFREE and NULL out freed pointer
    
    2006-08-27 Paul Jakma <paul.jakma at sun.com>
    
    	* bgp_advertise.c: (bgp_sync_delete) fix mtype in XFREE.
    	  NULL out peer->hash after free, to be sure.

commit 212ecfec604854df86dc8c8163f2831820b69ce4
Author: paul <paul>
Date:   Sun Aug 27 06:53:24 2006 +0000

    [tests] update heavywq for workqueue api changes
    
    2006-08-26 Paul Jakma <paul.jakma at sun.com>
    
    	* heavy-wq.c: (slow_func_del,slow_func) update to match workqueue
    	  changes

commit e699b294d1637ad07aa5c6f8babe59f202b213d9
Author: paul <paul>
Date:   Sun Aug 27 06:49:29 2006 +0000

    [ospfd] Bug #134, ospfd should be more robust to backward time change
    
    2006-08-25 Paul Jakma <paul.jakma at sun.com>
    
    	* (general) Bug #134. Be more robust to backward time changes,
    	  use the newly added libzebra time functions.
    	  In most cases: recent_time -> recent_relative_time()
    	  gettimeofday -> quagga_gettime (QUAGGA_CLK_MONOTONIC, ..)
    	  time -> quagga_time.
    	  (ospf_make_md5_digest) time() call deliberately not changed.
    	  (ospf_external_lsa_refresh) remove useless gettimeofday, LSA
    	  tv_orig time was already set in ospf_lsa_new, called via
    	  ospf_external_lsa_new.

commit 51aeb9d48947016b2e99f06701f267ab0a906287
Author: paul <paul>
Date:   Sun Aug 27 06:44:02 2006 +0000

    [lib] Bug #134: threads should be more robust against backward time jumps
    
    2006-08-25 Paul Jakma <paul.jakma at sun.com>
    
    	* thread.c: (general) Add support for monotonic clock, it may still
    	  jump forward by huge amounts, but should be immune to going
    	  backwards. Fixes bug #134.
    	  (quagga_gettimeofday_relative_adjust) helper, does what name
    	  says - adjusts gettimeofday based relative timer.
    	  (quagga_gettimeofday) helper to keep recent_time up to date.
    	  (quagga_get_relative) helper, update and getch the relative
    	  timer using gettimeofday(). POSIX CLOCK_MONOTONIC is also
    	  supported, but the code is not enabled yet nor tested.
    	  (quagga_real_stabilised) helper, retrieve absolute time but
    	  stabilised so as to never decrease.
    	  (quagga_gettime) Exported interface, analogous to POSIX
    	  clock_gettime() in interface, supporting several clocks.
    	  (quagga_time) Exported interface, analogous to traditional
    	  time(), will never decrease.
    	  (recent_relative_time) Convenience function to retrieve
    	  relative_time timeval, similar to existing recent_time absolute
    	  timeval, for when an approximately recent value will do.
    	  (remainder) Update to use above helpers.
    	  (thread_getrusage) Previously was a macro, but needs to be
    	  a function to twiddle with thread.c private stuff.
    	* thread.c: Point the GETRUSAGE macro at previous function.
    	  Export quagga_gettime, quagga_time and recent_relative_time for
    	  general use.

commit e0741403ec10be924b26aa88143628a4bc56cb24
Author: paul <paul>
Date:   Sun Aug 27 06:40:04 2006 +0000

    [ospfd] draft-ogier-ospf-dbex-opt DB-exchange optimisation
    
    2006-08-03 Paul Jakma <paul.jakma at sun.com>
    
    	* ospf_packet.c: (ospf_make_db_desc) Implement
    	  draft-ogier-ospf-dbex-opt DB-exchange optimisation.

commit d8851c9dc22d7e7ae5a8d8f1cc57a9a15fd59461
Author: paul <paul>
Date:   Sun Aug 27 06:29:30 2006 +0000

    [ospfd] Raise ExchangeDone earlier, avoid often needless round of DD packets
    
    2006-08-03 Paul Jakma <paul.jakma at sun.com>
    
    	* ospf_packet.c: (ospf_make_db_desc) Unset the DD More bit
    	  after constructing the packet, if appropriate.
    	  (ospf_db_desc_proc) Speed up Exchange, slave should raise
    	  ExchangeDone earlier, as RFC mandates, by forming its reply
    	  before deciding whether both sides are done, avoids a
    	  needless round of empty DD packet exchanges at the end of
    	  Exchange, hence speeding up ExchangeDone.
    	  (ospf_db_desc) use UNSET_FLAG macro.

commit 66b4a01bf1c3393e2e6ed690e39b609d100e2416
Author: paul <paul>
Date:   Sun Aug 27 06:24:34 2006 +0000

    [ospfd] trivial: consolidate LSDB delete code into single function
    
    2006-08-04 Paul Jakma <paul.jakma at sun.com>
    
    	* ospf_lsdb.c: (ospf_lsdb_delete_entry) new function, consolidate
    	  exact same functionality replicated in other functions.
    	  (ospf_lsdb_add) Strip out code by using ospf_lsdb_delete_entry.
    	  (ospf_lsdb_delete) ditto.
    	  (ospf_lsdb_delete_all) ditto.

commit ec7cc44eb0267124dcff3209d1a15e2b732af922
Author: paul <paul>
Date:   Sun Aug 6 16:02:43 2006 +0000

    [zebra] trivial: rtadv.h depends on interface.h
    
    2006-08-06 Paul Jakma <paul.jakma at sun.com>
    
    	* rtadv.h: depends on interface.h, so should include it.

commit 6f43eb5419bf27617bc824f7d2c19a3e2d9603f7
Author: paul <paul>
Date:   Sun Aug 6 15:57:59 2006 +0000

    [zebra] fix inconsistencies in ifstat_update_* declarations and definitions
    
    2006-08-06 Paul Jakma <paul.jakma at sun.com>
    
    	* interface.h: (ifstat_update_proc) declaration should match
    	  ifstat_update_sysctl really, which is to not return status, as
    	  such status is not used anywhere.
    	* if_{proc,sysctl}.c: Make ifstat_update_* definitions and return values
    	  consistent with each other and their declarations, ie:
    	  (void) (*) (void).

commit eec617b3bd63b0311e6a9925667f99c258dc36db
Author: paul <paul>
Date:   Sun Aug 6 15:52:11 2006 +0000

    [bgpd] aspath_loop_check was broken, fix it and the aspath unit test code.
    
    2006-08-06 Paul Jakma <paul.jakma at sun.com>
    
    	* bgp_aspath.c: (aspath_loop_check) Fix the typo-bug which
    	  essentially had disabled this check. Problem reported by
    	  Bartek Kania <mrbk at gnarf.org> in [quagga-users 7388].
    	* aspath_test.c: (validate) Fix the sense of the aspath_loop_check,
    	  which was the wrong way around and had actually been testing for
    	  aspath_loop_check to be buggy.

commit af11ed819eaa06b1721ad37dff60f20d530d243a
Author: paul <paul>
Date:   Fri Aug 4 06:18:04 2006 +0000

    [zebra] IRDP: Move stream_free to where its created, probably fixing a leak
    
    2006-08-01 Paul Jakma <paul.jakma at sun.com>
    
    	* irdp_main.c: (irdp_advertisement) free the stream here, when done,
    	  right under where it was allocated so it's blindingly obvious
    	  it's correct. This possibly fixes a very slow leak of streams in
    	  zebra.
    	* irdp_packet.c: (send_packet) don't free the stream here as
    	  it's hard to tell if right, plus an error case seemed to
    	  returning before free anyway.

commit 100af6da3e6f4896e5ed56b2677830d4a3fd3b89
Author: paul <paul>
Date:   Fri Aug 4 06:14:13 2006 +0000

    [zebra] add more stuff to misc_null to avoid compile breakages
    
    2006-08-04 Paul Jakma <paul.jakma at sun.com>
    
    	* misc_null.c: Add ifstat_update_sysctl, add another required
    	  header.

commit 6ec564a4967083482ac7e4d89b4762567c10857b
Author: ajs <ajs>
Date:   Wed Aug 2 16:47:03 2006 +0000

    [testzebra] Patch to misc_null.c to get older gcc to recognize #pragma tricks
    
    2006-08-02 Andrew J. Schorr <ajschorr at alumni.princeton.edu>
    
    	* misc_null.c: Must include header files to get older versions of gcc
    	  to process the #pragma statements properly.

commit 463f552934add2a49a263851719abff947d74217
Author: paul <paul>
Date:   Fri Jul 28 04:42:39 2006 +0000

    [doc] Expand/cross-ref MD5 commands, tweak anchors to avoid added spacing
    
    2006-07-28 Paul Jakma <paul.jakma at sun.com>
    
    	* main.texi: link-detect works on Solaris too.
    	* ospfd.texi: Twiddle around with anchors a bit more.
    	  Clarify how setting MD5 auth by area and by interface interact,
    	  and add cross-references, as well as to the required
    	  command for setting key material.

commit 490813c1f451ed7e27a834d2d19fc0f5d87893d2
Author: paul <paul>
Date:   Thu Jul 27 23:30:16 2006 +0000

    [doc] minor tweaks, refine ospf redist,passive-inter, and abr-type help
    
    2006-07-27 Paul Jakma <paul.jakma at sun.com>
    
    	* quagga.texi: Remove unused index definitions
    	  Add an Index node - for the concept index.
    	* routeserver.texi: Set exampleindex to 0, so the example configs
    	  with long IPv6 addresses stand better chance of fitting.
    	* overview.texi: 'Supported RFC' -> 'Supported RFCs'
    	  Remove paragraph indentation - texinfo does that.
    	  Revise the supported OS list slightly.
    	  Remove the IPv6 stack list, seems very dated and irrelevant.
    	  Revise the 'How to get Quagga' section.
    	* ospfd.texi: minor tweaks: add some anchors, fix some minor
    	  format issues.
    	  Revise the help for 'abr-type'.
    	  Note that text authentication is unwise, recc'd MD5.
    	  Add some extra text for redistribute and passive-interface,
    	  about how latter can substitute for redist connected.

commit 2c071fd02645d49b6b89ce61160752dda24be8ad
Author: paul <paul>
Date:   Thu Jul 27 22:52:17 2006 +0000

    [lib] remove autogenerated file, update .cvsignore

commit 63e12298091eb44d5c9a685531a4233c00422c78
Author: ajs <ajs>
Date:   Thu Jul 27 22:29:06 2006 +00