]> git.proxmox.com Git - mirror_frr.git/commitdiff
[trivia] Remove ChangeLog files, as this data is now maintained in SCM
authorPaul Jakma <paul.jakma@sun.com>
Tue, 19 Aug 2008 13:13:43 +0000 (14:13 +0100)
committerPaul Jakma <paul@quagga.net>
Fri, 22 Aug 2008 18:57:22 +0000 (19:57 +0100)
18 files changed:
ChangeLog [deleted file]
bgpd/ChangeLog [deleted file]
doc/ChangeLog [deleted file]
guile/ChangeLog [deleted file]
isisd/ChangeLog [deleted file]
lib/ChangeLog [deleted file]
m4/ChangeLog [deleted file]
ospf6d/ChangeLog [deleted file]
ospfclient/ChangeLog [deleted file]
ospfd/ChangeLog [deleted file]
pkgsrc/ChangeLog [deleted file]
ripd/ChangeLog [deleted file]
ripngd/ChangeLog [deleted file]
solaris/ChangeLog [deleted file]
tests/ChangeLog [deleted file]
vtysh/ChangeLog [deleted file]
watchquagga/ChangeLog [deleted file]
zebra/ChangeLog [deleted file]

diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644 (file)
index cf5c774..0000000
--- a/ChangeLog
+++ /dev/null
@@ -1,1990 +0,0 @@
-2008-07-22 Paul Jakma <paul.jakma@sun.com>
-
-       * HACKING: Document preference for compiler conditional code, over
-         cpp conditional.
-       * configure.ac: DISABLE_BGP_ANNOUNCE always should be defined.
-
-2008-06-10 Paul Jakma <paul@jakma.org>
-
-       * configure.ac: Bump version to 0.99.10
-
-2008-05-29 Martin Nagy <mnagy@redhat.com>
-
-       * */*main.c: Sanity check port numbers before using.
-
-2008-01-30 Peter Szilagyi <sp615@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
-
-2008-01-11 Ingo Flaschberger <if@xip.at>
-
-       * configure.ac: Improve HAVE_BSD_LINK_DETECT test.
-
-2008-01-10 Ingo Flaschberger <if@xip.at>
-
-       * configure.ac: Define HAVE_BSD_LINK_DETECT if <net/if_media.h> is
-         present.
-
-2007-10-14 Paul Jakma <paul.jakma@sun.com>
-
-       * NEWS: Note that MRT dumps are now version 2
-
-2007-09-07 Paul Jakma <paul.jakma@sun.com>
-
-       * configure.ac: Bump version to 0.99.9
-
-2007-08-07 James Carlson <james.d.carlson@sun.com>
-
-       * configure.ac: Added support for separate link-layer access
-         mechanisms in isisd.
-
-2007-07-27 Paul Jakma <paul.jakma@sun.com>
-
-       * configure.ac: Bump version to 0.99.8
-
-2007-06-25 Hasso Tepper <hasso@quagga.net>
-
-       * configure.ac: Fix typo so it compiles again on BSD systems.
-
-2007-06-22 Paul Jakma <paul.jakma@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.
-
-2007-05-10 Paul Jakma <paul.jakma@sun.com>
-
-       * configure.ac: Add back check for inet_aton, which got dropped
-         somehow in previous jumbo patch.
-         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.
-
-2007-05-09 Paul Jakma <paul.jakma@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@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().
-
-2007-04-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * configure.ac: Change gcc CFLAGS from '-std=c99' to '-std=gnu99'
-         to improve portability.
-
-2007-04-29 Paul Jakma <paul.jakma@sun.com>
-
-       * configure.ac: Bump to 0.99.7
-
-2007-04-16  David Young  <dyoung@pobox.com>
-
-        * connected.c (zebra): 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.
-
-2007-02-06  Greg Troxel  <Greg Troxel <gdt@ir.bbn.com>>
-
-       * configure.ac: Use generic sed test, since autoconf 2.59 lacks
-       AC_PROG_SED and while 2.59 is somewhat crufty, it isn't officially
-       crufty.
-
-2007-02-06  Greg Troxel  <Greg Troxel <gdt@ir.bbn.com>
-
-       * bootstrap.sh: use -i to install missing files
-
-2007-02-03  Greg Troxel  <Greg Troxel <gdt@ir.bbn.com>
-
-       * configure.ac: add AC_PROG_SED
-
-2007-02-02  Greg Troxel  <Greg Troxel <gdt@ir.bbn.com>
-
-       * README.NetBSD:  use bootstrap.sh instead of autoreconf
-       
-       * bootstrap.sh: new file with just 'autoreconf'
-
-       * update-autotools: print out tool name before invoking to aid debugging
-
-2006-12-08 Paul Jakma <paul.jakma@sun.com>
-
-       * configure.ac: Bump to 0.99.6
-
-2006-10-04 Oliver Hookins <ohookins@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@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
-
-2006-08-27 Paul Jakma <paul.jakma@sun.com>
-
-       * configure.ac: Bump to 0.99.5
-
-2006-06-15 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * redhat/quagga.spec.in: Get default distro automatically
-         by using rpm to query the fedora-release version.
-         And fix a typo (should be default_dist, not dist_default).
-
-2006-05-28 Paul Jakma <paul.jakma@sun.com>
-
-       * configure.ac: Update SOS CFLAGS, Xt shouldn't be used and
-         enable debug options.
-         Add a check for GNU Make and warn the user if it does not appear
-         to be the make used.
-         Check for Sun libc printstack(), add a general HAVE_STACK_TRACE
-         define for lib/log.c, if any supported stack symbol dumping
-         function is found (glibc backtrace/sun libc printstack).
-
-2006-05-10 Paul Jakma <paul.jakma@sun.com>
-
-       * configure.ac: Bump to 0.99.4
-
-2006-03-30 Paul Jakma <paul.jakma@sun.com>
-
-       * TODO: Add reminder for useful MED functionality we should
-         implement.
-
-2006-02-15 Paul Jakma <paul.jakma@sun.com>
-
-       * configure.ac: Check for mallinfo, being careful to link test
-         so we can detect things like umem being used (which doesn't
-         provide a mallinfo).
-
-2006-01-31 Paul Jakma <paul.jakma@sun.com>
-
-       * configure.ac: Cleanup the hideous {net,ucd}-snmp section
-         by removing ucd-snmp. Hence fixing detection where
-         net-snmp is installed in /usr/local (Boris Kovalenko reported
-         the problem).
-
-2006-01-19 Paul Jakma <paul.jakma@sun.com>
-
-       * configure.ac: Bump to 0.99.3
-
-2005-11-26 Paul Jakma <paul.jakma@sun.com>
-
-       * configure.ac: Collect together CFLAGS based on compiler
-         detected a bit. Recognise and set default CFLAGS for SunPro /
-         SOS10.
-
-2005-11-14 Paul Jakma <paul.jakma@sun.com>
-
-       * configure.ac: Tell gcc we like C99.
-         [bug #231] Check and test for stdint.h.
-
-2005-11-11 Paul Jakma <paul.jakma@sun.com>
-
-       * NEWS: Update.
-       * configure.ac: Bump to 0.99.2
-
-2005-11-10 Paul Jakma <paul.jakma@sun.com>
-
-       * HACKING: Add recommendation to provide a single Subject
-         style description to the commit message.
-         Add some recommendations for ChangeLog.
-
-2005-09-29 Paul Jakma <paul.jakma@sun.com>
-
-       * configure.ac: Add the test for Solaris least-privileges. Set
-         defines for whether capabilities are supported and whether of
-         the linux or solaris variety.
-         Add missing-prototypes, missing-declarations, char-subscripts
-         and cast-qual warnings to default cflags, cause Hasso enjoys warnings,
-         and we really should clean the remaining ones up. (ie isisd..).
-       * (*/*main.c) Update the zebra_capabilities_t arrays in the various
-         daemons to match the changes made in lib/privs.h.
-         
-2005-09-19 Hasso Tepper <hasso at quagga.net>
-
-       * configure.ac: Test existance of strndup.
-
-2005-08-25 Paul Jakma <paul@jakma.org>
-
-       * configure.ac: Add -fno-omit-frame-pointer after -Os in default
-         cflags, just to be sure.
-         Fedora's readline library does not itself link to termcap, hence
-         we must pass the result of termcap tests in via OTHER-LIBRARIES
-         argument, otherwise the test of main in readline will fail due to 
-         missing termcap systems. On systems like Debian, -ltermcap
-         is not needed for the readline test, because libreadline already
-         links to it.
-         
-2005-08-25 Hasso Tepper <hasso at quagga.net>
-
-       * configure.ac, vtysh/Makefile.am: Only vtysh needs to be linked
-         against libreadline and friends.
-
-2005-08-13 Paul Jakma <paul@jakma.org>
-
-       * Makefile.am: (EXTRA_DIST) Add the trailing slash back in which
-         greg left out - tools bits weren't being included in dist,
-         which broke rpm builds :).
-
-2005-08-10  Greg Troxel  <gdt@fnord.ir.bbn.com>
-
-       * Makefile.am (EXTRA_DIST): add INSTALL.quagga.txt, because people
-       that patch releases need to know about autoconf required versions.
-
-2005-06-30 Louis Lagendijk <louis.lagendijk@gmail.com>
-
-       * configure.ac: Actually test whether libc has IPv6 support.
-
-2005-06-28 Paul Jakma <paul.jakma@sun.com>
-
-       * INSTALL.quagga.txt: GNU make is required now, because of manual
-         automatic rules in solaris/Makefile.am. (If someone knows how
-         to do these in a better way..).
-         GNU AWK is required for CVS checkout builds.
-
-2005-06-01 Paul Jakma <paul.jakma@sun.com>
-
-       * NEWS: bgpd work queues and ripd auth-mode change
-
-2005-05-07 Yar Tikhiy <yar@comp.chem.msu.su>
-
-       * configure.ac: Check for OSes which support passing ifindex in
-         struct ip_mreq.
-
-2005-04-29 Paul Jakma <paul.jakma@sun.com>
-
-       * NEWS: Added some more 0.99 news.
-       * configure.ac: bump to 0.99.1 (0.99.0 was never released except
-         via CVS snapshots)
-
-2005-04-25 Paul Jakma <paul.jakma@sun.com>
-
-       * HACKING: Add some notes about build system changes, to
-         document common oversights (common for me anyway).
-         Seperate sections with two newlines, easier to read.
-
-2005-04-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * configure.ac: Added AC_ARG_ENABLE(time-check).  By default,
-         warning messages will now be printed for threads or commands that take
-         longer than 5 seconds, but this configure argument can be used
-         to disable the checks or change the threshold.
-
-2005-04-16 Paul Jakma <paul.jakma@sun.com>
-
-       * configure.ac: check for gawk, needed to build memtypes.h
-
-2005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * configure.ac: Move AC_CANONICAL_* stuff before AM_INIT_AUTOMAKE to
-         eliminate warning message about AC_ARG_PROGRAM being called
-         before AC_CANONICAL_TARGET.
-
-2005-04-11 Paul Jakma <paul.jakma@sun.com>
-
-       * configure.ac: Call AC_CANONICAL_{BUILD,TARGET} macros. Target isnt
-         set otherwise, afaict. AC_SUBST enable_{user,group,vty_group} and
-         quagga_statedir - the Solaris package bits for one need this.
-         configure the solaris/ Makefile.
-       * Makefile.am: solaris is a subdir - unconditional or else it wont
-         be included in non-solaris made dists.
-         
-2005-04-10 Paul Jakma <paul.jakma@sun.com>
-
-       * configure.ac: Fix host string recognition for Solaris Nevada aka
-         solaris2.10.1, and hopefully future such strings.
-
-2005-04-07 Paul Jakma <paul.jakma@sun.com>
-
-       * (global): Fix up list loops to match changes in lib/linklist, 
-         and some basic auditing of usage.
-       * configure.ac: define QUAGGA_NO_DEPRECATED_INTERFACES
-       * HACKING: Add notes about deprecating interfaces and commands.
-
-2005-04-05 Paul Jakma <paul@dishone.st>
-
-       * HACKING: remove the 'manually patch redhat/quagga.spec' bit
-         from RELEASE section. Let the rpm revision be CONFDATE, will work
-         fine. Expand on the importance of supplying good ChangeLog's in
-         the PATCH SUBMISSION section.
-
-2005-04-04 Hasso Tepper <hasso at quagga.net>
-
-       * configure.ac: Fix AC_LANG_SOURCE usage. It needs double square
-         brackets around source. Single ones broke square brackets in the
-         code (arrays).
-
-2005-04-03 Hasso Tepper <hasso at quagga.net>
-
-       * configure.ac: Use AC_RUN_IFELSE instead of obsolete AC_TRY_RUN macro
-         and define action for cross-compiling.
-
-2005-04-02 Hasso Tepper <hasso at quagga.net>
-
-       * configure.ac: Add --enable-isis-topology to enable isisd topology
-         generator code.
-
-2005-04-02 Paul Jakma <paul@dishone.st>
-
-       * INSTALL.quagga.txt: Add note about additional CVS build
-         requirements, if one wishes to build ps/pdf docs.
-
-2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * configure.ac: Add strnlen to AC_CHECK_FUNCS.
-
-2005-03-28 Hasso Tepper <hasso at quagga.net>
-
-       * configure.ac, */Makefile.am: Fix previous commit. SNMP includes
-         must be after lib/ includes in some systems. Introduce SNMP_INCLUDES
-         for that.
-
-2005-03-28 Hasso Tepper <hasso at quagga.net>
-
-       * configure.ac: Fix most of "Presents But Cannot Compiled" warnings
-         about various headers. CFLAGS is not correct place to specify
-         includes, INCLUDES is for that.
-
-2005-03-27 Hasso Tepper <hasso at quagga.net>
-
-       * configure.ac: Add Intel compiler (icc) support. Although Intel
-         tries really hard to make icc look like gcc, there are some
-         differences. It's very verbose with -Wall and it doesn't support
-         the individual -W options. We are going to ignore some of these
-         warnings.
-
-2005-03-26 Hasso Tepper <hasso at quagga.net>
-
-       * doc/defines.texi.in, lib/version.h.in: Update copyright string to
-         include year 2005. 
-
-2005-03-25 Jean-Mickael Guerin <jean-mickael.guerin@6wind.com>
-       * configure.ac: add struct nd_opt_interval and struct
-         nd_opt_homeagent_info detection.
-
-2005-03-14 Paul Jakma <paul.jakma@sun.com>
-
-       * (global) update all c files to match the lib/vector.h rename of
-         (struct vector).active to max, and vector_max macro to
-         vector_active.
-2005-03-12 Paul Jakma <paul.jakma@sun.com>
-
-       * configure.ac: Solaris 8 can use the newer lifreq based methods
-         too, allows IPv6.
-
-2005-02-19 Hasso Tepper <hasso at quagga.net>
-
-       * configure.ac: Fix Linux detection. Host types like i686-pc-linux
-         didn't match the pattern.
-
-2005-02-09 Paul Jakma <paul.jakma@sun.com>
-
-       * (global) Update code to match stream.h changes.
-         stream_get_putp effectively replaced with stream_get_endp.
-         stream_forward renamed to stream_forward_getp.
-         stream_forward_endp introduced to replace some previous 
-         setting/manual twiddling of putp by daemons.
-
-2005-01-24 Paul Jakma <paul@dishone.st>
-
-       * configure.ac: Bump version to 0.99.0
-
-2005-01-15 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * redhat/quagga.spec.in: Fix postun script to avoid misleading error
-         message saying the postun scriptlet failed when watchquagga
-         is not running.
-
-2005-01-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * configure.ac: Test for header file <ucontext.h> (for use in
-         signal processing).
-
-2005-01-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * configure.ac: If configure is invoked with --enable-snmp, but
-         the configure script is unable to find SNMP support on the platform,
-         then configure should give an error message and exit.
-
-2005-01-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * redhat/quagga.spec.in: Pass --enable-gcc-rdynamic to configure
-         to get gcc to link with -rdynamic for better backtraces.
-         When the rpm is upgraded, the restart logic now works as follows:
-         1. stop watchquagga; 2. stop all routing daemons; 3. restart zebra
-         if it was running; 4. start all routing daemons that were running;
-         and 5. start watchquagga if it was running.
-
-2005-01-07 Paul Jakma <paul@dishone.st>
-
-       * configure.ac: Bump version to 0.98.0
-
-2005-01-05 Paul Jakma <paul@dishone.st>
-
-       * configure.ac: Bump version to 0.97.5
-
-2005-01-04  Greg Troxel  <gdt@fnord.ir.bbn.com>
-
-       * configure.ac: Use AC_MSG_CHECKING/AC_MSG_RESULT around
-       CMSG_FIRSTHDR check, so it shows up in the output of configure.
-       Tested on NetBSD, which doesn't define HAVE_BROKEN_CMSG_FIRSTHDR.
-
-2005-01-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * configure.ac: Added test for broken CMSG_FIRSTHDR macro
-         (relevant for Solaris 8 and unpatched Solaris 9, don't know
-         whether other platforms are affected).
-
-2005-01-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * NEWS: Note improved logging facilities.
-
-2004-12-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * configure.ac: Add new option --enable-gcc-rdynamic to link
-         with -rdynamic.
-
-2004-12-23 Paul Jakma <paul@dishone.st>
-
-       configure.ac: Bump version to 0.97.4
-
-2004-12-22 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * redhat/quagga.spec.in: daemonv6_list should contain only IPv6 daemons.
-
-2004-12-22 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * redhat/quagga.spec.in: Add watchquagga, and fix some other
-         logic to make sure that all daemons are restarted on upgrades
-         and stopped on package removal.
-
-2004-12-22 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * redhat/quagga.sysconfig: Define some variables to support watchquagga.
-
-2004-12-22 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * configure.ac: Add a define for DAEMON_VTY_DIR in config.h.
-
-2004-12-22 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * {configure.ac,Makefile.am}: Build watchquagga by default.
-
-2004-12-21 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * NEWS: Note addition of watchquagga.
-       * HACKING: Note that watchquagga is in testing phase.
-
-2004-12-21 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * watchquagga: New watchquagga daemon.
-
-2004-12-21 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * redhat/Makefile.am: Added watchquagga.init to EXTRA_DIST.
-
-2004-12-21 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * redhat/watchquagga.init: New file, init script for watchquagga.
-
-2004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * HACKING: Indicate that header files should be consulted for
-         documentation, particularly logging levels in lib/log.h.
-
-2004-11-24 Paul Jakma <paul@dishone.st>
-
-       * TODO: Add source routing, zebra filtering and lib/ documenting.
-
-2004-11-19 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * global: Replace strerror with safe_strerror.  And vtysh/vtysh.c
-         needs to include "log.h" to pick up the declaration.
-
-2004-11-19 Hasso Tepper <hasso at quagga.net>
-
-       * configure.ac: Avoid regeneration of doc/quagga.info for now.
-
-2004-11-17 Paul Jakma <paul@dishone.st>
-
-       * INSTALL.quagga.txt: texinfo version corrected, so section on
-          that 4.7-x being unknown is not needed.
-
-2004-11-12 Paul Jakma <paul@dishone.st>
-
-       * configure.ac: Fix AC_CONFIG_FILES, the chmod seems to run for
-          every input file, should be only be for vtysh/extract.pl, so that
-         should be a seperate AC_CONFIG_FILES.
-       * INSTALL: update-autotools, autoreconf -i will install this, remove
-         the file so it always matches the autoconf which created
-          configure (ie the quagga snapshot producing host).
-       * INSTALL.quagga.txt: Some quagga specific INSTALL notes.
-       * README: s/GNU Zebra/Quagga/ and refer to IS-IS support.
-
-2004-11-10 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * redhat/quagga.spec.in: add comments showing how to get gcc verbosity
-
-2004-11-08 Paul Jakma <paul@dishone.st>
-
-       * configure.ac: bump version to 0.97.3, release imminent.
-
-2004-11-06 Paul Jakma <paul@dishone.st>
-
-       * configure.ac: Arguments to AC_OUTPUT is deprecated, use
-          AC_CONFIG_FILES instead. Rearrange the order slightly to put the
-          Makefiles first (silly aesthetic thing, dont know why I had to do
-          this ;) ). Add doc/defines.texi to the list.
-       * NEWS: bgp route-server support added, refer to docs.
-       * update-autotools: call automake with --add-missing and --copy,
-          former is important for obvious reasons, latter for dist files,
-          and --gnu to enable whatever extra goodness checks.
-       * {depcomp, install-sh, missing}: removed, auto-generated files.
-
-2004-11-05 Paul Jakma <paul@dishone.st>
-
-       * HACKING: Expand on ChangeLogs, eg current practice for certain
-          directories and certain other meta-data is not to maintain a 
-          ChangeLog. Expand on the commit message, IMHO, commit message
-          should always be ChangeLog for files where ChangeLog is kept.
-         Solaris is supported on any platform (with, at moment, an
-          additional patch).
-
-2004-10-23 Paul Jakma <paul@dishone.st>
-
-       * configure.ac: bump version to 0.97.2, release imminent.
-
-2004-10-22 Paul Jakma <paul@dishone.st>
-
-       * configure.ac: fix up enable help alignment slightly
-          Add --enable-gcc-ultra-verbose to set various gcc warnings which
-          should one day be fixed but are not serious problems or which
-          could be false-positives.
-
-2004-10-19 Andrew J. Schorr <aschorr@telemetry-investments.com>
-
-       * lib, zebra, ripd, ospfd, bgpd: Support NULL connected destination
-         pointers properly everywhere.  Fix point-to-point logic to
-         support links where a dedicated subnet has been assigned.
-         PtP links with /31 subnets should now work where supported by O/S.
-
-2004-10-11 Paul Jakma <paul@dishone.st>
-
-       * bump version to 0.97.1, release imminent.
-
-2004-10-07 Paul Jakma <paul@dishone.st>
-
-       * bump version to 0.97.0, release imminent.
-
-2004-10-07  Greg Troxel  <gdt@sunpal7.mit.edu>
-
-       * configure.ac: remove -Wpacked; 2.95.3 doesn't support it.     
-
-2004-10-05 Hasso Tepper <hasso at quagga.net>
-
-       * configure.ac: Removed -Wpadded. I don't have sooo much time that I
-         could care about padding ;).
-
-2004-09-30 Paul Jakma <paul@dishone.st>
-
-       * Update default CFLAGS for gcc to keep Hasso busy.
-
-2004-09-27 Paul Jakma <paul@dishone.st>
-
-       * update-autotools: libtoolize should copy files, rather than link.
-         the whole idea is that dist files should not need auto*, etc.
-         installed to be able to compile.
-
-2004-09-13  Hasso Tepper  <hasso at quagga.net>
-
-       * configure.ac: Disable isisd compiling by default.
-
-2004-09-13 Paul Jakma <paul@dishone.st>
-
-       * configure.ac: capitalise the package name. autoconf lowercases
-          it for PACKAGE_TARNAME.
-
-2004-09-13 Jose Luis Rubio <jrubio@dit.upm.es>
-           (at Technical University of Madrid as part of Euro6ix Project)
-
-        Enhanced Route Server functionality and Route-Maps:
-
-        * bgpd/bgpd.h: Modified 'struct peer' and 'struct bgp_filter' to
-        support rs-clients. A 'struct bgp_table *rib' has been added to the
-        first (to mantain a separated RIB for each rs-client) and two new
-        route-maps have been added to the last (for import/export policies).
-        Added the following #defines: RMAP_{IN|OUT|IMPORT|EXPORT|MAX},
-        PEER_RMAP_TYPE_{IMPORT|EXPORT} and BGP_CLEAR_SOFT_RSCLIENT.
-
-        * bgpd/bgpd.c: Modified the functions that create/delete/etc peers in
-        order to consider the new fields included in 'struct peer' for
-        supporting rs-clients, i.e. the import/export route-maps and the
-        'struct bgp_table'.
-
-        * bgpd/bgp_route.{ch}: Modified several functions related with
-        receiving/sending announces in order to support the new Route Server
-        capabilities.
-        Function 'bgp_process' has been reorganized, creating an auxiliar
-        function for best path selection ('bgp_best_selection').
-        Modified 'bgp_show' and 'bgp_show_route' for displaying information
-        about any RIB (and not only the main bgp RIB).
-        Added commands for displaying information about RS-clients RIBs:
-        'show bgp rsclient (A.B.C.D|X:X::X:X)', 'show bgp rsclient
-        (A.B.C.D|X:X::X:X) X:X::X:X/M', etc
-
-        * bgpd/bgp_table.{ch}: The structure 'struct bgp_table' now has two
-        new fields: type (which can take the values BGP_TABLE_{MAIN|RSCLIENT})
-        and 'void *owner' which points to 'struct bgp' or 'struct peer' which
-        owns the table.
-        When creating a new bgp_table by default 'type=BGP_TABLE_MAIN' is set.
-
-        * bgpd/bgp_vty.c: The commands 'neighbor ... route-server-client' and
-        'no neighbor ... route-server-client' now not only set/unset the flag
-        PEER_FLAG_RSERVER_CLIENT, but they create/destroy the 'struct
-        bgp_table' of the peer. Special actions are taken for peer_groups.
-        Command 'neighbor ... route-map WORD (in|out)' now also supports two
-        new kinds of route-map: 'import' and 'export'.
-        Added commands 'clear bgp * rsclient', etc. These commands allow a new
-        kind of soft_reconfig which affects only the RIB of the specified
-        RS-client.
-        Added commands 'show bgp rsclient summary', etc which display a
-        summary of the rs-clients configured for the corresponding address
-        family.
-
-        * bgpd/bgp_routemap.c: A new match statement is available,
-        'match peer (A.B.C.D|X:X::X:X)'. This statement can only be used in
-        import/export route-maps, and it matches when the peer who announces
-        (when used in an import route-map) or is going to receive (when used
-        in an export route-map) the route is the same than the one specified
-        in the statement.
-        For peer-groups the statement matches if the specified peer is member
-        of the peer-group.
-        A special version of the command, 'match peer local', matches with
-        routes originated by the Route Server (defined with 'network ...',
-        redistributed routes and default-originate).
-
-        * lib/routemap.{ch}: Added a new clause 'call NAME' for use in
-        route-maps. It jumps into the specified route-map and when it returns
-        the first route-map ends if the called RM returns DENY_MATCH, or
-        continues in other case.
-
-2004-08-31  Greg Troxel  <gdt@poblano.ir.bbn.com>
-
-       * Makefile.am: make m4 as subdir, rather the EXTRA_DISTing it
-
-       * configure.ac: add m4/Makefile to output list
-
-2004-08-31  Greg Troxel  <gdt@poblano.ir.bbn.com>
-       
-       * Makefile.am: Only put pkgsrc dir in SUBDIRS if we should install
-         rc.d files.  (Note that pkgsrc is always in DIST_SUBDIRS.)
-
-       * configure.ac (pkgsrcdir): add new --enable-pkgsrcrcdir to give a
-         directory into which www.pkgsrc.org-style rc.d files are
-         installed.
-
-2004-08-19 Paul Jakma <paul@dishone.st>
-
-       * Makefile.am: add m4 directory to EXTRA_DIST, and define 
-         ACLOCAL_AMFLAGS to have aclocal pull in m4/
-       * configure.ac: AM_PROG_LIBTOOL should be AC_...
-       * update-autotools: print a warning that this script is deprecated  
-       
-2004-08-17  Greg Troxel  <gdt@fnord.ir.bbn.com>
-
-       * update-autotools: print tools versions to aid people in sending
-       bug reports.
-
-2004-07-23  Greg Troxel  <gdt@poblano.ir.bbn.com>
-
-       * */Makefile.am: Use ../dir/libfoo.la, rather than "-L../dir
-       -lfoo", to avoid linking against installed libraries from a
-       previous version.
-
-       * {lib,ospfd,ospfclient}/Makefile.am: explicitly define the shared
-       library version number to be 0.0
-
-       * configure.ac: remove spurious , so extract.pl is chmod'd +x.
-       
-       * HACKING: explain shared library versioning rules
-       
-2004-07-22 Paul Jakma <paul@dishone.st>
-
-       * configure.ac: modify default CFLAGS to be compiler agnostic
-         build Makefile for tests/ subdir.
-         
-2004-07-14  Greg Troxel  <gdt@poblano.ir.bbn.com>
-
-       * Makefile.am (EXTRA_DIST): Add missing \, so tools stuff is
-       really in distfile.
-
-2004-06-30  Greg Troxel  <gdt@poblano.ir.bbn.com>
-
-       * */Makefile.am: use -L../lib -lzebra, so we pick up the shlib
-       version of libzebra when available.
-
-       * configure.ac, update-autotools: Add libtool.
-
-2004-06-30  Greg Troxel  <gdt@poblano.ir.bbn.com>
-
-       * Makefile.am: add files to EXTRA_DIST rather than copying, and
-       omit the kludgy cleaning steps, which were failing when the list
-       to clean was empty.
-
-2004-06-30  Greg Troxel  <gdt@poblano.ir.bbn.com>
-       
-       * configure.ac: Look for perl, and substitute into vtysh/extract.pl.
-       Search for termcap functions more expansively (fixes vtysh compile
-       on NetBSD).  Clean up --enable-vtysh definition.
-
-2004-06-30  Greg Troxel  <gdt@poblano.ir.bbn.com>
-
-       * update-autotools: Use -rf on autom4te.cache.
-
-2004-06-20 Hasso Tepper <hasso@estpak.ee>
-
-       * lib/vty.c: Don't attempt to load configuration file from current
-         directory.
-       * Update vty_read_config() calls in bgpd/bgp_main.c, isisd/isis_main.c,
-         ospf6d/ospf6_main.c, ospfd/ospf_main.c, ripd/rip_main.c,
-         ripngd/ripng_main.c and zebra/main.c.
-
-2004-05-11 Paul Jakma <paul@dishone.st>
-
-       * configure.ac: Add solaris support for the zebra/*_solaris 
-         method's, based on Sowmini's patches.
-
-2004-04-08 Paul Jakma <paul@dishone.st>
-
-       * ospf_spf.h: Add backlink field to struct vertex
-       * ospf_spf.h: (ospf_vertex_new) initialise backlink
-         (ospf_lsa_has_link) return index of link back to
-         vertex V from candidate vertex W, or -1 if no link exists.
-         (ospf_spf_next) save backlink index for candidate vertex
-       * ospf_interface.c: (ospf_vl_set_params) Use the backlink index
-         to determine correct address for virtual-link peers. Fall back 
-         to older "pick first link" method if no backlink index exists.
-         
-2004-04-06 Hasso Tepper <hasso@estpak.ee>
-       
-       * zebra/ipforward_proc.c: Fixed lowering privileges.
-       * zebra/zserv.c: Fixed "(no) ipv6 forwarding" command logic.
-       * configure.ac: Added --disable-capabilities switch to configure.
-
-2004-03-22 Hasso Tepper <hasso@estpak.ee>
-
-       * Readded SIGTERM handling so daemons can clean up their stuff if they
-         are killed (not murdered).
-
-2004-03-20 Michael Bruening <mike@vailsys.com>
-
-       * ospfd/ospf_vty.c: Completed array distribute_str of route types with
-         addition of "isis". This array must be indexed by
-         ZEBRA_ROUTE_(SYSTEM|KERNEL|...) defines in zebra.h, and should
-         be updated with every route type addition. This fix allows
-         commands redistributing routes from (bgp|isis), like "router ospf
-         redistribute bgp ...", to be written to terminal, memory, file,
-         which would otherwise result in a seg fault or, possibly, config
-         file corruption. Overlooked in import of isisd.
-       * Similar fixes to bgpd/bgp_vty.c ospf6d/ospf6_asbr.c ripd/rip_zebra.c
-         and ripngd/ripng_zebra.c.
-
-2004-03-17 Jean-Yves Simon <lethalwp@tiscali.be>
-       
-       * zebra/main.c, ripd/rip_main.c: Fix typos sigusr1 -> sigint,
-         bugzilla #82.
-
-2004-03-16 David Young <dyoung@pobox.com>
-
-       * (many) reference <lib/version.h> rather than "version.h",
-       because version.h is a generated file and not present in the
-       source tree when using objdir builds.
-
-2004-03-03 PC Drew <pc@superiorcomm.net>
-
-       * lib/keychain.c: typecast time_t function to long, fixes compile
-         warning.
-       * lib/debug.c: wrapped function with ifdef HAVE_GLIBC_BACKTRACE fixes
-         compile warning when backtrace doesn't exist for that system.
-       * zebra/rtadv.c: for OpenBSD, added include statement for
-         netinet/icmp6.h
-       * zebra/zserv.c: added default case to switch statements, fixes compile
-         warning about certain NEXTHOP_TYPE enumeration values not being
-         handled.
-       * zebra/rt_socket.c: set *mask = NULL by default, fixes compile
-         warning, about mask possibly being used uninitialized.
-       * bgpd/bgp_nexthop.c: added default case to switch statements, fixes
-         compile warning about certain NEXTHOP_TYPE enumeration values not
-         being handled.
-       * ospfd/ospf_spf.c: typecast time_t to long, fixes compile warning.
-       * ospfd/ospf_route.c: typecast route_node->prefix to prefix_ipv4, fixes
-         compile warning.
-       * ospfd/ospf_route.c: typecast prefix_ipv4 to prefix, fixes compile
-         warning.
-       * ospfd/ospf_abr.c: typecast prefix to prefix_ipv4 in two instances,
-         fixes compile warning.
-       * vtysh/vtysh.c: fixed null pointer sentinel value when doing execl and
-         friends, fixes compile warning.
-       * ospf6d/ospf6_damp.c: typecast time_t to long in 4 instances, fixes
-         compile warning.
-       * ospf6d/ospf6_main.c: use MAXPATHLEN (if set) instead of 64 for the
-         _cwd array, fixes compile warning.
-
-2004-01-19 Paul Jakma <paul@dishone.st>
-
-       * tests/test-sig.c: New file, regression test for sigevents.
-       * lib/Makefile.am: add sigevent.{c,h}
-       * (isis|rip|ripng|ospf|ospf6|bgp)d/\1_main.c: modify for sigevents.
-       * zebra/main.c: ditto.
-       
-2004-01-10 Paul Jakma <paul@dishone.st>
-
-       * Makefile.am: redhat/ is a dist subdir too.
-       
-2004-01-10 Vincent Jardin <jardin@6wind.com>
-
-       * configure.ac: add the redhat/Makefile as a AC_OUTPUT() argument.
-       It fixes build on FreeBSD 5.1 and FreeBSD 4.7
-
-2004-01-08 Paul Jakma <paul@dishone.st>
-
-       * Makefile.am: as per gdt, specify the redhat dir as a DIST_SUBDIR,
-         remove the redhat/... dist targets - instead these now go in..
-         redhat/Makefile.am: (new) proper place to describe redhat/ dist 
-         files, as well as allow quagga.spec to be regenerated properly.
-         redhat/quagga.sysconfig: specify conf file location.
-         redhat/quagga.spec.in: Add 2 patches to RPM build.
-         
-2003-12-30 Paul Jakma <paul@dishone.st>
-
-       * redhat/isisd.init: new file, init script for isisd.
-         redhat/quagga.sysconfig: new file, sysconfig file for quagga
-         initscripts. 
-         redhat/quagga.spec.in: various cleanups, including sysconfig patch
-         from RH, fixed UID/GID as per RH EL, shell changed to 
-         /sbin/nologin, daemon vty's listen to 127.1 only per default and 
-         isisd packaged.
-         redhat/*.init: sysconfig support and runlevels specified.
-         
-2003-12-30 Paul Jakma <paul@dishone.st>
-
-       * Makefile.am: put the redhat/ stuff into EXTRA_DIST rather than
-         copying via dist-hook. Remove ~ files backup cruft from dists.
-         isisd/Makefile.am: sysconf example should go via
-         dist_examples_DATA. The include-netbsd/ headers werent mentioned
-         as sources and werent being copied into dists.
-         
-2003-12-23 Vincent Jardin <jardin@6wind.com>
-
-       * isisd: Import isisd from Sampo Saaristo's source code.
-
-2003-12-22 Christian Hammers <ch@lathspell.de>
-
-       * configure.ac (and everywhere a regular file is opened for
-         writing): use file permissions from configure rather than
-         compiled-in umask.
-
-2003-12-22 Hasso Tepper <hasso@estpak.ee>
-
-       * lib/linklist.c: Revert microfix I commited while reverting 
-         [quagga-dev 227]. Caused by misreading code.
-
-2003-12-21 Hasso Tepper <hasso@estpak.ee>
-
-       * lib/linklist.c: Revert patch [quagga-dev 227]. listnode_add_sort()
-         function should not drop nodes in any case. But fix behavior where
-         nodes were added to the end of list when cmp returned 0.
-       * lib/if.c: Check for duplicates before calling listnode_add_sort().
-
-2003-12-08  Greg Troxel  <gdt@fnord.ir.bbn.com>
-
-       * {lib,ospfd,ospfapi}/Makefile.am: Use pkginclude_HEADERS rather
-       than include_HEADERS to place includes in
-       ${prefix}/include/quaggainstead of polluting ${prefix}/include.
-
-2003-12-04  Greg Troxel  <gdt@poblano.ir.bbn.com>
-
-       * configure.ac: When setting exampledir to sysconfdir as a
-       default, don't quote ${sysconfdir}.  (Bug reported by Vincent
-       Jardin.)
-
-2003-12-03  Greg Troxel  <gdt@poblano.ir.bbn.com>
-
-       * configure.ac: Compile in Router Advertisement support by
-       default.  Note that this does not default to sending RAs; it just
-       makes 'ipv6 nd send-ra' and 'ipv6 nd prefix-advertisement'
-       available.  While others may prefer other tools, no argument has
-       been made that router advertisement support is such bloat that it
-       should be compiled out by default (it 9556 bytes on NetBSD/i386 vs
-       8 bytes with the support compiled out). This reversion of a
-       previous change was done in consultation with Paul.
-
-2003-12-03  Greg Troxel  <gdt@poblano.ir.bbn.com>
-
-       * configure.ac: Move tests for v6 header files to after the check
-       for v6 code version, and conditionalize on the right variable.
-       (Fixes problem where v6 header files are not included when v6 is
-       enabled implicitly.)
-
-2003-12-03  Greg Troxel  <gdt@poblano.ir.bbn.com>
-
-       * configure.ac: Add --enable-exampledir to specify where example
-       config files should go, defaulting to sysconfdir.
-
-       * */Makefile.am: use exampledir instead of sysconfdif for examples
-
-2003-11-02 Paul Jakma <paul@dishone.st>
-
-        * bgpd/bgp_routemap.c: Fix up 'set ip next-hop A.B.C.D|peer-address'
-          route map command so that vtysh can use it. Modified version of   
-          Hasso Tepper's patch. Fixes bug #52.
-        * configure.ac: FreeBSD has net-snmp in /usr/local.
-        * redhat/quagga.spec.in: Install libzebra headers with -devel
-          package.
-
-2003-11-02 Krzysztof Oledzki <oleq@ans.pl>
-
-        * zebra/zebra_rib.c: Revert patch (dating from zebra.org) which  
-          caused zebra to read all routes in all tables, rather than just
-          the main table. See [quagga-dev 280].
-
-2003-10-30 Paul Jakma <paul@dishone.st>
-
-        * configure.ac: netinet/in_systm.h is yet another well-known
-          header file we really should be checking for
-
-2003-10-27 kamatchi soundaram <kamatchi@tdd.sj.nec.com>
-
-        * ospfd/ospfd.c: Do not increment act_int for an area, as it is done
-          by ospf_ism.c::ism_change_state() - results in incorrect figure
-          for active interfaces in an area.
-
-2003-10-27 Paul Jakma <paul@dishone.st>
-
-        * lib/if.{ch}: remove ifc_pointtopoint() - left over from the
-          reverted RFC3021 patch.
-
-2003-10-27 Simon <lists@routemeister.net>
-
-        * ospfd/ospfd.c: if_is_pointopoint() takes (struct interface *), was
-          being called with struct connected. Change to co->ifp.
-
-2003-10-27 Gilad Arnold <gilad.arnold@terayon.com>
-
-        * zebra/zebra_rib.c: (nexthop_active_update) Check for multipath
-          limit when setting changed flag to avoid spurious changes.
-          (static_install_ipv{4,6}) dont uninstall by default, might not be
-          required - avoid spurious uninstalls.
-          (static_uninstall_ipv{4,6}) only uninstall the route if its
-          actually FIB route.
-
-2003-10-24 sowmini.varadhan@sun.com
-
-        * ospfd/ospf_network.c: (ospf_sock_init) Exit if socket can not be
-          created.
-
-2003-10-24 Jose Luis Rubio Guivernau <jrubio@dit.upm.es>
-
-        * Better 'show bgp' support for views (eg ipv6), see [quagga-dev 238]
-        * bgpd/bgp_route.c: (bgp_show) Take a struct bgp argument instead of
-          view string.
-          (bgp_show_neighbor_route) Take a struct peer argument instead of
-          ip string.
-          (peer_adj_routes) ditto
-          (show_adj_routes) ditto
-          (peer_lookup_in_view) new function to return appropriate struct
-          peer for a given view string.
-          (misc) Fixup all calls to above to reflect new calling arguments,
-          and use peer_lookup_in_view as needed. Additional commands
-          installed to use expanded functionality above, existing commands
-          modified to suit as well.
-        * bgpd/bgp_vty.c: 2 new aliases.
-
-2003-10-24 Paul Jakma <paul@dishone.st>
-
-        * configure.ac: Check for fcntl()
-        * {bgpd,ospf,ospf6d,ripd,ripngd}/Makefile.am: Install conf file via
-          regular automake means, not magic install incantations, see
-          bug #38.
-        * lib/Makefile.am: install the headers, needed to link libzebra.a
-          (and hence libospf.a, OSPF-API, etc.)
-
-2003-10-24 waldi@debian.org
-
-        * vtysh/Makefile.am: vtysh_cmd.c rebuild was broken because it
-          depended against source files without specification, i.e. it
-          used ../zebra instead of $(top_srcdir)/zebra.
-
-2003-10-23 Paul Jakma <paul@dishone.st>
-
-        * configure.ac: IRIX configure.ac support. Sort of works.
-          sysctl() crashes though (ipforward), there's some kind of odd
-          padding in the PF_ROUTE socket messages and setsockopt() on
-          SOCK_RAW does not work (so ospfd doesnt work).
-
-2003-10-22 Paul Jakma <paul@dishone.st>
-
-        * vtysh/Makefile.am: do not include vtysh_cmd.c in dists, its
-          configure dependent. (still need to find a way to make building of
-          it dependent on configure options or include all commands.)
-
-2003-10-22 Paul Jakma <paul@dishone.st>
-
-        * lib/zebra.h: include limits.h if its there, its a portable header
-          and useful and not just solaris specific. net/route.h is also
-          useful.
-
-2003-10-22 Paul Jakma <paul@dishone.st>
-
-        * lib/regex.c: bzero -> memset
-        * zebra/ioctl.c: ditto. bzero is not portable.
-
-2003-10-22 Paul Jakma <paul@dishone.st>
-
-        * zebra/kernel_socket.c: HAVE_IPV6 conditional for WRAPUP when
-          HAVE_SA_LEN is not defined. bcopy -> memcpy, bcopy is not
-          portable.
-
-2003-10-22 Paul Jakma <paul@dishone.st>
-
-        * configure.ac: Split up header checks into non-net, net and ipv6
-          related. Checking of IPv6 is conditional. Add some more output
-          text for the end of the configure run.
-
-2003-10-18 Lorenzo Colitti <lorenzo@ripe.net>
-
-        * bgpd/bgp_attr.c: (bgp_dump_routes_attr) Dont dump IPv4 nexthop
-          for IP. Dump MP_NLRI attr with IPv6 next-hop for AF_INET6 address
-          family prefixes. Accept prefix as argument.
-        * bgpd/bgp_attr.c: modify bgp_dump_routes_attr declaration.
-        * bgpd/bgp_dump.c: (bgp_dump_routes_entry) Modify calls to
-          bgp_dump_routes_attr.
-          (bgp_dump_common) Go by the family of the peering socket, not
-          configured address family when dumping peering information.
-          Add HAVE_IPV6 conditionals, eg missing from previous bgp interval
-          patch.
-
-2003-10-18 Lorenzo Colitti <lorenzo@ripe.net>
-
-        * bgpd/bgp_dump.{c,h}: (bgp_dump_interval_add) Dump at discrete
-          fixed intervals rather than fixed intervals from startup time.
-          (bgp_dump_interval_func) Dont return immediately if file cant be
-          openeded, but reschedule interval dumps, even - admin might
-          fix problem in meantime. Close the dump file in between intervals.
-          (bgp_dump_init) account for MSG header when initialising stream
-          size.
-
-2003-10-15 Paul Jakma <paul@dishone.st>
-
-        * ospfd/ospf_interface: (ospf_if_lookup_table) new function to
-          lookup oi for a given prefix in a given interfaces table of oi's.
-          (ospf_if_new) use ospf_if_lookup_table to deal with zebra
-          reporting new interface multiple times.
-          NB: This patch is a complete plaster-band of a hack. First, why is
-          zebra reporting interface events multiple times? Second, why does
-          ospfd maintain so many damn lists and tables relating to oi's -
-          these should be reconciled into one or two tables.
-
-2003-10-15 sowmini.varadhan@sun.com
-
-        * ripd/ripd.c: (rip_send_packet) use rip->sock for mcast sends,
-          instead of creating one socket per send. send source addr to
-          rip_update_interface.
-          (rip_update_process) should send an update on every connected
-          network for each interface.
-          (rip_request_send) should send a request on every connected
-          network for each interface.
-        * ripd/ripd.h: update prototype for rip_interface_multicast_set
-        * ripd/rip_interface.c: (rip_interface_multicast_set) reorganized
-          so that it can be called repeatedly for aliased interfaces (on
-          multiple networks).
-
-2003-10-15 Jay Fenlason <fenlason@redhat.com>
-
-        * lib/vty.c: (vty_telnet_option) Remote DoS exists if a telnet
-          end-sub-negotation is sent when no sub-negotation data has been
-          sent. Return immediately if no sub-negotation is in progress.
-          (vty_read) do not attempt to process options if no sub-negotation
-          is in progress.
-
-2003-10-15 Paul Jakma <paul@dishone.st>
-
-        * lib/vty.c: (vty_save_cwd) dont crash if getcwd fails. try fallback
-          to SYSCONFDIR. Allocate cwd from the stack rather than relying on
-          (non-portable) getcwd() allocation (which we didnt seem to be
-          freeing).
-
-2003-10-13 Jay Fenlason <fenlason@redhat.com>
-
-        * lib/zebra.h: define UINT32_MAX for those systems which do not
-          provide it.
-        * bgp_attr.h: define BGP_MED_MAX.
-        * bgp_route.c: update defines/constants to BGP_MED_MAX.
-        * bgp_routemap.c: ditto. clean up route_match_metric_compile
-          slightly to avoid unneccesary XMALLOC.
-
-2003-10-13 sowmini.varadhan@sun.com
-
-        * ospf_lsa.h: Add OSPF_LSA_PREMATURE_AGE flag.
-        * ospf_lsa.c: added better debug comments. check sequence number in
-          ospf_lsa_install. ospf_maxage_lsa_remover() checks for
-          OSPF_LSA_PREMATURE_AGE and re-originates the lsa after ls_acks are
-          received.
-        * ospf_flood.c: improve debug statement- print ls_seqnum.
-
-2003-10-13 Douglas Fraser <doug+quagga@idmf.net>
-
-        * zebra/connected.c: PtP revert fixup. Zebra was not creating
-        connected route for PtP peer.
-
-2003-10-07 Tarhon-Onu Victor <mituc@iasi.rdsnet.ro>
-
-        * zebra/ipforward_proc.c: (ipforward) Close the fd for
-        /proc/net/snmp. See [quagga-dev 284]
-
-2003-09-29 Gilad Arnold <gilad.arnold@terayon.com>
-
-        * zebra/zebra_rib.c: Fix possible dangling reference to rib
-        route_nodes - unlock it the appropriate number of times. (twice,
-        because of the implicit lock). see [quagga-dev 251].
-
-2003-09-29 Paul Jakma <paul@dishone.st>
-
-        * zebra/connected.c: revert the 'generic PtP' patch as it causes
-        far too many problems. People who use FreeSWAN should investigate
-        native linux ipsec.
-        * zebra/rt_netlink.c: ditto
-        * lib/if.c: ditto
-        * ripd/ripd.h: ditto
-        * ripd/ripd.c: ditto
-        * ripd/rip_interface.c: ditto
-        * ospfd/ospfd.c: ditto
-        * ospfd/ospf_snmp.c: ditto
-        * bgpd/bgp_nexthop.c: ditto
-        * ospfd/ospf_packet.c: Add debug output for some of the previously
-          completely silent drops of 'bad' packets.
-        * configure.ac: bump version
-
-2003-08-27 Jay Fenlason <fenlason@redhat.com>
-
-        * lib/Makefile.am: Do not use a lib (libcap) as a dependency
-        * zebra/Makefile.am: Link in libcap
-        * bgpd/bgp_routemap.c: attr->med is type u_in32_t, should be
-          compared with UINT32_MAX
-        * ospfd/ospfd.c: remove redundant assert
-        * zebra/rtadv.c: add missing include for zebra/rib.h
-
-2003-09-24 Paul Jakma <paul@dishone.st>
-
-        * lib/version.h: moved to version.h.in
-        * lib/version.h.in: New file, from version.h. Change hardcoded
-          package name and version to use the autoconf defined substition
-          variables.
-        * configure.ac: Fix up AC/AM_INIT* to new style. Remove the sed'ing
-          through lib/version.h for VERSION. Add lib/version.h to the
-          AC_OUTPUT list. Update the text output of quagga version at end
-          of configure run to use PACKAGE_VERSION.
-        * doc/.cvsignore: ignore quagga.pdf
-        * doc/.cvsignore: ignore version.h, its now autogenerated.
-
-2003-09-24 sowmini.varadhan@sun.com
-
-        * lib/if.c: (if_cmp_func) fix infinite loop if
-          ifp1->name == ifp2->name
-        * lib/linklist.c: (if_cmp_func) Fix handling of case where
-          list->cmp returns 0.
-        * rip_interface.c: (rip_interface_address_add) call
-          rip_enable_apply(), or the interface is never considered up.
-          see [quagga-dev 225].
-        * zebra/kernel_socket.c: Fix up WRAPUP macro to deal with multiple
-          address families in the absence of sa_len element in struct
-          sockaddr.
-          (ifm_read): Handle solaris 9 if_msghdr_t.
-          Deal with interfaces which are incomplete, lookup on name rather
-          than the placeholder interface index of -1.
-
-2003-09-24 Thomas Giger TGC <thomas.giger@tgc.de>
-
-        * ospf_packet.c (ospf_associate_packet_vl): pass NULL struct
-          interface to ospf_if_lookup_by_local_addr() rather than the
-          receiving interface ifp, packets for VL's could come in any
-          interface. See quagga-dev 250.
-
-2003-04-13 Paul Jakma <paul@dishone.st>
-
-       * Amir: Opaque LSA bug fix for deletion of Type11's
-       * configure.ac: use --localstatedir for Unix sockets
-       * Hasso Tepper: When flushing as-ext LSAs flush associated NSSA
-         LSAs.
-
-2003-04-04 Paul Jakma <paul@dishone.st>
-
-       * Sync to Zebra CVS
-       * Fix lib/thread.h leak
-       * Fix small Opaque LSA leak
-       * Do not configure OSPF interfaces for secondary addresses
-       * vtysh fixes from Hasso
-       * Dave Watson's missing ntohs fix
-
-2003-03-25 Paul Jakma <paul@dishone.st>
-
-       * Sync to Zebra CVS
-
-2003-03-17 Amir Guindehi <amir@datacore.ch>
-
-       * Extended SNMP checks in configure.ac so that net-snmp works
-
-2003-03-17 Amir Guindehi <amir@datacore.ch>
-           Ralph Keller <keller@tik.ee.ethz.ch>
-       * merge OSPF-API 
-
-2003-02-07 Paul Jakma <paul@dishone.st>
-
-       * Sync to zebra CVS
-
-2003-02-03 Paul Jakma <paul@dishone.st>
-
-       * Sync to zebra CVS
-
-2003-01-19 Paul Jakma <paul@dishone.st>
-
-       * Temporary fix for Generic PtP wrt to IPv6
-
-2003-01-17 Paul Jakma <paul@dishone.st>
-
-       * Sync up to latest zebra.org CVS
-       * [zebra 16823] Bugfix and new feature in Opaque-LSA handling
-         Masahiko Endo <endo@suri.co.jp>
-       * [zebra 16824] [PATCH] nsm_kill_neighbor 
-         Masahiko Endo <endo@suri.co.jp>
-       * [zebra 17217] [PATCH] show thread CPU
-         Yon Uriarte <havanna_moon@gmx.net>
-       * [zebra 17218] Re: [PATCH] CLI extensions.
-         Yon Uriarte <havanna_moon@gmx.net>
-
-2002-12-13 Paul Jakma <paul@dishone.st>
-
-       * added support for vtysh 'write file' command to 
-         write either per-daamon and/or integrated file
-       * ospfd md5 buffer copying fix (Greg Troxel) 
-       * ospfd md5 sequence number derived from time()
-       * RIPv1 fixes and improvements (John Hay)
-       * link state detection (linux) ([zebra 12269])
-       * Generic PtP and RFC3021 interface addressing support
-         (Frank van Maarseveen)
-       * Michal Ludvig <michal@logix.cz>:
-         [zebra 16525] PATCH: Bugfixes for KAME systems
-       * Kevin C Miller <kevinm@andrew.cmu.edu>
-         [zebra 16681] OSPF NSSA Patches
-       * Yon Uriarte <havanna_moon@gmx.net>
-         [zebra 16671] [PATCH] CLI extensions
-       * Masahiko Endo: [zebra 15475] - MPLS-TE docs
-
-2002-07-07  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.93 released.
-
-2002-06-28  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * update-autotools: Change file name from update-auto-tools.sh.
-
-2002-06-21  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * update-auto-tools.sh: Add a new script to clean up build
-       environment.
-
-2002-06-18  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * Shift to the latest build environment autoconf-2.53 and
-       automake-1.6.2.
-
-2001-10-22  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * Integrate Glen Turner <glen.turner@aarnet.edu.au>'s pid option.
-
-2001-08-19  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.92a released.
-
-2001-08-19  "Peter Galbavy" <peter.galbavy@knowtion.net>
-
-       * configure.in: SNMP library check problem fix when the library is
-       installed under /usr/local/lib.
-
-2001-08-15  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.92 released.
-
-2001-04-22  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in (LIBPAM): Use ZEBRA_AC_C_BIGENDIAN to avoid a
-       warning.
-       (IF_METHOD): Use test -r instead of AC_CHECK_FILE to avoid
-       warnings.
-
-       * config.guess: Update to 2000-11-10 version.
-
-2001-04-11  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER to
-       detect in_pktinfo structure.  Suggested by: Vlad Lungu
-       <vlad@rls.roknet.ro>.
-
-2001-03-07  Michael Rozhavsky <mrozhavsky@opticalaccess.com>
-
-       * configure.in: Add check for structure in_pktinfo.
-
-2001-02-07  "Bjoern A. Zeeb" <bzeeb+zebra@zabbadoz.net>
-
-       * configure.in (USE_PAM): Fix PAM library detection code.
-
-2001-02-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.91 is released.
-
-2001-01-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Remove guile related definition.
-
-2001-01-11  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in (ac_cv_htonl_works): HAVE_REPAIRABLE_HTONL is
-       removed.  htonl should work fine on any platform.
-
-2001-01-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Remove --enable-oldrib option.
-
-       * acconfig.h: OLD_RIB definition is removed.
-
-       * zebra-0.90 is released.
-
-       * configure.in (LIBS): Add check for sun_len field in struct
-       sun_len.
-
-2001-01-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Makefile.am: Include init/redhat files to distribution.
-
-2001-01-07  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * configure.in: check libm.a for BGPd compile error.
-       AC_CHECK_LIB(m, main) was added.
-
-2000-12-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: --enable-unixdomain becomes default.  Add
-       --enable-tcp-zebra for TCP/IP communication between protocol
-       daemon and zebra.
-
-       * COPYING.LIB: Added for lib/getopt.c, lib/getopt.h,
-       lib/getopt1.c, lib/md5-gnu.h, lib/md5.c, lib/regex-gnu.h,
-       lib/regex.c.
-
-       * Makefile.am (dist-hook): Include tools/*.cgi to distribution.
-
-2000-12-26  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in (MULTIPATH_NUM): --enable-multipath=ARG specify
-       multipath number.  ARG must be digit.
-
-2000-12-11  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Add --enable-newrib for test new RIB code.
-
-2000-11-25  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * configure.in, config.h.in: Add check for libutil.h and
-       setproctitle().
-
-2000-10-26  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Add --enable-nssa for OSPF NSSA option.
-
-       * acconfig.h: Define HAVE_NSSA.
-
-2000-10-25  "Bjoern A. Zeeb" <bzeeb+zebra@zabbadoz.net>
-
-       * configure.in: pam_misc is only linked when the platform is
-       GNU/Linux.
-
-2000-10-24  Arkadiusz Miskiewicz <misiek@pld.org.pl>
-
-       * configure.in (LIBS): Add check for crypto library.  test x`ls
-       ${ac_snmp}` is replaced with sipmle test -f.
-
-2000-10-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Add --enable-unixdomain option.  This will be
-       default behavior in zebra-0.90.
-
-2000-10-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.89 is released.
-
-2000-09-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Add check for Intel CPU for Solaris on x86 check.
-
-2000-09-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Add check for getifaddrs().
-       Set AM_INIT_AUTOMAKE version to 0.89.
-
-2000-09-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * config.guess: Update to the latest version.
-
-       * config.sub: Likewise
-
-2000-09-14  David Lipovkov <dlipovkov@OpticalAccess.com>
-
-       * REPORTING-BUGS: New file is added.
-
-2000-08-27  itojun@iijlab.net
-
-       * configure.in: Add ncurses library check when --enable-vtysh is
-       specified.
-
-2000-08-22  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Add check for readline/history.h.
-
-       * acconfig.h: Remove pthread related variables.
-
-       * configure.in: Add --with-libpam option for vtysh PAM
-       authentication.  Remove --disable-pthread because we don't support
-       pthread.
-
-2000-08-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.88 is released.
-
-       * configure.in: Add Solaris -lcurses for vtysh.
-
-2000-08-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Add check for ncurses for compiling on Solaris.
-
-2000-07-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Add check for libreadline when --enable-vtysh is
-       specified.
-
-2000-07-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Add AC_DEFINE(OPEN_BSD). When OS is OpenBSD
-       interface method is if_ioctl.o
-
-2000-07-09  Chris Dunlop <chris@onthe.net.au>
-
-       * acconfig.h: Add HAVE_BROKEN_ALIASES.
-       
-       * configure.in: Add --enable-broken-aliases.
-
-2000-06-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Set version to zebra-0.87.
-
-2000-06-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Remove --enable-mpls-vpn.  Now MPLS-VPN support is
-       default.
-
-       * Set version to zebra-0.87-pre
-
-       * Makefile.am: Likewise.
-
-2000-04-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Set version to 0.86.
-
-2000-03-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Set version to 0.85b for ospfd test.
-
-2000-03-20  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Set version to 0.85a for ospfd test.
-
-2000-03-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Set version to 0.85.
-
-2000-01-26  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Makefile.in: Regenerated by patched automake for fixing "make
-       clean" problem on FreeBSD.
-
-1999-12-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Set version to 0.83a.  This is for *BSD static route lookup
-       problem.
-
-1999-12-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Set version to 0.83.
-
-1999-11-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Set version to 0.82.
-
-1999-11-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * aczebra.m4: New file added.
-
-1999-11-21  Michael Handler <handler@sub-rosa.com>
-
-       * configure.in (LIBS): Add sa_len check of sockaddr.
-
-       * acconfig.h: Add HAVE_SA_LEN.
-
-1999-11-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h: Update version to zebra-0.81b for bgpd test.
-
-1999-11-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Add --enable-mbgp.
-
-1999-11-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Makefile.am (EXTRA_DIST): Add TODO to the distribution.
-
-1999-11-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * TODO: New file is added.
-
-1999-11-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h: Update version to zebra-0.81a for ospfd test.
-
-1999-10-28  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: New option --enable-snmp is added.
-
-1999-10-24  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h: Update version to zebra-0.80.
-
-1999-10-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h: Update version to zebra-0.80-pre3
-
-1999-10-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in (LIBS): SNMP check is done by ucd-snmp/asn1.h.
-
-1999-10-10  Peter Galbavy <Peter.Galbavy@knowledge.com>
-
-       * configure.in: Add support of OpenBSD.
-
-1999-10-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h: Update version to zebra-0.80-pre2.
-
-1999-09-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h: Update version to zebra-0.80-pre.  From this version,
-       access-list and prefix-list's name space is divided into IPv4 and
-       IPv6.
-
-1999-09-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h: For test recent fixes Set version to zebra-0.79a.
-
-1999-09-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h: zebra-0.79 is out.
-
-1999-09-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h: For ospfd's virtual link test.  Set version to 0.78h.
-
-1999-09-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h: For ospfd test.  Set version to 0.78g.
-
-1999-09-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h: For internal test of ospfd. Set version to 0.78f.
-
-1999-09-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h: To test ospfd's fix, set version to 0.78e.
-
-1999-09-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h: To test ospfd's area related bug fix, set version 
-       to 0.78d.
-
-1999-09-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h: To test ospfd, set version to 0.78c.
-
-1999-08-31  Janos Farkas <chexum@shadow.banki.hu>
-
-       * Many misspelling correction.
-
-1999-08-31  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h: To test ospfd, set version to 0.78b.
-
-1999-08-31  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in (LIBS): Add UCD-SNMP include path check.
-
-1999-08-31  Lars Fenneberg  <lf@elemental.net>
-
-       * configure.in: The logic which detects the UCD-SNMP library
-       should first check in the default system locations for the library
-       and then in /usr/local.
-
-1999-08-27  itojun@iijlab.net
-
-       * configure.in (LIBS): Fix problem about libsnmp.a check.
-
-1999-08-26  kay <kay@v6.access.co.jp>
-
-       * configure.in (CFLAGS): Add <sys/socket.h> to check socklen_t.
-
-1999-08-24  VOP <vop@unity.net>
-
-       * filter.c: Include "sockunion.h".
-       plist.c: Likewise.
-       table.c: Likewise.
-
-1999-08-24  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Add netinet6/in6.h check.
-
-1999-08-21  Masaki Minami <masaki@minami.org>
-
-       * BSD/OS 4.0 porting.
-
-1999-08-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Add --enable-netlink option to force to use Linux
-       netlink interface.
-       (CFLAGS): Add ucd-snmp library check.
-
-       * acconfig.h: If socklen_t is not defined, typedef int to
-       socklen_t.
-
-1999-08-15  Arkadiusz Miskiewicz <misiek@misiek.eu.org>
-
-       * configure.in: When --enable-ipv6 specified, then only kernel
-       version is checked.
-
-1999-08-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Add GNU libc 2.1 check.
-
-1999-08-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Fix privious Linux IPv6 check changes.
-
-1999-08-02  Arkadiusz Miskiewicz <misiek@misiek.eu.org>
-
-       * configure.in: Improve Linux IPv6 feature check.
-
-1999-07-29  Rick Payne <rickp@rossfell.co.uk>
-
-       * Changed route-maps to behave in a more cisco-like fashion
-
-1999-07-27  Gerhard Poul <gpoul@gnu.org>
-
-       * SERVICES: New file added.
-
-1999-07-12  itojun@iijlab.net
-
-       * configure.in: Add check for getaddrinfo.  Improve Kame related
-       library check.
-
-1999-07-07  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * configure.in, acconfig.h: Add check for FreeBSD 3.2.
-
-1999-07-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Delete check for netinet/ip6.h.
-
-1999-06-30  Gerhard Poul  <gpoul@gnu.org>
-
-       * README: remixed the old files and added some new parts.
-       moved some INSTALL stuff into INSTALL file.
-       moved some other stuff to doc/zebra.texi
-
-1999-06-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in (LIBS): Add libresolv check.
-       Change --enabe-all-in-one option to --enable-one-vty.
-
-1999-06-20  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Add --enabe-all-in-one option.
-
-1999-06-16  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Add socklen_t check.
-
-1999-06-16  Gerhard Poul <gpoul@gnu.org>
-
-       * Many compile warnings fixed.
-
-1999-05-31  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Change message from Linux 2.2.X IPv6 to Linux IPv6.
-       OpenBSD (NRL) check is enabled.
-
-1999-05-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in (LIBS): Add crypt library check.
-
-1999-05-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Add sin6_scope_id in struct sockaddr_in6 check.
-
-1999-04-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Set version to 0.63 for first beta package.
-
-1999-04-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * guile.m4: Added from guile package.
-
-1999-04-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Set version to 0.60 for beta package preparation.
-
-1999-04-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Makefile.am: Add noninst_LIBRARIES each directory's Makefile.am.
-       This change is for linking these libraries to guile.
-
-1999-04-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in (LIBS): Add struct rt_addrinfo check.
-
-1999-04-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: AC_STDC_HEADERS added.
-
-1999-03-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Add dependencies to each directory's Makefile.am.
-
-1999-03-02  Peter Galbavy  <Peter.Galbavy@knowledge.com>
-
-       * reworked include file structure, and configure so that all
-       source files get all system-dependent include files by including
-       <zebra.h> which is really lib/zebra.h. This means that the
-       different programs include files are now available as #include
-       "zebra/zebra.h" - note the use of quotes, not <> as delimiters.
-
-       In practical terms, if I haven't really screwed up, the main file
-       that maintainers for other OSes have to change is lib/zebra.h for
-       all the conditional includes etc.
-
-       * added --disable-pthread for those systems that seem to have
-       POSIX threads, but do not work. OpenBSD 2.4+ is like that just
-       now. Changed all occurance of #ifdef PTHREAD to use HAVE_PTHREAD
-       instead.
-
-1999-02-24    <kunihiro@zebra.org>
-
-       * configure.in: update to AC_PREREQ(1.13).
-       Change message from Linux 2.1.x to Linux 2.2.x.
-       * Added ospf6d directory support.
-
-1999-02-22  Peter Galbavy  <Peter.Galbavy@knowledge.com>
-
-       * added a "log" element to the BGPd peer structure, enabling us to
-       start thinging about a log stream per peer. This is currently
-       ignored by the wrapper code, but developers should try to use the
-       "appropriate" ZLOG stream. Documentation will follow, when the
-       real routines start to exist.
-
-       The current plan is to use a copy of the BSD syslog() routines and
-       replace the syslog library function with our own. I will need
-       feedback from users of other platforms as this work is done to see
-       if all is well elsewhere.
-       
-       * preliminary work on zlog() library. directly replaces syslog()
-       currently with zlog(ZLOG *, ...) where the new first argument
-       is a pointer to a ZLOG structure (defined in lib/log.h) and will
-       encapsulate all the information necessary to maintain multiple
-       logging streams.
-
-1999-02-19  Peter Galbavy  <Peter.Galbavy@knowledge.com>
-
-       * added vsnprintf() macro to lib/str.h if required and removed
-       #ifdef SUNOS_5 dependency on it
-
-1999-02-18  Peter Galbavy  <Peter.Galbavy@knowledge.com>
-
-       * syslog support added
-
-1999-02-18  Peter Galbavy <Peter.Galbavy@knowledge.com>
-
-       * configure.in: Add daemon function check.
-
-1999-01-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Add --disable-ipv6, --disable-zebra,
-       --disable-bgpd, --disable-ripd, --disable-ripngd, --disable-ospfd
-       options to configure.
-
-1998-12-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Check /usr/inet6/lib/libinet6.a exists or not.
-
-1998-10-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Comment out FreeBSD's libc_r detect section. At
-       this moment it doesn't work correctly with zebra.
-
-       Netlink interface is only enabled when Linux kernel version is
-       upper than 2.1.0.
-
-1998-09-15  HEO SeonMeyong <seirios@matrix.iri.co.jp>
-
-       * Hydrangea is now called KAME, so change all defines.
-
-1998-08-16  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: ifaliasreq check added.
-
-1998-08-12  Katsuhiro Kondou <kondou@nec.co.jp>
-
-       * Patch is applied for compile under EWS4800
-
-1998-06-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: delete old mtu_method check.
-
-       * doc/zebra.texi (Kernel interface): chapter `Kernel interface' added
-
-1998-06-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: add new netlink check for GNU/Linux
-
-1998-06-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * doc/zebra.texi: Update Linux netlink chapter.
-
-1998-05-18  Yamashita TAKAO  <jargon@lares.dti.ne.jp>
-
-       * config.h.in: define PTHREAD if work on Solaris 2.6
-               why delete the definition? I miss?
-
-1998-05-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: add net/if.h header check.
-
-1998-05-02  SeonMeyong HEO <seirios@Matrix.iri.co.jp>
-
-        * zebra.tex,archfig.tex,zebra.sty: Manual file is added.
-       * zebra.texi: Modify Introduction text.
-       * RIPngd.c: Patch Hydrangea code.
-
-1998-05-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * .cvsignore: added.
-
-       * Makerule.in: is gone.
-       * Makefile.am: Now we use automake to generate Makefile.in
-
-1998-03-19  Yamashita TAKAO  <jargon@lares.dti.ne.jp>
-
-       * lib/vty.c: modified the definition of *master
-       * lib/sockunion.c (inet_aton): add, but don't work. uum...
-
-
-1998-03-15  Yamashita TAKAO  <jargon@lares.dti.ne.jp>
-
-       * configure.in: define PTHREAD if work on Solaris 2.6
-       * config.h.in: likewise
-       * lib/thread.c: likewise
-       * lib/vty.c: likewise
-       
-1998-03-15  SeonMeyong HEO  <seirios@Matrix.iri.co.jp>
-
-       * config.h.in: define INET6 if defined HAVE_IPV6 & HYDRANGEA
-       * bgpd/: remove include <netinet6/in6.h> line.
-       * lib/: remove include <netinet6/in6.h> line.
-       * ripbgd/: remove include <netinet6/in6.h> line.
-       * zebra/: remove include <netinet6/in6.h> line.
-       * ripd/*.c: remove include <netinet6/in6.h> line.
-       undefine IPV6 difinitions because RIPd is not worked for
-       IPv6 protocol.
-
-       
-1998-01-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: Change routing socket check method from
-       AC_TRY_COMPILE to AC_TRY_RUN because GNU libc version 2 has
-       AF_ROUTE but over linux it's meenigless.
-
-1998-01-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * config.h.in: remove err_t define.
-
-1997-11-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in (canonical): add check of IF_METHOD
-
-1997-09-27  Kunihiro Ishiguro  <kunihiro@note.digital-magic.co.jp>
-
-       * configure.in: add INRIA check
-
-1997-09-25  Kunihiro Ishiguro  <kunihiro@note.digital-magic.co.jp>
-
-       * configure.in (canonical): change ipforward_snmp.o to ipforward_proc.o
-
-1997-09-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * configure.in: change IRDPD to NDPD
-
-1997-08-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * INSTALL: new file
-
-1997-08-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * config.h: add XCALLOC()
-
diff --git a/bgpd/ChangeLog b/bgpd/ChangeLog
deleted file mode 100644 (file)
index e92a72a..0000000
+++ /dev/null
@@ -1,3992 +0,0 @@
-2008-07-22 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_{packet,route,advertise}.c: change to compiler testing of
-         DISABLE_BGP_ANNOUNCE, rather than cpp.
-
-2008-07-22 MIYAJIMA Mitsuharu <miyajima.mitsuharu@anchor.jp>
-
-       * bgp_packet.c: (bgp_update_packet_eor) Fix crash triggerable
-         if a bgpd was compiled with --disable-bgp-announce and if GR is 
-         advertised by peer.
-
-2008-07-22 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_community.c: (community_str2com) assigns defaults to local
-         vars
-       * bgp_attr.c: (bgp_attr_parse) match format specifier to arg
-       * bgp_table.{c,h}: (bgp_table_top) can take a * to a const, quelling
-         warning in bgp_route.c
-2008-07-21 Paul Jakma <paul.jakma@sun.com>
-
-
-       * bgp_packet.c: (bgp_open_receive) fix warning in a zlog call
-       * bgp_vty.c: (bgp_vty_return) add return code
-       * bgpd.c: (bgp_master_init) setup the socket list.
-       * bgp_network.c: Remove the dual IPv4/6 socket thing for now, which
-         was implemented by Michael, until such time as its clear its
-         required for Linux (see sockopt comments). IPv6 support, including
-         IPv4 sessions on AF_INET6 sockets, therefore is broken, and the
-         '-l 0.0.0.0' arguments would need to be given to bgpd to make
-         things work here.
-
-2008-07-21 Michael H. Warfield <mhw@wittsend.com>
-           YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
-          Tomohiko Kusuda <kusuda@inetcore.com>
-           Leigh Brown <leigh@solinno.co.uk>
-       
-       * bgp_network.c: (bgp_md5_set_one) shim between libzebra tcp-md5
-         sockopt and bgpd.
-         (bgp_md5_set_socket) Helper for bgp_connect
-         (bgp_md5_set) setup TCP-MD5SIG for the given peer.
-         (bgp_connect) call out to bgp_md5_set_socket for the outgoing
-         connect socket.
-         (bgp_socket) save references to the listen sockets, needed if
-         TCP-MD5SIG is applied later or changed.
-       * bgp_vty.c: (*neighbor_password_cmd) New 'neighbor ... password'
-         commands.
-       * bgpd.c: (peer_{new,delete) manage TCP-MD5 password
-         (peer_group2peer_config_copy) inherit TCP-MD5 password
-         (peer_password_{un,}set) orchestrate the whole add/remove of TCP-MD5
-         passwords: applying checks, stopping peers, and trying to return
-         errors to UI, etc.
-         (bgp_config_write_peer) save password.
-         Fix missing newline in writeout of neighbor ... port.
-
-2008-07-02 MIYAJIMA Mitsuharu <miyajima.mitsuharu@anchor.jp>
-
-       * *.c: CMD_AS_RANGE was being used inside command strings, and thus
-         not being expanded, fix by dequoting.
-
-2008-07-02 Stephen Hemminger <stephen.hemminger@vyatta.com>
-
-       * bgp_table.{c,h}: (bgp_table_finish) Take a double pointer and 
-         scrub pointer in caller, so fixing double-free crashes seen
-         with route-server-client configuration.
-       * *.c: Adjust all callers of bgp_table_finish
-
-2008-07-02 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_table.{c,h}: (bgp_node_delete, bgp_table_free) shouldn't be
-         exported.
-       
-2008-06-07 Paul Jakma <paul@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..
-
-2008-06-01 jfletche@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.
-
-2008-04-10 Denis Ovsienko
-
-       * bgp_aspath.[ch]: (aspath_filter_exclude) New function allows
-         filtering out arbitrary ASns from AS_PATH attribute.
-       * bgp_aspath.[ch]: (aspath_print_vty) Accept suffix to let calling
-         functions signal, if they want the separator or not.
-       * bgp_route.c: (route_vty_out, route_vty_out_tmp, damp_route_vty_out,
-         flap_route_vty_out, route_vty_out_detail) Fix aspath_print_vty()
-         calls to have AS_PATH output nicely.
-       * bgp_routemap.c: Introduce "set as-path exclude" route-map command
-         to employ new filtering functionality.
-
-2008-03-13 Paul Jakma <paul.jakma@sun.com>
-
-       * (various) Remove 0 entries from struct message's, unneeded due to
-         recent improvements in mes_lookup/LOOKUP.
-
-2008-01-29 Jorge Boncompte <jorge@dti2.net>
-
-       * bgp_network.c: (bgp_socket) IPv4-only version crashes if -l is not
-         used as address will be null.
-
-2007-12-22 Paul Jakma <paul.jakma@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.
-2007-12-18 Denis Ovsienko
-
-       * bgp_routemap.c: (no_set_aspath_prepend) This command cancelled
-         existing "set" command regardless if "no set" matched it or not.
-         Fixed.
-
-2007-11-13 Paul Jakma <paul.jakma@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.
-
-2007-10-30 Nick Hilliard <nick@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-09-27 Paul Jakma <paul.jakma@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.
-
-2007-09-25 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_open.c: (peek_for_as4_capability) Fix to work.
-       * bgp_packet.c: (bgp_open_receive) Fix sanity check of as4.
-       
-2007-09-18 Paul Jakma <paul.jakma@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.
-         
-         
-2007-07-25 Paul Jakma <paul.jakma@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.
-         
-       
-2007-07-25 Juergen Kammer <j.kammer@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
-
-2007-09-17 Paul Jakma <paul.jakma@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.
-
-2007-09-07 Paul Jakma <paul.jakma@sun.com>
-
-       * (general) bgpd can be made crash by remote peers if debug
-         bgp updates is set, due to NULL pointer dereference.
-         Reported by "Mu Security Research Team",
-         <security@musecurity.com>.
-       * bgp_attr.c: (bgp_attr_community) If community length is 0,
-         don't set the community-present attribute bit, just return
-         early.
-       * bgp_debug.c: (community_str,community_com2str) Check com
-         pointer before dereferencing.
-
-2007-08-31 Paul Jakma <paul.jakma@sun.com>
-
-       * (general) Add 'bgp open-accept' option, to allow bgpd to send OPEN
-         on accepted connections, i.e. to not wait till after
-         collision-detect to send OPEN, which appears to be allowed in
-         RFC4271. This may help speed up establishing sessions, or help
-         avoid FSM problems with sessions to certain peers. Not enabled by
-         default though.
-
-2007-08-27 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_route.c: (bgp_announce_check) Fix bug #398, slight
-         modification of Vladimir Ivanov's suggested fix - to keep
-         memory alloc conditional.
-         (bgp_process_announce_selected) Don't take struct attr as
-         argument, none of the callers need it and it needlessly
-         distances allocation from use.
-         Free the extended attr, the attr itself is on the stack. 
-         Fix bad indentation.
-       * bgp_attr.c: (bgp_packet_attribute) Remove incorrect assert,
-         and adjust conditional to test attr->extra, diagnosis by
-         Vladimir Ivanov in bug #398.
-
-2007-08-27 Vladimir Ivanov <wawa@yandex-team.ru>
-
-       * bgp_route.c: (bgp_announce_check_rsclient) copy of
-         ri->attr is no longer deep enough, due to addition of
-         attr->extra. It should use bgp_attr_dup, as
-         bgp_announce_check() does.
-
-2007-08-23 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_regex.c: (bgp_regcomp) Pass NOSUB flag to regcomp to
-         prevent parsing of substitutions, which can have profound
-         performance effects on bgpd and are of no use to the CLI
-         anyway. How much it helps depends on the regex
-         implementation.
-
-2007-07-31 Paul Jakma <paul.jakma@sun.com>
-
-       * (general) Support for draft-ietf-idr-as-pathlimit-03.
-       * bgp_attr.h: (struct attr) Add pathlimit struct
-          bgp_attr.c: (attr_str) Add BGP_ATTR_AS_PATHLIMIT string.
-          (attrhash_key_make) tally pathlimit too
-          (attrhash_cmp) cmp pathlimit attr
-          (bgp_attr_aspathlimit) New, parse AS_PATHLIMIT attr.
-          (bgp_attr_parse) ditto
-          (bgp_packet_attribute) Write out AS_PATHLIMIT when set
-          (bgp_dump_routes_attr) ditto
-         * bgp_route.h: (struct bgp_static) Add TTL field
-         * bgp_route.c: (bgp_announce_check) Drop paths that are over
-           their hop-count TTL before sending via EBGP.
-           Mangle ASN in pathlimit for confeds/private as best we can.
-           (bgp_static_update_{rsclient,main}) Add any configure pathlimit
-           information.
-           (bgp_pathlimit_update_parents) New, update atomic-aggr setting for
-           parents of an aspathlimit'ed static.
-           (bgp_static_set) Add TTL argument, for all the 'bgp network'
-           commands.
-           Call previous for TTL changed statics.
-           (bgp_static_unset) Call pathlimit_update_parents.
-           (various bgp network commands) Add 'pathlimit <0-255>' qualifier
-           to all the various forms, bar route-map - which can set ttl
-           itself.
-         * bgp_routemap.c: (general) Add support for 'set pathlimit ttl' and
-           'match pathlimit as'.
-           
-2007-07-26 Paul Jakma <paul.jakma@sun.com>
-
-       * (general) Clean up and compact capability parsing slightly.
-         Consolidate validation of length and logging of generic TLV, and
-         memcpy of capability data, thus removing such from cap specifc
-         code (not always present or correct).
-       * bgp_open.h: Add structures for the generic capability TLV header
-         and for the data formats of the various specific capabilities we
-         support.  Hence remove the badly named, or else misdefined, struct
-         capability.
-       * bgp_open.c: (bgp_capability_vty_out) Use struct capability_mp_data.
-         Do the length checks *before* memcpy()'ing based on that length
-         (stored capability - should have been validated anyway on input,
-         but..).
-         (bgp_afi_safi_valid_indices) new function to validate (afi,safi)
-         which is about to be used as index into arrays, consolidates
-         several instances of same, at least one of which appeared to be
-         incomplete..
-         (bgp_capability_mp) Much condensed.
-         (bgp_capability_orf_entry) New, process one ORF entry
-         (bgp_capability_orf) Condensed. Fixed to process all ORF entries.
-         (bgp_capability_restart) Condensed, and fixed to use a
-         cap-specific type, rather than abusing capability_mp.
-         (struct message capcode_str) added to aid generic logging.
-         (size_t cap_minsizes[]) added to aid generic validation of
-         capability length field.
-         (bgp_capability_parse) Generic logging and validation of TLV
-         consolidated here. Code compacted as much as possible.
-       * bgp_packet.c: (bgp_open_receive) Capability parsers now use
-         streams, so no more need here to manually fudge the input stream
-         getp.
-         (bgp_capability_msg_parse) use struct capability_mp_data. Validate
-         lengths /before/ memcpy. Use bgp_afi_safi_valid_indices.
-         (bgp_capability_receive) Exported for use by test harness.      
-       * bgp_vty.c: (bgp_show_summary) fix conversion warning
-         (bgp_show_peer) ditto
-       * bgp_debug.h: Fix storage 'extern' after type 'const'.
-
-2007-07-31 Lorenzo Colitti <lorenzo@colitti.com>
-
-       * bgp_dump.c: (general) Add comments to code.
-         (bgp_dump_interval_add) remove some redundant lines.
-         (bgp_dump_set) Use enum for type argument.
-         Avoid scheduling dump twice if exact same command
-         is given twice..
-
-2007-06-22 Paul Jakma <paul.jakma@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.
-
-2007-05-25 Paul Jakma <paul.jakma@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.
-
-2007-05-03 Paul Jakma <paul.jakma@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
-
-2007-04-22 Sebastien Tandel <sebastien@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.
-       * 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.
-
-2007-04-15 Sebastien Tandel <sebastien@tandel.be>
-
-       * bgp_aspath.c: (aspath_as_add, aspath_segment_add) Minor performance
-         optimization: while loop should test one pointer instead of two.
-
-2007-04-08 Paul Jakma <paul.jakma@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.
-       * 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.
-
-2007-04-07 Paul Jakma <paul.jakma@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.
-
-2007-02-22 Paul Jakma <paul.jakma@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.
-
-2006-12-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-       
-       * bgp_nexthop.c: (bgp_connected_add, bgp_connected_delete)
-         Simplify logic by using new CONNECTED_PREFIX macro.
-
-2006-12-07 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_fsm.c: Bug #302 fix, diagnosis, suggestions and testing
-         by Juergen Kammer <j.kammer@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.
-2006-11-30 Andrew J. Schorr <ajschorr@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.
-
-2006-11-28 Andrew J. Schorr <ajschorr@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.
-
-2006-10-27 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_route.c: (bgp_table_stats) oops, u_intXX_t should be
-         uintXX_t
-
-2006-10-19 Paul Jakma <paul.jakma@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.
-
-2006-10-15 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_route.c: (bgp_table_stats_walker) NULL deref if table is
-         empty, bgp_table_top may return NULL, Coverity CID#73.
-       * 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().
-
-2006-10-14 Paul Jakma <paul.jakma@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.
-
-2006-09-19 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * bgpd.c: (peer_uptime) Fix printf format/arg mismatch in
-         zlog_warn message (%ld/size_t -> %lu/u_long).
-
-2006-09-14 Paul Jakma <paul.jakma@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.. ;)
-         (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.
-
-2006-09-14 Paul Jakma <paul.jakma@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.
-
-2006-09-14 Paul Jakma <paul.jakma@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.
-
-2006-09-13 Paul Jakma <paul.jakma@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.
-       
-2006-09-06 Paul Jakma <paul.jakma@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
-
-2006-09-03 Paul Jakma <paul.jakma@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.
-
-2006-08-27 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_advertise.c: (bgp_sync_delete) fix mtype in XFREE.
-         NULL out peer->hash after free, to be sure.
-
-2006-08-06 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_aspath.c: (aspath_loop_check) Fix the typo-bug which
-         essentially had disabled this check. Problem reported by
-         Bartek Kania <mrbk@gnarf.org> in [quagga-users 7388].
-
-2006-07-27 Paul Jakma <paul.jakma@sun.com>
-
-       * bgpd.c: (peer_delete) Ensure freed buffers can not be
-         accidently reused. A potential fix for bug #287.
-
-2006-07-02 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_fsm.c: (bgp_{stop,start}) Move clear/free of certain
-         bits of state from stop to start, as they may be used via
-         peer references on clearing queues..
-
-2006-05-23 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_vty.c: (neighbor_update_source_cmd) Expand tab completion
-         to make it clear it takes both address and ifname.
-
-2006-05-12 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_attr.c: (bgp_packet_attribute) Remove dead code, Coverity
-         CID #1
-       * bgp_aspath.{c,h}: (aspath_print_vty) take a format string,
-         so as to reduce burden on callers, all in bgp_route.c
-       * bgp_route.c: (bgp_static_update_main) Remove useless NULL
-         check, code already assumes bgp_static can not be NULL, 
-         fixes CID #7.
-         (bgp_static_update_rsclient) ditto, CID #6
-         (route_vty_out{,tmp}) Update to match aspath_print_vty,
-         simplifying checks needed to get spacing right. CID #4,#5.
-         ({damp,flap}_route_vty_out) Ditto, CID #9, #10
-
-2006-05-08 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_community.c: (community_str2com) Coverity CID#62, fix
-         double-free, use-after-free.
-       * bgp_route.c: (bgp_afi_node_get) given table should never be
-         NULL, check/assert this.
-         (bgp_static_update) Bug #240. Rsclients should only be passed
-         the static update if they are configured for the afi,safi.
-
-2006-05-04 Paul Jakma <paul.jakma@sun.com>
-
-       * (general) VPNv4 fixes. Certain VPNv4 code was not enabled.
-         See bug #210.
-       * bgp_attr.{c,h}: (bgp_packet_{withdraw,attribute}) Tag should be
-         u_char really.
-       * bgp_packet.c: (bgp_{update,withdraw}_packet) Enable some
-         VPNv4 code which inexplicably was ifdef'd out. comments from
-         a tester on IRC suggest this fixes bug #210.
-       * bgp_route.c: (general) Fix logical bug in clearing, noted
-         by Chris Caputo in [quagga-users 6728] - clearing depended on
-         at least one route being added to workqueue, in order for
-         workqueue completion function to restart FSM. However, if no
-         routes are cleared, then the completion function never is
-         called, it needs to be called manually if the workqueue
-         didn't get scheduled. 
-         Finally, clearing is per-peer-session, not per AFI/SAFI, so
-         the FSM synchronisation should be in bgp_clear_route_table.
-         (bgp_clear_route_table) Wrong place for FSM/clearing
-         synchronisation, move to..
-         (bgp_clear_route) FSM/clearing synchronisation should be
-         here.
-         If no routes were cleared, no workqueue scheduled, call
-         the completion func to ensure FSM kicks off again.
-
-2006-03-30 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_community.c: (community_gettoken) Unknown token should
-         return NULL, to give a strong indication to callers that
-         the token no longer can be parsed, otherwise callers looping
-         on this function may have a hard time ending their loop.
-         (community_str2com) While loop around community_gettoken appears
-         to have been coded thinking that break statement would break
-         from the while{}, hence it could never exit for unknown token
-         case. Fix it to do..while, so it can use the NULL result from
-         community_gettoken easily.
-
-2006-03-22 Paul Jakma <paul.jakma@sun.com>
-
-       * bgpd.c: (peer_free) release the per-peer workqueue when
-         freeing the peer.
-
-2006-03-19 Paul Jakma <paul.jakma@sun.com>
-
-       * bgpd/bgp_vty.c: Add includes to get several structs we want
-         to provide usage statistics on.
-         (show_bgp_memory_cmd) Show memory usage stats for various
-         notable fixed size objects. Using mtype_stats_alloc and
-         mtype_memstr recently added to memory.c.
-         (bgp_show_summary) Report some additional stats specific to
-         the given BGP instance and/or AFI/SAFI such as table counts,
-         peers, rsclients and peer-groups.
-         (bgp_vty_init) Install show_bgp_memory_cmd.
-       * bgp_nexthop.h: Include if.h as a dependent header, for struct
-         connected.
-       * bgp_advertise.c: Use a distinct memory type for struct
-         bgp_synchronize.
-
-2006-03-12 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_attr.h: (struct attr) rearrange fields to avoid
-         wasted padding between them as much as possible.
-         (attr_count,attr_unknown_count) export new functions to
-         return number of counts of cached attributes.
-       * bgp_attr.c: (attr_count,attr_unknown_count) new functions to
-         return number of counts of cached attributes.
-       * bgp_route.h: (struct bgp_info) rearrange fields to avoid
-         wasted padding.
-       * bgp_table.h: (struct bgp_table) Add a count field, of number
-         of nodes in the table.
-         (struct bgp_node)  rearrange fields to avoid
-         wasted padding between them, though I don't think there
-         was any in this case. 
-       * bgp_table.c: (bgp_node_{delete,get}) Maintain the table node count.
-         (bgp_table_count) new function to access the table count.
-
-2006-03-03 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_route.c: (bgp_clear_node_complete) Doh. When clearing
-         is complete we need to kick off FSM again.
-
-2006-02-21 Paul Jakma <paul.jakma@sun.com>
-
-       * bgpd.h: move the clear_node_queue to be peer specific.
-         Add a new peer status flag, PEER_STATUS_CLEARING.
-       * bgp_table.h: (struct bgp_table) Add fields to record afi,
-          safi of the table.
-          (bgp_table_init) Take afi and safi to create table for.
-        * bgp_table.c: (bgp_table_init) record the afi and safi.
-        * bgp_nexthop.c: Update all calls to bgp_table_init.
-        * bgp_vty.c: ditto.
-        * bgpd.c: ditto.
-        * bgp_fsm.c: (bgp_timer_set) dont bring up a session which is
-         clearing.
-        * bgp_route.c: (general) Update all bgp_table_init calls.
-          (bgp_process_{rsclient,main}) clear_node is serialised
-          via PEER_STATUS_CLEARING and fsm now.
-          (struct bgp_clear_node_queue) can be removed. struct bgp_node
-          can be the queue item data directly, as struct peer can be
-          kept in the new wq global user data and afi/safi can be
-          retrieved via bgp_node -> bgp_table.
-          (bgp_clear_route_node) fix to get peer via wq->spec.data,
-          afi/safi via bgp_node->bgp_table.
-          (bgp_clear_node_queue_del) no more item data to delete, only
-          unlock the bgp_node.
-          (bgp_clear_node_complete) only need to unset CLEARING flag
-          and unlock struct peer.
-          (bgp_clear_node_queue_init) queue attaches to struct peer
-          now. record peer name as queue name.
-          (bgp_clear_route_table) If queue transitions to active,
-          serialise clearing by setting PEER_STATUS_CLEARING rather
-          than plugging process queue, and lock peer while queue
-          active.
-          Update to pass only bgp_node as per-queue-item specific data.
-       * bgp_vty.c: (bgp_show_summary) Add a 'Clrng' sub-description
-         to state of peer while it's suppressed due to clearing.
-
-2006-02-18 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_routemap.c: (route_set_community) Quick, very hacky, fix
-         for the set-community leak, bug #89. True fix will be to
-         detangle the web of *_intern caching and provide saner object
-         caching for Quagga, future work.
-       * bgp_route.c: (bgp_announce_check) trivial, move declaration
-         of two local variables into the only block where they are
-         used, to aid the reader.
-
-2006-02-05 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_route.h: Add BGP_INFO_COUNTED to track whether
-         prefix has been counted or not.
-       * bgp_route.c: (bgp_pcount_{inc,dec}rement) new helpers, to
-         centralise inc/dec of prefix-count, 
-         (bgp_rib_remove) Remove pcount decrement, use helper.
-         (bgp_rib_withdraw) ditto, additionally use previous function
-         too.
-         (bgp_update_main) Use pcount helpers.
-         (bgp_clear_route_node) ditto, aslo REMOVED routes don't need
-         clearing.
-       * bgp_aspath.c: (aspath_gettoken) fix gcc warning about
-         possible uninitialised usage.
-2006-02-02 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_route.c: (bgp_{clear_node,process}_queue_init) delay
-         field is removed from workqueue spec.
-
-2006-01-19 Paul Jakma <paul.jakma@sun.com>
-
-       * (general) various miscellaneous compiler warning fixes.
-          Remove redundant break statements from switch clauses
-          which return.
-          return from main, not exit, cause it annoys SOS.
-          Remove stray semi-colons which cause empty-statement
-          warnings.
-
-2006-01-17 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_nexthop.c: (zlookup_read*) convert to new Zserv format.
-         (zlookup_query_ipv6) ditto.
-         (bgp_import_check) ditto.
-         
-2006-01-16 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_aspath.c: (assegment_append_asns) XREALLOC can return
-         NULL theoretically, take care not to lose the allocated data.
-         (aspath_hash_alloc) aspath_dup already set the aspath
-         string - fix leak.
-         (aspath_parse) aspath_hash_alloc dupes the entire aspath,
-         including segments, but we forgot to free the temporary
-         assegment.
-         (aspath_snmp_pathseg) move the static stream pointer out to
-         file scope, so it can be freed.
-         (aspath_finish) new function, free aspath resources.
-       * bgp_aspath.h: (aspath_finish) export.
-
-2006-01-10 Juris Kalnins <juris@mt.lv>
-
-       * bgpd.h: (bgp_router_id_unset) ex-function, remove.
-       
-2005-11-23 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_aspath.c: (assegments_parse) should be static
-
-2005-11-23 Juergen Kammer <j.kammer@eurodata.de>
-
-       * bgp_aspath.c: (aspath_cmp_left_confed) fix SEGV for case
-         where one or both paths are empty.
-
-2005-11-14 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_route.c: (bgp_process_rsclient) convert to new workqueue
-          specs and shut up gcc, which complains about cast from void
-          via function parameters, for some dumb reason. Do the cast
-          inside the function instead.
-          (bgp_process_main,bgp_processq_del) ditto.
-          (bgp_clear_route_node) ditto.
-          (bgp_clear_node_queue_del) ditto.
-
-2005-11-03 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_damp.c: (bgp_reuse_timer) struct bgp can be retrieved via
-         the struct bgp_damp_info, no need to guess by using
-         bgp_get_default().
-
-2005-10-01 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * bgp_vty.c: (bgp_config_write_redistribute) Use new library function
-         zebra_route_string instead of a local hard-coded table.
-
-2005-09-30 Vincent Jardin <vincent.jardin@6wind.com>
-
-       * bgp_packet.c: fix compilation when DEBUG is used.
-
-2005-09-10 Paul Jakma <paul.jakma@sun.com>
-
-       * Makefile.am: bgpd shouldn't list libgp's sources as its own.
-         Use LDADD.
-       * bgp_aspath.h: 
-         (struct assegment) New struct, abstract representation of a
-         list of AS_PATH segments and the contained ASNs.        
-         (struct aspath) Remove the raw-data related
-         fields, reference the abstract struct assegment instead. 
-         Remove several other computed fields, it's just a
-         headache to maintain them and they're cheap to compute from
-         struct assegment.
-         (aspath_parse) parse a stream, not a pointer to raw data.
-         (aspath_count_{hops,confeds,size}) helpers to access
-         information formerly directly contained in struct aspath.
-         (aspath_snmp_pathseg) Helper for SNMP, BGP MIB wants
-         to be able to output hex representation of raw data.
-       * bgp_aspath.c: (general) partial-rewrite. Store aspath data
-         as an abstract singly-linked list of abstract segments,
-          rather than storing the raw data, and parsing it each and
-         every time. Remove several count/size fields which are cheap
-         to compute from the abstract segment structure.
-         (global) Include stream.h, needed for aspath_parse, and
-         others. Couple of helper macros added.
-         (struct assegment_header) Just the header, and only the
-         header.
-         (assegment_data_{new,free}) convenience functions for
-         AS_SEG_DATA allocation, the dynamic, per-segment array of
-         ASNs.
-         (assegment_{new,free,free_all,dup,dup_all}) convenience
-         functions for creating struct assegments. The _all forms will
-         follow the entire chain of segments from the given segment.
-         (assegment_prepend_asns) new function, prepend an ASN N times
-         to segment.
-         (assegment_append_asns) Append a list (array) of ASNs to
-         segment.
-         (int_cmp) convenience function for the aspath hash.
-         (assegment_normalise) new function. Normalise the given
-         segment chain to meet expectations of Quagga, and to
-         eliminate differing raw representations of the same paths.
-         Merge 'runs' of SEQUENCEs into one segment as our internal
-         segment is not limited by the protocol AS_PATH segment
-         length. Sort ASNs in SETs. 
-         (aspath_new) Take void argument to quell warnings. Use the
-         assegment convenience functions.
-         (assegment_count_{asns,confeds,hops}) new functions to
-         compute at runtime values previously held in struct aspath.
-         (aspath_size) ditto.
-         (aspath_make_str_count) rewritten to stringify new
-         representation, and to be slightly easier to understand
-         hopefully.
-         (aspath_str_update) convenience function, update the aspath
-         str. Should investigate removing maintained string from
-         struct aspath, just run-time compute it, as per other fields.
-         It's just a maintenance headache, would save noticeable
-         amount of RAM with possibly not much extra run-time cost.
-         (aspath_dup) use the assegment dup functions.
-         (aspath_hash_alloc) Take void * argument to satisfy gcc. Use
-         the proper helper functions to dup data.
-         (assegments_parse) new function. parse raw AS_PATH data into
-         struct assegments. Normalise and return the head of the list.
-         (aspath_parse) Parse a stream, not pointer to raw data and
-         use assegments_parse to do it.
-         (assegment_data_put) Write out a single segment data in protocol
-         form to stream.
-         (assegment_header_put) ditto but for segment header.
-         (aspath_put) new function. As per previous but for an entire
-         struct aspath.
-         (aspath_snmp_pathseg) wrapper around aspath_put for
-         bgp_snmp.c. Uses a static buffer sadly.
-         (aspath_aggregate_as_set_add) rewritten to use assegments.
-         (aspath_aggregate) ditto
-         (aspath_{firstas,loop,private_as}_check) ditto
-         (aspath_{merge,prepend,add_one_as}) ditto
-         (aspath_cmp_left{_confed}) ditto
-         (aspath_delete_confed_seq) ditto, plus fixed to properly
-         delete all leading confed segments.
-         (aspath_as_add) Just use assegment_append_asns.
-         (aspath_segment_add) updated to use assegments.
-         (enum as_token) Add values for confeds
-         (aspath_gettoken) Add support for confeds
-         (aspath_str2aspath) ditto
-         (aspath_key_make) updated to use as_segments. Also, add
-         segment type into the hash value as appropriate.
-         (aspath_cmp) updated to use as_segments.
-         (aspath_print) don't segfault on NULL argument.
-       * bgp_attr.c: (bgp_attr_aspath) aspath_parse wants the stream
-         now. No need for manual forwarding of stream.
-         (bgp_packet_attribute) empty aspath is now denoted by NULL
-         segment field, length is gone.
-         Use aspath_size() to determine size.
-         (bgp_attr_init) Fix declaration, explicitely specify void
-         arg.
-         (bgp_dump_routes_attr) Use aspath_size() to determine size.
-       * bgp_route.c: (bgp_info_cmp) use the aspath_count_* functions.
-         (bgp_rib_withdraw) remove unused variable. Use
-         aspath_count_hops.
-       * bgp_snmp.c: (bgp4PathAttrTable) raw data is gone, use 
-         aspath_snmp_pathseg to get the representation.
-
-2005-09-10 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_vty.c: (bgp_vty_init) gcc 4 compile fix. static
-         function declarations shouldn't be inside functions.
-       * bgp_dump.c: (bgp_dump_interval_add) ditto.
-       
-2005-08-26 Hasso Tepper <hasso at quagga.net>
-
-       * bgp_route.c: Third (?) attempt to fix best selection breakage
-         introduced long time ago with route server patch. Hopefully
-         it's last case to fix - route-server client not in peer group.
-
-2005-08-22 Hugo Santos <hsantos@av.it.pt>
-
-       * bgp_vty.c: (general) Add support for BGP IPv6 Multicast SAFI
-         commands and BGP_IPV6M_NODE.
-         
-2005-08-22 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_route.h: (struct bgp_info) add a new flag, BGP_INFO_REMOVED.
-         BGP_INFO_VALID is already overloaded, don't care to do same thing
-         to STALE or HISTORY.
-       * bgpd.h: (BGP_INFO_HOLDDOWN) Add INFO_REMOVED to the macro, as a
-         route which should generally be ignored.
-       * bgp_route.c: (bgp_info_delete) Just set the REMOVE flag, rather 
-         than doing actual work, so that bgp_process (called directly,
-         or indirectly via the scanner) can catch withdrawn routes.
-         (bgp_info_reap) Actually remove the route, what bgp_info_delete
-         used to do, only for use by bgp_process.
-         (bgp_best_selection) reap any REMOVED routes, other than the old
-         selected route.
-         (bgp_process_rsclient) reap the old-selected route, if appropriate
-         (bgp_process_main) ditto
-         (bgp_rib_withdraw, bgp_rib_remove) make them more consistent with
-         each other. Don't play games with the VALID flag, bgp_process
-         is async now, so it didn't make a difference anyway.
-         Remove the 'force' argument from bgp_rib_withdraw, withdraw+force
-         is equivalent to bgp_rib_remove. Update all its callers.
-         (bgp_update_rsclient) bgp_rib_withdraw and force set is same as
-         bgp_rib_remove.
-         (route_vty_short_status_out) new helper to print the leading
-         route-status string used in many command outputs. Consolidate.
-         (route_vty_out, route_vty_out_tag, damp_route_vty_out, 
-          flap_route_vty_out) use route_vty_short_status_out rather than
-         duplicate.
-         (route_vty_out_detail) print state of REMOVED flag.
-         (BGP_SHOW_SCODE_HEADER) update for Removed flag. 
-         
-2005-08-03 Hasso Tepper <hasso at quagga.net>
-
-       * bgp_routemap.c: Revert part of leaking communities fix commited in
-         2005-05-27. While ecommunity fix seems to be correct, community case
-         isn't.
-
-2005-06-28 Paul Jakma <paul.jakma@sun.com>
-
-       * (global) The great bgpd extern and static'ification.
-       * bgp_routemap.c: remove unused ROUTE_MATCH_ASPATH_OLD code
-         (route_set_metric_compile) fix u_int32_t to ULONG_MAX comparison
-         warnings.
-       * bgp_route.h: (bgp_process, bgp_withdraw, bgp_update) export these
-         used by various files which had their own private declarations,
-         in the case of mplsvpn - incorrect.
-
-2005-06-15 Paul Jakma <paul.jakma@sun.com>
-
-       * bgpd.c: (bgp_terminate) workqueue's are lazy allocated and its
-         possible to terminate bgpd before workqueues were setup, causing
-         an abort/crash. Reported by Ashish Mehta of Sun.
-
-2005-06-01 Paul Jakma <paul.jakma@sun.com>
-
-       * (general) refcount struct peer and bgp_info, hence allowing us
-         add work_queues for bgp_process.
-       * bgp_route.h: (struct bgp_info) Add 'lock' field for refcount.
-         Add bgp_info_{lock,unlock} helper functions.
-         Add bgp_info_{add,delete} helpers, to remove need for
-         users managing locking/freeing of bgp_info and bgp_node's.
-       * bgp_table.h: (struct bgp_node) Add a flags field, and
-         BGP_NODE_PROCESS_SCHEDULED to merge redundant processing of
-         nodes.
-       * bgp_fsm.h: Make the ON/OFF/ADD/REMOVE macros lock and unlock
-         peer reference as appropriate.
-       * bgp_damp.c: Remove its internal prototypes for
-         bgp_info_delete/free. Just use bgp_info_delete.
-       * bgpd.h: (struct bgp_master) Add work_queue pointers.
-         (struct peer) Add reference count 'lock'
-         (peer_lock,peer_unlock) New helpers to take/release reference
-         on struct peer.
-       * bgp_advertise.c: (general) Add peer and bgp_info refcounting 
-         and balance how references are taken and released.
-         (bgp_advertise_free) release bgp_info reference, if appropriate
-         (bgp_adj_out_free) unlock peer
-         (bgp_advertise_clean) leave the adv references alone, or else
-         call bgp_advertise_free cant unlock them.
-         (bgp_adj_out_set) lock the peer on new adj's, leave the reference
-         alone otherwise. lock the new bgp_info reference.
-         (bgp_adj_in_set) lock the peer reference
-         (bgp_adj_in_remove) and unlock it here
-         (bgp_sync_delete) make hash_free on peer conditional, just in
-         case.
-       * bgp_fsm.c: (general) document that the timers depend on
-         bgp_event to release a peer reference.
-         (bgp_fsm_change_status) moved up the file, unchanged.
-         (bgp_stop) Decrement peer lock as many times as cancel_event
-         canceled - shouldnt be needed but just in case.
-         stream_fifo_clean of obuf made conditional, just in case.
-         (bgp_event) always unlock the peer, regardless of return value
-         of bgp_fsm_change_status.
-       * bgp_packet.c: (general) change several bgp_stop's to BGP_EVENT's.
-         (bgp_read) Add a mysterious extra peer_unlock for ACCEPT_PEERs
-         along with a comment on it.
-       * bgp_route.c: (general) Add refcounting of bgp_info, cleanup
-         some of the resource management around bgp_info. Refcount peer.
-         Add workqueues for bgp_process and clear_table.
-         (bgp_info_new) make static
-         (bgp_info_free) Ditto, and unlock the peer reference.
-         (bgp_info_lock,bgp_info_unlock) new exported functions
-         (bgp_info_add) Add a bgp_info to a bgp_node in correct fashion,
-         taking care of reference counts.
-         (bgp_info_delete) do the opposite of bgp_info_add.
-         (bgp_process_rsclient) Converted into a work_queue work function.
-         (bgp_process_main) ditto.
-         (bgp_processq_del) process work queue item deconstructor
-         (bgp_process_queue_init) process work queue init
-         (bgp_process) call init function if required, set up queue item
-         and add to queue, rather than calling process functions directly.
-         (bgp_rib_remove) let bgp_info_delete manage bgp_info refcounts
-         (bgp_rib_withdraw) ditto
-         (bgp_update_rsclient) let bgp_info_add manage refcounts
-         (bgp_update_main) ditto
-         (bgp_clear_route_node) clear_node_queue work function, does
-         per-node aspects of what bgp_clear_route_table did previously
-         (bgp_clear_node_queue_del) clear_node_queue item delete function
-         (bgp_clear_node_complete) clear_node_queue completion function,
-         it unplugs the process queues, which have to be blocked while
-         clear_node_queue is being processed to prevent a race.
-         (bgp_clear_node_queue_init) init function for clear_node_queue
-         work queues
-         (bgp_clear_route_table) Sets up items onto a workqueue now, rather
-         than clearing each node directly. Plugs both process queues to
-         avoid potential race.
-         (bgp_static_withdraw_rsclient) let bgp_info_{add,delete} manage
-         bgp_info refcounts.
-         (bgp_static_update_rsclient) ditto
-         (bgp_static_update_main) ditto
-         (bgp_static_update_vpnv4) ditto, remove unneeded cast.
-         (bgp_static_withdraw) see bgp_static_withdraw_rsclient
-         (bgp_static_withdraw_vpnv4) ditto
-         (bgp_aggregate_{route,add,delete}) ditto
-         (bgp_redistribute_{add,delete,withdraw}) ditto
-       * bgp_vty.c: (peer_rsclient_set_vty) lock rsclient list peer
-         reference
-         (peer_rsclient_unset_vty) ditto, but unlock same reference
-       * bgpd.c: (peer_free) handle frees of info to be kept for lifetime
-         of struct peer.
-         (peer_lock,peer_unlock) peer refcount helpers
-         (peer_new) add initial refcounts
-         (peer_create,peer_create_accept) lock peer as appropriate
-         (peer_delete) unlock as appropriate, move out some free's to
-         peer_free.
-         (peer_group_bind,peer_group_unbind) peer refcounting as
-         appropriate.
-         (bgp_create) check CALLOC return value.
-         (bgp_terminate) free workqueues too.
-        
-2005-05-28 Hasso Tepper <hasso at quagga.net>
-
-       * bgp_routemap.c: Sync set_metric_addsub_cmd with ripd.
-
-2005-05-27 Hasso Tepper <hasso at quagga.net>
-
-       * bgp_routemap.c: Stop leaking communities.
-
-2005-05-27 Hasso Tepper <hasso at quagga.net>
-
-       * bgpd.c: Deleting bgp->rsclient list needs fix similar to pree-groups
-         deleting fix. Avoid leaking bgp->group, bgp->peer and bgp->rsclient
-         lists.
-
-2005-05-26 Hasso Tepper <hasso at quagga.net>
-
-        * bgpd.c: Don't crash while deleting list of peer-groups.
-
-2005-05-25 Hasso Tepper <hasso at quagga.net>
-
-       * bgpd.c: Fix obvious (routeserver patch) merge error. This makes "no
-         neighbor x.x.x.x routemap [export|import] commands work again.
-
-2005-05-23 Paul Jakma <paul@dishone.st>
-
-       * bgp_routemap.c: add semi-colons to VTY_GET_* to match vty.h change
-       * bgp_fsm.h: Add extern qualifier to exported functions
-       * bgp_nexthop.c: add static to nexthop specific globals
-       * *.h: Add guard defines
-
-2005-05-19 Paul Jakma <paul@dishone.st>
-
-       * bgp_fsm.c: (bgp_stop) use sockunion_free, not XFREE..
-       * bgp_network.c: (bgp_getsockname) ditto
-         (bgp_accept) use XSTRDUP
-       * bgp_routemap.c: (route_match_peer) ditto, als use a ret value and
-         remove one sockunion_free.
-       * bgpd.c: (peer_delete) ditto.
-         XFREE the correct memtype, not free.
-         (peer_create) use XSTRDUP
-       * bgp_packet.c: (bgp_stream_dup) deleted, stream_dup should be used
-         (various) update -> s/bgp_stream_dup/stream_dup
-         
-
-2005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * bgp_zebra.c (bgp_redistribute_set, bgp_redistribute_unset):
-         The 2nd arg to zebra_redistribute_send is now zclient instead of
-         zclient->sock.
-
-2005-04-09 Akihiro Mizutani <mizutani@net-chef.net>
-
-       * bgp_vty.c: Make "exit-address-family" work in IPv4 unicast address
-         family node.
-
-2005-04-08 Martin Ling <martin-quagga@earth.li>
-
-       * bgp_aspath.[ch], bgp_route.c, bgp_vty.c, bgpd.[ch]: Allow to enable
-         the length of confederation path segments to be included during the
-         as-path length check in the best path decision.
-
-2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * bgp_zebra.c: (bgp_interface_delete) After deleting, set ifp->ifindex
-         to IFINDEX_INTERNAL.
-
-2005-03-21 Hasso Tepper <hasso at quagga.net>
-
-       * bgp_route.c: Don't crash while clearing route tables if there is
-         no particular afi/safi configured.
-
-2005-02-23 Hasso Tepper <hasso at quagga.net>
-
-       * bgp_route.c: Make reannouncing prefixes with changed attributes
-         work again.
-
-2005-02-02 Akihiro Mizutani <mizutani@net-chef.net>
-
-       * bgp_vty.c: Deprecate "neighbor transparent-as" and "neighbor
-         transparent-nexthop" commands.
-
-2005-02-02 Akihiro Mizutani <mizutani@net-chef.net>
-
-       * bgp_routemap.c: New route-map command - "match ip route-source".
-
-2005-02-02 Akihiro Mizutani <mizutani@net-chef.net>
-
-       * bgp_clist.[ch], bgp_route.c, bgp_routemap.c, bgp_vty.c:
-         community-list cleanup.
-
-2005-02-02 Akihiro Mizutani <mizutani@net-chef.net>
-
-       * bgp_route.c, bgp_vty.c, bgp_zebra.c, bgpd.[ch]: "enforce-multihop"
-         -> "disable-connected-check".
-
-2005-02-02 Akihiro Mizutani <mizutani@net-chef.net>
-
-       * bgp_fsm.c, bgp_open.c, bgp_packet.c, bgp_route.[ch], bgp_vty.c,
-         bgpd.[ch]: Add BGP_INFO_STALE flag and end-of-rib support. "bgp
-         graceful-restart" commands added. Show numbers of individual
-         messages in "show ip bgp neighbor" command. Final pieces of graceful
-         restart.
-
-2005-02-01 Akihiro Mizutani <mizutani@net-chef.net>
-
-       * bgp_open.c, bgp_packet.c, bgp_vty.c, bgpd.[ch]: Remove "no neighbor
-         capability route-refresh" commands. Route refresh capability is sent
-         anyway now. Preserve dummy deprecated commands.
-
-2005-02-01 Akihiro Mizutani <mizutani@net-chef.net>
-
-       * bgp_attr.c, bgp_snmp.c, bgp_vty.c, bgpd.[ch]: Remove support for old
-         draft - ie. "neighbor version 4-" commands. Preserve dummy "neighbor
-         version" command as deprecated.
-
-2005-02-01 Akihiro Mizutani <mizutani@net-chef.net>
-
-       * bgpd.[ch], bgp_vty.c, bgp_route.c: "Restart session after
-         maximum-prefix limit" feature support.
-
-2005-02-01 Akihiro Mizutani <mizutani@net-chef.net>
-
-       * bgp_nexthop.c: Improve debug.
-       * bgpd.[ch], bgp_nexthop.c, bgp_snmp.c: Remove useless bgp_get_master()
-         function.
-       * bgp_packet.c: MP AFI_IP update and withdraw parsing.
-       * bgp_fsm.c: Reset peer synctime in bgp_stop(). bgp_fsm_change_status()
-         is better place to log about peer status change than bgp_event().
-         Log in bgp_connect_success().
-       * bgp_vty.c: Fix typo in comment.
-       * bgp_attr.c: Better log about unknown attribute.
-
-2005-01-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * bgp_filter.c: (ip_as_path,no_ip_as_path) Use argv_concat instead
-         of buffer_getstr.
-       * bgp_route.c: (bgp_show_regexp) Fix memory leak: need to free string
-         returned by buffer_getstr.
-         (bgp_show_community) Must use XFREE instead of free on string
-         returned by buffer_getstr.
-       * bgp_routemap.c: (set_community) Must use XFREE instead of free
-         on string returned by buffer_getstr.
-       * bgp_vty.c: (neighbor_description) Use argv_concat instead of
-         buffer_getstr.
-
-2005-01-24 Hasso Tepper <hasso at quagga.net>
-
-       * bgp_route.c: Fix showstopper bug. New route must be selected also
-         if old one is flaged as BGP_INFO_ATTR_CHANGED.
-
-2005-01-17 Hasso Tepper <hasso at quagga.net>
-
-       * bgp_route.c: Clear peer's routing table regardless whether it's
-         configured or not. Being not configured is even better reason to
-         do it.
-
-2005-01-05 Paul Jakma <paul@dishone.st>
-
-       * bgp_packet.c: (bgp_write) set socket to nonblock while writing
-          this should be generalised. See bugzilla #102. Fix supplied by
-         wawa@yandex-team.ru (Vladimir Ivanov).
-
-2004-12-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * *.c: Change level of debug messages to LOG_DEBUG.
-
-2004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * bgp_main.c: (main) The 2nd argument to openzlog has been removed.
-
-2004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * bgp_main.c: (sigint) Use zlog_notice for termination message.
-         (main) Use zlog_notice for startup announcement.
-
-2004-11-25 Hasso Tepper <hasso at quagga.net>
-
-       * bgp_main.c: Make group to run as configurable.
-
-2004-11-09 Paul Jakma <paul@dishone.st>
-
-       * bgp_nexthop.c: collapse bgp_connected_ipvX, bgp_nexthop_cache_ipvX
-         and cache{1,2}.. into arrays of tables and hence collapse
-          bgp_scan_ipv{4,6} into a single bgp_scan function. Tested, though
-          a long time ago (and this change was hand-merged).
-
-2004-11-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * bgp_route.c: Remove all code related to VTY_CONTINUE; this feature
-         is deprecated because the output did not represent a single point
-         in time.  All output needs to be generated inline and buffered
-         by the library code.
-         (route_vty_out,route_vty_out_tag,damp_route_vty_out,
-          flap_route_vty_out) Remove code to count number of lines of output,
-          since this was only useful for VTY_CONTINUE behavior.
-         (bgp_show_callback,vty_calc_line) Removed.
-         (bgp_show_table) Remove hooks for VTY_CONTINUE callback support.
-         As a result, there's a new output_arg argument to this function.
-         Make function static.
-         (bgp_show) Make function static and add a new output_arg argument.
-         Change all functions that call bgp_show or bgp_show_table to
-         pass the new output_arg argument (that used to be passed inside
-         vty->output_arg).
-       * bgp_mplsvpn.c: Remove declarations of functions defined in
-         bgp_route.c; these declarations belong in bgp_route.h.
-       * bgp_route.h: Declare 3 global functions used in both bgp_route.c
-         and in bgp_mplsvpn.c.
-
-2004-10-31 Paul Jakma <paul@dishone.st>
-
-       * {bgpd,bgp_attr}.c: size_t printf format should be ld.
-
-2004-10-25 Paul Jakma <paul@dishone.st>
-
-       * Update with fix in debian bug id 222930.
-       * bgp_main.c: Add ZCAP_RAW, needed to bind to interfaces.
-         bgp_network.c: (....) raise/lower privs around call to
-          SO_BINDTODEVICE sockopt. 
-
-2004-10-19 Andrew J. Schorr <aschorr@telemetry-investments.com>
-
-       * bgp_nexthop.c: (bgp_connected_add) Connected destination pointer
-         may be NULL.
-         (bgp_connected_delete) ditto.
-
-2004-10-14 Hasso Tepper <hasso at quagga.net>
-
-       * bgp_dump.c: Make dump configuration appear in vtysh.
-
-2004-10-13 Hasso Tepper <hasso at quagga.net>
-
-       * bgp_snmp.c: Remove defaults used to initialize smux connection to
-         snmpd. Connection is initialized only if smux peer is configured.
-       * bgp_view.c: It's dead file. Reomved.
-
-2004-10-13 Paul Jakma <paul@dishone.st>
-
-       * (global) more const'ification and fixups of types to clean up code.
-       * bgp_mplsvpn.{c,h}: (str2tag) fix abuse. Still not perfect,
-          should use something like the VTY_GET_INTEGER macro, but without
-          the vty_out bits..
-        * bgp_routemap.c: (set_aggregator_as) use VTY_GET_INTEGER_RANGE
-          (no_set_aggregator_as) ditto.
-        * bgpd.c: (peer_uptime) fix unlikely bug, where no buffer is 
-          returned, add comments about troublesome return value.
-       
-2004-10-03 James R. Leu <jleu at mindspring.com>
-
-       * bgp_vty.c: Router id from zebra can be manually overriden.
-       * bgp_zebra.c: Read router id related messages from zebra daemon.
-         Remove own code related with router id selection.
-       * bgpd.c, bgpd.h: Remove own router id selection code. Use the one
-         from zebra daemon if it isn't manually overriden.
-
-2004-09-26 Hasso Tepper <hasso at quagga.net>
-
-       * bgp_aspath.c, bgp_packet.c, bgp_vty.c: Fix compiler warnings.
-
-2004-09-23 Hasso Tepper <hasso at quagga.net>
-
-       * *.[c|h]: list -> struct list *, listnode -> struct listnode *.
-
-2004-07-09 Paul Jakma <paul@dishone.st>
-
-       * Merge of GNU Zebra cvs2svn changesets r799, r800 and r807.
-       * bgp_dump.c: (bgp_dump_attr) cleanup. return status code. check
-         attributes present before printing.
-       * bgp_dump.c: update bgp_dump_attr prototype.
-       * bgp_packet.c: (bgp_update_receive) init attrstr. check status
-         of bgp_dump_attr. Log end-of-rib UPDATEs.
-
-2004-07-09 Sowmini Varadhan <sowmini.varadhan@sun.com>
-
-       * bgp_packet.c: (bgp_collision_detect) Send NOTIFY on new socket
-         if that is connection we're closing.
-         (bgp_read) invalid marker check applies to KEEPALIVE too.
-       * bgp_route.c: Ignore multicast NRLI, dont send NOTIFY.
-       
-2004-06-04 Paul Jakma <paul@dishone.st>
-
-       * type mismatch fixes
-         
-2004-05-21  Akihiro Mizutani <mizutani@net-chef.net>
-
-       * bgpd.h, bgp_open.[ch], bgp_debug.c, bgp_vty.[ch], bgp_fsm.c:
-         Graceful restart capability display.
-
-2005-05-20 Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * bgp_debug.c: Cosmetical fixes and log neighbor changes.
-
-2004-05-20  Akihiro Mizutani <mizutani@net-chef.net>
-
-       * bgp_ecommunity.c: Transit ecommunity support.
-       * bgp_ecommunity.c: Fix for unknown community crush.
-
-2005-05-20 Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * *: Maximum prefix threshold support.
-       * *: Reset notification fixups.
-
-2004-05-08 Paul Jakma <paul@dishone.st>
-
-       * bgp_zebra.c: (bgp_interface_address_add) sync to zclient changes
-         (bgp_interface_address_delete) ditto.
-         (bgp_zebra_announce) ditto.
-         (bgp_zebra_withdraw) ditto.
-
-2004-05-03 Daniel Roesen <dr@cluenet.de>
-       
-       * bgp_fsm.c: (bgp_stop) Reset uptime only on transition from 
-         Established so that it reflects true downtime (rather time 
-         since last transition, eg Active->Idle)
-         
-2004-05-01 rivo nurges <rix@estpak.ee>
-        * bgp_route.c: fix UNH IOL BGP-4.1.12f
-2004-05-01 Paul Jakma <paul@dishone.st>
-
-       * Revert the attempted clean-up of the dummy peer hack, reverts
-         patchsets 435 (see 2004-02-17 below) and 456. 
-
-2004-04-16 rivo nurges <rix@estpak.ee>
-
-       * bgpd.h, bgp_debug.c: update cease subcodes to
-         draft-ietf-idr-cease-subcode-05
-       * bgpd.h, bgpd.c, bgp_route.c, bgp_route.h: fix UNH IOL BGP-4.1.6a
-
-2004-02-17 Paul Jakma <paul@dishone.st>
-
-       * bgpd.h: (bgp_peer) add fd_local and fd_accept 
-         file descriptor's, fd becomes a pointer to one of these.
-       * bgpd.c: (global) adjust for fact that fd is now a pointer.
-         (peer_create_accept) removed.
-       * bgp_route.c: (global) adjust for change of peer fd to pointer
-       * bgp_packet.c: (bgp_collision_detect) adjust and remove the 
-         "replace with other peer" hack. 
-       * bgp_network.c: (bgp_accept) Remove the dummy peer hack. 
-         Update peer->fd_accept instead. 
-         (global) Adjust fd references - now a pointer.
-       * bgp_fsm.c: (global) adjust peer fd to pointer.
-         (bgp_connection_stop) new function, to stop connection.
-         (global) adjust everything which closed peer fd to use
-         bgp_connection_stop().
-         
-2003-12-23 Krzysztof Oledzki <oleq@ans.pl>
-
-       * bgp_network.c: drop privs on error cases
-
-2003-08-11 kunihiro <kunihiro@zebra.org>
-
-       * bgp_route{,map}.c: Extend 'set ip next-hop' in route-maps with
-         ability to specify 'peer-address' rather than IP. 
-
-2003-06-09 Paul Jakma <paul@dishone.st>
-
-       * bgp_clist.c (community_list_delete): honour deny statements
-
-2003-04-19 Hasso Tepper <hasso@estpak.ee>
-
-       * rip_routemap.c: sync daemon's route-map commands to have same
-       syntax
-
-2003-01-09  Akihiro Mizutani <mizutani@net-chef.net>
-
-       * bgp_routemap.c: Add match extcommunity command.
-
-2002-10-23  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * bgp_aspath.c (aspath_init): Extend hash size from default to
-       32767.
-       (aspath_key_make): Use unsigned shoft for making hash.  Suggested
-       by: Marc Evans <Marc@SoftwareHackery.Com>
-
-2002-08-19  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * bgp_clist.c (community_entry_free): Fix memory leak of standard
-       extcommunity-list config string.
-
-2002-08-19  Akihiro Mizutani <mizutani@net-chef.net>
-
-       * bgp_route.c (route_vty_out_detail): Fix bug of router-id display
-       when multiple instance is used.
-
-2002-08-18  Akihiro Mizutani <mizutani@net-chef.net>
-
-       * bgpd.c: Make "default-originate" and "maximum-prefix" commands
-       available in peer-group configuration.
-
-2002-08-13  Akihiro Mizutani <mizutani@net-chef.net>
-
-       * bgp_packet.c (bgp_open_send): Put Opt Parm Len 0 when last
-       capability packet cause error or dont-capability-negotiate option
-       is specified.
-
-2002-07-07  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.93 released.
-
-2001-10-28  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c (bgp_vty_init): Translate update commands are removed.
-
-2001-10-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_static_set): Add workaround for BGP static
-       route announcement when there is no zebra running.
-
-2001-10-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c (neighbor_remote_as_unicast): Remove "remote-as nlri
-       unicast multicast" commands.
-
-2001-09-14  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_open.c: When we receive capability route-refresh, we should
-       check we send the capability not we receive the capability.
-
-       * bgp_route.c (bgp_network_mask_natural_route_map): network
-       statement route-map is added.
-
-2001-08-31  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * bgp_advertise.c (bgp_advertise_intern): attr must be interned
-       before looking up hash table.
-
-2001-08-30  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * bgpd.h (struct peer): BGP filter is moved from peer_conf to
-       peer.
-
-2001-08-28  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * bgp_nexthop.c (bnc_nexthop_free): Fix next pointer bug.
-       Suggested by: "Hong-Sung Kim" <hoskim@lanbird.co.kr>.
-
-2001-08-26  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * bgp_table.c (bgp_node_create): Clearn memory before use it.
-
-2001-08-24  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * Change to use bgp_table.[ch].
-
-2001-08-23  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * bgpd.c (bgp_init): Add "transparent-as" and
-       "transparent-nexthop" for old version compatibility.
-
-2001-08-23  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgpd.h (struct peer): default-originate route-map is added.
-
-       * bgp_route.c: When self originated route is advertised with
-       attrubute-unchanged, nexthop was not properly set.  This bug is
-       fixed.
-
-2001-08-22  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgpd.c (neighbor_attr_unchanged): transparent-as and
-       transparent-next-hop commands are restructured.  Instead of
-       current transparent-* commands, attribute-unchanged command is
-       introduced.
-
-       neighbor A.B.C.D attribute-unchanged [as-path|next-hop|med]
-
-       (neighbor_default_originate): "default-originate" configuration
-       announce default route even 0.0.0.0/0 does not exists in BGP RIB.
-
-2001-08-19  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.92a released.
-
-2001-08-19  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgpd.c: AF specific soft-reconfiguration inbound commands are
-       added.
-
-2001-08-17  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * bgp_route.c (bgp_show_callback): Do not do community NULL check.
-
-       * bgp_community.c (community_cmp): Add check for commnunity NULL
-       check.
-
-       * bgp_routemap.c (route_match_community): Do not check comunity is
-       NULL.  It may match to community-list "^$".
-
-       * bgp_community.c (community_match): Add check for community is
-       NULL case.
-
-2001-08-17  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgpd.c: AF specific route-reflector-client and
-       route-server-client configuration are added.
-
-2001-08-17  Rick Payne <rickp@ayrnetworks.com>
-
-       * bgp_clist.c (community_match_regexp): Check special ^$ case.
-
-2001-08-17  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_clist.c (community_list_match): Fix bug of community list
-       permit and deny check.
-
-2001-08-16  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_mplsvpn.c (bgp_mplsvpn_init): Add AF specific "nexthop-self"
-       command.
-
-2001-08-15  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgpd.h (PEER_FLAG_SEND_COMMUNITY): Per AF based configuration
-       flag is introduced.
-
-       * bgp_mplsvpn.c (bgp_mplsvpn_init): VPNv4 filtering is added.
-
-2001-08-15  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.92 released.
-
-2001-08-13  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * bgpd.c (bgp_delete): "no router bgp" free static, aggregate, rib
-       table properly.
-
-2001-08-12  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * bgp_route.c (bgp_node_safi): Return SAFI of current node.
-       (bgp_config_write_network_vpnv4): VPNv4 static configuration
-       display.
-
-2001-08-11  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * bgpd.c (no_bgp_ipv4_multicast_route_map): Add IPv4 multicast
-       node filter commands.
-
-2001-08-11  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.h (PEER_FLAG_IGNORE_LINK_LOCAL_NEXTHOP): Add
-       "ignore-link-local-nexthop" flag for ignore link-local nexthop for
-       IPv6.
-
-2001-08-07  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * bgpd.c (address_family_ipv4_multicast): "address-family ipv4
-       multicast" is added.
-       (address_family_ipv6_unicast): "address-family ipv6 unicast" is
-       added.
-       
-2001-08-07  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_route.c (bgp_process): Use flag instead of as_selected
-       memeber in struct bgp_info.
-
-       * bgp_route.h (struct bgp_info): Remove as_selected memeber from
-       struct bgp_info.
-
-2001-07-31  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * bgp_route.c (bgp_announce_check): Enclose sending time AS loop
-       check code with #ifdef BGP_SEND_ASPATH_CHECK.
-
-2001-07-29  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * bgp_packet.c (bgp_withdraw_send): Simplify address family check.
-
-       * bgpd.h (BGP_INFO_HOLDDOWN): Introduce new macro to check BGP
-       information is alive or not.
-
-       * bgp_community.c: Use community_val_get() on all OS.
-
-2001-07-24  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * bgp_route.c (bgp_announce_check): Simplify set next-hop self
-       check.
-
-2001-07-24  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_route.c (bgp_announce_check): To route server clients, we
-       announce AS path, MED and nexthop transparently.
-
-2001-06-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_routemap.c (route_set_atomic_aggregate_free): Do not call
-       XFREE.  No memory is allocated in
-       route_set_atomic_aggregate_compile().
-
-2001-06-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_routemap.c (bgp_route_map_init): `match nlri` and `set nlri`
-       are replaced by `address-family ipv4` and `address-family vpnvr'.
-
-2001-06-19  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_withdraw): Add check for BGP_PEER_CONFED.
-       Reported by Rick Payne <rickp@rossfell.co.uk>.
-
-2001-06-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_zebra.c (bgp_zebra_announce): When global IPv6 nexthop is
-       empty, use socket's remote address for the nexthop.
-
-2001-06-04  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * bgpd.c (peer_delete): Fix memory leak.  Reported by Yosi Yarchi
-       <Yosi_Yarchi@KereniX.com>
-
-2001-06-01  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * bgpd.c (bgp_delete): Fix memory leak.  Reported by Yosi Yarchi
-       <Yosi_Yarchi@KereniX.com>
-
-2001-05-27  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * bgp_route.c (bgp_route_clear_with_afi_vpnv4): Use next instead
-       of ri->next.
-
-       * bgp_packet.c (bgp_withdraw_send): MPLS/VPN withdraw takes effect
-       when HAVE_IPV6 is not defined.
-
-2001-03-07  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * bgpd.c (peer_timers_set): Adjust keepalive timer to fit less
-       than holdtime / 3.
-       (bgp_confederation_peers_unset): Only set peer->local_as when
-       confederation is enabled.
-       (bgp_timers): Add "timers bgp <0-65535> <0-65535>" command.
-
-       * bgp_route.c (bgp_announce_check): Set med of redistributed route
-       when it is announced to EBGP peer.
-
-2001-03-06  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * bgp_nexthop.c (bgp_scan_ipv4): bgp_scan() call bgp_process() for
-       all prefixes.
-
-2001-03-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_attr.c (bgp_attr_origin): When bgpd send NOTIFICATION with
-       erroneous attribute (type, length and value), it does include
-       attribute flags field.
-
-2001-02-21  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * bgp_route.c (bgp_announce_check): The route reflector is not
-       allowed to modify the attributes of the reflected IBGP routes.
-
-2001-02-20  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * bgp_route.c (bgp_info_cmp): During path seleciton, BGP
-       confederation peer is treated as same as IBGP peer.
-
-2001-02-19  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_redistribute_add): Initialize attr_new with
-       attr.  Call aspath_unintern when return from this function.
-
-2001-02-19  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * bgpd.c (bgp_router_id_set): Reset BGP peer when router-id is
-       changed.
-
-2001-02-18  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * bgp_packet.c (bgp_open_receive): When user configure holdtimer,
-       do not refrect the value to current session.
-
-2001-02-16  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_aggregate_delete): Set BGP_INFO_ATTR_CHANGE to
-       suppress route withdraw.
-
-       * bgp_damp.c (bgp_damp_init): Fix bug of flap dampening.
-
-2001-02-16  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * bgp_aspath.c (aspath_make_str_count): Use ',' for separator for
-       AS_SET and AS_CONFED_SET.
-
-2001-02-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_process): Do not consider suppress route.
-
-       * bgp_aspath.c (aspath_aggregate_as_set_add): Reset asset when
-       aspath->data is realloced.
-
-2001-02-15  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * bgp_attr.c (bgp_attr_aggregate_intern): Do not set atomic
-       aggregate when using as-set.
-
-2001-02-14  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * bgpd.c (bgp_confederation_peers_unset): Set peer's local-as
-       correctly.
-
-       * bgp_route.c (bgp_update): Just ignore AS path loop for
-       confederation peer.
-
-2001-02-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_aggregate_set): Add as_set argument.
-       (bgp_aggregate_unset): Remove summary_only argument.
-       (aggregate_address_as_set): New commands.
-       "aggregate-address A.B.C.D/M as-set"
-       "no aggregate-address A.B.C.D/M as-set"
-
-2001-02-08  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * bgp_route.c (bgp_announce_check): Do not modify nexthop when the
-       route is passed by route reflector.
-
-2001-02-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c: "no bgp dampening" with argument.
-       (bgp_announce_check): Do not modify nexthop when the route is
-       passed by route reflector.
-
-2001-02-07  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * bgpd.c (neighbor_passive): Change "neighbor NEIGHBOR remote-as
-       ASN passive" to "neighbor NEIGHBOR passive".
-       (bgp_announce_check): Check well-known community attribute even
-       when "no neighbor send-community" is set.
-
-2001-02-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_fsm.c (bgp_establish): Do not send keepalive at established
-       time when keepalive timer is configured as zero.
-
-2001-02-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_attr.c (bgp_attr_check): When peer is IBGP peer, local
-       preference is well-known attribute.
-
-2001-01-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.91 is released.
-
-       * bgp_attr.h (struct attr): Comment out DPA value.
-       (struct attr): Change refcnt type from int to unsinged long.
-
-       * bgp_attr.c (attrhash_key_make): Likewise.
-       (attrhash_cmp): Likewise.
-       (bgp_attr_dpa): Likewise.
-
-2001-01-30  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * bgp_route.c (bgp_info_cmp): Make route selection completely same
-       as Cisco's.
-
-2001-01-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_attr.h (BGP_ATTR_FLAG_OPTIONAL): Rename old ATTR_FLAG_* to
-       BGP_ATTR_FLAG_* to clarify meenings.
-
-2001-01-30  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * bgp_route.c (route_vty_out): Display argument to suppress same
-       prefix information display.
-       (route_vty_out_route): Don't display mask information for
-       classfull network.
-
-2001-01-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_attr.h (SET_BITMAP): Simple bitmapping macros.
-
-       * bgp_attr.c (bgp_attr_parse): Use bitmap for attribute type
-       check.
-
-2001-01-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_attr.c (bgp_mp_reach_parse): Enclose loggin with BGP_DEBUG.
-       (bgp_attr_parse): Comment out well-known attribute check.
-
-2001-01-28  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_static_unset): Link-local IPv6 address can't be
-       used for network advertisement.
-       (nlri_parse): When link-local IPv6 address NLRI comes from
-       remote-peer, log the information then simply ignore it.
-
-       * bgp_zebra.c (zebra_read_ipv6): Link-local IPv6 address is not
-       redistributed.
-
-       * bgp_route.c (bgp_update): Check IPv6 global nexthop
-       reachability.
-
-2001-01-26  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_update): Check nexthop points local address or
-       not.
-       (bgp_static_update_vpnv4): Set valid flag.
-
-       * bgp_attr.c (bgp_attr_parse): Duplicate attribute check.
-       (bgp_attr_parse): Well-known attribute check.
-
-       * bgp_open.c (bgp_auth_parse): Authentication is not yet supported.
-
-       * bgp_packet.c (bgp_valid_marker): Check marker is synchronized.
-
-       * bgpd.c (clear_bgp): Send NOTIFICATION Cease when SEND_CEASE is
-       defined.
-
-       * bgp_snmp.c (bgp4PathAttrTable): Fix compile error.
-
-2001-01-24  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c (bgp_network_import_check): New command for IGP network
-       check.
-
-2001-01-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_nexthop.c (bgp_scan): Run bgp_process when IGP metric is
-       changed.  Call bgp_process once for each node.
-
-2001-01-23  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * bgp_route.c (bgp_info_cmp): Add IGP metric comparison.
-
-2001-01-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_info_cmp): Add IGP metric comparison.
-
-       * bgp_nexthop.c (bgp_nexthop_lookup): Set IGP metric for valid
-       IBGP route.
-
-2001-01-23  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * bgp_route.c (show_ip_bgp_prefix_longer): Add new commands.
-       "show ip bgp A.B.C.D/M longer-prefixes"
-       "show ip bgp ipv4 (unicast|multicast) A.B.C.D/M longer-prefixes"
-       "show ipv6 bgp X:X::X:X/M longer-prefixes"
-       "show ipv6 mbgp X:X::X:X/M longer-prefixes"
-       
-2001-01-20  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * bgp_route.c (show_ip_bgp_cidr_only): Add new commands.
-       "show ip bgp cidr-only"
-       "show ip bgp ipv4 (unicast|multicast) cidr-only"
-       
-2001-01-18  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * bgp_route.c (bgp_update): AS path lookup check is done in
-       bgp_update() not in attr_parse().
-
-2001-01-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_update): Call bgp_aggregate_decrement() just
-       before bgp_attr_unintern().
-
-2001-01-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_update): Now intern is performed very last part
-       of the BGP packet update procedure.
-
-2001-01-17  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * bgp_route.c (bgp_update): When implicit withdraw occur, reuse
-       existing bgp_info structure.
-
-2001-01-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_aggregate_decrement): Fix bug of aggregate
-       address matching method.
-       (bgp_update): 
-
-       * bgp_nexthop.c (bgp_nexthop_onlink): Separate EBGP nexthop onlink
-       check and IBGP nexthop route check.
-
-2001-01-16  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * bgp_route.h (BGP_INFO_ATRR_CHANGED): Added for track attribute
-       change.
-
-2001-01-16  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.h (struct bgp_info): Remove selected flag.  Use
-       BGP_INFO_SELECTED for flags instead.
-       (struct bgp_info): Remove valid flag.  Use BGP_INFO_VALID for
-       flags instead.
-       (struct bgp_info): Add igpmetric for IBGP route nexthop IGP
-       metric.
-       (struct bgp_info_tab): Struct bgp_info_tag is integrated into
-       struct bgp_info.
-       (BGP_INFO_ATRR_CHANGED): Added for track attribute change.
-
-       * bgp_community.c (community_val_get): gcc-2.95 on
-       sparc-sun-solaris cause crush.  This function is for avoid the
-       crush.
-
-2001-01-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_packet.c (bgp_open_receive): Translated peer's packet_size
-       clear bug is fixed.
-
-2001-01-14  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * bgp_packet.c (bgp_open_receive): Return notification with
-       supported version number.
-
-2001-01-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c (bgp_show_summary): Display AS path and community
-       entries.  Suggested by: "Matt Ranney" <mjr@ranney.com>.
-
-       * bgp_packet.c (bgp_read_packet): Fix bug of unblocking BGP socket
-       read.  When BGP packet read is partial, we must get size and type
-       from packet again.
-
-2001-01-12  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * bgp_route.c (bgp_update): Do not unset BGP_INFO_HISTORY flag.
-       (bgp_update): When there is a history entry increment route count.
-       (bgp_damp_set): Check BGP_CONFIG_DAMPENING flag.
-
-       * bgp_damp.c (bgp_damp_withdraw): Set status to
-       BGP_DAMP_DISCONTINUE.
-
-2001-01-11  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_attr.c (bgp_mp_reach_parse): Fix warning code when second
-       IPv6 nexthop is not link-local addresss.
-
-2001-01-11  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * bgp_damp.c (bgp_config_write_damp): Smart flap dampening
-       configuration display.
-       (bgp_damp_info_print): Display elapsed time from flap started.
-
-       * bgp_damp.h (struct bgp_damp_info): Add flap start time.
-
-       * bgpd.c (peer_create): Set last read time.
-       (bgp_show_peer): Display last read time.
-       (bgp_show_summary): Use BGP_CONFIG_DAMPENING flag to check
-       configuration.
-       
-       * bgpd.h (BGP_CONFIG_DAMPENING): Add new configuration option.
-       (struct peer): Add last read time member.
-       (BGP_VERSION_MP_4): Remove obsolete definition.
-
-2001-01-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_nexthop.c: Remove OLD_RIB codes.
-
-       * bgp_route.c (bgp_process): Likewise.
-
-       * zebra-0.90 is released.
-
-       * bgp_route.h (BGP_INFO_HISTORY): Remove damped member from struct
-       bgp_info.  Instead of that use BGP_INFO_DAMPED flag.
-       (struct bgp_info): Remove invalid member from struct bgp_info.
-       Instead of that use BGP_INFO_HISTORY flag.
-
-2001-01-10  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * bgp_damp.c (bgp_damp_info_print): New function to display
-       dampening status.
-       (DEFAULT_HARF_LIFE): Define default value.
-       (DEFAULT_REUSE): Likewise.
-       (DEFAULT_SUPPRESS): Likewise.
-       (bgp_config_write_damp): When config value is same as default
-       value, simply display "bgp dampening" to configuration.
-
-       * bgp_damp.h (struct bgp_damp_info): Add flap member.
-
-       * bgp_route.h (struct bgp_info): Added for BGP flap dampening
-       history status.
-
-2001-01-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_nexthop.c (bgp_connected_add): Point-to-point connected
-       address is properly handled.
-       (bgp_connected_delete): Likewise.
-
-       * bgp_route.c (bgp_route_init): Turn off BGP Flap dampening code
-       until it works fine.
-
-2001-01-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c (bgp_show_summary): Add BGP_VERSION_MP_4 case.
-
-       * bgp_route.c (bgp_update): When this is not damped route, clear
-       ri pointer.
-
-2001-01-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_main.c: Add "-n" no_kernel option to not install route to
-       kernel.  Suggested by: "Matt Ranney" <mjr@ranney.com>
-
-2001-01-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_nexthop.c (bgp_connected_add): Revert point-to-point
-       connected route patch.  Reported by ruud@ruud.org (Ruud de Rooij)
-
-       * bgp_damp.c (bgp_config_write_damp): Add configuration display
-       function.
-
-       * bgp_route.c (bgp_info_free): Set NULL to BGP dampening
-       information when BGP info structure is freed.
-       (bgp_info_cmp): Check damped flag.
-       (bgp_announce_check): Damped route is not announced.
-
-2001-01-09  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * bgpd.c (neighbor_capability_route_refresh): Change "neighbor
-       route-refresh" command to "neighbor capability route-refresh".
-       (clear_bgp_soft_in): Change soft-reconfig method.
-
-       clear ip bgp <neighbor> soft in
-        --------------------------------------
-        Try stored cache first then route-refresh
-
-        clear ip bgp <neighbor> in
-        ---------------------------------
-        Try route-refresh first then try to use stored cache
-
-2001-01-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_nexthop.c (bgp_connected_add): Check point-to-point
-       connected route.  Reported by ruud@ruud.org (Ruud de Rooij)
-
-2001-01-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_nexthop.c (bgp_nexthop_lookup): When IBGP nexthop is
-       changed, refresh it.
-
-2001-01-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.h (struct bgp_info_tag): Add as_selected to
-       bgp_info_tag.
-
-2001-01-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.h (struct bgp_info_tag): Add damped and bgp_damp_info
-       member for BGP flap dampening.
-
-       * bgp_damp.c: New file is added.
-
-       * bgp_damp.h: Likewise.
-
-2001-01-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.h (BGP_VTYSH_PATH): Change "/tmp/bgpd" to "/tmp/.bgpd".
-
-2000-12-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_nexthop.c (zlookup_connect): Change to use UNIX domain
-       socket for zebra communication.
-
-2000-12-29  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_route.c (bgp_process): Fix "bgp deterministic-med" process.
-
-2000-12-27  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_route.c (bgp_process): Add "bgp deterministic-med" process.
-
-2000-12-25  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_route.c (bgp_info_cmp): Use ntohl comparing router ID.
-
-2000-12-18  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_route.c (bgp_info_cmp): When over three same prefix exit,
-       withdrawing best prefix perform router ID comparison.
-
-2000-12-15  Akihiro Mizutani  <mizutani@dml.com>
-
-       * bgp_route.c (bgp_info_cmp): Do not compare router ID when the
-       routes comes from EBGP peer.  When originator ID is same, take
-       shorter cluster-list route.  If cluster-list is same take smaller
-       IP address neighbor's route.
-
-       * bgpd.c (bgp_bestpath_aspath_ignore): Add "bgp bestpath as-path
-       ignore" command.  When this option is set, do not concider AS path
-       length when route selection.
-       (bgp_bestpath_compare_router_id): Add "bgp bestpath
-       compare-routerid".  When this option is set, compare router ID
-       when the routes comes from EBGP peer.
-       
-2000-12-15  Akihiro Mizutani  <mizutani@dml.com>
-
-       * bgp_route.c (bgp_info_cmp): Compare originator ID when it is
-       available.
-
-2000-12-14  Akihiro Mizutani  <mizutani@dml.com>
-
-       * bgp_packet.c (bgp_notify_receive): Disply received Notify data
-       information.
-
-2000-12-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_filter.c (as_filter_free): Use MTYPE_AS_FILTER_STR to make
-       it sure the memory is freed.
-
-       * bgp_route.c (route_vty_out_detail): Do not use AF_INET6 outside
-       HAVE_IPV6.
-
-2000-12-08  Akihiro Mizutani  <mizutani@dml.com>
-
-       * bgp_packet.c (bgp_notify_send_with_data): Store BGP notification
-       data part.
-
-       * bgp_network.c (bgp_accept): When BGP connection comes from
-       unconfigured IP address, close socket immediately.
-
-       * bgpd.c: Fix some display format.
-
-2000-11-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_packet.c (bgp_keepalive_send): Delete duplicate
-       bgp_packet_set_size () call.
-
-2000-11-28  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_packet.c (bgp_read_packet): Remove debug codes.
-
-2000-11-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_snmp.c (write_bgpPeerTable): Add SNMP set method routine.
-
-       * bgp_fsm.c (bgp_stop): Use fsm_change_status to change peer's
-       status.
-       (bgp_establish): Likewise.
-
-2000-11-26  Akihiro Mizutani  <mizutani@dml.com>
-
-       * bgp_open.c: Fix error messages.
-
-2000-11-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_fsm.c (bgp_establish): Call BGP trap when the peer is
-       established.
-       (bgp_stop): Call BGP trap when the peer is dropped.
-
-2000-11-24  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_snmp.c (bgp4PathAttrTable): Return BGP path attribute table.
-
-       * bgpd.h (struct peer): Add update_time for track last update
-       received time.
-
-       * bgp_packet.c (bgp_notify_receive): Preserv notify code and sub
-       code in any case.
-
-       * bgp_snmp.c (bgpPeerTable): Return remote router ID instead of
-       peering IP address.
-       (bgpPeerTable): Return actual BGP version number.
-
-2000-11-22  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_debug.c (bgp_notify_print): Notify data length display bug
-       is fixed.
-
-2000-11-16  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_nexthop.c (zlookup_connect): When UNIX domain connection to
-       zebra is enabled, use the method.
-
-2000-11-16  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgpd.c: Revise debug message output.
-
-2000-11-15  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_clist.c (ip_community_list): Fix bug of string comparison.
-
-2000-11-14  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_community.c (community_match): Fix bug of memcmp return
-       value check.
-
-2000-11-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_clist.c (community_list_match_exact): Add check for
-       entry->style is COMMUNITY_LIST.
-       (community_match_regexp): Apply new com_nthval macro.
-
-2000-11-07  Rick Payne <rickp@rossfell.co.uk>
-
-       * bgp_routemap.c (route_set_community_delete): "set
-       community-delete COMMUNITY-LIST" is added.
-
-       * bgp_community.c (community_del_val): Delete one community.
-       (community_delete): Delete all community included in list.
-       (community_match): Fix bug of matching community value.
-
-       * bgp_clist.c (community_entry_free): Free community regular
-       expression.
-       (community_entry_make): Default style is COMMUNITY_LIST.
-       (community_entry_lookup): Make it sure style is COMMUNITY_LIST.
-       (community_entry_regexp_lookup): New function for community
-       regular expression lookup.
-       (community_match_regexp): New function.
-       (community_delete_regexp): New function.
-       (community_list_delete_entries): New function.
-       (community_list_match): Add COMMUNITY_REGEXP treatment.
-       (community_list_match_exact): Likewise.
-       (config_write_community): Write community list according to
-       entry->style.
-
-2000-11-07  Rick Payne <rickp@rossfell.co.uk>
-
-       * bgp_attr.c (bgp_attr_aspath): AS path first AS check.
-
-       * bgp_clist.c (struct community_entry): Add style, regexp, reg to
-       community_entry.
-
-2000-11-06  Rick Payne <rickp@rossfell.co.uk>
-
-       * bgp_aspath.c (aspath_firstas_check): AS path first AS check.
-
-       * bgpd.c (bgp_enforce_first_as): New command "bgp
-       enforce-first-as".
-
-       * bgpd.h (BGP_CONFIG_ENFORCE_FIRST_AS): Add new flag.
-
-2000-11-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_community.c (community_compare): Copy byte stream data to
-       actual value instead of using type casting hack.
-       (community_add_val): Likewise.
-       (community_uniq_sort): Likewise.
-       (community_print): Likewise.
-       (community_print_vty): Likewise.
-       (community_include): Use memcmp to compare community value.
-
-       * bgp_community.h (com_lastval): com_lastval and com_nthval macro
-       return pointer.
-
-2000-11-06  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgpd.h (struct peer): Add established and dropped member for
-       count peering up/down statistics.
-
-       * bgpd.c (bgp_show_peer): Display peering up/down statistics.
-
-       * bgp_fsm.c (bgp_establish): Increment established count.
-       (bgp_stop): Increment dropped count.
-
-       * bgp_packet.c (bgp_notify_receive): Increament notify count.
-
-2000-11-1  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_fsm.c: Fix bug of holdtimer is not reset when bgp cleared. 
-
-2000-10-31  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.h: Static bit flag is set by (1 << DIGIT).
-
-2000-10-24  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_ecommunity.c (ecommunity_dup): Extended community display
-       format fix.
-
-2000-10-24  Arkadiusz Miskiewicz <misiek@pld.org.pl>
-
-       * bgp_network.c (bgp_serv_sock_addrinfo): Use gai_strerror.
-       (bgp_serv_sock_addrinfo): Check address family.
-
-2000-10-23  Jochen Friedrich <jochen@scram.de>
-
-       * bgp_snmp.c: bgp_oid and bgpd_oid are used in smux_open after it
-       is registered.  So those variables must be static.
-
-2000-10-23  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_routemap.c (route_match_ip_next_hop): Change "match ip
-       next-hop" argument from IP address to access-list name.
-       Remove zebra-0.88 compatibility commands.
-        "match ip prefix-list WORD"
-        "match ipv6 prefix-list WORD"
-       
-2000-10-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_routemap.c (route_match_ipv6_next_hop_compile): Fix bug of
-       passing the pointer to the pointer of struct in6_addr instead of
-       the pointer of struct in6_addr in "match ipv6 next-hop" command.
-
-       * bgp_route.c (bgp_announce_check): Enclose IPv6 part with
-       HAVE_IPV6.
-
-2000-10-20  Jasper Wallace <jasper@ivision.co.uk>
-
-       * bgp_snmp.c (bgpPeerTable): ntohs missing bug is fixed.  Change
-       to use linklist.c.  Define COUNTER32 as ASN_COUNTER.
-
-2000-10-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_announce_check): attr->nexthop empty check
-       should be done by attr->nexthop.s_addr instead of strcmp.
-
-2000-10-18  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_zebra.c (zebra_read_ipv4): Pass nexthop value to
-       bgp_redistribute_add().
-
-       * bgp_nexthop.c (bgp_multiaccess_check_v4): New function for
-       checking IPv4 multiaccess nexthop.
-
-       * bgp_route.c (bgp_announce_check): In case of the nexthop is
-       reachable on multiaccess media, do not change nexthop.
-       (bgp_redistribute_add): Set nexthop when the value is passed.
-
-2000-10-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_fsm.c (bgp_timer_set): If peer is passive mode, do not set
-       connect timer.
-       (bgp_start): If the peer is passive mode, force to move to Active
-       mode.
-
-2000-10-17  Horms <horms@vergenet.net>
-
-       * bgp_debug.c (debug_bgp_fsm): Fix typo.
-
-2000-10-17  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_route.c: "show ipv6 bgp" route display improvement.
-
-2000-10-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (neighbor_routes): Allocate sockunion for callback
-       function.
-       (bgp_show_neighbor_route): Remove static declaration for union
-       sockunion.
-
-       * bgpd.c (peer_update_source_set): Clean previously allocated
-       memory before allocate new one.
-
-2000-10-03  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_route.c (neighbor_routes): Add show neighbor's routes
-       command.
-       "show ip bgp neighbors (A.B.C.D|X:X::X:X) routes"
-       "show ip bgp ipv4 (unicast|multicast) neighbors (A.B.C.D|X:X::X:X) routes"
-       "show ipv6 bgp neighbors (A.B.C.D|X:X::X:X) routes"
-       "show ipv6 mbgp neighbors (A.B.C.D|X:X::X:X) routes"
-
-2000-10-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.89 is released.
-
-2000-10-02  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgpd.c: "bgp deterministic-med" command is added.
-
-2000-10-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_nexthop.c (bgp_connected_add): Apply mask for connected
-       route addition and deletion.
-
-2000-09-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_aspath.c (aspath_cmp_left): Skip confederation AS segment
-       when comparing leftmost AS number.
-
-2000-09-29  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgpd.c (peer_route_reflector): Route reflector can be set for
-       IBGP peer.
-       (bgp_distribute_set): Fix bug of string check for (in|out).
-       (bgp_show_summary): Display total neighbor count.
-
-2000-09-28  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_attr.c (bgp_packet_attribute): Only add cluster_list and
-       originator for clinet to client routes.
-       (bgp_packet_attribute): Add new cluster_list to the beginning of
-       existing cluster_list.
-       (bgp_packet_attribute): Fix bug of originator is rewritten even
-       when originator is already set.
-
-2000-09-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c (bgp_client_to_client_reflection): Add new command.
-       "no bgp client-to-client reflection"
-       "bgp client-to-client reflection"
-
-       * bgpd.h (BGP_CONFIG_NO_CLIENT_TO_CLIENT): Add new definition.
-
-2000-09-26  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_packet.c (bgp_read): Make BGP packet read to non-blocking
-       read.
-       (bgp_read_packet): Likewise.
-       (bgp_read_packet): When errono is EAGAIN, try to read it again.
-
-       * bgp_fsm.c (bgp_stop): Clear packet size and read buffer.
-
-2000-09-26  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_routemap.c: Configuration of prefix-list match is shown as
-       "match ip address prefix-list <WORD>".  Old configuration "match
-       ip prefix-list <WORD>" is left for compatibilitty.
-
-2000-09-25  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgpd.h (BGP_CONFIG_MED_MISSING_AS_WORST): Changed from
-       BGP_CONFIG_MISSING_AS_WORST.
-
-       * bgpd.c (bgp_bestpath_med): Change missing-as-worst syntax.
-       Old "bgp bestpath missing-as-worst"
-       New "bgp bestpath med missing-as-worst"
-
-2000-09-24  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_route.c: Compare MED properly in case of CONFED-IBGP.
-
-2000-09-21  steve@Watt.COM (Steve Watt)
-
-       * bgp_debug.h: Do not declare debug variables conf_bgp_debug_* and
-       term_bgp_debug_*.
-
-       * bgp_debug.c: Declare variables here.
-
-2000-09-21  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgpd.c: MBGP soft-reconfiguration command is added.
-       clear ip bgp x.x.x.x ipv4 (unicast|multicast) in
-       clear ip bgp x.x.x.x ipv4 (unicast|multicast) out
-       clear ip bgp x.x.x.x ipv4 (unicast|multicast) soft
-       clear ip bgp <1-65535> ipv4 (unicast|multicast) in
-       clear ip bgp <1-65535> ipv4 (unicast|multicast) out
-       clear ip bgp <1-65535> ipv4 (unicast|multicast) soft
-       clear ip bgp * ipv4 (unicast|multicast) in
-       clear ip bgp * ipv4 (unicast|multicast) out
-       clear ip bgp * ipv4 (unicast|multicast) soft
-
-       Change "clear ip bgp vpnv4 x.x.x.x soft" command to
-       "clear ip bgp x.x.x.x vpnv4 unicast soft".
-
-       "bgp bestpath med confed" command is added.
-       
-       * bgpd.h (BGP_CONFIG_MED_CONFED): Add New definition.
-
-2000-09-18  Rick Payne <rickp@rossfell.co.uk>
-
-       * bgpd.c (bgp_show_peer): Fix misplaced #endif.
-
-2000-09-12  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgpd.c (bgp_default_local_preference): Add "bgp default
-       local-preference" command.
-
-       * bgp_nexthop.c (no_bgp_scan_time): Add "no bgp scan-time"
-       command.
-
-2000-09-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_zebra.c (bgp_zebra_announce): BGP confederation peer's routes
-       are passed to zebra like IBGP route.
-
-2000-09-10  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgpd.c (bgp_config_write_peer): Make it consistent passive
-       configuration.
-
-       * bgp_route.c: Community match command is added.
-       "show ip bgp community <val>"
-       "show ip bgp community <val> exact-match"
-
-2000-09-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_nexthop.c (bgp_nexthop_lookup): ebgp-multihop routes are
-       treated as IBGP routes.
-
-2000-09-08  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_route.c (bgp_show_route): When local-AS community route is
-       selected, display "not advertised outside local AS" to "show ip
-       route A.B.C.D" output.
-       (show_ip_bgp_ipv4_filter_list): Add below four commands.
-       "show ip bgp ipv4 (unicast|multicast) filter-list WORD"
-       "show ip bgp ipv4 (unicast|multicast) community"
-       "show ip bgp ipv4 (unicast|multicast) community-list WORD"
-       "show ip bgp ipv4 (unicast|multicast) community-list WORD exact-match"
-       
-       * bgp_clist.c (community_list_match_exact): Community exact match
-       function.
-
-2000-09-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_update): Add peer's ttl check.
-
-       * bgpd.h (struct peer): Structure member refresh is renamed to
-       refresh_adv.
-
-       * bgpd.c (clear_bgp_soft_in): Check PEER_FLAG_ROUTE_REFRESH flag
-       when soft reconfiguration is performed.
-
-       * bgp_zebra.c (bgp_zebra_announce): When the peer is EBGP and
-       ebgp-multiphop is set, set ZEBRA_FLAG_INTERNAL for nexthop lookup.
-
-       * bgp_route.h (struct bgp_info_tag): Add valid flag.
-
-2000-08-25  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgpd.c: Add AS base BGP soft reconfiguration.
-
-       * bgp_route.c: When no-advertise or no-export route is selected,
-       "show ip bgp" display "not advertised to EBGP peer" or "not
-       advertised to any peer" message.
-       
-2000-08-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.88 is released.
-
-       * bgp_dump.c (dump_bgp_routes): Change "dump bgp routes" to "dump
-       bgp route-mrt" to support MRT specific dump format.
-
-       * bgpd.c (bgp_init): "clear ip bgp vpnv4 soft {in,out}" command is
-       added.
-
-       * bgp_route.c (bgp_update): Currently nexthop check is only works
-       for IPv4.
-
-2000-08-17  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgpd. (clear_ip_bgp_all_soft): Add "clear ip bgp * soft" for
-       both inbound and outbound soft reconfiguration.
-
-2000-08-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c (clear_ip_bgp_peer_soft_out): Add soft-reconfiguration
-       outbound.
-       (peer_new): Set route-refresh flag.
-
-2000-08-16  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgpd.c: "no bgp router-id A.B.C.D" alias is added.  "no bgp
-       cluster-id A.B.C.D" alias is added.  " bgp cluster-id
-       <1-4294967295>" alias is added.  "clear ip bgp * soft in" command
-       is added.  "clear ip bgp A.B.C.D in" alias is added.  "clear ip
-       bgp * in" alias is added.
-
-2000-08-16  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_update): Add soft_reconfig flag.  When the flag
-       is set do not install the route into Adj-RIBs-In.
-       (bgp_update): Perform implicit withdraw before filtering of the
-       route.
-
-       * bgp_packet.c (bgp_read): draft-ietf-idr-bgp-route-refresh-01.txt
-       capability code and BGP message can be accepted.
-
-       * bgp_open.c (bgp_capability_parse): Likewise.
-
-       * bgp_route.c (bgp_refresh_table): New function for route refresh.
-       (bgp_refresh_rib): Likewise.
-
-       * bgpd.c (bgp_show_peer): Display route refresh status.
-
-       * bgp_route.c (bgp_aggregate_add): Add check for the route
-       validness.
-       (bgp_aggregate_delete): Likewise.
-
-2000-08-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_nexthop.c (bgp_scan): Care for aggregate route when the
-       route become inaccessible.
-
-2000-08-15  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_route.c (show_ip_bgp_prefix): "show ip bgp A.B.C.D/M"
-       command is added.
-
-2000-08-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_zebra.c (bgp_interface_up): Register connected route.
-       (bgp_interface_down): Unregister connected route.
-
-2000-08-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.h (struct bgp_info): Add distance to the structure.
-
-       * bgp_route.c (bgp_aggregate_increment): Aggregate route only
-       match to smaller prefixlen route not match same prefixlen route.
-       (bgp_aggregate_decrement): Likewise.
-       (bgp_aggregate_add): Likewise.
-       (bgp_aggregate_delete): Likewise.
-       (bgp_network_backdoor): Add backdoor network configuration.
-
-       * bgpd.h (struct bgp ): Add distance_{ebgp,ibgp,local} for store
-       configuration distance value.
-
-       * bgp_route.c (bgp_update): Filter EBGP route which has non
-       connected nexthop.
-
-       * bgp_attr.c (bgp_attr_aggregate_intern): New function for
-       aggregate route.  Set origin to IGP.  Set atomic aggregate flag.
-       Set aggregator AS and address.
-       (bgp_attr_aggregate_intern): Check BGP_CONFIG_CONFEDERATION when
-       filling aggregator_as.
-
-       * bgp_route.c (bgp_process): Delete suppress check for install
-       suppressed route into local routing table.
-       (bgp_aggregate_increment): Use bgp_attr_aggregate_intern() instead
-       of bgp_attr_default_intern ().
-       (bgp_aggregate_add): Likewise.
-
-       * bgpd.c (bgp_get): Call bgp_if_update_all() after BGP instance is
-       created.  This is for avoid 0.0.0.0 router-id.
-
-2000-08-13  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_route.c (route_vty_out_detail): Display "valid" when the
-       route is valied.  Display "aggregated" when the route is
-       aggregated.  "Advertisements suppressed by an aggregate" is
-       displayed when the route is suppressed.
-       (bgp_info_cmp): Prefer EBGP than Confed-EBGP.
-
-2000-08-10  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_route.c (route_vty_out_detail): Display format change.
-
-2000-08-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_update): Only AFI_IP nexthop check is enabled.
-
-       * bgpd.c (bgp_delete): Delete static route before delete peer
-       configuration.
-
-2000-08-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c: Include bgpd/bgp_nexthop.h.
-
-2000-07-31  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgpd.c (bgp_show_summary): "show ip bgp summary" shows own BGP
-       identifier.  And status is changed like below.
-
-       State/Pref   -> State/PfxRcd
-       Shutdown     -> Idle (Admin)
-       PrefixOvflw  -> Idle (PfxCt)
-
-       * bgp_route.c (route_vty_out): Show internal route as "i".
-
-2000-07-13  Jim Bowen <jimb@zereau.net>
-
-       * bgp_snmp.c: Add BGP peer MIB implementation.
-
-2000-07-12  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgpd.c (bgp_show_peer): Fix typo.
-
-2000-07-11  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_routemap.c: Add commands for deleting set without argument.
-
-2000-07-03  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_zebra.c: Fix redistribute help strings.
-
-2000-07-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_show): When bgpd works as vtysh server send all
-       output to vty at once.
-
-2000-06-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_mplsvpn.c (no_vpnv4_network): "no network A.B.C.D/M rd WORD
-       tag WORD" command is added.
-
-       * bgp_ecommunity.c (ecommunity_vty_out): New function added.
-
-2000-06-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_show): Fix total number of prefix count bug.
-
-       * bgpd.c (bgp_show_peer): Display VPNv4 unicast configuration and
-       negotiation result in "show ip bgp neighbors".
-
-2000-06-12  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgpd.c: Fix help strings.
-       
-       * bgpd.h: Likewise.
-       
-2000-06-11  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_aggregate_unset): Fix bug of checking rn->info
-       instead of rn.  Reported by Akihiro Mizutani <mizutani@dml.com>.
-
-       * bgp_mplsvpn.c (vpnv4_network): For testing purpose, "network
-       A.B.C.D rd RD" is added to address-family vpnv4 unicast node.
-
-       * bgp_route.c (bgp_static_set): Set safi to p.safi.
-
-2000-06-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_show_prefix_list): Change to use bgp_show().
-       (bgp_show_regexp): Change to use bgp_show().
-       (show_adj_route): Change to display header.
-
-       * bgpd.c (clear_bgp): Set peer->v_start to default value when peer
-       is cleared manually.
-
-       * bgp_route.c (bgp_show_route): New function which display
-       specific BGP route.  Divided from bgp_show().
-       (bgp_static_delete): Delete all static route.
-
-2000-06-09  NOGUCHI Kay <kay@v6.access.co.jp>
-
-       * bgp_route.c (show_ipv6_bgp): "show ipv6 bgp" is broken with
-       invalid privious fix.  Now show_ipv6_bgp and show_ipv6_bgp_route
-       take care of "show ipv6 bgp [X:X::X:X]".  Same change for "show ip
-       mbgp" and "show ipv6 mbgp".
-
-2000-06-07  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_route.c: Fix help strings and command arguments.
-
-2000-06-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_ecommunity.c: Include prefix.h
-
-2000-06-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.h (struct bgp_info_tag): New structure to hold tag
-       value.
-
-       * bgp_route.c (bgp_adj_set): table NULL check is added.
-       (bgp_adj_unset): Likewise.
-       (bgp_adj_lookup): Likewise.
-       (bgp_adj_clear): Likewise.
-       (route_vty_out): Add SAFI check for nexthop display.
-       (bgp_withdraw): Add SAFI check for withdraw route.
-
-       * Remove all #ifdef MPLS_VPN then include it as default.
-
-       * bgpd.c: Temporary disable peer-group command until the
-       implementation is completed.
-
-       * bgp_routemap.c (bgp_route_map_init): Install
-       route_metric_match_cmd.
-       (route_match_metric_compile): MED value compile using strtoul.
-
-2000-06-05  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_filter.c: Fix help strings.  Change REGEXP to LINE.  Change
-       NAME to WORD.
-
-       * Change command argument to more comprehensive.
-
-       METRIC         -> <0-4294967295>
-       WEIGHT         -> <0-4294967295>
-       LOCAL_PREF     -> <0-4294967295>
-       IP_ADDR        -> A.B.C.D
-       AS             -> <1-65535>
-       AS-PATH-NAME   -> WORD
-       ACCESS_LIST    -> WORD
-       PREFIX_LIST    -> WORD
-       COMMUNITY      -> AA:NN
-       EXT_COMMUNITY  -> ASN:nn_or_IP-address:nn
-       IPv6_ADDR      -> X:X::X:X
-
-       * bgp_clist.c: Fix help strings.
-
-2000-06-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c (peer_active): Add new function for check the peer is
-       active or not.
-       (neighbor_activate): New command "neighbor PEER activate" and "no
-       neighbor PEER activate" are added.
-
-       * bgp_packet.c: Include bgpd/bgp_mplsvpn.h.
-
-2000-06-02  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_clist.c: Fix commuity-list help strings.
-
-       * bgp_routemap.c: Fix "set community" help strings.  Add #define
-       SET_STR.  Use (unicast|multicast) argument for "set nlri" command.
-       
-2000-06-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_routemap.c (route_set_community_none_cmd): "set community
-       none" command is added to route-map.
-
-2000-06-01  Akihiro Mizutani <mizutani@dml.com>
-
-       * bgp_debug.c: Change "show debug" to "show debugging".  Now "show
-       debugging" is not used in VIEW_NODE.
-
-2000-05-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_fsm.c (bgp_timer_set): Add check for shutdown flag.  This
-       fix unconditional BGP connection.
-
-       * bgpd.c (peer_shutdown): Replace peer_shutdown() with
-       peer_change_flag_with_reset().
-
-2000-05-26  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c (no_bgp_default_ipv4_unicast): Add "no bgp default
-       ipv4-unicast" command.
-
-       * bgpd.h (BGP_CONFIG_NO_DEFAULT_IPV4): Add new definition.
-
-       * bgp_filter.c (as_list_delete): Free all AS filter.
-
-       * bgp_clist.c (community_list_delete): Free all community entry.
-
-       * bgp_filter.c (no_ip_as_path_all): New DEFUN for "no ip as-path
-       access-list NAME".
-
-       * bgp_clist.c (no_ip_community_list_all): New DEFUN for "no ip
-       community-list NAME".
-
-2000-05-19  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (ipv6_mbgp_neighbor_routes): Change "show ip bgp PEER
-       routes" to "show ip bgp PEER received-routes"
-
-2000-05-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_ecommunity.c (ecommunity_parse): New file for Extended
-       Communities attribute.
-       * bgp_ecommunity.h: Likewise.
-
-2000-05-11  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_mplsvpn.h: New file for MPLS-VPN.
-       * bgp_mplsvpn.c: Likewise.
-
-       * bgpd.c (bgp_delete): Fix bug of "no router bgp" crush.
-
-2000-05-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c (bgp_bestpath_missing_as_worst): Add "bgp bestpath
-       missing-as-worst".
-
-2000-05-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_routemap.c (match_community): Clarify help of "match
-       community".
-
-2000-05-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_aspath.c (aspath_cmp_left): Remove debug code.
-
-2000-04-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_info_cmp): Compare MED only both routes comes
-       from same neighboring AS.
-
-       * bgp_aspath.c (aspath_cmp_left): Compare leftmost AS value.
-
-       * bgp_route.c (bgp_info_cmp): Fix misused htonl() to ntohl().
-
-2000-04-26  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_output_filter): When distribute-list's
-       corresponding access-list does not exist, filter all routes.
-       (bgp_input_filter): Likewise.
-
-2000-04-19  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_attr.c (bgp_packet_attribute): Propagate MED to IBGP peer.
-
-       * bgp_route.c (bgp_info_cmp): Add evaluation of local preference.
-
-2000-04-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c (bgp_distribute_update): Add struct access_list *
-       argument.
-
-2000-04-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_clist.c (community_list_dup_check): Add duplicate insertion
-       check.
-
-       * bgp_filter.c (as_list_dup_check): Add duplicate insertion check.
-
-       * bgp_route.c (bgp_show): Fix undeclared write variable.
-
-2000-04-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_routemap.c: Add "match ip address prefix-list".
-
-2000-03-29  Rick Payne <rickp@rossfell.co.uk>
-
-       * bgp_aspath.c (aspath_strip_confed): Fix realloc problem.
-
-2000-03-16  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_fsm.c (bgp_reconnect): Connect retry timer is expired when
-       the peer status is Connect.
-
-2000-03-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Fix bug of rewritten originator-id.
-
-2000-01-27  Rick Payne <rickp@rossfell.co.uk>
-
-       * bgp_aspath.c (aspath_delimiter_char): New function.  Instead of
-       directly referencing array, search proper AS path delimiter.
-       (aspath_strip_confed): Strip the confederation stuff from the
-       front of an AS path.
-       (aspath_add_left_confed): New function for adding specified AS to
-       the leftmost AS_CONFED_SEQUENCE.
-
-       * bgp_aspath.h: Change AS_CONFED_SEQUENCE and AS_CONFED_SET value
-       to Cisco compatible.
-
-       * bgpd.c (bgp_confederation_id_set): Confederation configuration.
-       (bgp_confederation_id_unset): Likewise.
-       (bgp_confederation_peers_check): Likewise.
-       (bgp_confederation_peers_add): Likewise.
-       (bgp_confederation_peers_remove): Likewise.
-       (bgp_confederation_peers_set): Likewise.
-       (bgp_confederation_peers_unset): Likewise.
-       (bgp_confederation_peers_print): Likewise.
-       
-2000-01-16  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c: Introduce peer_change_flag_with_reset() fucntion.
-
-2000-01-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_open.c (bgp_open_option_parse): When there is no common
-       capability send Unsupported Capability error to the peer.
-
-2000-01-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_open.c (bgp_capability_mp): Fix bug of mis-negotiation about
-       IPv6 unicast.
-
-       * bgpd.c (bgp_init): Add "soft-reconfiguration inbound" command.
-       
-2000-01-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c (neighbor_strict_capability): Add
-       "strict-capability-match" command.
-
-       * bgp_zebra.c (bgp_if_update): Ignore NET127 determining
-       router-id.
-
-       * bgpd.c (peer_override_capability): Add "override-capability"
-       command.
-
-1999-12-16  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_packet.c (bgp_write): Change status to Idle and set timer
-       after write failed.
-
-1999-12-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_zebra.c (bgp_zebra_announce): Add info->selected check.
-
-1999-12-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (nlri_unfeasible): nlri_unfeasible() is merged with
-       nlri_parse().
-
-1999-12-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_fsm.h (BGP_EVENT_DELETE): Macro added.
-
-       * bgp_fsm.c (bgp_stop): Clear all event threads of the peer when
-       the peer is cleared.
-
-       * bgp_zebra.c (bgp_nexthop_set): Clear interface index of
-       link-local address.  This is KAME specific problem.
-
-1999-12-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_attr.c (bgp_mp_reach_parse): Comment out previous code for a
-       while.  We don't completely detect the link is shared or not at
-       this moment.
-
-       * bgp_packet.c (bgp_notify_send): Make shortcut call of
-       bgp_write() and bgp_stop().
-
-       * bgp_attr.c (bgp_mp_reach_parse): Fix serious bug when getting
-       global and link-local address.
-
-1999-12-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c (no_neighbor_port): New command added.
-       (peer_new): Set send_community.
-
-1999-12-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c (show_ip_bgp_summary): Changed to use bgp_show_summary().
-       (show_ip_mbgp_summary): Likewise.
-       (show_ipv6_bgp_summary): Likewise.
-       (show_ipv6_mbgp_summary): Add new command.
-       (peer_free): Free peer->host.
-       (peer_lookup_by_su): Delete function.
-       (ipv6_bgp_neighbor): Changed to use peer_remote_as().
-       (sockunion_vty_out): Function deleted.
-       (vty_clear_bgp): Use afi instead of family.
-       Delete old list bgp_list.  Use struct newlist *bgplist.
-       (peer_lookup_by_host): Function deleted.
-
-1999-12-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.h (struct peer_group): New structure added.
-       (struct peer_conf): New structure added.
-       (struct peer): Change all prefix_count to unsigned long.
-       
-       * bgpd.c: Reconstruct all of VTY commands reflect internal
-       structure change.
-       Use bgplist instead of bgp_list.
-       Use peerlist intstead of peer_list.
-
-       * bgp_attr.c (bgp_mp_reach_parse): If nlri_parse return -1, stop
-       parsing then return immediately.
-
-       * bgp_route.c (nlri_parse): When NLRI parse error occured, return
-       -1.
-       (nlri_process): Use pcount_v4_{unicast,multicast}.
-       (nlri_delete): Likewise.
-
-1999-11-25  Robert Olsson <Robert.Olsson@data.slu.se>
-
-       * bgp_routemap.c (route_match_nlri): `match nlri
-       unicast|multicast' and `set nlri unicast|multicast' command are
-       added.
-
-1999-11-22  Robert Olsson <Robert.Olsson@data.slu.se>
-
-       * bgpd.c: Add translate-update support.
-
-       * bgpd.h (TRANSLATE_UPDATE_OFF): Add translate-update definition.
-
-1999-11-19  Robert.Olsson@data.slu.se
-
-       * bgp_route.c (bgp_peer_delete): Add MBGP peer clear codes.
-
-1999-11-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_open.c (bgp_capability_mp): Temporary comment out
-       SAFI_UNICAST_MULTICAST handling until we know the meanings.
-
-1999-11-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_btoa.c: New file added.
-
-1999-11-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.h (struct peer): Add dont_capability flag.
-       (struct peer): Add override_capability flag.
-
-       * bgpd.c (neighbor_dont_capability_negotiation): `neighbor PEER
-       dont-capability-negotiation' added.
-
-1999-11-12  Bill Sommerfeld <sommerfeld@orchard.arlington.ma.us>
-
-       * bgp_attr.c (bgp_mp_reach_parse): Ignore link-local addresses
-       attribute from non-shared-network peers.
-
-1999-11-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_snmp.c: New file added.
-
-       * BGP4-MIB.txt: Updated to the latest Internet-Draft
-       draft-ietf-idr-bgp4-mib-04.txt.
-
-1999-11-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_route_init): Add `show ipv6 bgp prefix-list'.
-
-       * bgp_attr.c (bgp_mp_unreach_parse): Enclose safi setup with
-       #ifdef HAVE_MBGPV4.
-
-1999-11-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_dump.c (no_dump_bgp_all): Add [PATH] and [INTERVAL] to no
-       dump bgp commands.
-       (config_write_bgp_dump): Write interval value to the
-       configuration.
-
-1999-11-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_zebra.c: Redistribute route-map support is added.
-
-       * bgp_zebra.h: New file added.
-
-1999-11-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_dump.c: BGP packet dump routine compatible with MRT.
-       * bgp_dump.h: BGP packet dump routine compatible with MRT.
-
-       * bgp_debug.c: Renamed from bgp_dump.c
-       * bgp_debug.h: Renamed from bgp_dump.h
-
-1999-10-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * BGP4-MIB.txt: New file added.  Edited version of RFC1657.
-
-1999-10-25  Bill Sommerfeld <sommerfeld@orchard.arlington.ma.us>
-
-       * bgp_route.c (bgp_announce): If we're not on a shared network
-       with the peer and we don't have a link-local next hop, but the
-       inbound next-hop has a link-local address, don't readvertise it to
-       our peer.
-
-1999-10-25  Marc Boucher <marc@mbsi.ca>
-
-       * bgp_zebra.c: Add redistribute kernel command.
-
-1999-10-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_reset): New function added.
-
-       * bgpd.conf.sample2: Add IPv6 configuration sample.
-
-1999-10-24  Bill Sommerfeld <sommerfeld@orchard.arlington.ma.us>
-
-       * bgp_route.c (ipv6_aggregate_address): Function added.
-
-1999-10-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_packet.c (bgp_update): Unintern aspath, community, cluster
-       list after parsing BGP update packet.
-
-       * bgp_attr.c (bgp_attr_aspath): Intern parsed aspath.
-       (bgp_attr_community): Intern parsed community.
-       (bgp_attr_cluster_list): Intern parsed cluster list.
-
-       * bgp_routemap.c: Add `set community-additive' command.
-
-1999-10-21  Alexandr D. Kanevskiy <kad@blackcatlinux.com>
-
-       * bgp_routemap.c (route_set_local_pref): Fix bug of setting
-       attribute flag.
-
-1999-10-21  Bill Sommerfeld <sommerfeld@orchard.arlington.ma.us>
-
-       * bgp_route.c (bgp_announce): Add check of IPv6 default route
-       announcement.
-
-       * bgp_packet.c (bgp_update_send): Add BGP announcement logging.
-
-1999-10-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * `show ip[v6] bgp PREFIX' show uptime of the route.
-
-1999-10-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c (bgp_filter_set): Delete PEER_FAMILY_{IPV4,IPV6}. instead
-       of that use AF_INET and AF_INET6 directly.
-       (vty_clear_bgp): Add new function to support various clear ip bgp
-       method.
-
-1999-10-04  Lars Fenneberg <lf@elemental.net>
-
-       * bgpd.c (clear_ip_bgp): Add `clear ip bgp ASN'.
-
-1999-10-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_routemap.c: Add `match ip prefix-list' and `match ipv6
-       prefix-list'.
-
-1999-09-28  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c (bgp_collision_detect): Add BGP collision detection
-       function.
-
-1999-09-26  Blake Meike <bmeike@adero.com>
-
-       * bgpd.c (neighbor_port): New command `neighbor PEER port PORT' is
-       added.
-
-1999-08-24  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c (no_neighbor_timers_keepalive): Change MIN to min.  Add
-       min() macro.
-
-1999-08-19  Rick Payne <rickp@rossfell.co.uk>
-
-       * bgp_packet.c (bgp_open): BGP holdtimer bug is fixed.  Make BGP
-       keepalive timer configurable.
-
-1999-08-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_zebra.c (bgp_redistribute_set): Fix redistribute bug.
-
-1999-08-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c (bgp_peer_display): show ip bgp neighbors PEER only list
-       the peer not all of them.
-
-1999-08-11  Rick Payne <rickp@rossfell.co.uk>
-
-       * bgp_route.c (bgp_announce): Remove MED if its an EBGP peer -
-       will get overwritten by route-maps.
-
-1999-08-08  Rick Payne <rickp@rossfell.co.uk>
-
-       * bgp_routemap.c: Multi protocol route-map modification.
-
-1999-08-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c: Set network statement route's origin attribute as
-       igp.
-
-       * bgp_zebra.c: Set redistribute route's origin attribute as
-       incomplete.
-
-       * bgp_route.c (bgp_info_cmp): Add attribute existance check,
-       origin attribute check, BGP peer type check.
-
-1999-07-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_peer_delete): Reselect of IPv6 route.
-
-1999-07-29  Rick Payne <rickp@rossfell.co.uk>
-
-       * Changed route-maps to behave in a more cisco-like fashion
-
-1999-07-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_fsm.c (bgp_stop): Very serious bug of bgp_stop () is fixed.
-       When multiple route to the same destination exist, bgpd try to
-       announce the information to stopped peer.  Then add orphan write
-       thread is added.  This cause many strange behavior of bgpd.
-       Reported by Georg Hitsch <georg@atnet.at>.
-
-1999-07-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c: Change peer's A.B.C.D to PEER.
-
-1999-07-22  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_announce): Add hack for link-local nexthop.
-
-       * bgp_zebra.c (bgp_zebra_announce): Fill in nexthop address from
-       local address.
-
-1999-07-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_packet.c (bgp_open): Holdtime fetch bug is fixed.  Reported
-       by Yuji SEKIYA <sekiya@sfc.wide.ad.jp>.
-
-1999-07-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_fsm.c (fsm_holdtime): Don't close file descriptor in
-       fsm_holdtime ().
-
-1999-07-11  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_routemap.c: Add `set atomic-aggregate' command.
-
-1999-07-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_routemap.c (route_set_ip_nexthop_cmd): Change "ip nexthop"
-       to "ip next-hop".
-       
-1999-07-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (show_ipv6_bgp_regexp): `show ipv6 bgp regexp'
-       added.
-
-1999-07-01  Rick Payne <rickp@rossfell.co.uk>
-
-       * bgp_zebra.c (zebra_init): Install standard commands to
-       ZEBRA_NODE.
-
-1999-06-28  Rick Payne <rickp@rossfell.co.uk>
-
-       * bgpd.c (bgp_delete): bgp peer deletion bug is fixed.
-
-1999-06-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c: Add neighbor update-source command as ALIAS to
-       neighbor_interface.
-
-1999-06-19  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_attr.c (bgp_packet_attribute): Send community attribute when
-       send_community flag is set.
-
-       * bgpd.h (struct peer): Add send_community flag.
-
-1999-06-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c (router_bgp): router bgp's argument changed from AS_NO to
-       <1-65535>.
-
-1999-06-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.h (struct bgp_info): Add subtype for BGP route type.
-
-1999-06-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_community.c (community_merge): Function added.
-
-1999-06-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_clist.c: New file.
-       * bgp_clist.h: New file.
-
-       * bgp_community.h (COMMUNITY_LOCAL_AS): Added for Cisco
-       compatibility.
-       (COMMUNITY_NO_ADVERTISE): Fix typo.
-
-1999-05-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_routemap.c: Add `set weight WEIGHT' command.
-
-       * bgpd.c: Remove all_digit_check function.  Instead of that use
-       all_digit function in lib/prefix.c.
-
-       * bgp_routemap.c (bgp_route_map_init): Install
-       no_set_ipv6_nexthop_global_cmd and no_set_ipv6_nexthop_local_cmd
-       element to the RMAP_NODE.
-
-1999-05-28  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_aspath.c (aspath_make_str): Declare aspath_delimiter_char
-       inside aspath_make_str function.
-       (aspath_prepend): New function is added for AS path prepend.
-       (aspath_make_str_count): Renamed from aspath_make_str.  AS path
-       count is set to the structure.
-       (aspath_merge): New function.
-
-1999-05-22  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_zebra.c (redistribute_bgp): Add new DEFUN.
-       (no_redistribute_bgp): Likewise.
-       (router_zebra): Semantics changed.  Now 'router zebra' is default
-       behavior of bgpd.
-
-1999-05-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_routemap.c: Add some commands to bgp route-map.
-       match ip next-hop: New command.
-       match metric: New command.
-       set metric: Doc fix.
-       set local-preference: Add DEFUN.
-
-1999-05-14  Stephen R. van den Berg <srb@cuci.nl>
-
-       * bgp_main.c (signal_init): SIGTERM call sigint.
-       (sigint): Loggging more better message.
-
-1999-05-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_attr.c (bgp_packet_attribute): AS path attribute extended
-       length bit check is added.
-
-1999-05-11  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_routemap.c (bgp_route_map_init): Call route_map_install_set
-       function with route_set_local_pref_cmd argument.
-       (no_match_aspath): Function added.
-       (route_set_metric): Set attribute flag bit.
-
-       * bgp_attr.c (bgp_packet_attribute): MULTI_EXIT_DISC is now in BGP
-       packet.
-
-1999-05-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c (no_neighbor_timers_holdtime): `no neighbor PEER timers
-       holdtime' command is added.
-
-       * bgpd.h (BGP_DEFAULT_HOLDTIME_BIG): Delete define.
-
-       * bgpd.c (bgp_prefix_list_set): New function added.
-       (bgp_prefix_list_unset): Likewise.
-       (bgp_prefix_list_update): Likewise.
-       (show_ip_bgp_neighbors): prefix-list information display.
-
-1999-05-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c (bgp_delete): Function added for `no router bgp'.
-
-1999-05-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_dump.c (bgp_dump_attr): Add originator_id display.
-
-       * bgpd.c (bgp_router_id): Even when address is malformed set the
-       value to configuration bug fixed.
-       (no_bgp_router_id): New function.
-       (no_bgp_cluster_id): New function.
-
-1999-05-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.h (BGP_ATTR_ORIGINATOR_ID): Changed from BGP_ATTR_ORIGINATOR.
-
-1999-05-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (bgp_announce): Add route reflector check.
-
-1999-05-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c (bgp_cluster_id): Add function for route reflector.
-       (neighbor_route_reflector_client): Likewise.
-       (no_neighbor_route_reflector_client): Likewise.
-
-       * bgpd.h (struct bgp ): Add cluster for route reflector.
-
-       * bgp_route.c (show_ip_bgp_prefix_list): New command is added.
-
-1999-04-24  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Makefile.am (noinst_HEADERS): Add bgp_filter.h
-
-       * bgp_aspath.c (aspath_undup): Function deleted.  aspath_free ()
-       has same functionality.
-
-       * bgp_filter.h: New file.
-
-       * bgp_aspath.c (aspath_unintern): Rename aspath_free () to
-       aspath_unintern ()
-       (aspath_free): New function.
-
-1999-04-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_aspath.c (aspath_aggregate): Function added.
-
-       * bgp_aspath.h (aspath_aggregate): Prototype added.
-
-       * bgp_aspath.c (aspath_empty_aspath): New argument
-       gated_dont_eat_flag is added.
-
-1999-04-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c: Add bgp_aggregate_ipv4 and bgp_aggregate_ipv6.
-
-1999-04-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c (aggregate_address): Function added.
-
-       * bgp_zebra.c (zebra_read): Change log to zlog.
-
-1999-04-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Makefile.am (noninst_HEADERS): Added for make dist.
-
-1999-04-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * aspath_regex.c: Removed from distribution.
-
-1999-04-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_attr.c (bgp_packet_attribute): Old draft-00 packet treatment
-       bug fixed.
-
-1999-04-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_aspath.c (aspath_add_left): Fix empty aspath bug.  Reported
-       by kad@gibson.skif.net.
-
-       * bgp_regex.[ch]: New file added.
-
-       
-1999-04-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_filter.c: New file added.
-
-1999-04-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_aspath.c (aspath_empty_aspath): Change for peering with
-       gated.
-
-1999-03-24  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_main.c (main): Default loggin method changed from syslog to
-       stdout.
-
-1999-03-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c: Delete obsolete default attribute DEFUN.
-
-1999-03-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_attr.c: Make attribute structure put into attribute hash.
-
-1999-03-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_view.c : Delete file.
-
-1999-02-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_routemap.c (bgp_apply_route_map): Add prefix argument. 
-
-       * bgp_route.h (struct bgp_info): Add bgp_info structre.  I'll
-       replace bgp_route with this.
-
-       * bgp_routemap.c (route_match_ip_address): Fix bug of passing non
-       prefix value to access_list_apply(). 
-
-       * bgpd.conf.sample: Add route-map sample.
-       Delete obsolete default-attr statements.
-
-       * bgp_packet.c: Use stream_fifo for packet queueing.
-
-1999-02-24  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_aspath.c (aspath_add_left): add non empty aspath treatment.
-
-       * bgp_main.c: include unistd.h for daemon().
-
-       * bgp_route.c (nlri_process): add IPv6 table lookup.
-
-       * bgp_attr.c (route_parse_ipv6): call nlri_process().
-       (attr_make): Obsolete function attr_make deleted.
-
-1999-02-22  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_aspath.c (aspath_add_left): change function name from
-       aspath_add_leftmost_as().
-
-1999-02-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_aspath.c: add aspath_add_leftmost_as ().
-
-1999-02-18  Peter Galbavy  <Peter.Galbavy@knowledge.com>
-
-       * syslog support added
-
-1999-01-26  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c: DEFUN (neighbor_nexthop): deleted.
-       DEFUN (neighbor_distribute_list): added.
-
-1999-01-19  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.h (struct peer ): header_buf and read_buf is removed.
-
-       * bgp_peer.[ch]: Deleted.  Peer related functions are merged to
-       bgpd.c
-
-       * bgp_network.c: New file.
-       * bgp_network.h: New file.
-
-       * bgp_packet.h: New file.
-       
-1999-01-11  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_packet.c (bgp_keepalive_send): Now BGP keepalive packet is
-       buffered.
-
-1999-01-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_packet.c: New file.
-
-1998-12-22  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_zebra.c (zebra_client): Use zebra_connect() in lib/client.c. 
-
-       * `show ip bgp' bug fixed.
-       * aspath_log (): Remove argument logfp.
-
-1998-12-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_fsm.h: New file.
-
-1998-12-15  Magnus Ahltorp <map@stacken.kth.se>
-
-       * bgp_attr.c, bgp_community.h, bgp_dump.c, bgp_fsm.c, bgp_open.c
-       bgp_peer.c, bgp_peer.h, bgp_route.c, bgp_route.h, bgp_view.c
-       bgpd.c, bgpd.h, bgp_attr.c, bgp_community.h, bgp_dump.c,
-       bgp_fsm.c, bgp_open.c, bgp_peer.c, bgp_peer.h: Prototype fixes.
-
-1998-12-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c (bgp_config_write): Delete vector v argument.
-
-1998-12-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.h: Delete annoying ld_[124]byte and st_[124]byte macros.
-
-1998-11-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_radix.[ch]: removed.
-
-1998-09-15  HEO SeonMeyong  <seirios@matrix.iri.co.jp>
-
-       * bgp_main.c: ifdef HYDRANGEA -> ifdef KAME
-
-1998-08-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_dump.c: delete nroute().
-
-1998-05-19  Yamshita TAKAO  <jargon@lares.dti.ne.jp>
-
-       * bgp_aspath.c: HAVE_CONFIG_H typo :-)
-       * bgpd.h: Modify for compile on Solaris.
-       * bgp_aspath.h: likewize
-       * bgp_community.h: likewize
-       * bgp_routemap.c: likewize
-
-1998-05-18  Yamshita TAKAO  <jargon@lares.dti.ne.jp>
-
-       * bgpd.h: Modify for compile on Solaris.
-       * bgp_aspath.h: likewize
-
-1998-05-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * routemap.[ch]: move to ../lib directory.
-
-1998-05-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * routemap.c (route_map_apply): add function.
-
-1998-05-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * routemap.h: add file.
-
-       * bgp_peer.h (enum ): change PEER_{IBGP,EBGP} to BGP_PEER_{IBGP,EBGP}
-
-1998-05-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Makefile.am: sysconfdir_DATA added.
-
-1998-05-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_dump.c: add `debug bgp fsm'
-                     add `no debug bgp fsm'
-                     add `show debug bgp'
-       * bgp_open.c: File added.
-
-1998-05-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * .cvsignore: File added.
-
-1998-04-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_community.[ch]: File added.
-
-1998-03-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd now use lib/thread.[ch].
-
-1998-01-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.c (show_ip_bgp_neighbors): add 'show ip bgp neighbors' command.
-
-       * bgpd.h (BGP_DEFAULT_START_TIMER): change from 1 to 30.
-
-1997-12-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_vty.c: bgp_vty.c deleted.
-
-       * bgpd.c (config_write_neighbor): add ebgp-multihop command.
-
-1997-12-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_fsm.c: [-p bgp_port] and [-P vty_port] works
-
-1997-12-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_vty.c: new file.
-
-       * bgp_attr.c: add new logging system.
-
-1997-11-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Change all inet_addr call into inet_aton.
-
-1997-11-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_radix.c: change radix_peer_delete
-
-1997-10-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_aspath.c: move AS_TOKEN_??? definition from header to c source.
-
-1997-09-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_dump.c (bgp_log_route): add dump_attr function
-
-1997-09-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_aspath.c (aspath_test): change AS_SET brace from '[' to '{'
-       * bgp_dump.c (bgp_log_route): change logfile format.
-
-1997-08-19  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_open.c (bgp_open): move bgp_open function from bgpd.c
-       * bgp_attr.c (community_str2com): add community value generation
-       * bgp_attr.h: add SAFI definition for BGP-4+
-
-1997-08-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgpd.h: add BGP_OPEN_OPT_CAP for Capabilities Optional Parameter
-       * Makefile.in: add bgp_open.o, delete bgp_loop.o
-       * bgp_open.c: newfile which manages BGP Open message
-       * bgp_loop.c: this file is merged with bgp_fsm.c
-       * bgp_radix.c (radix_add): radix_add() now return route_t instead
-       of int
-       (bgp_sim): now we can read update & withdraw from file
-       * bgp_route.c: add route_free() call into route_parse etc.
-
-1997-08-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_radix.c: Radix code is completely rewritten. It has better
-       memory treatment than old one.
-
-1997-08-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_route.c: route_alloc for route struct allocation statistics.
-       * bgpd.c (bgp_make_update): now we cann announce MED attribute.
-       * bgp_aspath.c (aspath_print_all): change aspath_print_all output
-       format.
-
-1997-08-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_term.c (term_parse): add command : show asstat, show ashash
-       * bgp_aspath.c: aspath_cmp bug fix
-       (aspath_print_all): add aspath_print_all ();
-       * bgp_peer.h: delete rlist element from struct peer.
-
-1997-08-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_aspath.c: completely rewritten.
-       * bgp_aspath.h: completely rewritten.
-       add AsPath, AsSegment structure
-       add AS_SET treatment
-       change Hash codes
-
-1997-08-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_attr.h: add Attribute flags defines
-       * bgp_route.c: delete rlist related functions
-       * bgp_aspath.c (as_origin): add as_origin function
-       (aspath_print): move from bgp_dump.c and add support of AS_SET
-       change Hash related function names.
-
-1997-08-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_aspath.h: add next entry, delete rlist entry from struct aspath
-
-1997-08-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * bgp_aspath.c (as_sort): add function as_sort
-       * bgp_aspath.h: add IBGP, EBGP
-
diff --git a/doc/ChangeLog b/doc/ChangeLog
deleted file mode 100644 (file)
index 5fcb195..0000000
+++ /dev/null
@@ -1,510 +0,0 @@
-2007-07-31 Paul Jakma <paul.jakma@sun.com>
-
-       * bgpd.texi: Document 'network ... pathlimit <ttl>'
-
-2007-05-01 David L Stevens <dlstevens@us.ibm.com>
-
-       * main.texi: added route-map, prefix-list, ip protocol
-         and set src documentation
-
-2007-04-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospfd.texi: Add a paragraph to the description of the OSPFv2
-         network command to explain how we handle interfaces with
-         peer addresses.
-
-2007-04-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * basic.texi: Document the new 'log timestamp precision' command.
-
-2007-03-21 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * Makefile.am: Patch rule for draft-zebra-00.txt to work
-         in VPATH build environments.
-
-2006-07-28 Paul Jakma <paul.jakma@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.
-
-2006-07-27 Paul Jakma <paul.jakma@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.
-
-2006-07-27 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * vtysh.1: Document new options -d and -E, and note that now multiple
-         -c options may be supplied, with embedded linefeed now supported.
-         In BUGS section, remove warning about vtysh causing a daemon
-         to freeze, since this has been fixed.
-
-2006-07-04 Paul Jakma <paul.jakma@sun.com>
-
-       * quagga.info: remove auto-generated file. It will still be
-         present in dist tarballs, so shouldn't affect anyone but
-         direct users of CVS. Required texinfo version should be
-         widely available.
-
-2006-06-28 Erik Muller <erikm@internap.com>
-
-       * ospfd.texi: Document new ospf router subcommand
-         "log-adjacency-changes [detail]".
-
-2006-06-26 Paul Jakma <paul.jakma@sun.com>
-
-       * ospfd.texi: Document that MD5 keyid is part of the protocol.
-       * bgpd.texi: shut texinfo warnings up by replacing brackets in
-         variable with angle brackets.
-
-2006-05-23 Paul Jakma <paul.jakma@sun.com>
-
-       * bgpd.texi: Document the update-source command.
-
-2006-05-10 Paul Jakma <paul.jakma@sun.com>
-
-       * quagga.info: update auto-built file.
-
-2006-05-08 Paul Jakma <paul.jakma@sun.com>
-
-       * main.texi: --log_mode does not exist, remove, bug #245.
-
-2006-05-04 Paul Jakma <paul.jakma@sun.com>
-
-       * ripd.texi: Add Version Control as a distinct section.
-         Expand Version Control section with overview text,
-         touching on insecurity of RIPv1 and referencing
-         authentication section, cleanup text of various version
-         commands.
-         RIP Authentication: Add overview text, refer to RIPv1 version
-         control, which is required to completely secure RIP.
-
-2006-03-31 Paul Jakma <paul.jakma@sun.com>
-
-       * fig*.txt: New files, txt versions of the diagrammes for the
-         info file.
-       * protocol.texi: Document the new version 1 header.
-       * routeserver.texi: Explicitly specify scaling widths for the
-         figures, only way to make them look reasonable, sadly.
-         Try fix some formatting and explicitely note lists as being
-         bulleted.
-       * Makefile.am: convert seems to do png to pdf just fine. No
-         need for intermediate eps.
-         Add txt figure expansions and list as dependencies and
-         EXTRA_DIST files.
-
-2006-02-19 Paul Jakma <paul.jakma@sun.com>
-
-       * quagga.info: update auto-built file.
-       * ChangeLog: Fix old, existing entry for snmptrap.texi addition to
-         credit the author, who got in touch with me.
-       * snmptrap.texi: Add comment line with author's details.
-
-2006-01-19 Paul Jakma <paul.jakma@sun.com>
-
-       * quagga.info: update auto-built file.
-
-2005-11-25 Paul Jakma <paul.jakma@sun.com>
-
-       * texinfo.tex: update to newer version, seems to now properly
-         scale the diagramme images in PDF output.
-
-2005-11-11 Paul Jakma <paul.jakma@sun.com>
-
-       * quagga.info: update auto-built file. Methinks it's time to
-         remove from CVS..
-
-2005-11-07 Paul Jakma <paul.jakma@sun.com>
-
-       * Makefile.am: snmptrap.texi needs to be listed as a source,
-         not disted otherwise.
-
-2005-11-04 Jeroen Simonetti <jsimonetti@denit.net>
-
-       * snmptrap.texi: Documentation on configuring SNMP for logging
-         traps.
-
-2005-11-04 Paul Jakma <paul.jakma@sun.com>
-
-       * snmp.texi: Minor formatting changes.
-       * quagga.info: Update auto-built file
-       * ospf6d.texi: Add example config
-       * bgpd.tex: Add example configs. Couple of cleanups of format
-         and macros.
-       * routemap.texi: Add an explanation of how route-maps work.
-         Document the call and exit-policy commands.
-
-2005-10-29 Paul Jakma <paul@dishone.st>
-
-       * ospfd.texi: Document the new spf and max-metric commands, and
-         the additional form of dead-interval. Add documentation for
-         various other commands. Cleanup misc stuff, citations, etc.
-         Add some example configurations.
-       * overview.texi: RFC3137 support added.
-       * Makefile.am: Make quagga.pdf depend on the _TEXINFOS
-         variable, this still doesn't fix the dependency though,
-         sadly.
-
-2005-10-11 Paul Jakma <paul@dishone.st>
-
-       * quagga.texi: Rejiggle the copyright sections a bit, seems to
-         make makeinfo happier and generates info pages again on FC4.
-       * quagga.info: Update this auto-built file.
-       
-2005-04-29 Paul Jakma <paul@dishone.st>
-
-       * defines.texi.in: Add PACKAGE_NAME, PACKAGE_STRING.
-       * quagga.texi: Use PACKAGE_NAME, this is more to give me an excuse
-         to update quagga.texi so that the 'UPDATED' in version.texi will
-         be more recent, the Makefile seems to be dumb and not examine
-         the texi files from which quagga.texi is generated.
-       * quagga.info: Fresh copy to match updates.
-
-2005-04-28 Paul Jakma <paul@dishone.st>
-
-       * quagga.info: updated
-       * Makefile.am: automake seems to depend doc built stuff on srcdir
-         for some reason, or maybe its cause we have quagga.info,
-         quagga.texi in CVS - not sure. Anyway, the static rule for
-         quagga.pdf should depend on the srcdir quagga.texi in that case.
-
-2005-04-22 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * bgpd.8,isisd.8,ospf6d.8,ospfd.8,ripd.8,ripngd.8,zebra.8: Fix
-         spelling mistake: idenifier -> identifier.
-
-2005-04-22 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * bgpd.8,isisd.8,ospf6d.8,ospfd.8,ripd.8,ripngd.8,zebra.8: Fix
-         spelling mistake: intrefaces -> interfaces.
-
-2005-04-10 Paul Jakma <paul@dishone.st>
-
-       * quagga.info: Update to match bgpd.texi addition
-
-2005-04-08 Hasso Tepper <hasso at quagga.net>
-
-       * bgpd.texi: Document new "bgp bestpath as-path confed" command.
-
-2005-04-05 Paul Jakma <paul@dishone.st>
-
-       * Makefile.am: Get rid of built_sources. It causes them to be added
-         to dist, and the dist host can not generate the PDFs.
-
-2005-04-02 Paul Jakma <paul@dishone.st>
-
-       * fig{-{normal,rs}-processing,_topologies_{rs,full}}.dia: new
-          files, dia diagramme XML versions of the original corresponding
-          EPS encapsulated bitmaps.
-       * fig{-{normal,rs}-processing,_topologies_{rs,full}}.png: new
-         files, png exports by dia of the source dia diagrammes above.
-       * fig{-{normal,rs}-processing,_topologies_{rs,full}}.eps: removed,
-         replaced by above dia source.
-       * routeserver.texi: remove extension in image macros.
-       * quagga.info: updated build
-       * Makefile.am: Add rules to build eps (using 'convert'), png (using
-         dia). Add figures_BUILT_SOURCES to extra_dist to avoid the 
-         dependency on dia :) (amongst other things) for dist users.
-         quagga_TEXINFOS should depend on figures_BUILT_SOURCES.
-       * .cvsignore: ignore eps files, built from sources
-       * Makefile.am: Urg, dont use automake _SOURCES, _BUILT_SOURCES
-         for figures, automake doesnt know anything about them.
-         
-2005-03-25 Jean-Mickael Guerin <jean-mickael.guerin@6wind.com>
-       * ipv6.texi: Add new commands for neighbor discovery
-           interface ipv6 nd prefix X:X::X:X/M router-address
-           interface ipv6 nd ra-interval msec
-           interface ipv6 nd home-agent-config-flag
-           interface ipv6 nd home-agent-lifetime
-           interface ipv6 nd home-agent-preference
-           interface ipv6 nd adv-interval-option
-
-2005-02-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * basic.texi: Add note about last-resort crash logging to /var/tmp
-         when file logging is not configured.
-       * quagga.info: updated build of autogenerated file
-
-2005-01-24 Paul Jakma <paul@dishone.st>
-
-       * quagga.info: Version bump (autogenerated)
-
-2005-01-10 Paul Jakma <paul@dishone.st>
-
-       * texinfo.tex: Updated to a version which understands @{ and @}
-       * vtysh.texi: Add node name for @section
-       * quagga.info: updated build of autogenerated file
-
-2005-01-07 Paul Jakma <paul@dishone.st>
-
-       * quagga.info: Version bump (autogenerated)
-
-2005-01-05 Paul Jakma <paul@dishone.st>
-
-       * quagga.info: Version bump
-
-2004-12-23 Paul Jakma <paul@dishone.st>
-
-       * quagga.info: Version bump
-
-2004-12-18 Hasso Tepper <hasso at quagga.net>
-
-       * Makefile.am: Add isisd man page to the list. Should fix problem
-         isisd not included in release/snapshot tarballs.
-
-2004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * basic.texi: Document new logging features.  Separate basic config
-         commands from basic VTY commands.
-
-2004-11-25 Hasso Tepper <hasso at quagga.net>
-
-       * *.8: Document -g/--group command line switch and some small
-         cosmetical changes.
-
-2004-11-22 Paul Jakma <paul@dishone.st>
-
-       * bgpd.8: escape -/+ signs, reported by ESR to bug-zebra.
-
-2004-11-19 Hasso Tepper <hasso at quagga.net>
-
-       * Makefile.am: Don't remove quagga.info while cleaning up.
-
-2004-11-15 Paul Jakma <paul@dishone.st>
-
-       * routeserver.texi: Strip ctrl-M from line endings, note by
-         sigma@smx.pair.com
-       * quagga.info: Add generated file to CVS, as it requires most recent
-          texinfo to build, until such time as texinfo 4.7 is more
-          prevalent.
-
-2004-11-08 Paul Jakma <paul@dishone.st>
-
-       * Makefile.am: Add routeserver.texi to quagga_TEXINFOS.
-         Add quagga.info to clean files list (would have thought automake
-          would have done this, but it doesnt seem to)
-
-2004-11-07 Paul Jakma <paul@dishone.st>
-
-       * quagga.texi: include routeserver.texi. TODO: integrate the current
-          multiple-instance orientated bgpd route-server section with the
-          new route-server docs.
-
-2004-11-07 Paul Jakma <paul@dishone.st>
-
-       * Makefile.am: Add automatic rule to build pdf's from eps figures.
-         Clean *.pdf. Add rule for quagga.pdf (as the eps.pdf pattern
-          probably otherwise will override automake's rule for quagga.pdf)
-       * overview.texi: URL was causing TeX overfull, put on newline.
-       * quagga.texi: Put the copyright notice into @copying section, as
-         is proper. Strip trailling space from the main menu lines.
-       * rip(ng)?d.texi: Minor reformatting.
-       * Add the route server docs.
-       * bgpd.texi: remove unneeded page breaks. The 6Bone example
-          overflows though.
-       * routeserver.texi: new file, texinfo'fied and slightly modified 
-          version of the original TeX from James Luis Rubio.
-       * fig-*.eps: new files, diagrammes.
-        
-2004-11-06 Paul Jakma <paul@dishone.st>
-
-       * defines.texi.in: New file, texi variables should be set here,
-          autoconf substitution is available. Define common AUTHORS,
-          COPYRIGHT_YEAR and COPYRIGHT_STR vars.
-       * (global): Make use of makeinfo node pointer auto-creation
-          to avoid having to fully specify links for nodes, so we only have
-          to specify current node name - simplifies text slightly.
-          Remove extraneous newlines which appear to cause extra blank pages
-          to be added in output.
-          Update copyright strings which appear in various places to
-          use the new COPYRIGHT_STR texinfo variable.
-         Change url to uref, the former need not output an actual
-         hyperlink depending on version of texinfo, the latter should if
-         supported by the format (eg PDF).
-       * texinfo.tex: Update to a more recent version. previous file
-         was many many years old. This file should possibly be removed
-          altogether, and allowed to be installed by automake.
-        * quagga.texi: Make use of automake's version.texi feature to
-          have VERSION and some other vars auto-defined. include
-          defines.texi. Change copyright strings to use the COPYRIGHT_STR
-          variable.
-       * install.texi: Make the privs section an actual section. Ditto for
-         the Linux notes.
-       * overview.texi: Supply URL for Quagga, where format allows. Tidy up
-          one or two paragraphs slightly.
-         Update the section on supported platforms.
-         Remove the ZNOG list stuff, direct reader to the website for
-          further information on email lists.
-       * vtysh.texi: Update the integrated config file section. Make the
-         commands sections so correct PDF indexes are built.
-
-2004-10-12 Hasso Tepper <hasso at quagga.net>
-
-       * snmp.texi: ospf6d supports SNMP as well now.
-
-2004-10-11 Hasso Tepper <hasso at quagga.net>
-
-       * ospfd.8: Update manpage: add info about new -a/--apiserver command
-         line switch.
-
-2004-10-11 Paul Jakma <paul@dishone.st>
-
-       * ospfd.texi: reformat the ospf md5 paragraph, add an additional
-         way to work around bad clocks.
-
-2004-10-03 Hasso Tepper <hasso at quagga.net>
-
-       * vtysh.1: Update vtysh man page to reflect changes in shell. Remove
-         info about -f command line switch.
-
-2004-09-11 Paul Jakma <paul@dishone.st>
-
-       * quagga.texi: Update copyright. Contents should be at beginning
-         of docs...
-
-2004-09-11 Paul Jakma <paul@dishone.st>
-
-       * ospfd.texi: OSPF MD5 auth requires stable time.
-
-2004-08-31 Hasso Tepper <hasso at quagga.net>
-
-       * zebra.8: Document -s/--nl-bufsize command line switch.
-
-2004-08-27 Hasso Tepper <hasso at quagga.net>
-
-       * Update vtysh man page to reflect changes in shell.
-
-2004-08-10 Hasso Tepper <hasso at quagga.net>
-
-       * Updated man pages.
-       * Removed vty commands section from all man pages. This inf belongs to
-         Info pages.
-       * Added isisd man page.
-
-2004-07-31 Christian Hammers <ch@lathspell.de>
-
-       * snmp.texi: update (completely rewritten almost)
-       
-2004-06-30  Greg Troxel  <gdt@poblano.ir.bbn.com>
-
-       * Makefile.am (EXTRA_DIST): Add files in mpls explicitly, to avoid
-       copying CVS files, per the automake manual's recommendations.
-
-2004-05-27 Paul Jakma <paul@dishone.st>
-
-       * Correct RIP port, s/521/520/, reported by xantius@xantius.com
-       
-2003-11-27  Hasso Tepper <hasso@estpak.ee>
-
-       * Added -A and -u descriptions to the man pages.
-
-2003-01-22  Christian Hammers <ch@westend.com>
-
-       * ospfd.texi (OSPF router, OSPF router): Add description.
-
-2002-07-07  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.93 released.
-
-2001-02-07  Pekka Savola <pekkas@netcore.fi>
-
-       * Correct bad English ;-).
-
-2001-02-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.91 released.
-
-2001-01-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.90 released.
-
-2000-10-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.89 released.
-
-2000-10-02  Horms <horms@vergenet.net>
-
-       * Makefile.am: Fix texinfo file installation problem.
-
-2000-08-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.88 released.
-
-       * ospfd.texi (Redistribute routes to OSPF): distance <1-255>
-       @var{source} command is temporary disabled.  So it is removed from
-       document.
-
-2000-07-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vtysh.1: Add man entry for vtysh.
-
-       * bgpd.1: Change section to 8.
-       * ospfd.1: Likewise.
-       * ospf6d.1: Likewise.
-       * ripd.1: Likewise.
-       * ripngd.1: Likewise.
-       * zebra.1: Likewise.
-
-1999-09-01  "A.Waddington" <waddington@usa.net>
-
-       * zebra.texi: Replace @command with @code until it gets ready.
-       Remove @macro.
-
-1999-08-26  Andrew Waddington <waddington@usa.net>
-
-       * bgpd.1: Add man page.
-       ospf6d.1: Likewise.
-       ospfd.1: Likewise.
-       ripd.1: Likewise.
-       ripngd.1: Likewise.
-       zebra.1: Likewise.
-
-1999-08-14  Andrew Waddington <waddington@usa.net>
-
-       * zebra.texi: Many typo is fixed.  Some grammatical rectifications
-       is made.
-
-1999-07-27  Gerhard Poul <gpoul@gnu.org>
-
-       * zebra.texi: Update zebra.texi.
-
-1999-07-02  Gerhard Poul <gpoul@gnu.org>
-
-       * draft-zebra-00.ms: New file added.  This is groff version of
-       draft-zebra-00.txt.  This is a master file of draft-zebra-00.txt.
-
-       * draft-zebra-00.txt: Generated from draft-zebra-00.txt.
-
-1999-05-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra.texi (Top): Add ospf6d chapter.
-
-1999-03-31  Jeroen Ruigrok/Asmodai <asmodai@wxs.nl>
-
-       * zebra.texi: Improve some sections.
-
-1999-03-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * archfig.tex, zebra.sty, zebra.tex: Temporary removed due to the
-       description is out of date.
-
-1999-02-24  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * texinfo.tex: New file added.  Automake complains the absence of
-       texinfo.tex.
diff --git a/guile/ChangeLog b/guile/ChangeLog
deleted file mode 100644 (file)
index 751e952..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-2000-10-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.89 is released.
-
-2000-08-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.88 is released.
-
-1999-04-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * guile-bgp.c (scm_router_bgp): Allocate real struct bgp object.
-
-       * Makefile.am: Delete -DPACKAGE and -DVERSION.
-
-       * zebra-guile.h: File added.
-       * zebra-support.c: File added.
-       * guile-bgp.c: File added.
-
-1999-04-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * guile/Makefile.am (INCLUDES): Use @GUILE_CFLAGS@ and
-       @GUILE_LDFLAGS@
-
-1999-04-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-guile work restarted.
diff --git a/isisd/ChangeLog b/isisd/ChangeLog
deleted file mode 100644 (file)
index bb77ffe..0000000
+++ /dev/null
@@ -1,600 +0,0 @@
-2008-01-29 James Carlson <james.d.carlson@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.
-
-2007-07-18 James Carlson <james.d.carlson@sun.com>
-
-       * 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.
-
-2006-12-08 Hannes Gredler <hannes@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.
-
-2006-01-17 Paul Jakma <paul.jakma@sun.com>
-
-       * isis_zebra.c: (isis_zebra_route_add_ipv4) fix for new
-         zserv format.
-
-2005-11-20 Paul Jakma <paul.jakma@sun.com>
-
-        * (general) remove includes of very common system headers,
-          these are already picked up by zebra.h. Further, including
-          them before zebra.h messes up all our lovely (sarcasm)
-          autoconf'd detecting of platform specific things. Recent
-          addition of stdint.h to configure.ac and zebra.h appears
-          particularly to throw up this problem.
-
-2005-10-01 Hasso Tepper <hasso at quagga.net>
-
-       * isis_adjacency.c: Stop expire timer while deleting adjacency.
-       * isis_events.c: Stop pseudo LSP thread while resigning circuit from
-         level.
-       * isis_route.c: Fix compiling with EXTREME_DEBUG. Mark route as not
-         in sync with zebra if it's changed.
-       * isis_spf.c: Schedule route validating etc even if tent was empty.
-         It's probably because we just don't have any adjacencies.
-       * isisd.c: Write minimum spf interval into configuration.
-
-2005-09-30 Vincent Jardin <vincent.jardin@6wind.com>
-
-       * isis_route.c: fix EXTREME_DEBUG compilation
-
-2005-09-28 Hasso Tepper <hasso at quagga.net>
-
-       * *.c: Massive cleanup of lists loops. Stop abusing ALL_LIST_ELEMENTS.
-         Replace XMALLOC + memset with XCALLOC. Fix some indentation issues.
-         The only really significant change is simplified isis_delete_adj
-         function in isis_adjacency.c.
-
-2005-09-28 Hasso Tepper <hasso at quagga.net>
-
-       * isis_dynh.c, isisd.h: Implement dynamic hostname cache cleanup.
-       * isis_lsp.c: Refresh dynamic hostname in the cache while refreshing
-         topology LSP.
-
-2005-09-28 Hasso Tepper <hasso at quagga.net>
-
-       * isis_lsp.c: Make topology generator generate TE TLVs if necessary.
-         Also take care of inserting dynamic hostname of topology TLVs into
-         cache.
-
-2005-09-26 Hasso Tepper <hasso at quagga.net>
-
-       * isis_spf.c: Changing cost from uint16_t to uint32_t. Unset
-         ISIS_ROUTE_FLAG_ACTIVE flag before running SPF.
-       * isisd.[ch]: Separate route tables for different levels. SPF is done
-         separately, but in case of L1L2 area they have to be merged.
-       * isis_zebra.c: Set/unset ISIS_ROUTE_FLAG_ZEBRA_SYNC flag correctly in
-         case of adding/removing IPv4 routes.
-       * zebra_route.c: Rework route validating process. Merging L1 and L2
-         tables in case of L1L2 area.
-
-2005-09-26 Hasso Tepper <hasso at quagga.net>
-
-       * isis_spf.[ch]: Added TE TLVs to the SPF process. It seems to work
-         mostly, but needs certainly much more testing, especially transition
-         situation.
-
-2005-09-26 Hasso Tepper <hasso at quagga.net>
-
-       * isis_lsp.c: Put correct metric info into TE TLV's. Wide metric is
-         used only if only wide metric style (extended TLV's) is in use.
-
-2005-09-26 Hasso Tepper <hasso at quagga.net>
-
-       * isis_tlv.[ch]: New function tlv_add_in_addr() to put just one IPv4
-         address into TLV. Used for IPv4 address TLV (in case of LSP) and TE
-         router ID TLV.
-       * isis_lsp.c: Use tlv_add_in_addr() and include router ID in LSP.
-
-2005-09-26 Hasso Tepper <hasso at quagga.net>
-
-       * isis_lsp.c: Support for originating TE IS and IPv4 TLV's. No any sub
-         TLV handling yet.
-
-2005-09-26 Hasso Tepper <hasso at quagga.net>
-
-       * isis_tlv.[ch]: Two new functions - tlv_add_te_is_neighs() and
-         tlv_add_te_ipv4_reachs() to handle TLV's with new metric. None of
-         them handle sub TLVs though for now.
-
-2005-09-26 Hasso Tepper <hasso at quagga.net>
-
-       * isis_circuit.[ch]: Some preliminary support for specifying wide
-         circuit metrics. Needs more thinking though, but should do for now.
-
-2005-09-26 Hasso Tepper <hasso at quagga.net>
-
-       * isisd.[ch]: Introduce oldmetric flag for area and transition
-         metricstyle command. With metricstyle wide only extended TLVs
-         should be used.
-
-2005-09-25 Hasso Tepper <hasso at quagga.net>
-
-       * dict.[ch]: Revert all nonfunctional changes. It's external module
-         imported from kazlib and it's better not to screw it - there is
-         theoretical chance that we might want to merge changes from upstream
-         at some point. Also avoid the loss of info about upstream version
-         (rcsid).
-
-2005-09-21 Hasso Tepper <hasso at quagga.net>
-
-       * isis_route.c: Fix output of nexthops in case of extreme debug.
-
-2005-09-19 Hasso Tepper <hasso at quagga.net>
-
-       * isis_lsp.c, isis_pdu.c, isis_spf.c: Remove some old unused code.
-
-2005-09-19 Hasso Tepper <hasso at quagga.net>
-
-       * isis_lsp.c: Better output of detailed LSP printout and fixed TE IPv4
-         reachibility metric display.
-
-2005-09-19 Hasso Tepper <hasso at quagga.net>
-
-       * isis_tlv.h: Cleanup comment about TLVs we should support, remove info
-         about useless (in sense of IP(v6)) TLVs.
-
-2005-09-19 Hasso Tepper <hasso at quagga.net>
-
-       * isis_lsp.h: Added backpointer to the area from LSP. For now it's used
-         only in generated topology LSPs.
-       * isisd.[ch]: Cleanup CLI commands related to topology generation and
-         added command to specify base fo dynamic hostname for topology LSPs.
-       * isis_lsp.c: Rewrite almost all code related to generation topology
-         LSPs (top_lsp_refresh(), generate_topology_lsps() and
-         build_topology_lsp_data() functions). Topology is connected to own
-         LSP now (lsp_build_nonpseudo). Commented out lsppdu_realloc
-         functions, it's not used any more hopefully.
-
-2005-09-18 Hasso Tepper <hasso at quagga.net>
-
-       * isis_lsp.c (lsp_update): Fix previous commit - manipulate the right
-         database and only if LSP is really in the database (sanity check).
-
-2005-09-16 Hasso Tepper <hasso at quagga.net>
-
-       * isis_lsp.c (lsp_update): Remove LSP from database before updating
-         its data and put it back after. Database entry MUST contain at least
-         correct pointers to the sysid to get correct compare results.
-       * isis_lsp.[ch], isis_pdu.c: Pass level to the lsp_update() function.
-
-2005-09-05 Hasso Tepper <hasso at quagga.net>
-
-       * *.c: Try to be less verbose by default (without any debug options
-         on).
-       * isis_lsp.c (lsp_build_nonpseudo): Use stream_reset() instead of
-         touching endp directly.
-       * isis_lsp.c (lsp_build_pseudo): Ditto.
-
-2005-09-03 Hasso Tepper <hasso at quagga.net>
-
-       * isis_lsp.c: Yet another regression introduced by stream cleanup.
-         Similar fix to the one commited to lsp_build_nonpseudo() some days
-         ago.
-
-2005-09-01 Hasso Tepper <hasso at quagga.net>
-
-       * isis_lsp.c: Less TLV leaking.
-
-2005-09-01 Hasso Tepper <hasso at quagga.net>
-
-       * random.c, spgrid.[ch]: Fix warnings with hope that I didn't broke
-         anything. These floats to longs and vice versa casts are starnge
-         indeed.
-       * isis_pdu.c: As we don't use %z for size_t for now because we support
-         older compilers, cast them to unsigned long.
-
-2005-09-01 Hasso Tepper <hasso at quagga.net>
-
-       * isis_adjacency.c, isis_lsp.c, isisd.c: Replace XMALLOC && memset
-         with XCALLOC.
-       * isis_lsp.c (lsp_build_pseudo): Fix adding ES neighbour.
-       * isis_tlv.c: More compact free_tlvs() function.
-       * isis_lsp.c (lsp_build_nonpseudo) : Try to fix one more regression
-         introduced by stream cleanup. Seek endp to the right place before
-         starting to fill stream with TLVs.
-
-2005-08-16 Hasso Tepper <hasso at quagga.net>
-
-       * isis_misc.[ch]: Fix some warnings, making some strings const.
-
-2005-08-10 Hasso Tepper <hasso at quagga.net>
-
-       * topology/spgrid.c: MAXLONG is deprecated, use LONG_MAX instead.
-         values.h, where MAXLONG is defined, is deprecated as well.
-
-2005-05-26 Yossi Boaron <Yossi.Boaron@veraznetworks.com>
-
-       * isis_dr.c: Fix copy&paste error in isis_dr_resign().
-
-2005-05-25 Paul Jakma <paul@dishone.st>
-
-       * isisd.c: (show_isis_generated_topology) change to _RO version
-         of list macro. remove the extra listnode variable. one of the
-         macros had had incorrect number of arguments.
-
-2005-05-03 Paul Jakma <paul@dishone.st>
-
-       * (general) More cleaning up of stream abuse, isisd should be
-         back to previous functionality. Replace various XMALLOC+memset's
-         with XCALLOC
-       * isis_tlv.c: (tlv_add_padding) use stream_put to clear the stream
-         rather than forward endp, as isisd reuses streams.
-       * isis_pdu.c: (process_lsp) cleanup direct reference to stream endp
-         (send_lsp) manual copy of a stream cleaned up to use stream_copy.
-       * isis_network.c: (isis_recv_pdu_bcast) replace direct memcpy with
-         stream_write
-         (isis_recv_pdu_p2p) replace recvfrom directly into stream with
-         stream_recvfrom. Remove dangerous and now unneeded manual update
-         of endp.
-         (isis_recv_pdu_bcast / non-GNU_LINUX) Replace direct memcpy with
-         stream_write.
-         (isis_recv_pdu_p2p) replace read direct into stream with
-         stream_read_try, and hence remove the manual update of endp.
-       * isis_lsp.c: (lsp_update_data) manual stream dup replaced with 
-         stream_dup.
-         (lsppdu_realloc) mempcy into stream data replaced with stream_put.
-         (lsp_build_nonpseudo) remove mysterious stream_forward_endp's -
-         which were originally stream_set_putp - shouldn't be needed
-         now that all the manual fiddling of private stream data has been
-         corrected.
-         (build_topology_lsp_data) remove unneeded twiddling of endp,
-         appears to be due to lsppdu_realloc(), but it appears to sort of
-         do the right thing wrt streams.
-         
-2005-04-15 Paul Jakma <paul@dishone.st>
-
-       * topology/Makefile.am: random.c is a source of libtopology, so list
-         it.
-
-2005-04-12 Hasso Tepper <hasso at quagga.net>
-
-       * isis_adjacency.c: Fix typo introduced with listloop cleanup.
-
-2005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * isis_zebra.h (isis_zebra_finish): Remove declaration of unused
-         function.
-       * isis_zebra.c (isis_zebra_route_add_ipv4): Call zclient_send_message
-         to send the message to zebra instead of calling writen directly, since
-         zclient_send_message understands non-blocking I/O and will manage
-         the buffer queue appropriately.
-         (isis_zebra_finish): Remove unused function, particularly since
-         the zclient_free function has been removed.
-
-2005-04-10 Paul Jakma <paul@dishone.st>
-
-       * Makefile.am: topology should not be a conditional SUBDIR,
-         otherwise make dist breaks.
-       * topology/Makefile.am: remove EXTRA_DIST of files which dont
-         exist in that directory, broke make dist.
-       * isisd.c: (show_isis_generated_topology_cmd) convert LIST_LOOP
-       * isis_lsp.c: (generate_topology_lsps) ditto
-         (build_topology_lsp_data) ditto
-
-2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * isis_zebra.c: (isis_zebra_if_del) Must use if_lookup_by_name_len.
-
-2005-04-02 Hasso Tepper <hasso at quagga.net>
-
-       * Makefile.am: Variables to handle conditonal compiling of topology
-         generator code.
-       * isis_lsp.c: lsppdu_realloc() is used by topology generator.
-       * isisd.c: Rename show_isis_topology_cmd to not conflict the one in
-         the isis_spf.c.
-       * isisd.h: Remove TOPOLOGY_GENERATE define, it will be defined in
-         toplevel config.h if topology generator is enabled.
-       * topology/Makefile.am: Handle the libtoolized Quagga libraries.
-
-2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * isis_zebra.c: (isis_zebra_if_del) Call if_delete_retain instead
-         of if_delete, since it is generally not safe to remove interface
-         structures.  After deleting, set ifp->ifindex to IFINDEX_INTERNAL.
-         (zebra_interface_if_lookup) Tighten up code.
-
-2005-03-07 Michael Sandee <voidptr@voidptr.sboost.org>
-
-       * isis_spf.c: host.name might be NULL.
-
-2005-02-23 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * isis_main.c: (reload) Call vty_reset instead of vty_finish (both
-         functions were exactly the same).
-
-2005-01-18 Hasso Tepper <hasso at quagga.net>
-
-       * *.c: Changed many functions to static. Some commented out
-         functions and some tiny related fixes. No functional changes.
-
-2005-01-01 Hasso Tepper <hasso at quagga.net>
-
-       * isis_common.h, isisd.c, isis_pdu.c: Implement authentication in
-         SNPs correctly - ie. make it conditional like it is in IOS.
-
-2004-12-29 Hasso Tepper <hasso at quagga.net>
-
-       * isis_circuit.c, isis_csm.c, isis_zebra.c: Don't crash during
-         interface up/down events. I'm not sure whether logic is correct
-         though. Needs rethink anyway, seems. Replace if_is_up() with
-         if_is_operative() and add some more.
-
-2004-12-24 Hasso Tepper <hasso at quagga.net>
-
-       * *.c: zlog_* cleanup. Mostly changed level of debug messages to
-         LOG_DEBUG.
-
-2004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * isis_main.c: (main) The 2nd argument to openzlog has been removed.
-
-2004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * isis_main.c: (sigint,sigterm) Use zlog_notice for termination message.
-         (terminate) This function should be static, not global.
-         (main) Use zlog_notice for startup announcement, and remove
-         ifdef ZEBRA_VERSION.
-
-2004-11-25 Hasso Tepper <hasso at quagga.net>
-
-       * isis_main.c: Make group to run as configurable.
-
-2004-11-24 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * dict.c: Include "zassert.h" instead of <assert.h>.
-
-2004-10-13 Hasso Tepper <hasso at quagga.net>
-
-       * isis_main.c: Initialize access list. Although we haven't route
-         filtering yet, it's needed to limit access to vty.
-
-2004-10-11 Hasso Tepper <hasso at quagga.net>
-
-       * isis_routemap.c, isisd.c: Make more strings const.
-       * isisd.h: Make min_bcast_mtu unsigned.
-
-2004-10-07 Hasso Tepper <hasso at quagga.net>
-
-       * *.[c|h]: Fix warnings: make strings const, signed -> unsigned,
-         remove or comment out unused variables etc.
-       * isis_lsp.c: Clean lsp_print_detail() a bit, add TE TLV's and
-         removed old code.
-       * isis_circuit.c: Remove old ip/ipv6 address commands code.
-
-2004-10-03 Hasso Tepper <hasso at quagga.net>
-
-       * isis_zebra.c: Read router id related messages from zebra daemon.
-       * isis_lsp.c: Use router id in IP address TLV in LSP's. It's how Junos
-         routers behave as well.
-       * isis_tlv.h: Export add_tlv() function.
-
-2004-09-27 Hasso Tepper <hasso at quagga.net>
-
-       * isis_pdu.c: Fix accessing NULL found by valgrind.
-
-2004-09-26 Hasso Tepper <hasso at quagga.net>
-
-       * isis_circuit.c: Fix previous commit. Don't schedule LSP regeneration
-         and don't crash if circuit->area == NULL.
-
-2004-09-26 Hasso Tepper <hasso at quagga.net>
-
-       * *.[c|h]: Fix a lot of compiler warnings.
-       * isis_events.c: Remove isis_event_int_reach_change() function, as it
-         doesn't make sense for now. Call lsp_regenerate_schedule() directly
-         where needed.
-
-2004-09-26 Hasso Tepper <hasso at quagga.net>
-
-       * isis_lsp.h: Cast-as-lvalue extension is deprecated and is not
-         accpted any more in gcc-4.0.
-
-2004-09-24 Hasso Tepper <hasso at quagga.net>
-
-       * isisd.c: thread_master *master is already defined in isis_main.c.
-       * isis_misc.[c|h], isis_lsp.[c|h]: Move static variables out of
-         header files.
-
-2004-09-23 Hasso Tepper <hasso at quagga.net>
-
-       * *.[c|h]: list -> struct list *, listnode -> struct listnode *.
-
-2004-09-21 LIU Xin <lx at ns.6test.edu.cn>
-
-       * isis_dr.c: Update dis_record of adjacencies when isisd becomes DIS.
-
-2004-09-21 Hasso Tepper <hasso at quagga.net>
-
-       * isis_lsp.c: Put IPv4 prefixes into reachability TLVs, not
-         addresses. Make IPv6 work with other prefix lengths than % 8 == 0.
-
-2004-09-20 LIU Xin <lx at ns.6test.edu.cn>
-
-       * isis_dr.c, isis_events.c: Remove hello multiplier usage while
-         scheduling DIS election.
-       * isis_pdu.c: Don't call isis_event_dis_status_change() whenever
-         l[1|2]_desig_is is different from hdr.lan_id.
-
-2004-09-19 Hasso Tepper <hasso at quagga.net>
-
-       * isis_spf.h: Renamed t_spf_periodic to t_spf as it's not used to
-         store pointer to periodic SPF thread only.
-       * isis_spf.c: Cleaned up SPF threads schedule code. IPv4 and IPv6
-         threads are independant now. Used macros wherever possible.
-       * isis_lsp.c: Fixed bug in scheduling LSP regeneration.
-
-2004-09-17 LIU Xin <lx at ns.6test.edu.cn>
-       
-       * isis_circuit.c: According to RFC1142 the first DIS election will be
-       started 2 * HelloTimer seconds after the initialization.
-
-2004-09-15 Laurent Rabret <laurent.rabret at francetelecom.com>
-
-       * isis_pdu.c: Fix error in same subnet comparison. The previous
-         algorithm only worked when netmask % 8 == 0.
-       * isisd.c: Show domain and area passwords in configuration.
-       * iso_checksum.c: Fixed error in the checksum calculation. The previous
-         algorithm could produce a bad checksum if the 2 complement's vs 1
-         complement's adaptation was required.
-       * isis_pdu.c: Authentication in LSPs does not mean authentication in
-         SNPs.
-       * isis_tlv.c: Fix errors in password checking.
-
-2004-09-14 Hasso Tepper <hasso at quagga.net>
-
-       * isis_circuit.c: Mostly cosmetical changes in isis_circuit_add_addr()
-         and add calls to isis_event_int_reach_change(). Implement
-         isis_circuit_del_addr(). Cancel t_run_dr threads is circuit goes
-         down.
-       * isis_events.c: Implement isis_event_int_reach_change(). I'm not sure
-         yet how this stuff should work, but it allows be to start debug
-         threads which act very weird at the moment.
-       * isis_tlv.c: Much less verbose by default.
-       * isis_zebra.c: Added extreme debugging output. Call connected_free()
-         after isis_circuit_del_addr, not before.
-       * isisd.conf.sample: Update it a little bit. 10000 seconds hello time
-         was certainly too much IMHO.
-
-2004-09-14 LIU Xin <lx at ns.6test.edu.cn>
-
-       * isis_pdu.c: Update l1_desig_is only if neighbor really is DIS.
-
-2004-09-10 LIU Xin <lx at ns.6test.edu.cn>
-       
-       * isis_pdu.c: Goto out only if no adjacency exist.
-       * isis_circuit.c: Don't crash while executing "isis circuit-type"
-         command if circuit exists, but circuit->area is still NULL.
-       * isis_lsp.c: Set pointers to thread to NULL before initiating new
-         thread in lsp_l1_refresh_pseudo(), lsp_l2_refresh_pseudo() and
-         lsp_tick() functions.
-
-2004-05-19 Laurent Rabret <laurent.rabret at francetelecom.com>
-
-       * isis_constants.h: change the ISIS Hello interval from 1 to 10 (cisco's
-         default value).
-       * isis_main.c: suppress a bad "#if 0 #endif" block for isis to be
-         activated on startup.
-       * isis_tlv.[c|h]: LSP recognition of the ISIS Graceful Restart LSP (not
-         implemented yet).
-
-2004-05-19 Rivo Nurges <rix at estpak.ee>
-
-       * *.c: Removing many useless net/ethernet.h includes and some tiny
-         fixes to make it compile on NetBSD and OpenBSD.
-
-2004-05-08 Paul Jakma <paul@dishone.st>
-
-       * isis_zebra.c: Sync with zclient changes.
-
-2004-02-11 Hasso Tepper <hasso@estpak.ee>
-  * many *.c files: Replace thread_add_xxx() and thread_cancel() with
-    THREAD_XXX_ON and THREAD_XXX_OFF macros.
-
-2004-01-27 Hasso Tepper <hasso@estpak.ee>
-  * isis_circuit.c: Commented out "(no) ip address" commands so it doesn't
-    confuse vtysh.
-
-2003-12-31 Hasso Tepper <hasso@estpak.ee>
-  * isis_dr.c: Fix some threads related bugs.
-
-2003-12-23 Hasso Tepper <hasso@estpak.ee>
-  Some fixes done by me and Cougar <cougar@random.ee>.
-  * isis_adjacency.c: Two bugfixes by Cougar:
-    After down state neigbour was deleted but not removed from neighbours list.
-    Don't show random expire time during neighbour initialisation.
-  * isis_circuit.c: Don't show interface addresses in config by Cougar.
-  * isis_constants.h, isis_misc.c: Show other well-known NLPID names as well
-    by Cougar.
-  * isisd.c: Two tiny CLI fixes by me.
-  * isis_lsp.c: Bugfix in lsp_print_detail() by Cougar.
-    Show IPv4 external and IPv6 TLV's in "show isis database detail" by me.
-  * isis_misc.c: Net address format fix by Cougar.
-  * isis_spf.c: Dead loop fix in isis_spf_preload_tent() by Cougar
-  * isis_zebra.c: Ignore distance when adding route to zebra for now by me.
-  * isis_tlv.c: Parse external IPv4 TLV's correctly by me.
-
-Version 0.0.7 to 0.0.8
-======================
-
-o A bug in handling of other ISs fragments fixed
-o hello interval now specified in *seconds*
-o replaced the adj->ipv[46]_addr tables with linked lists
-
-Version 0.0.6 to 0.0.7 (Oct 29 2002)
-======================
-
-o changed to zebra-0.93b
-o fixed a seg in SPF
-o handling/generation of LSP fragments
-o domain/area/circuit password
-
-Version 0.0.5 to 0.0.6 (Jul 4 2002)
-======================
-
-o lots of changes to SPF
- - runs the SPF for IPv4 and IPv6 separately
- - a number of bugs fixed
- - simplified the implementation 
- - "7.2.7 Removal of excess paths" implemented
-o ported to freebsd  (tested in 4.5-STABLE and 4.6-STABLE) 
-o moved to zebra-0.93-pre2
-o "show isis topology" command added 
-o "show (ip|ipv6) route isis commands added to zebra
-o a number of fixes and additions (e.g. checksum calculation and DIS state
-change event) by BeomSeok Gwak added
-
-Version 0.0.4 to 0.0.5 (Apr 26 2002)
-======================
-
-o changed to zebra-0.93-pre1
-o number of memory leaks + small bugs fixed
-o a bug related to processing of neigbors when installing routes fixed
-
-Version 0.0.3 to 0.0.4 (Feb 27 2002)
-======================
-
-o initial version of SPT algorithm
-o installing routes though zebrad
-o isis debug commands
-o work on IS-IS events (e.g. circuit state change)
-
-Version 0.0.2 to 0.0.3 (Jan 17 2002)
-======================
-
-o LSP handling improved
-o generation of pseudonode LSPs
-o DR election enhanced
-o support for p2p interfaces
-o support for topology simulation 
-o more detailed output for show commands
-
-Version 0.0.1 to 0.0.2 (Dec 13 2001)
-======================
-
-o circuit state machine (isis_csm.[ch]) added
-o lot of work on LSP generation 
-o ISO checksum 
-o uses DGRAM sockets instead of RAW
-o gets IP(v6) addresses from zebra
-o debug can be controlled with "debug isis" command
-o read support for TE tlvs
-o work started on p2p interfaces
-o work started on isis events 
-
-
diff --git a/lib/ChangeLog b/lib/ChangeLog
deleted file mode 100644 (file)
index 688c44f..0000000
+++ /dev/null
@@ -1,4270 +0,0 @@
-2008-07-21 Paul Jakma <paul.jakma@sun.com>
-
-       * sockunion.c: ifdef out various places that converted
-         v4mapped sockets to pure v4. Doesn't seem necessary at all,
-         presumably a workaround for now historical inet_ntop bugs (?)
-
-2008-07-21 Michael H. Warfield <mhw@wittsend.com>
-           YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
-
-       * sockopt.{c,h}: (sockopt_tcp_signature) Add TCP-MD5SIG support.
-
-2008-06-07 Paul Jakma <paul@jakma.org>
-
-       * stream.{c,h}: (stream_{put,write}) add const qualifier to source
-         argument. Change u_char to void *.
-
-2008-06-02 Denis Ovsienko
-
-       * workqueue.[ch]: completely drop WQ_AIM_HEAD flag and
-         work_queue_aim_head() function, they aren't needed any more
-         with the new meta queue structure; (work_queue_run) don't
-         increment the counter on work item requeueing
-
-2008-02-28 Paul Jakma <paul.jakma@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
-
-2008-02-28 Paul Jakma <paul.jakma@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.
-
-2008-01-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * zebra.h: Revert previous change, no need to include <net/if_media.h>
-         here.
-
-2008-01-10 Ingo Flaschberger <if@xip.at>
-
-       * zebra.h: If HAVE_BSD_LINK_DETECT is defined, include <net/if_media.h>.
-
-2008-01-08 Pavol Rusnak <prusnak@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.
-
-2007-11-12 Denis Ovsienko
-
-       * linklist.c: (listnode_add_after) Don't forget to increment list
-         items counter.
-       * workqueue.h: Changed working queue flags from enum into integer
-         and introduced WQ_AIM_HEAD flag to indicate our will to insert
-         new data before the list head.
-       * workqueue.[ch]: (work_queue_schedule, show_work_queues,
-         work_queue_plug, work_queue_unplug) Adjust to the new flags style.
-       * workqueue.[ch]: (work_queue_aim_head) new function to control the
-         WQ_AIM_HEAD flag
-       * workqueue.[ch]: (work_queue_new) Explicitly set both WQ flags
-         during new WQ initialization.
-       * workqueue.[ch]: (work_queue_add) If WQ_AIM_HEAD indicates a need
-         to place the new data into list head, do it.
-
-2007-10-22 Lorenzo Colitti <lorenzo@colitti.com>
-
-       * smux.c: (smux_stop) Avoid cancelling a defunct thread pointer
-         (smux_start) Stop smux before trying to start it, possibly again.
-
-2007-10-04 Denis Ovsienko
-
-       * pid_output.c: (pid_output) stop using LOGFILE_MASK
-         (0600 by default), introduce and use PIDFILE_MASK (0644)
-         instead.
-
-2007-09-18  Paul Jakma <paul.jakma@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.
-
-2007-08-21 Denis Ovsienko
-
-       * sockopt.[ch]: (setsockopt_so_sendbuf, getsockopt_so_sendbuf):
-         new functions to adjust ospfd working socket.
-
-2007-08-13 Denis Ovsienko
-
-       * zebra.h: introduce ZEBRA_ERR_KERNEL and ZEBRA_ERR_NOERROR
-
-2007-07-06 Atis Elsts <atis@mikrotik.com>
-
-       * pqueue.{c,h}: Export trickle_up
-
-2007-07-26  Paul Jakma <paul.jakma@sun.com>
-
-       * 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).
-         
-2007-07-06 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * sockopt.{c,h}: (setsockopt_multicast_ipv4) Add some comments about
-         the arguments.
-
-2007-06-01 Andrew J. Schorr <ajschorr@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.
-
-2007-05-10 Paul Jakma <paul.jakma@sun.com>
-
-       * zebra.h: Don't try define _GNU_SOURCE, autoconf should do it.
-
-2007-05-03 Paul Jakma <paul.jakma@sun.com>
-
-       * memtypes.c: Add MTYPE_ATTR_EXTRA and MTYPE_BGP_ROUTE_EXTRA
-
-2007-05-01 David L Stevens <dlstevens@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).
-       * command.h: added PROTOCOL_NODE type
-       * log.c: (proto_name2num) new function, protocol name to
-         number translation.
-       * routemap.c: (vty_show_route_map) fixed "show route-map"
-         without route-map name
-       * routemap.h: added RMAP_ZEBRA type
-       * zebra.h: added proto_name2num() prototype
-
-2007-04-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * log.c: (quagga_timestamp) Optimize the subsecond timestamp generation.
-
-2007-04-28 Andrew J. Schorr <ajschorr@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.
-
-2007-04-27 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * smux.c: (smux_trap) Fix printf format to work with 64-bit size_t.
-
-2007-04-07 Paul Jakma <paul.jakma@sun.com>
-
-       * prefix.h: Add define to match IPv4 Link-Local addresses
-
-2007-03-20 Andrew J. Schorr <ajschorr@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.
-
-2006-12-12 Andrew J. Schorr <ajschorr@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.
-
-2006-10-14 Paul Jakma <paul.jakma@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.
-
-2006-09-26 Pierre-Yves Ritschard <pierre-yves@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).
-
-2006-08-25 Paul Jakma <paul.jakma@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.
-
-2006-07-25 Paul Jakma <paul.jakma@sun.com>
-
-       * thread.h: (struct thread) Add a cache pointer to the struct
-         cpu_thread_history, if it is known - saving hash lookup on
-         each thread_call.
-       * thread.c: (thread_call) Cache the pointer to the
-          cpu_thread_history, so that future thread_calls of same
-          thread can avoid the hash_lookup.
-
-2006-07-10 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * vty.c: (vty_log_out) Do not call vty_close, because this could
-         result in a parent function's accessing the freed memory.
-         Instead, set status VTY_CLOSE and call shutdown(vty->fd, SHUT_RDWR).
-         And add a comment on vty_close.
-
-2006-07-10 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * vty.c: (vty_log_out, vty_read, vty_flush, vtysh_flush, vtysh_read)
-         After an I/O error, must set vty->monitor to 0 before calling
-         zlog_warn, otherwise an infinite recursion could occur
-         (since zlog_warn triggers a message to be written to the vty,
-         and that in turn triggers another error message when it fails, etc.).
-
-2006-07-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * vty.c: (vty_log_out) Debug messages to terminal vty sessions
-         should include timestamps.
-
-2006-06-28 Paul Jakma <paul.jakma@sun.com>
-
-       * memory.c: Fix typo in cpp conditional around malloc.h, from
-         comment in bug #269.
-
-2006-06-27 Paul Jakma <paul.jakma@sun.com>
-
-       * route_types.awk: Remove setting the 'bare' numeric route type
-         in redist strings.
-
-2006-06-15 Paul Jakma <paul.jakma@sun.com>
-
-       * command.c: (cmd_describe_command_real) Fix leak, CID #38.
-       * memory.h: Experimental, have XFREE macro NULL out the freed
-         pointer.
-       * linklist.c: (list_delete) call list_delete_all_node, don't
-         duplicate it.
-       * if.c: (if_flag_dump) remove the whitespace indentation, callers
-         should provide.
-
-2006-05-28 Paul Jakma <paul.jakma@sun.com>
-
-       * zebra.h: Include inttypes.h rather than stdint.h, best practice
-         according to the autoconf manual.
-         Add UINT*_MAX defines for older platforms lacking these (FBSD 4)
-       * memory.c: malloc.h is deprecated in favour of stdlib.h, however
-         we still need it on GNU Libc for mallinfo().
-       * vty.c: (vty_log/vty_log_fixed) dont crash if called when vty
-         hasn't been initiliased.
-       * log.c: (general) Add support for Sun libc printstack().
-         (hex_append) make the cpp conditional on general HAVE_STACK_TRACE
-         define.
-         (zlog_backtrace_sigsafe) Ditto. Add printstack() version of the
-         the DUMP macro in this function.
-
-2006-05-23 Paul Jakma <paul.jakma@sun.com>
-
-       * route_types.txt: New file, table of ZEBRA_ROUTE definitions.
-       * route_types.awk: New script, to parse previous and generate
-         (for now) redistribute string defines.
-       * Makefile.am: build route_types.h using previous two, ala
-         memtypes.h, include the script and table file in EXTRA_DIST.
-       * command.h: pull in route_types.h, add a REDIST_STR define.
-
-2006-05-21 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * if.h: (struct connected) Document the meaning of the
-         ZEBRA_IFC_REAL and ZEBRA_IFC_CONFIGURED flags.
-
-2006-05-15 Paul Jakma <paul.jakma@sun.com>
-
-       * log.c: (general) Generalise struct zebra_route_desc into
-         struct zebra_desc_table and, similar to route_types, add a
-         command_types table to describe Zserv protocol commands.
-         (route_types[]) use a macro to use designated initialisers
-         while avoiding tedious duplication.
-         (zserv_command_string) lookup string from zebra_desc_table,
-         similar to zebra_route_string
-       * zebra.h: Add declaration for zserv_command_string, adjust the
-         comments to reflect zebra_desc_table.
-
-2006-05-13 Paul Jakma <paul.jakma@sun.com>
-
-       * vty.c: (vty_describe_command) CID #39 fix was too hasty, just
-         cause it /can/ leak doesn't mean it always will have, check
-         first.
-
-2006-05-12 Paul Jakma <paul.jakma@sun.com>
-
-       * plist.c: (vty_prefix_list_uninstall) Fix potential NULL deref
-         of prefix and typestr strings, Coverity CID #3.
-       * command.c: (cmd_complete_command_real) Fix leak of cmd_vector
-         in error case, Coverity CID #37.
-         (cmd_describe_command_real) Fix return of freed pointer when
-         no-match, CID #55.
-       * vty.c: (vty_describe_command) fix leak of describe vector in
-         error path, CID #39.
-
-2006-03-30 Paul Jakma <paul.jakma@sun.com>
-
-       * command.h: (DEFUN_CMD_FUNC_TEXT) Annotate arguments as
-         potentially being unused.
-       * workqueue.c: (work_queue_run) fix line length of comment
-
-2006-03-27 Paul Jakma <paul.jakma@sun.com>
-
-       * memtypes.awk: Fix gensub call, g should be a string..
-
-2006-03-25 Paul Jakma <paul.jakma@sun.com>
-
-       * workqueue.h: (struct work_queue) Remove status field and
-         state flag, no longer used.
-
-2006-03-19 Paul Jakma <paul.jakma@sun.com>
-
-       * memtypes.c: Add MTYPE_BGP_SYNCHRONISE.
-
-2006-03-16 Paul Jakma <paul.jakma@sun.com>
-
-       * Makefile.am: Fix -version-info argument.
-
-2006-03-15 Paul Jakma <paul.jakma@sun.com>
-
-       * memory.c: (mtype_memstr) new helper function to 
-         return human friendly string for a byte count.
-         (mtype_stats_alloc) new function, for users to retrieve
-         number of objects allocated.
-         (show_memory_mallinfo) New function, show mallinfo statistics
-         if available.
-         (show_memory_all_cmd) Call show_memory_mallinfo, if mallinfo
-         is available.
-       * memory.h: Export mtype_memstr and mtype_stats_alloc.
-         Provide a define for a reasonable buffer size for
-         mtype_memstr.
-         
-2006-03-14 Paul Jakma <paul.jakma@sun.com>
-
-       * privs.c: (zprivs_caps_init) Change user IDs before lowering
-         privileges, while this seems to work on Linux, on Solaris
-         it rightfully refuses due to PRIV_PROC_SETID having been
-         dropped.
-       * command.h: Add the struct host global exported from command.c
-
-2006-03-06 Paul Jakma <paul.jakma@sun.com>
-
-       * if.h: export show_address_cmd, for anyone who wishes to use
-         it.
-
-2006-02-21 Paul Jakma <paul.jakma@sun.com>
-
-       * sockunion.c: (sockunion_{su2str,log}) Use XSTRDUP.
-         Particularly with _su2str, as that string gets XFREEd,
-         which can be annoying if run debug code in memory.c.
-
-2006-02-02 Paul Jakma <paul.jakma@sun.com>
-
-       * workqueue.h: (struct work_queue) Remove the delay field.
-         It served no purpose and just introduced bad behaviour.
-         Should be excised before its allowed to escape into 1.0.
-         This removes need for the 'flood' and runs_since_clear
-         fields.
-       * workqueue.c: (general) excise delay factor between queue
-         runs, hence the 'flood' crap too.. See above.
-
-2006-01-19 Paul Jakma <paul.jakma@sun.com>
-
-       * stream.c: (stream_getq_from) should use POSIX uint64_t
-         not u_int64_t. Latter is neither a traditional BSD type, nor
-         a POSIX type.
-
-2006-01-17 Vincent Jardin <vincent.jardin@6wind.com>
-
-       * md5.c: Don't forget to keep const.
-       * regex.c: Cleanup code and remove warnings.
-
-2006-01-17 Paul Jakma <paul.jakma@sun.com>
-
-       * md5.{c,h}: (md5_loop) Is better off taking a void * and doing
-         cast to byte wise type internally, avoids needs for casts 
-         in users.
-       * vty.c: (no_terminal_monitor_cmd) New ALIAS for 
-         terminal_no_monitor, in the more normal negating format,
-         to be kind to my fingers.
-         (vty_init) install new ALIAS.
-       * zclient.{c,h}: (zclient_create_header) export this, seems others
-         could use it (in lieu of more complete zserv helpers).
-
-2006-01-16 Paul Jakma <paul.jakma@sun.com>
-
-       * zclient.h: Update the Zserv protocol header with a version
-         field.  Define the old command field to be a 'marker', to
-         allow old Zserv and updated Zserv to be differentiated.
-         Future updates will bump the version field obviously. New
-         command field is made wider.  Try to stop using the
-         'zebra_size_t' typedef in the callbacks.
-       * zclient.c: Update to read/write new format header.
-
-2006-01-11 Paul Jakma <paul.jakma@sun.com>
-
-       * if.h: (struct interface) expand flags to 8 bytes.
-       * zclient.c: (zebra_interface_{add,state}_read) stream read of
-         interface flags now need to use stream_getq.
-         (zebra_interface_if_set_value) ditto
-
-2006-01-10 Paul Jakma <paul.jakma@sun.com>
-
-       * stream.c: (stream_new) Allocate stream data as seperate object.
-         (stream_free) free the data.
-         (stream_resize) new function, resize stream to new size.
-         (stream_{get,put}q*) new functions to get/put quad word size
-         types.
-       * stream.h: (struct stream) make data seperate from the stream.
-         Export new stream_resize and quad-word get/put functions.
-         
-2005-12-29  Greg Troxel  <gdt@fnord.ir.bbn.com>
-
-       * vty.c (vty_hello): add cast to quiet lint (from David Young)
-
-2005-11-26 Paul Jakma <paul.jakma@sun.com>
-
-       * buffer.c: (struct buffer_data) change gcc zero array
-         declaration to C99 incomplete array.
-       * stream.h: (struct stream) same
-
-2005-11-24 Paul Jakma <paul.jakma@sun.com>
-
-       * privs.c: (zcaps2sys/solaris) remove unused variable.
-         (zprivs_state_caps/solaris) Format string missing a
-         specifier.
-       * zebra.h: s/u_int/unsigned int/, u_int is a BSD type, defining
-         __USE_BSD on Linux pulls in further things from netinet/ip.h
-         which dont preprocess for some reason. There is no C99
-         shorthand type directly equivalent to u_int afaict, so don't
-         use it.
-
-2005-11-14 Paul Jakma <paul.jakma@sun.com>
-
-       * (general) pass struct work-queue to callback functions.
-       * workqueue.h: (struct work_queue) move the state flag
-         variables to end.
-         Add an opaque pointer to spec, for user-data global to the
-         queue.
-         Pass reference to work_queue to all callbacks.
-       * workqueue.c: (work_queue_item_remove) pass ref to workqueue
-         to user callbacks.
-         (work_queue_run) ditto.
-
-2005-11-14 Paul Jakma <paul.jakma@sun.com>
-
-       * (general) Add state to detect queue floods.  There's no sense
-         trying to be sparing of CPU resources, if the queue is
-         flooding and using ever more memory resources. we should just
-         get on with clearing the queue.
-         The sense of delay and hold were wrong way around, fix.
-       * workqueue.h: (struct work_queue) Add status bitfield.  Add
-         'flood' integer to workqueue spec.  Add runs_since_clear
-         counter to workqueue.
-       * workqueue.c: (work_queue_new) set defaults for delay, hold
-         and flood.
-         (work_queue_add) initial schedule should use delay, not hold.
-         (show_work_queues) Print flood field, conserve whitespace.
-         (work_queue_unplug) use delay, not hold.
-         (work_queue_run) consecutive runs should be seperated by hold
-         time, not delay.
-         Keep track of number of consecutive runs, go into 'overdrive'
-         if queue is being flooded, we can't avoid making heavy use of 
-         resources, better to use CPU than ever more RAM.
-       * zebra.h: [bug #231] include stdint, if its there.
-
-2005-11-05 Paul Jakma <paul.jakma@sun.com>
-
-       * routemap.c: (vty_show_route_map_entry) call action is
-         seperate from exit action, latter should still be printed
-         regardless of whether a call is specified.
-
-2005-11-03 Paul Jakma <paul.jakma@sun.com>
-
-       * zebra.h: BSD BYTE_ORDER define isn't available everywhere,
-         define if needs be.
-       * checksum.h: new file. checksum.c exports in_cksum, provide
-         a header for it.
-       * checksum.c: (in_cksum) callers shouldn't have to know it uses
-         a u_short internally, change to void *.
-       * Makefile.am: Add checksum.h
-       * command.h: remove bogus trailling slash.
-       * md5.c: (general) Update it for the twentieth century. ANSI
-         declarations are widely supported now.. Don't include system
-         headers, only include zebra.h. Use POSIX types (the
-         alternative is to define u_int64_t in a portable way - rest
-         of Quagga needs same cleanup).
-         Make endian-conditional code be compiler conditional rather
-         than preprocessor conditional, so that breakage gets noticed
-         quicker.
-       * md5.h: POSIX types. Get rid of the odd __P() non-ANSI capable
-         compiler compatibility hack.
-       * if.c: (connected_free) use MTYPE for connected label.
-       * memtypes.c: Add MTYPE_CONNECTED_LABEL
-       * memtypes.h: Update auto-built file.
-
-2005-10-26 Paul Jakma <paul.jakma@sun.com>
-
-       * (general) Cleanup a some calls to XFREE,strdup, etc. to use
-         the memory.h macros.
-       * memtypes.c: Add MTYPE_IF_RMAP_NAME, MTYPE_PQUEUE,
-         MTYPE_PQUEUE_DATA and MTYPE_HOST.
-       * memtypes.h: update auto-built file.
-       * if_rmap.c: Use MTYPE_IF_RMAP_NAME.
-       * pqueue.c: Use the two MTYPE_PQUEUE mtypes for allocations.
-       * command.c: Use MTYPE_HOST, MTYPE_STRVEC. Some other fixups,
-         including fixing some likely leaks in config_write_file.
-       * vty.c: memory macro usage fixes. 
-         (vty_read_config) fix leak where relative config file is
-         specified.
-
-2005-10-20 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * sockopt.c: (setsockopt_multicast_ipv4) If IP_ADD_MEMBERSHIP
-         fails with errno equal to EADDRINUSE, then issue an info
-         message and try IP_DROP_MEMBERSHIP followed by IP_ADD_MEMBERSHIP.
-
-2005-10-20 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * memory.c: (show_memory_vty) Omit zero statistics.  Print separators
-         only if some non-zero stats have been printed in between.
-         (show_separator) New function to print a separator.
-         (show_memory_all) Keep track of whether a separator is needed
-         between the different memory statistics groups.
-
-2005-10-18 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * memtypes.h: Add MTYPE_OSPF_VERTEX_PARENT (to match memtypes.c).
-
-2005-10-18 Paul Jakma <paul.jakma@sun.com>
-
-       * memtypes.c: (memory_list_ospf) Add MTYPE_OSPF_VERTEX_PARENT.
-
-2005-10-01 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * zebra.h: Declare new functions zebra_route_string() and
-         zebra_route_char().
-       * log.c: (zroute_lookup,zebra_route_string,zebra_route_char) New
-         functions to map zebra route numbers to strings.
-
-2005-09-29 Alain Ritoux <alain.ritoux@6wind.com>
-
-       * smux.[ch]: allow to retreive global OID (identified by <0
-         namelen).
-
-2005-09-29 Paul Jakma <paul.jakma@sun.com>
-
-       * zebra.h: Solaris capabilities requires priv.h to be included.
-       * privs.{c,h}: Add support for Solaris Least-Privileges.
-         privs.h: Reduce some of the abstract capabilities, which do
-         not have rough equivalents on both systems. Rename the net
-         related caps to _NET, as they should have been in first
-         place.
-         (zprivs_terminate) should take the zebra_privs_t as argument so
-         that it can update change pointer.
-         Add an additional privilege state, ZPRIVS_UNKNOWN.
-       * privs.c: (various capability functions) Add
-         Solaris privileges variants.
-         (zprivs_state) Use privs.c specific generic types to
-          represent various capability/privilege related types, so that
-          each can be typedef'd as appropriate on each platform.
-         (zprivs_null_state) static added, to hold the state the null
-         method should report (should be raised by default, and
-          LOWERED if zprivs_terminate has been called)
-          (zprivs_state_null) Report back the zprivs_null_state.
-          (cap_map) Make it able to map abstract capability to multiple
-          system capabilities.
-          (zcaps2sys) Map to abstract capabilities to multiple system
-          privileges/capabilities.
-          (zprivs_init) move capability related init to seperate
-         function, zprivs_caps_init.
-          (zprivs_terminate) ditto, moved to zprivs_caps_terminate.
-          Set the change_state callback to the NULL state, so the
-          user can continue to run and use the callbacks.
-          
-2005-09-29 Alain Ritoux <alain.ritoux@6wind.com>
-
-       * filer.c: show protocol name in filter_show()
-       * plist.c: show protocol name in vty_show_prefix_entry()
-       * routemap.c: show protocol name in vty_show_route_map_entry()
-       * vty.c: in vty_command(), show protocol name if command unknown
-       
-2005-09-28 Alain Ritoux <alain.ritoux@6wind.com>
-
-       * md5-gnu.h: removed
-       * md5.h: replaces md5-gnu.h
-       * Makefile.am: use correct md5.h
-       * md5.c: import from WIDE
-
-2005-09-21 Paul Jakma <paul.jakma@sun.com>
-
-       * memtypes.{c,h}: Add MTYPE_AS_SEG_DATA.
-       
-2005-09-19 Hasso Tepper <hasso at quagga.net>
-
-       * str.[ch]: Add strndup() from glibc.
-
-2005-09-05 Paul Jakma <paul.jakma@sun.com>
-
-       * command.c: (install_element) be more robust. Eg, cmd_init
-         need not have been called, some applications may use other
-         library subsystems, which call install_element, without the
-          application wanting commands and hence not calling cmd_init.
-        
-2005-08-22 Hugo Santos <hsantos@av.it.pt>
-
-       * command.h: (enum node_type) Add BGP_IPV6M_NODE 
-       * command.c: (node_parent) Handle BGP_IPV6M_NODE node
-         (config_exit, config_end) ditto
-       * vty.c: (vty_end_config) Handle BGP_IPV6M_NODE node
-       
-2005-08-10  Greg Troxel  <gdt@fnord.ir.bbn.com>
-
-       * getopt.h: Don't declare getopt (rather than getopt_long), since
-       quagga doesn't need it.
-       * getopt.c (getopt): Don't define getopt.
-
-2005-07-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-       * prefix.c: (prefix_ipv4_new, prefix_ipv6_new): Call prefix_new
-         to allocate the memory to make sure that all struct prefix pointers
-         point to objects of the same length (avoids memory overruns
-         on struct prefix assignments).
-         (prefix_ipv4_free, prefix_ipv6_free): Simply call prefix_free.
-         It is interesting to note that these functions are never actually
-         called anywhere in the code.  Instead prefix_free was already
-         being called directly, despite the previous MTYPE incompatibility.
-
-2005-07-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * prefix.c: (ip_masklen) While loop should test that 'pnt' pointer is
-         in range before dereferencing it.
-
-2005-06-24 Pawel Worach <pawel.worach@gmail.com>
-
-       * getopt.h: add further tests for full getopt declaration on
-         various systems.
-
-2005-06-18 Paul Jakma <paul.jakma@sun.com>
-
-       * memtypes.h: update autobuilt file to match memtypes.c changes
-
-2005-06-01 Paul Jakma <paul.jakma@sun.com>
-
-       * memtypes.c: Add MTYPE_BGP_PROCESS_QUEUE and
-         MTYPE_BGP_CLEAR_NODE_QUEUE
-
-2005-05-24 Paul Jakma <paul@dishone.st>
-
-       * memtypes.h: update this auto-built file. (maybe we should just
-         remove it, is GNU awk a terrible dependency to have?)
-
-2005-05-23 Paul Jakma <paul@dishone.st>
-
-       * memtypes.awk: use character classes, which work correctly in
-         all LC_COLLATE environments, unlike A-Z, which doesnt work in
-         eg estonian collate order. Reported by Hasso.
-       * routemap.c: (rmap_onmatch_goto) fix crash if 'continue' command
-         is used, which does not supply an argv[0].
-         this is a backport candidate /iff/ the trailing ; is removed
-         from VTY_GET_INTEGER_RANGE
-       * vty.h: fix the VTY_GET macros, do {..} while(0) so they have
-         correct function like syntax in usage.
-       * workqueue.h: Add a WQ_QUEUE_BLOCKED item_status return code,
-         to allow a queue function to indicate the queue is not
-         ready/blocked - rather than any problem with the item at hand.
-         Add a notion of being able to 'plug' and 'unplug' a queue.
-         Add helpers to plug/unplug a queue.
-         Add a completion callback, to be called when a queue is emptied.
-       * workqueue.c: (work_queue_new) remove useless list_free.
-         (work_queue_schedule) new internal helper function to schedule
-         queue, if appropriate.
-         (work_queue_add) use work_queue_schedule
-         (show_work_queues) Print 'P' if queue is plugged.
-         (work_queue_plug) new API function, plug a queue - ie prevent it
-         from 'drained' / processed / scheduled.
-         (work_queue_unplug) unplug a queue, allowing it to be drained
-         / scheduled / processed again.
-         (work_queue_run) Add support for WQ_QUEUE_BLOCKED.
-         Add comment for RETRY_NOW case.
-         Make hysteris more aggresive in ramping up granularity, improves
-         performance significantly.
-         Add support for calling completion callback when queue is emptied,
-         possibly useful for knowing when to unplug a queue.
-
-2005-05-19 Paul Jakma <paul@dishone.st>
-
-       * thread.c: (thread_cancel_event) the number of pending events
-         cancelled is potentially useful information, dont throw it away,
-         pass it back to the caller.
-       * sockunion.c: (sockunion_getsockname) use MTYPE_SOCKUNION, not TMP
-         (sockunion_getpeername) ditto
-       * memtypes.c: (memory_list_bgp) add MTYPE_BGP_PEER_HOST
-
-2005-05-15 Paul Jakma <paul@dishone.st>
-
-       * getopt.h: It's not just __GNU_LIBRARY__ which defines
-         getopt, eg __EXTENSIONS__ does too on SunOS. It still seems
-         awfully fragile though.
-       * getopt.c: include zebra.h after config.h, before including
-         getopt.h so that things at least are consistent..
-       * getopt1.c: ditto
-       
-2005-05-07 Yar Tikhiy <yar@comp.chem.msu.su>
-
-       * sockopt.c: Add support for BSD style ifindex in ip_mreq.
-
-2005-05-06 Paul Jakma <paul@dishone.st>
-
-       * (general) extern and static'ification of functions in code and
-         header.
-         Cleanup any definitions with unspecified arguments.
-         Add casts for callback assignments where the callback is defined,
-         typically, as passing void *, but the function being assigned has
-         some other pointer type defined as its argument, as gcc complains 
-         about casts from void * to X* via function arguments.
-         Fix some old K&R style function argument definitions.
-         Add noreturn gcc attribute to some functions, as appropriate.
-         Add unused gcc attribute to some functions (eg ones meant to help
-         while debugging)
-         Add guard defines to headers which were missing them.
-       * command.c: (install_node) add const qualifier, still doesnt shut
-         up the warning though, because of the double pointer.
-         (cmp_node) ditto
-       * keychain.c: (key_str2time) Add GET_LONG_RANGE() macro, derived 
-         fromn vty.h ones to fix some of the (long) < 0 warnings.
-       * thread.c: (various) use thread_empty
-         (cpu_record_hash_key) should cast to uintptr_t, a stdint.h type
-       * vty.h: Add VTY_GET_IPV4_ADDRESS and VTY_GET_IPV4_PREFIX so they
-         removed from ospfd/ospf_vty.h
-       * zebra.h: Move definition of ZEBRA_PORT to here, to remove
-         dependence of lib on zebra/zserv.h
-
-2005-05-06 Hasso Tepper <hasso at quagga.net>
-
-       * sockunion.c: Fix warning message.
-
-2005-05-03 Paul Jakma <paul@dishone.st>
-
-       * stream.h: Add comment about the special zero-ing ability of
-         stream_put.
-         (stream_recvmsg, stream_write) should return ssize_t and size_t
-         respectively. Should both be extern linkage.
-         (stream_recvfrom) Stream aware wrapper around recvfrom, in style
-         of stream_read_try.
-       * stream.c: (stream_recvfrom) new function, wrapper around recvfrom.
-         (stream_recvmsg, stream_write) ssize_t and size_t return values
-         
-2005-04-27 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       Add wall-clock timing statistics to 'show thread cpu' output.
-       * thread.h: Define struct rusage_t to contain wall-clock time
-         and cpu time.  Change GETRUSAGE macro to collect both pieces
-         of data.  Make appropriate changes to struct cpu_thread_history
-         to track CPU time and real time.  Change proto for
-         thread_consumed_time to return real and cpu time elapsed.
-         And declare a new global variable 'struct timeval recent_time'.
-       * thread.c (struct timeval recent_time): New global timestamp variable.
-         (timeval_adjust): If timeout is negative, set to 0 (not 10
-         microseconds).  And remove upper bound of 1,000,000 seconds, since
-         this does not seem to make any sense (and it breaks
-         funcname_thread_add_timer_timeval).
-         (timeval_cmp): Should return long, not int.
-         (vty_out_cpu_thread_history): Show CPU time and real time.
-         (cpu_record_hash_print): Calculate totals for CPU and real time.
-         (cpu_record_print): Change 'show thread cpu' title to show CPU and
-         real time.
-         (thread_timer_remain_second): Put current time in global recent_time.
-         (funcname_thread_add_timer_timeval): Fix assert.  Replace 2-case
-         switch assignment with a ternary expression.  Use global recent_time
-         variable.  Fix use of timeval_adjust (previously, the value was not
-         actually being adjusted).
-         (thread_cancel): Add missing "break" statement in case
-         THREAD_BACKGROUND.
-         (thread_timer_wait): Use global recent_time value instead of calling
-         gettimeofday.  And there's no need to check for negative timeouts,
-         since timeval_subtract already sets these to zero.
-         (thread_timer_process): Timers are sorted, so bail out once we
-         encounter a timer that has not yet popped.  And remove some
-         extraneous asserts.
-         (thread_fetch): Do not process foreground timers before calling
-         select.  Instead, add them to the ready list just after the select.
-         Also, no need to maintain a count of the number of ready threads,
-         since we don't care how many there are, just whether there's
-         one at the head of the ready list (which is easily checked).
-         Stick current time in global variable recent_time to reduce
-         the number of calls to gettimeofday.  Tighten logic for
-         calculating the select timeout.
-         (thread_consumed_time): Now returns real time and puts the elapsed
-         cpu time in an additional argument.
-         (thread_should_yield): Use real (wall-clock) time to decide whether
-         to yield.
-         (thread_call): Maintain CPU and real time statistics.
-       * vty.c (vty_command): For slow commands, show real and cpu time.
-
-2005-04-27 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * workqueue.c (show_work_queues): Remove unused gettimeofday call.
-
-2005-04-27 Paul Jakma <paul.jakma@sun.com>
-
-       * workqueue.h: (struct work_queue_item) change retry_count to ran,
-         its a count of number item has been run.
-       * workqueue.c: (show_work_queues) Fix formating of slightly
-         bugfix: fix SIGFPE if wq->runs is 0.
-         (work_queue_run) retry logic was slightly wrong.
-         cycles.best is 0 initialy, granularity is 1, so update best
-         if cycles >= granularity, not just >.
-       * memory.h: memtypes is built source, default includes points to
-         top_builddir, so we should refer to lib/memtypes.h
-
-2005-04-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * buffer.c (buffer_write): Comment out call to buffer_flush_available.
-         This should speed up buffering at the expense of a possible increase
-         in latency in flushing the data if inside a long-running thread.
-
-2005-04-25 Paul Jakma <paul.jakma@sun.com>
-
-       * workqueue.{c,h}: Helper API for setting up and running queues via
-         background threads.
-       * command.c: install the 'show workqueues' command
-       * memtypes.c: Add work queue mtypes, and a rib-queue type for
-         a zebra rib work queue.
-       * memtypes.h: Updated to match memtypes.c
-       * Makefile.am: Refer to source files via srcdir variable, fix
-         out-of-tree build breakage.
-         Add new workqueue files to build.
-       * memory.c: Make the string field much wider
-       * memtypes.c: Correct the prefix list str/entry strings
-       * thread.c: Kill unused TIMER_NO_SORT bits
-
-2005-04-22 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * thread.h: Fix type for struct thread_master add_type: should be
-         unsigned char.  Also, add some documentation of thread_add_background
-         args.  And remove extraneous declaration of
-         show_thread_work_queues_cmd.
-
-2005-04-22 Paul Jakma <paul.jakma@sun.com>
-
-       * memory.h: Move include of memtypes.h to after the definition of
-         struct memory_list, gcc 4.0 doesn't like arrays of incomplete 
-         types.
-       * thread.h: Add background thread type and thread_add_background
-         macro and accompanying funcname_... function.
-         export thread_should_yield, background threads can use it.
-         Lower thread yield time to 10ms, 100ms is noticeable lag and
-         a thread would only be /starting/ to finish sometime afterward.
-       * thread.c: (general) Add background thread type and schedule
-         nearly all thread types through the ready list for fairness.
-         (timeval_adjust) static qualifier missing
-         (vty_out_cpu_thread_history) add support for printout of 
-         background threads
-         (show_thread_cpu) ditto.
-         (thread_master_debug) add debug of background list
-         (thread_master_create) fixup long line
-         (thread_add_unuse) add asserts for required state.
-         (thread_master_free) free background thread list
-         (funcname_thread_add_timer_timeval) make generic, able to 
-         support arbitrary timer-like thread types.
-         (funcname_thread_add_timer) pass thread type to .._add_timer_timeval
-         (funcname_thread_add_timer_msec) ditto
-         (funcname_thread_add_background) Add a background thread, with an
-         optional millisecond delay factor, using .._add_timer_timeval.
-         (thread_cancel) Add background thread type.
-         Move the thread_list_delete common to all cases to bottom of
-         function, after the switch statement..
-         (thread_cancel_event) indent
-         (thread_timer_wait) Static qualifier, and make it able to cope
-         with arbitrary timer-like thread lists, so its of use to
-         background threads too.
-         (thread_process_fd) static qualifier. Again, make it take a list
-         reference rather than thread_master. Fix indentation.
-         (thread_timer_process) Check for ready timer-like threads in the
-         given list and move them on to the ready list - code originally
-         embedded in thread_fetch.
-         (thread_fetch) Schedule all threads, other than events, through
-         the ready list, to ensure fairness. Timer readying code moved to
-         thread_timer_process so it can be reused for background threads.
-         Remove the unneeded quagga_sigevent_process, as pointed out by
-         John Lin <john.ch.lin@gmail.com>.
-         (thread_should_yield) make this available.
-       
-2005-04-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * thread.h (thread_consumed_time): Declare new function to calculate
-         elapsed microseconds.
-       * thread.c (thread_consumed_time): Must be global not static so we
-         can call it from lib/vty.c:vty_command.
-         (thread_should_yield): Surround with `#if 0' to make clear that this
-         function is not currently being used anywhere.
-         (thread_call): If CONSUMED_TIME_CHECK is defined, print a CPU HOG
-         warning message if the thread takes more than CONSUMED_TIME_CHECK
-         microseconds.
-       * vty.c (vty_command): If CONSUMED_TIME_CHECK is defined, print a CPU
-         HOG warning message if the command takes more than CONSUMED_TIME_CHECK
-         microseconds.
-
-2005-04-16 Paul Jakma <paul@dishone.st>
-
-       * memtypes.c: the comment about use of comments in the comments
-         headers was causing comment within comment warnings from compiler
-       * memtypes.awk: Add extensive comments on the file format for
-         memtypes.c.
-         tighten the pattern for the MTYPE matching action (suggestion from
-         Andrew) and tighten which field we try the match on.
-
-2005-04-15 Paul Jakma <paul@dishone.st>
-
-       * memtypes.c: The new, unified location for memory type definitions.
-         The memtype enum and declarations for memory_lists are built from
-          this automatically and put into memtypes.h.
-        * memtypes.awk: New script to generate memtypes.h from memtypes.c
-        * memory.h: Finally, the enum can banished!
-        * memory.c: Finally, the seperate mtype memory_list definitions can
-          be banished!
-          (log_memstats) Increase width of fields
-          (show_memory_zebra_cmd) display zebra specific memory types.
-          Increase width of fields.
-        * Makefile.am: Add memtypes.{c,h}, add BUILT_SOURCES for memtypes.h
-          Add a rule to build memtypes.h using memtypes.awk.
-          Add memtypes.awk to EXTRA_DIST.
-         memtypes.awk is gawk dependent, use the GAWK automake var.
-       * memtypes.h: New file, auto-generated, checked in for convenience.
-
-2005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * zclient.h (struct zclient): Add two fields to support non-blocking
-         I/O: struct buffer *wb, and struct thread *t_write.
-         (zclient_free): Remove function.
-         (zebra_redistribute_send): Change 2nd arg from socket fd to
-         struct zclient * (needed to support non-blocking I/O and buffering).
-         (zclient_send_message): New function to send an arbitrary
-         message with non-blocking I/O.
-       * zclient.c (zclient_new): Create write buffer.
-         (zclient_free): Remove unused function.
-         (zclient_stop): Must cancel new t_write thread.  Also, reset
-         all buffers: ibuf, obuf, and wb.
-         (zclient_failed): New helper function for typical error handling.
-         (zclient_flush_data): New thread to flush queued data.
-         (zclient_send_message): New function to send the message in
-         zclient->obuf to zebra using non-blocking I/O and buffering.
-         (zebra_message_send, zapi_ipv4_route, zapi_ipv6_route): Use
-         new zclient_send_message function instead of calling writen.
-         (zclient_start): Set socket non-blocking.  Also, change 2nd arg
-         to zebra_redistribute_send from zclient->sock to zclient.
-         (zebra_redistribute_send): Change 2nd arg to struct zclient *.
-         Can now use zclient->obuf to assemble the message instead of
-         allocating a temporary stream.  And call zclient_send_message to
-         send the message instead of writen. 
-         (zclient_read): Convert to support non-blocking I/O by using
-         stream_read_try instead of deprecated stream_read.
-         (zclient_redistribute): Change 2nd arg to zebra_redistribute_send
-         from zclient->sock to zclient.
-
-2005-04-09 Jeroen Simonetti <jeroens@office.netland.nl>
-
-       * routemap.c: Show description in "show route-map" output.
-
-2005-04-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * sigevent.c: On GNU_LINUX, check whether __USE_GNU is already defined.
-
-2005-04-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * vty.c: (vty_log_fixed) Use casts to (void *) to try to eliminate
-         compiler warnings when assigning a (const char *) value to
-         struct iovec iov_base.
-
-2005-04-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * zebra.h: If GNU_LINUX is defined, then define _GNU_SOURCE.  This
-         fixes a problem where we were not getting the declaration of strnlen
-         in <string.h>.
-
-2005-04-08 Hasso Tepper <hasso at quagga.net>
-
-       * routemap.[ch]: Added "description ..." command.
-
-2005-04-08 Hasso Tepper <hasso at quagga.net>
-
-       * prefix.[hc]: Pass argument to the inet6_ntoa by value making it more
-         inet_ntoa alike.
-
-2005-04-07 Paul Jakma <paul.jakma@sun.com>
-
-       * linklist.h: Add usage comments.         
-         Rename getdata macro to listgetdata.
-         Rename nextnode to listnextnode and fix its odd behaviour to be
-         less dangerous.
-         Make listgetdata macro assert node is not null, NULL list entries
-          should be bug condition.
-          ALL_LIST_ELEMENTS, new macro, forward-referencing macro for use
-          with for loop, Suggested by Jim Carlson of Sun.
-          Add ALL_LIST_ELEMENTS_RO for cases which obviously do not need the
-          "safety" of previous macro.
-         LISTNODE_ADD and DELETE macros renamed to ATTACH, DETACH, to
-         distinguish from the similarly named functions, and reflect their
-         effect better.
-         Add a QUAGGA_NO_DEPRECATED_INTERFACES define guarded section 
-         with the old defines which were modified above, 
-         for backwards compatibility - guarded to prevent Quagga using it..
-       * linklist.c: fix up for linklist.h changes.
-       * *.c: fix up for new list loop macro, try audit other loop
-          usage at same time, to some degree.
-
-2004-04-05 Hasso Tepper <hasso at quagga.net>
-
-       * lib/prefix.[hc]: inet6_ntoa utility function copied from
-         ripngd/ripngd.c (inet6_ntop).
-
-2004-04-05 Paul Jakma <paul@dishone.st>
-
-       * vty.c: Improve logging of failures to open vty socket(s).
-         See bugid #163.
-
-2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * if.h: Fix comments to reflect that if_lookup_by_name and
-         if_get_by_name now require the argument strings to be NUL-terminated.
-       * if.c: (if_lookup_by_name) Compare using strcmp.
-         (if_get_by_name) Pass strlen(ifname) as 2nd arg to if_create.
-
-2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * if.c: (if_nametoindex) The man page is rather vague, but it seems
-         like the argument to if_nametoindex has an implicit maximum length
-         of IFNAMSIZ characters.
-
-2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * if.h: (if_lookup_by_name_len, if_get_by_name_len) New functions.
-       * if.c: (if_lookup_by_name_len, if_get_by_name_len) New functions.
-         (if_get_by_name) Tighten up code.
-         (interface) Use new function if_get_by_name_len.
-       * zclient.c: (zebra_interface_add_read) Use new if_get_by_name_len
-         function.
-         (zebra_interface_state_read) Use new if_lookup_by_name_len function.
-
-2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * str.c: Replace strlcpy and strlcat with actual working versions
-         copied from rsync-2.6.2/lib/compat.c.
-
-2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * if.h: Remove define for IFINDEX_INTERNBASE and add define
-         IFINDEX_INTERNAL 0, since all internal (i.e. non-kernel) pseudo-
-         interfaces should have ifindex set to 0.
-         (if_new) Remove function.
-         (if_delete_retain) New function to delete an interface without
-         removing from iflist and freeing the structure.
-         (ifname2ifindex) New function.
-       * if.c: (if_new) Remove function (absorb into if_create).
-         (if_create) Replace function if_new with call to calloc.
-         Set ifp->ifindex to IFINDEX_INTERNAL.  Fix off-by-one error
-         in assert to check length of interface name.  Add error message
-         if interface with this name already exists.
-         (if_delete_retain) New function to delete an interface without
-         removing from iflist and freeing the structure.
-         (if_delete) Implement with help of if_delete_retain.
-         (ifindex2ifname) Reimplement using if_lookup_by_index.
-         (ifname2ifindex) New function to complement ifindex2ifname.
-         (interface) The interface command should check the name length
-         and fail with a warning message if it is too long.
-         (no_interface) Fix spelling in warning message.
-         (if_nametoindex) Reimplement using if_lookup_by_name.
-         (if_indextoname, ifaddr_ipv4_lookup) Reimplement using
-         if_lookup_by_index.
-
-2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * zebra.h: Should include str.h to pick up missing functions.
-       * str.h: Declare strnlen if needed.
-       * str.c: Do not include str.h since zebra.h now includes it.
-         (strnlen) New function.
-
-2005-03-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * zebra.h: Must check whether __attribute__ should be defined before
-         including zassert.h.
-
-2005-03-14 Paul Jakma <paul.jakma@sun.com>
-
-       * command.c: (sort_node) use vector_max instead of referencing 
-         (struct vector *)->max directly. Test that vector_max is > 0 
-         before using it to calculate an index.
-         Fixup vector loop to make main body conditional on vector slot
-         not being empty.
-         (cmd_cmdsize) Fixup vector loop to make main body conditional on
-         vector slot not being empty.
-         (cmd_filter_by_completion) ditto
-         (cmd_filter_by_string) ditto 
-         (is_cmd_ambiguous) ditto
-         (cmd_describe_command_real) Change index integers to unsigned.
-         Test that vector_max is > 0 before using it to calculate an index.
-         Return immediately with CMD_ERR_NO_MATCH if vline has no 
-         active slots.
-         Fixup vector loop to make main body conditional on vector slot
-         not being empty.
-         (cmd_complete_command_real) ditto.
-         (cmd_execute_command_strict) Fixup vector loop to be conditional
-         on non-null slot.
-         (various) Fix indentation and other whitespace.
-         vector.h: Rename to (struct vector).max to slightly less confusing
-         active, for the number of active slots, distinct from allocated
-         or active-and-not-empty. Rename vector_max to vector_active 
-         for same reason.
-
-2005-03-09 Paul Jakma <paul.jakma@sun.com>
-
-       * command.c: Undo commit of sign warning fix and hidden command
-         in list_cmd. Sign warning is more subtle. list_cmd on its own
-         will be committed after.
-       * command.c: (config_list_cmd) Don't list hidden or deprecated
-         commands, hiding these from tab completion is still to be done.
-
-2005-03-08 Paul Jakma <paul.jakma@sun.com>
-
-       * command.c: (banner_motd_file_cmd) use XSTRDUP/XFREE.
-         (no_banner_motd_cmd) use XFREE.
-         (cmd_describe_command_real) sign compile warning fix
-         (cmd_complete_command_real) ditto.
-         (config_list_cmd) Don't list hidden or deprecated commands,
-         hiding these from tab completion is still to be done.
-       * command.h: cmd attr enum should start at 1.
-       * vty.c: (vty_hello) suggestions from Andrew, read by line and
-         stub out trailling non-printable characters on each line thus
-         allowing us to specify VTY_NEWLINE to vty_out.
-
-2005-03-08 Jeroen Massar <jeroen@unfix.org>
-
-       * vty.c: (vty_hello) display motd file, if set
-       * command.h: add char *motdfile to struct host
-       * command.c: (config_write_host) write out motdfile config
-         (banner_motd_file_cmd) new command, allow motd to be read from
-         file.
-         (no_banner_motd_cmd) free motdfile string, if needs be.
-         (cmd_init) init (struct host).motdfile. Add new motd file
-         commands.
-
-2005-03-07 Michael Sandee <voidptr@voidptr.sboost.org>
-
-       * command.c: host.name might be NULL.
-       * vty.c: Fix fd leak.
-
-2005-02-24 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * stream.c: (stream_read_try) Log a warning message if a fatal
-         I/O error occurs.
-         (stream_fifo_new) Fix prototype.
-       * stream.h: Fix prototype for stream_fifo_new (need void arg).
-
-2005-02-23 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * {vty.h,vty.c}: Remove vty_finish (duplicate of vty_reset).
-
-2005-02-23 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * buffer.h: Make the struct buffer and struct buffer_data structures
-         private by moving them inside buffer.c.  Add comments for all
-         functions.  Rename buffer_write as buffer_put (to be more consistent
-         with the buffer_putc and buffer_putstr functions).  Declare a new
-         buffer_write function that is used to write data to a file descriptor
-         and/or add it to the buffer queue.  Remove unused function
-         buffer_flush_vty_all.  Create a new enum typedef buffer_status_t
-         to be used as the return code for all buffer_flush* functions
-         and buffer_write.
-       * buffer.c: The struct buffer and struct buffer_data declarations
-         are now private to this file.  In conjunction with that, remove
-         some unnecessary fields: struct buffer (alloc, unused_head,
-         unused_tail, length), struct buffer_data (prev).
-         (buffer_data_new) Removed: functionality incorporated into buffer_add.
-         (buffer_data_free) Removed: use a macro BUFFER_DATA_FREE instead.
-         (buffer_new) Use calloc instead of malloc + memset(zero). 
-         Supply an appropriate default size if the specified size is 0.
-         (buffer_free) Eliminate code duplication by calling buffer_reset to
-         free the contents of the buffer (and remove unused code related
-         to unused_head).
-         (buffer_empty,buffer_putc,buffer_putstr) Aesthetic change (make more
-         compact).
-         (buffer_reset) Use macro BUFFER_DATA_FREE.  No need to set
-         alloc and length to 0 (these fields have been removed).
-         (buffer_add) Fix scope to be static.  Call XMALLOC directly instead
-         of calling removed buffer_data_new function.  Simplify the logic
-         (since it's now a singly-linked list instead of doubly-linked).
-         (buffer_write) Renamed to buffer_put.  Change to void, since return
-         code of 1 was meaningless.  No need to adjust length field, since
-         it has been removed.
-         (buffer_putw,buffer_flush,buffer_flush_vty_all,buffer_flush_vty)
-         Remove unused functions.
-         (buffer_flush_all) Rewrite using buffer_flush_available to eliminate
-         a possible failure mode if IOV_MAX is less than the number of buffers
-         on the queue.
-         (buffer_flush_window) Incorporate logic from buffer_flush_vty.
-         Log an error message if there is a writev error.
-         (buffer_flush_available) Be more paranoid: check for case where
-         buffer is already empty.  Use new ERRNO_IO_RETRY macro, and use
-         new enum for return codes.  Simplify deletion logic (since it's
-         now a singly-linked list).
-         (buffer_write) New function for use with non-blocking I/O.
-       * vty.h: Replace the struct vty sb_buffer field with a fixed-size
-         (5-character) sb_buf field and an sb_len field, since using
-         a struct buffer was inappropriate for this task.  Add some useful
-         comments about telnet window size negotiation.
-       * vty.c: Include <arpa/telnet.h> (no longer included by zebra.h).
-         Remove VTY_OBUF_SIZE (instead use buffer_new default size).
-         Make telnet_backward_char and telnet_space_char static const.
-         (vty_out) Replace buffer_write with buffer_put.
-         (vty_log_out) Check for I/O errors.  If fatal, close the vty session.
-         Consolidate 3 separate writes into a single write call.
-         (vty_will_echo,vty_command,vty_next_line,vty_previous_line,
-         vty_end_config,vty_describe_fold,vty_clear_buf,vty_serv_sock_addrinfo,
-         vty_serv_sock_family,vty_serv_un,vty_use_backup_config,exec_timeout,
-         vty_config_write,vty_save_cwd) Fix scope to static.
-         (vty_new) Let buffer_new use its default buffer size.
-         (vty_write) Fix signature: 2nd arg should be const char *.
-         Replaced buffer_write with buffer_put.
-         (vty_telnet_option) Fix minor bug (window height or width greater than
-         255 was broken).  Use sb_buf and sb_len instead of removed sb_buffer
-         (which was being used improperly).
-         (vty_read) On error, use ERRNO_IO_RETRY to decide whether it's fatal.
-         If the error is fatal, call buffer_reset so vty_close does not attempt
-         to flush the data.  Use new sb_buf and sb_len instead of sb_buffer
-         to store the SB negotiation string.
-         (vty_flush) When vty->lines is 0, call buffer_flush_available instead
-         of buffer_flush_window.  Look at the return code from buffer_flush
-         to detect I/O errors (and in that case, log an error message and
-         close the vty).
-         (vty_create) Fix scope to static.  Initialize sb_len to 0 instead
-         of creating sb_buffer.
-         (vty_accept) Set socket nonblocking.
-         (vtysh_accept) Use new set_nonblocking function instead of calling
-         fcntl directly.
-         (vtysh_flush) New function called from vtysh_read (after command
-         execution) and from vtysh_write.  This flushes the buffer
-         and reacts appropriately to the return code (by closing the vty
-         or scheduling further flushes).
-         (vtysh_read) Check whether error is fatal using ERRNO_IO_RETRY.
-         If not, just try again later.  Otherwise, call buffer_reset before
-         calling vty_close (to avoid trying to flush the buffer in vty_close).
-         Fix logic to allow case where a command does not arrive atomically
-         in a single read call by checking for the terminating NUL char.
-         (vtysh_write) Use new vtysh_flush helper function.
-         (vty_close) No need to call buffer_empty, just call buffer_flush_all
-         in any case (it will check whether the buffer is empty).
-         Do not free sb_buffer (since it has been removed).
-         (vty_log_fixed) Use writev instead of write.
-       * zebra.h: Do not include <arpa/telnet.h>, since this is used only
-         by lib/vty.c.
-
-2005-02-21 Vincenzo Eramo <eramo at infocom.ing.uniroma1.it>
-
-       * pqueue.[ch]: Introduce "update" function to meet ospf spf needs. It
-         will allow to update node when:
-         i) a node is inserted into the priority queue;
-         ii) a node position is modified in the priority queue;
-       * pqueue.h: Export trickle_down() function.
-
-2005-02-19 Paul Jakma <paul.jakma@sun.com>
-
-       * stream.c: (stream_new) fix dumb mistake.
-
-2005-02-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * stream.c: (stream_read_try) Use new ERRNO_IO_RETRY macro.
-
-2005-02-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * network.h: Define a new ERRNO_IO_RETRY macro to test whether an I/O
-         operation should be retried.  This eliminates the need to duplicate
-         the same logic testing for EAGAIN or EINTR in multiple places.
-
-2005-02-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * stream.h: Declare new function stream_read_try suitable for use
-         with non-blocking file descriptors.  Indicate that stream_read
-         and stream_read_unblock are deprecated.
-       * stream.c: (stream_read_try) New function for use with non-blocking
-         I/O.
-         (stream_recvmsg) Should return -1 if the stream is too small to
-         contain the data.
-
-2005-02-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * network.c: (set_nonblocking) Should check return code from
-         fcntl(F_GETFL).
-
-2005-02-15 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-       
-       * network.h: Declare new function set_nonblocking.  Indicate that
-         readn and writen are deprecated.
-       * network.c: (set_nonblocking) New function to make a file descriptor
-         non-blocking, since it seems silly to have fcntl calls sprinkled
-         throughout the code.
-
-2005-02-14 Paul Jakma <paul.jakma@sun.com>
-
-       * stream.h: Unsigned long updated to size_t
-       * stream.c: ditto
-       * stream.h: Add stream_copy, stream_dup, stream_recvmsg.
-         Add comment describing struct stream abstraction, and various
-         other comments.
-         Deprecate several unsafe/ambigious macros.
-         Add STREAM_WRITEABLE and STREAM_READABLE.
-         Add (stream_getl_from) for symmetry.
-         Update stream_forward_{endp,getp} to use size_t offset.
-         Make stream data a 0 length array, rather than a seperate malloc.
-       * stream.c: Add consistency checks. Update to follow stream.h
-         changes.
-         (stream_new) Alloc stream+data in one go.
-         (stream_copy) new function, copy a stream.
-         (stream_dup) new function, dup a stream.
-         (stream_recvmsg) new function, recvmsg data into a stream.
-         (stream_empty) no need to check getp == 0.
-
-2005-02-09 Paul Jakma <paul.jakma@sun.com>
-
-       * stream.h: Remove putp. Update reference to putp with endp.
-         Add stream_forward_endp, which daemons were doing manually.
-         Rename stream_forward to stream_forward_getp.
-         stream.c: Remove/update references to putp.
-         introduce stream_forward_endp.
-
-2005-02-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * zebra.h: Change macro definitions SET_FLAG and UNSET_FLAG
-         to use compound assignment operators (aesthetic change).
-
-2005-02-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * log.c: (zlog_signal,zlog_backtrace_sigsafe) Eliminate use of fileno()
-         since it is not async-signal-safe.
-         (_zlog_assert_failed) Rewrite crashlog logic more compactly.
-         (zlog_set_file,zlog_reset_file,zlog_rotate) Update logfile_fd
-         for use in signal handler.
-
-2005-02-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * log.c: (syslog_sigsafe) Reduce scope of syslog_fd: it is accessed
-         inside this function only.
-         (open_crashlog) New function to open /var/tmp/quagga.<daemon>.crashlog
-         with flags O_WRONLY|O_CREAT|O_EXCL to save some crash info.
-         (zlog_signal,_zlog_assert_failed) Increase logging priority from
-         LOG_ERR to LOG_CRIT.  If no file logging is configured, try to use
-         open_crashlog to create a crash logfile.
-         (zlog_backtrace_sigsafe) If a crashlog file descriptor is open,
-         dump a backtrace to that file.
-
-2005-02-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * if.h: Declare if_flag_dump.
-
-2005-01-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * daemon.c: (daemon) Replace perror with zlog_err.
-       * vty.c: (vty_serv_un) Replace perror with zlog_err.
-
-2005-01-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * buffer.h: Fix comment on buffer_getstr to reflect that it now
-         uses XMALLOC.
-       * buffer.c: (buffer_getstr) Use XMALLOC(MTYPE_TMP) instead of malloc.
-       * filter.c: (access_list_remark,ipv6_access_list_remark) Use
-         argv_concat instead of buffer_getstr.
-       * if.c: (interface_desc) Use argv_concat instead of buffer_getstr.
-       * plist.c: (ip_prefix_list_description,ipv6_prefix_list_description)
-         Use argv_concat instead of buffer_getstr.
-
-2005-01-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * lib/buffer.h: Document behavior of buffer_getstr function.
-       * lib/buffer.c: (buffer_getstr) Fix bug: must handle case where
-         the string extends beyond the head struct buffer_data.
-
-2005-01-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * lib/command.h: Document behavior of argv_concat function.
-       * lib/command.c: (argv_concat) Calculate total string length first so
-         we can call malloc just once (instead of realloc'ing to add each
-         string element).
-         (do_echo,config_logmsg) Allow for possible NULL return value from
-         argv_concat.
-
-2005-01-23 Hasso Tepper <hasso at quagga.net>
-
-       * lib/command.[ch]: Make node_parent() function nonstatic. vtyh.c will
-         use it as well.
-
-2005-01-18 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * log.h: Test for SA_SIGINFO to see whether zlog_signal takes final
-         two args (siginfo and program_counter).
-       * log.c: (hex_append) Include this function only if SA_SIGINFO or
-         HAVE_GLIBC_BACKTRACE is defined.
-         (zlog_signal) Final two args (siginfo and program_counter) now
-         depend on whether SA_SIGINFO is defined on this platform.
-       * sigevent.c: (program_counter) Do not include this function if
-         SA_SIGINFO is not defined on this platform.
-         (exit_handler,core_handler) Test for SA_SIGINFO to decide whether
-         2nd & 3rd arguments are present and to decide how to invoke
-         zlog_signal.
-         (trap_default_signals) Test for SA_SIGINFO and invoke sigaction
-         appropriately.
-
-2005-01-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * log.h: Change prototype for zlog_backtrace_sigsafe to take additional
-         program_counter argument.
-       * log.c: (zlog_backtrace_sigsafe) Add additional program_counter
-         argument.  If it is non-NULL, use backtrace_symbols_fd to resolve
-         the address.
-         (zlog_signal) Call zlog_backtrace_sigsafe with additional
-         program_counter argument.
-
-2005-01-17 Hasso Tepper <hasso at quagga.net>
-
-       * command.[ch], vty.c: cmd_execute_command() function must not attempt
-         to walk up in the node tree if called from vtysh. Different daemons
-         might have commands with same syntax in different nodes (for example
-         "router-id x.x.x.x" commands in zebra/ospfd/ospf6d daemons).
-
-2005-01-14 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * command.c (print_version): Do not bother even to examine host.name,
-         since it is always NULL when this function is called from main.
-
-2005-01-14  Greg Troxel  <gdt@fnord.ir.bbn.com>
-
-       * command.c (print_version): Don't print host.name if it is NULL.
-       Fixes segfault on Solaris reported by Goetz von Escher <goetz@open.ch>
-       
-2005-01-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * sigevent.c: (trap_default_signals) Use the SA_SIGINFO flag to
-         pass additional siginfo_t and ucontext_t arguments to core_handler
-         and exit_handler.
-         (core_handler,exit_handler) Now invoked with 3 arguments (using
-         SA_SIGINFO).  Pass additional info to zlog_signal.
-         (program_counter) New function to find program counter in ucontext_t,
-         needs to be enhanced to support more platforms (currently works only
-         on Linux/x86).
-       * log.h: Change the zlog_signal prototype to add new arguments
-         siginfo_t * and program_counter.
-       * log.c: (zlog_signal) Add new arguments siginfo and program_counter.
-         Include si_addr and program counter (if non-NULL) in message.
-         And remove #ifdef HAVE_GLIBC_BACKTRACE around hex_append, since
-         that is now used to render the si_addr and PC pointers.
-
-2005-01-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * zebra.h: If not C99 and no va_copy macro available, fall back to
-         memcpy (solves a build problem on FreeBSD 4.x).
-
-2005-01-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * zebra.h: Define ZCMSG_FIRSTHDR appropriately based on whether
-         config.h indicates HAVE_BROKEN_CMSG_FIRSTHDR (as determined
-         by the configure test program).
-       * sockopt.c: (getsockopt_cmsg_data) Use ZCMSG_FIRSTHDR instead
-         of CMSG_FIRSTHDR.
-
-2005-01-02 Hasso Tepper <hasso at quagga.net>
-
-       * command.c: Revert int -> unsigned int fixes in
-       cmd_describe_command_real() and cmd_complete_command_real(). index can
-       be actually negative and it caused crash with "do<TAB>" in vty.
-
-2004-12-29  Greg Troxel  <gdt@poblano.ir.bbn.com>
-
-       * sockopt.c (getsockopt_ipv4_ifindex): Document calling
-       convention.  Beef up comments.  Handle the case where the cmsghdr
-       has a zero controllen, or more specifically when the wanted option
-       is not present.  This is needed for Solaris 8, and in general for
-       any platform for which configure finds a method and it can fail.
-       Mark some changes with XXX to be cleaned up post 0.98.  
-       
-2004-12-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * sockopt.c: (setsockopt_ipv4_ifindex) Improve error message.
-         When neither IP_PKTINFO nor IP_RECVIF is defined, make return value
-         deterministic (-1).
-
-2004-12-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * thread.c: (funcname_thread_add_timer_msec) Reduce overflow risk.
-
-2004-12-21 Paul Jakma <paul.jakma@sun.com>
-
-       * if.h: Add more 'non-generic' IFF_ flags.
-       * if.c: IFF_NOXMIT/IFF_VIRTUAL interfaces are 'loopback like'
-       * stream.c: Dont allocate streams with 0 sized data buffers
-
-2004-12-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * command.c: (do_echo) Added new "echo" command, useful for
-         watchdog pinging to make sure the daemon is responsive.
-
-2004-12-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-       
-       * pid_output.c: (pid_output_lock) Eliminate static function, and just
-         use the #ifdef to decide which version of the function to include.
-         This eliminates a compilation problem with gcc4.  And fix the
-         non-fcntl version so that it actually compiles.  Exit with
-         status 1 instead of -1 on error.
-
-2004-12-15 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * sigevent.c: (trap_default_signals) Ignore SIGPIPE instead of exiting.
-
-2004-12-10 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-       
-       * log.c: (zlog_signal,_zlog_assert_failed) Change logging level back to
-         LOG_ERR instead of LOG_EMERG.
-
-2004-12-09 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * log.c: (hex_append) No need to include this function if
-         HAVE_GLIBC_BACKTRACE is not defined.
-
-2004-12-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * prefix.c: (prefix_copy) Error message before abort should
-         have severity LOG_ERR, not LOG_INFO.
-       * memory.c: (mtype_log) Log level should be LOG_DEBUG, not LOG_INFO.
-
-2004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * {smux.c,zclient.c}: Change level of debug messages to LOG_DEBUG.
-
-2004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * command.c: (config_write_host) Note that "log trap" is deprecated
-         when writing out the config.
-
-2004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * log.h: Replace struct zlog flags and maskpri fields with maxlvl
-         array to support individual logging levels for each destination.
-         Remove the 2nd argument to openzlog since the default logging config
-         should be standardized inside the library.  Replaced the
-         zlog_set_flag and zlog_reset_flag functions with zlog_set_level.
-         And zlog_set_file now requires an additional log_level argument.
-         Declare zlog_proto_names for use inside command.c in the
-         "show logging" command.  Added defines useful for command
-         construction.
-       * log.c: (vzlog) Decide where to send the message based on the
-         individual logging levels configured for each destination.
-         Remove support for ZLOG_STDERR since it was never actually used.
-         Support record-priority for terminal monitors.
-         (zlog_signal,zlog_backtrace_sigsafe) Support destination-specific
-         logging levels.  Remove stderr support (was never used).  Added
-         support for terminal monitor logging.
-         (_zlog_assert_failed) Increase message severity to LOG_EMERG.
-         (openzlog) Remove 2nd argument since default config should be
-         standardized in library.  By default, terminal monitoring
-         is set to debug, and all other logging is disabled.
-         (zlog_set_flag,zlog_reset_flag) Removed.
-         (zlog_set_level) New function to replace zlog_set_flag and
-         zlog_reset_flag.  Supports destination-specific logging levels.
-         (zlog_set_file,zlog_reset_file) Support file-specific logging level.
-         (zlog_rotate) Log an error message if fopen fails, and support
-         new file-specific logging level.
-       * command.h: Change DEFUN_CMD_FUNC_DECL and DEFUN_CMD_FUNC_TEXT so that
-         command functions will be static instead of global.  Remove
-         declarations for config_exit and config_help.  Define new macros
-         DEFUNSH_ATTR, DEFUNSH_HIDDEN, and DEFUNSH_DEPRECATED so we can
-         have deprecated commands in vtysh.  Similarly, for completeness,
-         define macros ALIAS_SH, ALIAS_SH_HIDDEN, and ALIAS_SH_DEPRECATED.
-         Also, fix bug in ALIAS_ATTR macro (didn't matter because it
-         was never used).
-       * command.c: Make many functions static instead of global.
-         (facility_name,facility_match,level_match) New functions
-         to support enhanced destination-specific logging levels.
-         (config_write_host) Support new destination-specific logging levels.
-         (config_logmsg) Added new "logmsg" command to help test logging
-         system.
-         (show_logging) Added "show logging" command to show the current
-         configuration of the logging system.
-         (config_log_stdout_level) Support explicit stdout logging level.
-         (no_config_log_stdout) Now takes optional LEVEL arg.
-         (config_log_monitor,config_log_monitor_level,no_config_log_monitor)
-         New commands creating new "log monitor" commands to set terminal
-         monitoring log level.
-         (config_log_file_level) Support explicit file logging level.
-         (config_log_syslog_level) Support explicit syslog logging level.
-         (config_log_facility,no_config_log_facility) Implement new
-         "log facility" command.
-         (cmd_init) Add hooks for new commands: "show logging", "logmsg",
-         "log stdout <level>", "log monitor", "log monitor <level>",
-         "no log monitor", "log file <filename> <level>",
-         "no log file <filename> <level>", "log syslog <level>",
-         "log facility", and "no log facility".
-       * vty.h: Added a "level" argument to vty_log so it can support
-         "log record-priority".  Declare new function vty_log_fixed for
-         use in signal handlers.
-       * vty.c: (vty_log,vty_log_out) Added a "level" argument to support
-         "log record-priority" for vty terminal monitors.
-         (vty_down_level) Use config_exit_cmd.func instead of calling
-         config_exit directly (since command functions will now be static
-         instead of global).
-         (vty_log_fixed) New function to send terminal monitor messages
-         from inside a signal handler.
-
-2004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * log.h: Document appropriate use of syslog logging priorities
-         inside quagga.
-
-2004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * command.h: Remove fields log_stdout and log_syslog from struct host,
-         since they are just trying to duplicate information in the
-         zlog_default structure.  Note that this fixes a bug since those
-         fields were not registering any logging that was established
-         in the initial call to openzlog (this affects only the zebra and
-         ospf6d daemons).  It is probably a bug to turn on any logging by
-         default in the call to openzlog.
-       * command.c: (config_write_host) Get logging info from zlog_default
-         instead of now-removed fields host.log_stdout and host.log_syslog.
-         (config_log_stdout,no_config_log_stdout) Do not set now-removed field
-         host.log_stdout, since this info is recorded in zlog_default.
-         (config_log_file) Use XSTRDUP (instead of strdup) to set host.logfile.
-         (config_log_syslog,config_log_syslog_facility,no_config_log_syslog)
-         Do not set now-removed field host.log_syslog, since this info is
-         recorded in zlog_default.
-
-2004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * version.h.in: Remove declaration for pid_output_lock, this function
-         is now static, not global.
-       * pid_output.c: (pid_output_lock) This function should be static, not
-         global.  And remove "old umask" error message, since it was really
-         an unimportant debug message, not an error.
-         (pid_output) Need to declare static function pid_output_lock.
-
-2004-11-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * log.h: Remove several unused fields from struct zlog.  Add comments
-         for other fields, and add one new field syslog_options that is
-         used in the new syslog_sigsafe implementation.
-       * log.c: (syslog_sigsafe) New function to send syslog messages in
-         an async-signal safe way that can be used inside a signal handler.
-         (syslog_connect) New function to connect to syslog daemon inside a
-         signal handler.  This function supports only systems where /dev/log
-         is a unix datagram socket (e.g. not Solaris).
-         (zlog_signal) Call syslog_sigsafe if syslog logging is enabled.
-         (zlog_backtrace_sigsafe) Call syslog_sigsafe if syslog logging is
-         enabled.
-         (openzlog) Save syslog_options for use in syslog_sigsafe.
-         (num_append) Fix bug: handle 0 properly.
-         (hex_append) New function to print a u_long in hex format.
-
-2004-11-28 Hasso Tepper <hasso at quagga.net>
-
-       * command.h: DEFUN_DEPRECATED passes attribute to DEFUN as well.
-
-2004-11-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * log.c, log.h, memory.c: Change function name from zlog_backtrace_safe
-         to the more self-explanatory zlog_backtrace_sigsafe.
-
-2004-11-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * debug.[ch]: Remove unused files.
-       * Makefile.am: Remove references to debug.c and debug.h
-
-2004-11-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * log.c: (zlog_backtrace) New function to log a backtrace.
-         (zlog_backtrace_safe) Log a backtrace in an async-signal-safe way.
-         Unfortunately, this function does not support syslog logging yet.
-         (zlog_signal) Move backtrace code into separate function
-         zlog_backtrace_safe.
-         (_zlog_assert_failed) Call zlog_backtrace before aborting.
-       * log.h: Declare new functions zlog_backtrace and zlog_backtrace_safe.
-       * memory.c: (zerror) Call zlog_backtrace before aborting.
-
-2004-11-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * Makefile.am: Need to add zassert.h to pkginclude_HEADERS.
-
-2004-11-25 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * zebra.h: If not C99 and there's no va_copy macro and there is
-         a __va_copy macro, define va_copy as __va_copy.
-
-2004-11-25 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * pid_output.c: (pid_output_lock) Fix 2 bugs: when locking, should
-         set l_whence to SEEK_SET, not SEEK_END.  And after writing new
-         pid to file, must ftruncate to eliminate any extraneous bytes left
-         over from the last time a pid was written.
-
-2004-11-24 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * zassert.h: New header file to declare a quagga-specific assert macro.
-       * log.c: (_zlog_assert_failed) New function called when assert fails
-         to log the error and abort.
-       * zebra.h: Include "zassert.h" instead of <assert.h>.
-       * regex.c: Include "zassert.h" instead of <assert.h>.
-
-2004-11-23 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * sigevent.c: (signal_init) Set up some default signal handlers
-         so that processes will issue an error message before terminating
-         or dumping core.
-         (trap_default_signals) New function to set up signal handlers
-         for various signals that may kill the process.
-         (exit_handler) Call zlog_signal, then _exit.
-         (core_handler) Call zlog_signal, then abort.
-       * log.h: Declare new function zlog_signal.
-       * log.c: (zlog_signal) New function to log information about
-         a received signal before the process dies.  Try to log a 
-         backtrace also.
-         (quagga_signal_handler,signal_set) Should be static.
-
-2004-11-23 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * log.c: (vzlog) Take a single va_list argument and use va_copy
-         as necessary for multiple traversals.
-         (zlog) Pass only one va_list to vzlog.
-         (zlog_*,plog_*) Use a macro for boilerplate code; pass only one
-         va_list to vzlog.
-         (zlog_set_file) Remove unused 2nd argument (flags).
-         (zlog_save_cwd,zlog_get_cwd,zlog_free_cwd) Remove unused functions.
-       * log.h: Remove ZLOG_*_INDEX defines (no longer used).
-         Remove unused 2nd argument from zlog_set_file prototype.
-         Fix prototype for zlog_rotate.
-       * command.c: (config_log_file) Remove unused 2nd arg to zlog_set_file.
-       * vty.c: (vty_out) Fix stdarg usage to perform multiple traversals
-         properly.
-         (vty_log) Must use va_copy for multiple traversals of va_list arg.
-
-2004-11-19 David Young <dyoung@pobox.com>
-
-       * log.c: (safe_strerror) New function: safe wrapper for strerror.
-
-2004-11-19 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * sockopt.c: (setsockopt_so_recvbuf) Stop error message from being
-         printed every time.
-
-2004-11-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * memory.h: Fix prototype for memory_init().
-       * memory.c: Declare many functions and data structures static instead
-         of global.  Fix prototype for memory_init().
-
-2004-11-15  Greg Troxel  <gdt@fnord.ir.bbn.com>
-
-       * sockopt.h: Avoid CMSG_ALIGN, and declare that sizes are without
-       alignment (users should use CMSG_SPACE).
-
-       * zebra.h: Rationalize CMSG_SPACE compatibility defines.  Warn if
-       asumming 4-byte alignment, since this isn't safe.
-
-2004-11-15 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * memory.c: (zerror) Use zlog_err instead of fprintf to stderr.
-         Instead of exiting, log currenty memory usage and then abort.
-         (log_memstats) New function to log memory statistics, called by
-         zerror.
-         (show_memory_all) Loop over new mlists array instead of calling
-         show_memory_vty separately for each memory_list.
-
-2004-11-08 Paul Jakma <paul@dishone.st>
-
-       * buffer.c: Add missing include of log.h.
-         (buffer_flush_available) written is compared against
-         mostly against unsigned types, only for the writev do we need
-          signed compare, so declare it as size_t and cast it to ssize_t
-          just for the error compare when we've called writev.
-       * buffer.h: Add comment that buffer data sizes really should be 
-          size_t.
-
-2004-11-07 Paul Jakma <paul@dishone.st>
-
-       * version.h.in: add autoconf configure_input output var
-
-2004-11-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * vty.h: Remove fields in struct vty that were related to VTY_CONTINUE
-         capabilities (that were used only in bgpd/bgp_route.c and are now
-         removed).  Also remove some other fields that were not being
-         used at all.
-       * vty.c: (vty_execute) Do not test for obsolete status values VTY_START
-         and VTY_CONTINUE.
-         (vty_read) Remove calls to vty->output_func since that was part
-         of the VTY_CONTINUE infrastructure that has been removed.
-         (vty_flush) Remove code to support VTY_START and VTY_CONTINUE.
-         (vty_close) Remove code to cancel vty->t_output thread, since that
-         thread was never actually used.
-
-2004-11-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * vty.c: Vtysh connections to daemons should use buffering.
-         (vty_out) Remove exception for vty_shell_serv, just use buffer_write.
-         (vty_new) Increase output buffer size to 4096 rounded up to a
-         multiple of pagesize.
-         (vtysh_read) After command has been executed and all output buffered,
-         call buffer_flush_available and schedule further writes if the
-         buffers are not yet empty.
-         (vtysh_write) New function to flush output to vtysh when the socket
-         is writeable.
-         (vty_event) Added new VTYSH_WRITE event for flushing buffers to vtysh
-         clients.  Also, should save read thread in vty->t_read so the
-         thread can be cancelled in vty_close.
-       * buffer.h: In struct buffer_data, remove unused "parent" field.
-         Convert "unsigned char *data" to "unsigned char data[0]" to save
-         a malloc.  Declare new function buffer_flush_available that works
-         with non-blocking sockets.
-       * buffer.c: (buffer_data_new) Use a single malloc now that data is
-         a variable-size array at end of structure.
-         (buffer_data_free) Just a single free now that data is part of the
-         structure.
-         (buffer_write) Simplify the logic to make behavior more transparent.
-         (buffer_flush) Decrease b->length as data is written out.
-         (buffer_flush_vty_all) Decrease b->length as buffers are freed.
-         (buffer_flush_vty) Decrease b->length as data is written out.
-         (buffer_flush_available) New function to flush non-blocking sockets.
-         
-2004-11-01 Paul Jakma <paul@dishone.st>
-
-       * sockopt.c: (setsockopt_pktinfo) remove, its unused.
-
-2004-10-31 Paul Jakma <paul@dishone.st>
-
-       * vty.c: As per Andrew's suggestions..
-         (vty_serv_un) remove flags.
-         (vtysh_accept) close socket if we cant set NONBLOCK. Add flags.
-       * keychain.c: Convert some more strtoul users to VTY_GET_INTEGER.
-       * memory.h: Add MTYPE_THREAD_FUNCNAME and MTYPE_THREAD_STATS
-       * thread.c: Update stats and funcname alloc/free to use previous
-         specific memory type defines. Use XCALLOC and sizeof the type,
-          not the pointer.
-       * smux.c: fix int to size_t compile warnings
-
-2004-10-29 Paul Jakma <paul@dishone.st>
-
-       * vty.c: Move setting of sock to O_NONBLOCK from vty_serv_un
-         to vtysh_accept, where sock is the actual fd we wanted to set to
-          O_NONBLOCK, ie the /connected/ vtysh unix socket.
-
-2004-10-23 Hasso Tepper <hasso at quagga.net>
-
-       * zclient.c: Unbreak reading interface update message. Might fix
-       blocker bugzilla #109.
-
-2004-10-22 Paul Jakma <paul@dishone.st>
-
-       * sockopt.c: (getsockopt_ipv4_ifindex) no ifindex should be 0, not
-          -1. 
-          (setsockopt_pktinfo) unexported
-       * sockopt.h: Cleanup SOCKOPT_CMSG defines a bit. Add a throwaway
-          define for SOPT_SIZE_CMSG_IFINDEX_IPV4 for systems which have
-          neither IP_RECVIF nor IP_PKTINFO (eg openbsd), thanks to Rivo
-          Nurges for highlighting problem and fix.
-          Fix elif that should be an else.
-       * command.h: Cleanup the defines a bit, add helper defines and
-         collapse all defines to use those. Add an attribute field to
-         cmd_element to support, eg hidden or deprecated commands, add
-          defun defines for such. All that's left to do is add logic
-          to command.c to check these attributes... ;)
-       * zebra.h: reserve ZEBRA_ROUTE_HSLS
-
-2004-10-19 Hasso Tepper <hasso at quagga.net>
-
-       * version.h.in: Define copyright string QUAGGA_COPYRIGHT.
-       * print_version.c: Remove. print_version () function moved to
-         command.[c|h].
-       * command.c: Use QUAGGA_COPYRIGHT.
-       * Makefile.am: Remove useless version.c and print_version.c files.
-
-2004-10-19 Andrew J. Schorr <aschorr@telemetry-investments.com>
-
-       * zclient.c: (zebra_interface_address_read) If the destination address
-         is encoded as all zeroes, load it as a NULL pointer.
-       * if.h: Add comment describing struct connected destination field
-         and indicating that it may be NULL.  Define macros
-         CONNECTED_DEST_HOST and CONNECTED_POINTOPOINT_HOST to help
-         with PtP logic (distinguish between host and subnet addressing).
-       * if.c: (if_lookup_address) Fix PtP logic to handle subnet addressing
-         properly,
-         (connected_lookup_address) ditto.
-         (connected_add_by_prefix) Handle case where destination is NULL,
-       * prefix.[c|h]: New functions ipv4_network_addr and
-         ipv4_broadcast_addr.
-
-2004-10-13 Hasso Tepper <hasso at quagga.net>
-
-       * command.c: Make CMD_ERR_NOTHING_TODO nonfatal if reading
-         configuration from file. Fixes critical bugzilla #113.
-       * smux.c, smux.h: Remove all defaults to initialize smux connection to
-         snmpd by default even if not configured to do so. "smux peer OID
-         <password>" initializes now connection and "no smux peer" terminates
-         it.
-
-2004-10-13 Paul Jakma <paul@dishone.st>
-
-       * (global) more const'ification.
-       * sockunion.c: (sockunion_su2str) buffer should be sized
-          SU_ADDRSTRLEN.
-          (sockunion_log) do not return stack variables, strdup buf before
-          return.
-        * vty.h: Fix up the VTY_GET_INTEGER macros. Testing caller supplied
-          values against ULONG_MAX is daft, when caller probably has passed
-          a type that can not hold ULONG_MAX. use a temporary long instead.
-          Add VTY_GET_LONG, make VTY_GET_INTEGER_RANGE use it, make
-         VTY_GET_INTEGER a define for VTY_GET_INTEGER_RANGE.
-
-2004-10-11 Hasso Tepper <hasso at quagga.net>
-
-       * command.h: Sync DEFUNSH with other macros.
-       * sockunion.c, sockunion.h: More const strings.
-
-2004-10-11 Paul Jakma <paul@dishone.st>
-
-       * thread.c: (funcname_thread_add_timer) 
-         (funcname_thread_add_timer_msec) Fix mistakes from last change.
-         Pointed out by Liu Xin in [quagga-dev 1609].
-       * if.h: mtu's should be unsigned.
-       * routemap.{c,h}: const char updates
-       * smux.{c,h}: ditto
-
-2004-10-10 Paul Jakma <paul@dishone.st>
-
-       * version.h.in: (pid_output*) add const qualifier.
-       * command.h: Change DEFUN func to take const char *[] rather
-          than char **, to begin process of fixing compile warnings in lib/.
-          Nearly all other changes in this commit follow from this change.
-        * buffer.{c,h}: (buffer_write) pointer-arithmetic is gccism, take
-          const void * and cast an automatic const char *p to it.
-          (buffer_putstr) add const
-        * command.c: (zencrypt) const qualifier
-          (cmd_execute_command_real) ditto
-          (cmd_execute_command_strict) ditto
-          (config_log_file) ditto. 
-          Fix leak of getcwd() returned string.
-        * memory.{c,h}: Add MTYPE_DISTRIBUTE_IFNAME for struct dist ifname.
-        * distribute.{c,h}: Update with const qualifier.
-          (distribute_free) use MTYPE_DISTRIBUTE_IFNAME
-          (distribute_lookup) Cast to char *, note that it's ok.
-          (distribute_hash_alloc) use MTYPE_DISTRIBUTE_IFNAME.
-          (distribute_get)  Cast to char *, note that it's ok.
-        * filter.c: Update with const qualifier.
-        * if.{c,h}: ditto.
-        * if_rmap.{c,h}: ditto.
-          (if_rmap_lookup) Cast to char *, note that it's ok.
-          (if_rmap_get) ditto.
-        * log.{c,h}: Update with const qualifier.
-        * plist.{c,h}: ditto.
-        * routemap.{c,h}: ditto.
-        * smux.{c,h}: ditto. Fix some signed/unsigned comparisons.
-        * sockopt.c: (getsockopt_cmsg_data) add return for error case.
-        * vty.c: Update with const qualifier.
-          
-2004-10-08 Hasso Tepper <hasso at quagga.net>
-
-       * routemap.c, routemap.h: Make some string arguments const.
-
-2004-10-05 Paul Jakma <paul@dishone.st>
-
-       * version.h.in: print_version declaration is here, not in automake
-         generated version.h.
-
-2004-10-08 Hasso Tepper <hasso at quagga.net>
-
-       * command.c, command.h: Make argument of cmd_make_strvec function
-         const.
-       * command.c: Make hostname commands usable in vtysh again.
-
-2004-10-07 Hasso Tepper <hasso at quagga.net>
-
-       * command.c, pid_output.c, print_version.c, vty.c, vty.h: Make more
-         strings const.
-
-2004-10-05 Hasso Tepper <hasso at quagga.net>
-
-       * *.[c|h]: Make many strings cons and a lot of int -> unsigned int
-         changes to fix warnings.
-
-2004-10-05 Paul Jakma <paul@dishone.st>
-
-       * sockopt.{c,h}: add sockopt_iphdrincl_swab_{htosys,systoh},
-          functions to change byte order between system IP_HDRINCL order
-          and host order.
-       * thread.c: (funcname_thread_add_timer_timeval) new function, add
-          timer at specified timeval.
-         (funcname_thread_add_timer) use funcname_thread_add_timer_timeval.
-         (funcname_thread_add_timer_msec) ditto
-
-2004-10-04 Hasso Tepper <hasso at quagga.net>
-
-       * memory.c, memory.h: Make char * argument of strdup functions const.
-       * prefix.c, prefix.h: Make many arguments const. Reorder stuff in
-         header.
-       * log.h: Make log message const in struct message.
-       * log.c: Fix some indenting.
-       * network.c, network.h: Make second argument of writen() const.
-
-2004-10-03  Hasso Tepper  <hasso at quagga.net>
-
-       * command.h: Introduce SERVICE_NODE for "service <...>" commands.
-       * command.c: Don't initialize commands that don't make sense if vtysh
-         is used.
-       * vty.c: Make VTY_NODE appear in vtysh.
-
-2004-10-03 James R. Leu <jleu at mindspring.com>
-
-       * zclient.c, zclient.h: zclient functions for router id handling.
-       * zebra.h: New message types for router id handling.
-
-2004-09-27 Paul Jakma <paul@dishone.st>
-
-       * zebra.h: Add WANT_OSPF_WRITE_FRAGMENT for ospfd
-         to try to fragment oversized packets. Enabled only for Linux.
-         Add HAVE_IP_HDRINCL_BSD_ORDER to define struct ip byte order,
-         to consolidate various ad-hoc platform defines for same thing.
-
-2004-09-26 Hasso Tepper <hasso at quagga.net>
-
-       * vty.c, sockopt.c: Fix compiler warnings.
-
-2004-09-23 Hasso Tepper <hasso at quagga.net>
-
-       * linklist.h: Remove list and listnode typedefs.
-       * *.[c|h]: list -> struct list *, listnode -> struct listnode *.
-
-2004-09-17 Paul Jakma <paul@dishone.st>
-
-       * sockopt.c: Add missing bracket
-
-2004-09-17 Paul Jakma <paul@dishone.st>
-
-       * sockopt.{c,h}: Add setsockopt_so_recvbuf, for ripd and ripngd.
-
-2004-09-13 Paul Jakma <paul@dishone.st>
-
-       * command.c: Update the copyright string in the default motd.
-
-2004-08-31  David Wiggins  <dwiggins@bbn.com>
-
-       * hash.c (hash_iterate): Save next pointer before calling
-       procedure, so that iteration works even if the called procedure
-       deletes the hash backet.
-
-       * linklist.h (listtail): new macro, not yet used.
-
-2004-08-27 Hasso Tepper <hasso at quagga.net>
-
-       * command.c: Install "terminal length" commands only if vty is used.
-         Vtysh will handle it itself.
-
-2004-08-26  Greg Troxel  <gdt@fnord.ir.bbn.com>
-
-       * sockopt.h: Define method-independent macro for callers of
-       get_ifindex to use for cmsg length.
-
-2004-08-19 Paul Jakma <paul@dishone.st>
-
-       * zebra.h: add MAX and MIN defines (eg for ospf6d)
-
-2004-08-19 Paul Jakma <paul@dishone.st>
-
-       * sockopt.c: include sockopt.h
-         rename some of the _pktinfo_ functions to _ifindex, where that is
-         their purpose.
-          (getsockopt_ipv6_pktinfo_ifindex) renamed to
-         getsockopt_ipv6_ifindex.
-         (setsockopt_ipv4_pktinfo) renamed to setsockopt_ipv4_ifindex
-         (setsockopt_pktinfo) update with previous and add comment re
-         AF_INET portability.
-         (setsockopt_ifindex) generic ifindex function ala
-         setsockopt_pktinfo.
-         (getsockopt_ipv4_pktinfo_ifindex) renamed to
-         getsockopt_ipv4_ifindex.
-         (getsockopt_ipv4_ifindex) rejiggling to reduce repeated
-          ifdef/elses. pktinfo case forgot to set ifindex.
-          (getsockopt_pktinfo_ifindex) renamed to 
-          getsockopt_ifindex. update some calls to renamed functions.
-        * sockopt.h: Update renamed exported functions
-          Rename the CMSG_SIZE macros to IFINDEX.
-          Guard IPv4 PKTINFO in a conditional define.
-
-2004-08-18 Paul Jakma <paul@dishone.st>
-
-       * vty.c: (vty_serv_un) set unix vty socket to nonblocking
-         to prevent inadvertent blocking of daemons by use of
-         vtysh. TODO: disentangle manual paging from the buffer_write
-         path so that unix vty can use this path too and be reliable.
-         
-2004-07-23  Greg Troxel  <gdt@poblano.ir.bbn.com>
-
-       * sockopt.c (getsockopt_ipv4_pktinfo_ifindex): Make this compile
-       on NetBSD, and add comments to make it less confusing.  Change the
-       sense of the SUNOS_5 test to make parallel structure between the
-       variables and the code.
-
-2004-07-23 Paul Jakma <paul@dishone.st>
-
-       * sockopt.h: Add SOPT_SIZE_CMSG_PKTINFO{_IPV{4,6}} define, for
-         sizeof pktinfo as appropriate, to be used when allocating msg
-         buffers. export setsockopt_pktinfo() and
-         getsockopt_pktinfo_ifindex()
-       * sockopt.c: (setsockopt_pktinfo_ifindex) new function to portably
-         set received ifindex sock option.
-         (getsockopt_pktinfo_ifindex) portably retrieve ifindex.
-         (getsockopt_cmsg_data) retrieve indicated control info from 
-         message header.
-         (getsockopt_ipv6_pktinfo_ifindex) ipv6 version of above.
-         (setsockopt_ipv4_pktinfo) v4 version
-         (setsockopt_pktinfo) the exported version
-         (getsockopt_ipv4_pktinfo_ifindex) v4 specific version
-         (getsockopt_pktinfo_ifindex) the exported version
-
-2004-07-14 Paul Jakma <paul@dishone.st>
-
-       * sigevent.c: (quagga_signal_handler) add a global caught flag, set
-         the flags to a constant rather increment to be kinder. 
-         (quagga_sigevent_process) new function, to do core of what
-         quagga_signal_timer did. dont block signals at all as sig->caught
-         is volatile sig_atomic_t and should be safe to access from signal
-         and normal contexts. The signal blocking is unneeded paranoia, but
-         is left intact under an ifdef, should some platform require it.
-         Check global caught flag before iterating through array. 
-         (quagga_signal_timer) nearly everything moved to
-         quagga_sigevent_process. Left in under ifdef, in case some
-         platform could use a regular timer check for signals.
-       * sigevent.h: quagga_sigevent_process declaration.
-       * thread.c: (thread_fetch) check for signals at beginning of 
-         scheduler loop, check for signals if select returns EINTR.
-        
-2004-07-13  Greg Troxel  <gdt@poblano.ir.bbn.com>
-
-       * sigevent.c: Don't block SIGTRAP and SIGKILL.  Blocking SIGTRAP
-       confuses gdb, at least on NetBSD 2.0_BETA, where the block
-       succeeds.
-
-2004-07-09 Paul Jakma <paul@dishone.st>
-
-       * Merge Kunihiro's 'show route-map' change and add 
-         compatibility aliases for route-map continue
-       * jhash.{c,h}: New files. Bob Jenkins' public domain hashing 
-         function, as implemented in linux kernel by David Miller.
-
-2004-07-09 Juris Kalnins <juris@mt.lv>
-
-       * if.c: (if_cmp_func) fix for interface names where name is same,
-         but one has no number, eg "devtyp" and "devtyp0".
-         
-2004-06-30  Greg Troxel  <gdt@poblano.ir.bbn.com>
-
-       * Makefile.am: Make libzebra shared.
-
-2004-06-21 Paul Jakma <paul@dishone.st>
-
-       * ChangeLog: fix my last update config.h -> zebra.h ;)
-       * zebra.h: Fix gcc check.
-       
-2004-06-11 Sowmini Varadhan <sowmini.varadhan@sun.com>
-
-       * filter.c: (access_list_remark_cmd) buffer_putstr doesnt need cast
-         to u_char. (ipv6_access_list_remark_cmd) ditto.
-         if.c: ditto
-       * network.c: (readn/writen) pointer arg should be type u_char.
-       * plist.c: needs to include stream.h, not declare stream functions
-         internally.
-         (various) Add static qualifier to internal functions.
-         (prefix_list_type_str) extraneous breaks in switch statement.
-         (ip_prefix_list_description_cmd) buffer_putstr doesnt need cast
-       * stream.h: depends on plist.h and export stream_put_prefix
-       * vty.c: (vty_<telnet option build functions>) should use 
-         unsigned char, telnet options are 0 -> 255.
-       * zclient.c: various u_char<->char type cleanups.
-       * zebra.h: Having to define CMSG_* can apply to more than just
-         BSDI_NRL. 
-         
-2004-06-09 Paul Jakma <paul@dishone.st>
-
-       * zebra.h: __attribute__ is a gcc'ism
-       
-2004-06-04 Paul Jakma <paul@dishone.st>
-
-        * type mismatch fixes
-        
-2004-05-18 Hasso Tepper <hasso@estpak.ee>
-       
-       * pqueue.[c|h]: Added as part of ospf6d merge from Zebra repository.
-
-2004-05-08 Paul Jakma <paul@dishone.st>
-
-       * zclient.c (zapi_ipv4_route) Follow Sowmini's lead and describe
-         message format.
-
-2004-05-08 Sowmini Varadhan <sowmini.varadhan@sun.com>
-
-       * zclient.c: (zapi_ipv4_add) collapsed into zapi_ipv4_route
-         (zapi_ipv4_delete) ditto.
-         (zapi_ipv4_route) add/delete a route by way of cmd arg.
-         (zapi_ipv6_add) collapsed into zapi_ipv6_route.
-         (zapi_ipv6_delete) ditto.
-         (zapi_ipv6_route) add/delete a route by way of cmd arg.
-         (zebra_interface_address_delete_read) collapsed into 
-         zebra_interface_address_read.
-         (zebra_interface_address_delete_read) ditto.
-         (zebra_interface_address_read) read address add/delete messages
-         by way of type argument. Describe command message format.
-         (zebra_interface_add_read) Unconditionally read new ifmtu6 field.
-         Describe command message format.
-         (zebra_interface_state_read) Unconditionally read new ifmtu6 field.
-         (zclient_redistribute_set) Collapsed into zclient_redistribute
-         (zclient_redistribute_unset) ditto
-         (zclient_redistribute) set/unset redistribution.
-         (zclient_redistribute_default_set) Collapsed into
-         zclient_redistribute_default.
-         (zclient_redistribute_default_unset) ditto.
-         (zclient_redistribute_default) Redistribute default set/unset.
-       * zclient.h: delete zapi_ipv{4,6}_add, zapi_ipv{4,6}_delete. Add
-         zapi_ipv{4,6}_route. delete zclient_redistribute_set/unset. Add
-         zclient_redistribute. Ditto for
-          zclient_redistribute_default_{set/unset}.
-          
-2004-05-08 Sowmini Varadhan <sowmini.varadhan@sun.com>
-
-       * if.h: Add mtu6 field to struct interface, IPv6 MTU may differ
-         from IPv4, and Solaris treats the MTU's differently.
-         Add connected_add_by_prefix, for use by later patch.
-       * if.c: (connected_add_by_prefix) Add prefix to connected list.
-         (if_flag_dump) Solaris: Dump IFF_IPv4/6 flag
-         (if_dump) Dump mtu6 flag, for HAVE_IPV6.
-       * command.c: (sockunion_getsockname) use socklen_t for len.
-         (sockunion_getpeername) ditto.
-                 
-2004-04-21 Boris Kovalenko <boris@tagnet.ru>
-
-       * daemon.c: (daemon) fix check for error return from setsid
-       
-2004-01-19 Paul Jakma <paul@dishone.st>
-
-       * sigevent.{c,h}: New files, implement event handled signals.
-         see signal_init() in sigevent.h.
-         
-2003-12-23  Vincent Jardin  <jardin@6wind.com>
-
-       * {command.c, memory.c, vty.c, zebra.h}: Add isisd support
-
-2003-12-22  Greg Troxel  <gdt@fnord.ir.bbn.com>
-
-       * vty.c (vty_use_backup_config): Don't free filenames before using
-       them for unlink.
-
-2003-08-20 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
-
-       * command.c: Fix <cr> display problem for command line
-         description
-
-2003-05-24 Anil Madhavapeddy
-
-       * (sockunion.c): Incorrect bounds specified in sockunion_log()
-
-2003-05-08 Sergiy Vyshnevetskiy <serg @ vostok.net>
-
-       * vty.c: -A option
-
-2003-04-19 Hasso Tepper <hasso@estpak.ee>
-
-       * rip_routemap.c: sync daemon's route-map commands to have same
-       syntax
-
-2002-09-28  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
-
-       * vty.c (vty_flush): One line more on vty.
-
-2002-09-27  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * vector.c (vector_lookup): Add new function.
-
-2002-08-19  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * thread.c (timeval_adjust): Fix unconditional crush due to
-       FreeBSD's select() system call timeval value check.
-
-2002-07-07  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.93 released.
-
-2002-06-21  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * if.c (ifc_pointopoint): Add ifc_pointopoint() accoding to Frank
-       van Maarseveen's suggestion.
-
-2002-06-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c: Change bcopy() to memcpy().
-
-2001-12-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c (config_password): Fix host.password clear bug.
-       Reported by Wang Jian <lark@linux.net.cn>.
-
-2001-08-29  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * thread.c (thread_should_yield): New function to check thread
-       should yeild it's execution to other thread.  Suggested by: Rick
-       Payne <rickp@ayrnetworks.com>
-
-2001-08-20  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * thread.c (thread_timer_cmp): Rewrite function.
-
-       * hash.c: Add hash_get().  Change hash_pull() to hash_release().
-
-2001-08-19  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.92a released.
-
-2001-08-15  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.92 released.
-
-2001-08-12  Akihiro Mizutani <mizutani@dml.com>
-
-       * prefix.c (netmask_str2prefix_str): Convert "1.1.0.0 255.255.0.0"
-       string to "1.1.0.0/16".
-
-2001-08-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * filter.c (access_list_lookup): access_list_lookup's first
-       argument is changed from address family to AFI.
-
-       * plist.c: (prefix_list_lookup): Likewise.
-
-2001-07-27  Akihiro Mizutani <mizutani@dml.com>
-
-       * plist.c: ge and le display order is changed.  Old compatible
-       rule (len <= ge-value <= le-value) is removed.
-
-2001-07-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * prefix.h: Temporary fix for alignment of prefix problem.
-
-2001-06-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * prefix.h (struct prefix): Remove safi and padding field.
-       (struct prefix_ipv4): Likewise.
-       (struct prefix_ipv6): Likewise.
-       (struct prefix_ls): Likewise.
-       (struct prefix_rd): Likewise.
-
-       * command.h (enum node_type): Preparation for BGP new config.
-
-       * vty.c (vty_end_config): Likewise.
-
-2001-06-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * routemap.c (route_map_rule_delete): Call func_free when
-       route-map rule is deleted.
-
-2001-06-14  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * routemap.c (route_map_index_lookup): Prevent to use deny and
-       permit for same route-map sequence.
-
-2001-04-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c (vty_read_config): Fix warning.
-
-2001-03-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c (IPV6_PREFIX_STR): Add '.' and '%' for IPv6 address
-       strings.
-
-2001-03-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra.h (_XPG4_2): Define _XPG4_2 and __EXTENSIONS__ for
-       CMSG_FIRSTHDR.
-
-2001-03-07  Michael Rozhavsky <mrozhavsky@opticalaccess.com>
-
-       * zebra.h (struct in_pktinfo): structure in_pktinfo declaration.
-
-2001-02-19  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * memory.c (memory_list_lib): Add MTYPE_NEXTHOP for "show memory
-       lib" member.
-
-2001-02-13  Matthew Grant <grantma@anathoth.gen.nz>
-
-       * vty.c (vty_read_config): Revert check of integrate_default when
-       VTYSH is defined.
-
-2001-02-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c (vty_read_config): Do not check integrate_default.  That
-       should be used only by vtysh.
-
-2001-02-08  Matthew Grant <grantma@anathoth.gen.nz>
-
-       * vty.c (vty_serv_un): Set umask 0077.
-       (vty_read_config): Stat for vtysh Zebra.conf, if found startup and
-       wait for boot configuration.
-
-       * if.c (if_lookup_address): Make it smart implementation.
-
-       * sockopt.c (setsockopt_multicast_ipv4): Set up a multicast socket
-       options for IPv4 This is here so that people only have to do their
-       OS multicast mess in one place rather than all through zebra,
-       ospfd, and ripd .
-
-2001-02-04  Akihiro Mizutani <mizutani@dml.com>
-
-       * plist.c (vty_prefix_list_install): Even when argument is
-       invalid, new memory is allocated.  Now memory allocation is done
-       after argument check.
-
-2001-02-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.91 is released.
-
-2001-01-31  Akihiro Mizutani <mizutani@dml.com>
-
-       * vty.c (vty_login): Add vty login command.
-
-2001-01-31  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c (vty_reset): Close accept socket.
-
-2001-01-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * memory.h (enum): MTYPE_ATTR_TRANSIT is added for unknown transit
-       attribute.
-
-2001-01-22  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zclient.c (zebra_interface_address_add_read): Fetch interface
-       address flag.
-       (zebra_interface_address_delete_read): Likewise.
-
-2001-01-16  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * table.c (route_node_match_ipv4): Utility function for IPv4
-       address lookup.
-       (route_node_match_ipv6): Utility function for IPv4 address lookup.
-
-2001-01-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * if.c: Delete RIP_API part until new implementation comes out.
-
-2001-01-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * hash.h (struct Hash): Rename alloc to count.  Change type to
-       unsigned long.
-
-       * stream.c (stream_getc_from): New function.
-       (stream_getw_from): Likewise.
-
-       * zebra.h (ZEBRA_FLAG_STATIC): Add new flag for persistent route.
-
-2001-01-11  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * flap.c: File is removed.
-
-       * flap.c: Likewise.
-
-       * roken.h: Likewise.
-
-       * buffer.c (buffer_new): Remove type option to buffer_new().
-
-2001-01-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zclient.c (zapi_ipv4_delete): Remove OLD_RIB part.
-
-2001-01-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.90 is released.
-
-       * command.c: Update Copyright year.
-
-2001-01-09  Matthew Grant <grantma@anathoth.gen.nz>
-
-       * if.c (if_create): Register connected_free() function for
-       deletion.
-       (if_delete): Free connected information when the interface is
-       deleted.
-       (if_lookup_by_index): Fix argument type from int to unsigned int.
-       (connected_add): Keep list in order if old info found, essential
-       for repeatable operation in some daemons.
-
-2001-01-09  endo@suri.co.jp (Masahiko Endo)
-
-       * vty.c (vty_flush): When vty->statis is VTY_CLOSE do not add vty
-       read thread.
-
-2001-01-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * filter.c (access_list_delete): Access-list name is not freed.
-
-       * plist.c (prefix_list_delete): Prefix-list name is not freed.
-
-2000-12-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zclient.c (zclient_start): Change to use UNIX domain
-       socket for zebra communication.
-
-       * vector.c (vector_init): vector_alloc and vector_data_alloc is
-       removed.  All memory allocation count should be maintained by
-       XMALLOC and XFREE macros.
-
-2000-12-28  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra.h (ZEBRA_NEXTHOP_IFINDEX): Define ZEBRA_NEXTHOP_* values.
-
-2000-12-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra.h (ZEBRA_ERR_RTEXIST): Make zebra error code to negative
-       value.
-
-2000-12-25  "Wataru Uno" <wataru@po.ntts.co.jp>
-
-       * vty.c (vtysh_read): Don't allocate new buffer because buffer is
-       allocated in vty_new ().
-
-2000-12-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * memory.h (enum): Add MTYPE_AS_FILTER_STR.
-
-       * command.c (config_write_terminal): Display "end" at the end of
-       configuration.
-
-       * plist.c (vty_prefix_list_install): Use AF_INET to determine
-       lenum length.
-
-2000-12-13  "Wataru Uno" <wataru@po.ntts.co.jp>
-
-       * buffer.c (buffer_flush_vty): If IOV_MAX defined in the System,
-       then all lines write by IOV_MAX.
-
-2000-12-12  Michael Rozhavsky <mrozhavsky@opticalaccess.com>
-
-       * command.c (config_write_file): Robust method for writing
-       configuration file and recover from backing up config file.
-
-2000-11-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * smux.c (smux_connect): More fail check.
-       (smux_trap): When SMUX connection is not established, do nothing.
-
-2000-11-28  Gleb Natapov <gleb@nbase.co.il>
-
-       * thread.c (thread_fetch): Execut event list first.  Old event
-       list is renamed to ready list.  With this change, event thread is
-       executed before any other thread.
-
-       * thread.h (struct thread_master): Add ready list.
-
-2000-11-28  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * linklist.c (listnode_add_after): Add node right after the
-       listnode pointer.
-
-2000-11-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * smux.h: Pass struct variable to WriteMethod.
-
-2000-11-25  Frank van Maarseveen <F.vanMaarseveen@inter.NL.net>
-
-       * if.c (if_lookup_address): When looking up interface with IP
-       address, Sometimes multiple interfaces will match.  Now PtP
-       interfaces prevail in such a case which seem the right thing to
-       do: There will probably also be host routes which usually prevail
-       over network routes.
-
-2000-11-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * smux.c (smux_trap): SMUX trap implementation.
-
-2000-11-19  Akihiro Mizutani <mizutani@dml.com>
-
-       * plist.c: Add automatic conversion function of an old rule. 
-       ex.) 10.0.0.0/8 ge 8 -> 10.0.0.0/8 le 32
-
-2000-11-16  Yon Uriarte <ukl2@rz.uni-karlsruhe.de>
-
-       * zclient.c (zebra_interface_add_read): Read hardware address when
-       hw_addr_len is greater than 0.
-
-2000-11-15  Akihiro Mizutani <mizutani@dml.com>
-
-       * plist.c: The rule of "len <= ge-value <= le-value" 
-       was changed to "len < ge-value <= le-value".
-
-2000-11-09  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * memory.[ch]: Added #define and functions for ospf6d.
-
-       * log.[ch]: some platform says that the data of used va_list
-       is undefined. Changed to hold list of va_list for each
-       vsnprintf.
-
-2000-11-07  Rick Payne <rickp@rossfell.co.uk>
-
-       * memory.h (enum): Add MTYPE_COMMUNITY_REGEXP.
-
-2000-11-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c (config_exit): Fix bug of missing break after case
-       BGP_VPNV4_NODE.
-
-2000-10-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vector.c (vector_unset): Check i is not nevative.
-
-2000-10-24  Arkadiusz Miskiewicz <misiek@pld.org.pl>
-
-       * smux.c (smux_sock): Set terminating '\0'.  Check address family.
-
-       * vty.c (vty_serv_sock_addrinfo): Set terminating '\0'. Use
-       gai_strerror.  Check address family.
-
-2000-10-23  Jochen Friedrich <jochen@scram.de>
-
-       * smux.c: Use linklist rather than vector.
-       (smux_getnext): A SMUX subagent has to behave as if it manages the
-       whole SNMP MIB tree itself. It's the duty of the master agent to
-       collect the best answer and return it to the manager. See RFC 1227
-       chapter 3.1.6 for the glory details :-). ucd-snmp really behaves
-       bad here as it actually might ask multiple times for the same
-       GETNEXT request as it throws away the answer when it expects it in
-       a different subtree and might come back later with the very same
-       request.
-
-2000-10-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c (cmd_init): Log related command are only installed for
-       terminal mode.
-
-2000-10-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Makefile.am (libzebra_a_SOURCES): Remove duplicated buffer.c.
-
-       * zebra.h: Remove #warn directive.
-
-2000-10-20  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * keychain.c (keychain_init): Register "key chain" command to
-       KEYCHAIN_NODE and KEYCHAIN_KEY_NODE.
-
-       * vty.c (vty_end_config): Fix missing vty_cinfig_unlock for other
-       CONFIG_NODE.
-
-       * command.c (config_end): Likewise.
-
-       * keychain.c (keychain_get): Key is sorted by it's identifier
-       value.
-
-2000-10-19  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * linklist.c (list_delete_all_node): Call delete function if it is
-       defined.
-
-       * command.c (cmd_execute_command_strict): Add modification for
-       vtysh.
-       (cmd_execute_command_strict): Remove first argument cmdvec because
-       it is global varibale in command.c.
-
-2000-10-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c (cmd_init): Install
-       copy_runningconfig_startupconfig_cmd only in terminal mode.
-
-       * linklist.c (list_delete_node): Simplify the function.
-       (listnode_lookup): Renamed from list_lookup_node.
-
-2000-10-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * stream.h: Undef stream_read and stream_write without
-       parenthesis.
-
-       * newlist.c: File removed.
-
-       * newlist.h: Likewise.
-
-       * linklist.c (list_new): Remove list_init().  To allocate new
-       linked list, please use list_new().
-       (listnode_add): Remove list_add_node().  To add new node to linked
-       list, please use listnode_add().
-       (list_delete_by_val): Revemove fucntion.
-
-2000-10-16  Nobuaki Tanaka <nobby@po.ntts.co.jp>
-
-       * table.c (route_table_free): Reimplement route_table_free().
-
-2000-10-11  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * keychain.c (keychain_get): Register key_delete_func to key
-       list's delete function.  Use linklist.c instead of newlist.c.
-
-2000-10-04  Akihiro Mizutani <mizutani@dml.com>
-
-       * filter.c (access_list_remark): Add access-list's remark command.
-       (no_access_list): "no access-list 100 permit any" error message
-       bug is fixed.
-
-2000-10-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * memory.h (enum): Add MTYPE_SOCKUNION.
-
-2000-10-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.89 is released.
-
-2000-10-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * linklist.c (list_add_node_head): Delete unused function.
-       (list_add_node_tail): Likewise.
-
-2000-09-26  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * stream.c (stream_read_unblock): Add new function for unblocking
-       read.
-
-2000-09-26  Jochen Friedrich <jochen@nwe.de>
-
-       * smux.c (smux_register): Fix bug of can't register more than one
-       MIB with SMUX.
-
-2000-09-26  Makoto Otsuka <otsuka@inl.ntts.co.jp>
-
-       * vty.c (vty_close): Fix memory leak of sb_buffer.
-       (vty_new): Likewise.
-
-2000-09-21  steve@Watt.COM (Steve Watt)
-
-       * log.h: Do not declare zlog_priority[0] variable.
-
-2000-09-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * linklist.h (struct _list ): Add member cmp for compare function.
-       (struct _list ): Member up is deleted
-
-2000-09-12  David Lipovkov <dlipovkov@OpticalAccess.com>
-
-       * if.c: Include RIP_API header when RIP API is enabled.
-
-2000-09-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * prefix.c (prefix_free): Siplify prefix_free().
-
-       * keychain.c (key_match_for_accept): strncmp check bug is fixed.
-
-2000-09-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra.h: Merge roken.h into zebra.h.
-
-2000-09-05  Akihiro Mizutani <mizutani@dml.com>
-
-       * routemap.c (route_map_init_vty): Install route-map command to
-       RMAP_NODE.
-
-2000-08-22  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * thread.c (thread_get_id): Remove pthread related garbage.
-
-       * command.h (struct host): Likewise.
-
-       * zebra.h: Likewise.
-
-2000-08-20  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.h (node_type ): Add AAA node for authentication.
-
-       * vty.c (vty_close): Do not close stdout.
-
-2000-08-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c (vty_init_vtysh): Added for vtysh.
-
-       * distribute.c (districute_list_prefix_all): Interface independent
-       filter can be set.
-       (distribute_list_all): Likewise.
-       (config_show_distribute): Display current distribute-list status
-       for "show ip protocols".
-
-2000-08-18  Akihiro Mizutani <mizutani@dml.com>
-
-       * command.c (config_terminal_no_length): no terminal monitor ->
-       terminal no monitor
-       (cmd_init): Do not install service_terminal_length_cmd into
-       ENABLE_NODE.
-
-       * vty.c (terminal_no_monitor): no terminal length -> terminal no
-       length.
-
-2000-08-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.88 is released.
-
-2000-08-17  Magnus Ahltorp <ahltorp@nada.kth.se>
-
-       * vty.h (struct vty ): Add iac_sb_in_progress and sb_buffer for
-       better IAC handling.
-
-       * vty.c (vty_telnet_option): Change telnet option handling.
-
-2000-08-15  Gleb Natapov <gleb@nbase.co.il>
-
-       * zclient.c (zclient_redistribute_unset):  New function added.
-
-2000-08-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zclient.c (zebra_interface_add_read): Change ifindex restore
-       size from two octet to four.
-       (zebra_interface_state_read): Likewise.
-       (zebra_interface_address_add_read): Likewise.
-
-2000-08-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c (vty_event): Use vector_set_index() instead of
-       vector_set().
-
-2000-08-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra.h (ZEBRA_XXX_DISTANCE_DEFAULT): Define Default
-       Administrative Distance of each protocol.
-
-2000-08-07  Matthew Grant <grantma@anathoth.gen.nz>
-
-       * if.h (struct interface ): Add new member bandwidth to struct
-       interface.
-
-       * zclient.c (zebra_interface_add_read): Fetch bandwidth value.
-       (zebra_interface_state_read): Likewise.
-
-2000-08-07  Gleb Natapov <gleb@nbase.co.il>
-
-       * routemap.c (route_map_event_hook): New hook route_map_event_hook
-       is added.  This hook is called when route-map is changed. The
-       parameters passed to the hook are 'event' and 'route-map name'
-
-       * routemap.h: Add prototype for route_map_event_hook().
-
-2000-08-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zclient.c (zebra_ipv4_route): zebra_ipv4_route(),
-       zebra_ipv4_add(), zebra_ipv4_delete() are removed.
-
-       * routemap.c (route_map_empty): Add new function.
-       (route_map_delete): Use route_map_index_delete() instead of
-       route_map_index_free().
-       (route_map_index_free): Function removed.
-
-2000-08-06  Gleb Natapov <gleb@nbase.co.il>
-
-       * routemap.c (route_map_index_delete): Add check for route-map is
-       empty or not.
-
-2000-08-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zclient.c (zebra_ipv4_add): Change socket arguemnt with struct
-       zclient.
-
-2000-08-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zclient.h (struct zebra): Add obuf for output buffer.
-
-       * if.c: Remove #ifdef NRL enclosing if_nametoindex() and
-       if_indextoname().
-
-2000-08-02  David Lipovkov <davidl@nbase.co.il>
-
-       * if.h (IF_PSEUDO_UNSET): IF_PSEUDO related macro added.
-       (IF_UNKNOWN_SET): IF_UNKNOWN related macro deleted.
-
-       * if.c (interface_pseudo): Add "pseudo" command to interface node.
-       (no_interface_pseudo): Add "no pseudo" command to interface node.
-
-       * zclient.c (zebra_interface_add_read): Set pseudo flag when it is
-       send from zebra.
-
-2000-08-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra.h (ZEBRA_IPV4_NEXTHOP_LOOKUP): Add new message.
-       (ZEBRA_IPV6_NEXTHOP_LOOKUP): Likewise.
-
-       * vty.c (vty_serv_un): Use AF_UNIX for backward compatibility.
-
-2000-07-31  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c: Use vector for VTY server thread listing instead of
-       single value.
-
-2000-07-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * keychain.c (no_key_chain): "no key chain WORD" command is added.
-
-2000-07-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c (config_from_file): If command fail in
-       KEYCHAIN_KEY_NODE, down to KEYCHAIN_NODE.
-
-       * vty.h (struct vty ): Add index_sub member.
-
-2000-07-27  Akihiro Mizutani <mizutani@dml.com>
-
-       * if.c: Help strings updates.
-
-2000-07-11  Akihiro Mizutani <mizutani@dml.com>
-
-       * command.c (no_config_enable_password): Add "no enable password"
-       command.
-       (config_write_host): Display password string.
-
-       * routemap.c (route_map_delete_match): Add support for delete
-       match without argument.
-       (route_map_delete_set): Likewise.
-
-2000-07-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.h (node_type ): Change KEYCHAIN_NODE and
-       KEYCHAIN_KEY_NODE place just before INTERFACE_NODE.
-
-2000-07-09  Jochen Friedrich <jochen@scram.de>
-
-       * smux.c (config_write_smux): Fixes the option to override OID and
-       password for SMUX.
-
-2000-07-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.h (node_type ): Add SMUX_NODE for SMUX configuration.
-
-2000-07-09  Toshiaki Takada  <takada@zebra.org>
-
-       * command.c: Sort descvec command's help.
-
-       * vty.c (vty_describe_command): Display '<cr>' at the end of
-       descriptions.
-
-2000-07-05  Toshiaki Takada  <takada@zebra.org>
-
-       * command.c (cmd_ipv6_match), (cmd_ipv6_prefix_match):  Fix bug
-       treatment of double colon.
-
-2000-07-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zclient.h: Add zclient_redistribute_default_{set,unset}().
-
-       * keychain.c: New file for authentication key management.
-       * keychain.h: Likewise.
-       
-       * tcpfilter.c: New file for TCP/UDP base filtering using ipfw or
-       ipchains.
-       * tcpfilter.h: Likewise.
-       
-       * flap.h: New file for route flap dampening.
-       * flap.c: Likewise.
-
-2000-07-04  Toshiaki Takada <takada@zebra.org>
-
-       * filter.c (struct filter): Add exact flag.
-       (access_list): Add exact-match command.
-       (ipv6_access_list): Add exact-match command.
-       
-2000-07-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra.h (ZEBRA_REDISTRIBUTE_DEFAULT_ADD): New message for
-       request default route.
-
-2000-07-01  Hideaki YOSHIFUJI (\e$B5HF#1QL@\e(B) <yoshfuji@ecei.tohoku.ac.jp>
-
-       * smux.c: Add IPv6 smux connection code.
-
-2000-06-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c (vty_complete_command): To cooperate readline library,
-       returned string is newly allocated.  So some match function case
-       need, free of memory.
-
-2000-06-12  Akihiro Mizutani <mizutani@dml.com>
-
-       * distribute.c: Fix help strings.
-
-2000-06-11  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c (cmd_complete_command): Add check for vector_slot
-       (vline, index) is not NULL when calculating lcd.
-       (cmd_entry_function): First check variable arguemnt to prevent it
-       from completion.
-
-2000-06-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.h (struct vty ): Add output_count member for displaying
-       output route count.  Remove arugment arg from output_func because
-       the value is passed by vty argument.  Change output to output_rn.
-       Add output_clean function pointer member.  Add output_type member.
-
-2000-06-10  Toshiaki Takada <takada@zebra.org>
-
-       * command.c (show_startup_config): Add "show startup-config"
-       command.
-
-2000-06-06  Akihiro Mizutani <mizutani@dml.com>
-
-       * filter.c: Fix help strings.
-
-2000-06-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * prefix.h (struct prefix_rd): New prefix structure for routing
-       distinguisher.
-       (struct prefix): Add padding to every prefix structure.
-
-
-       * routemap.c (route_map_add_match): When completely same match
-       statement exists, don't duplicate it.
-
-2000-06-05  Akihiro Mizutani <mizutani@dml.com>
-
-       * routemap.c: Change NAME to WORD.
-
-       * plist.c: Fix help strings.
-
-2000-06-02  Akihiro Mizutani <mizutani@dml.com>
-
-       * routemap.c: Fix route-map help strings.
-
-2000-06-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c (cmd_filter_by_completion): Fix CMD_VARARG treatment
-       to filter other non vararg commands.
-
-       * routemap.c (route_map_init_vty): Use install_default() for
-       install common commands into route-map node..
-
-2000-06-01  Akihiro Mizutani  <mizutani@dml.com>
-
-       * command.h (OSPF_STR):  Macro added.
-
-2000-05-31  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c (cmd_complete_command): LCD completion must not modify
-       installed command string.
-
-       * plist.c (ipv6_prefix_list): Fix wrong syntax definition.  Change
-       X:X::X:X to X:X::X:X/M.
-
-2000-05-31  Toshiaki Takada  <takada@zebra.org>
-
-       * vty.c (show_history):  New defun added.
-
-2000-05-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.h (CMD_COMPLETE_LIST_MATCH): New define for completion
-       list.  CMD_COMPLETE_MATCH is used for LCD completion.
-
-       * vty.c (vty_complete_command): Matched string's LCD is completed.
-
-       * command.c (cmd_lcd): New function for calculate LCD of matched
-       strings.
-
-2000-05-26  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c (install_default): config_write_terminal_cmd,
-       config_write_file_cmd, config_write_memory_cmd are added to
-       default node.
-
-       * memory.c (memory_init): Divide show memory command into each
-       sort.
-
-       * command.c (cmd_init): config_write_terminal_cmd,
-       config_write_file_cmd, config_write_memory_cmd are added to
-       CONFIG_NODE.
-
-       * routemap.c (route_map_index_free): New function.
-       (no_route_map_all): New DEFUN for "no route-map NAME".
-
-       * filter.c (no_access_list_all): New DEFUN for delete access-list
-       with NAME.
-       (no_ipv6_access_list_all): Likewise.
-
-2000-05-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * plist.c: Change IPV6_PREFIX to X:X::X:X.  When "any" is
-       specified, user can not use "ge" and "le" statement.
-
-2000-05-22  Thomas Molkenbur <tmo@datus.datus.com>
-
-       * routemap.c (route_map_add_set): Fix bug of next pointer missing.
-
-       * table.c (route_table_free): Like wise.
-
-2000-05-22  Toshiaki Takada  <takada@zebra.org>
-
-       * vty.c (vty_stop_input): Set history pointer to the latest one.
-
-       * vty.c (vty_hist_add): Do not add command line history when input
-       is as same as previous one.
-
-2000-05-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * memory.h (enum): Add MTYPE_ECOMMUNITY and MTYPE_ECOMMUNITY_VAL.
-
-2000-05-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.h (node_type ): Add BGP_VPNV4_NODE.
-
-2000-05-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c (vtysh_accept): Add cast of struct sockaddr * to bind
-       argument.  Reported by: Vesselin Mladenov <mladenov@netbg.com>.
-
-       * filter.c (ipv6_access_list): Add IPv6 prefix example instead of
-       IPv4 example.  Reported by: Love <lha@s3.kth.se>.
-
-       * command.c (cmd_complete_command): Make it sure last element of
-       matchvec is NULL.  This fix problem which cause crush in
-       vty_complete_command().  Reported by: JINMEI Tatuya
-       <jinmei@isl.rdc.toshiba.co.jp>.
-
-2000-04-28  Love <lha@s3.kth.se>
-
-       * prefix.h (struct prefix): Add padding.
-
-2000-04-28  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c (show_version): Update copyright year.
-
-2000-04-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * routemap.c (route_map_apply): When map is NULL, return deny.
-
-2000-04-26  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * filter.c (access_list_apply): When access is NULL, return deny.
-
-       * plist.c (prefix_list_apply): When plist is NULL, return deny.
-
-2000-04-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.h (node_type ): Change RDISC_NODE to IRDP_NODE.
-
-2000-04-18  Toshiaki Takada  <takada@zebra.org>
-
-       * filter.[ch] (access_list_add_hook), (access_list_delete_hook):
-       Add argument for hook function to give struct access_list *.
-
-2000-04-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * plist.c (prefix_list_entry_match): In case of le nor ge is
-       specified, exact match is performed.
-       (prefix_list_entry_match): Add any entry matching check.
-
-2000-04-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c (exec_timeout): Separate timeout setting to minutes and
-       seconds.
-       (no_exec_timeout): Add "no exec-timeout" command.
-
-       * vty.h (VTY_TIMEOUT_DEFAULT): Change default value from 300 to
-       600.
-
-2000-03-31  Jochen Friedrich <jochen@scram.de>
-
-       * smux.h (SMUX_CLOSE): The SMUX_CLOSE PDU is implicit integer, so
-       it is a primitive encoding and not constructed.
-
-2000-03-28  Toshiaki Takada  <takada@zebra.org>
-
-       * memory.[ch] (enum): Add MTYPE_OSPF_EXTERNAL_INFO.
-
-2000-03-26  Love <lha@s3.kth.se>
-
-       * zclient.c (zclient_read): Add nbytes size check for
-       ZEBRA_HEADER_SIZE.  Check return value of steam_read ().
-
-2000-03-26  Rick Payne <rickp@rossfell.co.uk>
-
-       * routemap.c: Add flexible route-map commands such as on-match
-       next, on-match goto N.
-
-       * routemap.h: Likewise
-
-2000-03-23  Adrian Bool <aid@u.net.uk>
-
-       * command.c (config_log_trap): Add new command "log trap
-       PRIORITY".
-
-2000-03-14  Toshiaki Takada  <takada@zebra.org>
-
-       * memory.c (struct memory_list): Add Link List and Link Node
-       to view.
-       
-       * memory.h (enum): Remove MTYPE_OSPF_EXTERNAL_ROUTE.
-       
-2000-01-20  Hideto Yamakawa <hideto.yamakawa@soliton.co.jp>
-
-       * str.c (snprintf): Fix bug of calling sprintf instead of
-       vsprintf.
-
-2000-01-16  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * memory.h (enum): Add MTYPE_RIP_PEER.
-
-2000-01-15  Toshiaki Takada  <takada@zebra.org>
-
-       * memory.h (enum): Add MTYPE_OSPF_CRYPT_KEY.
-
-2000-01-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.h (node_type ): Add MASC_NODE for masc.
-
-2000-01-09  Wang Jianliang <wangjl@soim.net>
-
-       * routemap.c (route_map_index_add): When route_map_index is not
-       empty and insert new item at the head, it can cause core dump.
-       Fix "if (index == map->head)" to "if (point == map->head).
-       (route_map_add_set): If there is an old set command, override old
-       set command with new one.
-       (route_map_index_delete): Use while() instead of for for() for
-       logical correctness.
-
-1999-12-26  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * memory.h (enum): Add MTYPE_BGP_STATIC.
-
-1999-12-23  Alex Zinin <zinin@amt.ru>
-       * zebra.h, zclient.*: dynamic int up/down message
-       support
-
-1999-12-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * thread.c (thread_cancel_event): Add a function for clean up
-       events.
-
-1999-12-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * dropline.c: Delete file.
-       dropline.h: Linewise.   
-
-1999-12-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * filter.c (access_list_filter_delete): Wrong pointer
-       access->master was pointed out after access is freed.  I store
-       master value at the beginning of the function.
-
-1999-12-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c (exec_timeout): Change of VTY timeout affect to current
-       VTY connection.
-       (vty_accept): Instead of immediate exit() return -1.
-
-1999-12-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c (vty_configure_lock): Configuration lock function added.
-       Only one VTY can use CONFI_NODE at the same time.
-
-       * log.c: Delete zvlog_* functions.  Now zlog_* does the same
-       thing.
-
-       * log.c (log_init): Function removed.
-       (log_close): Likewise.
-       (log_flush): Likewise.
-       (log_open): Likewise.
-
-       * vty.c (terminal_monitor): Add new command.
-       (no_terminal_monitor): Likewise.
-
-       * log.c (old_log): Function removed.
-       (old_log2): Likewise.
-       (old_log_warn): Likewise.
-
-1999-12-04  Toshiaki Takada  <takada@zebra.org>
-
-       * command.c (cmd_ipv6_match): New function added.
-       (cmd_ipv6_prefix_match): Likewise.
-       
-1999-12-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c (cmd_ipv6_match): 
-
-       * table.c: Delete #ifdef HAVE_MBGPV4.
-
-       * prefix.h (struct prefix): Add safi member.
-       (struct prefix_ipv4): Likewise.
-       (struct prefix_ipv6): Likewise.
-
-1999-12-04  Rumen Svobodnikov <rumen@linux.tu-varna.acad.bg>
-
-       * memory.c (struct mstat): Revert to support MEMORY_LOG.
-
-1999-11-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h: Bump up to 0.81c for testing new kernel codes.
-
-1999-11-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * thread.h (struct thread): Pthread support is disabled all
-       platform.
-
-1999-11-21  Michael Handler <handler@sub-rosa.com>
-
-       * Include <limits.h> and <strings.h> under SUNOS_5.
-
-1999-11-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * sockunion.c (in6addr_cmp): Enclosed by #define HAVE_IPV6
-1999-11-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.h (node_type ): Add BGP_IPV4_NODE and BGP_IPV6_NODE.
-
-1999-11-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c (disable): Add `disable' command.
-
-1999-11-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * plist.c (vty_prefix_list_install): Add any check.
-
-1999-11-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.h (node_type ): Add DUMP_NODE.
-
-1999-11-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * smux.c: Change default SMUX oid to compatible with gated.
-
-1999-10-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * if_rmap.c: New file added.
-
-       * if_rmap.h: New file added.
-
-1999-10-29  Alex Zinin  <zinin@amt.ru>
-
-       * hash.c: add hash_free() function
-
-1999-10-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * hash.c (hash_clean): Add clean function.
-
-       * plist.c (prefix_list_reset): Add reset function.
-
-       * filter.c (access_list_reset): Add reset function.
-
-1999-10-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * client.c: Merged with zclient.c.
-       * client.h: Merged with zclient.h.
-
-1999-10-15  Jordan Mendelson <jordy@wserv.com>
-
-       * md5.c: Imported from GNU C Library.
-       * md5-gnu.h: Likewise.
-
-1999-10-15  Jochen Friedrich <jochen@scram.de>
-
-       * smux.c (smux_getresp_send): SMUX_GETRSP codes improvement.
-
-1999-10-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * smux.h: New file added.
-
-       * snmp.c: Rename to smux.c.
-
-1999-10-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c (cmd_execute_command_strict): Filter ambious commands.
-       (cmd_filter_by_string): Change to return enum match_type.
-
-1999-10-01  Toshiaki Takada  <takada@zebra.org>
-
-       * vty.c (vty_describe_fold): New function which does VTY
-       description line fold.
-       * vty.c (vty_describe_command): Set description column.
-
-1999-09-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * plist.c (prefix_list_init_ipv4): VTY user interface is improved.
-
-1999-09-26  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c (cmd_filter_by_string): Fix bug of CMD_IPV4 and
-       CMD_IPV4_PREFIX check.  Both return type must be exact_match.
-
-1999-09-24  Toshiaki Takada  <takada@zebra.org>
-
-       * command.c (cmd_filter_by_completion),
-       (is_cmd_ambiguous): Check IPv4 address, IPv4 prefix and range 
-       parameter matches range.
-
-1999-09-22  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * routemap.c (route_map_apply): Returm RM_DENYMATCH when no match
-       is performed.
-
-1999-09-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c (vty_read): Control-C stop VTY_MORE mode.
-
-1999-09-20  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.h (node_type ): Add ACCESS_IPV6_NODE and
-       PREFIX_IPV6_NODE.
-
-       * distribute.h: New file added.
-
-       * command.h (node_type ): Delete DISTRIBUTE_NODE.
-
-1999-09-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c (vty_terminate_all): New function added for reload
-       support.
-
-1999-09-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * memory.h (enum): Add new type MTYPE_OSPF_EXTERNAL_ROUTE.
-
-1999-08-31  Janos Farkas <chexum@shadow.banki.hu>
-
-       * vty.c (vty_read): Handle also 0x7f (alt-backspace), just like
-       esc-ctrl-h (delete word backwards).
-
-1999-08-24  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * if.h: Add if_nametoindex for NRL.
-
-1999-08-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * if.c (if_create): New function.
-
-1999-08-22  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * snmp.c: New file.
-
-1999-08-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * stream.c (stream_put): stream_memcpy () is changed to stream_put
-       ().  stream_get () is added.
-
-1999-08-18  Toshiaki Takada  <takada@zebra.org>
-
-       * memory.h (enum): Add MTYPE_OSPF_LSA_DATA.
-       
-1999-08-18  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * table.c (route_table_finish): add function frees table.
-
-1999-08-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * memory.h (enum): Add MTYPE_RTADV_PREFIX.
-
-1999-08-11  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * if.h (struct interface ): hw_address, hw_address_len added.
-
-1999-08-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * if.h (struct interface ): Change structure member if_data to
-       info, index to ifindex.
-
-1999-08-08  Rick Payne <rickp@rossfell.co.uk>
-
-       * routemap.c: Multi protocol route-map modification.
-
-       * routemap.c (route_map_apply): Route match process bug is fixed.
-
-1999-08-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * thread.c (thread_fetch): When signal comes, goto retry point.
-
-1999-08-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Makefile.am: Add sockopt.c and sockopt.h
-       * sockopt.c: New file.
-       * sockopt.h: New file.
-       
-1999-08-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h (ZEBRA_VERSION): Release zebra-0.75
-
-1999-08-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * memory.h (enum): Add MTYPE_RIPNG_AGGREGATE.
-
-1999-07-31  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * sockunion.h: Add sockunion_getpeername ().
-
-1999-07-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h: Release zebra-0.74
-
-1999-07-26  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.h (struct host): Delete lines from struct host.  Add
-       lines to struct vty.
-
-       * command.c: Delete `lines LINES'.  Terminal display line settings
-       should be done by `terminal length' command.
-
-1999-07-24  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * memory.h (enum): MTYPE_OSPF_PATH are added.
-
-1999-07-22  Toshiaki Takada  <takada@zebra.org>
-
-       * memory.h (enum): MTYPE_OSPF_NEXTHOP is added.
-
-1999-07-21  Toshiaki Takada  <takada@zebra.org>
-
-       * linklist.c (list_add_node_prev), (list_add_node_next),
-       (list_add_list): New function added.
-
-       * table.c (route_table_free): New function added.
-       
-1999-07-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * plist.c (config_write_prefix): Set write flag when configuration
-       is written.
-
-1999-07-15  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp> 
-
-       * prefix.c : prefix_cmp() added. change apply_mask() to
-       apply_mask_ipv4(), and new apply_mask() added.
-
-1999-07-14  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * prefix.c (prefix2str): append prefixlen.
-
-1999-07-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c (config_terminal): Change "config terminal" to
-       "configure terminal".  Reported by Georg Hitsch
-       <georg@atnet.at>.
-       (config_terminal_length): `terminal length <0-512>' is added.  At
-       this moment this command is only usef for vty interface.
-       Suggested by Georg Hitsch <georg@atnet.at>.
-
-1999-07-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * routemap.c (rulecmp): Add wrapper function of strcmp.
-
-1999-07-08  Rick Payne <rickp@rossfell.co.uk>
-
-       * sockunion.c (inet_aton): Fix bug of inet_aton.
-
-1999-07-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h (ZEBRA_VERSION): Start zebra-0.73
-
-1999-07-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h: Bump up to 0.72.
-
-1999-07-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c (install_default): New function for install default
-       commands to the node.
-
-       * memory.h (enum): MTYPE_NEXTHOP is added.
-
-1999-07-01    <kunihiro@zebra.org>
-
-       * command.c (no_banner_motd): `no banner motd' command added.
-
-1999-06-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * regex.c: Update to glibc-2.1.1's posix/regex.c
-
-       * regex-gnu.h: Update to glibc-2.1.1's posix/regex.h
-
-       * prefix.h (IPV4_ADDR_SAME): Macro added.
-       (IPV6_ADDR_SAME): Likewise.
-
-1999-06-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * memory.h (enum): Add MTYPE_OSPF_VERTEX
-
-       * version.h: Bump up to 0.71.
-
-       * vty.c (vty_serv_sock_addrinfo): Use addrinfo function to bind
-       VTY socket when IPv6 is enabled.
-
-1999-06-28  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c (vty_serv_sock): Change vty_serv_sock determine which
-       address family to bind.
-
-       * command.c: Add quit command.
-
-1999-06-26  NOGUCHI kay <kay@dti.ad.jp>
-
-       * vty.c (vty_read_config): Fix bug of configuration file path
-       detection.
-
-1999-06-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h: Bump up to 0.70.
-
-1999-06-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * buffer.h (GETL): Remove GETL macro.
-
-       * version.h: Bump up to 0.69.
-
-1999-06-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * if.c (connected_add): Commented out connected_log.
-
-1999-06-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.h (struct cmd_element ): strvec and descvec is combined
-       into newstrvec.
-
-       * command.c (desc_make): Function removed.
-       (desc_next): Function removed.
-
-       * command.h (struct cmd_element ): docvec is removed from struct
-       cmd_element.
-
-1999-06-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c (cmd_execute_command): Remove command NULL check.
-
-       * command.h (struct cmd_element ): Add newstrvec entry to struct
-       cmd_element.
-       (DEFUN2): DEFUN2 macro is removed.  DEFUN is extended to support
-       (a|b|c) statement.
-       (DESC): DESC macro is removed.
-
-       * vty.c (vty_complete_command): When return value is
-       CMD_ERR_NO_MATCH, don't display error message.
-
-1999-06-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * table.c (route_next_until): New function.
-
-       * version.h: Bump up to 0.68.
-
-1999-06-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c (vty_close): Free vty->buf when vty is closed.
-
-       * memory.h (enum): Add MTYPE_COMMUNITY_ENTRY and
-       MTYPE_COMMUNITY_LIST.
-
-       * vty.h (struct vty ): Change buf from static length buffer to
-       variable length buffer.
-
-       * vty.c (vty_ensure): New function added.
-       
-1999-06-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.h (node_type ): Add COMMUNITY_LIST_NODE.
-
-       * command.c (config_enable_password): Freeing host.enable bug is
-       fixed.
-       (config_enable_password): Add argc count check.
-
-1999-05-31  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h: Bump up to 0.67.
-
-1999-05-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c (zencrypt): New function for encrypt password.
-
-       * command.h (struct host): Add password_encrypt and
-       enable_encrypt.
-
-1999-05-30  Jochen Friedrich <jochen@scram.de>
-
-       * command.h (struct host): New member encrypt is added for
-       encrypted password.
-
-1999-05-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c: Remove all_digit_check function.  Instead use all_digit.
-
-       * prefix.c (all_digit): New function for checking string is made
-       from digit character.
-
-1999-05-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Makefile.am (libzebra_a_SOURCES): Add zclient.c.
-       (noinst_HEADERS): Add zclient.h
-
-       * zclient.[ch]: New file for zebra client routine.
-
-       * memory.h (enum): Add MTYPE_ZEBRA.
-
-1999-05-19  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h (ZEBRA_VERSION): Update to 0.66.
-
-1999-05-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * buffer.h (GETC,GETW): Macro deleted.
-
-1999-05-15  Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>
-
-       * prefix.h (IPV4_NET0, IPV4_NET127): Macro added.
-
-1999-05-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c (service_advanced_vty): New command added.
-       (no_service_advanced_vty): Likewise.
-
-1999-05-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c (vty_auth): If advanced flag is set and enable password is
-       not set, directly login to the ENABLE_NODE.  This feature is
-       originally designed and implemented by Stephen R. van den Berg
-       <srb@cuci.nl>.
-
-       * command.h (host): Add advanced flag to struct host for advanced
-       vty terminal interface.
-
-       * version.h (ZEBRA_VERSION): Update to 0.65 for next beta release.
-
-1999-05-14  Stephen R. van den Berg <srb@cuci.nl>
-
-       * command.h (node_type ): Add TABLE_NODE.
-       
-       * vty.c (vty_telnet_option): Check host.lines value.
-
-       * command.c (config_lines): DEFUN for 'lines LINES' command.
-
-       * zebra.h: Include <sys/utsname.h> for uname().
-       (RT_TABLE_MAIN): Defined as 0 if OS does not support multiple
-       routing table.
-
-       * vty.c (vty_auth): Directly login to the ENABLE_NODE when enable
-       password is not set.
-       (vty_prompt): Get machine's hostname when hostname is not set.
-
-1999-05-11  James Willard <james@whispering.org>
-
-       * command.c (config_exit): Close connection when `exit' command is
-       executed at ENABLE_NODE.
-
-1999-05-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c (vty_stop_input): `C-c' key change node to ENABLE_NODE.
-
-       * command.c (cmd_execute_command_strict): Matched command size
-       check added.
-       (cmd_make_desc_line): New function for DEFUN2.
-
-       * command.h (struct cmd_element ): Add descsize.
-
-1999-05-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.h (struct cmd_element ): Remame descvec to docvec.
-       (struct cmd_element ): Add descvec for new description system.
-
-       * command.c (desc_make): Check cmd->descvec.
-
-1999-05-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * memory.h (enum): Add MTYPE_CLUSTER, MTYPE_CLUSTER_VAL.
-
-1999-05-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h (ZEBRA_VERSION): Bump up to 0.64 for next beta
-       release.
-
-1999-05-04  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
-
-       * linklist.c (list_delete_all_node): bug fix. 
-       previous code loses current position when node
-       is deleted.
-
-1999-05-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.h (DESC): Macro added.
-       (struct cmd_element2): Delete struct cmd_element2.
-
-       * plist.c (prefix_list): Sequential number option check is added.
-
-1999-05-02  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
-
-       * log.c (zvlog_{debug,info,notice,warn,err}): have been
-       added. now we can log both console and file, but still 
-       need some fix about config write.
-
-1999-05-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * log.c (zvlog_debug): Fix yasu's change.
-
-1999-05-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * plist.c (prefix_list): Fix typo.
-
-1999-04-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Set version to 0.63 for first beta package.
-
-1999-04-27  Carlos Barcenilla <barce@frlp.utn.edu.ar>
-
-       * prefix.c (str2prefix_ipv4): Fix prefix length check.
-       (str2prefix_ipv6): Likewise.
-
-1999-04-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * memory.h (enum): Add MTPYE_PREFIX_LIST and
-       MTYPE_PREFIX_LIST_ENTRY.
-
-       * command.h (node_type ): Add PREFIX_NODE.
-
-1999-04-25  Carlos Barcenilla <barce@frlp.utn.edu.ar>
-
-       * command.c: ALIAS (config_write_memory_cmd) and ALIAS
-       (copy_runningconfig_startupconfig_cmd) is added.
-
-       * table.c (route_node_lookup): Unused match variable deletion.
-
-1999-04-24  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Makefile.am (libzebra_a_SOURCES): plist.c added.
-       (noinst_HEADERS): plist.h added.
-
-       * plist.c, plist.h: New file added.
-
-       * memory.h (enum): Rename MTYPE_AS_PASN to MTYPE_AS_STR.
-       * memory.c: Likewise.
-
-1999-04-19  Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>
-
-       * command.c (show_version): `show version' command added.
-
-1999-04-19  Kunihiro Ishiguro <kunihiro@zebra.org>
-
-       * prefix.c (str2prefix_ipv6): Prefix length overflow check.
-
-1999-04-19  Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>
-
-       * prefix.c (str2prefix_ipv4): Prefix length overflow check.
-
-1999-04-19  Alex Bligh <amb@gxn.net>
-
-       * prefix.c (sockunion2hostprefix): Function added.
-       (sockunion2prefix): Address family was not set.  Now it is set.
-       
-       * vty.c: VTY access-class command is added.
-
-1999-04-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * memory.c: Change xmalloc to zmalloc.  xcalloc, xrealloc, xfree,
-       xstrdup are likewise.
-
-1999-04-18  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
-
-       * thread.c: Add thread_execute for other routing daemon.
-       OSPF tasks need to be generated by "sheduled" and "executed".
-
-1999-04-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * buffer.c: Rewrite buffer_write and buffer_flush related
-       functions for fixing bugs.  Reason of the problem and fix is
-       suggested by Alex Bligh <amb@gxn.net>.
-       
-1999-04-12  Alex Bligh <amb@gxn.net>
-
-       * command.c (cmd_entry_function_descr): Added for variable
-       argument help display.
-
-1999-04-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * regex.c, regex-gnu.h: Imported from GNU sed-3.02 distribution.
-
-1999-03-24  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * stream.c: stream_fifo_free bug is fixed.
-
-1999-03-19  Toshiaki Takada  <takada@zebra.org>
-
-       * stream.c (stream_strncpy): Added for getting any length bytes
-       from stream.
-
-1999-03-16  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * version.h (ZEBRA_BUG_ADDRESS): New macro added.
-
-1999-03-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * buffer.c (buffer_flush_window): If ep is same as buffer's size
-       length and lp is overrun one octet.
-
-1999-03-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.h: add VTY's timeout function.
-
-1999-03-05    <kunihiro@zebra.org>
-
-       * command.h (node_type ): Add OSPF6_node.
-
-1999-03-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra.h: Check HAVE_SYS_SELECT_H when include <sys/select.h>
-
-1999-03-03  Jeroen Ruigrok/Asmodai <asmodai@wxs.nl>
-
-       * zebra.h: Include <net/if_var.h> if it exists.
-
-1999-03-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * getopt.[ch],getopt1.c: Sync with glibc-2.1.
-
-       * log.c (zlog): Tempolary ZLOG_STDOUT feature added.
-
-       * command.h: Include vector.h and vty.h
-
-1999-02-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * routemap.h (struct route_map_rule_cmd): Add prefix arguemnt.
-
-       * routemap.c (route_map_apply_index): Add prefix argument.
-       (route_map_apply): Likewise.
-
-       * memory.h (enum): Add MTYPE_ROUTE_MAP_COMPILED.
-
-       * stream.c: Add stream_fifo related functions.
-
-1999-02-24  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * daemon.c: Return integer value.  File descriptor close is added.
-
-       * memory.h (enum): add MTYPE_OSPF_LSA.
-
-1999-02-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rsh.c: Remove empty file.
-
-1999-02-22    <kunihiro@zebra.org>
-
-       * routemap.c: Add add/delete hook to route_map_master.
-
-1999-02-19  Peter Galbavy  <Peter.Galbavy@knowledge.com>
-
-       * str.[ch] added to supply wrappers for snprintf(), strlcat() and
-       strlcpy on system without these.
-
-1999-02-18  Peter Galbavy  <Peter.Galbavy@knowledge.com>
-
-       * syslog support added
-
-1999-02-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * filter.c (access_list_add_hook): added for hook function management.
-       * filter.c (access_list_delete_hook): Likewise.
-
-1999-01-19  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * stream.c: New file.
-       * stream.h: New file.
-       * Divide stream related fucntions from buffer.[ch] into stream.[ch].
-       
-1999-01-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * memory.h (enum): add MTYPE_STREAM, MTYPE_STREAM_DATA
-
-       * buffer.c (stream_new): Set MTYPE_STREAM to XMALLOC argument.
-
-1998-12-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * routemap.c: route_map_index_delete() added.
-
-1998-12-22  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * buffer.c (buffer_empty): check cp instead of sp.
-
-1998-12-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * radix.[ch]: Deleted.
-
-1998-12-15  Magnus Ahltorp <map@stacken.kth.se>
-
-       * buffer.c: Prototype fixes.
-       * prefix.c: Likewise.
-       * sockunion.c: Likewise.
-       * sockunion.h: Likewise.
-
-1998-12-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c (vty_read): DELETE key works as vty_delete_char.
-
-1998-12-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * log.c (time_print): chane %y to %Y.
-
-1998-12-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * distribute.c: new file.
-
-1998-12-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * filter.c: Remove all of struct prefix_{ipv4,ipv6} and add
-       complete support of IPv6 access list.
-
-       * command.c (config_write_element): function delete.
-       (config_write_host): function add.  password and enable password
-       isn't printed to vty interface.
-
-1998-12-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * filter.c: Change prefix_ipv4 to prefix and add support of
-       prefix_ipv6 filtering.
-
-1998-12-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Makefile.am (INCLUDES): add @INCLUDES@ for Linux IPv6 inet6-apps
-       header includes.
-
-1998-12-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * log.c (log_flush): fix function name typo.
-
-1998-12-04  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
-
-       * memory.h: OSPF memory type is added.
-
-1998-11-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c (sort_node): add sort_node() for pretty printing of
-       command on vty interface.
-       (config_password): delete the restriction of charaster of password
-       string.
-
-1998-09-05  Kunihiro Ishiguro  <kunihiro@debian.zebra.org>
-
-       * prefix.c (prefix_ipv4_any): add prefix_ipv4_any().
-
-1998-08-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * network.h: New file.
-
-1998-08-24  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c (vty_will_echo): function name change from vty_off_echo.
-
-1998-08-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * buffer.h: add PUTC,PUTW,PUTL macros.
-
-1998-07-22  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * route.[ch]: renamed to prefix.[ch]
-
-1998-06-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * prefix_in, prefix_in6 is replaced by prefix_ipv4, prefix_ipv6.
-
-       * Makefile.am: @INCLUDES@ is deleted from INCLUDES.
-
-1998-06-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * host.[ch]: merged with command.[ch]
-
-1998-05-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Makefile.am (libzebra_a_SOURCES): add route.c to libzebra_a_SOURCES.
-
-1998-05-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * route.c (str2prefix): str2prefix () is gone.
-
-1998-05-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c (vty_read_config): change CONDIR to SYSCONFDIR.
-
-       * .cvsignore: add file.
-
-       * memory.c (xerror): add arguent `type' and `size'.
-
-       * socket.c: deleted.
-
-1998-05-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vector.c: malloc,free,realloc -> XMALLOC,XFREE,XREALLOC.
-       * linklist.c: same as above.
-
-1998-04-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * filter.[ch]: added.
-
-1998-04-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c (config_who): return CMD_SUCCESS
-
-1998-04-01  Jochen Friedrich <jochen@scram.de>
-
-       * table.c (route_dump_node): route_dump_node is IPv6 specific
-       function so move #ifdef to the end of route_dump_node ().
-
-1998-03-05  "Hannes R. Boehm" <hannes@boehm.org>
-
-       * if.c: DEFUN(interface_desc) added.
-
-1998-03-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * if.c: separated from ripd/rip_interface.c
-
-1998-03-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * thread.[ch] : added.
-
-1998-02-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c (vty_delete_char): fix size bug.
-       (vty_backward_pure_word): function added.
-       (vty_read): ESC + 'f' perform vty_forward_word.
-       (vty_read): ESC + 'b' perform vty_backward_word.
-
-1998-02-11  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * radix.c (radix_lookup_rt): add mask check.
-       (radix_delete_duproute): add mask check.
-
-1998-02-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c (config_write_file): fix vty -> file_vty.
-
-1998-02-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c (cmd_filter_ambiguous): add complex type treatment.
-
-1998-02-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c (vty_time_print): function added.
-       (vty_complete_command): now [...] element isn't shown by completion.
-
-1998-01-26  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c : change from cmd_install_node() to install_node().
-
-1998-01-16  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * route.[ch]: struct rt{} is replaced by struct prefix{}.
-
-1998-01-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c (cmd_execute_command): check command length.
-
-       * timer.c (zebra_timer_set): add zebra_timer_set.
-
-1998-01-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.h (node_type ): add ZEBRA_NODE.
-
-       * command.c (config_exit): add RIP_NODE.
-       (config_write_file): add RIP_NODE.
-
-1998-01-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * print_version.c (print_version): Now Copyright is 1996-1998.
-
-       * sockunion.c (sockunion_log): moved from ../zebra/route.c
-
-1997-12-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * host.c (config_logfile): change 'log PATH' to 'logfile PATH'.
-
-       * sockunion.c (sockunion_sameprefix): add same prefix for
-       sockunion.
-
-1997-12-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * radix.[ch] : are moved from ../zebra directroy.
-       
-       * command.c (config_from_file): if command execution failed down
-       level to CONFIG_NODE.
-
-       * host.c: config_log function which enable 'log FILENAME' command.
-
-1997-12-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c: add vty_transpose_chars ().  Now you can use '^T' to
-       transpose character.
-
-       * command.c: cmd_cmdsize add, this is useful to check incomplete
-       command.
-
-1997-12-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * fd.h: add family for address family
-
-1997-12-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.o
-       * vty.o
-       * host.o    is moved from ../zebra
-
-1997-08-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * make library directory.
-
diff --git a/m4/ChangeLog b/m4/ChangeLog
deleted file mode 100644 (file)
index 0a60d6a..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-2007-02-02  Greg Troxel  <Greg Troxel <gdt@ir.bbn.com>>
-
-       * Makefile.am: remove all the m4 files; they are crufty (2004) and
-       quagga CVS users should have newer libtool by now.
-
-2004-08-31  Greg Troxel  <gdt@poblano.ir.bbn.com>
-
-       * Makefile.am (EXTRA_DIST): New - just has EXTRA_DIST.  (Using a
-       directory in EXTRA_DIST in the parent was causing 'make dist' to fail.)
-
-2004-08-19 Paul Jakma <paul@dishone.st>
-
-       * *.m4: import of libtool CVS m4 autoconf files. These only
-         configure libtool support for languages where configure has
-         already called AC_PROG_<lang>, less fragile.
-       * README.txt: doc file for contents of this directory.
diff --git a/ospf6d/ChangeLog b/ospf6d/ChangeLog
deleted file mode 100644 (file)
index f4ad928..0000000
+++ /dev/null
@@ -1,1199 +0,0 @@
-2007-10-22 Phil Spagnolo <phillip.a.spagnolo@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.
-
-2007-06-07 Pavol Rusnak <prusnak@suse.cz>
-
-       * ospf6_lsa.c: (no_debug_ospf6_lsa_hex_cmd) Fix bug: must use strcmp
-         to compare strings.
-
-2007-04-27 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf6_snmp.c: (ospfv3AreaEntry, ospfv3AreaLsdbEntry) Fix some
-         zlog_debug printf formats to work with 64-bit size_t.
-
-2007-03-08 David Siebörger d.sieborger@ru.ac.za
-
-       * ospf6_neighbor.c: (ospf6_neighbor_show) Fix bug #322, ospf6d
-         wasn't updated to match thread times changing to relative
-         time.
-
-2007-02-27  Pavol Rusnak <prusnak@suse.cz>
-
-       * ospf6_lsa.c: (ospf6_lsa_handler_name) Fix bug: must use strcmp
-         to compare strings.
-
-2007-02-02  Greg Troxel  <Greg Troxel <gdt@ir.bbn.com>>
-
-       * ospf6d.h: remove declaration of errno (should be via header)
-
-2006-03-01  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_asbr.c: fix bug of needless forwarding address
-       * ospf6d.h: version 0.9.7r
-
-2006-02-22  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * valgrind check and memory fix
-       * route table identification string added
-       * ospf6d.h: version 0.9.7q
-
-2005-10-20  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_neighbor.c: add the calling of ospf6_maxage_remove ()
-       when the neighbor went out of Exchange/Loading.
-
-2005-10-06  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_asbr.c: fix bug of calculating AS-External routes
-         in other areas. Add debugging function for border-router
-         calculation.
-       * ospf6d.h: version 0.9.7p
-
-2005-10-01 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf6_asbr.c: Remove local hard-coded tables zroute_name and
-         zroute_abname. Change the ZROUTE_NAME macro to use new library
-         function zebra_route_string().  Remove the ZROUTE_ABNAME macro.
-         (ospf6_asbr_external_route_show): Replace ZROUTE_ABNAME() with
-         a call to zebra_route_char(), and be sure to fix the format string,
-         since we now have a char instead of a char *.
-       * ospf6_zebra.c: Remove local hard-coded tables zebra_route_name and
-         zebra_route_abname.  Note that the zebra_route_name[] table
-         contained mixed-case strings, whereas the zebra_route_string()
-         function returns lower-case strings.
-         (ospf6_zebra_read_ipv6): Change debug message to use new library
-         function zebra_route_string() instead of zebra_route_name[].
-         (show_zebra): Use new library function zebra_route_string() instead
-         of zebra_route_name[].
-
-2005-08-09 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf6_asbr.c: (ospf6_asbr_redistribute_add) Fix sense of testing
-         of route_map_apply return code, it can return many things other
-         than RMAP_MATCH which do not indicate DENY. Should test explicitly
-         for equality to RMAP_DENYMATCH instead.
-
-2005-06-24 Harald Welte <laforge@gnumonks.org>
-
-       * ospf6_abr.[ch], ospf6_area.[ch]: Add area filter-list (in|out)
-         support and area import and export lists support.
-
-2005-06-24 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
-
-       * ospf6_message.c: Changed to be insensitive to changes of neighbors'
-         IP source address in the OSPF packets. It was sometimes problematic
-         in actual operation (needed some operational cost: restarting
-         all-neighbor routers when I/F NIC was changed). Due to this change,
-         a previously safe case, attaching multiple interface to the same
-         link will now be dengerous and will not work. Remedy to that should
-         be applied later.
-
-2005-06-24 Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_interface.c: fix the way inactivity_timer is called. Because
-         inactivity_timer() deletes the neighbor from the neighbor_list, it
-         cannot be called by thread_execute() from inner side of the
-         neighbor_list for-loop.
-
-2005-05-31 Hasso Tepper <hasso at quagga.net>
-
-       * ospf6d.c: No need for double ';'. Fixes parsing "show ipv6 ospf6
-         database ..." commands for vtysh by extract.pl. Remove duplicate
-         install_element calls.
-
-2005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf6_zebra.c (ospf6_zebra_redistribute, ospf6_zebra_no_redistribute):
-         Change 2nd arg to zebra_redistribute_send from zclient->sock
-         to zclient.
-
-2005-04-07 Paul Jakma <paul@dishone.st>
-
-       * (global) Fix up list loops to match changes in lib/linklist,
-         and some basic auditing of usage.
-       * ospf6_abr.c: (ospf6_abr_examin_brouter) change to a single
-         scan of the area list, rather than scanning all areas first for
-         INTER_ROUTER and then again for INTER_NETWORK. According to
-         16.2, the scan should be area specific anyway, and further
-         ospf6d does not seem to implement 16.3 anyway.
-
-2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf6_interface.[ch]: (ospf6_interface_lookup_by_name) Remove unused
-         function.
-
-2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf6_zebra.c: (ospf6_zebra_if_del) Previously, this whole function
-         was commented out.  But this is not safe: we should at least update
-         the ifindex when the interface is deleted.  So the new version
-         updates the interface status and sets ifp->ifindex to
-         IFINDEX_INTERNAL.
-         (ospf6_zebra_route_update) Use if_indextoname properly.
-
-2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf6_route.c: (ospf6_route_show, ospf6_route_show_detail) Protect
-         against the possibility that the string returned by if_indextoname
-         may not terminate with '\0'.
-
-2005-03-02 Vincent Jardin <Vincent.Jardin@6wind.com>
-
-       * ospf6_zebra.c: Fix core dump when router-id is provided with
-         an empty ospf6d.conf file (no context router ospf6) because
-         ospf6_create has not been called yet.
-
-2005-01-25 Paul Jakma <paul@dishone.st>
-
-       * ospf6_asbr.c: Add "hsls" to the zroute_name const char array.
-
-2004-12-24 Hasso Tepper <hasso at quagga.net>
-
-       * *.c: Change level of debug messages to LOG_DEBUG.
-
-2004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf6_main.c: (main) The 2nd argument to openzlog has been removed.
-         Note that stdout logging will no longer be enabled by default when
-         not running as a daemon.
-
-2004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf6_main.c: (sigint,sigterm) Use zlog_notice for termination
-         message.
-         (main) Remove commented-out call to pid_output_lock (which should
-         never be called other than from inside pid_output).  And use
-         zlog_notice to print the startup message, which now includes
-         the vty port.
-
-2004-11-26 Hasso Tepper <hasso at quagga.net>
-
-       * ospf6_snmp.c: Fix compile: listnode -> struct listnode *.
-
-2004-11-25 Hasso Tepper <hasso at quagga.net>
-
-       * ospf6_main.c: Make group to run as configurable.
-
-2004-11-05 Phil Spagnolo <phillip.a.spagnolo@boeing.com>
-       * ospf6_flood.c:  When adding a thread to retransmit an lsa after 
-    rxmt_interval, the ospf6d used thread_add_event().  However, 
-    thread_add_event() executes immediately and ignores the delay parameter.  
-    This was causing unnecesary unicast LSU sends.  Adding the thread has 
-    been changed to use thread_add_timer() which will expire after delay.  
-    After the fix results appear consistent with expectation.
-
-2004-10-12 Hasso Tepper <hasso at quagga.net>
-
-       * ospf6_snmp.c: Remove defaults used to initialize smux connection to
-         snmpd. Connection is initialized only if smux peer is configured.
-
-2004-10-11 Hasso Tepper <hasso at quagga.net>
-
-       * osp6_top.c, ospf6_top.h: Better handling for router-id. If we use
-         common one, don't output it into configuration - only statically
-         configured one.
-
-2004-10-10 Paul Jakma <paul@dishone.st>
-
-       * Makefile.am: fix listing of ospf_snmp.c in noinst_HEADERS
-       * ospf6_route.c: Add const qualifier to various char arrays of
-          constants. signed/unsigned fixes.
-          (ospf6_linkstate_table_show) argv is const
-        * ospf6_snmp.c: listnode typedef is dead.
-          (ospf6_snmp_init) Take struct thread_master arg, needed for
-          smux_init.
-        * ospf6_snmp.h: update ospf6_snmp_init declaration.
-        * ospf6d.c: (ospf6_init) add const qualifier to sargv, pass master
-          to ospf_snmp6_init.
-       * ospf6_asbr.c: const char update.
-       * ospf6_interface.c: ditto, plus signed/unsigned fixes.
-         (ipv6_ospf6_cost) Check whether cost fits in u_int32_t and use
-          strtoul.
-       * ospf6_intra.c: const char update. Parenthesise expression.
-       * ospf6_lsa.c: signed/unsigned and const char updates.
-       * ospf6_proto.c: ditto.
-       * ospf6_message.c: ditto.
-       * ospf6_lsdb.c: signed/unsigned update.
-       * ospf6_main.c: const char update.
-       * ospf6_neighbor.c: ditto.
-       * ospf6_spf.c: ditto.
-       * ospf6_top.c: ditto.
-       
-2004-10-06  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_snmp.c: add partial support for SNMP
-       (i.e. ospfv3AreaLsdbTable).
-       * OSPFv3-MIB.txt: Net-SNMP translate Unsigned32 range
-       (0..'FFFFFFFF'h) incorrectly to (0..-1). Those parts for
-       Unsigned32 range are changed to (0..4294967295).
-       Also, doubtful 'not-accessible's are changed to read-only.
-
-2004-10-06  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_snmp.[ch], OSPFV3-MIB.txt: start supporting SNMP.
-       it follows draft-ietf-ospf-ospfv3-mib-08.txt, but change
-       OSPFv3 tree to {experimental 102} based on
-       http://www.iana.org/assignments/smi-numbers:
-       Prefix: iso.org.dod.internet.experimental (1.3.6.1.3.)
-          102   OSPFv3    OSPF for IPv6   [Joyal]
-
-2004-10-03 Hasso Tepper <hasso at quagga.net>
-
-       * ospf6_zebra.c: Use router id from zebra daemon if it wasn't set in
-       configuration.
-
-2004-09-25  Hasso Tepper  <hasso at estpak.ee>
-
-       * ospf6_asbr.c, ospf6_lsa.c, ospf6_proto.c, ospf6_proto.h: Fix
-       compiler warnings.
-
-2004-09-23 Hasso Tepper <hasso at quagga.net>
-
-       * *.[c|h]: list -> struct list *, listnode -> struct listnode *.
-
-2004-09-13  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_intra.c, ospf6_route.[ch]: try to fix assertion failure
-       in brouter's route_remove
-       * ospf6d.h: version 0.9.7o
-
-2004-09-12  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_route.c: route_count_assert bug fix
-       * ospf6d.h: version 0.9.7n
-
-2004-09-03  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_area.c, ospf6_route.c, ospf6_top.c, ospf6d.c:
-       "show intra-route" function and "show SPF result" function is
-       changed.
-       * ospf6_neighbor.c: Changed to update stub intra-prefix origination
-       when it is not DR.
-       * ospf6_route.h: resolv conflict between best flag and
-       active-summary flag.
-       * ospf6d.h: version 0.9.7m
-
-2004-09-02  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_asbr.c: E-bit check in examining AS-External-LSA
-       * ospf6_abr.c: E-bit set in receiving Inter-Area-Router-LSA
-
-2004-09-02  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * *.[ch]: Logging LSAs of particular type is added.
-       lsa_handler is now using vector in order to adjust
-       existing LSA modules.
-       * ospf6d.h: version 0.9.7l
-
-2004-08-28  Hasso Tepper  <hasso at quagga.net>
-
-       * ospf6_main.c: Modify for sigevents.
-
-2004-08-26  Hasso Tepper  <hasso@estpak.ee>
-
-       * ospf6_interface.c, ospf6_top.c, ospf6d.c: for vtysh.
-
-2004-08-19  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_asbr.c: Bug in ASBR check fixed.
-       * ospf6d.h: version 0.9.7k
-
-2004-08-19  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_asbr.c: Bug in AS-External Origination fixed.
-       * ospf6d.h: version 0.9.7j
-
-2004-08-15  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * *.c: Area support almost done. (almost ! ;p)
-       * ospf6d.h: version 0.9.7i
-
-2004-08-15  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_message.c: Bug cause BadLSReq is fixed.
-       * ospf6_abr.c: Border Router check.
-       * ospf6d.h: version 0.9.7h
-
-2004-08-14  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_area.[ch], ospf6_abr.[ch]: area range,
-       border-routers, Inter-Area-Router-LSA origination
-       * ospf6d.h: version 0.9.7g
-
-2004-08-12  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * *.[c,h]: LSA refreshing is changed and cleaned up.
-       * ospf6d.h: version 0.9.7f
-
-2004-08-01  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_abr.[ch]: add files for abr function.
-       * *.c: VTY_NEWLINE -> VNL
-       * ospf6d.h: version 0.9.7e
-         show database functions are rewritten.
-
-2004-07-23  Hasso Tepper  <hasso@estpak.ee>
-
-       * ospf6_interface.c, ospf6_zebra.c: use ifp->mtu6 instead of
-         ifp->mtu.
-
-2004-07-23 Paul Jakma <paul@dishone.st>
-
-       * ospf6_main.c: Delete LOG_PERROR, not portable.
-       * ospf6_network.c: (ospf6_set_pktinfo) use setsockopt_ipv6_pktinfo
-
-2004-07-06  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_message.c, ospf6_interface.c: add a command to configure
-       ospf6 ifmtu on a interface.
-       * ospf6d.h: version 0.9.7d
-
-2004-05-18  Hasso Tepper <hasso@estpak.ee>
-
-       * *.*: Merge rewritten ospf6d from Zebra repository.
-       * ospf6_network.c, ospf6_main.c: Merged privs stuff back in.
-       * ospf6_zebra.c: Sync back to zclient changes.
-       * ospf6_asbr.c: Added isis to the routings list.
-       * ospf6_main.c: "version.h" -> <lib/version.h>
-
-2004-05-17  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_flood.[ch], ospf6_lsa.[ch], ospf6_lsdb.h, ospf6_message.c
-       ospf6_neighbor.c: Fix crash bug and change the way to count
-        how many neighbors include paticular LSA on its retrans-list.
-       * ospf6d.h: version 0.9.7c
-
-2004-05-03  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_message.[ch], ospf6_interface.c: adjust send/recv buffer
-       size to interface MTUs.
-       * ospf6d.h: version 0.9.7b
-
-2003-08-18  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * *.[ch]: rewrite all source code from scratch
-       * ospf6d.h: version 0.9.7
-
-2003-08-11  Taisuke Sasaki <sasaki@soft.net.fujitsu.co.jp>
-
-        * ospf6_ism.c: DR Election bug fix.
-
-2003-04-25  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_asbr.c: AS-External LSA refresh was based on the
-       prefix of the obsolete LSA. It was wrong so fixed.
-       * version: 0.9.6p
-
-2002-11-09  Vincent Jardin  <jardin@6wind.com>
-
-       * ospf6_interface.c: update link-local address on interface creation.
-
-2002-11-09  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_asbr.c: apply MinLSInterval to AS-External-LSA origination.
-       * ospf6_lsa.c: change not to issue flooding caused by expire event
-       when the received LSA is (already) MaxAge.
-       * ospf6_spf.c: fix a bug which is that ospf6d calculates
-       wrong nexthop when failed to find Link-LSA for the neighbor.
-       * ospf6_damp.c ospf6_dbex.c ospf6_neighbor.c ospf6_spf.c:
-       some clean up
-       * version: 0.9.6o
-
-2002-10-04  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_asbr.c: bug of failing ASE lsa refresh fixed.
-       * version: 0.9.6n
-
-2002-10-01  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_asbr.c: AS-External-LSA origination function
-       is re-written.
-       * ospf6_damp.[ch]: New feature that damps flaps is added.
-       * version: 0.9.6m
-
-2002-07-14  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_spf.c: unwanted assert() in ospf6_spf_nexthop_calculation()
-       is deleted.
-       * version: 0.9.6l
-
-2002-07-14  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_dbex.c: bug that ospf6d fails to refresh self-originated
-       LSA if he have not the LSA before has been fixed.
-       * ospf6_asbr.c: bug of failing removing ASE LSA when remove
-       message arrived from zebra has been fixed.
-       * version: 0.9.6k
-
-2002-07-13  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_zebra.c: bug reported [zebra 14642] fixed.
-       The bug was related to the synchronization between zebra
-       and ospf6d. Now synchronization will be correctly done.
-       * version: 0.9.6j
-
-2002-07-07  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_lsdb.c: bug fixed in ospf6_lsdb_type_router ().
-       * ospf6_dbex.c: because of retrans list structure changed
-       due to LSDB change, removal of old instance from retrans-list
-       is not necessary anymore. this caused crash but now fixed.
-       * version: 0.9.6i
-
-2002-07-07  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.93 released.
-
-2002-07-07  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_lsdb.c: entirely rewritten. now ospf6d uses
-       radix tree by using lib/table.[ch] for LSDB lookup.
-       * ospf6_abr.c, ospf6_asbr.c, ospf6_intra.c: hook changed
-       due to rewriting of lsdb module.
-       * ospf6_neighbor.c: lack of check existence and find correct
-       instance of the LSA which is going to be removed from neighbor's
-       retransmission was filled.
-       * version: 0.9.6h
-
-2002-07-07  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_intra.c: bug fix for Intra-route deletion.
-       * ospf6_route.c: bug fix for path comparison.
-       * version: 0.9.6g
-
-2002-06-28  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_route.c: some logs trying to find the situation
-       when assert occur are added. route duration statistics
-       added.
-       * ospf6_zebra.c: trying to fix the problem reported by
-       [zebra 14318] but not yet sure.
-       * version: 0.9.6f
-
-2002-06-25  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_intra.c: new file for management of intra-prefix LSA.
-       * ospf6_abr.c: inter area route calculation code added.
-       * version: 0.9.6e
-
-2002-06-22  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_asbr.c: All AS-External route was removed when
-       one of the ASBR path was gone, but the route from other ASBR
-       path should stay remained. this bug is fixed.
-       * version: 0.9.6d
-
-2002-06-22  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_route.c: route table calculation bug fixed. [zebra 14105]
-       * ospf6_spf.c, ospf6_route.c, etc.: log message cleaned up.
-       * version: 0.9.6c
-
-2002-04-27  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_route.c: [zebra 13514] bug fix.
-       thanks to Harald Koch.
-       * version: 0.9.6b
-
-2002-04-22  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_dump.c: fix bug of log function
-       * ospf6_area.c: fix bug of intra route deletion
-       * version: 0.9.6a
-
-2002-04-20  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * merged with "current" version.
-       * version: 0.9.6
-
-2001-03-11  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_lsdb.c ospf6_spf.c: log message changed for debug.
-
-2001-02-20  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * version: 0.9.5i
-
-       * ospf6_asbr.c: Added code that finds alternative
-       AS-External route when remove AS-External route.
-       This is temporary fix ...
-
-       * ospf6_redistribute.c: remove redistributed routes
-       immediately when 'no redistribute ...'
-
-2001-02-20  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * version: 0.9.5h
-
-       * ospf6_spf.c, ospf6_lsa.c: Change to originate Link-LSA on
-       point-to-point links.
-
-       * ospf6_message.c: Bug of log messages of self-originated
-       Hello packet fixed.
-
-2001-02-09  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * version: 0.9.5g
-       * ospf6_asbr.c: fix for the bug that AS-External route
-       is not get removed.
-
-2001-02-09  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_lsdb.c: crash bug while receiving wrong LSA scope bit
-       has been temporarily fixed
-
-2001-12-20  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_asbr.[ch]: The byte order bug in encoding/decoding
-       the bits/metric field in AS-External-LSA fixed.
-       Fixed to update E-bit in Router-LSA of itself.
-       Reported by Taisuke Sasaki ([zebra 11548]).
-
-       * README: updated.
-
-       * version: 0.9.5f
-
-2001-11-21  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_prefix.c: Intra-prefix-LSA bug fixed.
-       * ospf6_abr.[ch]: added (only just placeholder yet)
-
-2001-11-20  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_route.c: fix to overwrite a prefix when another
-       addition to the prefix is given. freeze function changed
-       not to remove routes by default.
-
-       * version: 0.9.5e
-
-2001-11-19  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * version: 0.9.5d
-
-       * ospf6_lsa.c ospf6_spf.c: SPF Calculations are now
-       scheduled by hook.
-
-       * ospf6_route.c: ospf6_route_add bug fix,
-       ospf6_route_remove_all corrected.
-
-2001-11-15  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_hook.[ch]: added.
-       * Almost half of the code has been rewritten.
-       especially, ospf6_route.[ch]. Hook call has been injected
-       much.
-       * ospf6_asbr.[ch]: added.
-
-2001-10-17  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_dbex.c: ospf6d was wrong to omit reoriginating
-       of LSA when the self-originated LSA was received from others.
-       fixed.
-       * ospf6d.h: version: 0.9.5c
-
-2001-10-16  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_lsa.c: 'force-prefix' was not executed. fixed.
-       * ospf6d.h: version: 0.9.5b
-
-2001-10-13  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_interface.c: 'passive-interface' is now moved to
-       'ipv6 ospf6 passive' in INTERFACE NODE. 'prefix-list' which
-       specifies the filter prefix for connected address prefix also
-       moved to INTERFACE NODE as 'ipv6 ospf6 advertise prefix-list WORD'.
-       The old obsoleted commands are still acceptable though. New command
-       'ipv6 ospf6 advertise force-prefix' added, which which tells ospf6d
-       to advertise rather prefix than stub local-address even on loopback
-       or pointopoint interfaces.
-
-       * ospf6_dump.c: 'ospf6 debug hello' -> 'ospf6 debug message hello'.
-       same for other message type. The older is still acceptable.
-
-       * ospf6_lsa.c: Changed AS-External generation to new one which uses
-       LSA hooks. Delete old garbage.
-
-2001-10-02  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6d.c: turn off and turn on sequence with
-       'no interface' 'interface' cmds was not work. fixed.
-
-       * ospf6_lsa.c: generating Intra-Area-Prefix-LSA for stub
-       did not care duplicate prefixes. fixed.
-
-2001-09-07  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_message.c: There was a bug that prevent LSDB
-       to syncronize. It was a DbDesc packet bug that Slave
-       sends two different DbDesc packet on the same sequence
-       number. This cause many LSAs are dropped when Exchanging
-       LSDB, because the latter DbDesc packet that have the same
-       sequence number will be ignored as duplicate packet.
-       This seems to be exist at least before 0.9.4 version.
-       Now this is the most stable candidate.
-
-       * ospf6d.h: version 0.9.5a
-
-2001-09-06  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_zebra.c ospf6_spf.c ospf6_lsa.c :
-       delete nexthop check to certify the nexthop is Link-local address.
-       Suppress Link-LSA origination on links other than Broadcast.
-       SPF's nexthop calculation first checks linklocal address
-       in Link-LSA, then checks source address of neighbor's packets.
-
-       * ospf6_interface.c ospf6_ism.c ospf6_lsa.c ospf6_nsm.c:
-       intra-area-prefix-lsa origination func moved to new one.
-
-       * ospf6_interface.h ospf6d.[ch] ospf6_lsa.c: 
-       interface_area_cmd now changed to have 'passive'
-       and 'prefix-list' option.
-
-       * ospf6_prefix.c:
-       clean up.
-
-2001-09-04  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_dbex.c ospf6_interface.c ospf6_ism.c ospf6_lsa.[ch]:
-       clean up and new LSA origination functions added.
-
-       * ospf6_route.c ospf6_lsdb.c: make vty function more
-       clean/understandable.
-
-       * ospf6d.h: version 0.9.5
-
-2001-08-24  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * ospf6_lsdb.c: Use IS_LSA_MAXAGE macro instead of
-       ospf6_lsa_is_maxage.
-
-       * ospf6_lsa.h (IS_LSA_MAXAGE): Add new macro to check MaxAge.
-
-2001-08-21  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_lsdb.c: if There's no previous prefix
-       ospf6d was wrongly not calculate the prefix.
-       this reported by (v6 16029) is fixed.
-
-       * ospf6_neighbor.c: Instance of LSA Summary included
-       in DbDesc packet was wrongly freed. The bug cause
-       malformed DbDesc, ExChange <-> ExStart flapping,
-       and then crash.
-
-       * ospf6d.h: version 0.9.4
-
-2001-08-21  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_route.[ch]: Showing format is changed.
-       'show ipv6 route ospf6' -> 'show ipv6 ospf6 route'
-       'show ipv6 route ospf6 external' ->
-       'show ipv6 ospf6 route redistribute'
-
-       * ospf6_lsdb.c ospf6_lsa.c ospf6_neighbor.c ospf6_interface.c:
-       memory leak in LS list fixed.
-
-       * all: clean up
-
-       * ospf6d.h: version 0.9.3
-
-2001-08-20  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * ospf6d.c (ospf6_timeval_sub_equal): Remove function.
-
-       * ospf6_spf.c (ospf6_timeval_cmp): Rewrite ospf6_timeval_cmp().
-       (ospf6_timeval_add_equal): Function moved from ospf6d.c
-       
-2001-08-19  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.92a released.
-
-2001-08-15  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.92 released.
-
-2001-08-09  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_lsdb.c ospf6_neighbor.c:
-       LSDB function/structure and LS list function has been rewritten.
-       memory leak has been decreased.
-
-       * ospf6_lsa.[ch] ospf6_dbex.c: garbage code has been deleted.
-
-       * ospf6d.h: version 0.9.2
-
-2001-08-07  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_dbex.c ospf6_lsdb.c:
-       Retransmition list had a critical bug that breaks LSDB
-       synchronization. When new LSA be added to retrans-list,
-       old must be removed, but it was not. So new LSA dropped,
-       and LSA Acknowledgement did not work. The bug was fixed.
-
-       * ospf6d.h: version 0.9.1
-
-2001-06-20  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_spf.c: crash bug fix in temporary treat code for
-       Router-LSA whose LS-ID != 0
-
-       * ospf6_dbex.c: RFC2328 13.(4) was wrongly coded.
-           (4) Else if the LSA's LS age is equal to MaxAge, and there is
-            currently *NO* instance of the LSA in the router's link state
-           ...
-
-       * ospf6_lsa.c: RFC2328 13.1 checksum tie breaker
-       had been neglected, and has just added now.
-
-       * ospf6d.h: version 0.9.0
-       ospf6d expected to work with hitachi gr2000 from these fixes.
-
-2001-06-12  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_lsa.c: Fix bug in creating Intra-Area-Prefix-LSA.
-       DR was mis-include others prefixes advertised by their Link-LSA.
-
-       * ospf6_route.c: Fix bug in calculating intra area routes.
-       Not all prefixes in Intra-Area-Prefix-LSA was calculated.
-
-       * ospf6_spf.c:
-       Changed to quit when a error occured in calculating SPF tree.
-       Very messy hack for the bug reported by [zebra 8807]. This
-       is not tested yet.
-       Changed to quit SPF calculation when a nexthop calculation
-       errors.
-
-       * ospf6_zebra.c:
-       Support for interface address deletion.
-
-       * ospf6d.h:
-       version: 0.8.y
-
-2001-04-18  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6d.h
-       Due to previous change (DR Election algorithm changed),
-       backward compatibility will be lost from this version.
-       version: 0.8.x
-
-2001-04-18  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_message.c ospf6_ism.c:
-       Bug of router_id comparison
-
-2001-04-17  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_dbex.c: ospf6_dbex_is_maxage_to_be_dropped() had
-       some bug causing Loading state lasts long.
-       version: 0.8.v
-
-2001-04-08  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_route.c: BUG in AS-External route calculation fixed.
-       It was using OLD LSDB...
-       Version: 0.8.u-
-
-2001-04-08  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_area.c, ospf6_dbex.c, ospf6_interface.c,
-       ospf6_lsa.c, ospf6_lsdb.c, ospf6_lsdb.h, ospf6_message.c,
-       ospf6_neighbor.c, ospf6_neighbor.h, ospf6_nsm.c,
-       ospf6_redistribute.c, ospf6_route.c, ospf6_spf.c:
-       Delete old LSDB function.
-
-       * ospf6d.h:
-       Version: 0.8.u
-
-2001-04-05  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_area.c, ospf6_area.h, ospf6_dbex.c, ospf6_interface.c,
-       ospf6_interface.h, ospf6_lsa.c, ospf6_lsdb.c, ospf6_lsdb.h,
-       ospf6_message.c, ospf6_nsm.c, ospf6_redistribute.c, ospf6_route.c,
-       ospf6_spf.c, ospf6_top.c, ospf6_top.h, ospf6d.h:
-       Changed to use New LSDB.
-       Version: 0.8.t
-
-2001-04-02  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_lsa.c:
-       Interface stub check in Intra-Area-Prefix-LSA origination 
-       was wrong. - fixed.
-
-       * ospf6_area.h, ospf6_dbex.c, ospf6_interface.c,
-       ospf6_interface.h, ospf6_lsa.c, ospf6_lsa.h, ospf6_lsdb.c,
-       ospf6_message.c, ospf6_neighbor.c, ospf6_nsm.c,
-       ospf6_redistribute.c, ospf6_top.c, ospf6_top.h, ospf6d.c:
-       New LSDB functions, but not changed to be used.
-
-       * ospf6d.h:
-       Version: 0.8.s
-
-2001-03-28  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_area.c ospf6_area.h ospf6_dbex.c ospf6_dump.c
-       ospf6_interface.c ospf6_interface.h ospf6_lsa.c
-       ospf6_message.c ospf6_redistribute.c ospf6_spf.c ospf6_top.c
-       ospf6_top.h ospf6_zebra.c ospf6d.c ospf6d.h: cleaning.
-
-2001-03-24  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6d.h:
-       version: 0.8.r
-
-       * ospf6_neighbor.[ch], ospf6_lsa.[ch]:
-       just clean up and log clearify.
-
-       * ospf6_message.[ch]:
-       Packet receiving function and dumping OSPFv3 packet has been
-       changed simple and clean.
-
-       * ospf6_dbex.[ch], ospf6_interface.[ch], ospf6_lsdb.[ch],
-         ospf6_neighbor.[ch], ospf6_nsm.[ch]:
-       LSList(i.e. summary list, request list, retrans list, etc) have
-       been rewritten based on new LSDB module. The main LSDB have not
-       yet shifted to this new module, but will shift eventually.
-       This change expected to resolve the problem that the ospf6d keeps
-       on sending redundant LSUpdate/LSAck.
-
-       * ospf6_interface.c: changed default MTU from 1500 to 1280.
-       It was possible that the ospf6d could not send packet (e.g.
-       LSUpdate in response to LSReq in my case) when the packet
-       size accidentally reached near 1500 (I was forget about IP
-       header :p). It is a bit illegal to set MTU 1280 constantly,
-       but I failed once with I/F MTU from kernel (through zebra),
-       and thinks that 1280 is more stable than kernel variable.
-       Comments will be appriciated.
-
-2001-03-15  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_dbex.c, ospf6_interface.c, ospf6_ism.c, ospf6_lsdb.[ch],
-         ospf6_neighbor.c, ospf6_spf.c, ospf6d.c:
-       Fix for crash. ospf6d has ever been crashing when
-       'no interface' command executed, and when starting up with
-       the configuration which does not include 'router ospf6'.
-       these has been fixed.
-
-2001-02-24  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_lsa.c, ospf6_message.c:
-       LSA summary (exchanged while Adjacency bring up) may expire
-       (may reach MaxAge). Handling this has been added but
-       it's a little bit quick hack.
-
-       * ospf6_message.c:
-       Thread chain bug fixed. Read network thread chain has been cut
-       when receive packets on not-enabled interface. this was wrong
-       and fixed.
-
-2001-02-24  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_message.c:
-       I/F MTU check part on sending packet had some bug, and it's fixed.
-       Ospf6d has believed a value from zebra as I/F MTU, but from now
-       I/F MTU is set to constant 1500. This is workaround for ATM.
-
-2001-02-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.91 is released.
-
-2001-01-04  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * just code clean up of almost all module.
-       * ospf6_dump.c, ospf6_lsa.c: file dependency.
-       * ospf6_mesg.[ch]: changed filename to ospf6_message.[ch]
-
-2001-01-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.90 is released.
-
-2001-01-04  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_mesg.c,ospf6_lsa.c: doubly cancel thread bug fixed.
-       version 0.8.k CRASHed for this.
-       * ospf6_lsa.c: bug of logging fixed.
-       version: 0.8.l
-
-2001-01-04  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_neighbor.c: fix typo when trying to delete
-       MaxAge AS-External LSA. MaxAge LSA remaining bug is expected
-       to be fixed.
-       version: 0.8.k
-
-2001-01-04  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_mesg.c: add I/F Mtu check for sending LS Update.
-
-       * ospf6_dbex.c, ospf6_mesg.c, ospf6_neighbor.c, ospf6_neighbor.h,
-       ospf6_spf.c: Changed type of hisaddr field in ospf6_neighbor
-       structure, from sockaddr_in6 to in6_addr. No protocol/processing
-       changed.
-
-2001-01-04  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_mesg.c, ospf6_neighbor.[ch]: Speed up of
-       Database Exchange.
-       version: 0.8.j
-
-       Because the LS Request list was checked only when attempt
-       to send (retransmit) LS Request packet, Loading state lasted
-       long (for RxmtInterval) unexpectedly. This was fixed; LS Request
-       packet will be send as soon as one received a LS Update packet.
-
-2001-01-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf6d.h (OSPF6_VTYSH_PATH): Change "/tmp/ospf6d" to
-       /tmp/.ospf6d".
-
-2000-12-29  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_dump.[ch]: simplified.
-
-2000-12-19  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_route.c: Fix bug of using unavailable route.
-       version: 0.8.d
-
-2000-11-30  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_spf.c: calculate statistics. version: 0.8.d
-
-2000-11-26  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_mesg.c, ospf6_nsm.c: LSDB sync bug fixed.
-       version: 0.8.c
-
-2000-11-26  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_dbex.c: Start debugging and cleaning.
-
-       * ospf6_area.c, ospf6_dbex.c, ospf6_interface.c, ospf6_lsa.c,
-       ospf6_proto.c, ospf6_top.c: add some function to clarify codes.
-
-2000-11-26  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_spf.c: Delete old garbage (which was enclosed by #if 0)
-
-       * ospf6_redistribute.c: "redistribute ospf6" was generated in
-       "router ospf6" in config file. It is a bug, and fixed.
-       wrong warning message was deleted.
-
-       * ospf6_main.c: If daemon mode, ospf6d was silent even if
-       the config file was wrong. It is a bug, and fixed.
-
-       * ospf6_route.c, ospf6_zebra.c: Zebra syncronization method
-       has been changed. delete garbages. allow nexthop of :: in case
-       of connected route.
-
-       * ospf6_dbex.c: Delete annoying log messages.
-
-       * ospf6_lsa.c: Changed string for LSA log.
-
-2000-11-21  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_spf.c: some careless bug fixed.
-
-       * ospf6_route.c: changed not to send garbage route
-          whose nexthop is not linklocal address.
-
-2000-11-09  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-        * ospf6_rtable.c: renamed to ospf6_route.c
-        whole functionality has been rewritten as new code.
-        new functions not yet installs routes; the old
-        functions still remains. cleaning log messages.
-
-       * ospf6_spf.c: whole functionality has been rewritten
-       as new code. new command "show ipv6 ospf6 spf node",
-       "show ipv6 ospf6 spf tree", "show ipv6 ospf6 spf table"
-       has been added. Memory leak was fixed. cleaning log messages.
-
-       * ospf6d version: 0.7.c
-
-2000-10-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.89 is released.
-
-2000-09-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf6_lsdb.c (ospf6_lsdb_remove_maxage_lsa): Fix compile
-       warnings.
-
-2000-08-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.88 is released.
-
-2000-08-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf6_rtable.h (struct ospf6_nexthop): Change ifindex type from
-       unsigned long to unsigned int.
-
-2000-04-28  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf6d.h: Include some headers for avoid warning.
-
-       * ospf6_routemap.h: Add newfile.
-
-1999-11-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf6_network.c: Respect IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP
-       rather than RFC2133.
-
-1999-10-21  Jun-ichiro itojun Hagino <itojun@itojun.org>
-
-       * ospf6_network.c (ospf6_ipv6_decode_ipv4): Fix bug of conversion
-       from IPv4 Mapped Address to IPv4 address.
-
-1999-08-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf6_lsa.c (construct_link_lsa): Enclose KAME specific part by
-       #ifdef/#endif.
-
-1999-07-29  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ospf6_mesg.c: add new message process function.
-
-1999-07-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf6_main.c (sighup): Call of log_rotate() removed.
-
-1999-07-24  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       ospf6_dbex.{c,h}: variable "acknowledge" has been deleted.
-
-1999-07-22  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * *.{c,h}: lsa data structure has been drastically
-       changed.
-
-1999-07-16  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * *.{c,h}: bug of updating LSA's which is self
-       originated has been fixed.
-
-1999-07-14  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * *.{c,h} : log clean up.
-
-1999-07-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf6d.c (ospf6_init): Change to use install_default.
-
-1999-07-03  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
-
-       * ospf6_rtable.c (nexthop_*): added some function that handles
-       new nexthop structure.
-
-1999-07-01  Rick Payne <rickp@rossfell.co.uk>
-
-       * ospf6_zebra.c (ospf6_zebra_init): Install standard commands to
-       ZEBRA_NODE.
-
-1999-06-09  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
-
-       * ospf6_rtable.h: added for new routing table of ospf6d
-
-1999-05-14  Stephen R. van den Berg <srb@cuci.nl>
-
-       * ospf6_main.c (signal_init): SIGTERM call sigint.
-       (sigint): Loggging more better message.
-
-1999-05-13  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
-
-       *ospf6_spf.c (get_prefix_lsa_of_vertex): bug fix about network vertex.
-
-1999-05-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf6_network.c (send_linkstate_ack): Check HAVE_SIN6_SCOPE_ID
-       is defined.
-       * ospf6_mesg.c (make_hello): Likewise.
-       * ospf6_lsa.c (lsa_flood): Likewise.
-
-1999-05-07  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
-
-       * ospf6_spf.c, etc: Many bug fix.
-        intra-area-prefix-LSA treatment changed.
-        network byte order of neighbor ifid changed.
-
-1999-05-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf6_zebra.h (struct zebra): Add hitory entry to structure.
-
-1999-05-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf6_main.c (main): Add KAME check for binding vty socket.
-       (main): Delete old interface get routine garbage.
-
-       * ospf6d.c: Change all `show ip6' statement to `show ipv6'.
-       (show_ipv6_ospf6_requestlist): Add description.
-
-1999-05-04  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
-
-       * ospf6_lsa.c, etc: Many bug fix, now two routers
-       on the same segment can become FULL neighbor state
-       each other.
-
-1999-05-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Makefile.am: Add file dependency.
-       (depend): Add target.
-
-1999-05-02  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
-
-       * Clean up and fix have been almost done. This code
-       now testing stage of Intra area routing.
-
-       * Configuration Vty become more similar to Cisco.
-
-1999-04-22  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Trim training newline from zlog format arguemnt.
-       
-       * ospf6_dump.c (ospf6_err): Commented out ospf6_err and
-       ospf6_warn.  Same kind of function should be implemented as
-       zlog_err or zlog_warn or someting.
-
-       * ospf6d.c: Change OSPF_NODE to OSPF6_NODE.
-       Change OSPF_DEFAULT_CONFIG to OSPF6_DEFAULT_CONFIG.
-       
-
-1999-04-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf6_mesg.c (make_hello): Add check of SIN6_LEN
-
-1999-04-16  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf6_neighbor.c: Change list_clear_all to list_delete_all_node.
-       Remove list_delete_all fuction and use lib/linklist.c's one.
-       
-1999-04-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * mcast_join(),mcast_leave()'s argument socket length is removed.
-
-1999-04-08    <kunihiro@zebra.org>
-
-       * ospf6_zebra.h (ospf_zebra_read): Fix typo.
-
-       * ospf6_interface.h: Tempolary add struct rt_addrinfo.
-
-1999-03-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Merge from ospfd-zebra-990303 codes.
-
-1999-02-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Makefile.in: add new file.
-
-       * Makefile.am: @INCLUDES@ is added for OS/library specific IPv6
-       directory search.
-
-       * Import files from Yasuhiro Ohara <yasu@sfc.wide.ad.jp>'s ospfd.
-       Impterted files are:
-       Makefile.am, ospf_area.h, ospf_dump.c, ospf_interface.c,
-       ospf_interface.h, ospf_lsa.c, ospf_lsa.h, ospf_main.c,
-       ospf_mesg.c, ospf_mesg.h, ospf_neighbor.c,
-       ospf_neighbor.h,ospf_network.c, ospf_network.h, ospf_proto.h,
-       ospf_spf.c, ospf_spf.h, ospf_types.h, ospfd.c, ospfd.h
diff --git a/ospfclient/ChangeLog b/ospfclient/ChangeLog
deleted file mode 100644 (file)
index e678aff..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-2005-11-24 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_apiclient.c: add static qualifier to relevant functions.
-       * ospfclient.c: ditto
-
-2005-04-20 Paul Jakma <paul@dishone.st>
-
-       * Makefile.am: Add @INCLUDES@ and srcdir to allow out-of-tree
-         builds to work.
-
-2004-06-30  Greg Troxel  <gdt@poblano.ir.bbn.com>
-
-       * Makefile.am: Add libtool/shlib support.
-
-2003-01-10  Ralph Keller <keller@tik.ee.ethz.ch>
-       * New ChangeLog
-       
-2003-01-08  Ralph Keller <keller@tik.ee.ethz.ch>
-       * apiclient message passing bug resolved 
-       * (proposed by Masahiko)
-
-2002-10-09  Ralph Keller <keller@tik.ee.ethz.ch>
-       * Includes patch in OSPFd for ISM, NSM, neighbor
-       
-2002-09-16  Ralph Keller <keller@tik.ee.ethz.ch>
-       * Current patch vs. Zebra-0.93b 
-
-2002-08-22  Ralph Keller <keller@tik.ee.ethz.ch>
-       * Bugfix: LSA updates are now received only once even 
-       * if multiple opaque types are registered 
-
-2002-08-06  Ralph Keller <keller@tik.ee.ethz.ch>
-       * Upgrade of OSPF API to Zebra-0.93a.
-
-2002-06-13  Ralph Keller <keller@tik.ee.ethz.ch>
-       * Opaque LSA origination bug fixed by Masahiko. 
-       * This code is based on 0.93-pre
-
-2002-05-03  Ralph Keller <keller@tik.ee.ethz.ch>
-       * Upgrade to newest Zebra from CVS repository. ospf_flood_through
-       * function did not work after upgrade. Function 
-       * ospf_apiserver_flood_opaque_lsa added. Also byte order problem
-       * with port numbers resolved.
-
-2002-05-02  Ralph Keller <keller@tik.ee.ethz.ch>
-
-       * new autoconf and automake files, now called configure.in
-       * instead of configure.ac
-
-2002-04-24  Ralph Keller <keller@tik.ee.ethz.ch>
-
-       * reverse channel now works (syncport and syncport+1)
-       * ospf_apiclient.c: standard includes removed (not needed)
-       * bzero replaced with memset
-
-2002-04-18  Ralph Keller <keller@tik.ee.ethz.ch>
-
-       * 2-way phase connection setup
-
-2002-04-05  Ralph Keller <keller@tik.ee.ethz.ch>
-
-        * Changes incorporated as proposed by Masahiko
-
-2002-04-05  Ralph Keller <keller@tik.ee.ethz.ch>
-
-        * autoconf and automake-style Makefile
-       
-2002-04-04  Ralph Keller <keller@tik.ee.ethz.ch>
-
-        * 1st public release of OSPF API
-       
diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
deleted file mode 100644 (file)
index 30e2d60..0000000
+++ /dev/null
@@ -1,4984 +0,0 @@
-2007-09-18 Denis Ovsienko
-
-       * ospf_network.c: (ospf_adjust_sndbuflen) Don't complain
-         about getting more buffer space, than requested.
-       * ospfd.[ch]: (ospf_new) Abandon OSPF_SNDBUFLEN_DEFAULT
-         and consider OS's initial buffer size instead.
-       * ospf_interface.c: (ospf_if_up) Fix missing argument.
-
-2007-08-21 Denis Ovsienko
-
-       * ospfd.h: Extend struct ospf with maxsndbuflen field and
-         define its default value.
-       * ospfd.c: (ospf_new) init maxsndbuflen
-       * ospf_interface.c: (ospf_if_up) Call ospf_adjust_sndbuflen()
-         for each regular interface being brought up.
-       * ospf_network.[ch]: (ospf_adjust_sndbuflen) New function
-         makes sure ospf socket sending buffer is large enough
-         to cover the biggest interface MTU we have seen ever.
-       * ospf_packet.c: (ospf_write) Use maxsndbuflen to decide on
-         the biggest amount of data we are going to send at once.
-
-2007-08-07 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_spf.c: (ospf_spf_next) Finish off the explanatory
-         comment made in previous commit
-
-2007-08-07 Atis Elsts <atis@mikrotik.com>
-
-       * ospf_spf.c: (ospf_spf_next) Sort heap in correct direction
-         after vertex cost is changed, thus fixing incorrect SPF
-         calculation on certain topologies.
-
-2007-08-06 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_lsa.c: (router_lsa_flags) Bug #331, NSSA regression caused
-         caused ASBRs to not advertise E-bit into NSSA areas.
-
-2007-05-09 Milan Kocian <milon@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.
-
-2007-05-07 Paul Jakma <paul.jakma@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.
-
-2007-04-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * 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?
-
-2007-04-21 Andrew J. Schorr <ajschorr@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).
-
-2007-03-23 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_spf.c: (various) Add more debug statements.
-         (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.
-
-2007-03-14 Andrew J. Schorr <ajschorr@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.
-
-2007-03-14 Andrew J. Schorr <ajschorr@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.
-
-2007-02-27 Andrew J. Schorr <ajschorr@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.
-
-2007-02-26 Paul Jakma <paul.jakma@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@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).
-
-2007-01-24 Paul Jakma <paul.jakma@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.
-
-2006-12-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * 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.
-
-2006-12-04 Andrew J. Schorr <ajschorr@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.
-
-2006-11-30 Andrew J. Schorr <ajschorr@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.
-
-2006-11-28 Andrew J. Schorr <ajschorr@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.
-
-2006-10-24 Andrew J. Schorr <ajschorr@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.
-
-2006-10-22 Yar Tikhiy <yar@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.
-         
-2006-09-25 Andrew J. Schorr <ajschorr@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.
-
-2006-08-28 Andy Gay <andy@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.
-
-2006-08-27 J.J. Krabbendam <jkrabbendam@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.
-
-2006-08-25 Paul Jakma <paul.jakma@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.
-
-2006-08-04 Paul Jakma <paul.jakma@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.
-
-2006-08-03 Paul Jakma <paul.jakma@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.
-         Implement draft-ogier-ospf-dbex-opt DB-exchange optimisation.
-         (ospf_db_desc) use UNSET_FLAG macro.
-
-2006-07-27 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospfd.c: (ospf_router_id_update) Fix and document the algorithm for
-         selecting the router ID: if there is not a statically configured ID,
-         then stick to the most recent value to avoid disruptive changes.
-         This should fix bug #288.
-
-2006-07-26 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_lsa.{c,h}: (ospf_lsa_unlock) Change to take a double pointer
-         to the LSA to be 'unlocked', so that, if the LSA is freed, the
-         callers pointer to the LSA can be NULLed out, allowing any further
-         use of that pointer to provoke a crash sooner rather than later.
-       * ospf_*.c: (general) Adjust callers of ospf_lsa_unlock to match
-         previous. Try annotate 'locking' somewhat to show which 'locks'
-         are protecting what LSA reference, if not obvious.
-       * ospf_opaque.c: (ospf_opaque_lsa_install) Trivial: remove useless
-         goto, replace with return.
-       * ospf_packet.c: (ospf_make_ls_ack) Trivial: merge two list loops,
-         the dual-loop predated the delete-safe list-loop macro.
-
-2006-07-25 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_neigbor.h: (struct ospf_neighbor) Add some additional
-         neighbour state statistics fields, timestamps for progressive
-         and regressive state changes, and pointer to event string
-         for the latter state change.
-       * ospf_nsm.c: (nsm_notice_state_change) Update new state changs
-         history as required.
-       * ospf_vty.c: (show_ip_ospf_neighbor_detail_sub) Print out above
-         new per-neighbour state change stats.
-
-2006-07-10 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_nsm.c: (nsm_change_state) call nsm_clear_adj for all
-         adjacency losses, hence removing need for nsm_reset_nbr.
-         (nsm_reset_nbr) kill it, clear_adj in previous does fine.
-         (nsm_kill_nbr,nsm_start) remove nsm_reset_nbr call.
-         (ospf_nsm_event) Allow NSM function to be NULL, this along with
-         removal of nsm_reset_nbr, allows a bunch of now useless functiosn
-         to be removed.
-         Remove some useless variables.
-         (nsm_ignore) now useless, remove.
-         (nsm_bad_ls_req) ditto
-         (nsm_seq_number_mismatch)   "
-         (nsm_oneway_received)       "
-         (nsm_inactivity_timer)      "
-         (nsm_ll_down)               "
-         (NSM) replace removed action functions with NULL.
-         (nsm_notice_state_changes) Move state change logging code to new
-         func to declutter nsm_change_state and ospf_nsm_event.
-         Log event with AdjChange, it's useful to know.
-         (nsm_change_state) move adjchange and snmp logging to previous.
-         (ospf_nsm_event) call nsm_notice_state_changes from here.
-         Move the debug message to entry of function, so it gets out
-         even if something goes wrong.
-         Record state change timestamp and event in nbr struct.
-       * ospf_neighbor.h: (struct ospf_neighbor) Add fields to record
-         timestamp of last NSM change and event.
-       * ospf_vty.c: (show_ip_ospf_neighbor_detail_sub) Print 
-         last state change timestamp and event, if available.
-
-2006-07-10 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_packet.c: (ospf_hello) Improve NetworkMask mismatch warning
-         message to include interface name and conflicting prefix lengths.
-
-2006-07-07 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_nsm.h: Add a NSM_Deleted neighbour state, to act as dummy
-         state indicating the neighbour is to be deleted.
-       * ospf_nsm.c: (general) Use the NSM_Deleted state to delete
-         neighbours, thus allowing code to be slightly more obvious
-         in its flow.
-         (nsm_timer_set) Add NSM_Deleted. Add another timer the code
-         missed.
-         (nsm_kill_nbr) No need for special case call to nsm_change_state
-         anymore.
-         Make the assert and error-handling for same case more readable
-         (Andrew Schorr)
-         Remove the call to ospf_nbr_delete, nsm_change_state can do
-         this generally now via NSM_Deleted.
-         (struct ... NSM) Add the dummy NSM_Deleted state, the 3 events
-         that can lead to nsm_kill_nbr all now transition the NBR to
-         NSM_Deleted and the general change_state function can be left
-         to do the work.
-         (ospf_nsm_event) Special casing of events and early-return can
-         be removed now.
-         On transition into Deleted, delete the nbr.
-       * ospf_dump.c: (ospf_nsm_state_msg) Add Deleted.
-
-2006-07-06 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_nsm.c: (ospf_nsm_event) LLDown event also results in nbr
-         being deleted, requires early-return too. Likely explains
-         some crash reports after interface events.
-
-2006-07-04 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_nsm.c: (general) Various small cleanups from Andrew's
-         review of last set of patches.
-         (nsm_timer_set) Loading, Full and default can share
-         same code too.
-         (nsm_should_adj) Can just be one big OR.
-         (nsm_twoway_received) Collapse into return statement.
-
-2006-07-02 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_nsm.c: (nsm_should_adj) New function, just consolidate the
-         10.4 adjacency check from nsm_twoway_received/nsm_adj_ok.
-         (nsm_twoway_received/nsm_adj_ok) Use former.
-         (nsm_clear_adj) clear adjacency related state for a
-         neighbour, needed for some state changes from > ExStart down
-         to ExStart or less, which need not go through nsm_reset_nbr.
-         (nsm_reset_nbr) move code to former. Should be static.
-         (ospf_nsm_event) Don't allow action functions to change
-         next_state if the NSM tables do not indicate next_state is
-         conditional, log warning if one tries - existing code
-         appears fine though.
-         Remove long dead code.
-         Use nsm_clear_adj for state changes that take down
-         adjacencies to TwoWay/ExStart.
-         (nsm_timer_set) ls_req timer should be OFF in early states.
-         Compact several identical sections.
-         Set inactivity timer to OFF for Down, for documentary
-         purposes.
-         (nsm_kill_nbr) Oops, action function shouldn't try return
-         1 for error.
-       * ospf_lsa.c: (ospf_translated_nssa_refresh) CID #13.
-
-2006-06-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_vty.c: (show_ip_ospf_neighbor_id) Should show all instances
-         of that neighbor (since it may appear on multiple interfaces)
-         instead of bailing out after showing the first match.
-
-2006-06-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_nsm.c: (nsm_twoway_received) When deciding whether to
-         change from state Init to ExStart, the test for whether the
-         neighboring router is DR or BDR should be against the
-         local router's notion of DR/BDR, not the neighbor's view.
-
-2006-06-28 Erik Muller <erikm@internap.com>
-
-       * ospfd.h: Define 2 new struct ospf config flags:
-         OSPF_LOG_ADJACENCY_CHANGES and OSPF_LOG_ADJACENCY_DETAIL
-       * ospf_nsm.c (nsm_change_state): Log adjacency changes if
-         requested.
-       * ospf_vty.c (ospf_log_adjacency_changes): New command function
-         to implement ospf subcommand "log-adjacency-changes [detail]".
-         (no_ospf_log_adjacency_changes) Turn off log-adjacency-changes.
-         (show_ip_ospf) Show whether adjacency changes are logged.
-         (ospf_config_write) Add "log-adjacency-changes [detail]" to config.
-         (ospf_vty_init) Add ospf_log_adjacency_changes and
-         no_ospf_log_adjacency_changes.
-
-2006-06-26 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_abr.c: (general) NSSA translate-candidate ABRs need to
-         be ASBRs, or other routers may rightfully refuse to install
-         translated type-5s LSAs. reported by dendroot@gmail.com.
-         (ospf_abr_nssa_check_status) Detect change in translator
-         state when ABR, and inc/dec redistribute count as when we
-         leave/enter the disabled state - so that translate-enabled
-         ABR properly sets ASBR bit on non-NSSA areas.
-         Run the resulting function through indent to clean it up.
-       * ospf_lsa.c: (router_lsa_flags) For purposes of ASBR bit,
-         NSSA area is same as stub area.
-         
-2006-06-24 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_snmp.c: (ospfTrapNbrStateChange, ospfTrapIfStateChange) Improve
-         info log message to indicate why the trap is being sent.
-
-2006-06-24 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_dump.c: (config_write_debug) Fix typo to show debug ospf nsm
-         status properly (not ism status).
-
-2006-06-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_vty.c: ({no_,}ospf_passive_interface) Replace if_lookup_by_name
-         with a call to if_get_by_name -- if the interface does not exist
-         already, it should be created.  And remove the obsolete warning
-         message.
-
-2006-06-15 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_interface.h: (struct ospf_if_info) Add reference counts
-         for multicast group memberships. Add various macros to help
-         manipulate/check membership state.
-       * ospf_interface.c: (ospf_if_set_multicast) Maintain the
-         ospf_if_info reference counts, and only actually drop
-         memberships if it hits 0, to avoid losing membership when
-         OSPF is disabled on an interface with multiple active OSPF
-         interfaces.
-       * ospf_packet.c: (ospf_{hello,read}) Use the new macros to
-         check/set
-         multicast membership.
-       * ospf_vty.c: (show_ip_ospf_interface_sub) ditto.
-         
-2006-05-31 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_lsdb.c: (ospf_lsdb_delete) robustify against NULL arguments,
-         print warning.
-       * ospf_lsa.c: (ospf_discard_from_db) ditto.
-         (ospf_maxage_lsa_remover) Check lsa->lsdb for validity, possible
-         mitigation (but not solution) for bug #269.
-
-2006-05-30 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_packet.c: (ospf_read) Debug message about packets
-         received on unenabled interfaces should be conditional on
-         debug being set.
-
-2006-05-23 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_vty.c: (general) Replace in-place route redistribution
-         command and help strings with the new auto-generated defines
-         from lib/route_types.h
-
-2006-05-13 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_lsa.c: (ospf_translated_nssa_refresh) fix the sanity
-         check to match the assert, small error in CID #13 fix.
-
-2006-05-12 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_lsa.c: (ospf_lsa_action) Get rid of the ospf_lookup
-         call, which is not checked for NULL return, by stripping out
-         functionality which is never used, hence fixing Coverity CID
-         #29.
-         (struct lsa_action) remove unused member.
-         (ospf_translated_nssa_refresh) Add non-assert sanity check,
-         in case DEBUG isn't defined.
-         Debug message when no type7 exists should print the ID from
-         the type5, not the type7, fixes CID #13.
-       * ospf_interface.c: (ospf_if_exists) Fix missing NULL return
-         check on ospf_lookup, CID #27.
-       * ospf_asbr.c: (ospf_redistribute_withdraw) remove ospf_lookup
-         call by taking the struct ospf * as argument, which the
-         caller has, fixing CID #28.
-       * ospf_asbr.h: (ospf_redistribute_withdraw) update declaration
-       * ospf_zebra.c: (ospf_redistribute_unset) update call to
-         ospf_redistribute_withdraw to match.
-       * ospf_ia.c: (ospf_update_router_route) ospf->backbone could be
-         NULL when passed to ospf_find_asbr_route_through_area,
-         check for NULL first, CID #14.
-       * ospf_ism.c: (ism_change_state) NULL check on oi->area is
-         useless, it's always valid. Only possibility where it
-         couldn't be is if there is a race between abr_task and
-         cleaning up oi's, in which case a NULL check here isn't going
-         to do anything. Fixes CID #15.
-
-2006-05-11 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_vty.c: (general) Audit ospf_lookup calls in commands,
-         ensure check for NULL result, make vty messages consistent. 
-         (show_ip_ospf_interface) Missing NULL check on ospf_lookup
-         result, fixes Coverity CID #70.
-         (no_ospf_area_filter_list) Check NULL result from
-         ospf_area_lookup_by_area_id, fixes Coverity CID #69
-       * ospf_route.c: (ospf_route_delete_same_ext) Fix deref before
-         NULL check by moving into check-protected block, fix CID #49.
-       * ospf_abr.c: (ospf_area_range_cost_set) Shouldn't create a new
-         range, should just lookup to see if one exists, the new range
-         is just leaked. Fixes CID #46.
-       * ospf_lsa.c: (ospf_default_originate_timer) Let the thread
-         take (struct ospf *) as thread argument, rather than (struct
-         ospf *)->default_originate, thus avoiding having to call
-         ospf_lookup.
-       * ospf_zebra.c: (ospf_redistribute_default_set) change setup
-         of ospf_default_originate_timer thread to match.
-       * ospfd.c: (ospf_router_id_update) ditto.
-
-2006-04-24 Paul Jakma <paul.jakma@sun.com>
-
-       * (general) More Virtual-link fixes, again with much help in
-         testing / debug from Juergen Kammer. Primarily in SPF.
-       * ospf_spf.h: Add guard. ospf_interface.h will include this
-         header.
-       * ospf_interface.h: Modify ospf_vl_lookup definition to take
-         struct ospf as argument, so as to allow for NULL area
-         argument.
-         (struct ospf_vl_data) Remove out_oi, instead add a struct
-         vertex_nexthop, to use as initial nexthop for backbone paths
-         through a vlink.
-       * ospf_interface.c: (ospf_vl_lookup) Modified to allow
-         NULL area to be passed to indicate "any" (first) area.
-         Add extra debug.
-         (ospf_vl_set_params) vl_oi -> nexthop. Add extra debug.
-         (ospf_vl_up_check) Fix debug, inet_ntoa returns a static
-         buffer..
-       * ospf_route.c: (ospf_intra_add_router) Vlinks dont go through
-         backbone, don't bother checking.
-       * ospf_spf.c: (static struct list vertex_list) Record vertices
-         that will need to be freed.
-         (cmp) Order network before router vertices, as required,
-         wasn't implemented.
-         (vertex_nexthop_free) Mild additional robustness check.
-         (vertex_parent_free) Take void argument, as this function
-         is passed as list deconstructor for vertex parent list.
-         (ospf_vertex_new) More debug. Set deconstructor for parent
-         list. Track allocated vertices on the vertex_list.
-         (ospf_vertex_free) Get rid of the tricky recursive cleanup of
-         vertices. Now frees only the given vertex. 
-         (ospf_vertex_add_parent) Fix assert.
-         (ospf_nexthop_calculation) Fix calculation of nexthop for
-         VLink vertices, lookup the vl_data and use its previously
-         recorded nexthop information.
-         (ospf_spf_calculate) Vertices are freed simply by deleting
-         vertex_list nodes and letting ospf_vertex_free as deconstructor
-         work per-node.
-         (ospf_spf_calculate_timer) Trivial optimisation, leave
-         backbone SPF calculation till last to reduce SPF churn on
-         VLink updates.
-       * ospf_vty.c: (ospf_find_vl_data) update call to ospf_vl_lookup
-         (no_ospf_area_vlink_cmd) ditto.
-         (show_ip_ospf_interface_sub) For Vlinks, the peer address is
-         more interesting than the output interface.
-
-2006-04-03 Paul Jakma <paul.jakma@sun.com>
-
-       * (general) Fix issues with handling of Vlinks and entries
-         in the nbrs route-table which were highlighted by the
-         nsm/nbr_self fixes from bug #234. Many thanks to Juergen
-         Kammer for his help and efforts in testing out debug patches to
-         pinpoint the issue.
-       * ospf_interface.c: (ospf_vl_new) Add nbr_self for Vlink.
-       * ospf_neighbor.c: (ospf_nbr_key) new static function, helper
-         to create key in nbrs table for a given nbr.
-         (ospf_nbr_delete) Use ospf_nbr_key. Add an assert() to
-         document an expected state.
-         (ospf_nbr_add_self) Ditto.
-         (ospf_nbr_lookup_by_addr) Add an assert.
-       * ospf_nsm.c: (nsm_kill_nbr) Can never kill the nbr_self
-         psuedo-neighbour.
-
-2006-03-27 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_lsa.c: (ospf_lsa_checksum) Add an explicit cast to avoid
-         the ambiguities of ANSI and C99 C with respect to type
-         conversion. Detailed problem report and test case with
-         example data supplied by Dmitry Ivanov <dimss@telecentrs.lv>.
-
-2006-03-25 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_interface.c: (ospf_if_lookup_recv_if) Ignore loopbacks,
-         we can never ever receive packets on those. Should fix
-         case where CARP is run with address in same subnet as real
-         interface. Problem report and diagnosis thanks to:
-         Landon Fuller <landonf@opendarwin.org>.
-         However, ospf_read() still can't deal deterministically with
-         multiple interfaces in same subnet.
-
-2006-03-23 Steve Lawson <steve.lawson@aheadcomusa.com>
-
-       * ospf_lsa.c: (ospf_lsa_install) Fix incorrect byte-order 
-         conversion of OSPF_MAX_SEQUENCE_NUMBER
-
-2006-01-19 Paul Jakma <paul.jakma@sun.com>
-
-        * (general) various miscellaneous compiler warning fixes.
-           Remove redundant break statements from switch clauses
-           which return.
-           return from main, not exit, cause it annoys SOS.
-           Remove stray semi-colons which cause empty-statement
-           warnings.
-
-2006-01-18 Juergen Kammer <j.kammer@eurodata.de>
-
-       * ospf_lsa.c: (ospf_router_lsa_new) dont take reference to the
-         stream data until it is constructed, data reference is
-         volatile due to the potential resize in link_info_set
-
-2006-01-18 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_lsa.c: (link_info_set) Resize the stream if required and
-         possible. Return number of links added.
-         (lsa_link_*_set) use return value from previous.
-       * ospf_lsa.h: Add OSPF_ROUTER_LSA_LINK_SIZE define.
-         
-2006-01-17 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_packet.c: (ospf_verify_header) print out the types
-         involved if there's a mismatch.
-       * ospf_zebra.c: (ospf_zebra_add) Adjust to new zserv format.
-
-2006-01-10 Len Sorensen <lennartsorensen@ruggedcom.com>
-
-       * (general) Bug #234, see also [quagga-dev 3902].
-         Fix problem with nbr_self not being properly reinitialised
-         when an interface comes up, after having been down.
-         Some re-arrangement done by Paul Jakma, any bugs introduced
-         on top of Len's suggested changes are his.
-       * ospf_neighbor.c: (ospf_nbr_add_self) centralise
-         initialisation of nbr_self parameters here.
-       * ospf_interface.c: (ospf_if_new) deleting initialisation of
-         parameters of nbr_self, just rely on call to
-         ospf_nbr_add_self.
-         (ospf_if_cleanup) ditto.
-       * ospfd.c: (ospf_network_run) ditto.
-
-2006-01-10 Juris Kalnins <juris@mt.lv>
-
-       * ospf_zebra.c: (ospf_interface_address_delete) fix rare leak of 
-         struct connected in an error case.
-       * ospf_packet.c: (ospf_make_md5_digest) fix odd, if not
-         undefined effect, assignment of an increment expression.
-
-2006-01-10 Paul Jakma <paul.jakma@sun.com>
-
-       * ospfd.c: (ospf_network_run) checking to see if router-id
-         is set should be on ospf->router_id, not router_id_static.
-         This was causing ospfd to not start if router-id had not
-         been configured statically.
-         (ospf_if_update) ditto.
-       * ospf_vty.c: (config_write_ospf_distribute) trim down
-         redundant strings.
-
-2005-11-26 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_api.c: (struct opaque_lsa) change from gcc zero-length
-         array to C99 incomplete type array.
-       * (general) s/graceful/deferred/ in all files, the former term 
-          is confusing wrt OSPF Graceful-Restart.
-       * ospfd.c: (ospf_deferred_shutdown_check) dont return
-         a function which returns void. SOS complains about this.
-         (ospf_finish)
-
-2005-11-20 Paul Jakma <paul.jakma@sun.com>
-
-        * ospfd.h: remove the OSPF_ROUTER_ID_UPDATE_DELAY define
-          (struct ospf) remove the router_id timer thread.
-          remove export of ospf_router_id_update_timer.   
-        * ospfd.c: (ospf_router_id_update) call ospf_if_update to
-          poke interfaces into action after ID has been configured.
-          (ospf_router_id_update_timer) removed.
-          (ospf_finish_final) t_router_id_update timer is gone.
-          (ospf_network_run) router-id update timer gone.
-          call ospf_router_id_update directly if ID not configured.
-          In the per-iface loop, don't ospf_if_up interfaces if
-          ID is still not configured. The update function will call
-          ospf_if_update anyway.
-          (ospf_if_update) ID update timer is gone. Just return if no
-          ID is set.
-        * ospf_vty.c: (ospf_router_id) call ospf_router_id_update, no
-          timer needed.
-        * ospf_zebra.c: (ospf_router_id_update_zebra) call
-          ospf_router_id_update directly, not via timer.  
-        * ospf_abr.c: (ospf_abr_announce_network_to_area) check
-          returned LSA of ospf_summary_lsa_refresh and print warning if
-          it failed.
-          (ospf_abr_announce_network_to_area) similar
-          (ospf_abr_announce_rtr_to_area) similar 
-        * ospf_lsa.c: (ospf_router_lsa_new) check LSA returned is valid.
-          (ospf_router_lsa_originate) similar
-          (ospf_router_lsa_refresh, ospf_network_lsa_new) similar  
-          (ospf_summary_lsa_new) Check ID is valid.
-          (ospf_summary_lsa_originate) ditto, and check returned LSA from
-           previous function is !NULL.
-          (ospf_summary_lsa_refresh) check ospf_summary_lsa_new return
-           is !NULL.
-          (ospf_summary_asbr_lsa_new) ID valid check.
-          (ospf_summary_asbr_lsa_originate) similar.
-
-2005-11-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_dump.h: Define OSPF_TIME_DUMP_SIZE as appropriate buffer size
-         for use with ospf_timer_dump and ospf_timeval_dump.
-       * ospf_vty.c: Change all buffer sizes used with ospf_timer_dump and
-         ospf_timeval_dump to have size OSPF_TIME_DUMP_SIZE.
-         (show_ip_ospf_interface_sub) Fix possible buffer overflow in
-         call to ospf_timer_dump.
-
-2005-11-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_ism.h: (OSPF_ISM_TIMER_OFF) Improve macro syntax by enclosing
-         in 'do {...} while(0)'.
-
-2005-11-14 Paul Jakma <paul.jakma@sun.com>
-
-       * ospfd.c: (ospf_new) stub-shutdown should just default to
-         unconfigured, too strange otherwise.
-         (ospf_finish_final) t_opaque_lsa_self TIMER_OFF should be
-         preprocessor conditional on HAVE_OPAQUE_LSA.
-       * ospfd.h: (struct ospf) remove the SHUTDOWN_DEFAULT define.
-         no longer used, plus it wasn't in range that the command
-         accepted.
-       * ospf_zebra.h: Depends on vty.h, include it.
-
-2005-11-11 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_spf.c: (ospf_canonical_nexthops_free) Free only
-         the nexthops pointing to the root vertex. We may visit a
-         vertex twice or the vertex may have some inherited nexthops,
-         if we free other nexthops we could crash.
-2005-11-04 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_{dump,spf,vty}.c: Oops, use the internal tv_sub
-         function rather than unportable timersub.
-
-2005-11-03 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_apiserver.c: (apiserver_sync_callback) stray semi-colon
-       * ospf_packet.c: include checksum.h, remove the in_cksum extern
-       * prototypes.
-       * ospf_te.h: Add braces, quell warning.
-       * ospf_packet.c: Change level of some warnings to
-         informational.
-
-2005-10-29 Paul Jakma <paul.jakma@sun.com>
-
-       * (general) RFC3137 stub-router support
-       * ospfd.h: Add OSPF_OUTPUT_COST_INFINITE define.
-         (struct ospf_master) Add a OSPF_MASTER_SHUTDOWN flag for
-         options, to allow shutdown to distinguish between complete
-         shutdown and shutdown of a subset of ospf instances.
-         (struct ospf)
-         Add stub_router_{startup,shutdown_}time, configuration of startup
-         and shutdown time for stub-router.
-         Add t_graceful_shutdown struct thread, timer for graceful
-         shutdown, if needed.
-         (struct ospf_area) Add stub_router_state - run time state of
-         stub-router for an area. Add flags for ADMIN, IS and WAS
-         states.
-         Add t_stub_router, timer thread to resend router-lsa for an
-         area.
-       * ospf_lsa.c: (ospf_link_cost) new simple function to spit out
-         either the given lnks cost or infinite cost if stub-router is
-         in effect.
-         (lsa_link_{ptop,broadcast,virtuallink,ptomp}_set) use
-         previous function for transit-links.
-         (ospf_stub_router_timer) timer thread for end of startup stub
-         router. Change state as required for the area and setup
-         re-origination of router-lsa.
-         (ospf_stub_router_check) Check/do whether stub-router should be
-         enabled, and whether it requires timer to be setup.
-         (ospf_router_lsa_new) call previous function at top.
-         (ospf_router_lsa_originate) no external callers, made static.
-       * ospf_lsa.h: (ospf_router_lsa_originate) removed.
-       * ospf_main.c: (sigint) make static.
-         remove call to exit, as ospf_terminate now deals with
-         exiting.
-       * ospf_route.c: (ospf_terminate) removed, now in ospfd.c.
-       * ospf_vty.c: (show_ip_ospf_area) print out state of
-         stub-router, if active.
-         (show_ip_ospf) print out configuration of stub-router
-         support, and details of graceful-shutdown if the timer is
-         active.
-         ((no)?ospf_max_metric_router_lsa_{admin,startup,shutdown}) new
-         commands to (de-)?configure stub-router support.
-         (config_write_stub_router) write out config of stub-router.
-         (ospf_config_write) call previous.
-         (ospf_vty_init) install the new stub-router commands.
-       * ospfd.c: various functions made static.
-         (ospf_new) Set defaults for stub-router. Graceful shutdown
-         is made to default on, just to be adventerous.
-         (ospf_graceful_shutdown_finish) new function, final part of
-         shutdown.
-         (ospf_graceful_shutdown_timer) timer thread wrapper for
-         graceful-shutdown.
-         (ospf_graceful_shutdown_check) check whether to setup timer
-         for shutdown or proceed directly to final shutdown.
-         (ospf_terminate) moved here from ospf_route.c, call
-         ospf_finish for each instance.
-         (ospf_finish) renamed to ospf_finish_final and made static.
-         (ospf_finish) new function, exported wrapper around
-         ospf_graceful_shutdown_check.
-         (ospf_finish_final) complete shutdown of an instance.
-         Add missing TIMER_OFF's of two timer threads.
-         (ospf_area_free) opaque self lsa timer should be turned off.
-
-2005-10-23 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_apiserver.c: (ospf_apiserver_term) This function should
-         not have side-effects (eg segv) if no apiserver instances are
-         active, ie be robust.
-       * ospf_vty.c: (show_ip_ospf) fix display of SPF timer if it
-         has not yet been run.
-
-2005-10-21 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_dump.c: (ospf_timeval_dump) fix ms adjustment, thanks to
-         Andrew Schorr.
-       * ospf_vty.c: (ospf_config_write) fix write out of spf timers
-         configuration.
-
-2005-10-21 Paul Jakma <paul.jakma@sun.com>
-
-       * (general) SPF millisecond resolution timer with adaptive,
-         linear back-off holdtime. Prettification of ospf_timer_dump.
-       * ospf_dump.c: (ospf_timeval_dump) new function. The guts of
-         ospf_timer_dump, but made to be more dynamic in printing out
-         the relative timeval, sliding the precision printed out
-         according to the value.
-         (ospf_timer_dump) guts moved to ospf_timeval_dump.
-       * ospf_dump.h: export ospf_timeval_dump.
-       * ospf_flood.c: (ospf_flood) remove gettimeofday, use
-         the libzebra exported recent_time instead, as it's not
-         terribly critical to have time exactly right - the dropped
-         LSA will be retransmited to us if we don't ACK it.
-       * ospf_packet.c: (ospf_ls_upd_timer) Ditto, but here we're
-         not transmitting, just putting LSA back on update transmit list.
-       * ospfd.h: delay and holdtimes should be unsigned.
-         Add spf_max_holdtime and spf_hold_multiplier.
-         Update default defines for delay and hold time to be in msec.
-         (struct ospf) change the SPF timestamp to a struct timeval.
-         Remove ospf_timers_spf_(un)?set.
-       * ospfd.c: (ospf_timers_spf_{set,unset}) removed.
-         (ospf_new) initialise spf_max_holdtime and spf_hold_multiplier
-       * ospf_spf.c: (ospf_spf_calculate) SPF timestamp is a timeval
-         now, update with gettimeofday.
-         (ospf_spf_calculate_schedule) Change SPF timers to millisecond
-         resolution.
-         Make the holdtime be adaptive, with a linear increase in
-         holdtime ever consecutive SPF run which occurs within holdtime
-         of previous SPF, bounded by spf_max_holdtime.
-       * ospf_vty.c: Update spf timers commands.
-         (ospf_timers_spf_set) trivial helper. 
-         (ospf_timers_throttle_spf_cmd) new command to set SPF delay,
-         initial hold and max hold times with millisecond resolution.
-         (ospf_timers_spf_cmd) Deprecated. Accept the old values,
-         convert to msec, truncate to new limits.
-         (no_ospf_timers_throttle_spf_cmd) set timers to defaults.
-         (no_ospf_timers_spf_cmd) deprecated form, same as previous.
-         (show_ip_ospf_cmd) Display SPF parameters and times.
-         (show_ip_ospf_neighbour_header) Centralise the 'sh ip os ne'
-         header.
-         (show_ip_ospf_neighbor_sub) Fix the field widths. Get rid of
-         the multiple spaces which were making the lines even longer.
-         (show_ip_ospf_neighbor_cmd) Use show_ip_ospf_neighbour_header
-         (show_ip_ospf_neighbor_all_cmd) ditto and fix the field
-         widths for NBMA neighbours.
-         (show_ip_ospf_neighbor_int) Use header function.
-         (show_ip_ospf_nbr_nbma_detail_sub) use sizeof for timebuf,
-         local array - safer.
-         (show_ip_ospf_neighbor_detail_sub) ditto
-         (ospf_vty_init) install the new SPF throttle timer commands.
-         
-2005-10-21 Paul Jakma <paul.jakma@sun.com>
-
-       * (general) OSPF fast, sub-second hello and 1s dead-interval
-         support.
-       * ospf_dump.c: (ospf_timer_dump) Print out milliseconds too.
-         Callers typically specify a length of 9, so most see
-         millisecs unless they specify the additional length.
-       * ospf_interface.h: (struct ospf_interface) new interface param, 
-         fast_hello.
-       * ospf_interface.c: (ospf_if_table_lookup) add brackets,
-         gcc warning fix.
-         (ospf_new_if_params) Initialise fast_hello param.
-         (ospf_free_if_params) Check whether fast_hello is configured.
-         (ospf_if_new_hook) set fast_hello to default.
-       * ospf_ism.h: Wrap OSPF_ISM_TIMER_ON inside do {} while (0) to
-         prevent funny side-effects from its if statement when this
-         macro is used conditionally by other macros.
-         (OSPF_ISM_TIMER_MSEC_ON) new macro, set in milliseconds.
-         (OSPF_HELLO_TIMER_ON) new macro to set hello timer according
-         to whether fast_hello is set.
-       * ospf_ism.c: Update all setting of the hello timer to use
-         either OSPF_ISM_TIMER_MSEC_ON or OSPF_HELLO_TIMER_ON. The
-         former is used when hello is to be sent immediately.
-       * ospf_nsm.c: ditto
-       * ospf_packet.c: (ospf_hello) hello-interval is not checked
-         for mismatch if fast_hello is set.
-         (ospf_read) Annoying nit, fix "no ospf_interface" to be debug
-         rather than a warning, as it can be perfectly normal to
-         receive packets when logical subnets are used.
-         (ospf_make_hello) Set hello-interval to 0 if fast-hellos are
-         configured.
-       * ospf_vty.c: (ospf_auto_cost_reference_bandwidth) annoying
-         nit, don't vty_out if this command is given, it gets tired
-         quick.
-         (show_ip_ospf_interface_sub) Print the hello-interval 
-         according to whether fast-hello is set or not.
-         Print the extra 5 millisec characters from (ospf_timer_dump)
-         if fast-hello is configured.
-         (ospf_vty_dead_interval_set) new function, common to all
-         forms of dead-interval command, to set dead-interval and
-         fast-hello correctly. If a dead-interval is given, unset
-         fast-hello, else if a hello-multiplier is set, set
-          dead-interval to 1 and fast-hello to given multiplier.
-         (ip_ospf_dead_interval_addr_cmd) use
-         ospf_vty_dead_interval_set().
-         (ip_ospf_dead_interval_minimal_addr_cmd) ditto.
-         (no_ip_ospf_dead_interval) Unset fast-hello.
-         (no_ip_ospf_hello_interval) Bug-fix, unset of hello-interval
-         should set it to OSPF_HELLO_INTERVAL_DEFAULT, not
-         OSPF_ROUTER_DEAD_INTERVAL_DEFAULT.
-         (config_write_interface) Write out fast-hello.
-         (ospf_config_write) Write a comment about 
-         "auto-cost reference-bandwidth" having to be equal on all
-         routers. Hopefully just as noticeable as old practice of
-         writing to vty, but less annoying.
-         (ospf_vty_if_init) install the two new dead-interval
-         commands.
-       * ospfd.h: Add defines for OSPF_ROUTER_DEAD_INTERVAL_MINIMAL
-         and OSPF_FAST_HELLO_DEFAULT.
-
-2005-10-18 Paul Jakma <paul.jakma@sun.com>
-
-       * (general) SPF memory management cleanup and fix for rare
-         double-free bug.
-       * ospf_spf.h: (struct vertex_parent) New struct to hold parent
-         specific data, eg the backlink and the parent vertex pointer,
-         and point to the appropriate general struct vertex_nexthop.
-         (struct vertex_nexthop) remove parent vertex pointer, so
-         this struct can be shared across vertices.
-         (struct vertex) rename list child to list children. Remove
-         list of nexthops, replace with list of vertex_parents.
-       * ospf_spf.c: (update_stat) trivial, remove cast from void *.
-         (vertex_nexthop_new) remove init of parent - field is gone
-          from struct vertex_nexthop.
-          (ospf_canonical_nexthops_free) Remove the canonical
-          vertex_nexthop memory objects. These are the vertex_nexthops
-          attached to the first level of router vertices from the root.
-          (vertex_parent_new) new function, create a vertex_parent.
-          (vertex_parent_free) ditto, but free it.
-          (ospf_vertex_new) Update to match changes to struct vertex.
-          (ospf_vertex_free) Recursively free a struct vertex and its
-          children. The parent list is used as a reference count.
-          vertex_nexthops must be free seperately, if required.
-          (ospf_vertex_dump) update to match struct vertex changes.
-          Print out backlink of parents too.
-          (ospf_vertex_add_parent) ditto.
-          (ospf_lsa_has_link) update comment.
-          (ospf_nexthop_add_unique) removed, not needed anymore.
-          (ospf_nexthop_merge) ditto.
-          (ospf_spf_consider_nexthop) renamed to ospf_spf_add_parent.
-          Simplified to just create vertex_parent and add it.
-          (ospf_spf_flush_parents) new function, flush out the parent
-         list.
-         (ospf_nexthop_calculation) Take the relevant route_lsa_link
-         as an argument, which simplifies things and removes the need
-         for the hack in ospf_nexthop_add_unique - ospf_spf_next
-         already knew exactly which link the cost calculated was for.
-         Update to match struct vertex changes too.
-         (ospf_spf_next) Don't create a vertex for W unnecessarily, if
-          it's there's a vertex already created for W, use it, and
-          hence there's no need to free it either.
-          Update some manipulation/comparisons of distance to match.
-          Flush the parent list if a lower cost path is found.
-          (ospf_spf_route_free) unused, removed.
-          (ospf_spf_dump) match the struct vertex changes, and dump the
-          ifname if possible.
-          (ospf_spf_calculate) At end of SPF, free the canonical nexthops
-          and call ospf_vertex_free on the root vertex to free the
-         entire tree.
-       * ospf_interface.c: (ospf_vl_set_params) match struct vertex
-          changes.
-        * ospf_route.c: (ospf_intra_route_add) ditto
-          (ospf_route_copy_nexthops_from_vertex) ditto
-          
-2005-10-11 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_api.c: sign warnings.
-       * ospf_apiserver.c: sign warning and convert all the struct
-         in_addr initialisations so as not to make assumptions about
-         how this struct is organised, initialise the s_addr member
-         explicitely.
-       * ospf_packet.c: Add const qualifier to auth_key.
-
-2005-10-06 Alain Ritoux <alain.ritoux@6wind.com>
-
-       * ospf_snmp.c: Avoid mixing interface and ospf_interface objects
-         which now allows snmpwalk to work with ospfIfTable and 
-         also with ospfIfMetricTable
-
-2005-10-01 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_dump.c: Remove local hard-coded table ospf_redistributed_proto.
-         (ospf_redist_string) New function implemented using new library
-         function zebra_route_string().  Note that there are a few differences
-         in the output that will result: the new function returns strings
-         that are lower-case, whereas the old table was mixed case.  Also,
-         the old table mapped ZEBRA_ROUTE_OSPF6 to "OSPFv3", whereas the
-         new function returns "ospf6".
-       * ospfd.h: Remove extern struct message ospf_redistributed_proto[],
-         and add extern const char *ospf_redist_string(u_int route_type)
-         instead.
-       * ospf_asbr.c: (ospf_external_info_add) In two messages, use
-         ospf_redist_string instead of LOOKUP(ospf_redistributed_proto).
-       * ospf_vty.c: Remove local hard-coded table distribute_str.
-         (config_write_ospf_redistribute,config_write_ospf_distribute): Use
-         new library function zebra_route_string() instead of distribute_str[].
-       * ospf_zebra.c: (ospf_redistribute_set,ospf_redistribute_unset,
-         ospf_redistribute_default_set,ospf_redistribute_check)
-         In debug messages, use ospf_redist_string() instead of
-         LOOKUP(ospf_redistributed_proto).
-
-2005-09-30 Vincent Jardin <vincent.jardin@6wind.com>
-
-       * ospf_dump.c, ospf_ia.c, ospf_spf.c, ospf_ase.c:
-         remove unused DEBUG
-
-2005-09-29 Alain Ritoux <alain.ritoux@6wind.com>
-
-       * ospf_ism.c: generate SNMP traps on Interface state change
-       * ospf_nsm.c: generate SNMP traps on Neighbour state change
-       * ospf_snmp.[ch]: support for SNMP traps for interface and neighbours.
-
-2005-09-29 Alain Ritoux <alain.ritoux@6wind.com>
-
-       * ospf_vty.c: forece default route LSA to be re_issued whenever
-         cost is changed ( [no] ip ospf area XXX default-cost YYY)
-         Support ignore-mtu option
-       * ospfd.h: define OSPF_MTU_IGNORE_DEFAULT
-       * ospf_packet.c: support ignore-mtu option
-       * ospf_interface.h: field added for skipping MTU check 
-       * ospf_interface.c: fix memory leak in ospf_crypt_key_delete()
-         Set mtu_ignore field to default value
-       * ospf_abr.[ch]: export ospf_abr_announce_network_to_area()
-       * ospf_ism.h: add MACRO to convert internal ISM status into SNMP
-         correct values
-       * ospf_snmp.c: add sanity check on LSA type in lsdb_lookup_next()
-         convert OSPFIFSTATE internal status into SNMP values
-
-2005-09-28 Alain Ritoux <alain.ritoux@6wind.com>
-
-       * ospf_packet.c: use new md5 API
-
-2005-09-19 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_lsa.h: (ospf_external_lsa_flush) Comment out the 5th argument
-         (nexthop) since it is not used in the function (except inside
-         some commented-out code).
-       * ospf_lsa.c: (ospf_external_lsa_flush,ospf_external_lsa_refresh)
-         Comment out the 5th argument to ospf_external_lsa_flush.
-       * ospf_asbr.c: (ospf_redistribute_withdraw) Comment out 5th arg
-         to ospf_external_lsa_flush.
-       * ospf_vty.c: (no_ospf_default_information_originate) Eliminate 5th
-         uninitialized nexthop arg to ospf_external_lsa_flush.
-       * ospf_zebra.c: (ospf_zebra_read_ipv4) Comment out 5th arg
-         to ospf_external_lsa_flush.
-       * ospfd.c: (ospf_network_set) Comment out 5th arg
-         to ospf_external_lsa_flush.
-
-2005-09-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_opaque.c:
-         (ospf_opaque_lsa_refresh_schedule,ospf_opaque_lsa_flush_schedule)
-         No need to call ospf_lookup(), just use lsa0->area->ospf instead.
-
-2005-08-21 Hasso Tepper <hasso at quagga.net>
-
-       * ospf_vty.c: Make "show ip ospf neighbor xxx" commands work.
-         Interface should be specified by name now.
-
-2005-08-17 Hasso Tepper <hasso at quagga.net>
-
-       * ospf_vty.c: Check carefully if interface exists before trying to
-         print info about it.
-
-2005-08-05 Hasso Tepper <hasso at quagga.net>
-
-       * ospf_zebra.c: Don't assert/stop before type == ZEBRA_ROUTE_MAX if
-         dealing with routemaps. There is ospf->route_map[ZEBRA_ROUTE_MAX]
-         for default-information.
-
-2005-07-26 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_abr.c: (ospf_abr_announce_network_to_area) SET_FLAG
-         should be on lsa not old, which may be freed for one thing,
-         obviously.
-
-2005-07-12 Paul Jakma <paul.jakma@sun.com>
-
-       * ospfd.h: add OSPF_ABR_DEFAULT for convenience, make 
-         OSPF_ABR_CISCO be the default ABR type.
-       * ospfd.c: (ospf_new) initialise abr_type to OSPF_ABR_DEFAULT
-       * ospf_vty.c: (no_ospf_abr_type_cmd) add standard as a negatable
-         abr_type. default abr_type should be OSPF_ABR_DEFAULT.
-         (ospf_config_write) test whether default abr_type against
-         OSPF_ABR_DEFAULT, rather than any specific ABR_TYPE.
-
-2005-06-20 Hasso Tepper <hasso at quagga.net>
-
-       * ospf_nsm.c: Make database exchange for NSSA database work. 
-
-2005-06-13 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_spf.c: Try get more information on a SEGV under 
-         ospf_spf_vertex_add_parent.
-         (ospf_vertex_free) NULL out the child and nexthop lists
-         (ospf_vertex_add_parent) nexthop and child can not be NULL
-         vertex_nexthop's parent->child list can not be NULL
-         (ospf_spf_next) w and cw are per-loop iteration variables, move
-         declarations into loop body.
-         
-2005-06-07 Hasso Tepper <hasso at quagga.net>
-
-       * ospf_apiserver.c: Fix obvious error in notifying clients about ISM
-         changes - oi->ifp->status doesn't give to us info about ISM,
-         oi->state does.
-
-2005-06-01  Akihiro Mizutani  <mizutani@net-chef.net>
-
-       * ospf_ism.c (ospf_elect_bdr/ospf_elect_dr): Fix DR election bug.
-
-2005-05-26 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_abr.c: (ospf_abr_update_aggregate) Fix comment, cost bug itself
-         had been fixed long ago by Sowmini.
-
-2005-05-19 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_interface.c: (ospf_if_table_lookup) Fix a serious bug
-         a less serious one. 
-         1: this function is supposed to lookup
-         entries in the oifs ospf_interface route_table and return either
-         an existing oi or NULL to indicate not found, its caller depends
-         on this, yet this function uses route_node_get which /always/
-         returns a route_node - one is created if none exists. Use
-         route_node_lookup instead. This should fix root cause of the
-         reports of the (ospf_add_to_if) assert being hit.
-         2: oi's are inserted into this table with prefixlength set to
-         /32 (indeed, it should be a hash table, not a route_table),
-         however prefixlength to lookup was not changed, if no valid entry
-         can be inserted other than /32, then nothng but /32 should be
-         looked up. This possibly only worked by fluke..
-         Fix confirmed by 2 reporters (one list, one IRC), definitely a
-         backport candidate once it has been incubated in HEAD for a while.
-         Thanks to Patrick Friedel and Ivan Warren for testing.
-         
-2005-05-11 Paul Jakma <paul.jakma@sun.com>
-
-       * (general) Fix memory leaks in opaque AS-scope LSAs, reported and
-         with much debugging done by by scott collins <scollins@agile.tv>.
-       * ospf_lsa.c: (ospf_discard_from_db) dont call
-         ospf_ase_unregister_external_lsa for opaque-lsa's, opaques are
-         never registered with ase in the first place.
-       * ospf_packet.c: (general) Disabuse opaque related code of its
-          tendency to try gather up things into temporary lists.
-          (ospf_ls_upd) remove the temporary lists opaque uses, call
-          opaque functions inline, just like all other types.
-          (ospf_ls_ack) ditto.
-          (ospf_recv_packet) fixup sign warning.
-        * ospf_opaque.c: (general) fix the unneeded use of lists, and
-          untwist some of the logic.
-          (ospf_opaque_self_originated_lsa_received) take a single LSA
-          as argument, not a list of them. Remove the list loop. Logic 
-          otherwise unchanged.
-          (ospf_opaque_ls_ack_received) Mostly ditto. But untwist the logic,
-          move the actions up into the switch block, remove the goto's and
-          sanitise the logic near the end a bit.
-        * ospf_opaque.h: Adjust definitions of aforementioned functions
-          in ospf_opaque.c to match.
-         
-2005-05-07 Yar Tikhiy <yar@comp.chem.msu.su>
-
-       * ospf_network.c: Log ifindex on multicast membership leave/join
-         events.
-
-2005-05-06 Paul Jakma <paul.jakma@sun.com>
-
-        * (general) extern and static qualifiers added. 
-          unspecified arguments in definitions fixed, typically they should
-          be 'void'.
-          function casts added for callbacks.
-          Guards added to headers which lacked them.
-          Proper headers included rather than relying on incomplete
-          definitions.
-          gcc noreturn function attribute where appropriate.
-        * ospf_opaque.c: remove the private definition of ospf_lsa's 
-          ospf_lsa_refresh_delay.
-        * ospf_lsa.h: export ospf_lsa_refresh_delay
-        * ospf_packet.c: (ospf_make_md5_digest) make *auth_key const, 
-          correct thing to do - removes need for the casts later.
-        * ospf_vty.c: Use vty.h's VTY_GET_INTEGER rather than ospf_vty's
-          home-brewed versions, shuts up several warnings.
-        * ospf_vty.h: remove VTY_GET_UINT32. VTY_GET_IPV4_ADDRESS and
-          VTY_GET_IPV4_PREFIX moved to lib/vty.h.
-        * ospf_zebra.c: (ospf_distribute_list_update_timer) hacky
-          overloading of the THREAD_ARG pointer should at least use
-          uintptr_t.
-
-2005-04-15 Zhipeng Gong <zpgong@cdc.3upsystems.com>
-
-       * ospf_abr.c: (ospf_abr_announce_network_to_area) dont forget
-         to approve LSAs for the case where metric has changed, lsa gets
-         flushed otherwise. (backport candidate).
-
-2005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_zebra.c (ospf_zebra_add): Call zclient_send_message instead
-         of writen.
-
-2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_interface.h: (ospf_if_lookup_by_name) Remove declaration of a
-         function that does not exist.
-
-2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_zebra.c: (zebra_interface_if_lookup) Must use
-         if_lookup_by_name_len.
-
-2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_interface.c: (ospf_vl_new) Use strnlen to fix call to if_create.
-
-2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_vty.c: (show_ip_ospf_interface_sub) Show ifindex and interface
-         flags to help with debugging.
-       * ospf_zebra.c: (ospf_interface_delete) After deleting, set ifp->ifindex
-         to IFINDEX_INTERNAL.
-         (zebra_interface_if_lookup) Make function static.  Tighten up code.
-
-2005-03-31 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_dump.c: (show_debugging_ospf) Show if ospf event debugging
-         is turned on.
-
-2005-03-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_zebra.c: (ospf_interface_state_up) If the MTU of an operative
-         interface changes, print a debug message and call ospf_if_reset()
-         to simulate down/up on the interface.
-       * ospf_interface.h: Declare new function ospf_if_reset().
-       * ospf_interface.c: (ospf_if_reset) New function to call ospf_if_down
-         and ospf_if_up for all ospf interfaces attached to an interface.
-
-2005-03-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_packet.c: (ospf_write_frags) Enhance error message to
-         show MTU.  Also make function static.
-         (ospf_write) Enhance error message to show interface name and MTU.
-         Also make function static.
-
-2005-03-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_vty.c: (show_ip_ospf_interface_sub) Display interface MTU and
-         bandwidth; this is useful for debugging problems.  Also, the function
-         should be static.
-
-2005-03-27 Hasso Tepper <hasso at quagga.net>
-
-       * ospf_snmp.c: Don't crash in snmp query if ospf instance doesn't
-         exist at all.
-
-2005-03-25 Hasso Tepper <hasso at quagga.net>
-
-       * ospfd.h: Include log.h, fixes compile with gcc-4.0.
-
-2005-03-13 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_lsa.c: (ospf_lsa_refresh_walker) If the system clock jumps
-         backward, then current time may be less than
-         ospf->lsa_refresher_started.  This was causing invalid values
-         for ospf->lsa_refresh_queue.index resulting in infinite loops.
-         Problem fixed by casting the expression to unsigned before taking
-         the modulus.
-
-2005-02-23 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospfd.h: Add new field struct stream *ibuf to struct ospf.
-       * ospfd.c: (ospf_new) Check return code from ospf_sock_init.
-         Allocate ibuf using stream_new(OSPF_MAX_PACKET_SIZE+1).
-         (ospf_finish) Call stream_free(ospf->ibuf.
-       * ospf_packet.c: (ospf_read) Call stream_reset(ospf->ibuf) and then
-         pass it to ospf_recv_packet for use in receiving the packet
-         (instead of allocating a new stream for each packet received).
-         Eliminate all calls to stream_free(ibuf).
-         (ospf_recv_packet) The struct stream *ibuf is now passed in as
-         an argument.  No need to use recvfrom to peek at the packet
-         header (to see how big it is), just use ospf->ibuf which is
-         always large enough (this eliminates a system call to recvfrom).
-         Therefore, no need to allocate a stream just for this packet,
-         and no need to free it when done.
-
-2005-02-23 Vincenzo Eramo <eramo at infocom.ing.uniroma1.it>
-
-       * ospf_lsa.h: New flag to the LSA structure for the SPF calculation.
-       * ospf_lsdb.h: Export ospf_lsdb_clean_stat() function.
-       * ospf_spf.h: Add link to the LSA stat structure into vertex.
-       * ospf_spf.c: New functions cmp() and update_stat() to manage
-         candidates. Remove ospf_spf_has_vertex(), ospf_vertex_lookup(),
-         ospf_install_candidate() and ospf_spf_register() functions not needed
-         any more. Update ospf_vertex_new(), ospf_spf_next() and
-         ospf_spf_calculate() functions to use pqueue instead of linked list.
-
-2005-02-21 Hasso Tepper <hasso at quagga.net>
-
-       * ospf_ase.c: Don't show messages related to the ase calculations if
-         we are not debugging.
-
-2005-02-19 Hasso Tepper <hasso at quagga.net>
-
-       * ospf_api.h: char isn't always signed, but it has to be it here.
-
-2005-02-19 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_packet.c: (ospf_stream_copy) remove
-         (ospf_packet_dup) use stream_copy instead of ospf_stream_copy
-
-2005-02-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_packet.c: (ospf_recv_packet) If there is somehow a runt
-         packet in the queue, it must be discarded.  Improve warning messages.
-         Fix scope to static.
-         (ospf_read) Fix bug: should reset the read thread in all cases
-         to make sure we continue to get incoming messages.
-
-2005-02-15 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_packet.c: (ospf_recv_packet) Fix silly error wrt allocating
-         ibuf. Thanks Andrew.
-
-2005-02-14 Paul Jakma <paul.jakma@sun.com>
-
-       * ospf_packet.c: (ospf_recv_packet) use stream_recvmsg.
-
-2005-02-11 Hasso Tepper <hasso at quagga.net>
-
-       * ospf_lsdb.c: Fix sum of checksums calculation.
-
-2005-02-09 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_packet.c: (ospf_write) If sendmsg fails, give more info in the
-         error message.
-         
-2005-02-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_interface.h: Reduce structure padding by putting new u_char
-         field multicast_memberships in a better spot (grouped with
-         other u_char fields type and state).
-
-2005-02-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_interface.h: Improve passive_interface comment.  Add new
-         multicast_memberships bitmask to struct ospf_interface to track
-         active multicast subscriptions.  Declare new function
-         ospf_if_set_multicast.
-       * ospf_interface.c: (ospf_if_set_multicast) New function to configure
-         multicast memberships properly based on the current
-         multicast_memberships status and the current values of the
-         ospf_interface state, type, and passive_interface status.
-         (ospf_if_up) Remove call to ospf_if_add_allspfrouters (this is
-         now handled by ism_change_state's call to ospf_if_set_multicast).
-         (ospf_if_down) Remove call to ospf_if_drop_allspfrouters (now
-         handled by ism_change_state).
-       * ospf_ism.c: (ospf_dr_election) Remove logic to join or leave
-         the DRouters multicast group (now handled by ism_change_state's call
-         to ospf_if_set_multicast).
-         (ism_change_state) Add call to ospf_if_set_multicast to change
-         multicast memberships as necessary to reflect the new interface state.
-       * ospf_packet.c: (ospf_hello) When a Hello packet is received on a
-         passive interface: 1. Increase the severity of the error message
-         from LOG_INFO to LOG_WARNING; 2. Add more information to the error
-         message (packet destination address and interface address);
-         and 3. If the packet was sent to ospf-all-routers, then try
-         to fix the multicast group memberships.
-         (ospf_read) When a packet is received on an interface whose state
-         is ISM_Down, enhance the warning message to show the packet
-         destination address, and try to update/fix the multicast group
-         memberships if the packet was sent to a multicast address.
-         When a packet is received for ospf-designated-routers, but the
-         current interface state is not DR or BDR, then increase the
-         severity level of the error message from LOG_INFO to LOG_WARNING,
-         and try to fix the multicast group memberships.
-       * ospf_vty.c: (ospf_passive_interface) Call ospf_if_set_multicast for
-         any ospf interface that may have changed from active to passive.
-         (no_ospf_passive_interface) Call ospf_if_set_multicast for
-         any ospf interface that may have changed from passive to active.
-         (show_ip_ospf_interface_sub) Show multicast group memberships.
-
-2005-02-08 Paul Jakma <paul@dishone.st>
-
-       * ospf_packet.c: (various) Remove unneeded stream_set_putp abuse.
-
-2005-02-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_packet.c: (ospf_read) Fix bug: must check for state ISM_Down,
-         not for event ISM_InterfaceDown.  And improve the message by
-         adding the interface flags.
-
-2005-01-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_network.c: (ospf_sock_init) Save errno before calling
-         ospfd_privs.change.
-
-2005-01-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_packet.c: (ospf_packet_add) If oi->obuf is NULL, print
-       an error message and return.
-       (ospf_read) If the interface state is ISM_InterfaceDown, issue
-       a warning message and ignore the packet.
-
-2005-01-10  Greg Troxel  <gdt@fnord.ir.bbn.com>
-
-       * ospf_packet.h: Remove commented out definition of
-       OSPF_MAX_PACKET; neither it or the uncommented one are used any more.
-
-       * ospf_packet.c (ospf_make_ls_upd): Leave room for authentication
-       when deciding if an update will fit.
-       (ospf_packet_authspace): Factor out calculation of size required
-       for authentication.
-       (ospf_make_db_desc): Use ospf_max_packet, not OSPF_MAX_PACKET.
-       Don't confuse readers that there is a macro.
-
-2004-12-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_network.c: Improve all setsockopt error messages to give detailed
-         information on the arguments.
-
-2004-12-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_packet.c: (ospf_db_desc) Reduce severity of "Negotiation done"
-         messages from LOG_WARNING to LOG_INFO, since this seems to be
-         normal.
-
-2004-12-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_packet.c: (ospf_read) Always look up the interface if
-         ospf_recv_packet returns NULL ifp, since some platforms such
-         as Solaris 8 appear to support ifindex retrieval but don't.
-
-2004-12-22 Hasso Tepper <hasso at quagga.net>
-
-       * ospf_dump.c: Show debug configuration in vtysh.
-       * ospf_vty.c: Fix "show ip ospf" output. Router can't be elected in
-         any case if it's configured as "translate-never".
-       * ospf_lsdb.[ch]: New function to calculate sum of checksums.
-       * ospf_vty.c: Bugfix to show really number of AS external LSAs, not
-         number of all LSAs with AS scope, this includes opaque as LSAs as
-         well, show this number separately. Show numbers and sums of
-         checksums for each type of LSAs.
-       * ospf_lsa.c: Calculate checksum before putting LSA into database.
-
-2004-12-15 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_interface.h: Declare new function ospf_default_iftype.
-       * ospf_interface.c: (ospf_default_iftype) New function to centralize
-         this logic in one place.
-       * ospf_zebra.c: (ospf_interface_add) Use new function
-         ospf_default_iftype.
-       * ospf_vty.c: (no_ip_ospf_network,config_write_interface) Fix logic
-         by using new function ospf_default_iftype.
-
-2004-12-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_packet.c: (ospf_db_desc) Should be static, not global.
-         (ospf_hello,ospf_db_desc,ospf_ls_upd,ospf_ls_ack) Improve warning
-         messages to include identifying information (e.g. router id).
-       * ospf_nsm.c: (nsm_change_state) Improve info message to include
-         router id and state names.
-
-2004-12-09  Greg Troxel  <gdt@fnord.ir.bbn.com>
-
-       * ospf_apiserver.c (ospf_apiserver_term): Obtain struct
-       ospf_apiserver * from listnode.  Remove unused variables.  Follows
-       suggestion from Jay Fenlason.
-
-2004-12-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * *.c: Change level of debug messages to LOG_DEBUG.
-
-2004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_main.c: (main) The 2nd argument to openzlog has been removed.
-
-2004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_packet.c: (ospf_db_desc) Reduce priority on a debug message
-         from LOG_NOTICE to LOG_DEBUG.
-
-2004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_main.c: (sigint) Use zlog_notice for termination message.
-         (main) Issue a startup announcement using zlog_notice.
-
-2004-11-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_packet.c: (ospf_db_desc_proc) Fix spelling of packet in warning
-         message and in comment.
-         (ospf_db_desc) Warning message that a packet is being discarded
-         should give the router id of the packet source.  Fix spelling
-         of packet in two warning messages.
-         (ospf_ls_req) Warning message that a link state request is being
-         discarded should give the router id of the neighbor that sent it.
-
-2004-11-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ospf_main.c: Remove #include "debug.h" (was not being used, and
-         lib/debug.h has now been deleted).
-
-2004-11-25 Hasso Tepper <hasso at quagga.net>
-
-       * ospf_main.c: Make group to run as configurable.
-
-2004-11-15  Greg Troxel  <gdt@fnord.ir.bbn.com>
-
-       * ospf_packet.c (ospf_recv_packet): Assume CMSG_SPACE is present
-       and works (lib/zebra.h provides if OS doesn't).
-
-2004-11-15 Paul Jakma <paul@dishone.st>
-
-       * ospf_{apiserver,te}.c: ospf_lsa_free's should be ospf_lsa_unlock.
-
-2004-11-12 Paul Jakma <paul@dishone.st>
-
-       * ospf_ia.c: (process_summary_lsa) Only an ABR has any reason to
-          ignore stub area summary default. Even so it seems a strange
-          check, add a comment to that effect.
-
-2004-11-04 Paul Jakma <paul@dishone.st>
-
-       * ospfd.c: (ospf_network_match_iface) revert to previous network
-          statement match behaviour.
-
-2004-11-02 Paul Jakma <paul@dishone.st>
-
-       * ospf_packet.c: (ospf_write_frags) remove iov arg, msg already points
-         to it. Add convenience pointer to msg->msg_iov[1], and use this,
-         fixing the unfortunate borkenness introduced in moving of this code 
-         to a function.
-         (ospf_write) remove iovp and fix up call to previous.
-         (ospf_ls_upd_packet_new) cast size to long int - unfortunately 
-          glibc's size_t format modifier is not portable.
-
-2004-10-31 Paul Jakma <paul@dishone.st>
-
-       * ospf_packet.c: (ospf_write_frags) Add debug output
-         (ospf_write) set type early, so we can pass it to
-         ospf_write_frags.
-         (ospf_ls_upd_packet_new) print size in debug output when too large
-         packet is encountered.
-       * ospf_zebra.c: (ospf_distribute_list_update_timer) Ugly misuse of
-         THREAD_ARG to store an integer, but it should at least use same
-          same type to retrieve the value. Assert value is sane.
-
-2004-10-22 Paul Jakma <paul@dishone.st>
-
-       * ospf_network.c: (ospf_sock_init) call neutral setsock_ifindex()
-          function.
-        * ospf_packet.c: (ospf_read) manually look up ifindex
-          if system could not have returned one, eg openbsd, thanks to Rivo
-         Nurges for highlighting problem and fix.
-          Change setsockopt_pktinfo to setsockopt_ifindex.
-
-2004-10-19 Andrew J. Schorr <aschorr@telemetry-investments.com>
-
-       * ospf_snmp.c: (ospf_snmp_if_update) Fix logic to handle PtP links
-         with dedicated subnets properly.
-       * ospf_lsa.c: (lsa_link_ptop_set) ditto.
-       * ospfd.c: (ospf_network_match_iface) ditto.
-         (ospf_network_run) ditto.
-       * ospf_interface.c: (ospf_if_is_configured) ditto.
-         (ospf_if_lookup_by_prefix) ditto.
-         (ospf_if_lookup_recv_if) ditto.
-       * ospf_vty.c: (show_ip_ospf_interface_sub) Display the peer or
-         broadcast address if present.
-
-2004-10-13 Hasso Tepper <hasso at quagga.net>
-
-       * ospf_main.c: Unbreak compilation with ospfapi disabled.
-       * ospf_snmp.c: Remove defaults used to initialize smux connection to
-         snmpd. Connection is initialized only if smux peer is configured.
-
-2004-10-12 Hasso Tepper <hasso at quagga.net>
-
-       * ospf_main.c, ospf_opaque.c: Unbreak ospfclient compilation - move
-         static variable from ospf_main.c into ospf_opaque.c.
-
-2004-10-11 Hasso Tepper <hasso at quagga.net>
-
-       * ospf_main.c, ospf_opaque.c: Disable ospfapi init by default. New
-         command line switch to enable it.
-
-2004-10-11 Paul Jakma <paul@dishone.st>
-
-       * ospf_dump.c: (ospf_ip_header_dump) Assume header is in host order
-         remove ntohs that should have dissappeared. Take struct ip
-         as argument, caller has to know there's an IP header at start of
-         stream anyway.
-       * ospf_dump.h: update declaration of ospf_ip_header_dump.
-       * ospf_packet.c: (ospf_write) correct call to 
-         sockopt_iphdrincl_swab_htosys which was munging the header.
-         (ospf_recv_packet) ip_len is needed for old OpenBSD fixup.
-         (ospf_read) sockopt_iphdrincl_swab_systoh ip header as soon as
-         we have it.
-       * (global) Const char update and signed/unsigned fixes.
-       * (various headers) size defines should be unsigned.
-       * ospf_interface.h: remove duplicated defines, include the
-         authoritative header - though, these defines should probably
-          be moved to a dedicated header, or ospfd.h.
-       * ospf_lsa.h: (struct lsa) ls_seqnum should be unsigned.
-       * ospf_packet.c: (ospf_write) cast result of shift to unsigned.
-         
-2004-10-08 Hasso Tepper <hasso at quagga.net>
-       
-       * *.[c|h]: Fix compiler warnings: make some strings const, signed ->
-         unsigned, remove unused variables etc.
-
-2004-10-07  Greg Troxel  <gdt@claude.ir.bbn.com>
-
-       * ospf_apiserver.c (ospf_apiserver_unregister_opaque_type): Don't
-       use of variable names 'node' and 'nextnode' to avoid possible
-       conflict with list macros.  Move variable declaration inside for
-       loop after a statement to top of function.
-
-2004-10-07 Paul Jakma <paul@dishone.st>
-
-       * ospf_snmp.c: Missed list typedef update
-       * ospf_dump.c: Include sockopt.h for header swab functions.
-
-2004-10-05 Paul Jakma <paul@dishone.st>
-
-       * ospf_packet.c: replace ospf_swap_iph_to... with
-          sockopt_iphdrincl_swab_...
-
-2004-10-03 James R. Leu <jleu at mindspring.com>
-
-       * ospf_zebra.c: Read router id related messages from zebra daemon.
-         Schedule router-id update thread if it's changed.
-       * ospfd.c: Remove own router-id selection function. Use router id from
-         zebra daemon if it isn't manually overriden in configuration.
-
-2004-09-27 Paul Jakma <paul@dishone.st>
-
-       * ospf_dump.c: (ospf_ip_header_dump) Use HAVE_IP_HDRINCL_BSD_ORDER
-         Apply to offset too. Print ip_cksum, lets not worry about
-         possible 2.0.37 compile problems.
-       * ospf_packet.c: (ospf_swap_iph_to{n,h}) Use
-         HAVE_IP_HDRINCL_BSD_ORDER.
-         (ospf_recv_packet) ditto.
-         (ospf_write) Fixup iov argument to ospf_write_frags.
-          (struct msghdr).msg_name is caddr_t on most platforms.
-         (ospf_recv_packet) ditto. And msg_flags is not always there
-          memset struct then set fields we care about rather than 
-          initialise all fields individually.
-
-2004-09-26 Hasso Tepper <hasso at quagga.net>
-
-       * ospf_abr.c, ospf_dump.c, ospf_lsa.c, ospf_packet.c, ospf_vty.c,
-         ospf_zebra.c: Fix compiler warnings.
-
-2004-09-24 Paul Jakma <paul@dishone.st>
-
-        * ospf_apiserver.{c,h}: lists typedef removal cleanup.
-          update some list loops to LIST_LOOP. some miscellaneous indent
-          fixups.
-          (ospf_apiserver_unregister_opaque_type) fix listnode_delete of
-          referenced node in loop.
-         (ospf_apiserver_term) loops calling ospf_apiserver_free, which
-          deletes referenced nodes from apiserver_list, fixed.
-        * ospf_interface.h: lists typedef removal cleanup.
-        * ospf_opaque.{c,h}: lists typedef removal cleanup. update some list 
-          loops to LIST_LOOP. miscellaneous style and indent fixups.
-        * ospf_te.{c,h}: ditto
-       * ospf_packet.c: lists typedef removal cleanup.
-          (ospf_write) ifdef fragmentation support. move actual
-         fragmentation out to a new, similarly ifdefed, function.
-         (ospf_write_frags) fragmented write support, moved from previous.
-
-2004-09-23 Hasso Tepper <hasso at quagga.net>
-
-       * *.[c|h]: list -> struct list *, listnode -> struct listnode *.
-
-2004-09-12 Paul Jakma <paul@dishone.st>
-
-       * ospf_packet.c: Fix bugzilla #107
-         (ospf_packet_max) get rid of the magic 88 constant
-         (ospf_swab_iph_ton) new function. set ip header to network order,
-         taking BSDisms into account.  
-         (ospf_swab_iph_toh) the inverse. 
-         (ospf_write) Add support for IP fragmentation, will only work on
-         linux though, other kernels make it impossible. get rid of the
-         magic 4 constant.  
-         (ospf_make_ls_upd) Bound check to end of stream, not to 
-         interface mtu.  
-         (ospf_ls_upd_packet_new) New function, allocate upd packet
-         taking oversized LSAs into account.
-         (ospf_ls_upd_queue_send) use ospf_ls_upd_packet_new to allocate,
-         rather than statically allocating mtu sized packet buffer, which
-         actually was wrong - it didnt take ip header into account, which
-         should not be included in packet buffer.
-         (ospf_ls_upd_send_queue_event) minor tweaks and remove
-         TODO comment.
-         
-2004-08-31  David Wiggins  <dwiggins@bbn.com>
-
-       * ospf_spf.c (ospf_spf_calculate): Many more comments and debug
-         print statements.  New function ospf_vertex_dump used in debugging.
-
-2004-08-31  David Wiggins  <dwiggins@bbn.com>
-
-       * ospf_spf.h (struct vertex): Comments for flags and structure members.
-
-2004-08-31  David Wiggins  <dwiggins@bbn.com>
-
-       * ospf_route.c: When finding an alternate route, log cost as well.
-
-2004-08-31  David Wiggins  <dwiggins@bbn.com>
-
-       * ospf_interface.c (ospf_lookup_if_params): Initialize af in
-         struct prefix allocated on stack.
-
-2004-08-31  David Wiggins  <dwiggins@bbn.com>
-
-       * ospf_packet.c (ospf_ls_ack_send_delayed): In p2mp mode, send
-         acks to AllSPFRouters, rather than All-DR.
-
-2004-08-27  Hasso Tepper  <hasso at quagga.net>
-
-       * ospf_vty.c: Don't print ospf network type under interface only
-         if interface is in broadcast mode and interface type really is
-         broadcast. Fixes Bugzilla #108.
-
-2004-08-27  David Wiggins  <dwiggins@bbn.com>
-
-       * ospf_spf.c (ospf_nexthop_calculation): Initialize address family
-         in on-stack struct prefix_ipv4.  Fixes point-to-multipoint SPF
-         calculation.
-
-2004-08-26  Greg Troxel  <gdt@fnord.ir.bbn.com>
-
-       * ospf_packet.c (ospf_recv_packet): adjust size declaration of
-         buffer used to get interface index so that it compiles on other
-         than Linux and includes the required alignment space.  Probably
-         this was only working on sparc/sparc64 because most of
-         sockaddr_dl was not being written.
-
-2004-08-19 Paul Jakma <paul@dishone.st>
-
-       * ospf_packet.c: update to match sockopt renames.
-       
-2004-08-04 Paul Jakma <paul@dishone.st>
-
-       * ospf_spf.c: (ospf_spf_consider_nexthop) Add comment about issue.
-         Compare only against list head - all nexthops must be same cost
-         anyway, fixes a reference-listnode-after-delete bug noted by
-         Kir Kostuchenko.
-         (ospf_nexthop_calculation) Use ospf_spf_consider_nexthop for all
-         candidates attached to root.
-         
-2004-07-27 Paul Jakma <paul@dishone.st>
-
-        * ospf_packet.c: (ospf_ls_upd_send_queue_event) fix thinko from
-          last fix for ospfd wedging due to oversize LSAs: dont list loop on
-          ospf_ls_upd_queue_send() - guaranteed segfault.
-          
-2004-07-27 Paul Jakma <paul@dishone.st>
-
-       * ospf_opaque.c: (ospf_opaque_lsa_flush_schedule) do not NULL out
-         the LSA as then free_opaque_info_per_id() can never unlock (and
-         free) the LSA. Reported by Gunnar Stigen.
-         
-2004-07-23 Paul Jakma <paul@dishone.st>
-
-       * ospf_network.c: Replace PKTINFO/RECVIF with call to
-         setsockopt_pktinfo
-       * ospf_packet.c: Use getsockopt_pktinfo_ifindex and
-         SOPT_SIZE_CMSG_PKTINFO_IPV4.
-
-2004-07-14 Paul Jakma <paul@dishone.st>
-
-       * ospf_packet.c: (ospf_ls_upd_send_queue_event) Partial fix for 
-         problem reported by Peter Frost amongst others, where function
-         will spin indefinitely if update list contains LSAs greater than
-         MTU-headers or other condition leading to update list never being
-          cleared. Problem of what to do with these LSAs remains.
-          (ospf_make_ls_upd) add comment about large LSA problem,
-         indentation cleanup.
-
-2004-07-01  Greg Troxel  <gdt@fnord.ir.bbn.com>
-
-       * Makefile.am (lib_LTLIBRARIES): make libospf shared
-
-2004-06-30  Greg Troxel  <gdt@poblano.ir.bbn.com>
-
-       * Makefile.am: Add shlib support.
-
-2004-06-10 Hasso Tepper <hasso@estpak.ee>
-
-       * *: Removed ifdefs HAVE_NSSA.
-
-2004-06-06 Paul Jakma <paul@dishone.st>
-
-       * ospf_dump.c,ospf_lsa.c: Fix typos of merge of previous.
-         ospf_flood.c: (ospf_process_self_originated_lsa) fix zlog format
-
-2004-05-31 Sagun Shakya <sagun.shakya@sun.com>
-
-       * ospf_dump.c: (ospf_lsa_header_dump) LOOKUP can return null if
-         index is out of range.
-         ospf_flood.c: endianness fix
-         ospf_lsa.c: Missing ntohl's on (struct lsa *)->data->ls_seqnum
-         in various places.
-         
-2004-05-10 Hasso Tepper <hasso@estpak.ee>
-
-       * ospf_zebra.c, ospfd.c: Move ospf_prefix_list_update() function
-         to ospf_zebra.c from ospfd.c and add redistribution updates if
-         route-map is used in redistribution.
-       * ospf_main.c: Remove now useless call to ospf_init().
-
-2004-05-08 Paul Jakma <paul@dishone.st>
-
-       * ospf_zebra.c: Sync with lib/zclient changes
-       
-2004-05-05 Paul Jakma <paul@dishone.st>
-
-       * ospf_network.c: (ospf_sock_init) Check whether IP_HDRINCL is
-         defined. Warn at compile and runtime. Use 
-         IPTOS_PREC_INTERNETCONTROL otherwise.
-       * ospf_packet.c:  (ospf_associate_packet_vl) cleanup, move 
-         some of the checks up to ospf_read, return either a 
-         virtual link oi, or NULL. 
-         (ospf_read) Cleanup, make it responsible for checks. Remove
-         the nbr lookup - moved to ospf_neighbor. Adjust all nbr
-         lookups to use new wrappers exported by ospf_neighbor.
-       * ospf_neighbor.h: Add ospf_neigbour_get and ospf_nbr_lookup.
-       * ospf_neighbor.c: (ospf_neigbour_get) Index ospf_interface 
-         neighbour table by router-id for virtual-link ospf_interfaces, 
-         not by peer_addr (which breaks for asymmetric vlinks)
-         (ospf_nbr_lookup) add a wrapper for nbr lookups to deal with
-         above.
-       * ospf_interface.c: (ospf_vl_set_params) Catch changes of interface
-         address for either end of a virtual-link, and hence potential cost
-         changes.
-         
-2004-04-22 Hasso Tepper <hasso@estpak.ee>
-
-       * ospf_zebra.c: Don't ignore reject/bh routes, it's the only way
-         to "summarize" routes in ASBR at the moment.
-
-2004-04-20 Hasso Tepper <hasso@estpak.ee>
-
-       * ospfd.c: Unset NP flag if area is going to be normal or stub.
-         Fixes UNH OSPF_NSSA.1.2a comment.
-       * ospf_abr.c: Originate default into stub/nssa area even if
-         summaries are disabled.
-       * ospf_zebra.c: Don't attempt to redistribute 127.0.0.0/8.
-
-2004-04-19 Hasso Tepper <hasso@estpak.ee>
-
-       * ospf_vty.c: Don't warn that export- and import-list can't be
-         configured to backbone area if they are applied and are working
-         fine.
-
-2004-02-19 Sowmini Varadhan <sowmini.varadhan@sun.com>
-
-       * ospf_packet.c: Don't drop packets in Solaris x86.
-         [quagga-dev 1005].
-
-2004-03-18 Amir Guindehi <amir@datacore.ch>
-
-       * ospf_opaque.c: Attempt to correct the incorrect behavior of
-       Quagga's ospfd in the special situation that a node's opaque
-       capability has changed as "ON -> OFF -> ON". [quagga-dev 843].
-
-2004-02-19 Sowmini Varadhan <sowmini.varadhan@sun.com>
-
-       * ospf_abr.c: (ospf_abr_update_aggregate) UNH 3.12b,c, address range
-         should be configured with the highest cost path within the range,
-         not lowest.
-         
-2004-02-17 Paul Jakma <paul@dishone.st>
-
-       * ospf_zebra.c: (ospf_interface_delete) Do not delete the interface
-         params, nor the interface structure, if an interface delete 
-         message is received from zebra.
-       * ospf_interface.c: (ospf_if_delete_hook) Delete the interface
-         params and interface, ie that which was previously removed in
-         (ospf_interface_delete) above.
-
-2004-02-11 Hasso Tepper <hasso@estpak.ee>
-       * ospf_interface.c, ospf_zebra.c: Don't attempt to read path->oi->ifp
-         if oi doesn't exist any more.
-
-2004-02-11 Vadim Suraev <vadim.suraev@terayon.com>
-       * ospf_packet.c (ospf_ls_upd): Router should flush received network
-         LSA if it was originated with older router-id ([zebra 14710] #6).
-
-2003-12-08 Mattias Amnefelt <mattiasa@kth.se>
-
-       * ospf_packet.c: (ospf_recv_packet) OpenBSD now leaves iph.ip_len 
-         network byte order.
-
-2003-12-05  Greg Troxel  <gdt@poblano.ir.bbn.com>
-
-       * ospfd.c (ospf_network_match_iface): Rewrite code for clarity
-       while trying not to change semantics.  Add ifdefed-out code to
-       avoid matching ppp interfaces whose destination address does not
-       also match the prefix under consideration, to help out people with
-       problems due to as-yet-unfixed bugs with p2p interfaces coming and
-       going.
-
-2003-07-25 kamatchi soundaram <kamatchi@tdd.sj.nec.com>
-
-        * ospf_packet.c (ospf_ls_upd_send_queue_event): get next route
-          node in body of the loop to avoid chance that route node
-          is unlocked and deleted before the next iteration tries to 
-          get next route node.
-
-2003-05-24 Kenji Yabuuchi
-
-       * ospf_interface.c(ospf_if_lookup_recv_if): Use the most specific
-         match for interface lookup.
-
-2003-05-18 Hasso Tepper <hasso@estpak.ee>
-
-       * ospf_vty.c: Show NSSA LSA route info in "show ip ospf database"
-       output
-
-2003-05-16 Hasso Tepper <hasso@estpak.ee>
-
-       * ospf_lsa.c: Fix handling of NSSA
-
-2003-04-23 Hasso Tepper <hasso@estpak.ee>
-
-       * ospf_vty.c: fix "router xxx" node commands in vtysh
-
-2003-04-19 Hasso Tepper <hasso@estpak.ee>
-
-       * {ospf_abr,ospfd}.c: area id's DECIMAL -> ADDRESS
-       * ospf_routemap.c: sync daemon's route-map commands to have same
-         syntax.
-       
-2003-04-19 Sergey Vyshnevetskiy <serg@vostok.net>
-
-       * ospf_packet.c: Add missing param to zlog
-       * ospf_flood.c: remove unused vars
-
-2003-04-17 Denis Ovsienko <zebra@pilot.org.ua>
-
-       * ospf_interface.c: fix incorrect memset
-
-2003-04-10 Amir Guindehi <amir@datacore.ch>
-
-       * ospf_lsa.[ch]: opaque LSA fix, use ospf_lookup.
-
-2003-04-03 David Watson <dwatson@eecs.umich.edu>
-
-       * ospf_lsa.c: byte order fix
-
-2002-03-17  Amir Guindehi <amir@datacore.ch>
-
-        * ospf_apiserver.[ch]: Merge Ralph Keller's OSPFAPI support.
-        * ospf_api.[ch]: Merge Ralph Keller's OSPFAPI support.
-       * ospfclient: OSPFAPI demonstration client.
-
-2003-01-23  Masahiko Endo <endo@suri.co.jp>
-
-       * ospf_ism.c: NSM event schedule bug fix.
-
-2002-10-30  Greg Troxel <gdt@ir.bbn.com>
-
-       * ospf_packet.c (ospf_make_md5_digest): MD5 length fix. 
-
-2002-10-23  endo@suri.co.jp (Masahiko Endo)
-
-       * ospf_opaque.c: Update Opaque LSA patch.
-
-2002-10-23  Ralph Keller <keller@tik.ee.ethz.ch>
-
-       * ospf_vty.c (show_ip_ospf_database): Fix CLI parse.
-
-2002-10-23  Juris Kalnins <juris@mt.lv>
-
-       * ospf_interface.c (ospf_if_stream_unset): When write queue
-       becomes empty stop write timer.
-
-2002-10-10  Greg Troxel <gdt@ir.bbn.com>
-
-       * ospf_packet.c (ospf_check_md5_digest): Change >= to > to make it
-       conform to RFC.
-
-2002-07-07  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.93 released.
-
-2002-06-19  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * ospf_spf.c (ospf_nexthop_calculation): Add NULL set to oi and
-       check of l2.  Reported by: Daniel Drown <dan-zebra@drown.org>
-       (ospf_lsa_has_link): LSA Length calculation fix.  Reported by:
-       Paul Jakma <paulj@alphyra.ie>.
-
-       * ospfd.c (ospf_if_update): Fix nextnode reference bug.  Reported
-       by: juris@mt.lv.
-
-2002-01-21  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * ospfd.c: Merge [zebra 11445] Masahiko ENDO's Opaque-LSA support.
-
-2001-08-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_interface.c (ospf_add_to_if): Use /32 address to register
-       OSPF interface information.
-       (ospf_delete_from_if): Likewise.
-
-       * ospf_zebra.c (ospf_interface_address_delete): Likewise.
-
-2001-08-23  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * ospf_zebra.c (ospf_redistribute_unset): When redistribute type
-       is OSPF, do not unset redistribute flag.
-
-2001-08-19  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.92a released.
-
-2001-08-15  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.92 released.
-
-2001-08-12  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * ospfd.c (ospf_config_write): auto-cost reference-bandwidth
-       configuration display.
-
-2001-07-24  David Watson <dwatson@eecs.umich.edu>
-
-       * ospf_spf.c (ospf_spf_next): Modify ospf_vertex_add_parent to
-       check for an existing link before connecting the parent and child.
-       ospf_nexthop_calculation is also modified to check for duplicate
-       entries when copying from the parent.  Finally, ospf_spf_next
-       removes duplicates when it merges two equal cost candidates.
-
-2001-07-23  itojun@iijlab.net
-
-       * ospfd.c (show_ip_ospf_neighbor): Check ospf_top before use it
-       [zebra 8549].
-
-2001-07-23  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * ospf_packet.c (ospf_write): Remove defined(__OpenBSD__) to make
-       it work on OpenBSD.
-
-2001-06-26  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_zebra.c (config_write_ospf_default_metric): Display
-       default-metric configuration.
-
-2001-06-18  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * ospf_ia.h (OSPF_EXAMINE_SUMMARIES_ALL): Remove old macros.
-
-2001-05-28  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * ospf_snmp.c (ospfIfEntry): Fix interface lookup bug to avoid
-       crush.
-       (ospfIfMetricEntry): Likewise.
-
-2001-03-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_packet.c (ospf_read): Fix typo.  Reported by: "Jen B
-       Lin'Kova" <jen@stack.net>.
-
-2001-03-15  Gleb Natapov <gleb@nbase.co.il>
-
-       * ospf_interface.c (ip_ospf_network): Set interface parameter.
-       (interface_config_write): Add check for OSPF_IFTYPE_LOOPBACK.
-
-       * ospf_zebra.c (ospf_interface_add): Set interface parameter.
-
-2001-02-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_packet.c (ospf_recv_packet): Solaris also need to add
-       (iph.ip_hl << 2) to iph.ip_len.
-
-2001-02-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospfd.h (OSPF_LS_REFRESH_TIME): Fix OSPF_LS_REFRESH_TIME value.
-       Suggested by: David Watson <dwatson@eecs.umich.edu>.
-
-       * ospf_zebra.c (zebra_init): Remove zebra node.
-
-       * ospfd.c (ospf_area_range_set): Function name is changed from
-       ospf_ara_range_cmd.
-       (ospf_area_range_unset): New function which separated from DEFUN.
-       New commands are added:
-       "no area A.B.C.D range A.B.C.D/M advertise"
-       "no area <0-4294967295> range A.B.C.D/M advertise"
-       "no area A.B.C.D range A.B.C.D/M not-advertise"
-       "no area <0-4294967295> range A.B.C.D/M not-advertise"
-       
-       * ospf_lsa.c (ospf_lsa_more_recent): Fix previous change.
-
-2001-02-08  Matthew Grant <grantma@anathoth.gen.nz>
-
-       * ospf_network.c (ospf_if_add_allspfrouters): Use
-       setsockopt_multicast_ipv4.
-       (ospf_if_drop_allspfrouters): Likewise.
-
-       * ospf_lsa.c (ospf_router_lsa_install): Add rt_recalc flag.
-       (ospf_network_lsa_install): Likewise.
-       (ospf_summary_lsa_install): Likewise.
-       (ospf_summary_asbr_lsa_install): Likewise.
-       (ospf_external_lsa_install): Likewise.
-       (ospf_lsa_install): Call ospf_lsa_different to check this LSA is
-       new one or not.
-
-2001-02-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_zebra.c (ospf_interface_delete): Do not free interface
-       structure when ospfd receive interface delete message to support
-       pseudo interface.
-
-2001-02-01  Dick Glasspool <dick@ipinfusion.com>
-
-       * ospfd.c (area_range_notadvertise): Change area range "suppress"
-       command to "not-advertise".
-
-       * ospfd.h (OSPF_LS_REFRESH_TIME): Change OSPF_LS_REFRESH_TIME from
-       1800 to 60.
-
-       * ospf_abr.c (ospf_abr_update_aggregate): When update_aggregate is
-       updating the area-range, the lowest cost is now saved.
-
-       * ospf_lsa.c (ospf_lsa_more_recent): Routing to compare sequence
-       numbers rather than creating overflow during calculation.
-
-2001-02-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.91 is released.
-
-2001-01-31  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_packet.c (ospf_db_desc_proc): Do not continue process when
-       NSM_SeqNumberMismatch is scheduled.
-       (ospf_ls_req): Free ls_upd when return from this function.
-       (ospf_ls_upd_timer): When update list is empty do not call
-       ospf_ls_upd_send().  Suggested by: endo@suri.co.jp (Masahiko
-       Endo).
-
-2001-01-26  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_lsa.c (ospf_maxage_flood): Flood LSA when it reaches
-       MaxAge.  RFC2328 Section 14.
-       (ospf_maxage_lsa_remover): Call above function during removing
-       MaxAge LSA.
-
-2001-01-26  Dick Glasspool <dick@ipinfusion.com>
-
-       * ospf_flood.c (ospf_flood_through_as): Function is updated for
-       NSSA Translations now done at ospf_abr.c with no change in P-bit.
-
-       * ospf_lsa.c (ospf_get_nssa_ip): Get 1st IP connection for Forward
-       Addr.
-       (ospf_install_flood_nssa):  Leave Type-7 LSA at Lock Count = 2. 
-
-       * ospf_ase.c (ospf_ase_calculate_route): Add debug codes.
-
-       * ospf_abr.c (ospf_abr_translate_nssa): Recalculate LSA checksum.
-
-       * ospf_packet.h (OSPF_SEND_PACKET_LOOP): Added for test packet.
-
-       * ospf_dump.c (ospf_lsa_type_msg): Add OSPF_GROUP_MEMBER_LSA and
-       OSPF_AS_NSSA_LSA.
-
-       * ospfd.c (data_injection): Function to inject LSA.  This is
-       debugging command.
-
-2001-01-11  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_route.c (ospf_route_match_same): Remove function.
-       (ospf_route_match_same_new): Renamed to ospf_route_match_same.
-
-       * ospf_zebra.c (ospf_interface_address_delete): Add check for
-       oi->address.  Suggested by Matthew Grant
-       <grantma@anathoth.gen.nz>.
-       (ospf_zebra_add): Remove function.
-       (ospf_zebra_add_multipath): Rename to ospf_zebra_add.
-
-       * ospf_interface.c: Remove HAVE_IF_PSEUDO part.
-
-       * ospf_zebra.c: Likewise.
-
-2001-01-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_ase.c: Remove OLD_RIB part.
-
-       * ospf_route.c: Likewise.
-
-       * zebra-0.90 is released.
-
-       * ospf_packet.c (ospf_recv_packet): Use ip_len adjestment code to
-       NetBSD.
-
-2001-01-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_route.c (ospf_route_delete): Use
-       ospf_zebra_delete_multipath.
-
-2001-01-09  Matthew Grant <grantma@anathoth.gen.nz>
-
-       * ospf_interface.c (ospf_if_cleanup): Function name is renamed
-       from ospf_if_free().  Rewrite whole procudure to support primary
-       address deletion.
-
-       * ospf_zebra.c (ospf_interface_address_delete): Add primary
-       address deletion process.
-
-2001-01-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_packet.c (ospf_recv_packet): OpenBSD has same ip_len
-       treatment like FreeBSD.
-
-2001-01-09  endo@suri.co.jp (Masahiko Endo)
-
-       * ospf_packet.c (ospf_recv_packet): FreeBSD kernel network code
-       strips IP header size from receiving IP Packet.  So we adjust
-       ip_len to whole IP packet size by adding IP header size.
-
-2001-01-08  endo@suri.co.jp (Masahiko Endo)
-
-       * ospf_network.c (ospf_serv_sock): When socket() is failed return
-       immediately.
-       (ospf_serv_sock): Close socket when it is not used.
-
-       * ospf_packet.c (ospf_write): Set sin_len when HAVE_SIN_LEN is
-       defined.
-       (ospf_write): When bind is fined, close sock.
-
-2001-01-07  Gleb Natapov <gleb@nbase.co.il>
-
-       * ospf_zebra.c (ospf_interface_state_up): Fixes coredump that
-       appears when you try to configure bandwidth on the ppp interface
-       that is not yet configured in ospfd.
-
-2001-01-07  Michael Rozhavsky <mrozhavsky@opticalaccess.com>
-
-       * ospf_route.c (show_ip_ospf_route_external): "show ip ospf route"
-       will print nexthops for AS-external routes.
-
-       * ospf_ase.c (ospf_ase_route_match_same): New function to compare
-       ASE route under multipath environment.
-       (ospf_ase_compare_tables): Likewise.
-
-2001-01-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospfd.h (OSPF_VTYSH_PATH): Change "/tmp/ospfd" to "/tmp/.ospfd".
-
-2000-12-28  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_route.c (ospf_route_install): Install multipath information
-       to zebra daemon.
-
-       * ospf_zebra.c (ospf_zebra_add_multipath): Function for passing
-       multipath information to zebra daemon.
-
-2000-12-25  Dick Glasspool <dick@ipinfusion.com>
-
-       * ospf_packet.c (ospf_write): Call ospf_packet_delete when sendto
-       fail.
-       (DISCARD_LSA): Add argument N for logging point of DISCARD_LSA is
-       called.
-
-       * ospf_lsa.c (ospf_external_lsa_refresh): NSSA install_flood will
-       leave Type-7 LSA at Lock Count = 2.
-
-       * ospf_flood.c (ospf_flood_through): Flood_though_as updated for
-       NSSA no P-bit off during Area flooding, but P-bit is turned off
-       for mulitple NSSA AS flooding.
-
-       * ospf_ase.c (ospf_ase_calculate_timer): Added calculations for
-       Type-7 LSDB.
-
-       * ospf_abr.c (ospf_abr_translate_nssa): Removed one unlock call.
-       (ospf_abr_announce_nssa_defaults): Corrected Debug from EVENT to
-       NSSA.
-
-2000-12-25  Michael Rozhavsky <mrozhavsky@opticalaccess.com>
-
-       * ospf_zebra.c (ospf_zebra_read_ipv4): Checking the age of the
-       found LSA and if the LSA is MAXAGE we should call refresh instead
-       of originate.
-
-2000-12-18  Dick Glasspool <dick@ipinfusion.com>
-                  
-       * ospf_abr.c: Removed redundant "...flood" in
-       announce_network_to_area().  Repaired nssa Unlock by using
-       discard.
-
-       * ospf_packet.c: Removed old NSSA translate during mk_ls_update.
-       
-       * ospfd.c: Free up all data bases including NSSA.
-
-       * ospf_lsa.c: Now allow removal of XLATE LSA's Check in
-       discard_callback. Added routine to get ip addr from within the
-       ifp.
-
-       * ospf_flood.c: Now set Forward Address for outgoing Type-7.
-
-       * ospf_lsa.h: Added prototype for the below. struct in_addr
-       ospf_get_ip_from_ifp (struct interface *ifp).
-
-2000-12-14  Gleb Natapov <gleb@nbase.co.il>
-
-       * ospf_packet.c (ospf_recv_packet): New OSPF pakcet read method.
-       Now maximum packet length may be 65535 bytes (maximum IP packet
-       length).
-
-       * ospf_interface.c (ospf_if_stream_set): Don't make input buffer.
-
-       * ospfd.c (config_write_network_area): Remove unnecessary area
-       lookup code.
-
-2000-12-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_packet.c (ospf_read): Accept packet bigger than MTU value.
-
-2000-12-13  Gleb Natapov <gleb@nbase.co.il>
-
-       * ospfd.c (config_write_network_area): Fix bug in
-       config_write_network_area function.
-
-2000-12-12  Gleb Natapov <gleb@nbase.co.il>
-
-       * ospf_abr.c (ospf_abr_announce_network_to_area): Make Summary
-       LSA's origination and refreshment as same as other type of LSA.
-
-       * ospf_lsa.c (ospf_summary_lsa_refresh): Return struct ospf_lsa *.
-
-       * ospf_lsa.c (ospf_summary_asbr_lsa_refresh): Likewise.
-
-2000-12-08  Dick Glasspool <dick@ipinfusion.com>
-
-       The bulk of NSSA changes are contained herein; This version will
-       require manual setting of "always" for NSSA Translator, and will
-       not perform aggregation yet.
-
-       * ospf_dump.c: "debug ospf nssa" is added.
-
-       * ospf_dump.h: Likewise.
-
-       * ospf_packet.c (ospf_hello): Display router ID on Bad NSSA Hello.
-
-       * ospfd.c: Discard_LSA to stay away from LOCAL_XLT Process NSSA
-       'never, candidate, always'.  Change "suppress" to "not-advertise".
-
-       * ospfd.h: Add TranslatorRole to struct ospf_area.  Add anyNSSA to
-       struct ospf.
-
-       * ospf_ase.c (ospf_ase_calculate_route): External to stay away
-       from LOCAL_XLT
-
-       * ospf_nsm.c (ospf_db_summary_add): External to stay away from
-       LOCAL_XLT
-
-       * ospf_abr.c: Major logic added for abr_nssa_task().  If ABR, and
-       NSSA translator, then do it.  Approve the global list, and flush
-       any unapproved.
-       
-       * ospf_lsa.h: New LSA flag OSPF_LSA_LOCAL_XLT to indicate that the
-       Type-5 resulted from a Local Type-7 translation; not used for
-       flooding, but used for flushing.
-
-       * ospf_flood.c: New NSSA flooding.
-
-2000-12-08  Michael Rozhavsky <mrozhavsky@opticalaccess.com>
-
-       * ospfd.c (ospf_find_vl_data): New function for looking up virtual
-       link data.
-       (ospf_vl_set_security): Virtual link configuration with
-       authentication.
-       (ospf_vl_set_timers): Set timers for virtual link.
-
-       * New commands are added.
-       "area A.B.C.D virtual-link A.B.C.D"
-       "area A.B.C.D virtual-link A.B.C.D hello-interval <1-65535> retransmit-interval <3-65535> transmit-delay <1-65535> dead-interval <1-65535>"
-       "area A.B.C.D virtual-link A.B.C.D hello-interval <1-65535> retransmit-interval <3-65535> transmit-delay <1-65535> dead-interval <1-65535> authentication-key AUTH_KEY"
-       "area A.B.C.D virtual-link A.B.C.D authentication-key AUTH_KEY"
-       "area A.B.C.D virtual-link A.B.C.D hello-interval <1-65535> retransmit-interval <3-65535> transmit-delay <1-65535> dead-interval <1-65535> message-digest-key <1-255> md5 KEY"
-       "area A.B.C.D virtual-link A.B.C.D message-digest-key <1-255> md5 KEY"
-
-       * ospf_packet.c (ospf_check_md5_digest): Add neighbor's
-       cryptographic sequence number treatment.
-       (ospf_check_auth): OSPF input buffer is added to argument.
-       (ospf_read): Save neighbor's cryptographic sequence number.
-
-       * ospf_nsm.c (nsm_change_status): Clear cryptographic sequence
-       number when neighbor status is changed to NSM down.
-
-       * ospf_neighbor.c (ospf_nbr_new): Set zero to crypt_seqnum.
-
-       * ospf_neighbor.h (struct ospf_neighbor): Add cryptographic
-       sequence number to neighbor structure.
-
-2000-11-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_snmp.c (ospfIfLookup): OSPF MIB updates.
-       (ospfExtLsdbEntry): Add OspfExtLsdbTable treatment.
-
-2000-11-28  Michael Rozhavsky <mrozhavsky@opticalaccess.com>
-
-       * ospfd.c (ospf_interface_down): Clear a ls_upd_queue queue of the
-       interface.
-       (ospf_ls_upd_queue_empty): New function to empty ls update queue
-       of the OSPF interface.
-       (no_router_ospf): 'no router ospf' unregister redistribution
-       requests from zebra.
-
-2000-11-28  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_ism.c (ism_change_status): Increment status change number.
-
-       * ospf_interface.h (struct ospf_interface): Add new member for
-       status change statistics.
-
-       * Makefile.am: Update dependencies.
-
-       * ospf_zebra.c (ospf_interface_add): OSPF SNMP interface update.
-       (ospf_interface_delete): OSPF SNMP interface delete.
-
-       * ospf_snmp.h: New file is added.
-
-2000-11-23  Dick Glasspool <dick@ipinfusion.com>
-
-       * ospfd.h: Add new ospf_area structure member for
-       NSSATranslatorRole and NSSATranslator state.
-
-       * ospfd.c: Provided for eventual commands to specify NSSA
-       elections for "translator- ALWAYS/NEVER/CANDIDATE". Provided for
-       decimal integer version of area-suppress.
-
-       * ospf_flood.c: Flood Type-7's only into NSSA (not AS).
-
-       * ospf_lsa.c: Undo some previous changes for NSSA.  If NSSA
-       translator, advertise Nt bit.
-
-       * ospf_route.c: 1st version of "sh ip os border-routers".
-
-2000-11-23  Michael Rozhavsky <mrozhavsky@opticalaccess.com>
-
-       * ospfd.c (area_vlink): Virtual link can not configured in stub
-       area.
-
-2000-11-23  Gleb Natapov <gleb@nbase.co.il>
-
-       * ospf_packet.c (ospf_db_desc): In states Loading and Full the
-       slave must resend its last Database Description packet in response
-       to duplicate Database Description packets received from the
-       master.  For this reason the slave must wait RouterDeadInterval
-       seconds before freeing the last Database Description packet.
-       Reception of a Database Description packet from the master after
-       this interval will generate a SeqNumberMismatch neighbor
-       event. RFC2328 Section 10.8
-       (ospf_make_db_desc): DD Master flag treatment.
-
-       * ospf_nsm.c (nsm_twoway_received): Move DD related procedure to
-       nsm_change_status().
-       (nsm_bad_ls_req): Likewise.
-       (nsm_adj_ok): Likewise.
-       (nsm_seq_number_mismatch): Likewise.
-       (nsm_oneway_received): Likewise.
-
-       * ospf_neighbor.h (struct ospf_neighbor): New structure member
-       last_send_ts for timestemp when last Database Description packet
-       was sent.
-
-       * ospf_nsm.c (ospf_db_desc_timer): Make it sure nbr->last_send is
-       there.  Call ospf_db_desc_resend() in any case.
-
-2000-11-16  Michael Rozhavsky <mrozhavsky@opticalaccess.com>
-
-       * ospf_lsa.c (lsa_link_broadcast_set): When there is no DR on
-       network (suppose you have only one router with interface priority
-       0). It's router LSA does not contain the link information about
-       this network.
-
-       * ospf_nsm.c (nsm_timer_set): When you change a priority of
-       interface from/to 0 ISM_NeighborChange event should be scheduled
-       in order to elect new DR/BDR on the network.
-
-       * ospf_interface.c (ip_ospf_priority): Likewise.
-
-       * ospf_flood.c (ospf_ls_retransmit_add): When we add some LSA into
-       retransmit list we need to check whether the present old LSA in
-       retransmit list is not more recent than the new
-       one.
-
-2000-11-09  Dick Glasspool <dick@ipinfusion.com>
-
-       * ospf_packet.c: Allows for NSSA Type-7 LSA's throughout the NSSA
-       area.  Any that exit the NSSA area are translated to type-5 LSA's.
-       The instantiated image is restored after translation.
-       (ospf_ls_upd_send_list): Renamed to ospf_ls_upd_queu_send().
-       (ospf_ls_upd_send): Old function which enclosed by #ifdef 0 is
-       removed.
-       (ospf_ls_ack_send): Likewise.
-
-       * ospf_flood.c: NSSA-LSA's without P-bit will be restricted to
-       local area.  Otherwise they are allowed out the area to be
-       translated by ospf_packet.c.
-
-       * ospf_lsa.c: Undo some previous changes for NSSA.
-
-       * ospf_lsdb.h: New access for type 7.
-
-2000-11-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_route.c (ospf_path_exist): New function to check nexthop
-       and interface are in current OSPF path or not.
-       (ospf_route_copy_nexthops_from_vertex): Add nexthop to OSPF path
-       when it is not there.  Reported by Michael Rozhavsky
-       <mrozhavsky@opticalaccess.com>
-
-2000-11-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_dump.c (config_write_debug): Add seventh string "detail" is
-       added for flag is OSPF_DEBUG_SEND | OSPF_DEBUG_RECV |
-       OSPF_DEBUG_DETAIL.
-
-2000-11-06   Michael Rozhavsky <mrozhavsky@opticalaccess.com>
-
-       * ospf_lsa.c (router_lsa_flags): ASBR can't exit in stub area.
-
-2000-11-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_lsa.c (ospf_router_lsa_originate): Reduce unconditional
-       logging.
-
-2000-11-06  Dick Glasspool <dick@ipinfusion.com>
-
-       * ospfd.h: Add ait_ntoa function prototype.
-
-       * ospfd.c (ait_ntoa): New function for displaying area ID and
-       Stub/NSSA status.
-       (show_ip_ospf_interface_sub): Use ait_ntoa.
-       (show_ip_ospf_nbr_static_detail_sub): Likewise.
-       (show_ip_ospf_neighbor_detail_sub): Likewise.
-
-       * ospf_route.c (ospf_intra_route_add): Set external routing type
-       to ospf route.
-       (ospf_intra_add_router): Likewise.
-       (ospf_intra_add_transit): Likewise.
-       (ospf_intra_add_stub): Likewise.
-       (ospf_add_discard_route): Likewise.
-       (show_ip_ospf_route_network): Use ait_ntoa.
-       (show_ip_ospf_route_network): Likewise.
-       (show_ip_ospf_route_router): Likewise.
-
-       * ospf_lsa.c (show_lsa_detail): Use ait_ntoa.
-       (show_lsa_detail_adv_router): Likewise.
-       (show_ip_ospf_database_summary): Likewise.
-
-       * ospf_route.h (struct route_standard): Add new member
-       external_routing.
-
-       * ospf_ia.c (process_summary_lsa): Set external routing tyep to ospf
-       route.
-       (ospf_update_network_route): Likewise.
-       (ospf_update_router_route): Likewise.
-
-2000-11-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_flood.c (ospf_process_self_originated_lsa): Enclose
-       OSPF_AS_NSSA_LSA treatment with #ifdef HAVE_NSSA.
-
-2000-11-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Unconditional logging is enclosed with if (IS_DEBUG_OSPF_EVENT).
-       Please specify "debug ospf event" for enable logging.
-
-       * ospf_ism.c: Do not extern debug flag varible.  It is done by
-       ospf_debug.h
-       * ospf_asbr.c: Likewise.
-       * ospf_lsa.c: Likewise.
-       * ospf_nsm.c: Likewise.
-       * ospf_zebra.c: Likewise.
-
-       * ospf_dump.c (debug_ospf_event): New command "debug ospf event"
-       is added.
-
-       * ospfd.c (router_ospf): Change logging from vty_out() to
-       zlog_info().
-       (ospf_area_stub_cmd): Likewise.
-
-       * ospf_dump.h: Extern term_debug flags.
-       (OSPF_DEBUG_EVENT): Add new flag.
-       (IS_DEBUG_OSPF_EVENT): Add new macro.
-
-2000-11-03  Dick Glasspool <dick@ipinfusion.com>
-
-       * ospf_flood.c (ospf_process_self_originated_lsa):
-       OSPF_AS_NSSA_LSA is treated as same as OSPF_AS_EXTERNAL_LSA.
-       (ospf_flood): Type-5's have no change.  Type-7's can be received,
-       and will Flood the AS as Type-5's They will also flood the local
-       NSSA Area as Type-7's.  The LSDB will be updated as Type-5's, and
-       during re-fresh will be converted back to Type-7's (if within an
-       NSSA).
-       (ospf_flood_through): Incoming Type-7's were allowed here if our
-       neighbor was an NSSA.  So Flood our area with the Type-7 and also
-       if we are an ABR, flood thru AS as Type-5.
-
-       * ospf_lsa.c (ospf_external_lsa_refresh): Flood NSSA both NSSA
-       area and other area.
-
-       * ospf_packet.c (ospf_db_desc_proc): When AS External LSA is
-       exists in DD packet, make it sure that this area is not stub.
-       (ospf_ls_upd_list_lsa): When LSA type is NSSA then set lsa's area
-       to NULL.
-       (ospf_ls_upd): If the LSA is AS External LSA and the area is stub
-       then discard the lsa.  If the LSA is NSSA LSA and the area is not
-       NSSA then discard the lsa.
-
-2000-11-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospfd.c (ospf_interface_run): Fix bug of Hello packet's option
-       is not properly set when interface comes up.
-
-2000-11-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospfd.h (OSPF_OPTION_O): Add new hello header option.
-
-2000-11-01  Dick Glasspool <dick@ipinfusion.com>
-
-       * ospf_lsa.h: Define OSPF_MAX_LSA to 8 when HAVE_NSSA is enabled.
-       (OSPF_GROUP_MEMBER_LSA): Define OSPF_GROUP_MEMBER_LSA.
-
-       * ospf_lsa.c (show_database_desc): Add "Group Membership LSA"
-       string.
-
-2000-10-31  Dick Glasspool <dick@ipinfusion.com>
-
-       * ospf_lsa.h (OSPF_AS_NSSA_LSA): Define OSPF_AS_NSSA_LSA.
-       
-       * ospf_lsa.c (show_ip_ospf_database): NSSA database display
-       function is added.  ALIASES which have "show ip ospf database
-       nssa-external" is added.
-       (show_ip_ospf_border_routers): New command "show ip ospf
-       border-routers" is added.
-
-2000-10-30  Dick Glasspool <dick@ipinfusion.com>
-
-       * ospfd.c (router_ospf): NSSA Enabled message is added for
-       testing.
-       (ospf_area_type_set): Are type set for NSSA area.
-       (ospf_area_stub_cmd): Special translation of no_summary into NSSA
-       and summary information. If NSSA is enabled pass the information
-       to ospf_area_type_set().
-       (area_nssa): New commands are added:
-       "area A.B.C.D nssa"
-       "area <0-4294967295> nssa"
-       "area A.B.C.D nssa no-summary"
-       "area <0-4294967295> nssa no-summary"
-       (ospf_no_area_stub_cmd): Special translation of no_summary into
-       NSSA and summary information.  If external_routing is
-       OSPF_AREA_NSSA unset area with ospf_area_type_set (area,
-       OSPF_AREA_DEFAULT).
-       (show_ip_ospf_area): Display NSSA status.
-       (config_write_ospf_area): Show NSSA configuration.
-
-       * ospf_packet.c (ospf_hello): For NSSA support, ensure that NP is
-       on and E is off.
-
-2000-10-26  Gleb Natapov <gleb@nbase.co.il>
-
-       * ospf_lsa.c (ospf_network_lsa_body_set): The network-LSA lists
-       those routers that are fully adjacent to the Designated Router;
-       each fully adjacent router is identified by its OSPF Router ID.
-       The Designated Router includes itself in this list. RFC2328,
-       Section 12.4.2.
-
-2000-10-23  Jochen Friedrich <jochen@scram.de>
-
-       * ospf_snmp.c: ospf_oid and ospfd_oid are used in smux_open after
-       it is registered.  So those variables must be static.
-
-2000-10-18  K N Sridhar <sridhar@euler.ece.iisc.ernet.in>
-
-       * ospfd.c: Add area_default_cost_decimal_cmd and
-       no_area_default_cost_decimal_cmd alias.
-
-2000-10-05  Gleb Natapov <gleb@nbase.co.il>
-
-       * ospfd.c (ospf_network_new): Fix setting area format.
-       (no_router_ospf): Check area existance when calling
-       ospf_interface_down().
-
-       * ospf_flood.c (ospf_external_info_check): Fix bug of refreshing
-       default route.
-
-2000-10-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.89 is released.
-
-2000-09-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_snmp.c (ospfHostEntry): OSPF Host MIB is implemented.
-
-       * ospfd.c (ospf_nbr_static_cmp): OSPF neighbor is sorted by it's
-       address.
-
-2000-09-28  Michael Rozhavsky  <mike@nbase.co.il>
-
-       * ospf_interface.c (ospf_if_free):  Fix deleting self neighbor twice.
-
-2000-09-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_packet.c (ospf_read): Solaris on x86 has ip_len with host
-       byte order.
-
-2000-09-25  Toshiaki Takada  <takada@zebra.org>
-
-       * ospfd.c (ospf_compatible_rfc1583), (no_ospf_compatible_rfc1583):
-       Add CISCO compatible command.
-
-2000-09-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_abr.c (ospf_area_range_lookup): New function is added for
-       area range lookup in OSPF-MIB.
-       (ospf_area_range_lookup_next): Likewise.
-
-2000-09-22  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospfd.c (no_router_ospf): Delete virtual link before deleting
-       area structure.
-
-       * ospf_lsa.c (ospf_external_lsa_refresh_type): Check
-       EXTERNAL_INFO(type).
-
-       * ospfd.c (no_router_ospf): Call ospf_vl_delete() instead of
-       ospf_vl_data_free().
-
-       * ospf_interface.c (ospf_vl_shutdown): Execute ISM_InterfaceDown
-       when ospf_vl_shutdown is called.
-       (ospf_vl_delete): Call ospf_vl_shutdown() to delete virtual link
-       interface's thread.
-
-2000-09-21  Gleb Natapov  <gleb@nbase.co.il>
-
-       * ospf_lsa.c: New implementation of OSPF refresh.
-
-2000-09-20  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_snmp.c (ospfLsdbLookup): Add LSDB MIB implementation.
-
-2000-09-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_snmp.c (ospfStubAreaEntry): Add OSPF stub area MIB.
-
-2000-09-18  Gleb Natapov  <gleb@nbase.co.il>
-
-       * ospf_route.h (route_standard):  Change member from `struct area'
-       to area_id.
-
-       * ospf_abr.c (ospf_abr_announce_network), (ospf_abr_should_announce),
-       (ospf_abr_process_network_rt), (ospf_abr_announce_rtr), 
-       (ospf_abr_process_router_rt):
-       * ospf_ase.c (ospf_find_asbr_route),
-       (ospf_find_asbr_router_through_area),
-       * ospf_ia.c (ospf_find_abr_route), (ospf_ia_router_route),
-       (process_summary_lsa), (ospf_update_network_route),
-       (ospf_update_router_route):
-       * ospf_route.c (ospf_intra_route_add), (ospf_intra_add_router),
-       (ospf_intra_add_transit), (ospf_intra_add_stub),
-       (ospf_route_table_dump), (show_ip_ospf_route_network),
-       (show_ip_ospf_route_router), (ospf_asbr_route_cmp),
-       (ospf_prune_unreachable_routers):
-       * ospf_spf.c (ospf_rtrs_print):
-       * ospfd.c (ospf_rtrs_free):  Fix the struct change above.
-
-2000-09-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_network.c (ospf_serv_sock_init): Enclose SO_BINDTODEVICE
-       with ifdef.
-
-2000-09-13  Gleb Natapov  <gleb@nbase.co.il>
-
-       * ospf_ism.c (ospf_elect_dr), (ospf_elect_bdr):  Fix DR election.
-
-       * ospf_network.c (ospf_serv_sock_init):  Add socket option
-       SO_BINDTODEVICE on read socket.
-
-       * ospf_packet.c (ospf_hello):  Ignore Hello packet if E-bit does
-       not match.
-
-       * ospfd.c (ospf_area_check_free), (ospf_area_get),
-       (ospf_area_add_if):  New function added.
-       
-2000-09-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_route.c (ospf_intra_add_router): Update ABR and ASBR router
-       count.
-
-       * ospf_spf.c (ospf_spf_init): Rest ABR and ASBR router count
-       starting SPF calculation.
-
-       * ospfd.h (struct ospf_area): Add ABR and ASBR router count.
-
-2000-09-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospfd.c (ospf_area_id_cmp): New area structure is sorted by area
-       ID.
-
-       * ospf_lsa.c (ospf_router_lsa_originate): For OSPF MIB update
-       lsa_originate_count.
-       (ospf_network_lsa_originate): Likewise.
-       (ospf_summary_lsa_originate): Likewise.
-       (ospf_summary_asbr_lsa_originate): Likewise.
-       (ospf_external_lsa_originate): Likewise.
-
-2000-09-11  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_snmp.c (ospf_variables): ospfRouterID's type RouterID
-       syntax is IpAddress.
-       (ospf_admin_stat): New function for OSPF administrative status
-       check.
-
-2000-09-10  Jochen Friedrich <jochen@scram.de>
-
-       * ospf_snmp.c: Implement OSPF MIB skeleton.
-
-2000-09-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_snmp.c: New file is added.
-
-2000-09-07  David Lipovkov <davidl@nbase.co.il>
-
-       * ospf_zebra.c (ospf_interface_delete): Add pseudo interface
-       treatment.
-
-       * ospf_interface.c (interface_config_write): Likewise.
-
-2000-08-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.88 is released.
-
-2000-08-17  Michael Rozhavsky  <mike@nbase.co.il>
-
-       * ospfd.c (ospf_area_free):  Remove virtual link configuration only
-       when Area is removed.
-
-2000-08-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospfd.c (network_area): Revert check for EXTERNAL_INFO
-       (ZEBRA_ROUTE_CONNECT).
-       (no_network_area): Likewise.
-
-2000-08-16  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospfd.h (struct ospf): Add distance_table and
-       distance_{all,intra,inter,external}.
-
-       * ospf_zebra.c: Add OSPF distance related functions.
-
-2000-08-15  Gleb Natapov  <gleb@nbase.co.il>
-
-       * ospf_asbr.c (ospf_external_info_find_lsa):  New function added.
-
-       * ospf_lsa.c (ospf_default_external_info),
-       (ospf_default_originate_timer), (ospf_external_lsa_refresh_default):
-       New function added.
-
-       * ospf_zebra.c
-       (ospf_default_information_originate_metric_type_routemap),
-       (ospf_default_information_originate_always_metric_type_routemap):
-       Change name and add route-map function.
-       (ospf_default_information_originate_metric_routemap),
-       (ospf_default_information_originate_routemap),
-       (ospf_default_information_originate_type_metric_routemap):
-       New DEFUN added.
-
-2000-08-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_zebra.c (zebra_interface_if_set_value): Change ifindex
-       restore size from two octet to four.
-
-2000-08-14  Michael Rozhavsky  <mike@nbase.co.il>
-
-       * ospf_ase.c (ospf_ase_incremental_update):  Implement incremental
-       AS-external-LSA in 16.6 of RFC2328.
-
-2000-08-14  Matthew Grant  <grantma@anathoth.gen.nz>
-
-       * ospf_interface.c (ospf_if_get_output_cost):  Change cost
-       calculation algorithm.
-
-       * ospf_packet (ospf_ls_upd):  Fix problem of LSA retransmitting.
-
-2000-08-11  Michael Rozhavsky  <mike@nbase.co.il>
-
-       * ospf_lsa.c (ospf_maxage_lsa_remover):  Fix maxage remover for
-       AS-external-LSAs.
-
-2000-08-10  Toshiaki Takada  <takada@zebra.org>
-
-       * ospfd.c (auto_cost_reference_bandwidth):  New DEFUN added.
-       `auto-cost reference-bandwidth' OSPF router command added.
-
-2000-08-08  Gleb Natapov  <gleb@nbase.co.il>
-
-       * ospf_routemap.c (ospf_route_map_update):  New function added.
-       Add route-map event hook.
-
-2000-08-08  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_zebra.c (ospf_distribute_check_connected):  If redistribute
-       prefix is connected route on OSPF enabled interface, suppress to
-       announce it.
-
-2000-08-08  Matthew Grant  <grantma@anathoth.gen.nz>
-
-       * ospf_interface.c (ospf_if_get_output_cost):
-       New function added.  Handle bandwidth parameter for cost
-       calculation.
-
-2000-08-08  Michael Rozhavsky  <mike@nbase.co.il>
-
-       * ospf_interface.c (interface_config_write):  Show interface
-       configuration regardless interface is down.
-
-       * ospf_ase.c (ospf_ase_caocluate_route):  Whole rewritten external
-       route calculate function.
-
-2000-08-08  Gleb Natapov  <gleb@nbase.co.il>
-
-       * ospf_routemap.c:  New file added.
-
-       * ospf_asbr.c (ospf_reset_route_map_set_values),
-       (ospf_route_map_set_compare):  New function added.
-
-       * ospf_lsa.c (ospf_external_lsa_body_set):  Set routemap metric
-       with AS-external-LSA.
-
-2000-08-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_ase.c (ospf_ase_calculate_route_add): Pass new->cost to
-       ospf_zebra_add as metric.
-       (ospf_ase_calculate_route_add): Likewise.
-
-       * ospf_route.c (ospf_route_install): Pass or->cost to
-       ospf_zebra_add as metric.
-
-       * ospf_zebra.c (ospf_zebra_add): Add metric arguemnt.
-       (ospf_zebra_delete): Likewise.
-
-2000-08-03  Matthew Grant  <grantma@anathoth.gen.nz>
-
-       * ospf_flood.c (ospf_flood_delayed_lsa_ack):  New function added.
-       Dispatch delayed-ACK with flooding AS-external-LSA across virtual
-       link.
-
-2000-07-31  Matthew Grant  <grantma@anathoth.gen.nz>
-
-       * ospfd.c (show_ip_ospf_area):  Fix lack of VTY_NEWLINE when
-       `show ip ospf'.
-
-       * ospf_interface.c (ospf_if_free):  Fix bug of crash with
-       Point-to-Point interface.
-
-2000-07-27  Michael Rozhavsky  <mike@nbase.co.il>
-
-       * ospf_flood.c (ospf_process_self_originated_lsa):
-       Make sure to clear LSA->param (redistributed external information)
-       before refreshment.
-
-2000-07-27  Gleb Natapov  <gleb@nbase.co.il>
-
-       * ospfd.c (refresh_group_limit), (refresh_per_slice),
-       (refresh_age_diff):  New defun added.  Refresher related parameter
-       can be configurable.
-
-2000-07-27  Akihiro Mizutani  <mizutani@dml.com>
-
-       * ospf_interface.c (interface_config_write):  Print `description'
-       config directive to work.
-
-2000-07-24  Akihiro Mizutani  <mizutani@dml.com>
-
-       * ospf_interface.c (ospf_if_init): Use install_default for
-       INTERFACE_NODE.
-
-2000-07-24  Gleb Natapov  <gleb@nbase.co.il>
-       
-       * ospf_packet.c (ospf_ls_upd_send_list), (ospf_ls_upd_send_event),
-       (ospf_ls_ack_send_list), (ospf_ls_ack_send_event): New function added.
-       This make sending always as many LS update/Ack combined in one ospf
-       packet.
-
-2000-07-24  Gleb Natapov  <gleb@nbase.co.il>
-
-       * ospf_packet.c (ospf_ls_upd_list_lsa):  Set NULL to lsa->area if 
-       LSA is AS-external-LSA.
-
-       * ospf_nsm.c (nsm_reset_nbr):  Do not cancel Inactivity timer.
-
-2000-07-21  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_zebra.c (ospf_default_originate_timer):  Set timer for
-       `default-information originate'.  Fix some default originate
-       related functions.
-
-2000-07-12  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_lsa.c (stream_put_ospf_metric):  New function added.
-
-2000-07-12  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_lsa.c (show_ip_ospf_database_router),
-       (show_ip_ospf_database_network), (show_ip_ospf_database_summary),
-       (show_ip_ospf_database_summary_asbr), (show_ip_ospf_database_externel),
-       (show_router_lsa), (show_any_lsa), (show_router_lsa_self),
-       (show_any_lsa_self):  Functions removed.
-
-       (show_lsa_prefix_set), (show_lsa_detail_proc), (show_lsa_detail),
-       (show_lsa_detail_adv_router_proc), (show_lsa_detail_adv_router):
-       New functions added.  Replace above functions.
-
-       (show_ip_ospf_database_all), (show_ip_ospf_database_self_originated):
-       Functions removed.
-       (show_ip_ospf_database_summary):  New functions added.  Replace
-       above functions.
-
-       (show_ip_ospf_database_cmd):  DEFUN rearranged.
-       (show_ip_ospf_database_type_id_cmd),
-       (show_ip_ospf_database_type_id_adv_router_cmd),
-       (show_ip_ospf_database_type_is_self_cmd):  New ALIASes added.
-       (show_ip_ospf_database_type_adv_rotuer_cmd):  New DEFUN added.
-       (show_ip_ospf_database_type_self_cmd):  New ALIAS added.
-
-2000-07-11  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_asbr.c (ospf_external_info_new),
-       (ospf_external_info_free):  New functions added.
-
-       * ospf_lsa.h (ospf_lsa):  Add new member `void *param' to set
-       origination parameter for external-LSA.
-       Remove member `redistribute'.
-
-       * ospf_zebra.c (ospf_redistirbute_set):  When `redistribute'
-       command executed, metric and metric-type values are overridden.
-       If one of those is changed refresh AS-external-LSAs for appropriate
-       type.
-
-2000-07-11  Michael Rozhavsky  <mike@nbase.co.il>
-
-       * ospf_lsa.c (ospf_summary_lsa_refresh),
-       (ospf_summary_asbr_lsa_refresh):  Make sure to refresh summary-LSAs.
-
-       * ospf_abr.c (set_metric):  New function added.
-
-2000-07-07  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_zebra.c (ospf_default_information_originate_metric_type),
-       (ospf_default_information_originate_type_metric):  New defun added.
-       Metic and Metric type can be set to default route.
-       (ospf_default_information_originate_always_metric_type):
-       (ospf_default_information_originate_always_type_metric):
-       New defun added.  Metric and Metric type can be set to default
-       always route.
-       
-       * ospf_zebra.c (ospf_default_metric), (no_ospf_default_metric):
-       New defun added.
-
-2000-07-06  Gleb Natapov  <gleb@nbase.co.il>
-
-       * ospf_flood.c (ospf_flood_through_area):  Fix bug of considering
-       on the same interface the LSA was received from.
-
-2000-07-06  Michael Rozhavsky  <mike@nbase.co.il>
-
-       * ospfd.c (ospf_config_write):  Fix bug of printing `area stub'
-       command with `write mem'.
-
-       * ospfd.c (no_router_ospf):  Remove installed routes from zebra.
-
-       * ospf_zebra.c (ospf_interface_delete):  Fix function to handle
-       zebra interface delete event.
-
-2000-07-06  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_zebra.c (ospf_default_information_originate),
-       (ospf_default_information_originate_always):  New DEFUN added.
-
-2000-07-05  Michael Rozhavsky  <mike@nbase.co.il>
-
-       * ospf_route.c (ospf_terminate):  Make sure to remove external route
-       when SIGINT received.
-
-2000-07-03  Gleb Natapov  <gleb@nbase.co.il>
-
-       * ospf_flood.c, ospf_ism.c, ospf_lsa,c, ospfd.c:  Make sure to free
-       many structure with `no router ospf'.
-
-2000-06-30  Gleb Natapov  <gleb@nbase.co.il>
-
-       * ospf_neighbor.c (ospf_nbr_new),
-       ospf_nsm.c (nsm_timer_set):  Start LS update timer only
-       when neighbor enters Exchange state.
-
-2000-06-29  Gleb Natapov  <gleb@nbase.co.il>
-
-       * ospf_nsm.c (nsm_timer_set), (nsm_exchange_done),
-       ospf_packet.c (ospf_db_desc_proc):
-       Do not cancel DD retransmit timer when Master.
-
-2000-06-29  Gleb Natapov  <gleb@nbase.co.il>
-
-       * ospf_abr.c (ospf_abr_announce_network_to_area),
-       (ospf_abr_announce_rtr_to_area)
-       ospf_ase.c (ospf_ase_rtrs_register_lsa),
-       ospf_flood.c (ospf_process_self_originated_lsa),
-       (ospf_flood_through_area), (ospf_ls_request_delete),
-       ospf_interface.c (ospf_if_free),
-       ospf_ism.c (ism_change_status),
-       ospf_lsa.c (ospf_router_lsa_update_timer),
-       (ospf_router_lsa_install), (ospf_network_lsa_install),
-       (ospf_lsa_maxage_delete), (ospf_lsa_action),
-       (ospf_schedule_lsa_flood_area),
-       ospf_nsm.c (nsm_change_status),
-       ospf_packet.c (ospf_make_ls_req_func), (ospf_make_ls_ack):
-       Use ospf_lsa_{lock,unlock} for all looking-up of LSA.
-
-       * ospf_flood.c (ospf_ls_request_free):  Function deleted.
-
-       * ospf_lsa.c (ospf_discard_from_db):  New function added.
-
-2000-06-26  Toshiaki Takada  <takada@zebra.org>
-
-       * ospfd.h (ospf): struct member `external_lsa' name changed to
-       `lsdb'.
-
-2000-06-26  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_lsa.c (ospf_lsa_install), (ospf_router_lsa_install),
-       (ospf_network_lsa_install), (ospf_summary_lsa_install),
-       (ospf_summary_asbr_lsa_install), (ospf_external_lsa_install):
-       Functions re-arranged.
-
-       * ospf_lsa.c (IS_LSA_MAXAGE), (IS_LSA_SELF):  Macro added.
-       
-2000-06-20  Michael Rozhavsky <mike@nbase.co.il>
-
-       * ospf_packet.c (ospf_ls_req), (ospf_ls_upd), (ospf_ls_ack):  Add
-       verification of LS type.
-
-2000-06-20  Gleb Natapov  <gleb@nbase.co.il>
-
-       * ospf_ase.c (ospf_ase_calculate_timer):  Add more sanity check
-       whether rn->info is NULL.
-
-2000-06-20  Toshiaki Takada  <takada@zebra.org>
-
-       * ospfd.c (show_ip_ospf_interface_sub):  Show Router-ID of both
-       DR and Backup correctly with `show ip ospf interface' command.
-
-2000-06-20  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_lsa.c (ospf_lsa_lock), (ospf_lsa_unlock),
-       (ospf_lsa_discard):  These functions are used for avoiding
-       unexpected reference to freed LSAs.
-
-2000-06-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_packet.c (ospf_ls_upd): Initialize lsa by NULL to avoid
-       warning.
-
-2000-06-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_ase.h (ospf_ase_rtrs_register_lsa): Add prototype.
-
-2000-06-12  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_lsa.c (ospf_external_lsa_install):  Make sure to register
-       LSA to rtrs_external when replacing AS-external-LSAs in LSDB.
-       Fix core dump.
-
-2000-06-10  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_lsdb.c (id_to_prefix), (ospf_lsdb_hash_key),
-       (ospf_lsdb_hash_cmp), (ospf_lsdb_new), (ospf_lsdb_iterator),
-       (lsdb_free), (ospf_lsdb_free), (ospf_lsdb_add), (ospf_lsdb_delete),
-       (find_lsa), (ospf_lsdb_lookup), (find_by_id),
-       (ospf_lsdb_lookup_by_id), (ospf_lsdb_lookup_by_header):  Functinos
-       removed for migration to new_lsdb.
-
-       * ospf_lsa.c (ospf_summary_lsa_install),
-       (ospf_summary_asbr_lsa_install), (ospf_maxage_lsa_remover),
-       (ospf_lsa_maxage_walker), (ospf_lsa_lookup),
-       (ospf_lsa_lookup_by_id):  Use new_lsdb instead of ospf_lsdb.
-       (count_lsa), (ospf_lsa_count_table), (ospf_lsa_count),
-       (ospf_get_free_id_for_prefix):  Funcitions removed.
-       
-2000-06-09  Gleb Natapov  <gleb@nbase.co.il>
-
-       * ospf_ism.c (ism_interface_down):  Prevent some unneeded DR changes.
-
-       * ospf_packet.c (ospf_db_desc_proc):  Fix memory leak.
-       (ospf_hello):  Always copy router-ID when hello is received.
-
-2000-06-08  Gleb Natapov  <gleb@nbase.co.il>
-
-       * ospf_lsa.h (struct ospf_lsa): Add member of pointer to struct
-       ospf_area.
-
-2000-06-08  Michael Rozhavsky <mike@nbase.co.il>
-
-       * ospf_ase.c (ospf_asbr_route_same):  New function added.
-       This function makes sure external route calculation more 
-       precisely.
-
-2000-06-07  Michael Rozhavsky <mike@nbase.co.il>
-
-       * ospf_ism.c (ism_change_status):  Use ospf_lsa_flush_area for
-       network-LSA deletion instead of using ospf_lsdb_delete.
-       Also cancel network-LSA origination timer.
-
-2000-06-07  Levi Harper  <lharper@kennedytech.com>
-
-       * ospf_interface.c (ospf_if_down): Close read fd when an interface
-       goes down.
-
-2000-06-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_asbr.c (ospf_external_info_lookup): Add explicit brace for
-       avoid ambiguous else.
-
-       * ospf_flood.c (ospf_external_info_check): Likewise.
-
-2000-06-05  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_nsm.c (nsm_adj_ok):  Fix bug of DR election.
-
-2000-06-04  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_zebra.c (ospf_default_information_originate),
-       (no_ospf_default_information_originate):  New DEFUN added.
-
-2000-06-03  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_lsa.h, ospf_asbr.h (external_info):  Struct moved from
-       ospf_lsa.h to ospf_asbr.h.
-
-       * ospf_lsa.c, ospf_asbr.c (ospf_external_info_add),
-       (ospf_external_info_delete):  Function moved from ospf_lsa.c
-       to ospf_asbr.c.
-
-2000-06-03  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_flood.c (ospf_external_info_check):  New function added.
-       (ospf_process_self_orignated_lsa):  Make sure to flush
-       self-originated AS-external-LSA, when router reboot and no longer
-       originate those AS-external-LSA.
-
-2000-06-02  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_network.c (ospf_serv_sock):  Remove SO_DONTROUTE
-       socket option.
-
-       * ospf_packet.c (ospf_write):  Set MSG_DONTROUTE flag for
-       unicast destination packets.
-
-2000-06-02  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_lsdb.c (new_lsdb_delete):  Delete entry from LSDB only when
-       specified LSA matches.
-
-2000-06-02  Gleb Natapov  <gleb@nbase.co.il>
-
-       * ospf_network.c (ospf_serv_sock):  Set SO_DONTROUTE
-       socket option.
-
-2000-06-01  Akihiro Mizutani  <mizutani@dml.com>
-
-       * ospf_dump.c:  Replace string `Debugging functions\n' with DEBUG_STR.
-       Replace string `OSPF information\n' with OSPF_STR.
-
-2000-06-01  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_lsdb.[ch]:  Use new_lsdb struct for network-LSA instead of
-       ospf_lsdb.
-
-2000-06-01  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_dump.c (config_debug_ospf_packet), (config_debug_ospf_event),
-       (config_debug_ospf_ism), (config_debug_ospf_nsm),
-       (config_debug_ospf_lsa), (config_debug_ospf_zebra),
-       (term_debug_ospf_packet), (term_debug_ospf_event),
-       (term_debug_ospf_ism), (term_debug_ospf_nsm),
-       (term_debug_ospf_lsa), (term_debug_ospf_zebra):  Repalce debug_ospf_*
-       variable to use for debug option flags.
-       
-       (debug_ospf_packet), (debug_ospf_ism), (debug_ospf_nsm),
-       (debug_ospf_lsa), (debug_ospf_zebra):  Set {config,term}_debug_*
-       flags when vty->node is CONFIG_NODE, otherwise set only term_debug_*
-       flags.
-
-       * ospf_dump.h (CONF_DEBUG_PACKET_ON), (CONF_DEBUG_PACKET_OFF),
-       (TERM_DEBUG_PACKET_ON), (TERM_DEBUG_PACKET_OFF),
-       (CONF_DEBUG_ON), (CONF_DEBUG_OFF), (IS_CONF_DEBUG_OSPF_PACKET),
-       (IS_CONF_DEBUG_OSPF):  New Macro added.
-       
-2000-05-31  Toshiaki Takada  <takada@zebra.org>
-
-       * ospfd.c (clear_ip_ospf_neighbor):  New DEFUN added.
-       Currently this command is used for only debugging.
-
-       * ospf_nsm.c (nsm_change_status):  Make sure thread cancellation
-       for network-LSA when DR has no full neighbors.
-       
-       * ospf_nsm.c (ospf_db_summary_clear):  New function added.
-
-2000-05-30  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_lsdb.c (new_lsdb_insert):  LSAs are always freed by
-       maxage_lsa_remover when LSA is replaced.
-
-2000-05-25  Gleb Natapov  <gleb@nbase.co.il>
-
-       * ospf_flood.c (ospf_ls_retransmit_delete_nbr_all):  Add argument
-       `struct ospf_area' to remove LSA from Link State retransmission list
-       of neighbor from only one Area.
-
-2000-05-24  Michael Rozhavsky  <mike@nbase.co.il>
-
-       * ospf_lsdb.c (ospf_lsdb_add):  Preserve flags field when
-       overriting old LSA with new LSA.
-
-2000-05-24  Gleb Natapov  <gleb@nbase.co.il>
-
-       * ospf_lsa.c (ospf_router_lsa_body_set):  Fix bug of router-LSA
-       size calculation.
-
-2000-05-22  Michael Rozhavsky  <mike@nbase.co.il>
-
-       * ospf_route.c (ospf_intra_add_stub):
-       * ospf_spf.h (struct vertex):  Use u_int32_t for distance (cost)
-       value instead of u_int16_t.
-
-2000-05-22  Axel Gerlach <agerlach@datus.datus.com>
-
-       * ospf_ia.c (ospf_ia_network_route):  Fix bug of Inter-area route
-       equal cost path calculation.
-
-2000-05-21  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_ase.c (ospf_ase_calculate_route_delete):  New function added.
-       Make sure, when rotuer route is deleted, related external routes
-       are also deleted.
-
-2000-05-20  Toshiaki Takada  <takada@zebra.org>
-
-       * ospfd.c (ospf_interface_down):  Make sure interface flag is disable
-       and set fd to -1.
-
-2000-05-16  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_asbr.c (ospf_asbr_should_announce), (ospf_asbr_route_remove):
-       Functions removed.
-
-       * ospfd.h (EXTERNAL_INFO):  Macro added.
-       Substitute `ospf_top->external_info[type]' with it.
-
-2000-05-16  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_lsa.c (ospf_rtrs_external_remove):  New function added.
-
-2000-05-14  Gleb Natapov <gleb@nbase.co.il>
-
-       * ospf_flood.c (ospf_ls_retransmit_delete_nbr_all)
-       * ospf_lsdb.c (new_lsdb_insert)
-       * ospf_packet.c (ospf_ls_ack):  Fix database synchonization problem.
-
-2000-05-14  Gleb Natapov <gleb@nbase.co.il>
-
-       * ospf_lsa.h (tv_adjust), (tv_ceil), (tv_floor), (int2tv),
-       (tv_add), (tv_sub), (tv_cmp):  Prototype definition added.
-
-       * ospf_nsm.h (ospf_db_summary_delete_all):  Prototype definition added.
-
-2000-05-13  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_lsa.[ch] (ospf_lsa):  struct timestamp type is changed from
-       time_t to struct timeval.
-       (tv_adjust), (tv_ceil), (tv_floor), (int2tv), (tv_add),
-       (tv_sub), (tv_cmp):  timeval utillity functions added.
-
-2000-05-12  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_lsa.[ch] (ospf_schedule_update_router_lsas):  Delete function.
-       Change to use macro OSPF_LSA_UPDATE_TIMER instead of using
-       this function.
-       router-LSA refresh timer related stuff is re-organized.
-
-2000-05-10  Gleb Natapov  <gleb@nbase.co.il>
-
-       * ospf_interface.c (ospf_vl_set_params):
-       * ospf_packet.c (ospf_check_network_mask):
-       * ospf_spf.[ch] (ospf_spf_next):
-       Remove field address from `struct vertex', and search for peer
-       address of virtual link in function `ospf_vl_set_params' instead.
-
-2000-05-10  Gleb Natapov  <gleb@nbase.co.il>
-
-       * ospf_packet.c (ospf_ls_upd):  Fix some memory leak related LSA.
-
-2000-05-08  Thomas Molkenbur  <tmo@datus.com>
-
-       * ospf_packet.c (ospf_packet_dup):  Replace ospf_steram_copy()
-       with ospf_stream_dup() to fix memory leak.
-
-2000-05-08  Michael Rozhavsky  <mike@nbase.co.il>
-
-       * ospf_flood.c (ospf_flood_through_area):  Fix the problem of
-       LSA update without DROther.
-
-2000-05-04  Gleb Natapov  <gleb@nbase.co.il>
-
-       * ospf_spf.c (ospf_vertex_free):  Fix memory leak of SPF calculation.
-
-2000-05-03  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_neighbor.c (ospf_db_summary_add):  Use new_lsdb struct
-       instead linked-list.
-       (ospf_db_summary_count), (ospf_db_summary_isempty):
-       New function added.
-
-       * ospf_lsa.c (ospf_rotuer_lsa):  Re-arrange and divide functions.
-
-2000-05-02  Gleb Natapov  <gleb@nbase.co.il>
-
-       * ospf_lsdb.c (new_lsdb_cleanup):  Fix memory leak.  When LSDB are
-       not needed any more, then free them.
-
-2000-05-02  Toshiaki Takada  <takada@zebra.org>
-
-       * ospfd.c (timers_spf), (no_timers_spf):  New defun added.
-       SPF calculation timers related stuff is rearranged.
-
-       * ospf_spf.c (ospf_spf_calculate_timer_add):  Function removed.
-       SPF timer is scheduled by SPF calculation delay and holdtime
-       configuration variable.
-
-       * ospf_lsa.c (ospf_external_lsa_nexthop_get):  Set AS-external-LSA's
-       forwarding address when nexthop learned by other protocols is
-       in the OSPF domain. 
-
-       * ospf_zebra.c (ospf_redistribute_source_metric_type),
-       (ospf_redistribute_source_type_metric):  Re-arrange DEFUNs and
-       ALIASes.
-
-2000-05-01  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_flood.c (ospf_ls_retransmit_count),
-       (ospf_ls_retransmit_isempty):  New function added.
-
-       (ospf_ls_retransmit_add), (ospf_ls_retransmit_delete),
-       (ospf_ls_retransmit_clear), (ospf_ls_retransmit_lookup),
-       (ospf_ls_retransmit_delete_all), (ospf_ls_retransmit_delete_nbr_all),
-       (ospf_ls_retransmit_add_nbr_all):  Replace these functions to use
-       new_lsdb.
-
-2000-04-29  Toshiaki Takada  <takada@zebra.org>
-
-       * ospfd.c (no_network_area):  Add check Area-ID whether specified
-       Area-ID with prefix matches config.
-
-2000-04-27  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_lsa.c (ospf_maxage_lsa_remover): Fix problem of
-       remaining withdrawn routes on zebra.
-
-2000-04-25  Michael Rozhavsky  <mike@nbase.co.il>
-
-       * ospf_nsm.c (nsm_kill_nbr), (nsm_ll_down), (nsm_change_status),
-       (ospf_nsm_event):  Fix network-LSA re-origination problem.
-
-2000-04-24  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_nsm.c (ospf_db_desc_timer): Fix bug of segmentation fault
-       with DD retransmission.
-
-       * ospf_nsm.c (nsm_kill_nbr): Fix bug of re-origination when
-       a neighbor disappears.
-
-2000-04-23  Michael Rozhavsky  <mike@nbase.co.il>
-
-       * ospf_abr.c (ospf_abr_announce_network_to_area):  Fix bug of
-       summary-LSAs reorigination.  Correctly copy OSPF_LSA_APPROVED
-       flag to new LSA. when summary-LSA is reoriginatd.
-
-       * ospf_flood.c (ospf_flood_through_area):  Fix bug of flooding
-       procedure.  Change the condition of interface selection.
-
-2000-04-21  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_lsa.c (ospf_refresher_register_lsa): Fix bug of refresh never
-       occurs.
-
-       * ospfd.c (show_ip_ospf_neighbor_id): New defun added.
-       `show ip ospf neighbor' related commands are re-arranged.
-
-2000-04-20  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_dump.c (debug_ospf_zebra): New defun added.
-       Suppress zebra related debug information.
-
-2000-04-19  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_zebra.c (ospf_distribute_list_update_timer),
-       (ospf_distribute_list_update), (ospf_filter_update):
-       New function added.  Re-organize `distribute-list' router ospf
-       command.
-
-2000-04-13  Michael Rozhavsky  <mike@nbase.co.il>
-
-       * ospf_packet.c (ospf_make_ls_upd): Add check for MAX_AGE.
-
-2000-04-14  Michael Rozhavsky  <mike@nbase.co.il>
-
-       * ospf_packet.c (ospf_make_ls_upd): Increment LS age by configured 
-       interface transmit_delay.
-
-2000-04-14  Sira Panduranga Rao  <pandu@euler.ece.iisc.ernet.in>
-
-       * ospf_interface.c (ip_ospf_cost), (no_ip_ospf_cost):
-       Add to schedule router_lsa origination when the interface cost changes.
-
-2000-04-12  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_lsa.c (ospf_refresher_register_lsa),
-       (ospf_refresher_unregister_lsa): Fix bug of core dumped.
-
-       * ospfd.c (no_router_ospf): Fix bug of core dumped.
-
-2000-03-29  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_nsm.c (nsm_oneway_received): Fix bug of MS flag unset.
-
-2000-03-29  Michael Rozhavsky <mike@nbase.co.il>
-
-       * ospf_lsa.c (ospf_network_lsa):
-       * ospf_nsm.c (ospf_nsm_event): Fix bug of Network-LSA originated
-       in stub network.
-
-2000-03-28  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_nsm.c (nsm_bad_ls_req), (nsm_seq_number_mismatch),
-       (nsm_oneway_received): Fix bug of NSM state flapping between
-       ExStart and Exchange.
-
-2000-03-28  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_packet.h (strcut ospf_header): Fix the size of ospf_header,
-       change u_int8_t to u_char.
-
-2000-03-27  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_lsa.c (ospf_lsa_checksum): Take care of BIGENDIAN architecture.
-
-2000-03-27  Toshiaki Takada  <takada@zebra.org>
-
-       * ospfd.c (ospf_interface_run): Make sure Address family matches.
-
-2000-03-26  Love <lha@s3.kth.se>
-
-       * ospf_packet.c (ospf_write): Chack result of sendto().
-
-2000-03-26  Sira Panduranga Rao  <pandu@euler.ece.iisc.ernet.in>
-
-       * ospf_nsm.c (nsm_oneway_received): Fix bug of 1-WayReceived in NSM.
-
-2000-03-23  Libor Pechacek  <farco@clnet.cz>
-
-       * ospf_lsa.c (ospf_network_lsa)
-       * ospf_lsdb.c (new_lsdb_insert): Fix bug of accessing to
-       unallocated memory.
-
-2000-03-23  Toshiaki Takada  <takada@zebra.org>
-
-       * ospfd.c (ospf_config_write): Fix bug of duplicate line for
-       `area A.B.C.D authentication'.
-
-2000-03-22  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_debug.c (debug_ospf_lsa), (no_debug_ospf_lsa): Defun added.
-       Suppress all zlog related to LSAs with this config option.
-
-2000-03-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ospf_nsm.c (ospf_nsm_event): Add check for NSM_InactivityTimer.
-
-2000-03-21  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_packet.c (ospf_ls_upd_timer), (ospf_ls_req):
-       Fix bug of memory leak about linklist.
-
-       * ospf_flood.c (ospf_flood_through_area): Likewise.
-
-2000-03-18  Sira Panduranga Rao  <pandu@euler.ece.iisc.ernet.in>
-
-       * ospf_flood.c (ospf_ls_retransmit_lookup): Add checksum comparison
-       to identify LSA uniquely.  This fix routes lost.
-
-2000-03-18  Toshiaki Takada  <takada@zebra.org>
-
-       * ospf_ase.c (ospf_find_asbr_route): Add sanity check with router
-       routing table.
-
-2000-03-17  Alex Zinin  <zinin@amt.ru>
-       
-        * ospf_spf.[ch]: Bug fix.
-        The 2nd stage of Dijkstra could consider one vertex
-        more than once if there is more than one link
-        between the routers, thus adding extra CPU overhead
-        and extra next-hops.
-        Fixed.
-
-2000-03-15  Sira Panduranga Rao  <pandu@euler.ece.iisc.ernet.in>
-
-        * ospf_nsm.c (nsm_inactivity_timer): Changed to call nsm_kill_nbr().
-
-2000-03-14  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_route.c (ospf_route_copy_nexthops): Fix bug of memory leak of
-        ospf_path.  Actually ignore merging ospf_route with completely same 
-        paths.
-
-2000-03-12  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_lsa.c (show_as_external_lsa_detail): fix bug of 
-        external route tag byte order.
-
-2000-03-11  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_lsdb.c (ospf_lsdb_insert): New function added.
-
-2000-03-09  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_lsa.c (ospf_external_lsa_install),
-        (ospf_lsa_lookup), (show_ip_ospf_database_all),
-        (show_ip_ospf_database_self_originate): Use struct new_lsdb for
-        LSDB of AS-external-LSAs instead of ospf_lsdb.
-
-        * ospf_lsa.c (ospf_lsa_unique_id): New function added.
-        Use for assigning Unique Link State ID instead of
-        ospf_get_free_id_for_prefix().
-
-2000-03-09  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_ase.c (ospf_ase_calculate_timer): Fix bug of segmentation
-        fault reported by George Bonser <george@siteROCK.com>.
-
-2000-03-07  Libor Pechacek  <farco@clnet.cz>
-
-        * ospfd.c (ospf_interface_down): Fix bug of segmentation fault.
-
-2000-03-06  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_route.c (ospf_route_cmp): Change meaning of return values.
-
-2000-03-02  Alex Zinin <zinin@amt.ru>
-        * ospfd.h, ospf_ia.h
-        New Shortcut ABR code. Now area's flag can be configured
-        with Default, Enable, and Disable values.
-        More info will be in the new ver of I-D soon (see IETF web).
-
-2000-02-25  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_lsa.c (ospf_lsa_header_set), (ospf_external_lsa_body_set),
-        (osfp_external_lsa_originate), (ospf_external_lsa_queue),
-        (ospf_external_lsa_originate_from_queue): New function added.
-        (ospf_external_lsa): Function removed.
-
-        * ospf_zebra.c (ospf_zebra_read_ipv4): Originate AS-external-LSA
-        when listen a route from Zebra, instead creating external route.
-
-        * ospf_asbr.c (ospf_asbr_route_add_flood_lsa),
-        (ospf_asbr_route_add_queue_lsa),
-        (ospf_asbr_route_install_lsa), (ospf_asbr_route_add):
-        Functions removed.
-
-        * ospf_ase.c (process_ase_lsa): Function will not be used.
-        (ospf_ase_calculate), (ospf_ase_calculate_route_add),
-        (ospf_ase_calculate_new_route), (ospf_ase_caluculate_asbr_route):
-        process_ase_lsa () is separated to these functions.
-
-        OSPF AS-external-LSA origination is whole re-organized.
-
-2000-02-18  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_packet.c (ospf_ls_upd): Fix bug of OSPF LSA memory leak.
-
-        * ospf_asbr.c (ospf_asbr_route_add_flood_lsa),
-        (ospf_asbr_route_add_queue_lsa): Fix bug of OSPF external route
-        memory leak.
-
-2000-02-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_asbr.c (ospf_asbr_route_install_lsa): Re-calculate LSA
-        checksum after change Advertised Router field.
-
-2000-02-09  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_asbr.c (ospf_external_route_lookup): Add new function.
-
-2000-02-08  Toshiaki Takada  <takada@zebra.org>
-
-        * ospfd.c (ospf_router_id_get), (ospf_router_id_update),
-        (ospf_router_id_update_timer): Router ID decision algorithm is changed.
-        Router ID is chosen from all of eligible interface addresses even if
-        it is not enable to OSPF.
-
-2000-02-08  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_asbr.c (ospf_asbr_route_add): Function divided to
-        ospf_asbr_route_add_flood_lsa, ospf_asbr_route_add_queue_lsa and
-        ospf_asbr_route_install_lsa.  If Router-ID is not set, then LSA is
-        waited to install to LSDB.
-        `0.0.0.0 adv_router' AS-external-LSA origination bug was fixed.
-
-2000-02-01  Sira Panduranga Rao  <pandu@euler.ece.iisc.ernet.in>
-
-        * ospf_flood.c (ospf_ls_retransmit_lookup): Compare LS seqnum
-        in the ACK before deleting.
-
-        * ospf_packet.c (ospf_hello): Reset the flags after a shutdown
-        and no shutdown of the interface.
-
-2000-01-31  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_packet.c (ospf_ls_req): Send multiple Link State Update
-        packets respond to a Link State Request packet.
-
-        * ospfd.c (show_ip_ospf_neighbor_detail_sub): Show thread state.
-
-        * ospf_interface.c (ospf_vl_new): Crash when backbone area
-        is not configured and set virtual-link to no-backbone area,
-        bug fixed.
-
-2000-01-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_neighbor.h (struct ospf_neighbor): Add pointer to last send
-        LS Request LSA.
-
-        * ospf_packet.c (ospf_ls_upd): Comment out LS request list
-        treatment.  That should be done in OSPF flooding procedure.
-
-        * ospf_flood.c (ospf_flood_through_area): Enclose
-        ospf_check_nbr_loding inside if-else close.
-
-2000-01-31  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_packet.c (ospf_make_ls_upd): Fix bug of #LSAs counting.
-
-2000-01-29  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_packet.c (ospf_make_md5_digest): Fix bug of md5 authentication.
-
-2000-01-28  Toshiaki Takada  <takada@zebra.org>
-
-        * ospfd.c (show_ip_ospf): Show Number of ASE-LSAs.
-
-2000-01-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_packet.c (ospf_make_db_desc): Don't use rm_list for
-        removing LSA from nbr->db_summary.
-
-2000-01-27  Sira Panduranga Rao <pandu@euler.ece.iisc.ernet.in>
-
-        * ospf_packet.c (ospf_ls_upd_send): Set AllSPFRouters to
-        destination when the link is point-to-point.
-        (ospf_ls_ack_send_delayed): Likewise.
-
-2000-01-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_flood.c (ospf_ls_request_delete_all): Fix bug of next
-        pointer lookup after the node is freed.
-
-2000-01-26  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_asbr.c (ospf_asbr_route_add): Instead of scanning all AS
-        external route, use ospf_top->external_self.
-
-2000-01-27  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_lsa.c (ospf_forward_address_get): New function added.
-
-        * ospf_asbr.c (ospf_asbr_check_lsas): Originate AS-external-LSA
-        only when it should be replaced.
-
-2000-01-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_flood.c (ospf_ls_retransmit_clear): Delete list node.
-
-        * ospf_lsa.c (ospf_lsa_free): Reduce logging message using
-        ospf_zlog value.
-
-        * ospf_ism.c (ism_change_status): Fix bug of DR -> non DR status
-        change.  Self originated LSA is freed but not deleted from lsdb.
-
-2000-01-24  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_ism.c (ism_interface_down): Don't use router_id for
-        detecting self neighbor structure.  Instead of that compare
-        pointer itself.
-
-        * ospf_neighbor.c (ospf_nbr_free): Cancel all timer when neighbor
-        is deleted.
-        (ospf_nbr_free): Free last send packet.
-
-        * ospf_neighbor.h (struct ospf_neighbor): Remove host strucutre.
-        Instead of that src is introduced.
-
-        * ospf_nsm.h: Enclose macro defenition with do {} while (0).
-
-2000-01-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospfd.c: Change part of passive interface implementation.  For
-        passive interface just disabling sending/receiving Hello on the
-        interface.
-
-2000-01-16  Kai Bankett <kai.bankett@vew-telnet.net>
-
-        * ospf_interface.h (OSPF_IF_PASSIVE): Add passive flag.
-        * ospf_interface.c (ospf_if_lookup_by_name): Add new function.
-        * ospf_lsa.c (ospf_router_lsa): Skip passive interface.
-        * ospfd.c (passive_interface): New command passive-interface is
-        added.
-        (ospf_config_write): Print passive interface.
-
-2000-01-15  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_interface.h (crypt_key): New struct added to store
-        multiple cryptographic autheitication keys.
-        (ospf_interface): struct changed.
-
-        * ospf_interface.c: ospf_crypt_key_new, ospf_crypt_key_add,
-        ospf_crypt_key_lookup, ospf_crypt_key_delete: new functions added.
-
-        * ospf_packet.c (ip_ospf_message_digest_key): Changed to store
-        multiple cryptographic authentication keys.
-
-2000-01-14  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_interface.c: DEFUN (if_ospf_*) commands changed name to
-        ip_ospf_* ().
-        Old notation `ospf *' still remains backward compatibility.
-
-1999-12-29  Alex Zinin  <zinin@amt.ru>
-        * ospf_lsa.c: ospf_lsa_more_recent() bug fix
-        * ospf_nsm.c, ospf_packet.c: remove nbr data struct when
-          int goes down, also check DD flags correctly (bug fix)
-
-1999-12-28  Alex Zinin  <zinin@amt.ru>
-        * "redistribute <source> metric-type (1|2) metric <XXX>" added
-
-1999-12-23  Alex Zinin  <zinin@amt.ru>
-        * added RFC1583Compatibility flag
-        * added dynamic interface up/down functionality
-
-1999-11-19  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_neighbor.h (struct ospf_neighbor): Add member state_change
-        for NSM state change statistics.
-
-1999-11-19  Toshiaki Takada  <takada@zebra.org>
-
-        * ospfd.c (show_ip_ospf_neighbor_detail),
-        (show_ip_ospf_neighbor_int_detail): DEFUN Added.
-
-1999-11-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_asbr.c (ospf_asbr_check_lsas): Add check of
-        lsa->refresh_list.
-
-1999-11-11  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_ia.[ch] (OSPF_EXAMINE_SUMMARIES_ALL): Macro added.
-        This macro is expanded to ospf_examine_summaries ()
-        for SUMMARY_LSA and SUMMARY_LSA_ASBR.
-        (OSPF_EXAMINE_TRANSIT_SUMMARIES_ALL): Macro added.
-        This macro is expanded to ospf_examine_transit_summaries ()
-        for SUMMARY_LSA and SUMMARY_LSA_ASBR.
-
-1999-11-11  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_lsa.[ch] (ospf_find_self_summary_lsa_by_prefix): Changed to
-        macro OSPF_SUMMARY_LSA_SELF_FIND_BY_PREFIX.
-        (ospf_find_self_summary_asbr_lsa_by_prefix): Changed to
-        macro OSPF_SUMMARY_ASBR_LSA_SELF_FIND_BY_PREFIX.
-        (ospf_find_self_external_lsa_by_prefix): Changed to
-        macro OSPF_EXTERNAL_LSA_SELF_FIND_BY_PREFIX.
-
-1999-11-11  Toshiaki Takada  <takada@zebra.org>
-
-        * ospfd.c (ospf_abr_type): ospf_abr_type_cisco, ospf_abr_type_ibm,
-        ospf_abr_type_shortcut and ospf_abr_type_standard DEFUNs are
-        combined.
-        * ospfd.c (no_ospf_abr_type): no_ospf_abr_type_cisco,
-        no_ospf_abr_type_ibm and no_ospf_abr_type_shortcut DEFUNS are
-        combined.
-
-1999-11-10  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_route.c (ospf_lookup_int_by_prefix): Move function to
-        ospf_interface.c and change name to ospf_if_lookup_by_prefix ().
-
-1999-11-01  Alex Zinin <zinin@amt.ru>
-        * ospf_packet.c 
-        some correction to LSU processing
-
-        * ospf_lsa.c ospfd.h 
-        randomize initial LSA refreshment interval
-        and limit the size of LSA-group to 10
-        to let randomization work more effectively.
-
-1999-10-31  Alex Zinin <zinin@amt.ru>
-        * ospf_interface.c 
-        cancel t_network_lsa_self
-        when freeing int structure
-
-        *  ospf_abr.c ospf_asbr.c ospf_flood.c ospf_lsa.c 
-           ospf_lsa.h ospf_lsdb.h ospfd.c ospfd.h
-
-        Summary and ASE LSA refreshment functions
-        added---LSA refreshment is paced to 70 LSAs
-        per sec to avoid link overflow. Refreshment events
-        are further randomized within a 10 sec interval
-        to avoid syncing.
-        
-        Also the sigfault of memcmp() in ospf_lsa_is_different()
-        is fixed.
-
-1999-10-30  Alex Zinin <zinin@amt.ru>
-        * ospf_nsm.c 
-        Fix the bug where MAX_AGE LSAs
-        are included into the DB summary.
-
-        * ospf_interface.c 
-        allocate 2*MTU input buffer instead of just MTU
-        for the cases when the other router mistakenly
-        sends larger packets thus causing fragmentation, etc.
-
-        * ospf_nsm.c
-        in nsm_reset_nbr() lists should be freed
-        not when they are empty.
-
-1999-10-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_zebra.c (ospf_acl_hook): Move OSPF_IS_ASBR and OSPF_IS_ABR
-        check inside of if (ospf_top).
-
-1999-10-29  Alex Zinin <zinin@amt.ru>
-        * ospf_lsa.c ospf_lsdb.c :
-        add assertion in lsa and lsa->data alloc functions,
-        as well as in lsdb_add for new->data
-
-        * ospf_lsdb.c: free hash table correctly
-
-1999-10-28  John Capo <jc@irbs.com>
-
-        * ospf_packet.h (OSPF_PACKET_MAX): Correct MAX packet length
-        calculation
-
-1999-10-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * OSPF-TRAP-MIB.txt: New file added. Edited version of RFC1850.
-
-        * OSPF-MIB.txt: New file added.  Edited version of RFC1850.
-
-1999-10-27  Alex Zinin  <zinin@amt.ru>
-        * ospfd, ospf_zebra, ospf_abr
-        "area import-list" command is added.
-        This command allows to filter the inter-area routes
-        injected into an area. Access list hook function
-        extended to invalidate area exp/imp lists.
-
-1999-10-25  Yoshinobu Inoue  <shin@nd.net.fujitsu.co.jp>
-
-        * ospfd.c (ospf_interface_run): Enable to detect P2P network
-        on an OSPF interface.
-
-1999-10-19  Jordan Mendelson  <jordy@wserv.com>
-
-        * ospf_lsdb.c (ospf_lsdb_add): Fix bug of crash
-        in ospf_ls_retransmit_lookup ().
-
-1999-10-19  Vladimir B. Grebenschikov <vova@express.ru>
-
-        * ospf_route.c: Workaround about installation of OSPF routes into
-        the zebra daemon.  Add checking of existance routes.  Free
-        ospf_top->old_table if it exists.
-
-1999-10-15  Jordan Mendelson <jordy@wserv.com>
-
-        * Add support for MD5 authentication.
-
-1999-10-12  Alex Zinin  <zinin@amt.ru>
-        * ospfd.c, ospfd.h, ospf_abr.c:
-          a new command "area export-list" was added, it allows
-          the admin. to control which intra-area routes are
-          announced to other areas by the ABR
-
-1999-10-12  Alex Zinin  <zinin@amt.ru>
-        * ospf_asbr.c (ospf_asbr_check_lsas): Fix bug of coredump
-          when "no redistribute" is used after a distribute list
-          denying some networks was used
-
-1999-10-05  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_route.c (ospf_path_dup): New function added.
-
-1999-10-05  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_interface.[ch]: Some of VL related funciton name changed.
-
-1999-09-27  Alex Zinin  <zinin@amt.ru>
-
-        * ospf_zebra.c: Distribute-list functionality added
-
-1999-09-27  Toshiaki Takada  <takada@zebra.org>
-
-        * ospfd.c (show_ip_ospf): Fix bug of segmentation fault when no ospf
-        instance exists.
-
-1999-09-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospfd.c (ospf_interface_down): Fix bug of misusing nextnode()
-        instead of node->next.  Reported by Hiroki Ishibashi
-        <ishibasi@dcd.abk.nec.co.jp>.
-
-        * ospf_route.c (show_ip_ospf_route): Add check for ospf is enabled
-        or not.
-
-1999-09-23  Alex Zinin  <zinin@amt.ru>
-
-        * stub area support added
-
-1999-09-23  Alex Zinin  <zinin@amt.ru>
-
-        * fwd_addr in ASE-LSAs is now set correctly
-        * ASE routing changed to check the fwd_addr
-        and skip the route if the addr points to one
-        of our interfaces to avoid loops.
-
-1999-09-22  Alex Zinin  <zinin@amt.ru>
-
-        * ospf_interface:
-        ospf_vls_in_area() added, it returns 
-        the number of VLs configured through the area
-
-        * ospf_interface.c ospf_lsa.c ospf_lsdb.c ospfd.c 
-        honor correct mem alloc
-
-1999-09-22  Alex Zinin  <zinin@amt.ru>
-
-        * memory.[ch]:
-        Some OSPF mem types added,
-        plus more info in "show mem"
-
-1999-09-21  Alex Zinin  <zinin@amt.ru>
-
-        * ospfd.c:
-        "area range substitute" added.
-        It can be used on NAT-enabled (IP-masquarade)
-        routers to announce private networks
-        from an area as public ones into the outside
-        world (not in the RFC, btw :)
-
-1999-09-21  Alex Zinin  <zinin@amt.ru>
-
-        * ospfd.c:
-        "area range suppress" added.
-        This command allows to instruct the router
-        to be silent about specific ranges, i.e.,
-        it is a method of route filtering on area
-        borders
-
-1999-09-21  Alex Zinin  <zinin@amt.ru>
-
-        * ospfd.c VLs removed when "no network area" executed
-
-1999-09-20  Alex Zinin  <zinin@amt.ru>
-
-        * ospf_ase.c bug fix for not-zero fwd_addr 
-        and directly connected routes.
-
-1999-09-20  Yon Uriarte <yon@plannet.de>
-
-        * ospf_packet.c (ospf_make_ls_req): Introduce delta value for
-        checking the length of OSPF packet exceeds MTU or not.
-
-        * ospf_lsa.c (ospf_lsa_different): Apply ntohs for checking
-        l1->data->length.
-
-1999-09-18  Alex Zinin  <zinin@amt.ru>
-
-        * ospf_lsa.c bug fix for ospf_network_lsa() to
-        include itself into the RID list
-
-1999-09-10  Alex Zinin  <zinin@amt.ru>
-
-        * Alternative ABR behaviors IBM/Cisco/Shortcut
-        implemented
-
-1999-09-10  Alex Zinin  <zinin@amt.ru>
-
-        * router and network-LSA origination
-        changed to honor MinLSInterval
-
-1999-09-08  Alex Zinin  <zinin@amt.ru>
-
-        * modified ABR behavior to honor VLs and transit
-          areas
-
-1999-09-07  Alex Zinin  <zinin@amt.ru>
-
-        * completed VL functionality
-
-1999-09-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_asbr.c: New file.
-        ospf_asbr.h: New file.
-
-        * ospf_zebra.c (ospf_redistribute_connected): Add redistribute
-        related stuff.
-
-1999-09-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospfd.h (OSPF_FLAG_VIRTUAL_LINK): Change OSPF_FLAG_VEND to
-        OSPF_FLAG_VIRTUAL_LINK for comprehensiveness.
-
-1999-09-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_spf.c (ospf_spf_register): Change name from
-        ospf_spf_route_add() to ospf_spf_register().
-        Include "ospfd/ospf_abr.h" for ospf_abr_task() prototype.
-
-1999-09-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_lsa.c (ospf_external_lsa_install): Change to update
-        lsa->data rather than install new one, when same id lsa is already
-        installed.
-
-1999-09-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_lsa.c (ospf_router_lsa_install): Return lsa value.
-        (ospf_network_lsa_install): Likewise.
-        (ospf_summary_lsa_install): Likewise.
-        (ospf_summary_asbr_lsa_install): Likewise.
-        (ospf_external_lsa_install): Likewise.
-
-        * ospf_spf.c (ospf_spf_calculate): Comment out debug function
-        ospf_rtrs_print().
-
-1999-08-31  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_spf.c (ospf_rtrs_free): Add ospf_spf_calculate() for
-        freeing rtrs.
-
-1999-08-31  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_lsa.c (show_ip_ospf_database_summary),
-        (show_ip_ospf_database_summary_asbr),
-        (show_ip_ospf_database_external): New function added.
-        `show ip ospf database summary',
-        `show ip ospf database asbr-summary'
-        `show ip ospf database external' command can be used.
-
-        * ospf_lsa.c (ospf_lsa_count_table): New function added.
-        (show_ip_ospf_database_all): show nothing if a type of LSA
-        does not exist.
-        
-1999-08-31  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_lsa.c (ospf_maxage_lsa_remover): Preserve next pointer when
-        the node is deleted.
-
-1999-08-31  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_flood.c (ospf_ls_retransmit_lookup): change to return
-        struct ospf_lsa *.
-        (ospf_ls_request_new), (ospf_ls_request_free),
-        (ospf_ls_request_add), (ospf_ls_request_delete),
-        (ospf_ls_request_delete_all), (ospf_ls_request_lookup):
-        New function added.
-
-        * ospf_packet.c (ospf_ls_upd_send_lsa): New function added.
-
-        * ospf_lsa.h (LS_AGE): Slightly change macro definition.
-
-        * ospf_lsa.c (ospf_lsa_more_recent), (ospf_lsa_diffrent):
-        Use LS_AGE macro.
-
-1999-08-30  Alex Zinin <zinin@amt.ru>
-        
-        * ospfd.c
-        fix a bug with area range config write
-        added "show ip ospf" command, it will be enhanced later on
-
-1999-08-30  Alex Zinin <zinin@amt.ru>
-
-        * ospf_lsa.c
-        updated ospf_router_lsa() to honor flags (B-bit)
-
-1999-08-30  Alex Zinin <zinin@amt.ru>
-
-        * ospf_abr.c
-        wrote major functions implementing ABR activity
-
-1999-08-30  Alex Zinin <zinin@amt.ru>
-
-        * ospf_ia.c ospf_route.c ospf_route.h 
-        fixed the bug with ospf_route.origin field.
-        Now it holds pointer to lsa_header
-
-1999-08-30  Alex Zinin <zinin@amt.ru>
-
-        * ospf_flood.c ospf_flood.h:
-        transformed ospf_flood_if_select into ospf_flood_through_area()
-        added new ospf_flood_if_select() and ospf_flood_through_as()
-
-1999-08-30  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_flood.[ch]: New file added.
-
-        * ospf_packet.c (ospf_lsa_flooding),
-        (ospf_lsa_flooding_select_if): functions move to ospf_flood.c
-
-        * ospf_neighbor.c (ospf_put_lsa_on_retransm_list),
-        (ospf_remove_lsa_from_retransm_list),
-        (ospf_nbr_remove_all_lsas_from_retransm_list),
-        (ospf_lsa_remove_from_ls_retransmit):
-        (ospf_lsa_retransmit): functions move to
-        ospf_flood.c, and change function's name:
-
-        ospf_put_lsa_on_retransm_list ()
-          -> ospf_ls_retransmit_add ()
-        ospf_remove_lsa_from_retransm_list ()
-          -> ospf_ls_retransmit_delete ()
-        ospf_nbr_remove_all_lsas_from_retransm_list ()
-          -> ospf_ls_retransmit_clear ()
-        ospf_lsa_remove_from_ls_retransmit ()
-          -> ospf_ls_retransmit_delete_nbr_all ()
-        ospf_lsa_retransmit ()
-          -> ospf_ls_retransmit_add_nbr_all ()
-
-        * ospf_lsa.c (ospf_lsa_lookup_from_list): function move to
-        ospf_flood.c, and change name to ospf_ls_retransmit_lookup ().
-
-1999-08-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_neighbor.c (ospf_nbr_lookup_by_addr): Use
-        route_node_lookup() instead of route_node_get().
-
-        * ospf_packet.c (ospf_ls_upd): Temporary comment out (6) check.
-
-1999-08-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_route.c (ospf_lookup_int_by_prefix): Add check of
-        oi->address.
-
-1999-08-29  Alex Zinin <zinin@amt.ru>
-        * ospf_lsa.c 
-        MaxAge LSA deletion functions added.
-
-1999-08-29  Alex Zinin <zinin@amt.ru>
-        * ospf_neighbor.c 
-        ospf_nbr_lookup_by_addr(): added route_unlock_node()
-        when function returns NULL if (rn->info == NULL)
-
-1999-08-29  Alex Zinin <zinin@amt.ru>
-        * ospfd.c
-        added a hack for area range deletion
-        
-1999-08-29  Alex Zinin <zinin@amt.ru>
-        * ospf_lsa.h 
-        included lsdb field into struct ospf_lsa, to find
-        LSDB easier when removing MaxAge LSAs.
-
-1999-08-29  Alex Zinin <zinin@amt.ru>
-        * ospf_lsa.c ospf_neighbor.c ospf_nsm.c 
-          ospf_packet.c changed to honor new retransmit list
-          management functions
-
-1999-08-29  Alex Zinin <zinin@amt.ru>
-        * ospf_neighbor.c , .h added new retransmit list functions.
-
-1999-08-29  Alex Zinin <zinin@amt.ru>
-        * Makefile.in
-        added ospf_ase, ospf_abr, ospf_ia
-
-1999-08-29  Alex Zinin <zinin@amt.ru>
-        * ospf_spf.c:
-        - changed ospf_next_hop_calculation() to include interface
-          and nexthop addr for directly connected routers---more informative
-          and solves problem with route installation into the kernel
-        - changed ospf_nexthop_out_if_addr() to support routers, not only
-          transit networks
-        - added ospf_process_stubs();
-
-1999-08-29  Alex Zinin <zinin@amt.ru>
-        * ospf_lsa.c:
-        - changed ospf_router_lsa() to provide correct links
-          for p-t-p interfaces;
-        - changed ospf_summary_lsa_install() to support table
-          of self-originated summary-LSAs;
-        - added ospf_summary_asbr_lsa_install() and ospf_external_lsa_install()
-        - changed ospf_lsa_install() accordingly
-        - changed show_ip_ospf_database_router_links() to support p-t-p
-
-1999-08-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_packet.c (ospf_make_db_desc): Only master can clear more
-        flag.
-
-1999-08-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_packet.c (ospf_read): Add check of IP src address.
-
-1999-08-28  Alex Zinin <zinin@amt.ru>
-        * ospf_neighbor.h
-        added ospf_nbr_lookup_by_routerid()
-
-1999-08-28  Alex Zinin <zinin@amt.ru>
-        * ospfd.h
-        added ABR/ASBR flag definitions and fields;
-        added iflist field to area structure;
-        summary_lsa_self and summary_lsa_asbr_self are changed
-        to be route tables;
-        added ranges field---configured area ranges;
-        A separate Routers RT added;
-        area range config commands and config write added
-
-
-1999-08-28  Alex Zinin <zinin@amt.ru>
-        * ospf_route.c :
-        ospf_route_free()--added code to free the list of paths;
-        The following functions added:
-                ospf_intra_add_router();
-                ospf_intra_add_transit();
-                ospf_intra_add_stub();
-        the last function uses new ospf_int_lookup_by_prefix();
-        show_ip_ospf_route_cmd()--changed to support new RT structure;
-        added ospf_cmp_routes()--general route comparision function;
-        added ospf_route_copy_nexthops() and ospf_route_copy_nexthops_from_vertex()
-        they are used in ASE and IA routing;
-        added ospf_subst_route() and ospf_add_route();
-
-1999-08-28  Alex Zinin <zinin@amt.ru>
-        * ospf_route.h :
-        changed struct ospf_path to include output interface,
-        changed struct ospf_route to support IA and ASE routing.
-        added prototypes of the function used in IA and ASE modules.
-
-1999-08-28  Alex Zinin <zinin@amt.ru>
-        * ospf_lsa.h ospf_lsa.c :
-        added ospf_my_lsa(), an interface independent version of
-        ospf_lsa_is_self_originated(), it will be used in ASE and IA-routing.
-
-1999-08-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_interface.c (interface_config_write): Add check for
-        oi->nbr_self.
-
-1999-08-25  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_lsa.c (ospf_lsa_dup): New function added.
-
-        * ospf_packet.c (ospf_write), (ospf_read): Print send/recv
-        interface in debug message.
-
-1999-08-25  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_packet.c (ospf_ls_ack_send): The name is changed from
-        `ospf_ls_ack_send'.
-        (ospf_ls_ack_send_delayed) (ospf_ls_ack_timer): New function added.
-        Delayed Link State Acknowledgment is scheduled by timer.
-
-1999-08-25  Alex Zinin  <zinin@amt.ru>
-
-        * ospf_lsa.c (ospf_router_lsa): Incorrectly included link to
-        a stub network instead of link to a transit network into
-        originated router-LSA, bug fixed.
-
-1999-08-24  Toshiaki Takada  <takada@zebra.org>
-
-        * ospfd.c (ospf_update_router_id): New function added.
-
-        * ospf_network.c (ospf_write): Create new socket per transmission.
-        And select outgoing interface whether dst is unicast or multicast.
-
-        * ospf_packet.c: LSA flooding will work.        
-
-1999-08-24  VOP <vop@unity.net>
-
-        * ospf_route.c: Include "sockunion.h"
-
-1999-08-24  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_network.c (ospf_serv_sock_init): Enclose
-        IPTOS_PREC_INTERNETCONTROL setting with #ifdef for OS which does
-        not have the definition.
-
-1999-08-23  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_packet.c: Fix bug of DD processing.
-
-1999-08-18  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_lsa.c (show_ip_ospf_database): Show actual `LS age'.
-
-1999-08-17  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_lsa.h (OSPF_MAX_LSA): The value of OSPF_MAX_LSA is
-        corrected.  The bug of `mes_lookup' is fixed.  
-        This had been reported by Poul-Henning Kamp <phk@freebsd.org>.
-
-        * ospf_lsa.c (ospf_router_lsa_install): The name is changed from
-        `ospf_add_router_lsa'.
-        (ospf_network_lsa_install): The name is changed from
-        `ospf_add_network_lsa'.
-
-        * ospf_interface.h (ospf_interface): Add member `nbr_self'.
-
-        * ospf_interface.c (ospf_if_is_enable): New function added.
-
-1999-08-16  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_lsa.h (struct lsa_header): The name is changed from
-        `struct ospf_lsa'.
-        (struct ospf_lsa): New struct added to control each LSA's aging
-        and timers.     
-
-        * ospf_lsa.c (ospf_lsa_data_free): The name is change from
-        `ospf_lsa_free'.
-        (ospf_lsa_data_new), (ospf_lsa_new), (ospf_lsa_free),
-        (ospf_lsa_different), (ospf_lsa_install): New function added.
-
-        * ospf_packet.c (ospf_ls_upd_list_lsa): New function added.
-
-1999-08-12  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_nsm.c (nsm_reset_nbr): New function added.
-        KillNbr and LLDown neighbor event call this function.
-        
-1999-08-10  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_packet.c (ospf_ls_retransmit)
-        (ospf_ls_upd_timer): New function added.
-        Set retransmission timer for Link State Update.
-
-1999-07-29  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_ism.c (ospf_dr_election): Fix bug of DR election.
-
-1999-07-28  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_network.c (ospf_serv_sock_init): Set IP precedence field
-        with IPTOS_PREC_INTERNET_CONTROL.
-
-        * ospf_nsm.c (nsm_change_status): Schedule NeighborChange event
-        if NSM status change.
-        
-        * ospf_packet.c (ospf_make_hello): Never include a neighbor in
-        Hello packet, when the neighbor goes down.
-
-1999-07-26  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * Makefile.am (noinst_HEADERS): Add ospf_route.h.
-
-        * ospf_route.c (show_ip_ospf_route): Add `show ip ospf route'
-        command.
-
-1999-07-25  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_lsa.c (ospf_router_lsa): Fix bug of LS sequence number
-        assignement.
-
-1999-07-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_route.c (ospf_route_table_free): New function added.
-
-        * ospf_spf.c (ospf_spf_next): Free vertex w when cw's and w's
-        distance is same.
-
-        * ospfd.h (struct ospf): Add old_table.
-
-        * ospf_main.c (sighup): Call of log_rotate () removed.
-
-        * ospf_lsa.c (ospf_lsa_is_self_originated): Fix bug of checking
-        area->lsa as self LSA.  This should be area->lsa_self.
-
-1999-07-24  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_zebra.c (ospf_zebra_add): ospf_zebra_add
-        (),ospf_zebra_delete () added.
-
-        * ospf_spf.c (ospf_spf_calculate): Call ospf_intra_route_add ().
-
-1999-07-24  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_lsa.c: Change LS sequence number treatment.
-        (ospf_lsa_is_self_originated): New function added.
-        (show_ip_ospf_database_self_originated): New DEFUN added.
-        
-1999-07-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_interface.c (ospf_if_lookup_by_addr): Add loopback check.
-
-1999-07-22  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_spf.c (ospf_nexthop_new), (ospf_nexthop_free),
-        (ospf_nexthop_dup): function added.
-        (ospf_nexthop_calculation): function changed.
-
-        * ospf_interface.c (ospf_if_lookup_by_addr): function added.
-        
-1999-07-21  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_spf.c (ospf_spf_closest_vertex): function removed.
-        
-1999-07-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_spf.c (ospf_spf_next): Apply ntohs for fetching metric.
-
-1999-07-21  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_neighbor.c (ospf_nbr_lookup_by_router_id): fundtion removed.
-
-        * ospf_lsa.c (show_ip_ospf_database_router): describe each
-        connected link.
-
-1999-07-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_spf.c (ospf_spf_next): V is router LSA or network LSA so
-        change behavior according to LSA type.
-        (ospf_lsa_has_link): Link check function is added.
-
-1999-07-20  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_spf.c (ospf_spf_calculate_schedule): Add new function for
-        SPF calcultion schedule addtition.
-        (ospf_spf_calculate_timer_add): Rough 30 sec interval SPF calc
-        timer is added.
-        (ospf_spf_next_router): Delete ospf_spf_next_network ().
-
-        * ospf_lsa.c (show_ip_ospf_database_all): Network-LSA display
-        header typo correction.  Display of router LSA's #link added.
-
-1999-07-19  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_packet.c (ospf_check_network_mask): Added new function for
-        receiving Raw IP packet on an appropriate interface.
-
-1999-07-16  Toshiaki Takada  <takada@zebra.org>
-
-        * ospfd.c (ospf_router_id): new DEFUN added.
-
-1999-07-15  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_spf.c (ospf_spf_init), (ospf_spf_free),
-        (ospf_spf_has_vertex), (ospf_vertex_lookup),
-        (ospf_spf_next_router), (ospf_spf_next_network),
-        (ospf_spf_closest_vertex), (ospf_spf_calculate):
-        function added.
-
-1999-07-13  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_ism.c: fix bug of DR Election.
-
-        * ospf_nsm.c: fix bug of adjacency forming.
-
-1999-07-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospfd.c (ospf_init): Change to use install_default.
-
-1999-07-01  Rick Payne <rickp@rossfell.co.uk>
-
-        * ospf_zebra.c (zebra_init): Install standard commands to
-        ZEBRA_NODE.
-
-1999-06-30  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_dump.c: Whole debug command is improved.
-        (ISM|NSM) (events|status|timers) debug option added.
-        (show_debugging_ospf): new DEFUN added.
-
-1999-06-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_lsa.c (ospf_lsa_lookup_from_list): Change !IPV4_ADDR_CMP to
-        IPV4_ADDR_SAME.
-
-1999-06-29  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_dump.c (ospf_summary_lsa_dump): Add summary-LSA dump routine.
-        (ospf_as_external_lsa_dump): Add AS-external-LSA dump routine.
-
-        * ospf_nsm.c (nsm_twoway_received): fix condtion of adjacnet.
-
-        * ospf_ism.c (ospf_dr_election): fix DR Election.
-        
-        * ospf_dump.c (ospf_nbr_state_message): fix `show ip ospf neighbor'
-        command's state.
-
-1999-06-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_dump.c (ospf_router_lsa_dump): Add router-LSA dump routine.
-
-1999-06-28  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_lsa.c (show_ip_ospf_database_network): fix bug of
-        `show ip ospf database network' command output.
-
-        * ospf_nsm.c (nsm_inactivity_timer): Clear list of Link State
-        Retransmission, Database Summary and Link State Request.
-
-        * ospf_packet.c (ospf_ls_req_timer): New function added.
-        Set Link State Request retransmission timer.
-
-1999-06-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_main.c (main): Change default output from ZLOG_SYSLOG to
-        ZLOG_STDOUT.
-
-        * ospfd.c (ospf_init): Register show_ip_ospf_interface_cmd and
-        show_ip_ospf_neighbor_cmd to VIEW_NODE.
-
-        * ospf_lsa.c (ospf_lsa_init): Register show_ip_ospf_database_cmd
-        and show_ip_ospf_database_type_cmd to VIEW_NODE.
-
-1999-06-25  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_packet.c: fix bug of DD making.
-        fix bug of LS-Update reading.
-        
-1999-06-23  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_packet.c: All type of packets are changed to use
-        fifo queue structure.
-        (ospf_fill_header) function added.
-
-1999-06-22  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_packet.c (ospf_packet_new): New function added to handle
-        sending ospf packet by fifo queue structure.
-        (ospf_packet_free), (ospf_fifo_new), (ospf_fifo_push),
-        (ospf_fifo_pop), (ospf_fifo_head), (ospf_fifo_flush),
-        (ospf_fifo_free): Likewise.
-
-1999-06-21  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_nsm.c (ospf_db_desc_timer): function added.
-        (nsm_timer_set) function added.
-        * ospf_dump.c (ospf_option_dump): function added.
-        * ospf_packet.c (ospf_ls_req) (ospf_make_ls_req): function added.
-
-1999-06-20  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_lsa.c (ospf_lsa_more_recent): function added.
-        * ospf_neighbor.h (struct ospf_neighbor): Change member ms_flag
-        to dd_flags.
-        
-1999-06-19  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_lsa.c: DEFUN (show_ip_ospf_database) Added.
-        * ospf_interface.c (if_ospf_cost), (if_ospf_dead_interval),
-        (if_ospf_hello_interval), (if_ospf_priority),
-        (if_ospf_retransmit_interval), (if_ospf_transmit_delay)
-        argument changed from NUMBER to <range>.
-        DEFUN (if_ospf_network_broadcast),
-        DEFUN (if_ospf_network_non_broadcast),
-        DEFUN (if_ospf_network_point_to_multipoint),
-        DEFUN (if_ospf_network_point_to_point) functions are combined to
-        DEFUN (if_ospf_network).
-        
-1999-06-18  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_lsa.c: ospf_add_router_lsa (), ospf_add_network_lsa (),
-        ospf_lsa_lookup (), ospf_lsa_count () Added.
-
-1999-06-15  Toshiaki Takada  <takada@zebra.org>
-
-        * DEFUN (ospf_debug_ism), DEFUN (ospf_debug_nsm),
-        DEFUN (no_ospf_debug_ism), DEFUN (no_ospf_debug_nsm) Added.
-        `debug ospf ism' command shows debug message.
-        `debuf ospf nsm' command shows debug message.
-
-1999-06-14  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_lsa.c: ospf_network_lsa () Added.
-        ospf_lsa_checksum () Added.
-        * DEFUN (ospf_debug_packet), DEFUN (no_ospf_debug_packet) Added.
-        `debug ospf packet' command shows debug message.
-
-1999-06-13  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_packet.h: Remove struct ospf_ls_req {}, ospf_ls_upd {},
-        ospf_ls_ack {}.
-
-1999-06-11  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_dump.c: fix IP packet length treatment.
-
-1999-06-10  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_ism.h: Add OSPF_ISM_EVENT_EXECUTE() Macro Added.
-        * ospf_nsm.h: Add OSPF_NSM_EVENT_EXECUTE() Macro Added.
-
-        * ospf_packet.c: ospf_db_desc (), ospf_db_desc_send () Added.
-        ospf_make_hello (), ospf_make_db_desc () Added.
-        ospf_db_desc_proc () Added.n
-
-        * Database Description packet can be processed.
-
-1999-06-08  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_lsa.c: New file.
-        
-1999-06-07  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_neighbor.c: ospf_fully_adjacent_count () Added.
-
-1999-06-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_spf.[ch]: New file.
-
-1999-05-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_zebra.c: Changed to use lib/zclient.c routines.
-
-        * ospf_zebra.h (zebra_start): Remove struct zebra.
-
-1999-05-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospfd.c (ospf_config_write): Add cast (unsigned long int) to
-        ntohl for sprintf warning.
-
-1999-05-19  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_ism.c (ospf_dr_election): Join AllDRouters Multicast group
-        if interface state changes to DR or BDR.
-
-1999-05-14  Stephen R. van den Berg <srb@cuci.nl>
-
-        * ospf_main.c (signal_init): SIGTERM call sigint.
-        (sigint): Logging more better message.
-
-1999-05-12  Toshiaki Takada  <takada@zebra.org>
-
-        * ospfd.c: Fix bug of `no router ospf' statement, it will work.
-
-1999-05-11  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_neighbor.c: ospf_nbr_free () Added.
-
-1999-05-10  Toshiaki Takada  <takada@zebra.org>
-
-        * ospfd.h: struct ospf_area { }, struct ospf_network { } Changed.
-        * Fix bug of `no network' statement, it will work.
-
-1999-05-07  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_interface.c, ospf_zebra.c: Fix bug of last interface is not
-        updated by ospf_if_update ().
-
-1999-04-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * Makefile.am (noinst_HEADERS): Add ospf_lsa.h for distribution.
-
-1999-04-25  Toshiaki Takada <takada@zebra.org>
-
-        * ospf_interface.c: DEFUN (no_if_ospf_cost),
-        DEFUN (no_if_ospf_dead_interval),
-        DEFUN (no_if_ospf_hello_interval),
-        DEFUN (no_if_ospf_priority),
-        DEFUN (no_if_ospf_retransmit_interval),
-        DEFUN (no_if_ospf_transmit_delay) Added.
-
-        interface_config_write () suppress showing interface
-        default values.
-
-1999-04-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_dump.c (ospf_timer_dump): If thread is NULL return "inactive".
-
-        * ospfd.c (ospf_if_update): Fix bug of using ospf_area { } instead
-        of ospf_network { }.  So `router ospf' statement in ospfd.conf
-        works again.
-        (ospf_if_update): Call ospf_get_router_id for updating router ID.
-
-1999-04-25  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_interface.c: DEFUN (if_ospf_network) deleted.
-        DEFUN (if_ospf_network_broadcast),
-        DEFUN (if_ospf_network_non_broadcast),
-        DEFUN (if_ospf_network_point_to_multipoint),
-        DEFUN (if_ospf_network_point_to_point),
-        DEFUN (no_if_ospf_network) Added.
-
-1999-04-23  Toshiaki Takada  <takada@zebra.org>
-
-        * ospfd.h: struct area { } changed to struct ospf_network { }.
-        Add struct ospf_area { }.
-        * ospfd.c: Add ospf_area_lookup_by_area_id (), ospf_network_new (),
-        and ospf_network_free ().
-        DEFUN (area_authentication), DEFUN (no_area_authentication) Added.
-
-1999-04-22  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_lsa.h: New file.
-        * ospf_packet.h: LSA related struct definition are moved to
-        ospf_lsa.h.
-        * ospf_packet.c: ospf_verify_header () Added.
-
-1999-04-21  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_ism.c: ospf_elect_dr () and related function is changed.
-        DR Election bug fixed.
-        * ospf_dump.c: ospf_nbr_state_message (), ospf_timer_dump () Added.
-        * ospfd.c: DEFUN (show_ip_ospf_neighbor) Added.
-
-1999-04-19  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_main.c (main): access_list_init () is added for vty
-        connection filtering.
-
-1999-04-16  Toshiaki Takada  <takada@zebra.org>
-
-        * ospfd.c: DEFUN (show_ip_ospf_interface) Added.
-        * ospf_neighbor.c: ospf_nbr_count () Added.
-        
-1999-04-15  Toshiaki Takada  <takada@zebra.org>
-
-        * ospfd.h: struct ospf { } Changed.
-        * ospfd.c: ospf_lookup_by_process_id () Deleted.
-        * ospf_ism.c: ospf_wait_timer () Added. WaitTimer will work.
-
-1999-04-14  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_ism.c: ospf_elect_dr () Added.
-        * ospf_network.c: ospf_if_ipmulticast () Added.
-
-1999-04-11  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_interface.c: interface_config_write (),
-        DEFUN (if_ip_ospf_cost),
-        DEFUN (if_ip_ospf_dead_interval),
-        DEFUN (if_ip_ospf_hello_interval),
-        DEFUN (if_ip_ospf_priority),
-        DEFUN (if_ip_ospf_retransmit_interval) and
-        DEFUN (if_ip_ospf_transmit_delay) Added.
-
-1999-04-08  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_dump.c: ospf_packet_db_desc_dump () Added.
-        * ospf_neighbor.c: ospf_nbr_bidirectional () Added.
-        * ospf_nsm.c: nsm_twoway_received () Added.
-
-1999-04-02  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_neighbor.c: New file.
-        * ospf_neighbor.h: New file.
-        * ospf_nsm.c: New file.
-        * ospf_nsm.h: New file.
-        * ospf_packet.c: Add ospf_make_header (), ospf_hello () and
-        ospf_hello_send (). Now OSPFd can receive Hello and send Hello.
-
-1999-03-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_packet.c: Add ospf_recv_packet ().  Now OSPF Hello can receive.
-
-1999-03-19  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_packet.c: New file.
-        * ospf_packet.h: New file.
-        * ospf_network.c: New file.
-        * ospf_network.h: New file.
-        * ospfd.h: move OSPF message structure has moved to ospf_packet.h.
-
-1999-03-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * ospf_zebra.c (ospf_zebra_get_interface): Fix for IPv6 interface
-        address.
-
-        * Makefile.am (install-sysconfDATA): Overwrite install-sysconfDATA
-        for install ospfd.conf.sample as owner read only file.
-
-        * ospf_main.c (usage): Change to use ZEBRA_BUG_ADDRESS.
-
-1999-03-15  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_ism.c: New file.
-        * ospf_ism.h: New file.
-        * ospf_dump.c: New file.
-        * ospf_dump.h: New file.
-
-        * ospfd.h: Add (struct ospf), (struct config_network),
-        (struct message) structure.
-
-        * ospf_interface.c: Add ospf_if_match_network ().
-        * ospf_interface.h (struct ospf_interface): Change struct members.
-
-        * ospfd.c: ospf_lookup_by_process_id (), ospf_network_new (),
-        DEFUN (network_area): Added.
-
-        * ospfd.conf.sample: Change sample configuration.
-
-1999-03-05  Toshiaki Takada  <takada@zebra.org>
-
-        * ospf_interface.c: New file.
-        * ospf_interface.h: New file.
-        * ospf_zebra.h: New file.
-        * ospf_zebra.c: Add interface function for zebra daemon.
-        * ospfd.c: New file.
-
-1999-02-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * Move IPv6 codes and files to ospf6d directory.
-
-1999-02-18  Peter Galbavy  <Peter.Galbavy@knowledge.com>
-
-        * syslog support added
-
-1998-12-22  Toshiaki Takada  <takada@zebra.org>
-
-        * ospfd.h: New file.
-        * ospf_lsa.h: New file.
-
-1998-12-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-        * Makefile.am: New file.
-        * ospf_main.c: New file.
-
diff --git a/pkgsrc/ChangeLog b/pkgsrc/ChangeLog
deleted file mode 100644 (file)
index 79ade41..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-2004-08-31  Greg Troxel  <gdt@poblano.ir.bbn.com>
-
-       * Rename scripts to *.sh.in, and use autoconf-style substitution
-         for prefix and localstatedir.
-       
-2004-08-31  Greg Troxel  <gdt@poblano.ir.bbn.com>
-
-       * Makefile.am: Only put pkgsrc dir in SUBDIRS if we should install
-         rc.d files.  (Note that pkgsrc is always in DIST_SUBDIRS.)
-
-       * configure.ac (pkgsrcdir): add new --enable-pkgsrcrcdir to give a
-         directory into which www.pkgsrc.org-style rc.d files are
-         installed.
-
-
diff --git a/ripd/ChangeLog b/ripd/ChangeLog
deleted file mode 100644 (file)
index 60baef5..0000000
+++ /dev/null
@@ -1,1217 +0,0 @@
-2008-05-29 Stephen Hemminger <stephen.hemminger@vyatta.com>
-
-       * ripd.c: (rip_auth_md5) fix bogus empty string test
-
-2008-03-13 Paul Jakma <paul.jakma@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.
-
-2007-04-27 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ripd.c: (rip_vty_out_uptime) Remove unused variable timer_now.
-
-2007-04-11 Emmanuel Vize <emmanuel.vize@6wind.com>
-
-       * ripd.c: (rip_vty_out_uptime) Use new thread_timer_remain_second
-         to display properly the route timeout, displayed by "show ip rip"
-
-2007-03-21 Andrew J. Schorr <ajschorr@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.
-
-2006-12-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * 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.
-
-2006-09-11 Paul Jakma <paul.jakma@sun.com>
-
-       * ripd.c: (rip_read) remove gratuitous use of mid-function
-         declaration of vrecv, bug #278.
-       * rip_routemap.c: (route_set_metric) underflow check needs to
-         use signed, problem identified and diagnosed by Pavel
-         Nikiforov in bug #293.
-
-2006-06-29 Paul Jakma <paul.jakma@sun.com>
-
-       * rip_zebra: (general) convert redistribute commands to use
-         the auto-generated defines.
-
-2006-05-04 Paul Jakma <paul.jakma@sun.com>
-
-       * (general) Fixes for bugs #261 and 262. Thanks to
-         Konstantin V. Gavrilenko <kos@arhont.com> for the problem
-         reports, testing of a series of proposed patches and comment
-         on the proposed changes in behaviour.
-       * rip_interface.c: (ip_rip_authentication_mode_cmd) Parse all
-         of the command before making any changes to configured state.
-       * ripd.c: (rip_read) RIP version control should be absolute and
-          always apply, fixes bug #261 by allowing RIPv1 to be disabled.
-         Fix bug #262: If authentication is enabled, then
-         unauthenticated packets should not be accepted. We do however
-         make an exception for RIPv1 REQUEST packets, to which we will
-         reply as RIPv1 can now be disabled fully, to allow ripd to
-         still provide routing /information/ to simple devices.
-2006-04-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ripd.c: (rip_update_process) Try to fix the logic for sending
-         an updated on each connected network.  The new code will
-         attempt to send the update on each connected network, whereas
-         the previous code seemed to be attempting to avoid sending
-         more than one RIPv1 update on a given interface, but was coded
-         incorrectly.  The actual effect of the old code was to send
-         an update only on the first connected address in the cases
-         where the interface is not multicast, or RIPv2 is not being used.
-
-2006-01-30 Alain Ritoux <alain.ritoux@6wind.com>
-
-        * ripd.c: correct bug that allowed route learnt through RIP to take
-         precedence over connectd routes
-
-2006-01-19 Paul Jakma <paul.jakma@sun.com>
-
-        * ripd.c: (main) return from main, not exit, cause it annoys SOS.
-
-2006-01-17 Paul Jakma <paul.jakma@sun.com>
-
-       * ripd.c: (rip_auth_md5) remove pdigest, not needed.
-         Use a local buffer for the auth_str, where it can be properly 
-         nul padded. Do so, hence fixing MD5 authentication.  
-         Key looked up via key ring should be used in preference to 
-         the RIPv1 simple password, not other way around.
-         No need to copy around digests, we can reference them
-         directly.
-         The auth_len received can't be trusted, some implementations
-         lie (e.g. older ripd).
-         (rip_auth_md5_ah_write) rename len local variable to doff
-         to be consistent with other functions.
-         (rip_auth_header_write) add the missing return.
-         (rip_auth_md5_set) use the proper constructs to access stream.
-         
-2005-10-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ripd.c: (rip_response_process) Instead of calling
-         rip_interface.c:if_valid_neighbor(), call the equivalent
-         library function if_lookup_address().
-       * rip_interface.c: (if_valid_neighbor) Remove function, since it is
-         essentially equivalent to the if_lookup_address() library function.
-       * ripd.h: (if_valid_neighbor) Remove function declaration.
-
-2005-10-28 Paul Jakma <paul.jakma@sun.com>
-
-       * Makefile.am: Add rip_interface.h, or else it doesn't get
-         included in dists.
-
-2005-10-26 Paul Jakma <paul.jakma@sun.com>
-
-       * (general) static/extern functions and definitions.
-       * rip_interface.h: new file, export the public functions from
-         rip_interface.c
-       * ripd.c: Update couple more functions to specify void
-         explicitely.
-
-2005-10-17 Vincent Jardin <vincent.jardin@6wind.com>
-
-       * ripd.c: rip_create_socket() for each packet, it does not bind to the
-         proper interfaces because we forget to use the from address when
-         it is specified.
-
-2005-10-06 Alain Ritoux <alain.ritoux@6wind.com>
-
-       * rip_interface.c: Now the command "no ip rip split-horizon
-         poisoned-reverse" just inhibates the poisoned-reverse effects
-         but keep spli-horizon activ.
-
-2005-10-01 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * rip_zebra.c: (config_write_rip_redistribute): Remove local hard-coded
-         table str[]. Replace str[] with calls to new library function
-         zebra_route_string().
-       * ripd.c: Remove local hard-coded table route_info[].
-         (show_ip_rip) Replace uses of str[] with calls to new library
-         functions zebra_route_char and zebra_route_string.
-
-2005-09-29 Alain Ritoux <alain.ritoux@6wind.com>
-
-       * rip_snmp.c: rip2IfConfReceive() sends values in conformance
-         with RFC. Also PeerDomain is now set to a STRING type.
-       * ripd.h: rip_redistribute_add() API includes metric and distance
-         added field external_metric in routes.
-       * ripd.c: rip_redistribute_add() API i.e. stores metric and distance
-      Now allows a RIP-route to overcome a redistributed route coming
-         from a protocol with worse (higher) administrative distance
-         Metrics from redistribution are shown in show ip rip
-       * rip_zebra.c: adapt to the rip_redistribute_add() API, i.e.
-         provide distance and metric
-       * rip_interface.c: adapt to the rip_redistribute_add() API
-       * rip_routemap.c: no RMAP_COMPILE_ERROR on (metric > 16) usage
-         rather a CMD_WARNING, because set metric ius shared with other
-         protocols using larger values (such as OSPF)
-         The match metric action takes first external metric if present
-      (from redistribution) then RIP metric.
-
-2005-09-28 Alain Ritoux <alain.ritoux@6wind.com>
-
-       * ripd.c: use new md5 API
-
-2005-08-16 Paul Jakma <paul.jakma@sun.com>
-
-       * ripd.c: (general) Fix previous commit, broke multicast bind and
-         hence setting of source port, which broke communication with
-         non-borken ripd. Fix removes more stuff from rip_interface.c
-         than it adds to ripd.c ;)
-         (rip_create_socket) the to argument really is a from argument,
-         rename it. Set the source port to RIP port unconditionally, it's
-         required.
-         (rip_send_packet) Set from address correctly for multicast.
-         (rip_output_process) trivial: num can be BSS specified, rather
-         than in body.
-       * rip_interface.c: (rip_interface_multicast_set) strip out
-         redundant stuff related to bind, which rip_create_socket does.
-         Just make it set the multicast socket option, as per the
-         interface concerned, no more.
-
-2005-06-03 Paul Jakma <paul.jakma@sun.com>
-
-       * ripd.c: (rip_create_socket) move it up so rip_send_packet
-         can use it too. Make it static. Remove the getservbyname stuff,
-         as RFC2453 3.9.2 says non-RIP port messages should be discarded,
-         quagga doesnt accept them, no need to lookup port.
-         Take a 'to' argument, if socket should be bound to something else.
-         setsockopt_so_recvbuf might need privs, move it to the raised
-         privileges section.
-         dont forget to close the socket if bind fails.
-         (rip_send_packet) use strncpy, just in case (address is under
-         our control anyway, but still).
-         dont duplicate rip_create_socket - just use it.
-         (rip_create) rip_create_socket takes an argument now, modify.
-         
-2005-06-01 Paul Jakma <paul.jakma@sun.com>
-
-       * rip_interface.c: Fix authentication, no-auth impossible to specify
-         (rip_interface_new) default to RIP_NO_AUTH
-         (rip_interface_reset) ditto
-         (rip_interface_config_write) write out config for simple
-         
-2005-05-29 Paul Jakma <paul@dishone.st>
-
-       * ripd.c: (rip_output_process) fix error which crept in my
-         previous rip auth untanglement commit - it had become impossible
-         to not have authentication (even for v1).
-       
-2005-05-28 Hasso Tepper <hasso at quagga.net>
-
-       * rip_routemap.c: Fix set_metric_addsub_cmd help, it's not about BGP
-         metric.
-
-2005-05-26 Hasso Tepper <hasso at quagga.net>
-
-       * rip_routemap.c: In case of '0.0.0.0' used as 'nexthop', use sender
-         address as nexthop in routemap.
-
-2005-05-26 Hasso Tepper <hasso at quagga.net>
-
-       * rip_routemap.c: Make "match interface" routemap command match both -
-         in and out interfaces.
-
-2005-05-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * rip_interface.c (rip_interface_add): Need to call
-         rip_passive_interface_apply (was already calling it in
-         rip_interface_up).
-
-2005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * rip_zebra.c (rip_redistribute_set, rip_redistribute_unset,
-         rip_redistribute_clean): Change 2nd arg to zebra_redistribute_send
-         from zclient->sock to zclient.
-
-2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * rip_interface.c: (rip_interface_delete) After deleting, set
-         ifp->ifindex to IFINDEX_INTERNAL.
-
-2005-02-04 Paul Jakma <paul@dishone.st>
-
-       * ripd.c: Untangle the construction of RIP auth data.
-         (rip_auth_prepare_str_send) new helper function, prepare
-         correct key string.
-         (rip_auth_simple_write) new helper, write out the
-         rip simple password auth psuedo-RTE.
-         (rip_auth_md5_ah_write) new helper, write out the
-         MD5 auth-header psuedo-RTE.
-         (rip_auth_header_write) new helper, write out correct
-         auth header data / psuedo-RTE.
-         (rip_auth_md5_set) rip out the memmove and writing of the
-         auth header psuedo-RTE. So that all that is left is to
-         write the trailing auth digest, and update digest offset
-         field in the original header.
-         (rip_write_rte) rip out writing of RIP header, writing of
-         simple auth data psuedo-RTE. Make it do what its name suggests,
-         write out actual RTEs.
-         (rip_output_process) remove the incorrect additional decrements 
-         of rtemax. Prepare the auth_str, which simple or MD5 auth will
-         need. Move write out of RIP header and auth data to inside the
-         loop. Adjust paramaters as required.
-
-2005-01-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ripd.c: (rip_create_socket) Replace perror with zlog_err.
-
-2005-01-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ripd.c: (rip_create_socket) Save errno before calling
-         ripd_privs.change.
-
-2005-01-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ripd.c: (rip_recvmsg) Use ZCMSG_FIRSTHDR instead of CMSG_FIRSTHDR.
-
-2004-12-15 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ripd.c: (rip_read) Improve 2 error messages to show the source of
-         the packet when the lookup fails.
-
-2004-12-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * *.c: Change level of debug messages to LOG_DEBUG.
-
-2004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * rip_main.c: (main) The 2nd argument to openzlog has been removed.
-
-2004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * rip_main.c: (sigint) Use zlog_notice for termination message.
-         (main) Add a startup announcement using zlog_notice.
-
-2004-11-25 Hasso Tepper <hasso at quagga.net>
-
-       * rip_main.c: Make group to run as configurable.
-
-2004-10-22 Paul Jakma <paul@dishone.st>
-
-       * ripd.c: Collapse redundant passing of various address structs,
-          struct interface and struct connected as arguments to functions
-          down to two key arguments, namely struct connected and, possibly,
-          address of source/destination. Testing for RIPv1 would be useful.
-          (rip_read) lookup struct connected for the received packet, pass
-          it on.
-        * rip_interface.c: With previous changes, we no longer have to tread
-          carefully with struct connected, as it will always be there and
-          valid.
-
-2004-10-19 Andrew J. Schorr <aschorr@telemetry-investments.com>
-
-       * ripd.c: (rip_update_interface) if connected->destination is NULL,
-         get the broadcast address with ipv4_broadcast_addr()
-       * rip_interface.c: (rip_interface_multicast_set)
-         connected->destination may be NULL. Improve message if
-         setsockopt_multicast_ipv4 fails. Improve message if bind fails.
-         (rip_request_interface_send) If connected->destination is NULL,
-         get the broadcast address with ipv4_broadcast_addr().
-         (if_valid_neighbor) Handle PtP subnet addressing properly.
-         Speed up code by using prefix_match properly.
-
-2004-10-13 Hasso Tepper <hasso at quagga.net>
-
-       * ripd_snmp.c: Remove defaults used to initialize smux connection to
-         snmpd. Connection is initialized only if smux peer is configured.
-
-2004-10-11 Hasso Tepper <hasso at quagga.net>
-
-       * *.c: Make more strings const.
-
-2004-10-08 Hasso Tepper <hasso at quagga.net>
-
-       * *.c: Fix compiler warnings: make strings const, signed -> unsigned
-         etc.
-
-2004-09-26 Hasso Tepper <hasso at quagga.net>
-
-       * ripd.c: Fix compiler warning.
-
-2004-09-23 Hasso Tepper <hasso at quagga.net>
-
-       * *.[c|h]: list -> struct list *, listnode -> struct listnode *.
-
-2004-09-17 Paul Jakma <paul@dishone.st>
-
-       * ripd.c: set receive buffer to a decent size, some systems have low
-         defaults. Problem noted and fix suggested by Stephan Schweizer
-         in [zebra 20967].
-
-2004-08-19 Paul Jakma <paul@dishone.st>
-
-       * rip_interface.c: (rip_interface_multicast_set) get rid
-         of extraneous if_pointopoint arg. ifp is accessible via connected.
-         pass connected->ifp->ifindex to setsockopt_multicast_ipv4.
-       * ripd.c: (rip_send_packet) update call to
-         rip_interface_multicast_set
-       * ripd.h: update rip_interface_multicast_set prototype
-       
-2004-06-11 Sowmini Varadhan <sowmini.varadhan@sun.com>
-
-       * ripd.c: (rip_distribute_update_all) distribute list hook
-         function pointer prototype requires struct prefix_list * arg.
-         (rip_distribute_update_all_wrapper) update to pass required arg,
-         NULL.
-        
-2004-06-06 Paul Jakma <paul.jakma@sun.com>
-
-       * ripd.h: Add define for the RIPv2 Authentication Data family
-         Move the auth type defines up to where other defines live.
-         Add RIP_AUTH_MD5_COMPAT_SIZE, for backwards compatible
-         md5->auth_len size. Add md5_auth_len field to struct
-          rip_interface: (rip_interface_new) Init md5_auth_len to compatible 
-          size.
-          (ip_rip_authentication_mode_cmd) Extended to handle setting
-          md5 auth-length. Appropriate aliases added.
-          (no_ip_rip_authentication_mode_cmd) Reset md5_auth_len to
-          compatible size.
-          (rip_interface_config_write) Teach it about md5_auth_len.
-          _always_ write out the auth-length, so that everyone will get
-          the setting in their config file, and hence allow for a future
-          change of default for md5_auth_len to be less painful - every md5
-          user will have this setting in their config file.
-          ripd.c: (rip_packet_dump) Change nasty hard coded constants to 
-          symbolic defines. Change various tests of 'ntoh.(variable) ==
-          constant' to test 'variable == ntoh.(constant)'. Clean up
-          indentation on some long lines.
-          (rip_auth_simple_password) ditto.
-          (rip_auth_md5) ditto, also add length argument and sanity check 
-          md5 data offset field. Sanity check md5 auth length, accept RFC
-          or old-ripd/cisco lengths.
-          (rip_auth_md5_set) as per (rip_packet_dump), also write out
-          the configured md5 auth length for the interface (old-ripd or rfc)
-          (rip_read) as per (rip_packet_dump)
-          (rip_write_rte) ditto
-          (rip_response_process) ditto
-          (rip_write_rte) ditto
-          
-2004-06-04 JJ Ludman <jacques.ludman@sun.com>
-
-       * ripd.c: Interoperability fix. Correct value for MD5 auth length
-         is 16. Accept packets with this set to >= 16, and set to 16
-          ourselves.
-
-2004-05-31 Sowmini Varadhan <sowmini.varadhan@sun.com>
-
-       * ripd.c: Fixup compile warnings
-       * rip_routemap.c: Ditto
-       
-2004-05-08 Paul Jakma <paul@dishone.st>
-
-       * rip_zebra.c: sync with zclient changes.
-       * rip_interface.c: ditto.
-
-2004-05-05 Anthony.Golia@morganstanley.com
-
-       * ripd.c: (rip_update_jitter) Bound jitter to a more sensible
-         value, eg 1/4 of update time.
-         
-2004-05-03 Paul Jakma <paul@dishone.st>
-
-       * ripd.c: (rip_rte_process) fix typo in merge of previous patch
-         and run function through indent.
-       
-2004-03-19 Jean-Yves Simon <lethalwp@tiscali.be>
-
-       * ripd.c: (rip_rte_process) make ripd also check on 
-         administrative distance of his own links to update routes.
-
-2004-03-18 sowmini.varadhan@sun.com
-
-       * ripd.c: rip_send_packet can get null connected address when
-         called in response to a unicast rip-request. Handle correctly.
-
-2004-03-03 Krzysztof Oledzki <oleq@ans.pl>
-
-       * ripd.c: fix "show ip rip" and per interface rip version selection.
-
-2004-01-23 sowmini.varadhan@sun.com
-
-       * rip_interface.c: obsolete unbind code in
-       rip_interface_multicast_set, and instead do the more portable
-       (though slower) method of creating a socket for each outgoing packet
-       and binding the source address on the new socket.
-        * rip_interface.c, ripd.c, ripd.h: Modify rip_request_send so that
-        source address is determined by the caller of rip_request_send for
-        ripv1 packets and non-multicast interfaces (rip_request_send loops
-        over all connected address in all other cases).
-        * rip_send_packet: don't send packets with source set to
-        ZEBRA_IFA_SECONDARY connected addresses; improved debug messages;
-
-2003-06-07 Andrew J. Schorr <aschorr@telemetry-investments.com>
-
-       * Allow ripd to receive RIPv1
-       * add default as valid param to passive-interface command
-
-2003-05-25 Vincent Jardin <vjardin@wanadoo.fr>
-
-       * 6Wind patch merge.
-
-2003-04-19 Hasso Tepper <hasso@estpak.ee>
-
-       * rip_routemap.c: sync daemon's route-map commands to have same
-       syntax
-
-2002-07-07  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.93 released.
-
-2002-06-30  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * ripd.c (rip_output_process): When outgoing interface is same as
-       next hop interface, announce RIPv2 next hop otherwise set next hop
-       to 0.  Revert previous change then take 6WIND way.
-
-2001-09-14  Akihiro Mizutani <mizutani@dml.com>
-
-       * ripd.c: RIP enabled interface's route is advertised by default.
-
-2001-08-28  NOGUCHI Kay <kay@v6.access.co.jp>
-
-       * rip_snmp.c (rip_ifaddr_delete): Add route_node_lookup() return
-       value check.
-
-       * rip_interface.c (rip_multicast_leave): Fix bug of multiple IP
-       address on one interface multicast join/leave bug.
-
-2001-08-26  NOGUCHI Kay <kay@v6.access.co.jp>
-
-       * rip_interface.c (no_rip_passive_interface): Add NO_STR.
-
-2001-08-19  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.92a released.
-
-2001-08-15  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.92 released.
-
-2001-06-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_routemap.c (route_match_ip_address_prefix_list): Add match
-       ip next-hop prefix-list WORD.
-
-2001-02-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_interface.c (rip_passive_interface_clean): Call
-       rip_passive_interface_apply_all.
-
-2001-02-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_response_process): Multicast address nexthop check
-       is moved from rip_nexthop_check.
-
-2001-02-08  Matthew Grant <grantma@anathoth.gen.nz>
-
-       * rip_interface.c (ipv4_multicast_join): Use
-       setsockopt_multicast_ipv4.
-       (ipv4_multicast_leave): Likewise.
-       (rip_if_ipv4_address_check): Interface which has IPv4 address can
-       be enabled.
-
-2001-02-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_interface.c (rip_interface_delete): To support pseudo
-       interface do not free interface structure.
-       * ripd.c (rip_output_process): If output interface is in simple
-       password authentication mode, we need space for authentication
-       data.
-
-2001-02-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_nexthop_check): Fix multicast address nexthop check.
-
-       * zebra-0.91 is released.
-
-2001-01-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (show_ip_rip): Show metric infinity route's timeout.
-       (rip_rte_process): If current route is metric infinity, route is
-       replaced with received rte.
-       (rip_redistribute_delete): When redistribute route is deleted,
-       perform poisoned reverse.
-       (rip_redistribute_withdraw): Likewise.
-
-2001-01-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_response_process): RIPv2 routing table entry with
-       non directly reachable nexthop was dropped.  The code is changed
-       to treat it as 0.0.0.0 nexthop.
-       (rip_destination_check): Check net 0 address destination.
-       (rip_nexthop_check): New function for checking nexthop address
-       validity.
-
-2001-01-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_request_process): Triggered update only send changed
-       route.
-
-       * rip_interface.c: Delete RIP_API part until new implementation
-       comes out.
-
-       * rip_snmp.: Likewise.
-
-       * rip_zebra.c: Likewise.
-
-       * ripd.c: Likewise. 
-
-2001-01-11  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_interface.c (rip_if_init): Remove HAVE_IF_PSEUDO part.
-
-2001-01-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.90 is released.
-
-2001-01-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.h (RIP_VTYSH_PATH): Change "/tmp/ripd" to "/tmp/.ripd".
-
-2000-12-25  David Lipovkov <davidl@nbase.co.il>
-
-       * ripd.c (rip_rte_process): When a route is in garbage collection
-       process (invalid with metric 16) and a router receives the same
-       route with valid metric then route was not installed into zebra
-       rib, but only into ripd rib. Moreover , it will never get into
-       zebra rib, because ripd wrongly assumes it's already there.
-       (rip_redistribute_add): When doing redistribute into rip other
-       route (e.g. connected) and the same route exists in ripd rib we
-       changed it in place - bug. Now we don't forget to remove old route
-       from zebra.
-       (rip_timeout): When removing routes from zebra I made sure that we
-       remove route with the metric we have in zebra and not the new
-       one. It doesn't make a difference now,but could be significant
-       when multipath support is done.
-
-2000-12-25  David Lipovkov <davidl@nbase.co.il>
-
-       * rip_zebra.c (rip_metric_unset): Fix bug of metric value unset.
-
-2000-11-25  Frank van Maarseveen <F.vanMaarseveen@inter.NL.net>
-
-       * ripd.c (rip_request_process): Check passive flag of the
-       interface.
-
-2000-11-23  Frank van Maarseveen <F.vanMaarseveen@inter.NL.net>
-
-       * rip_interface.c (rip_multicast_join): When IP_ADD_MEMBERSHIP
-       failed do not set runnning flag to the interface.
-
-2000-11-16  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_output_process): Memory leak related classfull
-       network generation is fixed.
-
-2000-11-16  Frank van Maarseveen <F.vanMaarseveen@inter.NL.net>
-
-       * rip_interface.c (if_check_address): Obsolete pointopoint address
-       check is removed.
-
-2000-11-02  Frank van Maarseveen <F.vanMaarseveen@inter.NL.net>
-
-       * rip_interface.c (if_check_address): Add pointopoint address
-       check.
-       (rip_interface_up): Add check for passive interface when interface
-       goes up.
-
-2000-10-23  Jochen Friedrich <jochen@scram.de>
-
-       * rip_snmp.c: rip_oid and ripd_oid are used in smux_open after it
-       is registered.  So those variables must be static.
-
-2000-10-19  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_interface.c: Change to "no ip rip (send|receive)" command
-       accept version number argument.
-
-2000-10-17  Akihiro Mizutani <mizutani@dml.com>
-
-       * rip_routemap.c (route_set_ip_nexthop_compile): Change "match ip
-       next-hop" from IP address to access-list name.
-
-2000-10-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_peer.c: Change ot use linklist.c instaed of newlist.c.
-
-2000-10-16  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_offset.c: Change to use linklist.c instead of newlist.c.
-
-2000-10-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.89 is released.
-
-2000-09-26  Akihiro Mizutani <mizutani@dml.com>
-
-       * rip_routemap.c (match_ip_nexthop): Add next-hop format check.
-
-2000-09-18  David Lipovkov <dlipovkov@OpticalAccess.com>
-
-       * rip_interface.c (ripd_api_get_if_rx_version): Corrects rip SNMP
-       and rip API functions dealing with rip version.
-
-       * rip_snmp.c (Status_Valid): SNMPv2-TC TEXTUAL-CONVENTION.
-
-2000-09-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_snmp.c (rip2IfLookup): Use rip_ifaddr_lookup_next() instead
-       of rip_if_lookup_next().
-
-       * rip_interface.c (rip_enable_network_lookup): Interface enable
-       check by interface's address with /32 prefix.
-
-       * ripd.c (rip_read): When RIP is configured with authentication
-       and no authentication in incoming packet, drop the packet.
-
-       * rip_interface.c (rip_interface_reset): RIP_AUTH_SIMPLE_PASSWORD
-       is default mode of authentication.
-       (rip_interface_new): Likewise.
-       (no_ip_rip_authentication_mode): Likewise.
-
-       * ripd.c (rip_read): Likewise.
-
-2000-09-10  David Lipovkov <davidl@nbase.co.il>
-
-       * rip_snmp.c: Set ASN_INTEGER v->type where it is needed.
-
-2000-09-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_auth_simple_password): Simple password
-       authentication using key-chain.
-       (rip_write_rte): Likewise.
-
-       * rip_interface.c (ip_rip_authentication_key_chain): Add check for
-       authentication string configuration.
-
-2000-09-08  Akihiro Mizutani <mizutani@dml.com>
-
-       * ripd.c (rip_write_rte): Add check for ri->auth_str.
-
-2000-09-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd_api.h: New file is added.
-
-2000-08-22  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_rte_process): rip_route_process() is renamed to
-       rip_rte_process() to clarify meanings of the function.
-       rip_route_process() is newly added to process RIP route selection.
-
-2000-08-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_incoming_filter): Extract incoming filter code to
-       function from rip_route_process(). Add check for all interface
-       filter.
-       (rip_outgoing_filter): Extract incoming filter code to function
-       from rip_output_process().  Add check for all interface filter.
-
-       * rip_zebra.c (rip_redistribute_clean): Reset redistribute status
-       when "no router rip" is performed.
-
-       * rip_interface.c (rip_interface_clean): Reset interface's RIP
-       enable status.
-
-2000-08-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_route_process): When metric infinity is received the
-       route is removed from service immediately.
-       (rip_timeout): Likewise.
-       (rip_garbage_collect): Do not delete route in garbage collection.
-       (rip_output_process): Check metric_out exceed metric infinity.
-
-       * zebra-0.88 is released.
-
-2000-08-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_distance_apply): Unlock node when there is matched
-       node.
-
-2000-08-13  Akihiro Mizutani <mizutani@dml.com>
-
-       * rip_routemap.c (match_ip_nexthop): Add check for IP address
-       validness.
-       (no_set_metric): Add new ALIAS.
-
-2000-08-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.h (struct rip ): Add distance.
-
-2000-08-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_zebra.c (rip_zebra_ipv4_add): Use new Zebra api to register
-       routes.  Pass RIP metric value to zebra.
-
-2000-08-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_main.c (main): Make struct thread thread from global
-       variable to local variable in main.
-
-2000-08-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_packet_dump): Add MD5 authentication dump function.
-       (rip_auth_md5): RIP MD5 authentication packet receive works.
-
-2000-08-02  David Lipovkov <davidl@nbase.co.il>
-
-       * rip_interface.c (rip_if_init): Install interface "pseudo"
-       commands.
-       (rip_interface_delete): Do not call if_delete() when interface is
-       pseudo interface.
-
-2000-07-31  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_interface.c (ip_rip_authentication_mode): "ip rip
-       authentication mode (md5|text)" is added.
-       (ip_rip_authentication_key_chain): "ip rip authentication
-       key-chain KEY-CHAIN" is added.
-       (rip_interface_clean): Clean all interface configuration.
-       (rip_interface_reset): Reset all interface configuration.
-       (rip_clean_network): Clean rip_enable_network.
-
-       * ripd.h (struct rip_interface): Add key_chain member.
-
-       * ripd.c: Include md5-gnu.h.
-
-2000-07-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.h (RIP_NO_AUTH): Change RIP_NO_AUTH value from 1 to 0.
-
-       * ripd.c (rip_authentication): Use RIP_AUTH_SIMPLE_PASSWORD
-       instead of raw value 2.
-       (rip_write_rte): Likewise.
-       (rip_write_rte): Check ri->auth_type instead of ri->auth_str.
-
-2000-07-30  David Lipovkov <davidl@nbase.co.il>
-
-       * rip_interface.c (rip_if_down): Do not delete ZEBRA_ROUTE_KERNEL
-       route.
-
-2000-07-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_update_process): Add "passive-interface" command.
-
-       * ripd.h (struct rip_interface): Add passive member to struct
-       rip_interface.
-
-2000-07-24  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_interface.c (rip_if_init): Multiple RIP routes for one
-       prefix change.  The codes are enclosed by #ifdef NEW_RIP_TABLE.
-
-2000-07-24  Akihiro Mizutani <mizutani@dml.com>
-
-       * rip_interface.c (rip_if_init): Use install_default() for
-       INTERFACE_NODE.
-
-2000-07-24  Kunihiro Ishiguro <kunihiro@zebra.org>
-
-       * ripd.c: First update timer will be invoked in two seconds.
-
-2000-07-09  Jochen Friedrich <jochen@scram.de>
-
-       * rip_snmp.c: Local function definitions to static.  Add INTEGER
-       ASN_INTEGER and TIMETICKS ASN_TIMETICKS definition.
-       (rip2PeerLookup): Peer with domain lookup implemented.
-       (rip2PeerTable): Temporary disable RIP2PEERLASTUPDATE value
-       support due to unknown SNMP agent startup time.
-
-2000-07-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.h: Sweep obsolete definitions.
-
-       * rip_interface.c (rip_split_horizon): Add "ip split-horizon"
-       command.
-
-       * ripd.c (rip_output_process): Remove split_horizon argument.
-       (rip_update_process): Likewise.
-
-       * ripd.h (struct rip_interface): Add split_horizon flag to struct
-       rip_interface.
-
-2000-07-04  Akihiro Mizutani <mizutani@dml.com>
-
-       * ripd.c (rip_version): Change VERSION to <1-2>.
-       Add "no version" command.
-
-2000-07-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_zebra.c (rip_redistribute_type_metric): "redistribute TYPE
-       metric <0-16>" command is added.
-
-       * rip_routemap.c (route_set_metric): Set metric_set when metric is
-       modified.
-
-       * ripd.h (struct rip_info): To check route-map set metric or not,
-       new member metric_set is added to struct rip_info.
-
-       * ripd.c (rip_route_process): Move metric handling code from
-       rip_response_process() to rip_route_process().
-       (rip_output_process): Set output offset-list metric.
-
-2000-07-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_offset.c (rip_offset_list): New file for offset-list.
-
-2000-07-02  Akihiro Mizutani <mizutani@dml.com>
-
-       * ripd.h (struct rip ): Add default_metric.
-
-       * ripd.c (rip_default_metric): "default-metric <1-16>" command is
-       added.
-       (config_write_rip): Change configuration order.
-       
-       * rip_zebra.c: Fix help strings.
-
-2000-07-02  David Lipovkov <davidl@nbase.co.il>
-
-       * rip_interface.c (rip_if_init): Add IF_DELETE_HOOK.
-
-2000-07-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_output_process): If specified route-map does not
-       exist, it treated as deny all.
-
-2000-06-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_routemap.c (rip_route_map_init): Call rip_route_map_update
-       when route-map is deleted.
-
-2000-06-28  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_routemap.c (set_metric): For consistency with bgpd's set
-       metric, value range is set to <0-4294967295>.
-       
-2000-06-28  David Lipovkov <davidl@nbase.co.il>
-
-       * rip_routemap.c (rip_route_map_update): Add check for rip is
-       enabled or not for avoid core dump.
-
-       * rip_debug.c (debug_rip_packet_direct): Fix bug of setting
-       rip_debug_packet flag.
-
-2000-06-13  David Lipovkov <davidl@nbase.co.il>
-
-       * rip_interface.c (rip_interface_delete): All work is done in
-       rip_if_down().
-
-2000-06-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_redistribute_delete): Fix bug of missing
-       route_unlock_node() when redistribute route is not found.
-
-2000-06-05  Akihirof Mizutani <mizutani@dml.com>
-
-       * rip_debug.c (rip_debug_init): Disable show debugging in
-       VIEW_NODE like other protocol daemon.
-
-       * rip_routemap.c: Change command argument to more comprehensive.
-
-       METRIC       -> <0-16>
-       IFNAME       -> WORD
-       IP_ADDR      -> A.B.C.D
-       ACCSESS_LIST -> WORD
-
-2000-06-05  David Lipovkov <davidl@nbase.co.il>
-
-       * rip_interface.c (rip_interface_delete): Delete all routes
-       include static and kernel through the interface , because even if
-       the interface is added again there is no guarantee that it will
-       get the same ifindex as before.
-
-2000-05-31  Akihirof Mizutani <mizutani@dml.com>
-
-       * rip_debug.c: Fix rip debug help string.
-
-2000-04-27  Mirko Karanovic <mkaranov@torsel.alcatel.com>
-
-       * rip_interface.c (rip_interface_down): Remove interface from
-       multicast group when interface goes down.
-
-2000-04-03  David Lipovkov <davidl@nbase.co.il>
-
-       * rip_interface.c (rip_interface_down): Implemented rip functions
-       for interface up/down events: rip_interface_up() and
-       rip_interface_down()
-
-2000-03-16  David Lipovkov <davidl@nbase.co.il>
-
-       * rip_zebra.c (rip_zclient_init): Added rip functions for
-       interface up/down events.
-
-2000-02-15  Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp>
-
-       * ripd.c (rip_write_rte): "set metic" in route-map has no effect
-       for RIPv1 in ripd.  It worked fine for RIPv2.
-
-2000-01-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (show_ip_protocols_rip): Fix bug of "show ip protocls"
-       mis-display RIP version.
-
-       * ripd.h (struct rip_peer): Add timeout thread to rip_peer
-       structure.
-
-2000-01-16  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_peer.c: Add new file for supporting RIP peer.
-
-1999-12-26  David Lipovkov <davidl@nbase.co.il>
-
-       * ripd.c (rip_authentication): RIP authantication string is 16
-       bytes long.
-
-1999-12-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_read): Add check for minimum packet length.
-       Authentication check is moved from rip_process_response() to
-       rip_read().  Patch from David Lipovkov <davidl@nbase.co.il> is
-       applied then add rte number check by Kunihiro Ishiguro
-       <kunihiro@zebra.org>.
-
-1999-12-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_response_process): In case of packet is RIPv2 and
-       network is non zero and netmask is zero, apply netmask rule as
-       same as RIPv1.
-
-1999-11-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_timers): Fix bug of timers basic argument format.
-
-1999-11-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_snmp.c (rip2IfConfAddress): Forgot to include
-       RIP2IFCONFDOMAIN.
-
-1999-10-28  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.h (struct rip_peer): New structure added.
-
-1999-10-26  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_zebra.c (rip_zebra_ipv4_add): Increment
-       rip_global_route_changes when route change occur.
-       (rip_zebra_ipv4_delete): Likewise.
-
-       * ripd.c (rip_request_process): Increment rip_global_queries when
-       reply to the query is sent.
-
-1999-10-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_debug.c (rip_debug_reset): Reset function added.
-
-       * ripd.c (rip_update_process): Logging bug is fixed. 
-
-1999-10-10  Marc Boucher <marc@mbsi.ca>
-
-       * ripd.c (config_write_rip): Add config_write_distribute() call.
-
-1999-09-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_distribute_update): Fix bug of access-list
-       prefix-list updates.
-
-1999-09-10  VOP <vop@unity.net>
-
-       * rip_zebra.c: Add redistribute route-map feature.
-
-1999-09-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_response_process): Add check for given prefix is
-       given mask applied one.
-
-1999-09-03  VOP <vop@unity.net>
-
-       * rip_interface.c (rip_interface_multicast_set): Bug fix about
-       setting multicast interface.
-
-1999-09-02  VOP <vop@unity.net>
-
-       * rip_routemap.c: New file added.
-
-1999-09-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (show_ip_protocols_rip): Show next update time.
-       (show_ip_protocols_rip): Show redistribute information.
-
-1999-08-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * RIPv2-MIB.txt: New file added.
-
-       * rip_snmp.c: New file added.
-
-1999-08-24  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_interface.c (ip_rip_authentication_string): RIPv2
-       authentication command is added.
-
-1999-08-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_interface.c (rip_interface_multicast_set): Process of
-       setting IP_MULTICAST_IF on specific interface.
-
-       * ripd.c (rip_read): Add packet size check.
-
-1999-08-16  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_request_process): Fill in RIP_METRIC_INFINITY with
-       network byte order using htonl ().
-       (rip_response_process): Pass host byte order address to IN_CLASSC
-       and IN_CLASSB macro.
-
-1999-08-08  davidm@nbase.co.il (David Mozes)
-
-       * rip_zebra.c (rip_zebra_read_ipv4): Fix split horizon problem.
-
-1999-07-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_timer_set): Function added.
-
-1999-07-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_debug.c: New file added.
-       rip_debug.h: New file added.
-
-1999-07-01  Rick Payne <rickp@rossfell.co.uk>
-
-       * rip_zebra.c (zebra_init): Install standard commands to
-       ZEBRA_NODE.
-
-1999-06-01  David Luyer <luyer@ucs.uwa.edu.au>
-
-       * ripd.c (rip_process_route): Add support for RIP version 1.
-
-1999-05-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_zebra.c: Change to use lib/zclient.[ch].
-
-1999-05-20  Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>
-
-       * ripd.c (rip_add_route): Change the existance route's metric check
-          to the condition specified by RFC2453. 
-       
-1999-05-17  Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>
-
-       * ripd.c (rip_process_route): Add the if metric to the route metric.
-
-       * ripd.c (rip_add_route): Deleted add if metric to the route.
-
-1999-05-16  Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>
-
-       * rip_interface.c (if_valid_neighbor): New function.
-
-       * ripd.c (rip_process_route): Added check whether the datagram
-       is from a valid neighbor.
-       
-1999-05-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_process_route): Set interface pointer to rinfo.
-
-1999-05-15  Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>
-
-       * ripd.c (rip_check_address): Unicast and not net 0 or 127 check
-       added.
-
-1999-05-14  Stephen R. van den Berg <srb@cuci.nl>
-
-       * rip_main.c (signal_init): SIGTERM call sigint.
-       (sigint): Loggging more better message.
-
-1999-05-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_add_route): Fix previous route_unlock_node() chenge.
-
-       * rip_main.c (main): Change default zlog output to ZLOG_STDOUT for
-       debugging.
-
-1999-05-09  Patrick Koppen <koppen@rhrk.uni-kl.de>
-
-       * rip_interface.c (rip_request): Fix old semantics for fetching
-       connected address.
-
-       * ripd.c (rip_add_route): Update timer when the route is updated.
-
-1999-05-09  Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>
-
-       * rip_zebra.c (struct zebra): Add ridist_static, ridist_connect,
-       redist_rip, redist_ripng.  
-
-       * rip_zebra.c (zebra_create): Updated for current zebra method.
-
-       * ripd.c (rip_add_route): Add missing route_unlock_node().
-
-1999-05-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_add_route): Add metric check.  Reported by Carlos
-       Alberto Barcenilla <barce@frlp.utn.edu.ar>.
-
-1999-02-18  Peter Galbavy  <Peter.Galbavy@knowledge.com>
-
-       * syslog support added
-
-1998-12-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_announce_func): Apply new lib functions.
-
-1998-12-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (config_write_rip): Delete vector v argument.
-       * rip_zebra.c (config_write_zebra): Likewise.
-       * rip_interface.c (interface_config_write): Likewise.
-
-1998-09-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_announce.c (rip_rib_close): When ripd terminates delete all
-       added route.
-
-1998-09-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_interface.c: return read packet size.
-
-1998-05-18  Yamshita TAKAO  <jargon@lares.dti.ne.jp>
-
-       * ripd.h: Modify for compile on Solaris.
-
-1998-05-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c: DEFUN function return CMD_SUCCESS.
-                 change xmalloc to XMALLOC macro.
-       
-1998-05-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_main.c: change CONFDIR to SYSCONFDIR.
-
-1998-05-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * .cvsignore: added.
-
-1998-02-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_interface.c (config_write_interface): correct ADVERTISE spell.
-
-       * rip_main.c (main): add usage() and make cleanup.
-
-1998-01-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripd.c (rip_version): add rip version command.
-
-1998-01-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rip_interface.c (zebra_get_interface): added to get
-       interface's information.
-
-       * ChangeLog: create.
diff --git a/ripngd/ChangeLog b/ripngd/ChangeLog
deleted file mode 100644 (file)
index b8c24c6..0000000
+++ /dev/null
@@ -1,388 +0,0 @@
-2007-04-27 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ripngd.c: (ripng_vty_out_uptime) Remove unused variable timer_now.
-
-2007-04-12 Emmanuel Vize <emmanuel.vize@6wind.com>
-
-        * ripngd.c: (ripng_vty_out_uptime and show_ipv6_ripng_status) 
-          Use new thread_timer_remain_second to display properly the timers 
-          (reported patch from Andrew J. Schorr in ripd.c)
-
-2006-05-11 Paul Jakma <paul.jakma@sun.com>
-
-       * ripng_interface.c: (ripng_interface_address_add) Remove
-         unneeded NULL check, Coverity CID #72.
-
-2006-05-08 Paul Jakma <paul.jakma@sun.com>
-
-       * ripng_routemap.c: (route_set_ipv6_nexthop_local_compile) bug
-         #242, s/in_addr/in6_addr to fix crash. 
-         Thanks to jithinvachery+quagga@gmail.com.
-
-2006-01-19 Paul Jakma <paul.jakma@sun.com>
-
-        * (general) various miscellaneous compiler warning fixes.
-          Remove redundant break statements from switch clauses 
-          which return. 
-          return from main, not exit, cause it annoys SOS. 
-          Remove stray semi-colons which cause empty-statement 
-          warnings.
-
-2005-10-01 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ripng_zebra.c: (ripng_redistribute_write) Remove local hard-coded
-         table str[].  Replace str[i] with new library function
-         zebra_route_string(i).
-       * ripngd.c: Remove local hard-coded table route_info[].
-         (show_ipv6_ripng) Use new library function zebra_route_char() instead
-         of table route_info[].
-
-2005-08-27 Hasso Tepper <hasso at quagga.net>
-
-       * ripng_zebra.c, ripngd.[ch]: Pass metric info to the zebra daemon.
-
-2005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ripng_zebra.c (ripng_redistribute_unset, ripng_redistribute_clean):
-         Change 2nd arg to zebra_redistribute_send from zclient->sock
-         to zclient.
-
-2005-04-08 Hasso Tepper <hasso at quagga.net>
-
-       * ripngd.[hc], ripng_interface.c, ripng_peer.c: inet6_ntoa() takes
-         argument now by value.
-
-2005-04-05 Hasso Tepper <hasso at quagga.net>
-
-       * ripngd.[hc]: Remove inet6_ntop() and any usage of it. inet6_ntoa()
-         from lib is used now.
-       * ripng_interface.c: inet6_ntop() -> inet6_ntoa().
-       * ripng_peer.c: inet6_ntop() -> inet6_ntoa().
-
-2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ripng_interface.c: (ripng_interface_delete) After deleting, set
-         ifp->ifindex to IFINDEX_INTERNAL.
-
-2005-01-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ripng_interface.c: (ripng_multicast_join) Save errno before calling
-         ripngd_privs.change.
-
-2005-01-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ripngd.c: (ripng_recv_packet) Use ZCMSG_FIRSTHDR instead of
-         CMSG_FIRSTHDR.
-
-2004-12-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ripng_nexthop.c: Replace NEXTHOP_OUT macro with NEXTHOP_OUT_PTR,
-         since it's not really OK to take the address of a ternary expression.
-         (_ripng_rte_cmp,ripng_rte_send) Use new NEXTHOP_OUT_PTR macro
-         instead of NEXTHOP_OUT.
-
-2004-12-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * *.c: Change level of debug messages to LOG_DEBUG.
-
-2004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ripng_main.c: (main) The 2nd argument to openzlog has been removed.
-
-2004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ripng_main.c: (sighup) Remove spurious terminating message.
-         (sigint) Use zlog_notice for termination message.
-         (main) Issue a startup announcement using zlog_notice.
-
-2004-11-25 Hasso Tepper <hasso at quagga.net>
-
-       * ripng_main.c: Make group to run as configurable.
-
-2004-10-26 Hasso Tepper <hasso at quagga.net>
-
-       * ripng_debug.c: Fix help of "show debugging ripng" command.
-
-2004-10-11 Hasso Tepper <hasso at quagga.net>
-
-       * *.c: Make more strings const.
-
-2004-10-08 Hasso Tepper <hasso at quagga.net>
-
-       * *.[c|h]: Fix compiler warnings: make strings const, signed ->
-         unsigned etc.
-
-2004-09-26 Hasso Tepper <hasso at quagga.net>
-
-       * ripingd.c: Access list hook argument function must have struct
-         access_list * argument. Solution taken from ripd.
-       * ripngd.c, ripnf_nexthop.c: Fix compiler warnings.
-
-2004-09-23 Hasso Tepper <hasso at quagga.net>
-
-       * *.[c|h]: list -> struct list *, listnode -> struct listnode *.
-
-2004-09-17 Paul Jakma <paul@dishone.st>
-
-       * ripngd.c: move setsockopt_so_recvbuf to lib.
-
-2004-07-23  Hasso Tepper  <hasso@estpak.ee>
-
-       * ripng_interface.c, ripng_nexthop.c: use ifp->mtu6 instead of
-         ifp->mtu.
-
-2004-07-01  Greg Troxel  <gdt@fnord.ir.bbn.com>
-
-       * ripng_interface.c (ripng_multicast_join): Use privs to do join,
-       to work around bug on gif(4) on NetBSD 1.6.2.
-
-2004-05-11 Paul Jakma <paul@dishone.st>
-
-       * ripng_nexthop.h: SUNOS_5 does not define s6_addr32
-         catch ifndef(s6_addr32) && defined(SUNOS_5) and define
-         it ourselves based on the S10 _KERNEL guarded define.
-         
-2004-05-08 Paul Jakma <paul@dishone.st>
-
-       * ripng_{interface,zebra}.c: sync with zclient changes
-
-2004-01-03  Greg Troxel  <gdt@ahi.ir.bbn.com>
-
-       * ripng_interface.c (ripng_multicast_join): If IPV6_JOIN_GROUP
-       returns EADDRINUSE, consider the join successful.  This happens
-       when an interface goes down and comes back because
-       ripng_multicast_leave does not invoke the LEAVE_GROUP operation if
-       the interface is down.  Solves problem of ripng stopping working
-       on an interface which goes down and then comes back up (on NetBSD).
-
-2003-05-25 Hasso Tepper <hasso@estpak.ee>
-  
-  * Revert ripng_ifrmap stuff because ripd uses it now as well.
-  * Merge ripngd part of 6Wind patch from Vincent Jardin 
-    <vjardin@wanadoo.fr>.
-
-2003-04-23 Hasso Tepper <hasso@estpak.ee>
-
-       * {ripng_ifrmap,ripngd}.c: fix "router xxx" node commands in vtysh
-
-2003-04-19 Hasso Tepper <hasso@estpak.ee>
-
-       * rip_routemap.c: sync daemon's route-map commands to have same
-       syntax
-
-2002-07-07  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.93 released.
-
-2001-08-28  NOGUCHI Kay <kay@v6.access.co.jp>
-
-       * ripngd.c (no_ripng_route): route_unlock_node () is not needed.
-
-2001-08-26  NOGUCHI Kay <kay@v6.access.co.jp>
-
-       * ripngd.h (struct ripng_interface): Add passive interface option.
-
-2001-08-19  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.92a released.
-
-2001-08-15  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.92 released.
-
-2001-08-07  Akira Kato <kato@wide.ad.jp>
-
-       * ripngd.c (ripng_timers): "timers basic" argument is fixed.
-
-2001-02-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.91 is released.
-
-2001-01-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.90 is released.
-
-2001-01-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripngd.h (RIPNG_VTYSH_PATH): Change "/tmp/ripngd" to
-       "/tmp/.ripngd".
-
-2000-10-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.89 is released.
-
-2000-09-20  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripngd.c (ripng_send_packet): Use CMSG_SPACE instead of sizeof
-       hack.  Revert privious alignment patch.
-
-2000-09-20  URA Hiroshi <ura@hiru.aoba.yokohama.jp>
-
-       * ripngd.c (ripng_send_packet): Fix an alignment bug. Thus ripngd
-       can't send packets.
-
-2000-09-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripng_interface.c (ripng_interface_address_delete): Connected
-       address delete treatment added.
-
-2000-08-22  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripng_routemap.c (route_set_metric_compile): When checking '-'
-       character, argv[1] should be argv[0].  Reported by SHIRASAKI
-       Yasuhiro <yasuhiro@ocn.v6.ntt.net>.
-
-2000-08-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.88 is released.
-
-2000-06-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripngd.c (ripng_route_process): Clear prefix_ipv6 before using
-       it.
-       (ripng_redistribute_delete): Fix bug of missing
-       route_unlock_node() when redistribute route is not found.
-       (ripng_redistribute_delete): Make it sure that timers are off.
-       (ripng_redistribute_delete): Likewise.
-
-2000-01-19  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripngd.c (ripng_route_process): Fix bug of mis-checking of same
-       route.
-       (show_ipv6_ripng): Include ifindex to "show ipv6 ripng" output.
-
-1999-11-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripngd.c (ripng_output_process): Use MINMTU when mtu value is
-       not available.
-
-1999-11-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripngd.c (ripng_output_process): Calculate max RTE count from
-       interface MTU value.
-
-1999-09-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripngd.c (ripng_distribute_update): Fix bug of updating
-       access-list and prefix-list.
-
-1999-09-07  URA Hiroshi <ura@hiru.aoba.yokohama.jp>
-
-       * ripngd.c (ripng_recv_packet): Change CMSG_DATA cast from (u_char
-       *) to (int *).  (u_char *) does not work for NetBSD-currnet on
-       SparcStation 10.
-
-1999-08-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripngd.c (ripng_request_process): When request packet comes,
-       check RIPng process is enabled on the interface.
-       (ripng_redistribute_withdraw): Delete routes when `no
-       redistribute' is executed.
-
-1999-08-13  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * ripng_zebra.c (ripng_redistribute_ospf6_cmd): Add OSPF6
-       redistribute command.
-
-1999-07-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripngd.c (default_information_originate): Add
-       default-information command.
-
-1999-07-19  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripngd.c (ripng_route_process): rip_add_route() and
-       rip_delete_route() are deleted.  Both functions are integrated
-       into ripng_route_process().
-       (ripng_request_process): Proper reply for request message.
-
-       * ripng_routemap.c: New file added.
-
-1999-07-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripngd.c (ripng_nexthop_rte): RIPng next hop routine is
-       rewritten.
-       (show_ipv6_ripng): Change `show ip ripng' to `show ipv6 ripng'.
-       (ripng_response_process): RIPng incoming packet's hop count check
-       added.
-       (ripng_response_process): Add strict RTE checking.
-
-1999-07-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripngd.c (ripng_add_route): Fix metric compare bug.
-
-1999-06-25  itojun@iijlab.net
-
-       * ripngd.c (ripng_distribute_in): "distribute in" filter in ripngd
-       actually work.
-
-1999-05-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripngd.c (ripng_zebra): Send each ripng information by separate
-       zebra packet.
-
-1999-05-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripng_interface.c (if_add_multicast): Change log to zlog.
-
-1999-05-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripng_interface.c (ripng_zebra_get_interface): Add function.
-
-       * ripng_zebra.c (redistribute_ripng): Delete function because
-       redistirbute the routes to the zebra daemon is now default
-       behavior.
-
-1999-05-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripngd.conf.sample: Change network to route statement.
-
-1999-03-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripngd.c: Old non Advanced API version ripng_send_packet and
-       ripng_recv_packet is removed.
-       * ripng_radix.c: File removed.
-
-1998-12-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Now I assume KAME support Advanced API and use sendmsg/recvmsg.
-
-1998-12-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripng_interface.c: Delete old ifa (interface address) related
-       functions.
-
-1998-12-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripng_debug.[ch]: New file.
-
-       * ripngd.c (ripng_supply): Do not send header only RIPng packet.
-       Change `network' statement to `route' statement.
-       (ripng_request_process): Reply to RIPng REQUEST packet.
-
-1998-12-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripngd.c (ripng_config_write): Delete vector v argument.
-       * ripng_zebra.c (zebra_config_write): Likewise.
-       * ripng_interface.c (interface_config_write): Likewise.
-
-1998-12-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ripng_route.h: New file.
-
-       * ripng_interface.c:  Delete #include <linux/in6.h>.
-       ripng_main.c: likewise.
-       ripng_radix.c: likewise.
-       ripng_route.c: likewise.
-       ripng_zebra.c: likewise.
-       ripngd.c: likewise.
-
-1998-12-06  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
-
-       * ripngd.h (IPV6_ADD_MEMBERSHIP): If IPV6_ADD_MEMBERSHIP is not
-       defined. Define IPV6_ADD_MEMBERSHIP as IPV6_JOIN_GROUP.
-
-1998-09-15  HEO SeonMeyong  <seirios@matrix.iri.co.jp>
-
-       * all Hydrangea define is changed to KAME.
-
diff --git a/solaris/ChangeLog b/solaris/ChangeLog
deleted file mode 100644 (file)
index 65135d9..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-2008-07-03 Paul Jakma <paul.jakma@sun.com>
-
-       * quagga.{xml,init}.in: Sync with OpenSolaris SFW. This changes the
-         SMF schema used, from the SMF schema supplied initially with
-         Quagga, to the version which was approved by the Sun PSARC for
-         inclusion into Solaris. This change is incompatible. Settings,
-         such as vty_port, etc. will not transfer over. The Sun schema is
-         however supported by Sun, and supports running Quagga in a zone
-         with IP instances, and configuration via the routeadm utility.
-
-2008-01-13 Paul Jakma <paul.jakma@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.
-
-2007-02-22 Paul Jakma <paul.jakma@sun.com>
-
-       * quagga.{xml,init}.in: Add licence boilerplate to ensure
-         licence terms are clear.
-
-2006-04-03 Paul Jakma <paul.jakma@sun.com>
-
-       * quagga.xml.in: oops, ipvX-routing services don't exist yet in
-         any Solaris builds.
-
-2006-03-16 Paul Jakma <paul.jakma@sun.com>
-
-       * prototype.smf.in: Oops, continue to install manifest to
-         var/svc/manifest/network for now.
-
-2006-03-13 Alan Maguire <alan.maguire@sun.com>
-
-       * quagga.xml.in: Change the naming of services and instances.
-         network/routing/quagga:<daemon> may be neat and tidy, but
-         it's at odds with SMF convention elsewhere that demands
-         the service be named for what it does, and the instance name
-         describe the implementation (e.g. network/smtp:sendmail).
-         Remove call to method script for 'stop', SMF can do that
-         itself.
-         Enumerate the privileges required in the SMF manifest, with the
-         method_credential element.
-         Dont try provide seperate properties for each argument, it's
-         just tedious, particularly when they can no longer be
-         inherited from a common quagga service - use a single
-         "daemon-args" property, defaulting to -P 0.
-         Specify authorisation for the 'routeadm' utility and for
-         RBAC.
-
-2006-03-13 Paul Jakma <paul.jakma@sun.com>
-
-       * quagga.init.in: Update to match SMF manifest changes.
-         If run from an SMF environment, assume method is start.
-         Offer a more tradition init script interface for pre-SMF.
-         Enable zebra for the link-state daemons.
-         Don't allow daemons to start in non-global zones, except
-         for bgpd - it doesn't have to care about underlying
-         networking much.
-         Remove all the svcprop calls, SMF or the user will supply any
-         arguments on the command-line.
-       * depend.smf.in: Add dependency on SUNWroute, which provides
-         routeadm, which provides /var/svc/manifest/network/routing
-       * prototype.smf.in: Install manifest to 
-         var/svc/manifest/network/routing.
-
-2006-02-19 Paul Jakma <paul.jakma@sun.com>
-
-       * depend.*: renamed to depend.*.in.
-       * depend.*.in: Add version dependency.
-       * Makefile.am: Generate depend.* from depend.*.in
-         Distribute the depend.*.in files rather than the depend.*
-         files.
-       * quagga.init.in: Enable zebra if one of the link-state
-         daemons is started.
-         Restart method is not required - SMF handles that.
-       * quagga.xml.in: Remove restart method details.
-
-2005-11-04 Paul Jakma <paul.jakma@sun.com>
-
-       * prototype.dev.in: lib/md5-gnu.h is now lib/md5.h
-
-2005-08-16 Paul Jakma <paul.jakma@sun.com>
-
-       * README.txt: point to the opensolaris.org sources for the SMF 
-         manifest class scripts. Make step 3 slightly more explicit about
-         what 'this directory' is.
-         
-2005-06-15 Paul Jakma <paul.jakma@sun.com>
-
-       * quagga.xml.in: Pass the FMRI to the method, removing need for
-         daemon_name property and deducing the FMRI.
-         remove the empty config_file and pid_file definitions, they just
-         make things difficult in the method script, cause it then has to
-         deal with svcprop returning "" for defined empty properties.
-         Remove daemon_name everywhere.
-       * quagga.init.in: Take the FMRI as an argument
-         Remove deducing the FMRI from the defunct daemon_name property.
-         Use svcprop -q to test for presence of a property first.
-         Default vty_port to 0 and vty_addr to 127.1 if equivalent
-         SMF properties are not set.
-         Deduce the pid_file, we can infer it from @quagga_statedir@ I
-         think, it's probably not useful to allow it to be configurable
-         as a property anyway.
-         /var/run/ is on tmpfs on Solaris, so we probably will need
-         to create @quagga_statedir@ first run after boot.
-         Use @sbindir@, not /usr/local/sbin.
-       * README.txt: updated to match changed SMF manifest and
-         its changed service, instance and property group names.
-         
-2005-06-02 Paul Jakma <paul.jakma@sun.com>
-
-       * quagga.xml.in: Fix mistake in bgpd definition. Change dependency
-         on zebra to optional. Remove the duplicated stability statements.
-       * quagga.init.in: svcprop should check PACKAGE_TARNAME, not _NAME.
-         no need to check for config file either, there's already a
-         dependency in the manifest.
-
-2005-05-13 Paul Jakma <paul.jakma@sun.com>
-
-       * quagga.xml.in: Sigh, XML child elements are order-sensitive.
-       * prototype.doc.in: info/dir doesnt get created always.. comment
-         out for now, likely needs to be done with an install method.
-       * prototype.daemons.in: Move the Solaris 10 SMF specific stuff to
-         a seperate package.
-       * depend.smf: dependencies for smf package
-       * pkginfo.smf.tmpl.in: pkginfo for smf
-       * prototype.smf.in: prototype for smf
-       * Makefile.am: Add smf to pkg_names
-         
-2005-04-26 Paul Jakma <paul.jakma@sun.com>
-
-       * quagga.xml.in: New, better, single integrated manifest for all
-         the services, courtesy of alan.maguire@sun.com.
-       * {{ospf,ospf6,rip,ripng,bgp}d,zebra}.xml.in: removed due to
-         previous
-       * quagga.init.in: Use the package tarname for properties, use
-         the correct daemon name variable.
-       * Makefile.am: Updated to match single manifest
-       * prototype.daemons.in: ditto
-
-2005-04-21 Paul Jakma <paul.jakma@sun.com>
-
-       * Makefile.am: pkginfo.%.tmpl is a generated file, srcdir prefix
-         is not appropriate.
-
-2005-04-13 Paul Jakma <paul.jakma@sun.com>
-
-       * Makefile.am: {i,r}.manifest are (or will be) system provided files
-         and not in CVS, hence dont depend on them or distribute them.
-
-2005-04-11 Paul Jakma <paul.jakma@sun.com>
-
-       * (all) Initial check-in of files for building S10 packages
-       * protototype.*.in: package prototype files for SysV packages
-       * *.xml.in: SMF manifests for Quagga daemons
-       * pkginfo.*.tmpl.in: daemon specific pkginfo, refererenced
-         by prototype files.
-       * pkginfo.tmpl.in: Quagga common pkginfo bits
-       * quagga.init.in: SMF method script
-       * Makefile.am: Automake file for building packages
-       * depend.*: Solaris 10 dependencies for packages, referenced by
-         prototype files.
-       * .cvsignore: Add built files
-       * README.txt: new file, package creation, install, usage notes.
diff --git a/tests/ChangeLog b/tests/ChangeLog
deleted file mode 100644 (file)
index 1869651..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-2008-06-07 Paul Jakma <paul@jakma.org
-
-       * bgp_mp_attr_test.c: MP_(UN)REACH_NLRI unit tests
-
-2008-02-23 Paul Jakma <paul.jakma@sun.com>
-
-       * aspath_test.c: Test for 0-ASN sequences that still have data.
-
-2007-12-22 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_capability_test.c: Test for empty capabilities.
-
-2007-09-27 Paul Jakma <paul.jakma@sun.com>
-
-       * 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@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@sun.com>
-
-       * 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@sun.com>
-
-       * bgp_capability_test.c: (parse_test) update for changes to
-         peek_for_as4_capability
-
-2007-09-17 Paul Jakma <paul.jakma@sun.com>
-
-       * 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.
-
-2007-07-27 Paul Jakma <paul.jakma@sun.com>
-
-       * bgp_capability_test.c: new, capability parser unit tests.
-       * Makefile.am: add previous.
-
-2007-07-25 Paul Jakma <paul.jakma@sun.com>
-
-       * aspath_test.c: Exercise 32bit parsing. Test reconcile
-         function.
-       * ecommunity_test.c: New, test AS4 ecommunity changes, positive
-         test only at this time, error cases not tested yet.
-       
-2006-12-01 Juergen Kammer <j.kammer@eurodata.de>
-
-       * aspath_test.c: Support asn32 changes, call aspath_parse with 16 bit.
-
-2006-08-26 Paul Jakma <paul.jakma@sun.com>
-
-       * heavy-wq.c: (slow_func_del,slow_func) update to match workqueue
-         changes
-
-2006-08-06 Paul Jakma <paul.jakma@sun.com>
-
-       * 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.
-
-2006-05-28 Paul Jakma <paul.jakma@sun.com>
-
-       * test-sig.c: (main) configure logging, there's no terminal
-         to write to for one thing, but we do want stdout, and we
-         don't want a test to spam syslog.
-
-2006-03-16 Paul Jakma <paul.jakma@sun.com>
-
-       * heavy-wq.c: (heavy_wq_init) delay is gone from workqueue
-         spec.
-       * aspath_test.c: (test_segments) Add an AS_SET with redundant
-         ASNs.
-         ({empty_prepend,prepend,parse}_test) add static qualifiers
-
-2006-01-16 Paul Jakma <paul.jakma@sun.com>
-
-       * aspath_test.c: (validate) free the temporary aspaths.
-         (empty_get_test) ditto.
-
-2006-01-10 Paul Jakma <paul.jakma@sun.com>
-
-       * test-stream.c: new file, small unit test for new
-         resize and {put,get}-quad stream functions.
-       * Makefile.am: build teststream unit test.
-
-2005-11-23 Paul Jakma <paul.jakma@sun.com>
-
-       * aspath_test.c: Add an empty aspath to test segments, and to
-         compare tests.
-         Add a segment identical to seq1, but with one extra asn.
-         Fix bogus free of stream in make_aspath for case where
-         no stream was allocated (empty path data).
-
-2005-10-11 Paul Jakma <paul.jakma@sun.com>
-
-       * test-privs.c: Privileges unit test.
-       * Makefile.am: build testprivs
-       * aspath_test.c: fix a few sign warnings
-
-2005-09-06 Paul Jakma <paul@dishone.st>
-
-       * aspath_test.c: Test bgp_aspath functionality.
-       * Makefile.am: build aspathtest
-       * ChangeLog: Fix date of previous commit
-
-2005-09-06 Paul Jakma <paul@dishone.st>
-
-       * test-buffer.c: include memory.h
-          (main) call memory_init().
-       
-2004-09-05 Paul Jakma <paul@dishone.st>
-
-       * heavy-wq.c: (slow_func_del,slow_func_err) make them take
-         void * argument to shut up silly gcc warning.
-         
-2004-05-25 Paul Jakma <paul@dishone.st>
-
-       * main.c: new file, common 'main' portion which then calls
-         test_init.
-       * heavy.c: remove common portions now in 'main.
-       * heavy-wq.c: ditto
-       * heavy-thread.c: ditto
-       * heavy*.c: Set the slow_function iteration number lower, to 300, it
-         was several orders of magnitude too 'slow' to be useful. :)
-       * Makefile.am: main is a source of the tests. heavy should link
-         to the math library.
-
-2004-05-22 Paul Jakma <paul@dishone.st>
-
-       * heavy-thread.c: Andrew Schorr's adaptation of heavy.c to use a
-         background thread to avoid responsiveness problems.
-       * Makefile.am: Build heavythread
-
-2004-05-21 Paul Jakma <paul@dishone.st>
-
-       * heavy.c: Add a timer thread to demonstrate thread interactivity,
-         Add a daemon_exit command to assist with debugging (eg for memory
-         tracers, etc..)
-
-2004-05-19 Paul Jakma <paul@dishone.st>
-
-       * heavy.c: test programme to show how long-running functions
-         kill responsiveness. Demonstrating the most niggly problem 
-         left in bgpd.
-
-2004-05-13 Paul Jakma <paul@dishone.st>
-
-       * test-buffer.c: Andrew's buffer tester
-       * test-memory.c: basic memory tester
-       * Makefile.am: Add new tests
diff --git a/vtysh/ChangeLog b/vtysh/ChangeLog
deleted file mode 100644 (file)
index af55c6f..0000000
+++ /dev/null
@@ -1,500 +0,0 @@
-2008-07-03 MIYAJIMA Mitsuharu <miyajima.mitsuharu@anchor.jp>
-
-       * extract.pl.in: Fix as-range to match CPP output.
-       * vtysh.c: Add missing router_bgp_view_cmd alias.
-
-2008-07-02 MIYAJIMA Mitsuharu <miyajima.mitsuharu@anchor.jp>
-
-       * CMD_AS_RANGE was being used inside command strings, and thus
-         not being expanded, fix by dequoting.
-
-2007-06-20 Nicolas Deffayet <nicolas@deffayet.com>
-
-       * vtysh.c: (vtysh_write_terminal) Write 'end' when done,
-         to be consistent with telnet vty, and expected by tools
-         like rancid.
-
-2007-05-01 David L Stevens <dlstevens@us.ibm.com>
-
-       * 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
-
-2007-04-28 Andrew J. Schorr <ajschorr@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.
-
-2007-02-12 Juergen Kammer <j.kammer@eurodata.de>
-       * extract.pl: AS4 compatibility for router bgp ASNUMBER
-       * extract.pl.in: AS4 compatibility for router bgp ASNUMBER
-       * vtysh.c: AS4 compatibility for router bgp ASNUMBER
-
-2006-07-27 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * vtysh_main.c: (usage) Add new -d and -E options.  And note that
-         -c can be used multiple times, possibly with embedded linefeeds.
-         (longopts) Add new -d and -E options.
-         (main) Add new -d and -E options, and create a linked list to
-         support multiple -c options.  Do not call vtysh_connect_all until
-         after vtysh_read_config(config_default) and vtysh_auth have
-         succeeded.  This prevents the vtysh.conf file from configuring
-         any daemons, and it ensures that authentication has been passed
-         before we send any commands to any daemons.  Call vtysh_connect_all
-         with any daemon name supplied with -d.  If it is unable to connect
-         to any daemons, issue an error message and exit immediately.
-         When used in -c mode, call vtysh_execute("enable") before
-         executing the commands in order to match interactive behavior. 
-         And detect embedded linefeed chars in -c commands and break them up
-         appropriately.
-       * vtysh.h: (vtysh_connect_all) Fix proto to reflect new
-         daemon_name argument, and that it now returns an integer -- the
-         number of daemons to which we were able to connect.
-       * vtysh.c: (vtysh_connect_all) Add a new daemon_name argument.
-         If supplied, connect only to that daemon.  And return
-         the number of daemons to which we were able to connect.
-         (vtysh_prompt): Performance enhancement -- make struct utsname
-         static so we call uname to get the hostname only once.
-
-2006-05-24 Paul Jakma <paul.jakma@sun.com>
-
-       * vtysh.c: (general) Add 'show memory' command.
-
-2006-05-21 Paul Jakma <paul.jakma@sun.com>
-
-       * vtysh.c: (vtysh_show_logging_cmd) Suppress output for daemons
-         which are not running (Andrew Schorr).
-
-2006-05-17 Paul Jakma <paul.jakma@sun.com>
-
-       * vtysh.c: (general) Add 'show logging' command.
-
-2006-01-11 Erik Smit <zoiah@zoiah.net>
-
-       * vtysh.c: (vtysh_config_from_file) fix regression from
-         a previous cleanup, vtysh_client.flags and cmd->daemon are
-         bitwise flags, bitwise & was meant to be used. Fixes breakage
-         of integrated config file reading.
-
-2005-09-15 Hasso Tepper <hasso at quagga.net>
-
-       * vtysh.c: Fix warning by casting rl_bind_key 2. argument correctly.
-       * extract.pl.in: Fix warning - add isisd/topology to the includes.
-
-2005-08-22 Hugo Santos <hsantos@av.it.pt>
-
-       * vtysh.c: Add support for BGP_IPV6M_NODE
-       
-2005-07-12 Christian Hammers <ch@debian.org>
-
-       * vtysh_user.c: rename struct user to struct vtysh_user to avoid
-         clashes with sys/user.h on Linux/ARM.
-
-2005-04-07 Hasso Tepper <hasso at quagga.net>
-
-       * Makefile.am: Remove rebuild4 target, it's not used any more by build
-         procedure. Define vtysh_cmd_FILES. Use EXTRA_DIST.
-       * extract.pl.in: Ignore "router zebra".
-
-2005-03-28 Hasso Tepper <hasso at quagga.net>
-
-       * extract.pl.in: Use SNMP_INCLUDES to avoid warnings if compiling with
-         snmp support.
-
-2005-03-09 Hasso Tepper <hasso at quagga.net>
-
-       * vtysh_config.c: Move password commands to the AAA_NODE. It
-         quarantees that they will appear after SERVICE_NODE to make sure
-         that encrypted passwords will work ("service password-encryption"
-         command).
-
-2005-01-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * vtysh.h: Remove obsolete VTYSH_INDEX_* defines.  Fix many prototypes
-         for functions with no arguments (must specify argument list as void).
-       * vtysh.c: Enhance vtysh_client array to include the daemon's name
-         and bitmask and socket path (in addition to the fd).  This allows
-         us to use loop constructs for various operations that need to be
-         applied to all client daemons, and it facilitates better error
-         messages.  Also fix some prototypes with void argument lists.
-         (vclient_close) Issue a warning message indicating which daemon's
-         socket is being closed.
-         (vtysh_execute_func,vtysh_config_from_file) Use a for loop to
-         call vtysh_client_execute.
-         (vtysh_write_terminal,write_config_integrated) Use a for loop to
-         call vtysh_client_config.
-         (vtysh_write_memory) Use a for loop to call vtysh_client_execute.
-         (vtysh_show_daemons) Use a for loop.
-         (vtysh_connect) The struct vtysh_client is now statically initialized,
-         so do not initialize it here.
-         (vtysh_connect_all) Use a for loop to call vtysh_connect.  Set
-         ripd_client pointer for use in vtysh_exit_ripd_only.
-
-2005-01-23 Hasso Tepper <hasso at quagga.net>
-
-       * vtysh.conf.sample: Fix typo "integrated-vtysh-conf" ->
-         "integrated-vtysh-config".
-       * vtysh/vtysh.c: Implement walkup in node tree for vtysh as it
-         already works in vty.
-
-2005-01-10 Hasso Tepper <hasso at quagga.net>
-
-       * vtysh.c: Reflect changes in lib. cmd_execute_command() should know
-         now that it's called from vtysh and must not attempt to walk up in
-         the node tree.
-
-2004-12-22 Hasso Tepper <hasso at quagga.net>
-
-       * vtysh_config.c: No delimiter between "ip forwarding" and "ipv6
-         forwarding". Show common router-id before router nodes. Fix router
-         bgp node parsing. Move debug commands into debug node and no
-         delimiter between lines there.
-
-2004-12-09 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * vtysh.c: (vtysh_connect) No reason to call geteuid and getegid,
-         the results were never used.
-
-2004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * vtysh.c: Make several functions static instead of global.
-         Added several commands to support destination-specific logging levels.
-         (vtysh_completion) This function is unused, so comment it out.
-
-2004-11-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * vtysh.c: (vtysh_client_execute) Fix flaws in detecting trailing
-         '\0' chars and command return code.
-
-2004-10-28 Hasso Tepper <hasso at quagga.net>
-
-       * vtysh.c: "show running-daemons" broke users habits who are using
-         "sho run" to view running configuration. Changed it to "show
-         daemons". 
-
-2004-10-20 Hasso Tepper <hasso at quagga.net>
-
-       * vtysh.c: Don't popen pager if command is "exit". Fixes "vtysh screws
-         up my terminal if I exit" issue.
-
-2004-10-13 Hasso Tepper <hasso at quagga.net>
-
-       * extract.pl.in: All daemons can use both IPv6 and IPv4 access lists
-         to limit access to vty.
-
-2004-10-11 Paul Jakma <paul@dishone.st>
-
-       * vtysh.c: (vtysh_client_execute) fix the sync fix. The 4th and
-         final sync byte is not ASCII NULL, it's actually a status integer,
-         and only ASCII NULL if CMD_SUCCESS is returned by daemon.
-         Fix pointed out by Hasso.
-2004-10-11 Hasso Tepper <hasso at quagga.net>
-
-       * vtysh.c, vtysh_user.c: Make more strings const.
-       
-2004-10-07 Hasso Tepper <hasso at quagga.net>
-
-       * vtysh.c, vtysh.h, vtysh_config.c, vtysh_main.c: Fix compiler
-         warnings: make strings const, signed -> unsigned, remove unused
-         variables.
-       * vtysh_config.c: Fix crash introduced with previous patch.
-
-2004-10-03 Hasso Tepper <hasso at quagga.net>
-
-       * vtsyh_main.c: Enter into enable node by default. Disable node doesn't
-         make sense if we don't have any authentication for enable.
-       * vtysh.c: Implement "show running-daemons" command.
-       * vtysh.c: Use either integrated conf or daemon conf not both. Move
-         configuration command into "service" level.
-       * vtysh.c: Remove "write ..." commands from other nodes than enable.
-         We have "do ..." extension for that.
-       * vtysh_config.c, vtysh.c: Integrate vtysh configuration into
-         integrated one.
-       * vtysh_config.c: Use FORWARD_NODE and SERVICE_NODE vty nodes.
-       * vtysh_config.c: Make "service" lines unique in integrated config.
-       * vtysh.c: Make "service password-encryption" command work in vtysh.
-       * vtysh_config.c, vtysh.c, Makefile.am, extract.pl.in: Introduce line
-         vty commands in vtysh. Parse lib/vty.c for commands, but ignore
-         commands that don't make sense in vtysh. Closes Bugzilla #104.
-       * vtysh.c: Make "[enable] password" commands work in vtysh. Behavior
-         is similar to "log" commands - vtysh just passes commands to all
-         daemons.
-       * vtysh_main.c, vtysh_config.c, vtysh.h: Remove any code dealing with
-         configuration files specified from command line. We read/write files
-         from/to system location only (ie. remove -f again).
-       * Makefile.am: Parse zebra/router-id.c.
-
-2004-09-26 Hasso Tepper <hasso at quagga.net>
-
-       * vtysh.c: Fix compiler warning.
-
-2004-09-17 Paul Jakma <paul@dishone.st>
-
-       * vtysh.c: (vtysh_client_execute) trailling NULLs can be arbitrarily
-          split across reads, dont get confused by this and block forever.
-
-2004-09-13 Paul Jakma <paul@dishone.st>
-
-       * Makefile.am: extract.pl isnt in srcdir, it's always in the builddir.
-         remove zebra/irdp.c from list - dead.
-       * extract.pl.in: match on end of filenames, filename could contain
-          various preamble due to out of tree builds. Substitute in the
-         autoconf srcdir/builddir paths for includes to cpp.
-
-2004-08-28 Hasso Tepper <hasso at quagga.net>
-
-       * vtysh_main.c: Rename signal handling functions not to conflict
-         with functions from lib/sigevent.c.
-
-2004-08-27 Hasso Tepper <hasso at quagga.net>
-
-       * vtysh.c: Make "terminal length <0-512>" command work in vtysh.
-
-2004-08-27 Hasso Tepper <hasso at quagga.net>
-
-       * vtysh.c: Enable using ssh from ENABLE_NODE.
-       * vtysh_config.c: Make enable password uniq lines appear only once in
-         configuration.
-       * vtysh_main.c, vtysh_config.c, vtysh.h: Remove useless code which
-         searched configuration files from current directory. Add -f to
-         specify conf from command line.
-
-2004-08-26 Hasso Tepper <hasso at quagga.net>
-
-       * *.c: Cosmetical changes - strip long lines, fix multiline comments
-         style, indentation fixes, remove useless comments.
-       * vtysh.h: define VTYSH_INTERFACE.
-       * vtysh.c: Use VTYSH_INTERFACE where possible. Added some related TODO
-         items.
-       * vtysh.c: Move things around a little to reduce spaghetti mess.
-       * Makefile.am: Parse only needed files from zebra daemon while
-         building vtysh_cmd.c file to supress warnings.
-
-2004-06-30  Greg Troxel  <gdt@poblano.ir.bbn.com>
-
-       * extract.pl.in: Rename from extract.pl, with @PERL@.
-
-       * Makefile.am: Add vtysh_cmds.c to CLEANFILES.
-
-2004-06-20 Hasso Tepper <hasso@estpak.ee>
-
-       * extract.pl: Zebra daemon has access lists as well.
-
-2004-05-10 Hasso Tepper <hasso@estpak.ee>
-
-       * vtysh.c: Workaround for most hated vtysh bug - Bugzilla #58.
-
-2004-04-06 Hasso Tepper <hasso@estpak.ee>
-
-       * vtysh_main.c: Don't save command to history if last command already
-         there is same.
-       * vtysh_main.c: Replace -e with -c.
-       * vtysh_main.c: Fix help.
-
-2004-03-04 Hasso Tepper <hasso@estpak.ee>
-
-       * vtysh.c: Remove using PAGER.
-
-2004-01-15 Paul Jakma <paul@dishone.st>
-
-       * vtysh_config.c: Fix up strlen to use correct string.
-       
-2003-12-23 Hasso Tepper <hasso@estpak.ee>
-  
-       * Makefile.am extract.pl vtysh.c vtysh.h vtysh_config.c:
-         isisd integration to vtysh.
-
-2003-05-01 Sergiy Vyshnevetskiy <serg@vostok.net>
-
-       vtysh.c: Program shouldn't terminate on pager execution failure
-       vtysh_user.c: configure support for openpam (freebsd5.0)
-
-2003-04-19 Hasso Tepper <hasso@estpak.ee>
-
-       * extract.pl vtysh.c vtysh.h: sync daemon's route-map commands to
-       have same syntax
-
-2002-09-30 Paul Jakma <paulzebra@rs250.org>
-       
-       * vtysh.c: add 'write-config (integrated|daemon)' option
-       to specifiy whether write config commands should write
-       integrated Zebra.conf file and/or per daemon files.
-       Defaults to per daemon, unless this is turned off.
-
-2002-07-07  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.93 released.
-
-2001-08-19  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.92a released.
-
-2001-08-15  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.92 released.
-
-2001-02-20  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vtysh.c (vtysh_client_config): Do not set bufsz to 120.
-       Suggested by: Matthew Grant <grantma@anathoth.gen.nz>.
-
-2001-02-15  Hideto Yamakawa <yamakawa@dml.com>
-
-       * vtysh.c (vtysh_client_execute): Call fflush after fprintf.
-
-       * vtysh_config.c (vtysh_config_dump): Use VTYSH_PAGER if defined.
-
-2001-02-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vtysh.c (vtysh_execute_func): Add fflush before pclose.
-
-2001-02-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vtysh.c: VTY shell pager name.  When environment variable
-       VTYSH_PAGER is defined, use it as VTY shell pager.
-
-2001-02-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vtysh.c (vtysh_execute_func): Add pager argument for test of
-       pager invocation.
-
-2001-02-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * extract.pl: Add -DHAVE_CONFIG_H option to cpp.
-
-2001-02-08  Matthew Grant <grantma@anathoth.gen.nz>
-
-       * vtysh.c (vtysh_client_config): Use sysconf to determine output
-       buffer size.
-       (vtysh_write_memory): Set umask 0077.
-       (vtysh_connect): Check permission to the socket.
-
-2001-02-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.91 is released.
-
-2001-01-31  Michael Rozhavsky <mrozhavsky@opticalaccess.com>
-
-       * vtysh.c (new_completion): Fix problem of appending space when
-       completion is executed.
-
-2001-01-23  Akihiro Mizutani <mizutani@dml.com>
-
-       * vtysh.c (vtysh_write_terminal): "write terminal" to all node.
-
-2001-01-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vtysh.c (vtysh_execute): Fix unconditional lock by other VTY.
-       Suggested by Hideto Yamakawa <yamakawa@dml.com>.
-
-2001-01-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.90 is released.
-
-2001-01-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vtysh.h (ZEBRA_PATH): Fix new vtysh path.  Reported by "Matt
-       Ranney" <mjr@ranney.com>
-
-2000-11-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vtysh.c (DEFUNSH): Add "address-family vpnv4" DEFUNSH.
-
-2000-10-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vtysh.c (execute_command): Add two arguemnt support for
-       executing child process.
-       (vtysh_telnet_port): New command "telnet WORD PORT" is added.
-
-2000-10-23  Akihiro Mizutani <mizutani@dml.com>
-
-       * vtysh.c (vtysh_write_memory): Display [OK] when configuration is
-       saved without problem.
-
-2000-10-20  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vtysh.c (vtysh_config_from_file): "key chain" command with -b
-       flag problem is fixed.
-
-2000-10-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vtysh_user.c: Change to use linklist.c.
-
-2000-10-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Makefile.am (noinst_HEADERS): Add vtysh_user.h.
-
-       * zebra-0.89 is released.
-
-2000-09-22  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vtysh_main.c: Declare thread master.
-
-2000-08-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vtysh_main.c (main): Add missing --help procudure.  Reported by
-       Patrick Rother <krd@roka.net>.
-
-2000-08-22  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vtysh.c (DEFUNSH): "interface IFNAME" works.
-
-2000-08-20  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vtysh_user.c: Change name from vtysh_pam.c.
-
-       * vtysh.conf.sample: New file for vtysh configuration.
-
-2000-08-19  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vtysh_pam.c (vtysh_pam): New file for PAM.
-
-2000-08-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.88 is released.
-
-2000-08-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Makefile.am (vtysh_LDADD): Remove -lreadline and -lncurses.
-
-       * vtysh.c (vtysh_connect): Use AF_UNIX instead of AF_LOCAL for
-       backward compatibility.
-
-2000-07-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * extract.pl: Change regexp to match DEFUN and ALIAS at the same
-       time.
-
-2000-07-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vtysh.c (signal_init): Ignore SIGPIPE signal.
-
-2000-07-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * extract.pl: ALIAS command can be extracted by extract.pl.
-
-2000-07-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * extract.pl: Fix scalar and array semantics.
-
-       * vtysh.c (vtysh_telnet): Add "telnet" client command.
-
-2000-07-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vtysh.c (main): Add -e flag for passing command from arugment.
-       (vtysh_ping): Add "ping" command for test of command execution.
-       (init_node): Add "traceroute" command.
-       (vtysh_start_shell): Add "start-shell", "start-shell bash",
-       "start-shell zsh".
-       (sigint): Add check for execute_flag for avoid duplicate prompt.
-
-2000-06-28  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vtysh.c: New file for vty shell.
-       * vtysh.h: Likewise.
-       * extract.pl: Likewise.
-       * vtysh_cmd.c: Generate by extract.pl.
diff --git a/watchquagga/ChangeLog b/watchquagga/ChangeLog
deleted file mode 100644 (file)
index 7baf4b7..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-2005-02-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * watchquagga.c: (handle_read) Use new ERRNO_IO_RETRY macro.
-
-2005-02-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * watchquagga.c: (try_connect) Use new set_nonblocking function instead
-         of calling fcntl directly.
-
-2005-01-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * watchquagga.c: (run_job) Fix bug: delay.tv_sec was being used
-         without having been initialized when the "force" argument was true.
-         (try_restart) When phased restart is stopping the routing daemons,
-         it should tell run_job to update the restart interval.
-         (phase_check) In final step of phased restart when the routing
-         daemons are being started again, tell run_job not to update
-         the restart interval (this is now done when the daemons are
-         stopped).
-
-2004-12-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * watchquagga.c: In several places, cast pid_t to int for printf to
-         avoid complaints on Solaris 8.
-
-2004-12-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * watchquagga.c: Fix headers: get most stuff from zebra.h.
-
-2004-12-23 Paul Jakma <paul@dishone.st>
-
-       * watchquagga.c: Add missing getopt.h include
-
-2004-12-22 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * watchquagga.c: Try for gcc 2.95 compatibility (avoid %z and a tricky
-         initialization).
-
-2004-12-22 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * watchquagga.c: Add -b option to circumvent difficulties passing
-         embedded spaces in command-line arguments.  This is an ugly hack,
-         we should probably use a config file instead.
-
-2004-12-22 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * watchquagga.c: Use new config.h define for DAEMON_VTY_DIR.
-
-2004-12-22 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * watchquagga.c: Get PATH_WATCHQUAGGA_PID from config.h.
-
-2004-12-21 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * .cvsignore: Added.
-
-2004-12-21 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * {ChangeLog,watchquagga.c,Makefile.am}: Created.
diff --git a/zebra/ChangeLog b/zebra/ChangeLog
deleted file mode 100644 (file)
index 341c42a..0000000
+++ /dev/null
@@ -1,2712 +0,0 @@
-2008-07-01 Paul Jakma <paul.jakma@sun.com>
-
-       * ioctl.c: (if_get_flags) Deal more gracefully with failure
-         of the BSD link-state SIOCGIFMEDIA ioctl, as some interfaces
-         apparently don't implement it (e.g. tun).
-         Also, make BSD link-state checking be conditional on the 
-         'link-detect' interface configuration flag, as it should be.
-         Fixes bug #465.
-
-2008-06-02 Denis Ovsienko
-
-       * connected.c: (connected_up_ipv4, connected_down_ipv4,
-         connected_up_ipv6, connected_down_ipv6): don't call
-         work_queue_aim_head()
-       * rib.h: adjust RIB_ROUTE_QUEUED macro for meta_queue,
-         declare meta_queue structure
-       * zebra_rib.c: (process_subq, meta_queue_process, rib_meta_queue_add,
-         meta_queue_new) new functions; (rib_queue_add) don't try checking
-         RIB_QUEUE_ADDED flag, rib_meta_queue_add() does it better, take care
-         of the meta queue instead; (rib_queue_init) initialize the meta queue
-         as well; (rib_lookup_and_pushup) don't call work_queue_aim_head();
-         (rib_process) only do actual processing, don't do deallocation;
-       * zserv.h: include meta_queue field into zebra_t structure
-
-2008-05-29 Stephen Hemminger <stephen.hemminger@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.
-
-2008-02-26 Denis Ovsienko
-       * zebra_rib.[ch]: (rib_lookup_and_pushup) New function, which makes sure,
-         that if_set_prefix() has nothing in its way of assigning an address.
-       * ioctl.c: (if_set_prefix) Use rib_lookup_and_pushup() to resolve
-         bug #326.
-
-2008-01-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ioctl.c: If HAVE_BSD_LINK_DETECT is defined, include <net/if_media.h>
-         (if_get_flags) Remove debug messages about BSD link state.
-       * kernel_socket.c: (bsd_linkdetect_translate) If link state
-         is unknown, we should set the IFF_RUNNING flag.
-
-2008-01-10 Ingo Flaschberger <if@xip.at>
-
-       * ioctl.c: (if_get_flags) If HAVE_BSD_LINK_DETECT, use the SIOCGIFMEDIA
-         ioctl to ascertain link state.
-       * 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.
-
-2008-01-08 Michael Larson <mike@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.
-
-2007-11-12 Denis Ovsienko
-
-       * connected.c: (connected_up_ipv4, connected_down_ipv4,
-         connected_up_ipv6, connected_down_ipv6) Collect all changed
-         connected routes closest possible to the RIB work queue, so
-         that the rest can be revalidated correctly.
-
-2007-10-24 Denis Ovsienko
-
-       * kernel_socket.c: (rtm_read) we used to ignore own messages,
-         but the RIB debug commit broke it for IPv6 case (reported
-         by Milan Kocian). Fixed.
-
-2007-10-04 Denis Ovsienko
-
-       * zebra_rib.c: (rib_process) escape from the nexthop
-         iteration cycle earliest possible to save CPU time.
-
-2007-10-03 Denis Ovsienko
-
-       * zebra_rib.c: (rib_process, rib_link, rib_addnode,
-         rib_unlink, rib_delnode) log IPv6 prefixes same well
-         as IPv4 ones are logged.
-
-2007-09-14 Denis Ovsienko
-
-       * rt_socket.c: (kernel_rtm_ipv4) Use lookup() instead of
-         LOOKUP/mes_lookup() for rtm_type_str, as this is more
-         appropriate for sparse code-spaces (#401).
-       * kernel_socket.c: (rtm_read, rtmsg_debug): Idem.
-       * kernel_socket.[ch]: We don't need rtm_type_str_max any more.
-       * main.c: (main) Don't call rib_sweep_route() before the
-         pidfile is acquired, this fixes bug #402.
-       * zserv.h: Dropped old_pid, since it's useless now. This
-         fixes bug #381.
-       * main.c: (main) Idem.
-       * test_main.c: (main) Idem.
-       * kernel_socket.c: (rtm_read) Idem.
-
-2007-09-12 Denis Ovsienko
-
-       * rt_socket.c: (kernel_rtm_ipv4) prefix_buf could be passed
-         to zlog_err() uninitialized with debug disabled. Fixed.
-
-2007-09-06 Denis Ovsienko
-
-       * rtread_sysctl.c: (route_read) Set RTF_DONE on the routing
-         messages when fetching initial kernel FIB, so rtm_read()
-         doesn't skip them.
-
-2007-08-21 Denis Ovsienko
-
-       * ioctl_solaris.c: (if_get_mtu) Don't break things if either
-         IPv6 was disabled at compile time or the current interface
-         hasn't it enabled.
-       * kernel_socket.c: (ifm_read) Don't forget to call if_get_mtu()
-         for updated interfaces.
-
-2007-08-17 Denis Ovsienko
-
-       * kernel_socket.c: (rtm_read) Ignore any routing socket messages
-         without RTF_DONE flag set, as they are just noise for us.
-
-2007-08-14 Denis Ovsienko
-
-       * zebra_rib.c: (nexthop_active_update) Added a comment
-         and rewrote nexthop iteration.
-
-2007-08-13 Denis Ovsienko
-
-       * kernel_socket.c: normalize rtm_type_str so it can be handled
-         by LOOKUP macro
-       * kernel_socket.c: (rtm_read) don't ignore self-generated
-         routing messages, so we can debug them; make use of
-         ZEBRA_ERR_RTNOEXIST; output more details in debug log.
-       * kernel_socket.c: (rtmsg_debug) make use of LOOKUP macro
-       * kernel_socket.h: let the world know about rtm_type_str[_max]
-       * rib.h: 3 more debugging functions and 5 return codes
-       * rt_socket.c: (kernel_rtm_ipv4) dump IP prefix and masklen;
-         complain about strange rtm_write() return values
-       * zebra_rib.c: (rib_lookup_ipv4_route, rib_dump,
-         rib_lookup_and_dump) --- new functions; more comments;
-         more debug logging
-
-2007-08-10  Emmanuel Vize <emmanuel.vize@6wind.com>
-
-       * rt_netlink.c: (netlink_interface_addr) Use the appropriate field length for the address
-          (acknowledge Andy's comment).
-
-2007-08-06  Denis Ovsienko
-
-       * zebra_rib.c: (general) Add extra debug logging for RIB and
-         RIB queue.
-
-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.
-
-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.
-
-2007-05-30 Andrew J. Schorr <ajschorr@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.
-
-2007-05-17 Andrew J. Schorr <ajschorr@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.
-
-2007-05-01 David L Stevens <dlstevens@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).
-       * connected.c: (connected_up_ipv4) added src preference argument
-         to rib_add_ipv4()
-       * kernel_socket.c: (rtm_read) ditto
-       * main.c: added prefix list initialization
-       * Makefile.am: added zebra_routemap.c source file
-       * 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.
-       * rt_netlink.c: (netlink_routing_table) set preferred source on 
-         netlink messages.
-         (netlink_route_change) ditto
-         (netlink_route_multipath) ditto.
-       * rtread_getmsg.c: (handle_route_entry) added (NULL) src to
-         rib_add_ipv4() call.
-       * rtread_proc.c: (proc_route_read) ditto
-       * 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_routemap.c: new file for zebra route-map commands.
-       * 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.
-       * zserv.c: (zread_ipv4_add) added (NULL) src arg
-         (zebra_init) init zebra route-maps.
-       * zserv.h: add zebra_route_map_init
-       
-2007-04-29 Paul Jakma <paul.jakma@sun.com>
-
-       * ioctl{_solaris,}.c: (if_get_mtu) Fix missing ; in last commit.
-       * if_ioctl_solaris.c: (if_get_index) Fix bogus argument passed
-         to lifreq_set_name().
-
-2007-04-10 Paul Jakma <paul.jakma@sun.com>
-
-       * ioctl{_solaris,}.c: (if_get_mtu) Ping clients via
-          zebra_interface_up_update if MTU is changed.
-
-2007-04-08 Paul Jakma <paul.jakma@sun.com>
-
-       * {ioctl,kernel}_null.c: Install of IP address should
-         reflect back to zebra via kernel_address_add..., makes
-         testzebra more useful.
-       * interface.c: (if_delete_update) Address removal triggered
-         by kernel shouldn't remove configured IPv4 address from connected
-         list.
-
-2007-04-07 Paul Jakma <paul.jakma@sun.com>
-
-       * redistribute.c: (zebra_check_addr) Don't redistribute routes
-         to IPv4 link-local prefixes, fixes bug #351.
-       * redistribute.h: Export zebra_check_addr.
-       * router-id.c: (router_id_bad_address) re-use zebra_check_addr
-         rather than implementing similar logic.
-
-2007-03-06 Paul Jakma <paul.jakma@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.
-
-2007-02-26 Robert Olsson <Robert.Olsson@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..
-
-2006-12-13 Andrew J. Schorr <ajschorr@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.
-
-2006-12-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * 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.
-
-2006-12-08 Piotr Chytla <pch@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.
-
-2006-09-13 Tom Everett <tom@khubla.com>
-
-       * kernel_socket.c (rtm_type_str): ifdef RTM_OLD{ADD,DEL} to
-       compile on systems that no longer define them.
-
-2006-08-06 Paul Jakma <paul.jakma@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).
-       * rtadv.h: depends on interface.h, so should include it.
-
-2006-08-04 Paul Jakma <paul.jakma@sun.com>
-
-       * misc_null.c: Add ifstat_update_sysctl, add another required
-         header.
-
-2006-08-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * misc_null.c: Must include header files to get older versions of gcc
-         to process the #pragma statements properly.
-
-2006-08-01 Paul Jakma <paul.jakma@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.
-
-2006-07-27 Paul Jakma <paul.jakma@sun.com>
-
-       * {ioctl,kernel}_null.c: Dummy/Null kernel method implementations,
-         useful for testing zebra code that calls such methods.
-       * {redistribute,misc}_null.c: Dummy/Null methods, as above. But
-         for zclient, and for various misc functions.
-       * test_main.c: Test harness for zebra, currently just to test the
-         RIB.
-       * Makefile.am: Build testzebra using above.
-       * debug.{c,h}: Add 'debug zebra rib' and 'debug zebra rib queue'.
-       * rib.h: (struct rib) Add a route_node rn_status flag field,
-         this has to be copied every time head RIB of a route_node
-         changes.
-         Remove the rib lock field, not needed - see below. 
-         Add a status field for RIB-private flags.
-       * zebra_rib.c: Add a global for the workqueue hold time, useful
-         for testing.
-         (general) Fix for bug #268. Problem originally detailed by
-         Simon Bryden in [quagga-dev 4001].
-         Essentially, add/delete of a RIB must happen /before/ the
-         queue. Best-path selection (ie rib_process) and reaping of
-         freed RIBs can then be done after queueing. Only the route_node
-         is queued - no important RIB state (i.e. whether a RIB is to be
-         deleted) is queued.
-         (struct zebra_queue_node_t) Disappears, no longer need to
-         track multiple things on the queue, only the route_node.
-         (rib_{lock,unlock}) removed, RIBs no longer need to be
-         refcounted, no longer queued.
-         (rib_queue_qnode_del) Removed, deleted RIBs no longer deleted
-         via the queue.
-         (rib_queue_add_qnode) deleted
-         (rib_queue_add) Only the route_node is queued for best-path
-         selection, we can check whether it is already queued or
-         not and avoid queueing same node twice - struct rib * argument
-         is not needed.
-         (rib_link/unlink) (un)link RIB from route_node.
-         (rib_{add,del}node) Front-end to updates of a RIB.
-         (rib_process) Reap any deleted RIBs via rib_unlink.
-         Unset the route_node 'QUEUED' flag.
-         (General) Remove calls to rib_queue_add where add/del node was
-         called - not needed, update calls where not.
-         Ignore RIB_ENTRY_REMOVEd ribs in loops through route_nodes
-
-2006-07-27 Rumen Svobodnikov <rumen@telecoms.bg>
-
-       * connected.c: (connected_up_ipv4) interface connected routes always
-         go to table main (or otherwise they cannot be used by linux as
-          nexthops)
-       * zserv.c: (zread_ipv4_add) send route to the correct routing table
-       * zebra_rib.c (static_install_ipv4) set routing table
-
-2006-07-02 Paul Jakma <paul.jakma@sun.com>
-
-       * rt_netlink.c: (netlink_interface_addr) Fix CID #104, can not
-         proceed if addr is NULL.
-       * zebra_rib.c: (static_add_ipv6) Fix CID #18, double check
-         required arguments are supplied for the given nexthop type.
-       
-2006-06-15 Paul Jakma <paul.jakma@sun.com>
-
-       * interface.c: (if_flag_dump_vty) redundant code, remove.
-         (if_dump_vty) use libzebra if_flag_dump.
-         (ip_address_uninstall) Unset the configured flag.
-       * connected.c: (connected_same) new helper, check whether
-         two connected are same.
-         (connected_implicit_withdraw) new helper, consolidation of
-         existing code in connected_add_ipv{4,6}.
-         Try filter out unneeded Zserv address delete/adds when
-         address is exact same.
-         Where old address is implicitely removed, be sure to preserve
-         the IFC_CONFIGURED flag if set, fixes bug where configured
-         addresses were being lost on FreeBSD (Andrew Schorr).   
-
-2006-05-21 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * connected.c: (connected_withdraw) Do not delete the connected
-         address if the ZEBRA_IFC_CONFIGURED flag is set.
-         (connected_add_ipv4,connected_add_ipv6) Before calling
-         connected_withdraw, unset the ZEBRA_IFC_CONFIGURED flag
-         on the superseded connected structure.
-
-2006-05-19 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * connected.c: (connected_add_ipv4,connected_add_ipv6) If the
-         new struct connected matches an already existing one
-         (that will consequently be removed by connected_withdraw),
-         then be sure to preserve the ZEBRA_IFC_CONFIGURED flag.
-
-2006-05-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * kernel_socket.c: (ifam_read_mesg) Improve debug message
-         to show the IP address.
-
-2006-05-15 Paul Jakma <paul.jakma@sun.com>
-
-       * zserv.c: (general) Remove the private zebra_command_str
-         in favour of newly added libzebra zserv_command_string.
-
-2006-05-11 Paul Jakma <paul.jakma@sun.com>
-
-       * interface.c: (if_delete_update) route_node_lookup may return
-         NULL, should fix Coverity CID #31.
-
-2006-02-09 Paul Jakma <paul.jakma@sun.com>
-
-       * rib.h: (struct {rib,nexthop}) Rearrange fields to avoid
-         needless padding. 
-         (struct rib) Remove the indirect pointer, not used anywhere!
-
-2006-02-02 Paul Jakma <paul.jakma@sun.com>
-
-       * interface.c: (if_dump_vty) move flags to their line, neater.
-
-2006-01-30 Paul Jakma <paul.jakma@sun.com>
-
-       * zebra_rib.c: (rib_process) Fourth time lucky on this jinxed
-         commit, last commit had a hole that could allow connected
-         route selection to escape beyond the connected route logic. 
-         This time I cross-checked with Gunnar first. ;)
-
-2006-01-25 Gunnar Stigen <gunnar.stigen@axxessit.no>
-
-       * zebra_rib.c: (rib_process) Application of Gunnar's earlier
-         metric selection RIB change included incorrect tidy-ups made
-         by commiter. Fix. (NB: any errors here are again due to paul).
-
-2006-01-25 Paul Jakma <paul.jakma@sun.com>
-
-       * (general) More solaris PF_ROUTE hacks. The IFF_UP mangling
-         for solaris was incomplete on the PF_ROUTE side. fix it.
-         This changeset generally uglifies things. For some future
-         work I'd like to see the state changes seperated out from
-         the details of the code. Differences between systems might
-         then be slightly easier to implement without convoluted
-         hacks.
-         Changes should be specific to Solaris mostly, however
-         also tested on FreeBSD 6.
-       * if_ioctl_solaris.c: (interface_list_ioctl) ignore ~IFF_UP
-         interfaces, we'll hear about them when/if interface goes up
-         through NEWADDR.
-         Update flags explicitely at end of it to kick mangling.
-       * ioctl_solaris.c: (if_mangle_up) removed to interface.c, in
-         kind.
-         (lifreq_set_name) more convenient to take the string, than
-         the ifp.
-         (if_get_flags_direct) new convenience function, returns
-         the actual flags. Used during bootstrap in if_ioctl_solaris.c
-         to peek at flags of logical interfaces to see whether or
-         not to ignore them.
-         (if_get_flags) ENXIO means it's gone, poke out IFF_UP and
-         kick flags update.
-         (if_{un,}set_flags) flags argument should be 64bit.
-       * ioctl.{c,h}: flags argument should be 64bit. 
-       * interface.h: Add a 'primary_state' flag to struct zebra_if on
-         SUNOS_5.
-         Export if_flags_update.
-       * interface.c: (if_flags_mangle) moved over in kind from
-         ioctl_solaris.c. Nasty kludge to try get IFF_UP right, as
-         much as is possible. Also keep track of the actual IFF_UP
-         value for the primary interface, so we can know when the ifp
-         must be deleted.
-         (if_flags_update) Take a new interface flags value, apply it
-         to the interface, and take whatever actions are required due
-         to flag transitions.
-         (if_refresh) flag state change logic is moved out to
-         previous. Just call if_get_flags, which will end up using
-         previous to effect the update of flags.
-         (if_flag_dump_vty) IFF_IPV{4,6} aren't interesting, VIRTUAL
-         and NOXMIT are though.
-       * kernel_socket.c: (ifm_read) Down->Down transitions shouldn't
-         create ifp, for non-IFANNOUNCE systems.
-         Use if_flags_update to update flags.
-         flag transition logic is now handled automatically through
-         if_flags_update.
-         (ifam_read) Better to call if_refresh *after* adding
-         connected addresses, as connected count affects IFF_UP on
-         IFF_UP-mangled systems.
-         On Solaris, Up->Down due to DELADDR means we need to delete
-         the ifp - the IFINFO might already have been and gone.
-       * rt.h: include other dependent headers.
-
-2006-01-19 Paul Jakma <paul.jakma@sun.com>
-
-        * (general) various miscellaneous compiler warning fixes.
-          Remove redundant break statements from switch clauses
-          which return.
-          Remove stray semi-colons which cause empty-statement
-          warnings.
-       * main.c: (sighup) remove private declaration of external
-          function.
-          (main) return from main, not exit, cause it annoys SOS.
-
-2006-01-18 Gunnar Stigen <gunnar.stigen@axxessit.no>
-
-       * zebra_rib.c: Take interface metric into account.
-
-2006-01-17 Paul Jakma <paul.jakma@sun.com>
-
-       * kernel_socket.c: (ifam_read) Read metric from RTM_NEWADDR.
-         If interface is an alias, pass the alias as a label for
-         connected_add_ipv{4,6}.
-       * rt_netlink.c: (netlink_interface_addr) print out
-         IFA_CACHEINFO info, if present, when debugging kernel
-         messages.
-
-2006-01-17 Gunnar Stigen <gunnar.stigen@axxessit.no>
-
-       * connected.c: (connected_up_ipv{4,6}) Include interface metric on
-         connected routes.
-       * if_ioctl.c: (if_getaddrs) Be defensive about assuming
-         that struct ifaddrs will have ifa_addr filled in.
-
-2006-01-16 Paul Jakma <paul.jakma@sun.com>
-
-       * zserv.c: Read/write updated Zserv header.
-
-2006-01-11 Paul Jakma <paul.jakma@sun.com>
-
-       * zserv.c: (zsend_interface_{add,delete,update}) if flags are
-         8 bytes now, update to write out with stream_putq.
-
-2005-12-29  Greg Troxel  <gdt@fnord.ir.bbn.com>
-
-       * kernel_socket.c: remove dead code (from David Young).
-
-       * rt_socket.c (kernel_rtm_ipv4): Use AF_INET rather than AF_UNSPEC
-       for mask.  From David Young.
-
-2005-11-26 Paul Jakma <paul.jakma@sun.com>
-
-       * connected.{c,h}: (connected_add_ipv6) label should have
-         const qualifier, fix declarations.
-
-2005-11-24 Paul Jakma <paul.jakma@sun.com>
-
-       * kernel_socket.h: New header for functions exported to sysctl
-         methods.
-       * kernel_socket.c: include previous.
-         Remove static qualifier from couple of functions which are
-         used by sysctl methods.
-         Add a workaround for a bogus gcc warning to the RTA_ macros.
-       * Makefile.am: Add kernel_socket.h to noinst_HEADERS
-       * if_sysctl.c: include rt.h and kernel_socket.h and remove
-         redundant prototypes.
-       * rtread_sysctl.c: ditto.
-         (route_read) fix mismatch of return values.
-       * {rt,zserv,rib}.h: Include lib headers depended on.
-
-2005-11-23 Paul Jakma <paul.jakma@sun.com>
-
-       * (general) fix some small compile errors, and mark several
-          functions as static.
-        * kernel_socket.c: (ifan_read) should be static.
-          fix missing brackets.
-          (ifm_read,ifam_read,rtm_read_mesg,kernel_read) Make static
-          (ifam_read_mesg) make static. fix incorrect variable name.
-          (rtm_read) make static. Fix call to rib_delete_ipv4 which
-          should be rib_delete_ipv6.
-          (routing_socket,kernel_init) should be static. Void argument
-          should be specified as such, not left incomplete.
-        * rt_netlink.c: rt.h should be included, contains prototypes of  
-          exported functions.
-          (kernel_delete_ipv6_old) fix sign of index argument.   
-        * rt_socket.c: Exact same as previous. Also, make various
-          functions static.
-        * rtread_getmsg.c: Include zserv.h, which prototypes
-          route_read. Make static.
-        * rtread_sysctl.c: zserv.h and rt.h should be included.
-          fix definition of route_read.
-   
-2005-11-14 Paul Jakma <paul.jakma@sun.com>
-
-       * zebra_rib.c: (rib_process) convert to new workqueue specs and
-         shut up gcc, which complains about cast from void via
-         function parameters, for some dumb reason. Do the cast
-         inside the function instead.
-         (rib_queue_qnode_del) ditto.
-         (rib_queue_init) no need for the casts anymore.
-
-2005-11-12 Alexander Gall <gall@switch.ch>
-
-       * See [quagga-dev 1815]
-       * kernel_socket.c: (rtm_write) Use SAROUNDUP when HAVE_SIN_LEN
-         is not available.
-       * rt_socket.c: (kernel_rtm_ipv6(_multipath)) set family to 
-         AF_INET6 on ipv6 routes.
-
-2005-11-12 Paul Jakma <paul.jakma@sun.com> 
-
-       * kernel_socket.c: Add RTA_NAME_GET macro to extract name from
-         sockaddr_dl. Add some more RTF_ flags.
-       * (ifan_read) Add some debug messages.
-       * (ifm_read) Add more debug messages. More robust cross-checks
-         of index against name.
-         Fall back to by-name lookup if the index lookup fails, future
-         proofing more than anything else.
-         (ifam_read_mesg) Read RTA_IFP. Add debug messages.
-         (ifam_read) More debug. If there's an RTA_IFP and it isn't
-         the name of the interface, save it as the label.
-         (rtm_read_mesg) Read RTA_IFP.
-         (rtm_read) allow name to be retrieved.
-         (rtmsg_debug) expand on the debug message.
-
-2005-11-11 Paul Jakma <paul.jakma@sun.com>
-
-       * kernel_socket.c: (ifm_read) arithmetic on void pointer
-         warning.
-         (ifam_read) Fix error from connected-with-label merge,
-         something crept in from the pending Solaris kernel_socket.c
-          patch which shouldn't have.
-
-2005-11-03 Paul Jakma <paul.jakma@sun.com>
-
-       * connected.{c,h}: Include memory.h
-         (connected_add_ipv4) Use MTYPE for ifc label.
-         (connected_add_ipv6) Also should accept label. Store it in ifp.
-         (connected_del_ipv4) Taking label as argument is pointless.
-       * rt_netlink.c: (netlink_interface_addr) update label usage
-         for connected_{add,delete} functions.
-       * if_ioctl.c: (if_getaddrs) NULL label for connected_add_ipv6.
-       * if_ioctl_solaris.c: (interface_list_ioctl) Pass LIFC_NOXMIT
-         so we also find out about NOXMIT interfaces like VNI.
-         Bit of hackery to turn interface names into the primary
-         interface name, later with routing socket messages we only
-         will about primary interfaces anyway, so we must normalise
-         the name.
-         (if_get_addr) take label as argument, so it can
-         be passed to connected_add.
-         If label is provided, then it is interface name to issue the
-         ioctl for address information on, not the ifp name.
-         (interface_list) List AF_UNSPEC too, just in case.
-       * if_proc.c: (ifaddr_proc_ipv6) label for connected_add_ipv6.
-       * interface.c: (if_addr_wakeup) Some very bogus code - sets
-         IFF_RUNNING - add comment.
-         (if_refresh)
-         (ip_address_install) Use MTYPE for ifc label.
-       * ioctl_solaris.c: (if_mangle_up) New function. Hackery to make
-         IFF_UP reflect whether any addresses are left on the
-         interface, as we get signalled for IFF_UP flags change on the 
-         primary interface only. Logical interfaces dont generate
-         IFINFO, but we do get an RTM_DELADDR.
-         (if_get_flags) Call if_mangle_up before return.
-       * kernel_socket.c: (ifam_read) Fixup calls to
-         connected_{add,delete} to match above changes. Rename gate
-         variable to brd, less confusing.
-         Pass the interface name as a label, if it is not same name 
-         as ifp->name.
-
-2005-10-11 Paul Jakma <paul.jakma@sun.com>
-
-       * connected.{c,h}: (connected_{add,delete}_ipv4) label should
-         be const qualified.
-       
-2005-10-01 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * zebra_vty.c: (route_type_str) Remove obsolete function: use new
-         library function zebra_route_string() instead.  Note that there
-         are a few differences: for IPv6 routes, we now get "ripng" and
-         "ospf6" instead of the old behavior ("rip" and "ospf").
-         (route_type_char) Remove obsolete function: ues new library function
-         zebra_route_char() instead.  Note that there is one difference:
-         the old function returned 'S' for a ZEBRA_ROUTE_SYSTEM route,
-         whereas the new one returns 'X'.
-         (vty_show_ip_route_detail,vty_show_ipv6_route_detail) Replace
-         route_type_str() with zebra_route_string().
-         (vty_show_ip_route,vty_show_ipv6_route) Replace route_type_char()
-         with zebra_route_char().
-
-2005-10-01 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * rt_netlink.c: (netlink_request) Use memset to clear structure
-         before calling sendto (eliminates a valgrind error message about
-         uninitialized data).
-
-2005-09-28 Alain Ritoux <alain.ritoux@6wind.com>
-
-       * zserv.c: Always provied distance for route add
-
-2005-09-28 Alain Ritoux <alain.ritoux@6wind.com>
-
-       * connected.c: flag connected_up_ipv6() and connected_down_ipv6()
-         usage with HAVE_IPV6
-
-2005-09-24 Hasso Tepper <hasso at quagga.net>
-
-       * rib.h: Add note about behaviour of rib_add_ipv[46]* functions -
-         add is treated as implicit withdraw.
-
-2005-09-21 David Young <dyoung@ojctech.com>
-
-       * zebra_rib.c: Reduce the height of some staircases. Fix
-         rib_delete_ipv6() to match routes in the RIB by their gateway as
-         well as by destination.
-
-2005-09-21 Paul Jakma <paul.jakma@sun.com>
-
-       * zebra_rib.c: (static_uninstall_ipv{4,6}) Fix regression wrt
-         removal of static routes with multiple-hops introduced with
-         the workqueue conversion. We should free the relevant
-         nexthop and then get rib_process to run, otherwise we just
-         get same static route back again (with no way to unconfigure
-          it, because its already deleted from configuration).
-          
-2005-09-12 Paul Jakma <paul.jakma@sun.com>
-
-       * (general) RTM_CHANGE and implicit withdraw on RTM_NEWADDR
-         support.
-       * connected.c: (connected_withdraw) new function. withdraw a
-         connected subnet address set from zebra, and pass information
-         along to clients.
-         (connected_announce) similar, but to announce a new connected
-         subnet address set.
-         (connected_check_ipv4) renamed to connected_check, as its
-         AFI independent.
-         (connected_add_ipv{4,6}) Remove the connected address announce
-         stuff, use connected_announce instead.
-         If connected_check indicates address is already present,
-         treat it as an implicit withdraw of the existing address, ie
-         remove the old address details and replace with the new
-         details.
-         (connected_delete_ipv{4,6}) Use connected_withdraw.
-         (connected_check_ipv6) deleted in favour of connected_check.
-       * connected.h: Rename connected_check_ipv4 to connected_check.
-         delete connected_check_ipv6.
-       * interface.c: Use connected_check rather than the AFI specific
-         symbols.
-       * kernel_socket.c: (rtm_read) RTM_CHANGE support. Create a 
-         rib delete event for the existing route, before adding route
-         again.
-         (kernel_read) we can handle RTM_CHANGE now.
-
-2005-08-27 Hasso Tepper <hasso at quagga.net>
-
-       * zebra_rib.c, rib.h: Add distance and metric arguments to the
-         rib_add_ipv6() function so that IPv6 routes in RIB can have correct
-         metric. No IPv6 routing daemon uses distance yet though.
-       * zserv.c, connected.c, kernel_socket.c, rt_netlink.c,
-         rtread_proc.c,zserv.c: Pass metric and distance info to the
-         rib_add_ipv6().
-
-2005-07-29 Paul Jakma <paul.jakma@sun.com>
-
-       * interface.c: (if_delete_update) should always be available, not
-         just on RTM_IFANNOUNCE/NETLINK systems.
-       * kernel_socket.c: (ifan_read) only call if_delete_update when
-         interface departs, dont if_delete, because we wish to retain
-         interface configuration state even when interfaces are removed.
-         (ifm_read) If we dont have RTM_IFANNOUNCE, then transitioning
-         to down state is only chance we have to clean up interface in case
-         it is deleted (eg Solaris down -> unplumb -> plumb up).
-       * redistribute.c: (zebra_interface_delete_update) should always be
-         available, we /will/ call it now on all systems, via
-         if_delete_update.
-       * zserv.c: (zsend_interface_delete) ditto
-         (zsend_interface_address) Update the call-flow diagramme, to
-         reflect that if_delete_update /is/ now called on all systems,
-         potentially.
-       * zserv.h: (zsend_interface_delete) unconditionally exported, as
-         above.
-         
-2005-06-28 Paul Jakma <paul.jakma@sun.com>
-
-       * (global) Extern and static'ification, with related fixups
-         of declarations, ensuring files include their own headers, etc.
-       * if_ioctl.c: (interface_info_ioctl) fix obvious arg mis-order in
-         list loop
-       * kernel_socket.c: (RTA_{ADDR,ATTR}_GET) fix mistake, NULL check
-         should be on DEST argument
-
-2005-06-14 Paul Jakma <paul.jakma@sun.com>
-
-       * kernel_socket.c: consolidate the IFAM{ADDR,MASK}GET and 
-         RTM{ADDR,MASK}GET macros into generic rta_addrs macros,
-         RTA_{ADDR,ATTR}_GET.
-         (af_check) could use 'inline' attribute
-         (ifam_read_mesg) remove IFAM{ADDR,MASK}GET macro, change to
-         generic macro.
-         (rtm_read_mesg) similar
-
-2005-06-12 Hasso Tepper <hasso at quagga.net>
-
-       * rt_netlink.c: Remove netlink-addr socket declaration, it's not used.
-       * rt_netlink.c (netlink_parse_info): Fix debug messages - nlmsg_pid is
-         unsigned and one zlog call had swapped arguments.
-       * rt_netlink.c (netlink_route_multipath): Fix compile with disabled
-         IPv6 support.
-
-2005-05-31 Paul Jakma <paul.jakma@sun.com>
-
-       * zserv.c: (zsend_route_multipath) Fix bug if route is sent
-         with no NEXTHOP_FLAG_FIB nexthops. As ZAPI_MESSAGE_IFINDEX
-         and ZAPI_MESSAGE_NEXTHOP are always set, clients would try
-         read non-existent nexthop information and hit stream assert.
-         Zserv is still broken for multi-nexthop messages, but it always was.
-
-2005-05-06 Paul Jakma <paul.jakma@sun.com>
-
-       * zserv.h: Remove ZEBRA_PORT definition, its in lib/zebra.h now
-
-2005-04-28 Paul Jakma <paul.jakma@sun.com>
-
-       * rib.h: (struct rib) Add lock field for refcounting.
-       * zserv.h: (struct zebra_t) Add a ribq workqueue to the zebra
-         'master' struct.
-       * zserv.c: (zread_ipv4_add) XMALLOC then memset should be XCALLOC.
-       * zebra_rib.c: Clean up refcounting of route_node, make struct rib
-         refcounted and convert rib_process to work-queue. In general,
-         rib's should be rib_addnode'd and delnode'd to route_nodes, and 
-         these symmetrical functions will manage the locking of referenced
-         route_node and freeing of struct rib - rather than having users
-         manage each seperately - with much scope for bugs..
-         (newrib_free) removed and replaced with rib_lock
-         (rib_lock) new function, check state of lock and increment.
-         (rib_unlock) new function, check lock state and decrement. Free
-         struct rib if refcount hits 0, freeing struct nexthop's, as 
-         newrib_free did.
-         (rib_addnode) Add RIB to route_node, locking both.
-         (rib_delnode) Delete RIB from route_node, unlocking each.
-         (rib_process) Converted to a work-queue work function.
-         Functional changes are minimal, just arguments, comments and 
-         whitespace.
-         (rib_queue_add_qnode) Helper function to setup a ribq item.
-         (rib_queue_add) Helper function, same arguments as old
-         rib_process, to replace in callers of rib_process.
-         (rib_queue_qnode_del) ribq deconstructor.
-         (rib_queue_init) Create the ribq.
-         (rib_init) call rib_queue_init.
-         (remainder) Sanitise refcounting of route_node's. Convert to 
-         rib_queue_add, rib_addnode and rib_delnode. Change XMALLOC/memset
-         to XCALLOC. Remove calls to nexthop_delete and nexthop_free.
-         
-2005-04-10 Paul Jakma <paul@dishone.st>
-
-       * if_ioctl_solaris.c: (if_lookup_linklocal) fix order of args
-         in ALL_LIST_ELEMENTS_RO macro.
-
-2005-04-10 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * zserv.c (zebra_client_read): Fix bug: first read attempt should
-         read ZEBRA_HEADER_SIZE minus the number of bytes already read.
-         Improve efficiency by maintaining a calculation of the number
-         of bytes read instead of calling stream_get_endp multiple times.
-         If message length is too small, issue a warning message (not debug)
-         before closing the connection.  And also check that message length
-         is not too big.
-
-2005-04-09 Hasso Tepper <hasso at quagga.net>
-
-       * rt_netlink.c: One tiny missing comma caused pointless debug messages
-         about IPv6 nexthops.
-
-2005-04-09 Hasso Tepper <hasso at quagga.net>
-
-       * rt_netlink.c (netlink_parse_info): Fix warning. It's safe to cast
-         status to unsigned here, because we already checked that it isn't
-         negative or 0.
-       * rt_netlink.c (netlink_interface_addr): Prefix length belongs to the
-         address, not to the interface.
-       * rt_netlink.c (netlink_route_multipath): Fix debug. No useless info
-         is printed out now and IPv6 info is handeled.
-
-2005-04-05 Paul Jakma <paul@dishone.st>
-
-       * zserv.c: print more helpful errors when we fail to successfully
-         bind and listen on zserv socket. Closes bugzilla #163.
-
-2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * if_ioctl.c: (interface_list_ioctl) Use if_get_by_name_len.
-       * if_proc.c: (ifaddr_proc_ipv6) Increase size of ifname buffer to
-         avoid overflow.
-       * kernel_socket.c: (ifan_read) Use if_get_by_name_len.
-
-2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * kernel_socket.c: (ifm_read) Use new if_lookup_by_name_len function
-         to save a memcpy.
-       * if_ioctl_solaris.c: (interface_list_ioctl) Fix subtle bug with new
-         if_get_by_name_len function.
-
-2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * interface.c: (if_new_intern_ifindex) Remove obsolete function.
-         (if_delete_update) After distributing the interface deletion message,
-         set ifp->ifindex to IFINDEX_INTERNAL.
-         (if_dump_vty) Detect pseudo interface by checking if ifp->ifindex is
-         IFINDEX_INTERNAL.
-         (zebra_interface) Check return code from interface_cmd.func.
-         Do not set internal ifindex values to if_new_intern_ifindex(),
-         since we now use IFINDEX_INTERNAL for all pseudo interfaces.
-       * kernel_socket.c: (ifm_read) Fix code and comments to reflect that
-         all internal interfaces now have ifp->ifindex set to IFINDEX_INTERNAL.
-        * rt_netlink.c: (set_ifindex) New function used to update ifp->ifindex.
-         Detects interface rename events by checking if that ifindex is already
-         being used.  If it is, delete the old interface before assigning
-         the ifindex to the new interface.
-         (netlink_interface, netlink_link_change) Call set_ifindex to update
-         the ifindex.
-
-2005-03-31 Hasso Tepper <hasso at quagga.net>
-
-       * rt_netlink.c (netlink_talk_filter): Show always warning message,
-         it's not for debug.
-       * rt_netlink.c (netlink_talk): Don't assume we use netlink_cmd
-         although we do now actually.
-       * rt_netlink.c (netlink_route, netlink_route_multipath): Always use
-         netlink_cmd to send messages to the kernel.
-
-2005-03-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * irdp.h: Add prototype for irdp_sock_init, and fix protos for
-         other irdp_* functions.
-       * irdp_interface.c: (irdp_if_start) If irdp_sock is negative,
-         call irdp_sock_init to create the IRDP socket.
-         (irdp_if_init) Rename to irdp_init().
-         (get_iflist_ifp) Remove function that is a duplicate of
-         if_lookup_by_index.
-         (*) Make many functions static.  And remove superfluous "\n" from
-         several zlog messages.
-       * irdp_main.c: (irdp_init) Remove function that used to call
-         irdp_if_init() and irdp_sock_init(), since we will now create
-         the socket only upon first use.
-         (irdp_sock_init) Do not update global irdp_sock variable, just
-         return the fd and assume that the caller will do so.  If setsockopt
-         calls fail, close the socket before returning -1.
-         (*) Make many functions static.
-       * irdp_packet.c: Initialize irdp_sock to -1.
-         (irdp_read_raw) Call standard library function if_lookup_by_index
-         instead of get_iflist_ifp.
-         (irdp_recvmsg) Should be static, not global.
-
-2005-03-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * rt_netlink.c: (netlink_link_change) If the status of an
-         operative interface changes (e.g. MTU changes), the client
-         daemons should be notified by calling zebra_interface_up_update.
-         Previously, the information was being updated in zebra's
-         interface structure, but the clients were not notified of
-         changes to an operative interface.
-
-2005-03-25 Jean-Mickael Guerin <jean-mickael.guerin@6wind.com>
-       * interface.c, interface.h, rtadv.c, rtadv.h: modifications to 
-         IPv6 Neighbor Discovery according to RFC3775, section 7:
-         o 1-bit Home Agent flag management in Router Advertisement (7.1).
-         o 1-bit Router Address flag management in Prefix Information 
-           Option (7.2).
-         o Advertisement Interval Option (7.3)
-         o Home Agent Information Option (7.4)
-         o Changes to Sending Router Advertisements more frequently (7.5)
-
-2005-03-13 Hasso Tepper <hasso at quagga.net>
-
-       * zebra/interaface.c: "show interface description" command
-         implemented.
-
-2005-03-12 Paul Jakma <paul@dishone.st>
-
-       * rt_netlink.c: (netlink_route_multipath) dont set equalise flag.
-         No stock Linux kernel has ever supported it, and even if it had
-         it's not generally a good idea.
-
-2005-03-07 Michael Sandee <voidptr@voidptr.sboost.org>
-
-       * if_proc.c, ipforward_proc.c, rtread_proc.c: Fix fd leaks.
-
-2005-03-06 Hasso Tepper <hasso at quagga.net>
-
-       * interface.c: Fix CRC and frame errors statistics in Linux.
-
-2005-02-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * zserv.c: Must include network.h and buffer.h for non-blocking I/O.
-         Remove global message_queue and t_write (need separate buffering for
-         each client).
-         (zebra_server_dequeue,zebra_server_enqueue) Remove functions
-         related to old buggy buffering code.
-         (zserv_delayed_close) New thread callback function to delete a client.
-         (zserv_flush_data) New thread callback function to flush buffered
-         data to client.
-         (zebra_server_send_message) Rewritten to use buffer_write (so
-         buffering of writes and non-blocking I/O work properly).
-         (zsend_interface_add,zsend_interface_delete,zsend_interface_address,
-         zsend_interface_update) Return 0 instead of -1 if !client->ifinfo
-         (this is not really an error).  Return value from
-         zebra_server_send_message.
-         (zsend_route_multipath,zsend_ipv4_nexthop_lookup,
-         zsend_ipv4_import_lookup) Return value from zebra_server_send_message.
-         (zsend_ipv6_nexthop_lookup) Fix scope to static, and return value
-         from zebra_server_send_message.
-         (zsend_router_id_update) Must use zebra_server_send_message instead
-         of deprecated writen function.  Return 0 instead of -1 if this client
-         is not subscribed to router-id updates (since this is not really
-         an error).
-         (zread_interface_add) Change type to static int.  If
-         zsend_interface_add fails or zsend_interface_address fails, return -1
-         immediately (since the client has had an I/O error).
-         (zread_interface_delete,zread_ipv4_add,zread_ipv4_delete,
-         zread_ipv6_add,zread_ipv6_delete,zread_router_id_delete) Return 0
-         to indicate success.
-         (zread_ipv4_nexthop_lookup) Return value from
-         zsend_ipv4_nexthop_lookup.
-         (zread_ipv4_import_lookup) Return value from zsend_ipv4_import_lookup.
-         (zebra_read_ipv6) Remove unused function.
-         (zread_ipv6_nexthop_lookup) Return value from
-         zsend_ipv6_nexthop_lookup.
-         (zread_router_id_add) Return value from zsend_router_id_update.
-         (zebra_client_close) Call buffer_free(client->wb) and
-         thread_cancel(client->t_suicide).
-         (zebra_client_create) Allocate client->wb using buffer_new.
-         (zebra_client_read) Support non-blocking I/O by using stream_read_try.
-         Use ZEBRA_HEADER_SIZE instead of 3.
-         (zebra_accept) Fix bug: reset accept thread at top.  Make client
-         socket non-blocking using the set_nonblocking function.
-         (config_write_forwarding) Fix scope to static.
-         (zebra_init) Remove initialization code for old buggy write buffering.
-       * zserv.h: Add 2 new fields to struct zserv: struct buffer *wb
-         (to enable buffered writes with non-blocking I/), and 
-         struct thread *t_suicide to support delayed close on I/O
-         errors.
-       * router-id.h: Remove prototypes for zread_router_id_add and
-         zread_router_id_delete (their scope should be static to zserv.c).
-
-2005-02-24 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * redistribute.c: (zebra_check_addr,is_default,
-         zebra_redistribute_default,zebra_redistribute) Fix scope to be static.
-
-2005-02-20 Hasso Tepper <hasso at quagga.net>
-
-       * rt_netlink.c: Don't show messages "ignoring message type 0x001[89]"
-         if we are not debugging.
-
-2005-02-19 Paul Jakma <paul@dishone.st>
-
-       * zserv.c: (zebra_read_ipv6) replace the char * arithmetic with
-         STREAM_READABLE.
-
-2005-02-14 Paul Jakma <paul@dishone.st>
-
-       * Not all Linux netlink systems have IFLA_WIRELESS
-
-2005-01-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * ioctl.c: (if_ioctl,if_ioctl_ipv6,if_get_flags) Replace perror with
-         zlog_err.
-       * ioctl_solaris.c: (if_ioctl,if_ioctl_ipv6) Replace perror with
-         zlog_err.
-
-2005-01-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * if_ioctl_solaris.c: (interface_list_ioctl) Save errno before calling
-         zserv_privs.change.
-       * ioctl{,_solaris}.c: (if_ioctl,if_ioctl_ipv6) Save errno before calling
-         zserv_privs.change.
-       * ipforward_solaris.c: (solaris_nd) Save errno before calling
-         zserv_privs.change.
-       * irdp_main.c: (irdp_sock_init) Save errno before calling
-         zserv_privs.change.
-
-2005-01-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * rt_netlink.c: (netlink_socket,netlink_request,netlink_parse_info,
-         netlink_talk) Save errno before calling zserv_privs.change.
-
-2005-01-24 Martin Pot <mpot at martybugs.net>
-
-       * zebra/rt_netlink.c: ignore wireless newlink netlink messages.
-
-2005-01-18 Hasso Tepper <hasso at quagga.net>
-
-       * interface.c: Better statistics output in "show interface" command in
-         case of /proc being used.
-
-2005-01-17 Hasso Tepper <hasso at quagga.net>
-
-       * main.c: With --nl-bufsize argument is required.
-
-2005-01-05 Paul Jakma <paul@dishone.st>
-
-       * zserv.c: (zebra_accept) Comment out setting of socket to NONBLOCK
-          for now, as we dont actually deal with with resending.... See
-          bugzilla #122, fix from wawa@yandex-team.ru (Vladimir Ivanov).
-       * kernel_socket.c: (routing_socket) ditto.
-
-2005-01-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * rtadv.c: (rtadv_recv_packet,rtadv_send_packet) Use ZCMSG_FIRSTHDR
-         instead of CMSG_FIRSTHDR.
-
-2004-12-22 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * connected.c: (connected_add_ipv4) Limit warning about /32 addresses
-         with no peer specified to PtP interfaces only.
-
-2004-12-18 Hasso Tepper <hasso at quagga.net>
-
-       * zebra_vty.c: Fix "show ipv6 route <proto>" command help and make it
-         work for isis routes.
-
-2004-12-09  Greg Troxel  <gdt@fnord.ir.bbn.com>
-
-       * kernel_socket.c (rtmsg_debug): char * => const char *
-
-2004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * *.c: Change level of debug messages to LOG_DEBUG.
-
-2004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * main.c: (main) The 2nd argument to openzlog has been removed.
-         So stdout logging will no longer be enabled by default.
-       * irdp_main.c: (irdp_finish) Reduce severity of shutdown message
-         from LOG_WARNING to LOG_INFO.
-
-2004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
-
-       * main.c: (sigint) Use zlog_notice for termination message.
-         (main) Add a startup announcement using zlog_notice.
-
-2004-11-25 Hasso Tepper <hasso at quagga.net>
-
-       * irdp_interface.c: Remove comment from DEFUN, it breaks vtysh because
-         it confuses extract.pl.
-       * main.c: Make group to run as configurable.
-
-2004-10-28 Hasso Tepper <hasso at quagga.net>
-
-       * interface.c: Remove dead "ip tunnel" command.
-
-2004-10-22 Paul Jakma <paul@dishone.st>
-
-       * irdp_main.c: change setsockopt_pktinfo to setsockopt_ifindex
-
-2004-10-19 Andrew J. Schorr <aschorr@telemetry-investments.com>
-
-       * rt_netlink.c: (netlink_interface_addr) For PtP interfaces, ignore
-         tb[IFA_ADDRESS] if it's the same as tb[IFA_LOCAL].
-       * interface.c: (ip_address_install) Use new ipv4_broadcast_addr
-         function.
-       * connected.c: (connected_up_ipv4) Use CONNECTED_POINTOPOINT_HOST
-         macro.
-         (connected_down_ipv4) ditto.
-         (connected_add_ipv4) Validate destination address, print warnings
-         if it does not make sense.
-
-2004-10-19 Hasso Tepper <hasso at quagga.net>
-
-       * zserv.c: Fix regression introduced with zserv cleanup.
-
-2004-10-13 Hasso Tepper <hasso at quagga.net>
-
-       * zebra_snmp.c: Remove defaults used to initialize smux connection to
-         snmpd. Connection is initialized only if smux peer is configured.
-       * zserv.c: Remove useless warnings "forwarding is already on".
-
-2004-10-12 Hasso Tepper <hasso at quagga.net>
-
-       * zebra_vty.c: Unbreak "show ip route" command help and make it work
-         for isis routes.
-       * interface.c(if_dump_vty): Show IPv6 addresses in "show interface"
-         output. Fixes Bugzilla #119.
-       * *.c: Make some strings const and some (unsigned) casts to fix
-         compiler warnings.
-
-2004-10-07 Hasso Tepper <hasso at quagga.net>
-
-       * connected.c, main.c, rt_netlink.c, rtadv.c, zebra_rib.c, zserv.c:
-         Fix warnings: make strings const, signed -> unsigned.
-
-2004-10-05 Paul Jakma <paul@dishone.st>
-
-       * irdp_packet.c: (parse_irdp_packet) style issues.
-         Use sockopt_iphdrincl_swab_systoh.
-          Try unbork the code. Checksum the ICMP data and actually 
-          compare it to received checksum. Check data length against
-          claimed length in header.
-         Always use ntoh.. when accessing addresses, even when the
-          comparison happens to be endian-safe.
-         (send_packet) minor style isues. Use
-          sockopt_iphdrincl_swab_htosys.
-         (irdp_iph_hton/ntoh) IP header to/from network/host order.
-
-2004-10-03 Gilad Arnold <gilad.arnold at terayon.com>
-
-       * interface.c, interface.h: A new prefix tree of connected subnets is
-         associated with each interface structure in zebra, in which each
-         live (ie, non-synthetic) node holds a list of installed addresses
-         that belong to that prefix. Remove secondary address logic from cli.
-         See [quagga-dev 872] for detailed explanation.
-       * connected.c: Use if_subnet_add() and if_subnet_delete().
-
-2004-10-03 James R. Leu <jleu at mindspring.com>
-
-       * router-id.c, router-id.h: New files. Router id selection process. If
-         there is non 127.x.x.x address in loopack interface, lowest of them
-         is chosen. If there isn't, lowest from other interfaces addresses
-         are chosen. "router-id x.x.x.x" vty command to manual override.
-       * Makefile.am: Compile new files.
-       * main.c: Initialize router id.
-       * redistribute.c: Add interface addresses into router id selection
-         lists as they (dis)appear.
-       * zserv.c, zserv.h: Sending router id related messages to daemons.
-
-2004-09-26 Hasso Tepper <hasso at quagga.net>
-
-       * irdp_interface.c, irdp_main.c, irdp_packet.c, rt_netlink.c,
-         rtadv.c, zebra_vty.c: Fix compiler warnings.
-
-2004-09-24 Paul Jakma <paul@dishone.st>
-
-       * irdp_interface.c: (no_ip_irdp_address_preference_cmd)
-          add missing listnode declaration.
-
-2004-09-24 Paul Jakma <paul@dishone.st>
-
-        * irdp_{interface,main}.c: lists typedef removal cleanup.        
-          update some list loops to LIST_LOOP. some miscellaneous style
-          and indent fixups.
-          (no_ip_irdp_address_preference_cmd) Fix delete of referenced node    
-          in loop.
-        * irdp_packet.c: (irdp_recvmsg) Fix buggy assignment of integer
-          to pointer.
-        * if_ioctl{,_solaris}.c: lists typedef removal cleanup. 
-          update some list loops to LIST_LOOP.
-
-2004-09-23 Hasso Tepper <hasso at quagga.net>
-
-       * *.[c|h]: list -> struct list *, listnode -> struct listnode *.
-
-2004-09-22 Paul Jakma <paul.jakma@sun.com>
-
-       * zserv.c: (zsend_route_multipath) fix nasty bad memset of struct
-         in_addr to sizeof(struct in6_addr), causing odd and hard to debug
-          crash.
-
-2004-08-31 Hasso Tepper <hasso at quagga.net>
-
-       * main.c, rt_netlink.c: Added -s command line switch for tuning
-         netlink receive buffer size in Linux to avoid buffer overruns.
-
-2004-08-26  Miles Nordin  <carton@Ivy.NET>
-
-       * ipforward_sysctl.c (mib_ipv6): Use size_t for len, per
-         sysctl(3), rather than int.  (Needed on NetBSD/alpha to display
-         forwarding status correctly.)
-
-2004-08-23 Paul Jakma <paul@dishone.st>
-
-       * zserv.c: (zebra_init) remove implicit ip forward enabling
-       
-2004-08-19 Paul Jakma <paul@dishone.st>
-
-        * irdp_main.c: update to match sockopt renames.
-        * irdp_packet.c: include sockopt.h and update to match sockopt
-         renames.
-                
-2004-08-11  Greg Troxel  <gdt@fnord.ir.bbn.com>
-
-       * rtadv.c (rtadv_send_packet): Allocate space for control messages
-       more carefully; it was wrong on NetBSD/sparc where CMSG alignment
-       is to 8 bytes instead of 4, and overwriting the address.  Use the
-       provided macros for determining lengths.
-
-2004-07-23 Sowmini Varadhan <Sowmini.Varadhan@Sun.COM>
-
-        * if_ioctl_solaris.c: HAVE_IPV6 ifdef fixups
-        * zserv.c: ditto
-        * ioctl_solaris.c: ditto.
-        * interface.c: cast for LLADDR
-        * interface.h: Add guards, include redistribute.h and remove
-          extraneous definitions of zebra_interface_{up,down}_update
-        * ioctl.h: Add AF_IOCTL define for non SOLARIS_IPV6
-        * redistribute.h: include dependent header, zserv.h
-        * zserv.h: include dependent header, rib.h
-
-2004-07-23 Paul Jakma <paul@dishone.st>
-
-       * irdp_main.c: use setsockopt_pktinfo_ipv4
-       * irdp_packet.c: use SOPT_SIZE_CMSG_PKTINFO_IPV4 and 
-         getsockopt_pktinfo_ifindex()
-
-2004-07-13  David Wiggins <dwiggins@bbn.com
-
-       * kernel_socket.c (rtm_flag_dump): terminate buffer with '\0', not '0'.
-
-2004-07-13 Hasso Tepper <hasso@estpak.ee>
-
-       * irdp_main.c: Add privilege change.
-
-2004-07-12  Hasso Tepper <hasso@estpak.ee>
-
-       * irdp_interface.c: follow common style while naming vty command
-         functions. Avoids confusion in extract.pl.
-
-2004-06-30  Greg Troxel  <gdt@poblano.ir.bbn.com>
-
-       * main.c: define thread_master variable so that linking with
-       libzebra.so doesn't fail.  Arguably zclient.o should be in a
-       separate library, but this is far less disruptive.
-
-2004-06-12 Robert Olsson <Robert.Olsson at data.slu.se>
-
-        * Added IRDP support.
-
-2004-05-18 Hasso Tepper <hasso@estpak.ee>
-
-       * rtadv.c: Removed "[no] ipv6 nd send-ra" command. Replaced "ipv6 nd
-         prefix-advertisement" with "ipv6 nd prefix". Rewrite syntax of
-         "ipv6 nd prefix" command to allow various combinations of parameters
-         and flags. No defaults in configuration. Replaced on-link and
-         autoconfig with off-link and no-autoconfig flags in command syntax.
-         Cosmetic fixes in all commands. Documentation to reflect all changes.
-
-2004-05-11 Paul Jakma <paul@dishone.st>
-
-       * Makefile.am: support for IOCTL_METHOD, as per Sowmini's patch.
-       * if_ioctl_solaris.c: Fixup some erroneous privilege changes and
-         add privs.h header.
-       * ioctl_solaris.c: ditto
-       * ioctl.h: Add if_ioctl_ipv6 prototype and AF_IOCTL for SOLARIS_IPV6
-       * kernel_socket.c: Fix SAROUNDUP, compiler doesnt like do..while
-         RHS in assignments :)
-       * redistribute.c: (zebra_interface_delete_update) only used
-         if RTM_IFANNOUNCE and NETLINK is available.
-                
-2004-05-09 Paul Jakma <paul@dishone.st>
-
-       * zserv.c: (zsend_route_multipath) Set the nexthop_num
-         field correctly. Add NEXTHOP_TYPE_IPV6_IFNAME for v6.
-         Conditionally set ZAPI_MESSAGE_METRIC flag - only for adds.
-         (zsend_ipv4_add) cruft, deleted.
-         (zsend_ipv4_delete) ditto.
-         (zsend_ipv6_add) ditto.
-         (zsend_ipv6_delete) ditto.
-       * ioctl.c: (if_get_mtu) set mtu6 to mtu
-       * mtu_kvm.c: (if_kvm_get_mtu) set mtu6 to mtu
-       * rt_netlink.c: (netlink_interface) set mtu6 to mtu
-         (netlink_link_change) ditto 
-       * ipforward_solaris.c: fix typo of ND variable.
-       * if_ioctl_solaris.c: Add zprivs support.
-       * ioctl_solaris.c: ditto.
-                 
-2004-05-09 Sowmini Varadhan <sowmini.varadhan@sun.com>
-
-       * zserv.c: (zsend_ipv{4,6}_{add,delete}_multipath) collapsed
-         into single zsend_route_multipath function.
-         (zsend_interface_{up,down}) collapsed into zsend_interface_update.
-         (zsend_interface_address_{add,delete}) collapsed into 
-         zsend_interface_address.
-         (zsend_interface_add) send mtu6.
-         (zsend_interface_delete) ditto.
-         (zebra_write) remove unused function.
-         (various) Apply static qualifier. Add comments.
-       * zserv.h: Definitions changed as per above.
-       * redistribute.c: Changes as per zserv.c.
-       * interface.c: (if_delete_update) only used with HAVE_NETLINK
-         and RTM_IFANNOUNCE.
-         (if_flag_dump_vty) Solaris IFF_IPV4 and IFF_IPV6 if flags
-         (if_dump_vty) print mtu6 if not same as mtu     
-       * if_ioctl_solaris.c: New file, Solaris interface ioctl methods.
-       * ioctl_solaris.c: New file, Common solaris ioctl methods.
-       
-2004-04-06  Krzysztof Oledzki <oleq@ans.pl>
-
-       * rt_netlink.c: Do not ignore metric when reading kernel routing
-         table on Linux with rt_netlink interface.
-
-2004-03-18  Hasso Tepper <hasso@estpak.ee>
-
-       * interface.c: Temporary fix for handling secondary addresses
-         with label.
-
-2004-02-12  Hasso Tepper  <hasso@estpak.ee>
-
-       * zserv.c: Added "ipv6 forwarding" command.
-
-2004-01-08  Greg Troxel  <gdt@fnord.ir.bbn.com>
-
-       * kernel_socket.c (kernel_read): Use sockaddr_storage in buffer
-       for reading kernel messages to ensure enough space (necessary on
-       Solaris due to sockaddr_dl being large).  Thanks to Sowmini
-       Varadhan for help with this change.
-
-2004-01-06  Greg Troxel  <gdt@t1.ir.bbn.com>
-
-       * rtadv.c (rtadv_send_packet): Change perror to zlog_err.
-
-2004-01-05  Greg Troxel  <gdt@fnord.ir.bbn.com>
-       * kernel_socket.c (ifm_read): Major cleanup.  Use Sowmini's code
-       to find the sockaddr_dl in all cases, narrowing the Solaris ifdef
-       to just the accomodation of broken kernels.  Check sockaddr_dl
-       carefully up front, and later assume any non-NULL sdl pointer is
-       valid.  Clean up types and variable declarations, and rename
-       WRAPUP to SAROUNDUP to make the name fit the behavior.
-
-2004-01-05  Greg Troxel  <gdt@fnord.ir.bbn.com>
-
-       * kernel_socket.c (kernel_read): Add a sockaddr_dl to the ifmsg
-       structure, because on Solaris sockaddr_dl is far larger than the
-       base sockaddr structure.  (The code had previously been failing to
-       read all the data.)
-       
-2004-01-05  Greg Troxel  <gdt@ahi.ir.bbn.com>
-
-       * kernel_socket.c (kernel_read): Look up interfaces by index
-       first, so that state changes which do not include a sockaddr_dl
-       now work.  Add many sanity checks.  In
-       particular, do not assume that a sockaddr_dl follows a message
-       without checking the ifm_addrs flags, and do not trust the length
-       in a sockaddr_dl.  Add/clarify many comments.
-
-2003-12-03  Greg Troxel  <gdt@poblano.ir.bbn.com>
-
-       * rtadv.c: reorder includes to avoid compiler warning (define
-       structs before using them in prototypes)
-
-2003-05-25 Jim Crumpler <Jim.Crumpler@edion.com>
-
-  * zserv.c: Add "ip forwarding" command.
-
-2003-05-16 Gilad Arnold <gilad.arnold@terayon.com>
-
-       * zebra_rib.c: Fix memory leaks for ifname nexthops
-
-2003-04-19 Israel Keys <ikeys@agile.tv>
-
-       * rt_netlink.c: BLOCK on netlink while initialising
-
-2003-02-06  Francois Deppierraz <francois@ctrlaltdel.ch>
-
-       * rt_netlink.c (netlink_route_multipath): Set RTM_F_EQUALIZE when
-       it exists.
-
-2002-09-28  Akihiro Mizutani <mizutani@net-chef.net>
-
-       * zebra_rib.c (static_add_ipv4): Null0 static route is added.
-
-2002-09-10  Jochen Friedrich <chris+zebra@scram.de>
-
-       * rt_netlink.c: Add check for EAGAIN.
-       * kernel_socket.c: Likewise
-
-2002-06-12  Israel Keys <ikeys@oz.agile.tv>
-
-       * rt_netlink.c: Setting the NLM_F_ACK flag on the netlink command
-         message so that we get an ACK for successful netlink commands.
-         Change the netlink socket to BLOCKING while we wait for a
-         response; be it an ACK or an NLMSG_ERROR.  Change
-         netlink_parse_info to deal with ACK messages.
-
-2001-11-01  Jun-ichiro itojun Hagino <itojun@iijlab.net>
-
-       * rtadv.c (rtadv_make_socket): setsockopt(IPV6_CHECKSUM) does not
-       work for ICMPv6 socket.
-
-2001-10-24  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * rib.c (rib_process): Select connected route any case.
-
-2001-10-23  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * interface.c (no_ip_address_secondary): Add "no" to command.
-
-2001-10-18  NOGUCHI Kay  <kay@v6.access.co.jp>
-
-       * ioctl.c (if_prefix_add_ipv6): Set the prefered and valid lifetime
-       to infinity as the freebsd4.4 workaroud.
-
-2001-08-26  mihail.balikov@interbgc.com
-
-       * zebra_snmp.c: Fix snmpwalk problem such as IPv4 address
-       A.B.C.255.
-
-2001-08-22  NOGUCHI Kay <kay@v6.access.co.jp>
-
-       * rtadv.c: Do not send RA to loopback interface.
-
-2001-08-20  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * ioctl.c (if_set_prefix): Remove Linux 2.0 specific connected
-       route treatment.
-
-2001-08-19  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.92a released.
-
-2001-08-17  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * rib.c: Kernel route is treated as EGP routes in nexthop active
-       check.
-
-2001-08-15  Kunihiro Ishiguro  <kunihiro@ipinfusion.com>
-
-       * zebra-0.92 released.
-
-2001-08-08  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * rib.c (show_ip_route_prefix_longer): Add longer-prefix option to
-       show route commands.
-
-2001-07-29  Yon Uriarte <havanna_moon@gmx.net>
-
-       * zserv.c (zsend_ipv4_add_multipath): Add
-       NEXTHOP_TYPE_IPV4_IFINDEX check.
-
-2001-07-29  NOGUCHI Kay <kay@v6.access.co.jp>
-
-       * rtadv.c: Apply valid lifetime, preferred lifetime, onilnk flag,
-       autonomous address-configuration flag patch.
-       (no_ipv6_nd_suppress_ra): Change "ipv6 nd send-ra" to "no ipv6 nd
-       suppress-ra".
-
-2001-07-24  NOGUCHI Kay <kay@v6.access.co.jp>
-
-       * rtadv.c (ipv6_nd_ra_interval): Add "ipv6 nd ra-interval SECONDS"
-       command.
-
-2001-07-24  Jun-ichiro itojun Hagino <itojun@iijlab.net>
-
-       * rt_socket.c (kernel_rtm_ipv4): Add KAME/NetBSD151 equal cost
-       multicast FIB support both IPv4 and IPv6.
-
-2001-07-24  Hal Snyder <hal@vailsys.com>
-
-       * if_ioctl.c (interface_list_ioctl): Fix bug of failing to get the
-       full list of interfaces on some configurations of OpenBSD.
-
-2001-07-23  NOGUCHI Kay <kay@v6.access.co.jp>
-
-       * rtadv.c (ipv6_nd_send_ra): Apply [zebra 9320] to fix "ipv6 nd
-       send-ra" bug.
-       (ipv6_nd_ra_lifetime): "ipv6 nd ra-lifetime 0" for default router
-       availability.
-       (ipv6_nd_managed_config_flag): "ipv6 nd managed-config-flag" is
-       added.
-       (ipv6_nd_other_config_flag): "ipv6 nd other-config-flag" is added.
-       
-2001-07-23  Jun-ichiro itojun Hagino <itojun@iijlab.net>
-
-       * ioctl.c (if_ioctl): Change ioctl argument from int to u_long.
-
-       * rt_ioctl.c: Likewise.
-
-2001-07-23  Jun-ichiro itojun Hagino <itojun@iijlab.net>
-
-       * kernel_socket.c (rtm_write): Only set RTF_CLONING when the
-       interface is not p2p.
-
-2001-04-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ioctl.c (if_prefix_add_ipv6): Fix argument type.
-
-2001-04-06  Toshiaki Takada  <takada@zebra.org>
-
-       * zserv.c (zsend_interface_delete): Use client->obuf instead of
-       allocating new stream.
-
-2001-03-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rt_netlink.c: Revert RTPROT_BOOT change.
-
-2001-03-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rt_netlink.c (netlink_route_change): Skip RTPROT_BOOT route.
-       (netlink_routing_table): Likewise.
-
-2001-03-07  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * zserv.c (zsend_ipv4_add_multipath): Send metric value to
-       protocol daemons.
-
-2001-02-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rt_netlink.c (netlink_routing_table): Do not return
-       tb[RTA_GATEWAY] is NULL.  Reported by: "Michael O'Keefe"
-       <mokeefe@qualcomm.com>.
-
-2001-02-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * if_ioctl.c (interface_list_ioctl): Call if_add_update().
-       Suggested by: Chris Dunlop <chris@onthe.net.au>.
-
-2001-02-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rib.c (nexthop_active_ipv4): When nexthop type is
-       NEXTHOP_TYPE_IPV4_IFINDEX, propery set the ifindex to rifindex.
-
-       * zserv.c: Initialize rtm_table_default with 0.
-
-       * zebra-0.91 is released.
-
-2001-01-31  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * kernel_socket.c (rtm_read): Filter cloned route.  Suggested by:
-       Jun-ichiro itojun Hagino <itojun@iijlab.net>
-
-2001-01-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * connected.c (connected_up_ipv6): When point-to-point destination
-       address is ::, use local address for connected network.
-       (connected_down_ipv6): Likewise.
-
-2001-01-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zserv.c (zebra_serv): Add missing close() call.  Reported by:
-       David Waitzman <djw@vineyard.net>.
-
-2001-01-24  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rib.c (rib_lookup_ipv4): New function for checking exact match
-       IGP route.
-
-2001-01-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rib.c (show_ipv6_route_protocol): Fix bug of "show ip route
-       route-type".
-
-2001-01-22  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * interface.c (zebra_interface): Do not call
-       zebra_interface_add_update for inactive interface.
-
-       * zserv.c (zsend_interface_address_add): Send interface address
-       flag.
-       (zsend_interface_address_delete): Likewise.
-
-2001-01-19  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * interface.c (if_addr_add):  Add flags.
-
-       * connected.c (ifa_add_ipv4): Add new function for interface
-       address handling.
-       (ifa_delete_ipv4): Likewise.
-
-2001-01-16  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rib.c (rib_update): Update IPv6 RIB.
-
-       * kernel_socket.c (ifam_read): Call if_refresh() for update
-       interface flag status.  This is for implicit interface up on *BSD.
-
-       * interface.c (if_refresh): Add interface flag refresh function.
-
-       * kernel_socket.c (rtm_read): Fetch link-local address interface
-       index.
-       (ifan_read): We need to fetch interface information.  Suggested
-       by: Yasuhiro Ohara <yasu@sfc.wide.ad.jp>.
-
-       * rib.c (static_ipv6_nexthop_same): Add check for
-       NEXTHOP_TYPE_IPV6_IFNAME.
-
-2001-01-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rib.h (NEW_RIB): Turn on NEW_RIB flag.  IPv6 new RIB code are
-       taken into place.
-
-2001-01-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rib.c (static_ipv6_write): Display STATIC_IPV6_GATEWAY_IFNAME
-       configuration.
-       (rib_delete_ipv6): Handle same route conter for IPv6 connected
-       route.
-       (show_ipv6_route_protocol): New command.
-       (show_ipv6_route_addr): Likewise.
-       (show_ipv6_route_prefix): Likewise.
-       (rib_update): Sweep kernel route when it is cleaned up.
-
-       * rt_socket.c (kernel_add_ipv6): Add NEXTHOP_IPV6_IFNAME
-       treatmenet.
-
-       * rt_netlink.c (kernel_init): Likewise.
-
-       * rt_ioctl.c (kernel_ioctl_ipv6_multipath): Likewise.
-
-       * rib.c (rib_add_ipv4): Cope with same connected route on a
-       interface.  Suggested by: Matthew Grant <grantma@anathoth.gen.nz>.
-       (nexthop_ipv6_ifname_add): Add NEXTHOP_IPV6_IFNAME treatmenet.
-
-       * rib.h (struct new_rib): Add refcnt to keep track on the
-       reference of same connected route.
-
-       * ioctl.c (if_set_prefix): Add check for GNU_LINUX.
-
-2001-01-13  Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
-
-       * kernel_socket.c (ifan_read, rtm_type_str): Add RTM_OIFINFO check.
-       (rtm_type_str): Add RTM_IFANNOUNCE check.
-       (ifan_read): New function.
-       (kernel_read): Add case for RTM_IFANNOUNCE.
-
-2001-01-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rt_ioctl.c (kernel_ioctl_ipv6_multipath): New function.
-
-       * rt_netlink.c (netlink_route_multipath): IPv6 address ifindex
-       treatment.
-
-       * connected.c (connected_up_ipv6): Add dest value check.
-
-       * rib.c (nexthop_active_ipv6): Do not touch IPv6 nexthop's
-       ifindex.
-       (rib_add_ipv4): Import rib_add_ipv6() same route check code.
-       (nexthop_active_check): NEXTHOP_TYPE_IPV6_IFINDEX activity is only
-       checked by ifindex.
-
-       * rt_socket.c (kernel_rtm_ipv6_multipath): New function.
-
-       * redistribute.c (redistribute_add): Use
-       zsend_ipv6_add_multipath().
-       (redistribute_delete_multipath): Use
-       zsend_ipv6_delete_multipath().
-
-       * interface.c (ip_address): Check current IP address to avoid
-       duplicate.
-
-       * rib.c (rib_delete_ipv4): When deleted route is connected route,
-       check ifindex.
-       (rib_add_ipv4): When connected route is added do not perform
-       implicit withdraw.
-       (rib_delete_ipv4): Check ifindex for connected route.
-
-       * kernel_socket.c (rtm_read): When route has RTF_STATIC, set
-       ZEBRA_FLAG_STATIC for indicate as persistent route.
-       (ifam_read): Unset interface index from link-local address when
-       IPv6 stack is KAME.
-
-       * rib.c (rib_update): Do not delete persistent kernel route.
-
-       * rib.h (struct new_rib): Integrate RIB_FLAG_* to ZEBRA_FLAG_*.
-
-       * rt_socket.c (kernel_add_ipv6_multipath): Add placeholder.
-       (kernel_delete_ipv6_multipath): Likewise.
-
-       * rt_netlink.c (netlink_talk): Give struct nlsock to netlink_talk.
-
-2001-01-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rib.c (rib_update): Revert Matthew Grant's patch
-       zebra_cvs_newribfix.patch.  Use struct rib->ifindex for kernel
-       interface index.  Introduce NEXTHOP_TYPE_IPV4_IFINDEX to support
-       that.  Add support for address deletion situation.
-
-2001-01-11  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * interface.c: Remove HAVE_IF_PSEUDO part.
-
-       * rib.h: Likewise.
-
-       * rt_netlink.c (netlink_link_change): Likewise.
-
-2001-01-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zserv.c: Remove OLD_RIB codes.
-
-2001-01-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.90 is released.
-
-2001-01-09  Matthew Grant <grantma@anathoth.gen.nz>
-
-       * interface.c (if_new_intern_ifindex): Allocate a new internal
-       interface index.
-       (if_addr_refresh): Fix up ip addresses configured via zebra.
-       (if_add_update): Handle an interface addition.
-       (if_delete_update): Handle an interface delete event.
-
-       * rib.c (nexthop_ipv4_add): Add kernel route deletion process when
-       interface goes down.
-
-2001-01-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * interface.c (if_dump_vty): When HAVE_NET_RT_IFLIST is defined,
-       NetBSD also use this function.  Suggested by Jasper Wallace
-       <jasper@ivision.co.uk>.
-
-2001-01-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rib.c (nexthop_active_ipv4): Move back to set methodo to old
-       one.
-
-2001-01-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rib.c (rib_add_ipv4): EBGP multihop set ZEBRA_FLAG_INTERNAL
-       flag, so treat it.
-
-2001-01-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rt_netlink.c (netlink_talk_ipv6): When IPv6 route message is
-       sent from netlink_cmd, the same message comes from netlink.  To
-       avoid confusion, temporary netlink_talk_ipv6 use netlink.sock
-       instead of netlink_cmd.sock.
-
-2001-01-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zserv.h (ZEBRA_SERV_PATH): Change "/tmp/zebra" to "/tmp/.zebra".
-       Change "/tmp/zserv" to "/tmp/.zserv".
-       
-2000-12-29  Frank van Maarseveen <F.vanMaarseveen@inter.NL.net>
-
-       * rt_netlink.c (struct nlsock): Divide kernel message into listen
-       socket and command socket.
-       (netlink_talk): Remove socket listen code.  Use netlink_parse_info
-       for read kernel response.
-
-2000-12-29  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rib.c (vty_show_ip_route): Show uptime of the RIP,OSPF,BGP
-       routes.
-
-2000-12-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rt_netlink.c (netlink_route_multipath): Metric value is
-       reflected to kernel routing table.
-
-       * rt_ioctl.c (kernel_ioctl_ipv4_multipath): Likewise.
-
-       * kernel_socket.c (rtm_write): Likewise.
-
-       * rib.c (nexthop_active_ipv4): Only iBGP route perform recursive
-       nexthop lookup.
-
-       * rt_ioctl.c (kernel_ioctl_ipv4_multipath): Add ioctl version of
-       new RIB implementation.
-
-2000-12-26  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rib.h: Remove MULTIPATH_NUM.  It is defined by configure script.
-
-2000-12-25  Michael Rozhavsky <mrozhavsky@opticalaccess.com>
-
-       * rib.c (rib_if_up): Call rib_fib_set instead of RIB_FIB_SET for
-       proper redistribution.
-
-2000-12-19  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rib.c (nexthop_active_ipv4): Add self lookup nexthop check.
-       (show_ip_route_protocol): Support new RIB.
-
-       * rt_netlink.c (netlink_route_change): Do not return when gate is
-       NULL.
-
-2000-12-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rib.c (rib_lookup_ipv4_nexthop): IBGP nexthop check function is
-       updated.
-       (rib_add_ipv4): Free implicit withdraw route's RIB.
-
-2000-12-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rib.c (nexthop_active_ipv4): Check indirect nexthop.
-
-       * redistribute.c (redistribute_add_multipath): Redistribution
-       works with new rib code.
-
-2000-12-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rt_netlink.c (netlink_route_multipath): Check useful nexthop
-       number.
-       (netlink_route_multipath): Clear rtnh_flags and rtnh_hops.
-
-       * rib.c (nexthop_active_update): Set flag for the rib's nexthop
-       activity is changed.
-       (nexthop_active_check): Before checking interface is up, make it
-       sure the interface exist.
-
-2000-11-20  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rib.c (ip_route): New RIB prototype.
-
-2000-11-16  Yon Uriarte <ukl2@rz.uni-karlsruhe.de>
-
-       * zserv.c (zsend_interface_add): Send hardware address when
-       hw_addr_len is greater than 0.
-
-2000-11-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * connected.c (connected_up_ipv4): Fix ptop bug.  The destination
-       network should be installed into routing table.
-       (connected_down_ipv4): Likewise.
-       (connected_add_ipv4): Change to use connected_up_ipv4.
-       (connected_delete_ipv4): Likewise.
-
-2000-11-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rt_netlink.c (netlink_interface_addr): Revert Harald Welte
-       <laforge@gnumonks.org>'s ptop patch then back to original code to
-       avoid duplicated connected route problem.  Suggested by Frank van
-       Maarseveen <F.vanMaarseveen@inter.NL.net>.
-
-       * kernel_socket.c (rtm_read): Make behavior consistent even #ifdef
-       DEBUG is defined.  Reported by Jun-ichiro itojun Hagino
-       <itojun@iijlab.net>.
-
-2000-10-23  Jochen Friedrich <jochen@scram.de>
-
-       * main.c (main): Call zebra_snmp_init() when it is enabled.
-
-2000-10-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zserv.c (zebra_serv_un): UNIX domain socket server of zebra
-       protocol.
-
-2000-10-19  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rib.c (rib_add_ipv4): Same check bug is fixed.
-
-2000-10-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rib.c (rib_if_down): Remove kernel route when the interface goes
-       down.
-
-       * debug.c: New command "debug zebra kernel" is added.
-
-2000-10-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.89 is released.
-
-2000-09-24  Harald Welte <laforge@gnumonks.org>
-
-       * rt_netlink.c (netlink_interface_addr): Fix point-to-point address
-       treatment in netlink interface.
-
-2000-09-21  David Lipovkov <dlipovkov@OpticalAccess.com>
-
-       * rib.c (rib_if_down): Pull static route only.  Protocol daemon
-       must withdraw routes when interface goes down.
-       (rib_add_ipv4): Check nexthop when replace route.
-
-2000-09-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * if_ioctl.c (if_getaddrs): New function for looking up
-       interface's address by getifaddrs().
-
-2000-09-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * connected.c (connected_delete_ipv4): Add check for connected
-       address is found or not.
-       (connected_add_ipv6): Reflect IPv6 connected address change to
-       protocol daemons.
-       (connected_delete_ipv6): Likewise.
-
-2000-09-07  David Lipovkov <davidl@nbase.co.il>
-
-       * rib.c (rib_delete_ipv4): Reverted the change from pseudo
-       interface patch to original.  Because ospfd deletes routes using
-       zero ifindex.
-
-2000-08-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra-0.88 is released.
-
-2000-08-15  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * rib.c (show_ip_route_protocol): Help string correction.
-       (show_ip_route_prefix): Check prefix mask.
-       (show_ip_route_vty_detail): Display distance and metric.
-
-2000-08-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zserv.c (zsend_interface_add): Change ifindex store size from
-       two octet to four.
-       (zsend_interface_delete): Likewise.
-       (zsend_interface_address_add): Likewise.
-       (zsend_interface_address_delete): Likewise.
-       (zsend_interface_up): Likewise.
-       (zsend_interface_down): Likewise.
-
-2000-08-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rib.c (rib_add_ipv4): Do not install distance 255 route.
-
-2000-08-10  Toshiaki Takada  <takada@zebra.org>
-
-       * interface.c (bandwidth_if), (no_bandwidth_if):  Call
-       zebra_interface_up_update () instead of using if_up() and if_down().
-
-2000-08-07  "Akihiro Mizutani" <mizutani@dml.com>
-
-       * interface.c (bandwidth_if): Fix help string.
-
-2000-08-07  Matthew Grant <grantma@anathoth.gen.nz>
-
-       * interface.c (if_dump_vty): Display bandwidth value.
-       (bandwidth_if): New command "bandwidth <1-10000000>" is added.
-       When interface is up, force protocol daemons to recalculate routes
-       due to cost change.
-       (no_bandwidth_if): Likewise.
-       (if_config_write): Output bandwidth configuration.
-
-       * zserv.c (zsend_interface_add): Send bandwidth value.
-       (zsend_interface_up): Likewise.
-       (zsend_interface_down): Likewise.
-
-
-2000-08-07  Michael Rozhavsky <mike@nbase.co.il>
-
-       * rib.c (show_ip_route_protocol): "show ip route
-       (bgp|connected|kernel|ospf|rip|static)" is added.
-
-2000-08-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rib.c (rib_lookup_ipv4_nexthop): Check parent node until IGP
-       nexthop is found.
-       (rib_add_ipv4_internal): Set fib ifindex to rib ifindex.
-
-2000-08-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * redistribute.c (redistribute_delete): Fix bug of default route
-       redistribute treatment.
-
-2000-08-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rib.c (rib_init): Install ip_node in rib.c instead of zserv.c.
-       Change default distance value.
-
-                    Old         New
-       ------------------------------------------
-       system      10           0
-       kernel      20           0
-       connected   30           0
-       static      40           1
-       rip         50         120
-       ripng       50         120
-       ospf        60         110
-       ospf6       49         110
-       bgp         70         200(iBGP)  20(eBGP)
-       ------------------------------------------
-
-       * zserv.c (client_lookup): Function removed.
-       (zsend_interface_add): Use client's output buffer.  Check ifinfo
-       flag.
-       (zsend_interface_delete): Likewise.
-       Delete ipv4_static_radix and ipv6_static_radix.
-
-2000-08-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zserv.h (struct zebra_client): When client request interface
-       information, ifinfo is set.
-
-       * rib.c: Temporary Revert changes for pseudo interface.
-
-       * rib.h: Likewise.
-
-       * zserv.c: Likewise.
-
-       * interface.c: Likewise.
-       
-2000-08-02  David Lipovkov <davidl@nbase.co.il>
-
-       * interface.c (zebra_if_init): Install interface "pseudo"
-       commands.
-
-       * rib.c (rib_create): ifname argument is added.
-       (rib_add_ipv4_pseudo): New function is added.
-       (rib_delete_ipv4_pseudo): Likewise.
-
-       * rib.h : Delete INTERFACE_UNKNOWN definition.  Add prototype for
-       pseudo interface functions.
-
-       * rt_netlink.c (netlink_link_change): Check for pseudo interface.
-
-       * zserv.c (ip_route): When destination is pseudo interface, call
-       rib_add_ipv4_pseudo().
-
-       * zserv.c (no_ip_route): Trim "unknown" argument.
-
-2000-07-26  kunitake@dti.ad.jp
-
-       * if_ioctl.c (if_get_hwaddr): Fix hardware address length from 8
-       to 6.
-
-       * rtadv.c (rtadv_send_packet): Fix shift bug for hardware address.
-
-2000-07-24  Akihiro Mizutani <mizutani@dml.com>
-
-       * interface.c: Use install_default() for common VTY commands.
-
-2000-07-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * if_ioctl.c (interface_list_ioctl): A interface list size is
-       calculated from ifreq->if_addr.sa_len.  This is for OpenBSD.
-
-       * ioctl.c (if_get_mtu): Remove codes for SIOCGIFDATA.
-
-2000-07-09  Chris Dunlop <chris@onthe.net.au>
-
-       * if_ioctl.c (if_get_index): Add check for HAVE_BROKEN_ALIASES.
-
-2000-07-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zserv.c (zebra_client_read): Add ZEBRA_REDISTRIBUTE_{ADD,DELETE}
-       message handling.
-
-2000-07-02  David Lipovkov <davidl@nbase.co.il>
-
-       * zserv.c: "ip route A.B.C.D/M unknown" command is added.
-
-2000-06-28  Michael Rozhavsky <mike@nbase.co.il>
-
-       * rib.c: Remove old kernel route when new route comes in.
-
-2000-06-13  David Lipovkov <davidl@nbase.co.il>
-
-       * rib.c (rib_if_up): Add check for unknown interface.
-
-2000-06-13 Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rib.h: Define INTERFACE_UNKNOWN.
-
-2000-06-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Makefile.am (EXTRA_DIST): Move irdp.c until implementation is
-       finished.
-
-2000-06-05  David Lipovkov <davidl@nbase.co.il>
-
-       * interface.c (if_zebra_delete_hook): Call rib_if_delete().
-
-       * redistribute.c (zebra_interface_delete_update): New function.
-
-       * redistribute.h (zebra_interface_delete_update): New function
-       prototype.
-
-       * rib.c (rib_if_delete): New function.  Walk down all routes and
-       delete all on the interface.
-
-       * rib.h: New function prototype.
-
-       * rt_netlink.c (netlink_link_change): Call
-       zebra_interface_delete_update ().
-
-2000-05-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * if_ioctl.c (interface_info_ioctl): Check interface's flag before
-       checking interface's address.
-
-2000-04-26  Jochen Friedrich <jochen@nwe.de>
-
-       * GNOME-PRODUCT-ZEBRA-MIB: New file.
-
-       * GNOME-SMI: New file.
-
-2000-04-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * irdp.c: New file from 1997 development code.
-       * irdp.h: Likewise.
-
-2000-04-19  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rtadv.c (rtadv_send_packet): Enclose router advertisement
-       logging with IS_ZEBRA_DEBUG_PACKET.
-
-2000-04-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zserv.c (zebra_client_close): Remove client structure from
-       client_list when connection is terminated.
-
-2000-03-21  David Lipovkov <davidl@nbase.co.il>
-
-       * connected.c (connected_add_ipv4): Allows all necessary structure
-       updates for connected route, but doesn't insert it into rib if
-       it's interface is down.
-
-2000-01-21  Hideto Yamakawa <hideto.yamakawa@soliton.co.jp>
-
-       * rtread_getmsg.c: Set some definition for Solaris 2.5 and Solaris
-       2.5.1.
-
-2000-01-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rib.c (no_ipv6_route_ifname): Fix buf of cheking return value
-       from str2prefix_ipv6().
-
-2000-01-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rt_socket.c: Revert to use RTF_HOST for IPv4 with /32 route and
-       IPv6 with /128 routes.
-       (kernel_rtm_ipv4): In case of /32 route's gateway is interface. It
-       should have mask for cloning.
-
-1999-12-26  Jochen.Friedrich@genorz.de
-
-       * interface.c (if_dump_vty): Fix a bug of missing VTY_NEWLINE.
-
-1999-12-23  Alex Zinin <zinin@amt.ru>
-       * interface.*: dynamic int up/down support
-
-1999-12-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ipforward_proc.c (dropline): Move dropline() from lib/dropline.c
-
-       * rtread_proc.c (proc_route_read): Don't use dropline().
-
-1999-12-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * kernel_socket.c (rtm_read): When message is RTM_GET, it has own
-       process's pid.
-
-1999-12-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * main.c (main): Change to default log output to ZLOG_STDOUT.
-
-       * zserv.c (zebra_serv): More detailed error print.
-
-1999-11-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * kernel_socket.c (rtm_read): Check old pid for static route
-       insertion check.
-
-1999-11-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * interface.c (if_dump_vty): BSDI/OS uses 64bit for interface
-       statistics counter.
-
-       * mtu_kvm.c: New file added.
-
-1999-11-27  Vladimir B. Grebenschikov <vova@express.ru>
-
-       * kernel_socket.c (rtm_write): Set RTF_CLONING flag for
-       route to the directly connected interface.
-
-1999-11-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rt_socket.c: Delete USE_HOST_BIT definition.
-
-1999-11-21  Michael Handler <handler@sub-rosa.com>
-
-       * rtread_getmsg.c: Undef some definition to resolve conflict.
-
-1999-11-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * kernel_socket.c (rtm_write): Change to use pre stored struct_dl
-       value for gateway specification.
-
-1999-11-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rt_socket.c (kernel_rtm_ipv4): Even mask is 32 under IPv4 or
-       128 under IPv6, don't use RTF_HOST.
-
-1999-11-21  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Makefile.am (EXTRA_DIST): Add rtread_getmsg.c.
-
-1999-11-21  Michael Handler <handler@sub-rosa.com>
-
-       * rtread_getmsg.c: Added for Solaris 2.6 support.
-
-1999-11-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rtread_sysctl.c (rtm_read_route): RTM_DELETE handling added.
-
-       * rt_socket.c (kernel_read): Better BSD routing socket support.
-
-1999-10-19  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * client_main.c: Disable making obsolete zebra test `client'
-       command.
-
-1999-10-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra.c: Renamed to zserv.c.
-
-       * zebra.h: Global definitions are moved to lib/zebra.h.  Then
-       renamed to zserv.h.
-
-1999-10-15  Jordan Mendelson <jordy@wserv.com>
-
-       * if_ioctl.c: Add Linux 2.2.X's alias support and dynamic
-       interface.  Remove ugly MAX_INTERFACE handling codes.
-
-1999-09-17  Satosi KOBAYASI <kobayasi@north.ad.jp>
-
-       * Fix serious bug of IPv6 route deletion.
-
-1999-09-11  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ioctl.c (if_set_prefix): Properly set broadcast address.
-
-1999-09-04  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * rib.c (rib_add_ipv6, rib_delete_ipv6): now protocol daemons
-       can install connected route to kernel via zebra
-
-1999-08-24  VOP <vop@unity.net>
-
-       * rib.c: Include "sockunion.h"
-
-1999-08-22  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ipforward.h: New file.
-
-       * zebra.h: Obsolete message ZEBRA_GET_ALL_INTERFACE,
-       ZEBRA_GET_ONE_INTERFACE, ZEBRA_GET_HOSTINFO are deleted.
-
-1999-08-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra.h (ZEBRA_INTERFACE_ADDRESS_ADD):
-       ZEBRA_INTERFACE_{ADD,DELETE} added.
-
-1999-08-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rib.c: show ip route A.B.C.D works.
-
-       * zebra.c (zebra_read_ipv4): Add ifindex to zebra messages.
-
-1999-08-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra.h: New Zebra message ZEBRA_INTERFACE_{ADD,DELETE} added.
-
-1999-08-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * interface.h: New file.
-       * Makefile.am: Add interface.h
-
-1999-08-04  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * redistribute.c (zebra_redistribute): give ifindex to client.
-
-1999-08-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * main.c (longopts): -k, --keep_kernel option added.
-
-1999-07-18  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * rt_socket.c (rtm_write): forgot closing socket bug fixed.
-
-1999-07-17  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * rib.c (show_ipv6_cmd): if rib is link show interface name.
-
-1999-07-17  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * rt_socket.c (rtm_write): use sockaddr_dl when null gateway.
-
-1999-07-16  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * rt_socket.c (rtm_write): ipv6 route table bug fixed.
-
-1999-07-15  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * zebra.c (zebra_read_ipv6): read link prefix from ospf6 support
-
-1999-07-15  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
-
-       * rt_socket.c (kernel_rtm_ipv6): gate treatment bug fixed.
-
-1999-07-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * if_sysctl.c (ifm_read): Clear sockunion argument before fetching
-       data.  Suggested by "Chris P. Ross" <cross@eng.us.uu.net>
-
-1999-07-08  HEO SeonMeyong <seirios@Matrix.IRI.Co.Jp>
-
-       * interface.c (if_tun_add): Add KAME's gif tunnel setting codes.
-
-1999-06-26  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra.c (zebra_serv): Only accept loopback address connection.
-
-1999-06-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra.h (ZEBRA_ROUTE_EXTERNAL): Add zebra messages flags
-
-1999-06-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ipforward_proc.c: ipforward_on () and ipforward_off () added.
-
-1999-06-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ipforward_proc.c (ipforward_ipv6): Check for IPv6 forwarding
-       using /proc file system is added.
-
-1999-06-06  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * if_ioctl.c (if_get_index): Interface index set bug is fixed by
-       adding #else at the middle of function.  Suggested by David Luyer
-       <luyer@ucs.uwa.edu.au>.
-
-1999-05-29    <kunihiro@zebra.org>
-
-       * rt_ioctl.c: Comment out #include <linux/ipv6_route.h>.
-
-1999-05-26  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra.h (ZEBRA_ROUTE_MAX): Add new define for the max value of
-       the sort of routes.
-
-1999-05-25  Patrick Koppen <koppen@rhrk.uni-kl.de>
-
-       * rt_netlink.c (netlink_socket): Make netlink socket non-blocking.
-       (netlink_parse_info): If errno is EWOULDBLOCK then continue to
-       parse the message.
-       (netlink_talk): Likewise
-       
-1999-05-17    <kunihiro@zebra.org>
-
-       * redistribute.c (zebra_check_addr): Added for loopback address
-       check.
-
-1999-05-15  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rt_netlink.c (netlink_route_change): Tempolary bypass ipv6 route
-       change treatment.
-
-       * Makefile.am (noinst_HEADERS): redistribute.h added.
-
-       * redistribute.h: New file.
-
-1999-05-14  Stephen R. van den Berg <srb@cuci.nl>
-
-       * zebra.c (show_table): Show all table configuration DEFUN.
-       (config_table): Config table number DEFUN.
-
-       * rt_netlink.c: Add support for multiple routing table.
-
-       * rib.c (rib_weed_table): New function added for delete all
-       routes from specified routing table.
-
-       * main.c (signal_init): SIGTERM call sigint.
-       (sigint): Loggging more better message.
-
-1999-05-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rt_netlink.c: Change log () to zlog ().
-
-1999-05-07    <kunihiro@zebra.org>
-
-       * zebra.h (ZEBRA_ROUTE_OSPF6): Added for ospf6d route.
-
-1999-04-20  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * interface.c: Add `no ip address' command.
-
-1999-04-10  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rt_netlink.c (kernel_read): Function added for asynchronous
-       zebra between kernel communication.
-
-1999-03-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rtread_sysctl.c (rtm_read): Fix address memcopy overrun bug.
-       Reported by Achim Patzner <ap@bnc.net>.
-
-1999-03-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Makefile.am: Install configuration sample with 600 permission.
-
-1999-03-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Makefile.am: Add -I.. to INCLUDES.
-
-1999-02-18  Peter Galbavy  <Peter.Galbavy@knowledge.com>
-
-       * syslog support added
-
-1999-02-17 Peter Galbavy <Peter.Galbavy@knowledge.com>
-
-       * if_sysctl.c (interface_list): allocated memory free when unknown
-       ifm_type is returned.
-
-       * ioctl.c (if_get_mtu): added SIOCGIFDATA treatment.
-       
-1998-12-15  Magnus Ahltorp <map@stacken.kth.se>
-
-       * interface.c: Header include added.
-
-1998-12-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rt.h (kernel_delete_ipv6): change int index to unsigned int index.
-
-1998-12-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * if_ioctl.c (interface_list_ioctl): interface flag must be
-       checked before check addresses of the interface.
-
-1998-12-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Makefile.am (INCLUDES): add @INCLUDES@ for Linux IPv6.
-
-1998-10-14  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ioctl.c: Linux version before 2.1.0 need interface route setup.
-
-1998-09-15  HEO SeonMeyong  <seirios@matrix.iri.co.jp>
-
-       * change HYDRANGEA to KAME
-
-1998-09-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * if_ioctl.c (if_addr_ioctl): set address family for getting
-       interface's address.
-       (if_get_index): silently return when can't get interface's index.
-
-1998-08-17  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * main.c (main): batch mode option '-b' added.
-
-1998-08-16  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ioctl.c (if_set_prefix): add `ip address IPV4ADDR' command.
-       * interface.c (shutdown_if): add interface shutdown and no
-       shutdown command.
-
-1998-08-12  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rib.c (rib_add_ipv6): delete rib_add_in6.
-
-1998-07-27  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * main.c: retain flag is added.
-
-1998-07-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rtable.[ch]: merged with rib.[ch]
-
-1998-07-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * connected.h: renamed from ifa.h.
-
-1998-06-09  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rename if.c to interface.c
-       * rename ifa.c to connected.c
-
-       * Porting to Debian GNU/Linux 2.0 (hamm).
-
-1998-06-08  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rt_netlink.c: renamed from krt_netlink.c
-       
-       * fib.c: deleted.
-       * rt_kvm.c: deleted.
-       * rtread_getmsg.c: deleted.
-
-1998-06-07  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * if.c (multicast): add multicast flag [un]set fucntion.
-
-1998-05-19  Yamshita TAKAO  <jargon@lares.dti.ne.jp>
-
-       * rt_socket.c: Modify for compile on Solaris, but dont't work it.
-         rt_socket.c have some undefined function, so add directive "IMPLEMENT"
-
-1998-05-18  Yamshita TAKAO  <jargon@lares.dti.ne.jp>
-
-       * zebra.c: Modify for compile on Solaris.
-
-1998-05-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * main.c: change CONFDIR to SYSCONFDIR.
-
-1998-05-01  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * .cvsignore: added.
-
-1998-04-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * client.c: moves to ../lib.
-
-1998-03-30  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * if_ioctl.c (if_get_addr): Change address copy from memcopy() to
-       structure assignment.
-
-1998-03-30  URA Hiroshi <ura@yamato.ibm.co.jp>
-
-       * if_sysctl.c (ifm_interface_add): sdl->sdl_data copy bug fixed.
-
-1998-02-23  "Hannes R. Boehm" <hannes@boehm.org>
-
-       * if.c (if_init): add config_exit_cmd and config_help_cmd.
-
-1998-01-24  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rt_ioctl.c (route_ioctl): EPERM treatment added.
-
-1998-01-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rt_socket.c (kernel_read): communication port zebra between
-       kernel is now handled by kernel_read.
-
-1998-01-02  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * main.c (main): zebra [-P port] can specify vty port number.
-
-1997-12-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra.c: change select will be block.
-
-1997-12-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * add static route treatment.
-
-1997-11-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rt_netlink.c: add netlink support over GNU/Linux system.
-
-1997-11-23  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * all inet_addr is changed to inet_aton.
-
-       * zebra.c (ip_route): add ip route command for static routes.
-
-1997-11-20  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * if.c (if_flag_dump): Linux port of if_flag_dump and _vty.
-
-1997-11-19  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * if.c: add interface command.
-
-1997-11-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * ipforward_proc.c : Now works on Linux.
-
-1997-10-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * command.c : add completion feature.
-
-1997-10-18  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vty.c (vty_command): add vty interface.
-
-1997-10-13  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * zebra.c: add verbose mode.
-
-1997-10-12 SonMyong Ho <s-ho@Matrix.IRI.Co.Jp>
-
-       * Hydrangea for FreeBSD supported
-       * in.h: add some prototype.
-
-1997-10-11  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rt_socket.c and rtread.c completely rewritten.
-
-1997-10-05  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * rt_socket.c: rename kernel_sock to routing_socket
-
-1997-10-04  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * if.c (if_new): interface structure change from linklist to vector.
-
-1997-10-03  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * vector.c (vector_init): create vector related function
-
-1997-09-25  Kunihiro Ishiguro  <kunihiro@zebra.org>
-
-       * Makefile.in: add tags target
-
-       * start IPv6 support for INRIA FreeBSD.
-