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.
