summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/.cvsignore1
-rw-r--r--doc/ChangeLog4
-rw-r--r--doc/Makefile.in431
-rw-r--r--doc/mpls/ChangeLog.opaque.txt179
-rw-r--r--doc/mpls/cli_summary.txt90
-rw-r--r--doc/mpls/opaque_lsa.txt365
-rw-r--r--doc/mpls/ospfd.conf75
-rw-r--r--doc/ospfd.texi7
-rw-r--r--doc/zebra.info272
-rw-r--r--doc/zebra.texi6
10 files changed, 853 insertions, 577 deletions
diff --git a/doc/.cvsignore b/doc/.cvsignore
index 2916b2f7..75c36c2e 100644
--- a/doc/.cvsignore
+++ b/doc/.cvsignore
@@ -1,3 +1,4 @@
Makefile
+Makefile.in
draft-zebra-00.txt
zebra.info-*
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 8aa0c802..cfe6e0e2 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,7 +1,3 @@
-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.
diff --git a/doc/Makefile.in b/doc/Makefile.in
deleted file mode 100644
index e7f706ee..00000000
--- a/doc/Makefile.in
+++ /dev/null
@@ -1,431 +0,0 @@
-# Makefile.in generated by automake 1.6.3 from Makefile.am.
-# @configure_input@
-
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = @program_transform_name@
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_alias = @host_alias@
-host_triplet = @host@
-
-EXEEXT = @EXEEXT@
-OBJEXT = @OBJEXT@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-AMTAR = @AMTAR@
-AR = @AR@
-AWK = @AWK@
-BGPD = @BGPD@
-CC = @CC@
-CPP = @CPP@
-CURSES = @CURSES@
-DEPDIR = @DEPDIR@
-IF_METHOD = @IF_METHOD@
-IF_PROC = @IF_PROC@
-INCLUDES = @INCLUDES@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-IPFORWARD = @IPFORWARD@
-KERNEL_METHOD = @KERNEL_METHOD@
-LIBPAM = @LIBPAM@
-LIB_IPV6 = @LIB_IPV6@
-LIB_REGEX = @LIB_REGEX@
-MULTIPATH_NUM = @MULTIPATH_NUM@
-OSPF6D = @OSPF6D@
-OSPFD = @OSPFD@
-OTHER_METHOD = @OTHER_METHOD@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-RIPD = @RIPD@
-RIPNGD = @RIPNGD@
-RTREAD_METHOD = @RTREAD_METHOD@
-RT_METHOD = @RT_METHOD@
-STRIP = @STRIP@
-VERSION = @VERSION@
-VTYSH = @VTYSH@
-ZEBRA = @ZEBRA@
-am__include = @am__include@
-am__quote = @am__quote@
-install_sh = @install_sh@
-
-info_TEXINFOS = zebra.texi
-
-zebra_TEXINFOS = appendix.texi basic.texi bgpd.texi filter.texi install.texi \
- ipv6.texi kernel.texi main.texi ospf6d.texi ospfd.texi overview.texi \
- protocol.texi ripd.texi ripngd.texi routemap.texi snmp.texi vtysh.texi
-
-
-man_MANS = vtysh.1 bgpd.8 ospf6d.8 ospfd.8 ripd.8 ripngd.8 zebra.8
-
-EXTRA_DIST = BGP-TypeCode draft-zebra-00.ms draft-zebra-00.txt $(man_MANS)
-subdir = doc
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-INFO_DEPS = zebra.info
-DVIS = zebra.dvi
-TEXINFOS = zebra.texi
-
-NROFF = nroff
-MANS = $(man_MANS)
-DIST_COMMON = $(zebra_TEXINFOS) ChangeLog Makefile.am Makefile.in \
- texinfo.tex
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .dvi .info .ps .texi
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
- cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign doc/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
-
-zebra.info: zebra.texi $(zebra_TEXINFOS)
-zebra.dvi: zebra.texi $(zebra_TEXINFOS)
-
-.texi.info:
- @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
- cd $(srcdir) \
- && $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
- `echo $< | sed 's,.*/,,'`
-
-.texi.dvi:
- TEXINPUTS="$(srcdir)$(PATH_SEPARATOR)$$TEXINPUTS" \
- MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
- $(TEXI2DVI) $<
-
-.texi:
- @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
- cd $(srcdir) \
- && $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
- `echo $< | sed 's,.*/,,'`
-
-MAKEINFO = @MAKEINFO@
-TEXI2DVI = texi2dvi
-DVIPS = dvips
-.dvi.ps:
- $(DVIPS) $< -o $@
-
-uninstall-info-am:
- $(PRE_UNINSTALL)
- @if (install-info --version && \
- install-info --version | fgrep -i -v debian) >/dev/null 2>&1; then \
- list='$(INFO_DEPS)'; \
- for file in $$list; do \
- echo " install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file"; \
- install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file; \
- done; \
- else :; fi
- @$(NORMAL_UNINSTALL)
- @list='$(INFO_DEPS)'; \
- for file in $$list; do \
- (if cd $(DESTDIR)$(infodir); then \
- echo " rm -f $$file $$file-[0-9] $$file-[0-9][0-9])"; \
- rm -f $$file $$file-[0-9] $$file-[0-9][0-9]; \
- else :; fi); \
- done
-
-dist-info: $(INFO_DEPS)
- list='$(INFO_DEPS)'; \
- for base in $$list; do \
- d=$(srcdir); \
- for file in $$d/$$base*; do \
- relfile=`expr "$$file" : "$$d/\(.*\)"`; \
- test -f $(distdir)/$$relfile || \
- cp -p $$file $(distdir)/$$relfile; \
- done; \
- done
-
-mostlyclean-aminfo:
- -rm -f zebra.aux zebra.cp zebra.cps zebra.dvi zebra.fn zebra.ky zebra.log \
- zebra.op zebra.pg zebra.ps zebra.tmp zebra.toc zebra.tp \
- zebra.vr
-
-maintainer-clean-aminfo:
- cd $(srcdir) && \
- list='$(INFO_DEPS)'; for i in $$list; do \
- rm -f $$i; \
- if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
- rm -f $$i-[0-9]*; \
- fi; \
- done
-
-man1dir = $(mandir)/man1
-install-man1: $(man1_MANS) $(man_MANS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(man1dir)
- @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.1*) list="$$list $$i" ;; \
- esac; \
- done; \
- for i in $$list; do \
- if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
- else file=$$i; fi; \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- case "$$ext" in \
- 1*) ;; \
- *) ext='1' ;; \
- esac; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
- $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
- done
-uninstall-man1:
- @$(NORMAL_UNINSTALL)
- @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.1*) list="$$list $$i" ;; \
- esac; \
- done; \
- for i in $$list; do \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
- rm -f $(DESTDIR)$(man1dir)/$$inst; \
- done
-
-man8dir = $(mandir)/man8
-install-man8: $(man8_MANS) $(man_MANS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(man8dir)
- @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.8*) list="$$list $$i" ;; \
- esac; \
- done; \
- for i in $$list; do \
- if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
- else file=$$i; fi; \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- case "$$ext" in \
- 8*) ;; \
- *) ext='8' ;; \
- esac; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst"; \
- $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst; \
- done
-uninstall-man8:
- @$(NORMAL_UNINSTALL)
- @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.8*) list="$$list $$i" ;; \
- esac; \
- done; \
- for i in $$list; do \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " rm -f $(DESTDIR)$(man8dir)/$$inst"; \
- rm -f $(DESTDIR)$(man8dir)/$$inst; \
- done
-tags: TAGS
-TAGS:
-
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
-
-distdir: $(DISTFILES)
- @list='$(DISTFILES)'; for file in $$list; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="${top_distdir}" distdir="$(distdir)" \
- dist-info
-check-am: all-am
-check: check-am
-all-am: Makefile $(INFO_DEPS) $(MANS)
-
-installdirs:
- $(mkinstalldirs) $(DESTDIR)$(infodir) $(DESTDIR)$(man1dir) $(DESTDIR)$(man8dir)
-
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-am
-
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am: $(DVIS)
-
-info: info-am
-
-info-am: $(INFO_DEPS)
-
-install-data-am: install-info-am install-man
-
-install-exec-am:
-
-install-info: install-info-am
-
-install-info-am: $(INFO_DEPS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(infodir)
- @list='$(INFO_DEPS)'; \
- for file in $$list; do \
- d=$(srcdir); \
- for ifile in echo $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9]; do \
- if test -f $$ifile; then \
- relfile=`expr "$$ifile" : "$$d/\(.*\)"`; \
- echo " $(INSTALL_DATA) $$ifile $(DESTDIR)$(infodir)/$$relfile"; \
- $(INSTALL_DATA) $$ifile $(DESTDIR)$(infodir)/$$relfile; \
- else : ; fi; \
- done; \
- done
- @$(POST_INSTALL)
- @if (install-info --version && \
- install-info --version | fgrep -i -v debian) >/dev/null 2>&1; then \
- list='$(INFO_DEPS)'; \
- for file in $$list; do \
- echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
- install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
- done; \
- else : ; fi
-install-man: install-man1 install-man8
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-
-maintainer-clean-am: distclean-am maintainer-clean-aminfo \
- maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-aminfo mostlyclean-generic
-
-uninstall-am: uninstall-info-am uninstall-man
-
-uninstall-man: uninstall-man1 uninstall-man8
-
-.PHONY: all all-am check check-am clean clean-generic dist-info \
- distclean distclean-generic distdir dvi dvi-am info info-am \
- install install-am install-data install-data-am install-exec \
- install-exec-am install-info install-info-am install-man \
- install-man1 install-man8 install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
- maintainer-clean-aminfo maintainer-clean-generic mostlyclean \
- mostlyclean-aminfo mostlyclean-generic uninstall uninstall-am \
- uninstall-info-am uninstall-man uninstall-man1 uninstall-man8
-
-
-draft-zebra-00.txt:
- groff -T ascii -ms draft-zebra-00.ms > draft-zebra-00.txt
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/doc/mpls/ChangeLog.opaque.txt b/doc/mpls/ChangeLog.opaque.txt
new file mode 100644
index 00000000..68ddf4c8
--- /dev/null
+++ b/doc/mpls/ChangeLog.opaque.txt
@@ -0,0 +1,179 @@
+----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * -----
+Changes 2001.12.03
+
+1. Bug fixes
+
+ 1.1 Though a new member "oi" has added to "struct ospf_lsa" to control
+ flooding scope of type-9 Opaque-LSAs, the value was always NULL
+ because no one set it.
+
+ 1.2 In the function "show_ip_ospf_database_summary()" and "show_lsa_
+ detail_adv_router()", VTY output for type-11 Opaque-LSAs did not
+ work properly.
+
+ 1.3 URL for the opaque-type assignment reference has changed.
+
+ 1.4 In the file "ospf_mpls_te.c", printf formats have changed to
+ avoid compiler warning messages; "%lu" -> "%u", "%lx" -> "%x".
+ Note that this hack depends on OS, compiler and their versions.
+
+ 1.5 One of attached documentation "opaque_lsa.txt" has changed to
+ reflect the latest coding.
+
+2. Feature enhancements
+
+ 2.1 Knowing that it is an ugly hack, an "officially unallocated"
+ opaque-type value 0 has newly introduced as a "wildcard",
+ which matches to all opaque-type.
+ This value must not be flooded to the network, of course.
+
+ 2.2 The Opaque-core module makes use of newly introduced hooks to
+ dispatch every LSDB change (LSA installation and deletion) to
+ preregistered opaque users.
+ Therefore, by providing appropriate callback functions as new
+ parameters of "ospf_register_opaque_functab()", an opaque user
+ can refer to every LSA instance to be installed into, or to be
+ deleted from, the LSDB.
+
+----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * -----
+Changes 2001.10.31
+
+1. Bug fixes
+
+ 1.1 Since each LSA has their own lifetime, they will remain in a
+ routing domain (being stored in LSDB of each router), until their
+ age naturally reach to MaxAge or explicitly being flushed by the
+ originated router. Therefore, if a router restarted with a short
+ downtime, it is possible that previously flooded self-originated
+ LSAs might received if the NSM status is not less than Exchange.
+
+ There were some problems in the way of handling self-originated
+ Opaque-LSAs if they are contained in a received LSUpd message,
+ but not installed to the local LSDB yet.
+ Regardless of some conditions to start originating Opaque-LSAs
+ (there should be at least one opaque-capable full-state neighbor),
+ the function "ospf_flood()" will be called to flood and install
+ this brand-new looking LSA.
+ As the result, when the NSM of an opaque-capable neighbor gets
+ full, internal state inconsistency happens; a user of Opaque-LSA
+ such as MPLS-TE can refer to self-originated LSAs in the local
+ LSDB, but cannot modify their contents...
+
+ Above problems have fixed with a policy "flush it from the whole
+ routing domain and keep silent until the flushing completed".
+ By using this sweeping technique, we can be free from confusion
+ caused by self-originated LSAs received via network.
+
+ 1.2 The function "ospf_opaque_type_name()" contained massive ifdefs
+ corresponding to each "opaque-type".
+ These unnecessary ifdefs are removed completely.
+
+ 1.3 In the function "ospf_delete_opaque_functab()", there was an
+ improper loop control that causes illegal memory access.
+ Original coding was "next = nextnode (node)".
+
+ 1.4 The function "ospf_mpls_te_ism_change()" could not handle the
+ case when the ISM changes from Waiting to DR/BDR/Other.
+ So, there was a case that even if one of an ISM become
+ operational and MPLS-TE module has started, the corresponding
+ Opaque-LSA cannot be originated.
+
+ 1.5 The function "ospf_opaque_lsa_reoriginate_schedule()" did not
+ allow to be called multiple times, simply because handling
+ module for the given "lsa-type & opaque-type" already exists.
+ But this assumption seems to be wrong.
+ Change the policy to allow this function to be called multiple
+ times and let the caller to decide what should do when the
+ corresponding callback function "(* functab->lsa_originator)()"
+ is called.
+
+2. Feature enhancements
+
+ 2.1 The global bitmap "opaque" has introduced instead of former flag
+ "OpaqueCapable", to store complex conditions to handle Opaque-LSAs.
+
+ 2.2 The MPLS-TE module now referes to "draft-katz-yeung-ospf-traffic
+ -06.txt", no significant changes with 05 version, though.
+
+----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * -----
+Changes 2001.08.03
+
+1. Bug fixes
+
+ 1.1 Even if the ospfd started with opaque capability enabled, when
+ the ospfd receives an unknown opaque-type (unregistered by the
+ function "ospf_register_opaque_functab()" beforehand), the LSA
+ was discarded. As the result, only the opaque-LSAs that have
+ commonly registered by opaque-capable ospf routers can be
+ flooded in a routing domain.
+
+ This behavior has fixed so that arbitrary opaque-type LSAs can
+ be flooded among opaque-capable ospf routers.
+ If the ospfd has opaque-LSA capability but disabled at runtime,
+ received opaque-LSAs can be accepted and registered to LSDB as
+ is, but not be flooded to the network; those opaque LSAs will
+ remain in LSDB until explicitly flushed by incoming LSUpd
+ messages with MaxAge, or their age naturally reaches to MaxAge.
+
+ 1.2 The function "ospf_register_opaque_functab()" did not check
+ if the entry corresponding to the given "lsa-type, opaque-type"
+ combination already exists or not.
+ This problem has fixed not to allow multiple registration.
+
+ 1.3 Since type-11 (AS external) LSAs will be flooded beyond areas,
+ there is little relationship between "struct lsa" and "struct
+ area". More specifically, the pointer address "lsa->area" can
+ be NULL if the lsa-type is 11, thus an illegal memory access
+ will happen. This problem has fixed.
+
+ 1.4 When self-originated opaque-LSAs are received via network and
+ if the corresponding opaque-type functions are not available
+ (they have already deleted) at that time, those LSAs were
+ dropped due to "unknown opaque-type" error.
+ After the problem 1.1 has fixed, those "self-originated" LSAs
+ were registered to LSDB and then flooded to the network, even
+ if the processing functions did not exist...
+
+ After all, this problem has fixed so that those LSAs should
+ explicitly be flushed from the routing domain immediately, if
+ the processing functions cannot find at that time.
+
+ 1.5 Some typo have fixed.
+
+ --- EXAMPLE ---
+ static int
+ opaque_lsa_originate_callback (list funclist, void *lsa_type_dependent)
+ ^^^^^
+ --- EXAMPLE ---
+
+2. Feature enhancements
+
+ 2.1 According to the description of rfc2328 in section 10.8, any
+ change in the router's optional capabilities should trigger
+ the option re-negotiation procedures with neighbors.
+
+ --- EXCERPT ---
+ If for some reason the router's optional
+ capabilities change, the Database Exchange procedure should be
+ restarted by reverting to neighbor state ExStart.
+ --- EXCERPT ---
+
+ For the opaque-capability changes, this feature has implemented.
+ More specifically, if "ospf opaque-lsa" or "no ospf opaque-lsa"
+ VTY command is given at runtime, all self-originated LSAs will
+ be flushed immediately and then all neighbor status will be
+ forced to ExStart by generating SeqNumberMismatch events.
+
+ 2.1 When we change opaque-capability dynamically (ON -> OFF -> ON),
+ there was no trigger at "OFF->ON" timing to reactivate opaque
+ LSA handling modules (such as MPLS-TE) that have once forcibly
+ stopped at "ON->OFF" timing.
+ Now this dynamic reactivation feature has added.
+
+ 2.2 The MPLS-TE module now referes to "draft-katz-yeung-ospf-traffic
+ -05.txt", no significant changes with 04 version, though.
+
+----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * -----
+Changes 2001.03.28
+
+ Initial release of Opaque-LSA/MPLS-TE extensions for the zebra/ospfd.
diff --git a/doc/mpls/cli_summary.txt b/doc/mpls/cli_summary.txt
new file mode 100644
index 00000000..c60d0aed
--- /dev/null
+++ b/doc/mpls/cli_summary.txt
@@ -0,0 +1,90 @@
+Summary of CLI commands, expanded for Opaque-LSA/MPLS-TE.
+---------------------------------------------------------
+
+router>
+
+ show ip ospf database (asbr-summary|external|max-age|network|router|self-originate|summary|opaque-link|opaque-area|opaque-external)
+
+ show ip ospf database (asbr-summary|external|network|router|summary|opaque-link|opaque-area|opaque-external) (self-originate|)
+
+ show ip ospf database (asbr-summary|external|network|router|summary|opaque-link|opaque-area|opaque-external) A.B.C.D
+
+ show ip ospf database (asbr-summary|external|network|router|summary|opaque-link|opaque-area|opaque-external) A.B.C.D (self-originate|)
+
+ show ip ospf database (asbr-summary|external|network|router|summary|opaque-link|opaque-area|opaque-external) A.B.C.D adv-router A.B.C.D
+
+ show ip ospf database (asbr-summary|external|network|router|summary|opaque-link|opaque-area|opaque-external) adv-router A.B.C.D
+
+ --> Add database items: opaque-link, opaque-area, opaque-external
+
+ show mpls-te interface [INTERFACE]
+
+ --> Show current MPLS-TE link-TLV parameters.
+ If [INTERFACE] is omitted, all interfaces will be displayed.
+
+ show mpls-te router
+
+ --> Show current MPLS-TE Router-TLV parameters.
+
+router> enable
+router#
+router# configure terminal
+router(config)# interface [INTERFACE]
+router(config-if)#
+
+ mpls-te link max-bw BANDWIDTH
+
+ --> Set MPLS-TE link-TLV parameter: Maximum Bandwidth (Bytes/sec).
+ In integer or floating point format (1000, or 1.0e3)
+
+ mpls-te link max-rsv-bw BANDWIDTH
+
+ --> Set MPLS-TE link-TLV parameter: Maximum Reservable Bandwidth (Bytes/sec).
+ In integer or floating point format (1000, or 1.0e3)
+
+ mpls-te link metric <0-4294967295>
+
+ --> Set MPLS-TE link-TLV parameter: MPLS-TE metric.
+
+ mpls-te link rsc-clsclr BITPATTERN
+
+ --> Set MPLS-TE link-TLV parameter: Resource Class/Color.
+ In 32-bit hexadecimal format, with leading "0x" (0x0 - 0xffffffff)
+
+ mpls-te link unrsv-bw <0-7> BANDWIDTH
+
+ --> Set MPLS-TE link-TLV parameter: Unreserved Bandwidth (Bytes/sec).
+ In integer or floating point format (1000, or 1.0e3)
+
+router(config-if)# exit
+router(config)# router ospf
+router(config-router)#
+
+ mpls-te
+
+ --> Enable MPLS-TE functionality.
+ Note that master-switch "ospf opaque-lsa" must also be specified.
+
+ mpls-te on
+
+ --> Alias of "mpls-te" command.
+
+ mpls-te router-address A.B.C.D
+
+ --> Set MPLS-TE Router-TLV parameter: Router Address.
+
+ no mpls-te
+
+ --> Disable MPLS-TE functionality.
+
+ no ospf opaque-lsa
+
+ --> Disable Opaque-LSAs capability.
+ This node behaves Opaque-incapable node.
+
+ ospf opaque-lsa
+
+ --> Enable Opaque-LSAs capability.
+ This is the master-switch to make this node Opaque-capable.
+
+router# exit
diff --git a/doc/mpls/opaque_lsa.txt b/doc/mpls/opaque_lsa.txt
new file mode 100644
index 00000000..7d5c7fed
--- /dev/null
+++ b/doc/mpls/opaque_lsa.txt
@@ -0,0 +1,365 @@
+1. List of "opaque-type dependent" callback functions per LSA-type.
+
+ <ospf_opaque_lsaN_functab> (N = 9,10,11)
+ |
+ | struct
+ | list struct struct
+ +-> +-------+ listnode listnode
+ | head |-----> +------+ +------
+ | tail | | next |--------------------> | next
+ | count | /--| prev |<---------------------| prev
+ +-------+ | data |----+ |
+ |///////| +------+ |
+ +-------+ |
+ |
+ struct |
+ ospf_opaque_tabent |
+ +----------------------+ <--+
+ | opaque_type |
+ +----------------------+
+ | (Callback functions) |
+ +----------------------+
+
+
+2. Self-originated Opaque-LSAs per LSA-type.
+
+2.1 Type-11 (AS-external) Opaque-LSAs
+
+ struct
+ ospf
+ +---> +-------------------+
+ | |///////////////////|
+ | +-------------------+
+ | | opaque |
+ | +-------------------+
+ | |///////////////////|
+ | +-------------------+
+ | | opaque_lsa_self |---+
+ | +-------------------+ |
+ | |///////////////////| |
+ | +-------------------+ |
+ | |
+ ......|.............................|.......................................
+ : | | Almost common for type-9,10,11 LSA :
+ : | +-----------------------+ :
+ : | | :
+ : | | struct :
+ : | | list struct struct :
+ : | +-> +-------+ listnode listnode :
+ : | | head |-----> +------+ +------ :
+ : | | tail | | next |--------------------> | next :
+ : | | count | /--| prev |<---------------------| prev :
+ : | +-------+ | data |---+ | :
+ : | |///////| +------+ | :
+ : | +-------+ | :
+ : | | :
+ : | struct | :
+ : | opaque_info_per_type | :
+ : | +-------------------+ <--------+ :
+ : | | opaque_type | <------------+ :
+ : | +-------------------+ | :
+ : | | status | | :
+ : | +-------------------+ | :
+ : | | t_opaque_lsa_self | | :
+ : | +-------------------+ | :
+ : +-----| owner | | struct :
+ : +-------------------+ | ospf_opaque_tabent :
+ : | functab |-------------------> +---------------- :
+ : +-------------------+ | | opaque_type :
+ : | id_list |---+ | |(Callback Funcs) :
+ : +-------------------+ | | | :
+ : | | :
+ : +-----------------------+ | :
+ : | | :
+ : | struct | :
+ : | list struct | struct :
+ : +-> +-------+ listnode | listnode :
+ : | head |-----> +------+ | +------ :
+ : | tail | | next |--------------------> | next :
+ : | count | /--| prev |<---------------------| prev :
+ : +-------+ | data |---+ | | :
+ : |///////| +------+ | | :
+ : +-------+ | | :
+ : | | :
+ : struct | | :
+ : opaque_info_per_id | | :
+ : +-------------------+ <--------+ | :
+ : | opaque_id | | :
+ : +-------------------+ | :
+ : | t_opaque_lsa_self | | :
+ : +-------------------+ | :
+ : | opqctl_type |--------------+ :
+ : +-------------------+ :
+ : | lsa |---+ :
+ : +-------------------+ | :
+ : | :
+ : struct | :
+ : ospf_lsa | :
+ : +-------------+ <-------+ :
+ : |/////////////| struct :
+ : +-------------+ lsa_header :
+ : | data |--------------> +-------- :
+ : +-------------+ | :
+ : |/////////////| :
+ : +-------------+ :
+ : +--------| area | :
+ : | +-------------+ :
+ : --- |/////////////| :
+ : +-------------+ :
+ : +-----| oi | :
+ : | +-------------+ :
+ : --- :
+ :..........................................................................:
+
+2.2 Type-10 (area-local) Opaque-LSAs
+
+ struct
+ ospf
+ +---------+ <-----------+
+ |/////////| |
+ +---------+ |
+ |
+ struct |
+ ospf_area |
+ +--+---> +-----------------+ |
+ | | | top |-----+
+ | | +-----------------+
+ | | |/////////////////| struct
+ | | +-----------------+ ospf_lsa
+ | | | router_lsa_self |-----------> +---------
+ | | +-----------------+ |
+ | | | opaque_lsa_self |-----+ |
+ | | +-----------------+ |
+ | | |/////////////////| |
+ | | +-----------------+ |
+ | | |
+ ...|..|.............................|.......................................
+ : | | | Almost common for type-9,10,11 LSA :
+ : | | +-----------------------+ :
+ : | | | :
+ : | | | struct :
+ : | | | list struct struct :
+ : | | +-> +-------+ listnode listnode :
+ : | | | head |-----> +------+ +------ :
+ : | | | tail | | next |--------------------> | next :
+ : | | | count | /--| prev |<---------------------| prev :
+ : | | +-------+ | data |---+ | :
+ : | | |///////| +------+ | :
+ : | | +-------+ | :
+ : | | | :
+ : | | struct | :
+ : | | opaque_info_per_type | :
+ : | | +-------------------+ <--------+ :
+ : | | | opaque_type | <------------+ :
+ : | | +-------------------+ | :
+ : | | | status | | :
+ : | | +-------------------+ | :
+ : | | | t_opaque_lsa_self | | :
+ : | | +-------------------+ | :
+ : | +-----| owner | | struct :
+ : | +-------------------+ | ospf_opaque_tabent :
+ : | | functab |-------------------> +---------------- :
+ : | +-------------------+ | | opaque_type :
+ : | | id_list |---+ | |(Callback Funcs) :
+ : | +-------------------+ | | | :
+ : | | | :
+ : | +-----------------------+ | :
+ : | | | :
+ : | | struct | :
+ : | | list struct | struct :
+ : | +-> +-------+ listnode | listnode :
+ : | | head |-----> +------+ | +------ :
+ : | | tail | | next |--------------------> | next :
+ : | | count | /--| prev |<---------------------| prev :
+ : | +-------+ | data |---+ | | :
+ : | |///////| +------+ | | :
+ : | +-------+ | | :
+ : | | | :
+ : | struct | | :
+ : | opaque_info_per_id | | :
+ : | +-------------------+ <--------+ | :
+ : | | opaque_id | | :
+ : | +-------------------+ | :
+ : | | t_opaque_lsa_self | | :
+ : | +-------------------+ | :
+ : | | opqctl_type |--------------+ :
+ : | +-------------------+ :
+ : | | lsa |---+ :
+ : | +-------------------+ | :
+ : | | :
+ : | struct | :
+ : | ospf_lsa | :
+ : | +-------------+ <-------+ :
+ : | |/////////////| struct :
+ : | +-------------+ lsa_header :
+ : | | data |--------------> +-------- :
+ : | +-------------+ | :
+ : | |/////////////| :
+ : | +-------------+ :
+ : +--------| area | :
+ : +-------------+ :
+ : |/////////////| :
+ : +-------------+ :
+ : +-----| oi | :
+ : | +-------------+ :
+ : --- :
+ :..........................................................................:
+
+2.3 Type-9 (link-local) Opaque-LSAs
+
+ struct
+ ospf_area
+ +------> +---------+ <---------+
+ | |/////////| |
+ | +---------+ |
+ | |
+ | struct |
+ | ospf_interface |
+ | +-+-> +-----------------+ |
+ | | | |/////////////////| |
+ | | | +-----------------+ |
+ | | | | area |---+
+ | | | +-----------------+
+ | | | |/////////////////| struct
+ | | | +-----------------+ ospf_lsa
+ | | | |network_lsa_self |-----------> +---------
+ | | | +-----------------+ |
+ | | | | opaque_lsa_self |-----+ |
+ | | | +-----------------+ |
+ | | | |/////////////////| |
+ | | | +-----------------+ |
+ | | | |
+ ...|..|.|...........................|.......................................
+ : | | | | Almost common for type-9,10,11 LSA :
+ : | | | +-----------------------+ :
+ : | | | | :
+ : | | | | struct :
+ : | | | | list struct struct :
+ : | | | +-> +-------+ listnode listnode :
+ : | | | | head |-----> +------+ +------ :
+ : | | | | tail | | next |--------------------> | next :
+ : | | | | count | /--| prev |<---------------------| prev :
+ : | | | +-------+ | data |---+ | :
+ : | | | |///////| +------+ | :
+ : | | | +-------+ | :
+ : | | | | :
+ : | | | struct | :
+ : | | | opaque_info_per_type | :
+ : | | | +-------------------+ <--------+ :
+ : | | | | opaque_type | <------------+ :
+ : | | | +-------------------+ | :
+ : | | | | status | | :
+ : | | | +-------------------+ | :
+ : | | | | t_opaque_lsa_self | | :
+ : | | | +-------------------+ | :
+ : | | +---| owner | | struct :
+ : | | +-------------------+ | ospf_opaque_tabent :
+ : | | | functab |-------------------> +---------------- :
+ : | | +-------------------+ | | opaque_type :
+ : | | | id_list |---+ | |(Callback Funcs) :
+ : | | +-------------------+ | | | :
+ : | | | | :
+ : | | +-----------------------+ | :
+ : | | | | :
+ : | | | struct | :
+ : | | | list struct | struct :
+ : | | +-> +-------+ listnode | listnode :
+ : | | | head |-----> +------+ | +------ :
+ : | | | tail | | next |--------------------> | next :
+ : | | | count | /--| prev |<---------------------| prev :
+ : | | +-------+ | data |---+ | | :
+ : | | |///////| +------+ | | :
+ : | | +-------+ | | :
+ : | | | | :
+ : | | struct | | :
+ : | | opaque_info_per_id | | :
+ : | | +-------------------+ <--------+ | :
+ : | | | opaque_id | | :
+ : | | +-------------------+ | :
+ : | | | t_opaque_lsa_self | | :
+ : | | +-------------------+ | :
+ : | | | opqctl_type |--------------+ :
+ : | | +-------------------+ :
+ : | | | lsa |---+ :
+ : | | +-------------------+ | :
+ : | | | :
+ : | | struct | :
+ : | | ospf_lsa | :
+ : | | +-------------+ <-------+ :
+ : | | |/////////////| struct :
+ : | | +-------------+ lsa_header :
+ : | | | data |--------------> +-------- :
+ : | | +-------------+ | :
+ : | | |/////////////| :
+ : | | +-------------+ :
+ : +--|-----| area | :
+ : | +-------------+ :
+ : | |/////////////| :
+ : | +-------------+ :
+ : +-----| oi | :
+ : +-------------+ :
+ :..........................................................................:
+
+
+3. Internal structures for MPLS-TE parameter management.
+
+ struct
+ ospf_mpls_te
+ +-------------+
+ | status |
+ +-------------+
+ | iflist |---+
+ +-------------+ |
+ |(Router-TLV) | |
+ +-------------+ |
+ |
+ +---------------------+
+ |
+ | struct
+ | list struct struct
+ +---> +-------+ listnode listnode
+ | head |-----> +------+ +------
+ | tail | | next |--------------------> | next
+ | count | /--| prev |<---------------------| prev
+ +-------+ | data |---+ |
+ |///////| +------+ |
+ +-------+ |
+ |
+ +--------------------------------+
+ |
+ | struct
+ | ospf_mpls_te_linkparms
+ +-> +----------------+
+ | instance | struct
+ +----------------+ interface
+ | ifp |--------------------> +----------+
+ +----------------+ +----> |//////////|
+ | area |----+ | +----------+
+ +----------------+ | | | info |-----+
+ | flags | | | +----------+ |
+ +----------------+ | | |//////////| |
+ | (Link-TLV) | | | +----------+ |
+ +----------------+ | | |
+ | (Link-SubTLVs) | | | struct |
+ +----------------+ | | ospf_if_info |
+ | | +----------+ <---+
+ | | |//////////|
+ struct | | +----------+
+ ospf_area | | | oifs |-----+
+ +-> +--------------+ <----+ | +----------+ |
+ | |//////////////| | |
+ | +--------------+ | struct |
+ | | route_table |
+ | struct | +-----------+ <--+
+ | ospf_interface | | route_top | - - - - -.
+ | +--------------+ <----+ | +-----------+ .
+ | |//////////////| | | .
+ | +--------------+ | | struct .
+ | | ifp |------|----------+ route_node .
+ | +--------------+ | +-----------+ < - - - -
+ | |//////////////| | |///////////|
+ | +--------------+ | +-----------+
+ +---| area | +-----------------| info |
+ +--------------+ +-----------+
+ |//////////////| |///////////|
+ +--------------+ +-----------+
diff --git a/doc/mpls/ospfd.conf b/doc/mpls/ospfd.conf
new file mode 100644
index 00000000..6be11f91
--- /dev/null
+++ b/doc/mpls/ospfd.conf
@@ -0,0 +1,75 @@
+!
+! Zebra configuration saved from vty
+! 2001/03/16 22:07:53
+!
+hostname HOSTNAME
+password PASSWORD
+log file /var/log/ospfd.log
+!
+debug ospf ism
+debug ospf nsm
+debug ospf lsa
+debug ospf zebra
+debug ospf event
+debug ospf packet all detail
+!
+!
+interface fxp0
+ ip ospf hello-interval 60
+ ip ospf dead-interval 240
+ mpls-te link metric 999
+ mpls-te link max-bw 1.25e+06
+ mpls-te link max-rsv-bw 1.25e+06
+ mpls-te link unrsv-bw 0 1.25e+06
+ mpls-te link unrsv-bw 1 1.25e+06
+ mpls-te link unrsv-bw 2 1.25e+06
+ mpls-te link unrsv-bw 3 1.25e+06
+ mpls-te link unrsv-bw 4 1.25e+06
+ mpls-te link unrsv-bw 5 1.25e+06
+ mpls-te link unrsv-bw 6 1.25e+06
+ mpls-te link unrsv-bw 7 1.25e+06
+ mpls-te link rsc-clsclr 0xab
+!
+interface de1
+ ip ospf hello-interval 60
+ ip ospf dead-interval 240
+ mpls-te link metric 111
+ mpls-te link max-bw 1.25e+06
+ mpls-te link max-rsv-bw 1.25e+06
+ mpls-te link unrsv-bw 0 1.25e+06
+ mpls-te link unrsv-bw 1 1.25e+06
+ mpls-te link unrsv-bw 2 1.25e+06
+ mpls-te link unrsv-bw 3 1.25e+06
+ mpls-te link unrsv-bw 4 1.25e+06
+ mpls-te link unrsv-bw 5 1.25e+06
+ mpls-te link unrsv-bw 6 1.25e+06
+ mpls-te link unrsv-bw 7 1.25e+06
+ mpls-te link rsc-clsclr 0xcd
+!
+interface de0
+ mpls-te link metric 0
+ mpls-te link rsc-clsclr 0x0
+!
+interface lp0
+ ip ospf network point-to-point
+!
+interface tun0
+ ip ospf network point-to-point
+!
+interface sl0
+ ip ospf network point-to-point
+!
+interface ppp0
+ ip ospf network point-to-point
+!
+interface lo0
+!
+router ospf
+ compatible rfc1583
+ network 192.168.0.0/16 area 1
+ ospf opaque-lsa
+ mpls-te
+ mpls-te router-address 1.2.3.4
+!
+line vty
+!
diff --git a/doc/ospfd.texi b/doc/ospfd.texi
index adbf45ef..2c24a210 100644
--- a/doc/ospfd.texi
+++ b/doc/ospfd.texi
@@ -53,7 +53,8 @@ number.
@deffnx {OSPF Command} {no ospf abr-type @var{type}} {}
@var{type} can be cisco|ibm|shortcut|standard
More information regarding the behaviour controlled by this command can
-be found in draft-ietf-ospf-abr-alt-05.txt.
+be found in draft-ietf-ospf-abr-alt-05.txt and
+draft-ietf-ospf-shortcut-abr-02.txt
Quote: "Though the definition of the Area Border Router (ABR)
in the OSPF specification does not require a router with multiple
attached areas to have a backbone connection, it is actually
@@ -66,10 +67,10 @@ behaviors implemented in Cisco and IBM routers."
@deffn {OSPF Command} {ospf rfc1583compatibility} {}
@deffnx {OSPF Command} {no ospf rfc1583compatibility} {}
-This rfc2328, the sucessor to rfc1583, suggests according to section
+This rfc2328, the sucessor to rfc1583, suggests according to section
G.2 (changes) in section 16.4 a change to the path preference
algorithm that prevents possible routing loops that were possible in
-the old version of OSPFv2. More specificly it demands that inter-area
+the old version of OSPFv2. More specifically it demands that inter-area
paths and intra-area path are now of equal preference but still both
preferred to external paths.
@end deffn
diff --git a/doc/zebra.info b/doc/zebra.info
index eb17a2d0..ca805e12 100644
--- a/doc/zebra.info
+++ b/doc/zebra.info
@@ -8,8 +8,8 @@ END-INFO-DIR-ENTRY
This file documents the GNU Zebra software which manages common
TCP/IP routing protocols.
- This is Edition 0.1, last updated 26 January 2003 of `The GNU Zebra
-Manual', for Zebra Version 0.94.
+ This is Edition 0.1, last updated 12 September 2002 of `The GNU
+Zebra Manual', for Zebra Version 0.93b.
Copyright (C) 1999, 2000, 2001, 2002 Kunihiro Ishiguro
@@ -29,142 +29,142 @@ translation approved by Kunihiro Ishiguro.

Indirect:
-zebra.info-1: 1118
-zebra.info-2: 48813
-zebra.info-3: 96640
-zebra.info-4: 144993
+zebra.info-1: 1121
+zebra.info-2: 48818
+zebra.info-3: 95581
+zebra.info-4: 143934

Tag Table:
(Indirect)
-Node: Top1118
-Node: Overview1642
-Node: About Zebra3059
-Node: System Architecture5328
-Node: Supported Platforms8326
-Node: Supported RFC9313
-Node: How to get Zebra11115
-Node: Mailing List11820
-Node: Bug Reports12487
-Node: Installation13332
-Node: Configure the Software13763
-Ref: Configure the Software-Footnote-116130
-Node: Build the Software17772
-Node: Install the Software18314
-Node: Basic commands19685
-Node: Config Commands20398
-Node: Basic Config Commands21280
-Node: Sample Config File23678
-Node: Common Invocation Options24438
-Node: Virtual Terminal Interfaces25560
-Node: VTY Overview26065
-Node: VTY Modes27348
-Node: VTY View Mode27788
-Node: VTY Enable Mode28042
-Node: VTY Other Modes28306
-Node: VTY CLI Commands28468
-Node: CLI Movement Commands28918
-Node: CLI Editing Commands29451
-Node: CLI Advanced Commands30024
-Node: Zebra30775
-Node: Invoking zebra31282
-Node: Interface Commands31868
-Node: Static Route Commands32698
-Node: zebra Terminal Mode Commands34785
-Node: RIP35746
-Node: Starting and Stopping ripd36681
-Node: RIP netmask38102
-Node: RIP Configuration39224
-Node: How to Announce RIP route43119
-Node: Filtering RIP Routes45648
-Node: RIP Metric Manipulation47107
-Node: RIP distance48010
-Node: RIP route-map48813
-Node: RIP Authentication51315
-Node: RIP Timers52405
-Node: Show RIP Information53680
-Node: RIP Debug Commands55043
-Node: RIPng56027
-Node: Invoking ripngd56345
-Node: ripngd Configuration56602
-Node: ripngd Terminal Mode Commands57341
-Node: ripngd Filtering Commands57691
-Node: OSPFv258190
-Node: Configuring ospfd58747
-Node: OSPF router59224
-Node: OSPF area62019
-Node: OSPF interface64233
-Node: Redistribute routes to OSPF67015
-Node: Showing OSPF information69131
-Node: Debugging OSPF70351
-Node: OSPFv371362
-Node: OSPF6 router71680
-Node: OSPF6 area72037
-Node: OSPF6 interface72209
-Node: Redistribute routes to OSPF673061
-Node: Showing OSPF6 information73365
-Node: BGP74170
-Node: Starting BGP75031
-Node: BGP router75616
-Node: BGP distance76852
-Node: BGP decision process77293
-Node: BGP network77549
-Node: BGP route77730
-Node: Route Aggregation78291
-Node: Redistribute to BGP78843
-Node: BGP Peer79352
-Node: Defining Peer79530
-Node: BGP Peer commands80146
-Node: Peer filtering82517
-Node: BGP Peer Group83008
-Node: BGP Address Family83310
-Node: Autonomous System83455
-Node: AS Path Regular Expression84286
-Node: Display BGP Routes by AS Path85549
-Node: AS Path Access List85978
-Node: Using AS Path in Route Map86432
-Node: Private AS Numbers86698
-Node: BGP Communities Attribute86843
-Node: BGP Community Lists89304
-Node: Numbered BGP Community Lists91985
-Node: BGP Community in Route Map93559
-Node: Display BGP Routes by Community95486
-Node: Using BGP Communities Attribute96640
-Node: BGP Extended Communities Attribute100198
-Node: BGP Extended Community Lists101964
-Node: BGP Extended Communities in Route Map103865
-Node: Displaying BGP routes104308
-Node: Show IP BGP104534
-Node: More Show IP BGP105256
-Node: Capability Negotiation106376
-Node: Route Reflector109664
-Node: Route Server109929
-Node: Multiple instance110987
-Node: BGP instance and view112800
-Node: Routing policy114166
-Node: Viewing the view114922
-Node: How to set up a 6-Bone connection115194
-Node: Dump BGP packets and table116566
-Node: VTY shell117096
-Node: Filtering117936
-Node: IP Access List118284
-Node: IP Prefix List118675
-Node: ip prefix-list description121844
-Node: ip prefix-list sequential number control122377
-Node: Showing ip prefix-list122902
-Node: Clear counter of ip prefix-list123985
-Node: Route Map124406
-Node: Route Map Command124907
-Node: Route Map Match Command125110
-Node: Route Map Set Command125718
-Node: IPv6 Support126576
-Node: Router Advertisement127141
-Node: Kernel Interface127472
-Node: SNMP Support129422
-Node: How to get ucd-snmp130051
-Node: SMUX configuration131099
-Node: Zebra Protocol131532
-Node: Packet Binary Dump Format133426
-Node: Command Index144993
-Node: VTY Key Index174711
+Node: Top1121
+Node: Overview1646
+Node: About Zebra3063
+Node: System Architecture5332
+Node: Supported Platforms8330
+Node: Supported RFC9317
+Node: How to get Zebra11119
+Node: Mailing List11824
+Node: Bug Reports12491
+Node: Installation13336
+Node: Configure the Software13767
+Ref: Configure the Software-Footnote-116134
+Node: Build the Software17776
+Node: Install the Software18318
+Node: Basic commands19689
+Node: Config Commands20402
+Node: Basic Config Commands21284
+Node: Sample Config File23682
+Node: Common Invocation Options24442
+Node: Virtual Terminal Interfaces25564
+Node: VTY Overview26069
+Node: VTY Modes27353
+Node: VTY View Mode27793
+Node: VTY Enable Mode28047
+Node: VTY Other Modes28311
+Node: VTY CLI Commands28473
+Node: CLI Movement Commands28923
+Node: CLI Editing Commands29456
+Node: CLI Advanced Commands30029
+Node: Zebra30780
+Node: Invoking zebra31287
+Node: Interface Commands31873
+Node: Static Route Commands32703
+Node: zebra Terminal Mode Commands34790
+Node: RIP35751
+Node: Starting and Stopping ripd36686
+Node: RIP netmask38107
+Node: RIP Configuration39229
+Node: How to Announce RIP route43124
+Node: Filtering RIP Routes45653
+Node: RIP Metric Manipulation47112
+Node: RIP distance48015
+Node: RIP route-map48818
+Node: RIP Authentication51320
+Node: RIP Timers52410
+Node: Show RIP Information53685
+Node: RIP Debug Commands55048
+Node: RIPng56032
+Node: Invoking ripngd56350
+Node: ripngd Configuration56607
+Node: ripngd Terminal Mode Commands57346
+Node: ripngd Filtering Commands57696
+Node: OSPFv258195
+Node: Configuring ospfd58752
+Node: OSPF router59229
+Node: OSPF area60960
+Node: OSPF interface63174
+Node: Redistribute routes to OSPF65956
+Node: Showing OSPF information68072
+Node: Debugging OSPF69292
+Node: OSPFv370303
+Node: OSPF6 router70621
+Node: OSPF6 area70978
+Node: OSPF6 interface71150
+Node: Redistribute routes to OSPF672002
+Node: Showing OSPF6 information72306
+Node: BGP73111
+Node: Starting BGP73972
+Node: BGP router74557
+Node: BGP distance75793
+Node: BGP decision process76234
+Node: BGP network76490
+Node: BGP route76671
+Node: Route Aggregation77232
+Node: Redistribute to BGP77784
+Node: BGP Peer78293
+Node: Defining Peer78471
+Node: BGP Peer commands79087
+Node: Peer filtering81458
+Node: BGP Peer Group81949
+Node: BGP Address Family82251
+Node: Autonomous System82396
+Node: AS Path Regular Expression83227
+Node: Display BGP Routes by AS Path84490
+Node: AS Path Access List84919
+Node: Using AS Path in Route Map85373
+Node: Private AS Numbers85639
+Node: BGP Communities Attribute85784
+Node: BGP Community Lists88245
+Node: Numbered BGP Community Lists90926
+Node: BGP Community in Route Map92500
+Node: Display BGP Routes by Community94427
+Node: Using BGP Communities Attribute95581
+Node: BGP Extended Communities Attribute99139
+Node: BGP Extended Community Lists100905
+Node: BGP Extended Communities in Route Map102806
+Node: Displaying BGP routes103249
+Node: Show IP BGP103475
+Node: More Show IP BGP104197
+Node: Capability Negotiation105317
+Node: Route Reflector108605
+Node: Route Server108870
+Node: Multiple instance109928
+Node: BGP instance and view111741
+Node: Routing policy113107
+Node: Viewing the view113863
+Node: How to set up a 6-Bone connection114135
+Node: Dump BGP packets and table115507
+Node: VTY shell116037
+Node: Filtering116877
+Node: IP Access List117225
+Node: IP Prefix List117616
+Node: ip prefix-list description120785
+Node: ip prefix-list sequential number control121318
+Node: Showing ip prefix-list121843
+Node: Clear counter of ip prefix-list122926
+Node: Route Map123347
+Node: Route Map Command123848
+Node: Route Map Match Command124051
+Node: Route Map Set Command124659
+Node: IPv6 Support125517
+Node: Router Advertisement126082
+Node: Kernel Interface126413
+Node: SNMP Support128363
+Node: How to get ucd-snmp128992
+Node: SMUX configuration130040
+Node: Zebra Protocol130473
+Node: Packet Binary Dump Format132367
+Node: Command Index143934
+Node: VTY Key Index173652

End Tag Table
diff --git a/doc/zebra.texi b/doc/zebra.texi
index 965e0590..d09ff4d6 100644
--- a/doc/zebra.texi
+++ b/doc/zebra.texi
@@ -9,9 +9,9 @@
@c Set variables
@set EDITION 0.1
-@set VERSION 0.94
-@set UPDATED 26 January 2003
-@set UPDATED-MONTH January 2003
+@set VERSION 0.93b
+@set UPDATED 12 September 2002
+@set UPDATED-MONTH September 2002
@c These may vary with installation environment.
@set INSTALL_PREFIX_ETC /usr/local/etc