diff --git a/ChangeLog b/ChangeLog
index 1f15ad6..57fdf48 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+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
diff --git a/Makefile.in b/Makefile.in
index f889f18..c88da5f 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,6 +1,7 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.5 from Makefile.am.
 
-# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# 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.
@@ -10,6 +11,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+@SET_MAKE@
 
 SHELL = @SHELL@
 
@@ -31,13 +33,9 @@
 mandir = @mandir@
 includedir = @includedir@
 oldincludedir = /usr/include
-
-DESTDIR =
-
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-
 top_builddir = .
 
 ACLOCAL = @ACLOCAL@
@@ -46,11 +44,11 @@
 AUTOHEADER = @AUTOHEADER@
 
 INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
 transform = @program_transform_name@
-
 NORMAL_INSTALL = :
 PRE_INSTALL = :
 POST_INSTALL = :
@@ -59,22 +57,28 @@
 POST_UNINSTALL = :
 host_alias = @host_alias@
 host_triplet = @host@
+AMTAR = @AMTAR@
 AR = @AR@
+AWK = @AWK@
 BGPD = @BGPD@
 CC = @CC@
 CPP = @CPP@
 CURSES = @CURSES@
+DEPDIR = @DEPDIR@
+EXEEXT = @EXEEXT@
 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@
-MAKEINFO = @MAKEINFO@
 MULTIPATH_NUM = @MULTIPATH_NUM@
+OBJEXT = @OBJEXT@
 OSPF6D = @OSPF6D@
+OSPFAPI = @OSPFAPI@
 OSPFCLIENT = @OSPFCLIENT@
 OSPFD = @OSPFD@
 OTHER_METHOD = @OTHER_METHOD@
@@ -87,70 +91,76 @@
 VERSION = @VERSION@
 VTYSH = @VTYSH@
 ZEBRA = @ZEBRA@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
 
 SUBDIRS = lib @ZEBRA@ @BGPD@ @RIPD@ @RIPNGD@ @OSPFD@ @OSPF6D@ @VTYSH@ @OSPFCLIENT@ doc
 
 EXTRA_DIST = aclocal.m4 SERVICES TODO REPORTING-BUGS vtysh/Makefile.in \
 	vtysh/Makefile.am update-autotools
 
+subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES = 
-DIST_COMMON =  README ./stamp-h.in AUTHORS COPYING COPYING.LIB ChangeLog \
-INSTALL Makefile.am Makefile.in NEWS TODO acconfig.h aclocal.m4 \
-config.guess config.h.in config.sub configure configure.in install-sh \
-missing mkinstalldirs
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
 
+RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \
+	uninstall-info-recursive all-recursive install-data-recursive \
+	install-exec-recursive installdirs-recursive install-recursive \
+	uninstall-recursive check-recursive installcheck-recursive
+DIST_COMMON = README ./stamp-h.in AUTHORS COPYING COPYING.LIB ChangeLog \
+	INSTALL Makefile.am Makefile.in NEWS TODO acconfig.h aclocal.m4 \
+	config.guess config.h.in config.sub configure configure.ac \
+	configure.in depcomp install-sh missing mkinstalldirs
+DIST_SUBDIRS = $(SUBDIRS)
+all: config.h
+	$(MAKE) $(AM_MAKEFLAGS) all-recursive
 
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = gtar
-GZIP_ENV = --best
-all: all-redirect
 .SUFFIXES:
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign  Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) && \
+	  CONFIG_HEADERS= CONFIG_LINKS= \
+	  CONFIG_FILES=$@ $(SHELL) ./config.status
 
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
-	cd $(top_builddir) \
-	  && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-$(ACLOCAL_M4):  configure.in 
-	cd $(srcdir) && $(ACLOCAL)
-
-config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	$(SHELL) ./config.status --recheck
-$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
+$(srcdir)/configure:  $(srcdir)/configure.ac $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
 	cd $(srcdir) && $(AUTOCONF)
 
+$(ACLOCAL_M4):  configure.ac 
+	cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
 config.h: stamp-h
 	@if test ! -f $@; then \
 		rm -f stamp-h; \
 		$(MAKE) stamp-h; \
 	else :; fi
 stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status
+	@rm -f stamp-h stamp-hT
+	@echo timestamp > stamp-hT 2> /dev/null
 	cd $(top_builddir) \
 	  && CONFIG_FILES= CONFIG_HEADERS=config.h \
 	     $(SHELL) ./config.status
-	@echo timestamp > stamp-h 2> /dev/null
-$(srcdir)/config.h.in: $(srcdir)/stamp-h.in
+	@mv stamp-hT stamp-h
+$(srcdir)/config.h.in:  $(srcdir)/./stamp-h.in
 	@if test ! -f $@; then \
-		rm -f $(srcdir)/stamp-h.in; \
-		$(MAKE) $(srcdir)/stamp-h.in; \
+		rm -f $(srcdir)/./stamp-h.in; \
+		$(MAKE) $(srcdir)/./stamp-h.in; \
 	else :; fi
-$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
+$(srcdir)/./stamp-h.in: $(top_srcdir)/configure.ac $(ACLOCAL_M4) $(top_srcdir)/acconfig.h
+	@rm -f $(srcdir)/./stamp-h.in $(srcdir)/./stamp-h.inT
+	@echo timestamp > $(srcdir)/./stamp-h.inT 2> /dev/null
 	cd $(top_srcdir) && $(AUTOHEADER)
-	@echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null
-
-mostlyclean-hdr:
-
-clean-hdr:
+	@mv $(srcdir)/./stamp-h.inT $(srcdir)/./stamp-h.in
 
 distclean-hdr:
 	-rm -f config.h
-
-maintainer-clean-hdr:
+uninstall-info-am:
 
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
@@ -158,12 +168,7 @@
 # (1) if the variable is set in `config.status', edit `config.status'
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
-
-@SET_MAKE@
-
-all-recursive install-data-recursive install-exec-recursive \
-installdirs-recursive install-recursive uninstall-recursive  \
-check-recursive installcheck-recursive info-recursive dvi-recursive:
+$(RECURSIVE_TARGETS):
 	@set fnord $(MAKEFLAGS); amf=$$2; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
@@ -186,11 +191,16 @@
 maintainer-clean-recursive:
 	@set fnord $(MAKEFLAGS); amf=$$2; \
 	dot_seen=no; \
-	rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
-	  rev="$$subdir $$rev"; \
-	  test "$$subdir" != "." || dot_seen=yes; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
 	done; \
-	test "$$dot_seen" = "no" && rev=". $$rev"; \
+	rev="$$rev ."; \
 	target=`echo $@ | sed s/-recursive//`; \
 	for subdir in $$rev; do \
 	  echo "Making $$target in $$subdir"; \
@@ -209,90 +219,66 @@
 
 tags: TAGS
 
-ID: $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
-	here=`pwd` && cd $(srcdir) \
-	  && mkid -f$$here/ID $$unique $(LISP)
+	mkid -fID $$unique $(LISP)
 
-TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP)
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
 	tags=; \
 	here=`pwd`; \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-   if test "$$subdir" = .; then :; else \
+	  if test "$$subdir" = .; then :; else \
 	    test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
-   fi; \
+	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+	list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
 	test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \
-	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS)
+	  || etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP)
 
-mostlyclean-tags:
-
-clean-tags:
+GTAGS:
+	here=`CDPATH=: && cd $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
 
 distclean-tags:
-	-rm -f TAGS ID
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
 
-maintainer-clean-tags:
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 
+top_distdir = .
+# Avoid unsightly `./'.
 distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
 
-# This target untars the dist file and tries a VPATH configuration.  Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
-	-rm -rf $(distdir)
-	GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
-	mkdir $(distdir)/=build
-	mkdir $(distdir)/=inst
-	dc_install_base=`cd $(distdir)/=inst && pwd`; \
-	cd $(distdir)/=build \
-	  && ../configure --srcdir=.. --prefix=$$dc_install_base \
-	  && $(MAKE) $(AM_MAKEFLAGS) \
-	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
-	  && $(MAKE) $(AM_MAKEFLAGS) check \
-	  && $(MAKE) $(AM_MAKEFLAGS) install \
-	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
-	  && $(MAKE) $(AM_MAKEFLAGS) dist
-	-rm -rf $(distdir)
-	@banner="$(distdir).tar.gz is ready for distribution"; \
-	dashes=`echo "$$banner" | sed s/./=/g`; \
-	echo "$$dashes"; \
-	echo "$$banner"; \
-	echo "$$dashes"
-dist: distdir
-	-chmod -R a+r $(distdir)
-	GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-	-rm -rf $(distdir)
-dist-all: distdir
-	-chmod -R a+r $(distdir)
-	GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-	-rm -rf $(distdir)
+GZIP_ENV = --best
+
 distdir: $(DISTFILES)
-	-rm -rf $(distdir)
+	-chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
 	mkdir $(distdir)
-	-chmod 777 $(distdir)
-	here=`cd $(top_builddir) && pwd`; \
-	top_distdir=`cd $(distdir) && pwd`; \
-	distdir=`cd $(distdir) && pwd`; \
-	cd $(top_srcdir) \
-	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign Makefile
 	$(mkinstalldirs) $(distdir)/vtysh
 	@for file in $(DISTFILES); do \
-	  d=$(srcdir); \
+	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    $(mkinstalldirs) "$(distdir)/$$dir"; \
+	  fi; \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$d/$$file $(distdir)/$$file; \
+	    cp -pR $$d/$$file $(distdir) \
+	    || exit 1; \
 	  else \
 	    test -f $(distdir)/$$file \
-	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
 	  fi; \
 	done
 	for subdir in $(SUBDIRS); do \
@@ -300,84 +286,141 @@
 	    test -d $(distdir)/$$subdir \
 	    || mkdir $(distdir)/$$subdir \
 	    || exit 1; \
-	    chmod 777 $(distdir)/$$subdir; \
-	    (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
+	    (cd $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$(top_distdir)" \
+	        distdir=../$(distdir)/$$subdir \
+	        distdir) \
 	      || exit 1; \
 	  fi; \
 	done
-	$(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook
-info-am:
-info: info-recursive
-dvi-am:
-dvi: dvi-recursive
+	$(MAKE) $(AM_MAKEFLAGS) \
+	  top_distdir="${top_distdir}" distdir="$(distdir)" \
+	  dist-hook
+	-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+	|| chmod -R a+r $(distdir)
+dist: distdir
+	$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	-chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
+
+# This target untars the dist file and tries a VPATH configuration.  Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+	-chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir)
+	GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
+	chmod -R a-w $(distdir); chmod a+w $(distdir)
+	mkdir $(distdir)/=build
+	mkdir $(distdir)/=inst
+	chmod a-w $(distdir)
+	dc_install_base=`CDPATH=: && cd $(distdir)/=inst && pwd` \
+	  && cd $(distdir)/=build \
+	  && ../configure --srcdir=.. --prefix=$$dc_install_base \
+	  && $(MAKE) $(AM_MAKEFLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
+	  && $(MAKE) $(AM_MAKEFLAGS) check \
+	  && $(MAKE) $(AM_MAKEFLAGS) install \
+	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+	  && (test `find $$dc_install_base -type f -print | wc -l` -le 1 \
+	     || (echo "Error: files left after uninstall" 1>&2; \
+	         exit 1) ) \
+	  && $(MAKE) $(AM_MAKEFLAGS) dist \
+	  && $(MAKE) $(AM_MAKEFLAGS) distclean \
+	  && rm -f $(distdir).tar.gz \
+	  && (test `find . -type f -print | wc -l` -eq 0 \
+	     || (echo "Error: files left after distclean" 1>&2; \
+	         exit 1) )
+	-chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir)
+	@echo "$(distdir).tar.gz is ready for distribution" | \
+	  sed 'h;s/./=/g;p;x;p;x'
 check-am: all-am
 check: check-recursive
-installcheck-am:
-installcheck: installcheck-recursive
-all-recursive-am: config.h
-	$(MAKE) $(AM_MAKEFLAGS) all-recursive
-
-install-exec-am:
-install-exec: install-exec-recursive
-
-install-data-am:
-install-data: install-data-recursive
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-recursive
-uninstall-am:
-uninstall: uninstall-recursive
 all-am: Makefile config.h
-all-redirect: all-recursive-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
 installdirs: installdirs-recursive
 installdirs-am:
 
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
 
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 mostlyclean-generic:
 
 clean-generic:
 
 distclean-generic:
-	-rm -f Makefile $(CONFIG_CLEAN_FILES)
-	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+	-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
 
 maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-hdr mostlyclean-tags mostlyclean-generic
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic mostlyclean-am
+
+dist-all: distdir
+	$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	-chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
+distclean: distclean-recursive
+	-rm -f config.status config.cache config.log
+distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
 
 mostlyclean: mostlyclean-recursive
 
-clean-am:  clean-hdr clean-tags clean-generic mostlyclean-am
+mostlyclean-am: mostlyclean-generic
 
-clean: clean-recursive
+uninstall-am: uninstall-info-am
 
-distclean-am:  distclean-hdr distclean-tags distclean-generic clean-am
+uninstall-info: uninstall-info-recursive
 
-distclean: distclean-recursive
-	-rm -f config.status
-
-maintainer-clean-am:  maintainer-clean-hdr maintainer-clean-tags \
-		maintainer-clean-generic distclean-am
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-recursive
-	-rm -f config.status
-
-.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
-install-data-recursive uninstall-data-recursive install-exec-recursive \
-uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
-all-recursive check-recursive installcheck-recursive info-recursive \
-dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
-maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
-dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \
-install-exec-am install-exec install-data-am install-data install-am \
-install uninstall-am uninstall all-redirect all-am all installdirs-am \
-installdirs mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
+	clean-generic clean-recursive dist dist-all distcheck distclean \
+	distclean-generic distclean-hdr distclean-recursive \
+	distclean-tags distdir dvi dvi-am dvi-recursive info info-am \
+	info-recursive install install-am install-data install-data-am \
+	install-data-recursive install-exec install-exec-am \
+	install-exec-recursive install-info install-info-am \
+	install-info-recursive install-man install-recursive \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am installdirs-recursive maintainer-clean \
+	maintainer-clean-generic maintainer-clean-recursive mostlyclean \
+	mostlyclean-generic mostlyclean-recursive tags tags-recursive \
+	uninstall uninstall-am uninstall-info-am \
+	uninstall-info-recursive uninstall-recursive
 
 
 dist-hook:
@@ -389,7 +432,6 @@
 	mkdir $(distdir)/init/redhat
 	cp -p $(srcdir)/init/redhat/*.init $(distdir)/init/redhat
 	cp -p $(srcdir)/init/redhat/zebra.* $(distdir)/init/redhat
-
 # 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/aclocal.m4 b/aclocal.m4
index c461ff3..ff9c04c 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,70 +1,133 @@
-dnl aclocal.m4 generated automatically by aclocal 1.4-p5
+# aclocal.m4 generated automatically by aclocal 1.5
 
-dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
+# Copyright 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# This file 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.
 
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-dnl PARTICULAR PURPOSE.
+# 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.
 
 # Do all the work for Automake.  This macro actually does too much --
 # some checks are only needed if your package does certain things.
 # But this isn't really a big deal.
 
-# serial 1
+# serial 5
 
-dnl Usage:
-dnl AM_INIT_AUTOMAKE(package,version, [no-define])
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery.  Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
 
+
+# We require 2.13 because we rely on SHELL being computed by configure.
+AC_PREREQ([2.13])
+
+# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
+# -----------------------------------------------------------
+# If MACRO-NAME is provided do IF-PROVIDED, else IF-NOT-PROVIDED.
+# The purpose of this macro is to provide the user with a means to
+# check macros which are provided without letting her know how the
+# information is coded.
+# If this macro is not defined by Autoconf, define it here.
+ifdef([AC_PROVIDE_IFELSE],
+      [],
+      [define([AC_PROVIDE_IFELSE],
+              [ifdef([AC_PROVIDE_$1],
+                     [$2], [$3])])])
+
+
+# AM_INIT_AUTOMAKE(PACKAGE,VERSION, [NO-DEFINE])
+# ----------------------------------------------
 AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_REQUIRE([AC_PROG_INSTALL])
-PACKAGE=[$1]
-AC_SUBST(PACKAGE)
-VERSION=[$2]
-AC_SUBST(VERSION)
-dnl test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
-  AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+[AC_REQUIRE([AC_PROG_INSTALL])dnl
+# test to see if srcdir already configured
+if test "`CDPATH=:; cd $srcdir && pwd`" != "`pwd`" &&
+   test -f $srcdir/config.status; then
+  AC_MSG_ERROR([source directory already configured; run \"make distclean\" there first])
 fi
+
+# Define the identity of the package.
+PACKAGE=$1
+AC_SUBST(PACKAGE)dnl
+VERSION=$2
+AC_SUBST(VERSION)dnl
 ifelse([$3],,
-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
-AC_REQUIRE([AM_SANITY_CHECK])
-AC_REQUIRE([AC_ARG_PROGRAM])
-dnl FIXME This is truly gross.
-missing_dir=`cd $ac_aux_dir && pwd`
-AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
-AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
-AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
-AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
-AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
-AC_REQUIRE([AC_PROG_MAKE_SET])])
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])
+
+# Autoconf 2.50 wants to disallow AM_ names.  We explicitly allow
+# the ones we care about.
+ifdef([m4_pattern_allow],
+      [m4_pattern_allow([^AM_[A-Z]+FLAGS])])dnl
+
+# Autoconf 2.50 always computes EXEEXT.  However we need to be
+# compatible with 2.13, for now.  So we always define EXEEXT, but we
+# don't compute it.
+AC_SUBST(EXEEXT)
+# Similar for OBJEXT -- only we only use OBJEXT if the user actually
+# requests that it be used.  This is a bit dumb.
+: ${OBJEXT=o}
+AC_SUBST(OBJEXT)
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal)
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake)
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_MISSING_PROG(AMTAR, tar)
+AM_PROG_INSTALL_SH
+AM_PROG_INSTALL_STRIP
+# We need awk for the "check" target.  The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_PROVIDE_IFELSE([AC_PROG_][CC],
+                  [_AM_DEPENDENCIES(CC)],
+                  [define([AC_PROG_][CC],
+                          defn([AC_PROG_][CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_][CXX],
+                  [_AM_DEPENDENCIES(CXX)],
+                  [define([AC_PROG_][CXX],
+                          defn([AC_PROG_][CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+])
 
 #
 # Check to make sure that the build environment is sane.
 #
 
+# serial 3
+
+# AM_SANITY_CHECK
+# ---------------
 AC_DEFUN([AM_SANITY_CHECK],
 [AC_MSG_CHECKING([whether build environment is sane])
 # Just in case
 sleep 1
-echo timestamp > conftestfile
+echo timestamp > conftest.file
 # Do `set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
-   if test "[$]*" = "X"; then
+   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+   if test "$[*]" = "X"; then
       # -L didn't work.
-      set X `ls -t $srcdir/configure conftestfile`
+      set X `ls -t $srcdir/configure conftest.file`
    fi
-   if test "[$]*" != "X $srcdir/configure conftestfile" \
-      && test "[$]*" != "X conftestfile $srcdir/configure"; then
+   rm -f conftest.file
+   if test "$[*]" != "X $srcdir/configure conftest.file" \
+      && test "$[*]" != "X conftest.file $srcdir/configure"; then
 
       # If neither matched, then we have a broken ls.  This can happen
       # if, for instance, CONFIG_SHELL is bash and it inherits a
@@ -74,7 +137,7 @@
 alias in your environment])
    fi
 
-   test "[$]2" = conftestfile
+   test "$[2]" = conftest.file
    )
 then
    # Ok.
@@ -83,45 +146,415 @@
    AC_MSG_ERROR([newly created file is older than distributed files!
 Check your system clock])
 fi
-rm -f conftest*
 AC_MSG_RESULT(yes)])
 
-dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
-dnl The program must properly implement --version.
+
+# serial 2
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
 AC_DEFUN([AM_MISSING_PROG],
-[AC_MSG_CHECKING(for working $2)
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if ($2 --version) < /dev/null > /dev/null 2>&1; then
-   $1=$2
-   AC_MSG_RESULT(found)
-else
-   $1="$3/missing $2"
-   AC_MSG_RESULT(missing)
-fi
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
 AC_SUBST($1)])
 
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+  am_missing_run="$MISSING --run "
+else
+  am_missing_run=
+  am_backtick='`'
+  AC_MSG_WARN([${am_backtick}missing' script is too old or missing])
+fi
+])
+
+# AM_AUX_DIR_EXPAND
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory.  The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run.  This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+#    fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+#    fails if $ac_aux_dir is absolute,
+#    fails when called from a subdirectory in a VPATH build with
+#          a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir.  In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
+#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+#   MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH.  The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND], [
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`CDPATH=:; cd $ac_aux_dir && pwd`
+])
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
+AC_SUBST(install_sh)])
+
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries.  This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# serial 4						-*- Autoconf -*-
+
+
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery.  Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+
+# _AM_DEPENDENCIES(NAME)
+# ---------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX" or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
+       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
+       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc']
+       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                   [depcc="$$1"   am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+               [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+
+  am_cv_$1_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+  fi
+  for depmode in $am_compiler_list; do
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    echo '#include "conftest.h"' > conftest.c
+    echo 'int i;' > conftest.h
+    echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
+
+    case $depmode in
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    none) break ;;
+    esac
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
+    if depmode=$depmode \
+       source=conftest.c object=conftest.o \
+       depfile=conftest.Po tmpdepfile=conftest.TPo \
+       $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
+       grep conftest.h conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      am_cv_$1_dependencies_compiler_type=$depmode
+      break
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_$1_dependencies_compiler_type=none
+fi
+])
+$1DEPMODE="depmode=$am_cv_$1_dependencies_compiler_type"
+AC_SUBST([$1DEPMODE])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[rm -f .deps 2>/dev/null
+mkdir .deps 2>/dev/null
+if test -d .deps; then
+  DEPDIR=.deps
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  DEPDIR=_deps
+fi
+rmdir .deps 2>/dev/null
+AC_SUBST(DEPDIR)
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[  --disable-dependency-tracking Speeds up one-time builds
+  --enable-dependency-tracking  Do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+pushdef([subst], defn([AC_SUBST]))
+subst(AMDEPBACKSLASH)
+popdef([subst])
+])
+
+# Generate code to set up dependency tracking.
+# This macro should only be invoked once -- use via AC_REQUIRE.
+# Usage:
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+
+#
+# This code is only required when automatic dependency tracking
+# is enabled.  FIXME.  This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],[
+AC_OUTPUT_COMMANDS([
+test x"$AMDEP_TRUE" != x"" ||
+for mf in $CONFIG_FILES; do
+  case "$mf" in
+  Makefile) dirpart=.;;
+  */Makefile) dirpart=`echo "$mf" | sed -e 's|/[^/]*$||'`;;
+  *) continue;;
+  esac
+  grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
+  # Extract the definition of DEP_FILES from the Makefile without
+  # running `make'.
+  DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
+  test -z "$DEPDIR" && continue
+  # When using ansi2knr, U may be empty or an underscore; expand it
+  U=`sed -n -e '/^U = / s///p' < "$mf"`
+  test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
+  # We invoke sed twice because it is the simplest approach to
+  # changing $(DEPDIR) to its actual value in the expansion.
+  for file in `sed -n -e '
+    /^DEP_FILES = .*\\\\$/ {
+      s/^DEP_FILES = //
+      :loop
+	s/\\\\$//
+	p
+	n
+	/\\\\$/ b loop
+      p
+    }
+    /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+    # Make sure the directory exists.
+    test -f "$dirpart/$file" && continue
+    fdir=`echo "$file" | sed -e 's|/[^/]*$||'`
+    $ac_aux_dir/mkinstalldirs "$dirpart/$fdir" > /dev/null 2>&1
+    # echo "creating $dirpart/$file"
+    echo '# dummy' > "$dirpart/$file"
+  done
+done
+], [AMDEP_TRUE="$AMDEP_TRUE"
+ac_aux_dir="$ac_aux_dir"])])
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+doit:
+	@echo done
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include='#'
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then
+   am__include=include
+   am__quote=
+   _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+      am__include=.include
+      am__quote='"'
+      _am_result=BSD
+   fi
+fi
+AC_SUBST(am__include)
+AC_SUBST(am__quote)
+AC_MSG_RESULT($_am_result)
+rm -f confinc confmf
+])
+
+# serial 3
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+#
+# FIXME: Once using 2.50, use this:
+# m4_match([$1], [^TRUE\|FALSE$], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_DEFUN([AM_CONDITIONAL],
+[ifelse([$1], [TRUE],
+        [errprint(__file__:__line__: [$0: invalid condition: $1
+])dnl
+m4exit(1)])dnl
+ifelse([$1], [FALSE],
+       [errprint(__file__:__line__: [$0: invalid condition: $1
+])dnl
+m4exit(1)])dnl
+AC_SUBST([$1_TRUE])
+AC_SUBST([$1_FALSE])
+if $2; then
+  $1_TRUE=
+  $1_FALSE='#'
+else
+  $1_TRUE='#'
+  $1_FALSE=
+fi])
+
 # Like AC_CONFIG_HEADER, but automatically create stamp file.
 
+# serial 3
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated.  We must strip everything past the first ":",
+# and everything past the last "/".
+
+AC_PREREQ([2.12])
+
 AC_DEFUN([AM_CONFIG_HEADER],
-[AC_PREREQ([2.12])
-AC_CONFIG_HEADER([$1])
-dnl When config.status generates a header, we must update the stamp-h file.
-dnl This file resides in the same directory as the config header
-dnl that is generated.  We must strip everything past the first ":",
-dnl and everything past the last "/".
-AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
-ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
-<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
-<<am_indx=1
-for am_file in <<$1>>; do
-  case " <<$>>CONFIG_HEADERS " in
-  *" <<$>>am_file "*<<)>>
-    echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
+[ifdef([AC_FOREACH],dnl
+	 [dnl init our file count if it isn't already
+	 m4_ifndef([_AM_Config_Header_Index], m4_define([_AM_Config_Header_Index], [0]))
+	 dnl prepare to store our destination file list for use in config.status
+	 AC_FOREACH([_AM_File], [$1],
+		    [m4_pushdef([_AM_Dest], m4_patsubst(_AM_File, [:.*]))
+		    m4_define([_AM_Config_Header_Index], m4_incr(_AM_Config_Header_Index))
+		    dnl and add it to the list of files AC keeps track of, along
+		    dnl with our hook
+		    AC_CONFIG_HEADERS(_AM_File,
+dnl COMMANDS, [, INIT-CMDS]
+[# update the timestamp
+echo timestamp >"AS_ESCAPE(_AM_DIRNAME(]_AM_Dest[))/stamp-h]_AM_Config_Header_Index["
+][$2]m4_ifval([$3], [, [$3]]))dnl AC_CONFIG_HEADERS
+		    m4_popdef([_AM_Dest])])],dnl
+[AC_CONFIG_HEADER([$1])
+  AC_OUTPUT_COMMANDS(
+   ifelse(patsubst([$1], [[^ ]], []),
+	  [],
+	  [test -z "$CONFIG_HEADERS" || echo timestamp >dnl
+	   patsubst([$1], [^\([^:]*/\)?.*], [\1])stamp-h]),dnl
+[am_indx=1
+for am_file in $1; do
+  case " \$CONFIG_HEADERS " in
+  *" \$am_file "*)
+    am_dir=\`echo \$am_file |sed 's%:.*%%;s%[^/]*\$%%'\`
+    if test -n "\$am_dir"; then
+      am_tmpdir=\`echo \$am_dir |sed 's%^\(/*\).*\$%\1%'\`
+      for am_subdir in \`echo \$am_dir |sed 's%/% %'\`; do
+        am_tmpdir=\$am_tmpdir\$am_subdir/
+        if test ! -d \$am_tmpdir; then
+          mkdir \$am_tmpdir
+        fi
+      done
+    fi
+    echo timestamp > "\$am_dir"stamp-h\$am_indx
     ;;
   esac
-  am_indx=`expr "<<$>>am_indx" + 1`
-done<<>>dnl>>)
-changequote([,]))])
+  am_indx=\`expr \$am_indx + 1\`
+done])
+])]) # AM_CONFIG_HEADER
+
+# _AM_DIRNAME(PATH)
+# -----------------
+# Like AS_DIRNAME, only do it during macro expansion
+AC_DEFUN([_AM_DIRNAME],
+       [m4_if(m4_regexp([$1], [^.*[^/]//*[^/][^/]*/*$]), -1,
+	      m4_if(m4_regexp([$1], [^//\([^/]\|$\)]), -1,
+		    m4_if(m4_regexp([$1], [^/.*]), -1,
+			  [.],
+			  m4_patsubst([$1], [^\(/\).*], [\1])),
+		    m4_patsubst([$1], [^\(//\)\([^/].*\|$\)], [\1])),
+	      m4_patsubst([$1], [^\(.*[^/]\)//*[^/][^/]*/*$], [\1]))[]dnl
+]) # _AM_DIRNAME
 
diff --git a/bgpd/Makefile.in b/bgpd/Makefile.in
index 5d41a1f..25878ca 100644
--- a/bgpd/Makefile.in
+++ b/bgpd/Makefile.in
@@ -1,6 +1,7 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.5 from Makefile.am.
 
-# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# 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.
@@ -10,6 +11,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+@SET_MAKE@
 
 SHELL = @SHELL@
 
@@ -31,13 +33,9 @@
 mandir = @mandir@
 includedir = @includedir@
 oldincludedir = /usr/include
-
-DESTDIR =
-
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-
 top_builddir = ..
 
 ACLOCAL = @ACLOCAL@
@@ -46,11 +44,11 @@
 AUTOHEADER = @AUTOHEADER@
 
 INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
 transform = @program_transform_name@
-
 NORMAL_INSTALL = :
 PRE_INSTALL = :
 POST_INSTALL = :
@@ -59,21 +57,27 @@
 POST_UNINSTALL = :
 host_alias = @host_alias@
 host_triplet = @host@
+AMTAR = @AMTAR@
 AR = @AR@
+AWK = @AWK@
 BGPD = @BGPD@
 CC = @CC@
 CPP = @CPP@
 CURSES = @CURSES@
+DEPDIR = @DEPDIR@
+EXEEXT = @EXEEXT@
 IF_METHOD = @IF_METHOD@
 IF_PROC = @IF_PROC@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 IPFORWARD = @IPFORWARD@
 KERNEL_METHOD = @KERNEL_METHOD@
 LIBPAM = @LIBPAM@
 LIB_IPV6 = @LIB_IPV6@
 LIB_REGEX = @LIB_REGEX@
-MAKEINFO = @MAKEINFO@
 MULTIPATH_NUM = @MULTIPATH_NUM@
+OBJEXT = @OBJEXT@
 OSPF6D = @OSPF6D@
+OSPFAPI = @OSPFAPI@
 OSPFCLIENT = @OSPFCLIENT@
 OSPFD = @OSPFD@
 OTHER_METHOD = @OTHER_METHOD@
@@ -86,6 +90,9 @@
 VERSION = @VERSION@
 VTYSH = @VTYSH@
 ZEBRA = @ZEBRA@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
 
 INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
 DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
@@ -119,288 +126,307 @@
 sysconf_DATA = bgpd.conf.sample bgpd.conf.sample2
 
 EXTRA_DIST = $(sysconf_DATA) BGP4-MIB.txt
+subdir = bgpd
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../config.h
-CONFIG_CLEAN_FILES = 
-LIBRARIES =  $(noinst_LIBRARIES)
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
 
+libbgp_a_AR = $(AR) cru
+libbgp_a_LIBADD =
+am_libbgp_a_OBJECTS = bgpd.$(OBJEXT) bgp_fsm.$(OBJEXT) \
+	bgp_aspath.$(OBJEXT) bgp_community.$(OBJEXT) bgp_attr.$(OBJEXT) \
+	bgp_debug.$(OBJEXT) bgp_route.$(OBJEXT) bgp_zebra.$(OBJEXT) \
+	bgp_open.$(OBJEXT) bgp_routemap.$(OBJEXT) bgp_packet.$(OBJEXT) \
+	bgp_network.$(OBJEXT) bgp_filter.$(OBJEXT) bgp_regex.$(OBJEXT) \
+	bgp_clist.$(OBJEXT) bgp_dump.$(OBJEXT) bgp_snmp.$(OBJEXT) \
+	bgp_ecommunity.$(OBJEXT) bgp_mplsvpn.$(OBJEXT) \
+	bgp_nexthop.$(OBJEXT) bgp_damp.$(OBJEXT) bgp_table.$(OBJEXT) \
+	bgp_advertise.$(OBJEXT) bgp_vty.$(OBJEXT)
+libbgp_a_OBJECTS = $(am_libbgp_a_OBJECTS)
+sbin_PROGRAMS = bgpd$(EXEEXT)
+PROGRAMS = $(sbin_PROGRAMS)
+
+am_bgpd_OBJECTS = bgp_main.$(OBJEXT) bgpd.$(OBJEXT) bgp_fsm.$(OBJEXT) \
+	bgp_aspath.$(OBJEXT) bgp_community.$(OBJEXT) bgp_attr.$(OBJEXT) \
+	bgp_debug.$(OBJEXT) bgp_route.$(OBJEXT) bgp_zebra.$(OBJEXT) \
+	bgp_open.$(OBJEXT) bgp_routemap.$(OBJEXT) bgp_packet.$(OBJEXT) \
+	bgp_network.$(OBJEXT) bgp_filter.$(OBJEXT) bgp_regex.$(OBJEXT) \
+	bgp_clist.$(OBJEXT) bgp_dump.$(OBJEXT) bgp_snmp.$(OBJEXT) \
+	bgp_ecommunity.$(OBJEXT) bgp_mplsvpn.$(OBJEXT) \
+	bgp_nexthop.$(OBJEXT) bgp_damp.$(OBJEXT) bgp_table.$(OBJEXT) \
+	bgp_advertise.$(OBJEXT) bgp_vty.$(OBJEXT)
+bgpd_OBJECTS = $(am_bgpd_OBJECTS)
+bgpd_DEPENDENCIES = ../lib/libzebra.a
+bgpd_LDFLAGS =
+DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
 CPPFLAGS = @CPPFLAGS@
 LDFLAGS = @LDFLAGS@
 LIBS = @LIBS@
-libbgp_a_LIBADD = 
-libbgp_a_OBJECTS =  bgpd.o bgp_fsm.o bgp_aspath.o bgp_community.o \
-bgp_attr.o bgp_debug.o bgp_route.o bgp_zebra.o bgp_open.o \
-bgp_routemap.o bgp_packet.o bgp_network.o bgp_filter.o bgp_regex.o \
-bgp_clist.o bgp_dump.o bgp_snmp.o bgp_ecommunity.o bgp_mplsvpn.o \
-bgp_nexthop.o bgp_damp.o bgp_table.o bgp_advertise.o bgp_vty.o
-PROGRAMS =  $(sbin_PROGRAMS)
-
-bgpd_OBJECTS =  bgp_main.o bgpd.o bgp_fsm.o bgp_aspath.o bgp_community.o \
-bgp_attr.o bgp_debug.o bgp_route.o bgp_zebra.o bgp_open.o \
-bgp_routemap.o bgp_packet.o bgp_network.o bgp_filter.o bgp_regex.o \
-bgp_clist.o bgp_dump.o bgp_snmp.o bgp_ecommunity.o bgp_mplsvpn.o \
-bgp_nexthop.o bgp_damp.o bgp_table.o bgp_advertise.o bgp_vty.o
-bgpd_DEPENDENCIES =  ../lib/libzebra.a
-bgpd_LDFLAGS = 
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/bgp_advertise.Po \
+@AMDEP_TRUE@	$(DEPDIR)/bgp_aspath.Po $(DEPDIR)/bgp_attr.Po \
+@AMDEP_TRUE@	$(DEPDIR)/bgp_clist.Po $(DEPDIR)/bgp_community.Po \
+@AMDEP_TRUE@	$(DEPDIR)/bgp_damp.Po $(DEPDIR)/bgp_debug.Po \
+@AMDEP_TRUE@	$(DEPDIR)/bgp_dump.Po $(DEPDIR)/bgp_ecommunity.Po \
+@AMDEP_TRUE@	$(DEPDIR)/bgp_filter.Po $(DEPDIR)/bgp_fsm.Po \
+@AMDEP_TRUE@	$(DEPDIR)/bgp_main.Po $(DEPDIR)/bgp_mplsvpn.Po \
+@AMDEP_TRUE@	$(DEPDIR)/bgp_network.Po $(DEPDIR)/bgp_nexthop.Po \
+@AMDEP_TRUE@	$(DEPDIR)/bgp_open.Po $(DEPDIR)/bgp_packet.Po \
+@AMDEP_TRUE@	$(DEPDIR)/bgp_regex.Po $(DEPDIR)/bgp_route.Po \
+@AMDEP_TRUE@	$(DEPDIR)/bgp_routemap.Po $(DEPDIR)/bgp_snmp.Po \
+@AMDEP_TRUE@	$(DEPDIR)/bgp_table.Po $(DEPDIR)/bgp_vty.Po \
+@AMDEP_TRUE@	$(DEPDIR)/bgp_zebra.Po $(DEPDIR)/bgpd.Po
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-DATA =  $(sysconf_DATA)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+CFLAGS = @CFLAGS@
+DIST_SOURCES = $(libbgp_a_SOURCES) $(bgpd_SOURCES)
+DATA = $(sysconf_DATA)
 
-HEADERS =  $(noinst_HEADERS)
+HEADERS = $(noinst_HEADERS)
 
-DIST_COMMON =  ChangeLog Makefile.am Makefile.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = gtar
-GZIP_ENV = --best
-DEP_FILES =  .deps/bgp_advertise.P .deps/bgp_aspath.P .deps/bgp_attr.P \
-.deps/bgp_clist.P .deps/bgp_community.P .deps/bgp_damp.P \
-.deps/bgp_debug.P .deps/bgp_dump.P .deps/bgp_ecommunity.P \
-.deps/bgp_filter.P .deps/bgp_fsm.P .deps/bgp_main.P .deps/bgp_mplsvpn.P \
-.deps/bgp_network.P .deps/bgp_nexthop.P .deps/bgp_open.P \
-.deps/bgp_packet.P .deps/bgp_regex.P .deps/bgp_route.P \
-.deps/bgp_routemap.P .deps/bgp_snmp.P .deps/bgp_table.P .deps/bgp_vty.P \
-.deps/bgp_zebra.P .deps/bgpd.P
+DIST_COMMON = $(noinst_HEADERS) ChangeLog Makefile.am Makefile.in
 SOURCES = $(libbgp_a_SOURCES) $(bgpd_SOURCES)
-OBJECTS = $(libbgp_a_OBJECTS) $(bgpd_OBJECTS)
 
-all: all-redirect
+all: all-am
+
 .SUFFIXES:
-.SUFFIXES: .S .c .o .s
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --foreign bgpd/Makefile
+.SUFFIXES: .c .o .obj
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign  bgpd/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) && \
+	  CONFIG_HEADERS= CONFIG_LINKS= \
+	  CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
 
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
-	cd $(top_builddir) \
-	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-
-mostlyclean-noinstLIBRARIES:
+AR = ar
 
 clean-noinstLIBRARIES:
 	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-
-distclean-noinstLIBRARIES:
-
-maintainer-clean-noinstLIBRARIES:
-
-.s.o:
-	$(COMPILE) -c $<
-
-.S.o:
-	$(COMPILE) -c $<
-
-mostlyclean-compile:
-	-rm -f *.o core *.core
-
-clean-compile:
-
-distclean-compile:
-	-rm -f *.tab.c
-
-maintainer-clean-compile:
-
-libbgp.a: $(libbgp_a_OBJECTS) $(libbgp_a_DEPENDENCIES)
+libbgp.a: $(libbgp_a_OBJECTS) $(libbgp_a_DEPENDENCIES) 
 	-rm -f libbgp.a
-	$(AR) cru libbgp.a $(libbgp_a_OBJECTS) $(libbgp_a_LIBADD)
+	$(libbgp_a_AR) libbgp.a $(libbgp_a_OBJECTS) $(libbgp_a_LIBADD)
 	$(RANLIB) libbgp.a
-
-mostlyclean-sbinPROGRAMS:
-
-clean-sbinPROGRAMS:
-	-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
-
-distclean-sbinPROGRAMS:
-
-maintainer-clean-sbinPROGRAMS:
-
 install-sbinPROGRAMS: $(sbin_PROGRAMS)
 	@$(NORMAL_INSTALL)
 	$(mkinstalldirs) $(DESTDIR)$(sbindir)
 	@list='$(sbin_PROGRAMS)'; for p in $$list; do \
-	  if test -f $$p; then \
-	    echo "  $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
-	     $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  if test -f $$p \
+	  ; then \
+	    f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f"; \
+	   $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f; \
 	  else :; fi; \
 	done
 
 uninstall-sbinPROGRAMS:
 	@$(NORMAL_UNINSTALL)
-	list='$(sbin_PROGRAMS)'; for p in $$list; do \
-	  rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+	@list='$(sbin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+	  echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
+	  rm -f $(DESTDIR)$(sbindir)/$$f; \
 	done
 
-bgpd: $(bgpd_OBJECTS) $(bgpd_DEPENDENCIES)
-	@rm -f bgpd
+clean-sbinPROGRAMS:
+	-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
+bgpd$(EXEEXT): $(bgpd_OBJECTS) $(bgpd_DEPENDENCIES) 
+	@rm -f bgpd$(EXEEXT)
 	$(LINK) $(bgpd_LDFLAGS) $(bgpd_OBJECTS) $(bgpd_LDADD) $(LIBS)
 
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT) core *.core
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_advertise.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_aspath.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_attr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_clist.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_community.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_damp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_debug.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_dump.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_ecommunity.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_filter.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_fsm.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_mplsvpn.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_network.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_nexthop.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_open.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_packet.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_regex.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_route.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_routemap.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_snmp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_table.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_vty.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgp_zebra.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/bgpd.Po@am__quote@
+
+distclean-depend:
+	-rm -rf $(DEPDIR)
+
+.c.o:
+@AMDEP_TRUE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+	$(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
+
+.c.obj:
+@AMDEP_TRUE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+	$(COMPILE) -c `cygpath -w $<`
+CCDEPMODE = @CCDEPMODE@
+uninstall-info-am:
+
 uninstall-sysconfDATA:
 	@$(NORMAL_UNINSTALL)
-	list='$(sysconf_DATA)'; for p in $$list; do \
-	  rm -f $(DESTDIR)$(sysconfdir)/$$p; \
+	@list='$(sysconf_DATA)'; for p in $$list; do \
+	  f="`echo $$p | sed -e 's|^.*/||'`"; \
+	  echo " rm -f $(DESTDIR)$(sysconfdir)/$$f"; \
+	  rm -f $(DESTDIR)$(sysconfdir)/$$f; \
 	done
 
 tags: TAGS
 
-ID: $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
-	here=`pwd` && cd $(srcdir) \
-	  && mkid -f$$here/ID $$unique $(LISP)
+	mkid -fID $$unique $(LISP)
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
 	tags=; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+	list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
 	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
-	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+	  || etags $(ETAGS_ARGS) $$tags  $$unique $(LISP)
 
-mostlyclean-tags:
-
-clean-tags:
+GTAGS:
+	here=`CDPATH=: && cd $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
 
 distclean-tags:
-	-rm -f TAGS ID
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
 
-maintainer-clean-tags:
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = bgpd
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 
 distdir: $(DISTFILES)
-	here=`cd $(top_builddir) && pwd`; \
-	top_distdir=`cd $(top_distdir) && pwd`; \
-	distdir=`cd $(distdir) && pwd`; \
-	cd $(top_srcdir) \
-	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign bgpd/Makefile
 	@for file in $(DISTFILES); do \
-	  d=$(srcdir); \
+	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    $(mkinstalldirs) "$(distdir)/$$dir"; \
+	  fi; \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$d/$$file $(distdir)/$$file; \
+	    cp -pR $$d/$$file $(distdir) \
+	    || exit 1; \
 	  else \
 	    test -f $(distdir)/$$file \
-	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
 	  fi; \
 	done
-
-DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-
--include $(DEP_FILES)
-
-mostlyclean-depend:
-
-clean-depend:
-
-distclean-depend:
-	-rm -rf .deps
-
-maintainer-clean-depend:
-
-%.o: %.c
-	@echo '$(COMPILE) -c $<'; \
-	$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-	@-cp .deps/$(*F).pp .deps/$(*F).P; \
-	tr ' ' '\012' < .deps/$(*F).pp \
-	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-	    >> .deps/$(*F).P; \
-	rm .deps/$(*F).pp
-
-%.lo: %.c
-	@echo '$(LTCOMPILE) -c $<'; \
-	$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-	@-sed -e 's/^\([^:]*\)\.o[ 	]*:/\1.lo \1.o :/' \
-	  < .deps/$(*F).pp > .deps/$(*F).P; \
-	tr ' ' '\012' < .deps/$(*F).pp \
-	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-	    >> .deps/$(*F).P; \
-	rm -f .deps/$(*F).pp
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
 check-am: all-am
 check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am: install-sbinPROGRAMS install-sysconfDATA
-install-exec: install-exec-am
+all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
 
-install-data-am:
+installdirs:
+	$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
+
+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
-install: install-am
-uninstall-am: uninstall-sbinPROGRAMS uninstall-sysconfDATA
-uninstall: uninstall-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
-all-redirect: all-am
+
+installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-	$(mkinstalldirs)  $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
-
-
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 mostlyclean-generic:
 
 clean-generic:
 
 distclean-generic:
-	-rm -f Makefile $(CONFIG_CLEAN_FILES)
-	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+	-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
 
 maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
-		mostlyclean-sbinPROGRAMS mostlyclean-tags \
-		mostlyclean-depend mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am:  clean-noinstLIBRARIES clean-compile clean-sbinPROGRAMS \
-		clean-tags clean-depend clean-generic mostlyclean-am
-
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
 clean: clean-am
 
-distclean-am:  distclean-noinstLIBRARIES distclean-compile \
-		distclean-sbinPROGRAMS distclean-tags distclean-depend \
-		distclean-generic clean-am
+clean-am: clean-generic clean-noinstLIBRARIES clean-sbinPROGRAMS \
+	mostlyclean-am
 
 distclean: distclean-am
 
-maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
-		maintainer-clean-compile maintainer-clean-sbinPROGRAMS \
-		maintainer-clean-tags maintainer-clean-depend \
-		maintainer-clean-generic distclean-am
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
+distclean-am: clean-am distclean-compile distclean-depend \
+	distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am: install-sbinPROGRAMS install-sysconfDATA
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
 
 maintainer-clean: maintainer-clean-am
 
-.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
-clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
-mostlyclean-compile distclean-compile clean-compile \
-maintainer-clean-compile mostlyclean-sbinPROGRAMS \
-distclean-sbinPROGRAMS clean-sbinPROGRAMS maintainer-clean-sbinPROGRAMS \
-uninstall-sbinPROGRAMS install-sbinPROGRAMS uninstall-sysconfDATA \
-install-sysconfDATA tags mostlyclean-tags distclean-tags clean-tags \
-maintainer-clean-tags distdir mostlyclean-depend distclean-depend \
-clean-depend maintainer-clean-depend info-am info dvi-am dvi check \
-check-am installcheck-am installcheck install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+uninstall-am: uninstall-info-am uninstall-sbinPROGRAMS \
+	uninstall-sysconfDATA
+
+.PHONY: GTAGS all all-am check check-am clean clean-generic \
+	clean-noinstLIBRARIES clean-sbinPROGRAMS distclean \
+	distclean-compile distclean-depend distclean-generic \
+	distclean-tags 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-sbinPROGRAMS install-strip install-sysconfDATA \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic tags uninstall uninstall-am \
+	uninstall-info-am uninstall-sbinPROGRAMS uninstall-sysconfDATA
 
 
 install-sysconfDATA: $(sysconf_DATA)
@@ -415,7 +441,6 @@
 	    $(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \
 	  fi; fi; \
 	done
-
 # 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/config.h.in b/config.h.in
index 5895851..afe2b5d 100644
--- a/config.h.in
+++ b/config.h.in
@@ -1,24 +1,21 @@
-/* config.h.in.  Generated automatically from configure.in by autoheader.  */
+/* config.h.in.  Generated from configure.ac by autoheader.  */
+/* accconfig.h -- `autoheader' will generate config.h.in for zebra.
+   Copyright (C) 1998, 1999 Kunihiro Ishiguro <kunihiro@zebra.org> */
 
-/* Define if on AIX 3.
-   System headers sometimes define this.
-   We just want to avoid a redefinition error message.  */
-#ifndef _ALL_SOURCE
-#undef _ALL_SOURCE
-#endif
+/* Version of GNU Zebra */
+#undef VERSION
 
-/* Define to empty if the keyword does not work.  */
-#undef const
+/* Solaris on x86. */
+#undef SOLARIS_X86
 
-/* Define as the return type of signal handlers (int or void).  */
-#undef RETSIGTYPE
+/* Package name of GNU Zebra */
+#undef PACKAGE
 
-/* Define if you have the ANSI C header files.  */
-#undef STDC_HEADERS
+/* Define if host is GNU/Linux */
+#undef GNU_LINUX
 
-/* Define if your processor stores words with the most significant
-   byte first (like Motorola and SPARC, unlike Intel and VAX).  */
-#undef WORDS_BIGENDIAN
+/* Define if you have the AF_ROUTE socket.  */
+#undef HAVE_AF_ROUTE
 
 /* Define if you have the inet_aton function.  */
 #undef HAVE_INET_ATON
@@ -29,12 +26,123 @@
 /* Define if you have the inet_pton function.  */
 #undef HAVE_INET_PTON
 
+/* Define if you have the setproctitle function.  */
+#undef HAVE_SETPROCTITLE
+
 /* Define if you have ipv6 stack.  */
 #undef HAVE_IPV6
 
+/* Define if you wish to support ipv6 router advertisment.  */
+/* #undef HAVE_RTADV */
+
+/* whether system has GNU regex */
+#undef HAVE_GNU_REGEX
+
+/* whether system has SNMP library */
+#undef HAVE_SNMP
+
+/* whether sockaddr has a sa_len field */
+#undef HAVE_SA_LEN
+
+/* whether sockaddr_in has a sin_len field */
+#undef HAVE_SIN_LEN
+
+/* whether sockaddr_un has a sun_len field */
+#undef HAVE_SUN_LEN
+
+/* whether sockaddr_in6 has a sin6_scope_id field */
+#undef HAVE_SIN6_SCOPE_ID
+
+/* Define if there is socklen_t. */
+#undef HAVE_SOCKLEN_T
+
+/* Define if there is sockaddr_dl structure. */
+#undef HAVE_SOCKADDR_DL
+
+/* Define if there is ifaliasreq structure. */
+#undef HAVE_IFALIASREQ
+
+/* Define if there is in6_aliasreq structure. */
+#undef HAVE_IN6_ALIASREQ
+
+/* Define if there is rt_addrinfo structure. */
+#undef HAVE_RT_ADDRINFO
+
+/* Define if there is in_pktinfo structure. */
+#undef HAVE_INPKTINFO
+
+/* Define if you have the getrusage function. */
+#undef HAVE_RUSAGE
+
+/* Define if /proc/net/dev exists. */
+#undef HAVE_PROC_NET_DEV
+
+/* Define if /proc/net/if_inet6 exists. */
+#undef HAVE_PROC_NET_IF_INET6
+
+/* Define if NET_RT_IFLIST exists in sys/socket.h. */
+#undef HAVE_NET_RT_IFLIST
+
+/* Define if you have INRIA ipv6 stack.  */
+#undef INRIA_IPV6
+
+/* Define if you have KAME project ipv6 stack.  */
+#undef KAME
+
+/* Define if you have Linux ipv6 stack.  */
+#undef LINUX_IPV6
+
+/* Define if you have NRL ipv6 stack.  */
+#undef NRL
+
+/* Define if you have BSDI NRL IPv6 stack. */
+#undef BSDI_NRL
+
+/* Define if one-vty option is specified. */
+#undef VTYSH
+
+/* Define if interface aliases don't have distinct indeces */
+#undef HAVE_BROKEN_ALIASES
+
+/* Define if disable-bgp-announce option is specified. */
+#undef DISABLE_BGP_ANNOUNCE
+
 /* PAM support */
 #undef USE_PAM
 
+/* TCP/IP communication between zebra and protocol daemon. */
+#undef HAVE_TCP_ZEBRA
+
+/* The OSPF NSSA option (RFC1587). */
+#undef HAVE_NSSA
+
+/* The OSPF Opaque LSA option (RFC2370). */
+#undef HAVE_OPAQUE_LSA
+
+/* Traffic Engineering Extension to OSPF
+   (draft-katz-yeung-ospf-traffic-06.txt). */
+#undef HAVE_OSPF_TE
+
+/* Linux netlink. */
+#undef HAVE_NETLINK
+
+/* PATHS */
+#undef PATH_ZEBRA_PID
+#undef PATH_RIPD_PID
+#undef PATH_RIPNGD_PID
+#undef PATH_BGPD_PID
+#undef PATH_OSPFD_PID
+#undef PATH_OSPF6D_PID
+
+/* Define if Solaris */
+#undef SUNOS_5
+
+/* Define if FreeBSD 3.2 */
+#undef FREEBSD_32
+
+/* Define if OpenBSD */
+#undef OPEN_BSD
+
 #ifdef HAVE_IPV6
 #ifdef KAME
 #ifndef INET6
@@ -43,296 +151,300 @@
 #endif /* KAME */
 #endif /* HAVE_IPV6 */
 
-/* Define if you have the bcopy function.  */
-#undef HAVE_BCOPY
+#ifdef SUNOS_5
+typedef unsigned int u_int32_t; 
+typedef unsigned short u_int16_t; 
+typedef unsigned short u_int8_t; 
+#endif /* SUNOS_5 */
 
-/* Define if you have the bzero function.  */
-#undef HAVE_BZERO
-
-/* Define if you have the daemon function.  */
-#undef HAVE_DAEMON
-
-/* Define if you have the getaddrinfo function.  */
-#undef HAVE_GETADDRINFO
-
-/* Define if you have the getifaddrs function.  */
-#undef HAVE_GETIFADDRS
-
-/* Define if you have the if_indextoname function.  */
-#undef HAVE_IF_INDEXTONAME
-
-/* Define if you have the if_nametoindex function.  */
-#undef HAVE_IF_NAMETOINDEX
-
-/* Define if you have the inet_aton function.  */
-#undef HAVE_INET_ATON
-
-/* Define if you have the setproctitle function.  */
-#undef HAVE_SETPROCTITLE
-
-/* Define if you have the snprintf function.  */
-#undef HAVE_SNPRINTF
-
-/* Define if you have the strerror function.  */
-#undef HAVE_STRERROR
-
-/* Define if you have the strlcat function.  */
-#undef HAVE_STRLCAT
-
-/* Define if you have the strlcpy function.  */
-#undef HAVE_STRLCPY
-
-/* Define if you have the vsnprintf function.  */
-#undef HAVE_VSNPRINTF
-
-/* Define if you have the <asm/types.h> header file.  */
-#undef HAVE_ASM_TYPES_H
-
-/* Define if you have the <inet/nd.h> header file.  */
-#undef HAVE_INET_ND_H
-
-/* Define if you have the <kvm.h> header file.  */
-#undef HAVE_KVM_H
-
-/* Define if you have the <libutil.h> header file.  */
-#undef HAVE_LIBUTIL_H
-
-/* Define if you have the <linux/version.h> header file.  */
-#undef HAVE_LINUX_VERSION_H
-
-/* Define if you have the <net/if_dl.h> header file.  */
-#undef HAVE_NET_IF_DL_H
-
-/* Define if you have the <net/if_var.h> header file.  */
-#undef HAVE_NET_IF_VAR_H
-
-/* Define if you have the <net/netopt.h> header file.  */
-#undef HAVE_NET_NETOPT_H
-
-/* Define if you have the <netdb.h> header file.  */
-#undef HAVE_NETDB_H
-
-/* Define if you have the <netinet/icmp6.h> header file.  */
-#undef HAVE_NETINET_ICMP6_H
-
-/* Define if you have the <netinet/in.h> header file.  */
-#undef HAVE_NETINET_IN_H
-
-/* Define if you have the <netinet/in6.h> header file.  */
-#undef HAVE_NETINET_IN6_H
-
-/* Define if you have the <netinet/in6_var.h> header file.  */
-#undef HAVE_NETINET_IN6_VAR_H
-
-/* Define if you have the <netinet/in_var.h> header file.  */
-#undef HAVE_NETINET_IN_VAR_H
-
-/* Define if you have the <netinet6/nd6.h> header file.  */
-#undef HAVE_NETINET6_ND6_H
-
-/* Define if you have the <string.h> header file.  */
-#undef HAVE_STRING_H
-
-/* Define if you have the <stropts.h> header file.  */
-#undef HAVE_STROPTS_H
-
-/* Define if you have the <sys/conf.h> header file.  */
-#undef HAVE_SYS_CONF_H
-
-/* Define if you have the <sys/ksym.h> header file.  */
-#undef HAVE_SYS_KSYM_H
-
-/* Define if you have the <sys/select.h> header file.  */
-#undef HAVE_SYS_SELECT_H
-
-/* Define if you have the <sys/sockio.h> header file.  */
-#undef HAVE_SYS_SOCKIO_H
-
-/* Define if you have the <sys/sysctl.h> header file.  */
-#undef HAVE_SYS_SYSCTL_H
-
-/* Define if you have the <sys/time.h> header file.  */
-#undef HAVE_SYS_TIME_H
-
-/* Define if you have the <sys/times.h> header file.  */
-#undef HAVE_SYS_TIMES_H
-
-/* Define if you have the <sys/types.h> header file.  */
-#undef HAVE_SYS_TYPES_H
-
-/* Define if you have the crypt library (-lcrypt).  */
-#undef HAVE_LIBCRYPT
-
-/* Define if you have the kvm library (-lkvm).  */
-#undef HAVE_LIBKVM
-
-/* Define if you have the m library (-lm).  */
-#undef HAVE_LIBM
-
-/* Define if you have the nsl library (-lnsl).  */
-#undef HAVE_LIBNSL
-
-/* Define if you have the readline library (-lreadline).  */
-#undef HAVE_LIBREADLINE
-
-/* Define if you have the resolv library (-lresolv).  */
-#undef HAVE_LIBRESOLV
-
-/* Define if you have the socket library (-lsocket).  */
-#undef HAVE_LIBSOCKET
-
-/* Define if you have the tinfo library (-ltinfo).  */
-#undef HAVE_LIBTINFO
-
-/* Define if you have the xnet library (-lxnet).  */
-#undef HAVE_LIBXNET
-
-/* Name of package */
-#undef PACKAGE
-
-/* Version number of package */
-#undef VERSION
-
-/* Broken Alias */
-#undef HAVE_BROKEN_ALIASES
-
-/* Use TCP for zebra communication */
-#undef HAVE_TCP_ZEBRA
-
-/* OSPF NSSA */
-#undef HAVE_NSSA
-
-/* OSPF Opaque LSA */
-#undef HAVE_OPAQUE_LSA
-
-/* OSPF Opaque LSA */
-#undef HAVE_OPAQUE_LSA
-
-/* OSPF TE */
-#undef HAVE_OSPF_TE
-
-/* SunOS 5 */
-#undef SUNOS_5
-
-/* SunOS 5 */
-#undef SUNOS_5
-
-/* GNU Linux */
-#undef GNU_LINUX
-
-/* FreeBSD 3.2 */
-#undef FREEBSD_32
-
-/* OpenBSD */
-#undef OPEN_BSD
-
-/* VTY shell */
-#undef VTYSH
-
-/* Use PAM for authentication */
-#undef USE_PAM
-
-/* Use PAM for authentication */
-#undef USE_PAM
-
-/* netlink */
-#undef HAVE_NETLINK
-
-/* netlink */
-#undef HAVE_NETLINK
-
-/* NET_RT_IFLIST */
-#undef HAVE_NET_RT_IFLIST
-
-/* /proc/net/dev */
-#undef HAVE_PROC_NET_DEV
-
-/* /proc/net/if_inet6 */
-#undef HAVE_PROC_NET_IF_INET6
-
-/* IPv6 */
-#undef HAVE_IPV6
-
-/* Inria IPv6 */
-#undef INRIA_IPV6
-
-/* IPv6 */
-#undef HAVE_IPV6
-
-/* KAME IPv6 */
-#undef KAME
-
-/* IPv6 */
-#undef HAVE_IPV6
-
-/* NRL */
-#undef NRL
+#ifndef HAVE_SOCKLEN_T
+typedef int socklen_t;
+#endif /* HAVE_SOCKLEN_T */
 
 /* BSDI */
 #undef BSDI_NRL
 
-/* Linux IPv6 */
-#undef LINUX_IPV6
-
 /* Disable BGP installation to zebra */
 #undef DISABLE_BGP_ANNOUNCE
 
+/* FreeBSD 3.2 */
+#undef FREEBSD_32
+
+/* GNU Linux */
+#undef GNU_LINUX
+
+/* Define if you have the <asm/types.h> header file. */
+#undef HAVE_ASM_TYPES_H
+
+/* Define if you have the `bcopy' function. */
+#undef HAVE_BCOPY
+
+/* Broken Alias */
+#undef HAVE_BROKEN_ALIASES
+
+/* Define if you have the `bzero' function. */
+#undef HAVE_BZERO
+
+/* Define if you have the `daemon' function. */
+#undef HAVE_DAEMON
+
+/* Define if you have the `getaddrinfo' function. */
+#undef HAVE_GETADDRINFO
+
+/* Define if you have the `getifaddrs' function. */
+#undef HAVE_GETIFADDRS
+
+/* GNU regexp library */
+#undef HAVE_GNU_REGEX
+
+/* ifaliasreq */
+#undef HAVE_IFALIASREQ
+
+/* Define if you have the `if_indextoname' function. */
+#undef HAVE_IF_INDEXTONAME
+
+/* Define if you have the `if_nametoindex' function. */
+#undef HAVE_IF_NAMETOINDEX
+
+/* in6_aliasreq */
+#undef HAVE_IN6_ALIASREQ
+
+/* Define if you have the `inet_aton' function. */
+#undef HAVE_INET_ATON
+
+/* Define if you have the <inet/nd.h> header file. */
+#undef HAVE_INET_ND_H
+
 /* inet_ntop */
 #undef HAVE_INET_NTOP
 
 /* inet_pton */
 #undef HAVE_INET_PTON
 
-/* GNU regexp library */
-#undef HAVE_GNU_REGEX
+/* in_pktinfo */
+#undef HAVE_INPKTINFO
+
+/* Define if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* IPv6 */
+#undef HAVE_IPV6
+
+/* Define if you have the <kvm.h> header file. */
+#undef HAVE_KVM_H
+
+/* Define if you have the `crypt' library (-lcrypt). */
+#undef HAVE_LIBCRYPT
+
+/* Define if you have the `kvm' library (-lkvm). */
+#undef HAVE_LIBKVM
+
+/* Define if you have the `m' library (-lm). */
+#undef HAVE_LIBM
+
+/* Define if you have the `ncurses' library (-lncurses). */
+#undef HAVE_LIBNCURSES
+
+/* Define if you have the `nsl' library (-lnsl). */
+#undef HAVE_LIBNSL
+
+/* Define if you have the `readline' library (-lreadline). */
+#undef HAVE_LIBREADLINE
+
+/* Define if you have the `resolv' library (-lresolv). */
+#undef HAVE_LIBRESOLV
+
+/* Define if you have the `socket' library (-lsocket). */
+#undef HAVE_LIBSOCKET
+
+/* Define if you have the `tinfo' library (-ltinfo). */
+#undef HAVE_LIBTINFO
+
+/* Define if you have the <libutil.h> header file. */
+#undef HAVE_LIBUTIL_H
+
+/* Define if you have the `xnet' library (-lxnet). */
+#undef HAVE_LIBXNET
+
+/* Define if you have the <linux/version.h> header file. */
+#undef HAVE_LINUX_VERSION_H
+
+/* Define if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define if you have the <netdb.h> header file. */
+#undef HAVE_NETDB_H
+
+/* Define if you have the <netinet6/nd6.h> header file. */
+#undef HAVE_NETINET6_ND6_H
+
+/* Define if you have the <netinet/icmp6.h> header file. */
+#undef HAVE_NETINET_ICMP6_H
+
+/* Define if you have the <netinet/in6.h> header file. */
+#undef HAVE_NETINET_IN6_H
+
+/* Define if you have the <netinet/in6_var.h> header file. */
+#undef HAVE_NETINET_IN6_VAR_H
+
+/* Define if you have the <netinet/in.h> header file. */
+#undef HAVE_NETINET_IN_H
+
+/* Define if you have the <netinet/in_var.h> header file. */
+#undef HAVE_NETINET_IN_VAR_H
+
+/* netlink */
+#undef HAVE_NETLINK
 
 /* SNMP */
-#undef HAVE_SNMP
+#undef HAVE_NETSNMP
 
-/* SNMP */
-#undef UCD_COMPATIBLE
+/* Define if you have the <net/if_dl.h> header file. */
+#undef HAVE_NET_IF_DL_H
 
-/* SNMP */
-#undef HAVE_SNMP
+/* Define if you have the <net/if_var.h> header file. */
+#undef HAVE_NET_IF_VAR_H
 
-/* SNMP */
-#undef HAVE_SNMP
+/* Define if you have the <net/netopt.h> header file. */
+#undef HAVE_NET_NETOPT_H
 
-/* sa_len */
-#undef HAVE_SA_LEN
+/* NET_RT_IFLIST */
+#undef HAVE_NET_RT_IFLIST
 
-/* sin_len */
-#undef HAVE_SIN_LEN
+/* OSPF NSSA */
+#undef HAVE_NSSA
 
-/* sun_len */
-#undef HAVE_SUN_LEN
+/* OSPF Opaque LSA */
+#undef HAVE_OPAQUE_LSA
 
-/* scope id */
-#undef HAVE_SIN6_SCOPE_ID
+/* OSPF TE */
+#undef HAVE_OSPF_TE
 
-/* socklen_t */
-#undef HAVE_SOCKLEN_T
+/* /proc/net/dev */
+#undef HAVE_PROC_NET_DEV
 
-/* sockaddr_dl */
-#undef HAVE_SOCKADDR_DL
-
-/* ifaliasreq */
-#undef HAVE_IFALIASREQ
-
-/* in6_aliasreq */
-#undef HAVE_IN6_ALIASREQ
+/* /proc/net/if_inet6 */
+#undef HAVE_PROC_NET_IF_INET6
 
 /* rt_addrinfo */
 #undef HAVE_RT_ADDRINFO
 
-/* in_pktinfo */
-#undef HAVE_INPKTINFO
-
 /* rusage */
 #undef HAVE_RUSAGE
 
-/* zebra PID */
-#undef PATH_ZEBRA_PID
+/* sa_len */
+#undef HAVE_SA_LEN
+
+/* Define if you have the `setproctitle' function. */
+#undef HAVE_SETPROCTITLE
+
+/* scope id */
+#undef HAVE_SIN6_SCOPE_ID
+
+/* sin_len */
+#undef HAVE_SIN_LEN
+
+/* SNMP */
+#undef HAVE_SNMP
+
+/* Define if you have the `snprintf' function. */
+#undef HAVE_SNPRINTF
+
+/* sockaddr_dl */
+#undef HAVE_SOCKADDR_DL
+
+/* socklen_t */
+#undef HAVE_SOCKLEN_T
+
+/* Define if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define if you have the `strerror' function. */
+#undef HAVE_STRERROR
+
+/* Define if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define if you have the `strlcat' function. */
+#undef HAVE_STRLCAT
+
+/* Define if you have the `strlcpy' function. */
+#undef HAVE_STRLCPY
+
+/* Define if you have the <stropts.h> header file. */
+#undef HAVE_STROPTS_H
+
+/* sun_len */
+#undef HAVE_SUN_LEN
+
+/* Define if you have the <sys/conf.h> header file. */
+#undef HAVE_SYS_CONF_H
+
+/* Define if you have the <sys/ksym.h> header file. */
+#undef HAVE_SYS_KSYM_H
+
+/* Define if you have the <sys/select.h> header file. */
+#undef HAVE_SYS_SELECT_H
+
+/* Define if you have the <sys/sockio.h> header file. */
+#undef HAVE_SYS_SOCKIO_H
+
+/* Define if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define if you have the <sys/sysctl.h> header file. */
+#undef HAVE_SYS_SYSCTL_H
+
+/* Define if you have the <sys/times.h> header file. */
+#undef HAVE_SYS_TIMES_H
+
+/* Define if you have the <sys/time.h> header file. */
+#undef HAVE_SYS_TIME_H
+
+/* Define if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Use TCP for zebra communication */
+#undef HAVE_TCP_ZEBRA
+
+/* Define if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define if you have the `vsnprintf' function. */
+#undef HAVE_VSNPRINTF
+
+/* Inria IPv6 */
+#undef INRIA_IPV6
+
+/* KAME IPv6 */
+#undef KAME
+
+/* Linux IPv6 */
+#undef LINUX_IPV6
+
+/* NRL */
+#undef NRL
+
+/* OpenBSD */
+#undef OPEN_BSD
+
+/* Name of package */
+#undef PACKAGE
+
+/* bgpd PID */
+#undef PATH_BGPD_PID
+
+/* ospf6d PID */
+#undef PATH_OSPF6D_PID
+
+/* ospfd PID */
+#undef PATH_OSPFD_PID
 
 /* ripd PID */
 #undef PATH_RIPD_PID
@@ -340,12 +452,40 @@
 /* ripngd PID */
 #undef PATH_RIPNGD_PID
 
-/* bgpd PID */
-#undef PATH_BGPD_PID
+/* zebra PID */
+#undef PATH_ZEBRA_PID
 
-/* ospfd PID */
-#undef PATH_OSPFD_PID
+/* Define as the return type of signal handlers (`int' or `void'). */
+#undef RETSIGTYPE
 
-/* ospf6d PID */
-#undef PATH_OSPF6D_PID
+/* Define if you have the ANSI C header files. */
+#undef STDC_HEADERS
 
+/* SunOS 5 */
+#undef SUNOS_5
+
+/* SNMP */
+#undef UCD_COMPATIBLE
+
+/* Use PAM for authentication */
+#undef USE_PAM
+
+/* Version number of package */
+#undef VERSION
+
+/* VTY shell */
+#undef VTYSH
+
+/* Define if your processor stores words with the most significant byte first
+   (like Motorola and SPARC, unlike Intel and VAX). */
+#undef WORDS_BIGENDIAN
+
+/* Define if on AIX 3.
+   System headers sometimes define this.
+   We just want to avoid a redefinition error message.  */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
+#endif
+
+/* Define to empty if `const' does not conform to ANSI C. */
+#undef const
diff --git a/configure b/configure
index 8a9d0a8..8568dad 100755
--- a/configure
+++ b/configure
@@ -1,66 +1,159 @@
 #! /bin/sh
-
 # Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.13 
-# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+# Generated by Autoconf 2.52d.
 #
+# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
 
-# Defaults:
-ac_help=
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
+fi
+
+# Name of the executable.
+as_me=`echo "$0" |sed 's,.*[\\/],,'`
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  # We could just check for DJGPP; but this test a) works b) is more generic
+  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+  if test -f conf$$.exe; then
+    # Don't use ln at all; we don't have any links
+    as_ln_s='cp -p'
+  else
+    as_ln_s='ln -s'
+  fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+as_executable_p="test -f"
+
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+# NLS nuisances.
+$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; }
+$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; }
+$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; }
+$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; }
+$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; }
+$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; }
+$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; }
+$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; }
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" 	$as_nl"
+
+# CDPATH.
+$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+exec 6>&1
+
+#
+# Initializations.
+#
 ac_default_prefix=/usr/local
-# Any additions from configure.in:
-ac_help="$ac_help
-  --with-cflags           Set CFLAGS for use in compilation."
-ac_help="$ac_help
-  --enable-vtysh,       Make integrated VTY version of zebra"
-ac_help="$ac_help
-  --disable-ipv6          turn off IPv6 related features and daemons"
-ac_help="$ac_help
-  --disable-zebra         do not build zebra daemon"
-ac_help="$ac_help
-  --disable-bgpd          do not build bgpd"
-ac_help="$ac_help
-  --disable-ripd          do not build ripd"
-ac_help="$ac_help
-  --disable-ripngd        do not build ripngd"
-ac_help="$ac_help
-  --disable-ospfd         do not build ospfd"
-ac_help="$ac_help
-  --disable-ospfclient         do not build ospfclient"
-ac_help="$ac_help
-  --disable-ospf6d        do not build ospf6d"
-ac_help="$ac_help
-  --disable-bgp-announce, turn off BGP route announcement"
-ac_help="$ac_help
-  --enable-netlink        force to use Linux netlink interface"
-ac_help="$ac_help
-  --enable-broken-aliases enable aliases as distinct interfaces for Linux 2.2.X"
-ac_help="$ac_help
-  --enable-snmp           enable SNMP support"
-ac_help="$ac_help
-  --with-libpam           use libpam for PAM support in vtysh"
-ac_help="$ac_help
-  --enable-tcp-zebra      enable TCP/IP socket connection between zebra and protocol daemon"
-ac_help="$ac_help
-  --enable-nssa           enable OSPF NSSA option"
-ac_help="$ac_help
-  --enable-opaque-lsa     enable OSPF Opaque-LSA support (RFC2370)"
-ac_help="$ac_help
-  --enable-ospf-te        enable Traffic Engineering Extension to OSPF"
-ac_help="$ac_help
-  --enable-multipath=ARG  enable multipath function, ARG must be digit"
+cross_compiling=no
+subdirs=
+MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# Maximum number of lines to put in a shell here document.
+# This variable seems obsolete.  It should probably be removed, and
+# only ac_max_sed_lines should be used.
+: ${ac_max_here_lines=38}
+
+ac_unique_file="lib/zebra.h"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#if HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#if STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# if HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#if HAVE_STRING_H
+# if !STDC_HEADERS && HAVE_MEMORY_H
+#  include <memory.h>
+# endif
+# include <string.h>
+#endif
+#if HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#if HAVE_INTTYPES_H
+# include <inttypes.h>
+#else
+# if HAVE_STDINT_H
+#  include <stdint.h>
+# endif
+#endif
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
 
 # Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
 # The variables have the same names as the options, with
 # dashes changed to underlines.
-build=NONE
-cache_file=./config.cache
+cache_file=/dev/null
 exec_prefix=NONE
-host=NONE
 no_create=
-nonopt=NONE
 no_recursion=
 prefix=NONE
 program_prefix=NONE
@@ -69,10 +162,15 @@
 silent=
 site=
 srcdir=
-target=NONE
 verbose=
 x_includes=NONE
 x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
 bindir='${exec_prefix}/bin'
 sbindir='${exec_prefix}/sbin'
 libexecdir='${exec_prefix}/libexec'
@@ -86,17 +184,16 @@
 infodir='${prefix}/info'
 mandir='${prefix}/man'
 
-# Initialize some other variables.
-subdirs=
-MFLAGS= MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-# Maximum number of lines to put in a shell here document.
-ac_max_here_lines=12
+# Identity of this package.
+PACKAGE_NAME=
+PACKAGE_TARNAME=
+PACKAGE_VERSION=
+PACKAGE_STRING=
+PACKAGE_BUGREPORT=
 
 ac_prev=
 for ac_option
 do
-
   # If the previous option needs an argument, assign it.
   if test -n "$ac_prev"; then
     eval "$ac_prev=\$ac_option"
@@ -104,59 +201,59 @@
     continue
   fi
 
-  case "$ac_option" in
-  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
-  *) ac_optarg= ;;
-  esac
+  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
 
   # Accept the important Cygnus configure options, so we can diagnose typos.
 
-  case "$ac_option" in
+  case $ac_option in
 
   -bindir | --bindir | --bindi | --bind | --bin | --bi)
     ac_prev=bindir ;;
   -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir="$ac_optarg" ;;
+    bindir=$ac_optarg ;;
 
   -build | --build | --buil | --bui | --bu)
-    ac_prev=build ;;
+    ac_prev=build_alias ;;
   -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build="$ac_optarg" ;;
+    build_alias=$ac_optarg ;;
 
   -cache-file | --cache-file | --cache-fil | --cache-fi \
   | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
     ac_prev=cache_file ;;
   -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
   | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file="$ac_optarg" ;;
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
 
   -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
     ac_prev=datadir ;;
   -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
   | --da=*)
-    datadir="$ac_optarg" ;;
+    datadir=$ac_optarg ;;
 
   -disable-* | --disable-*)
-    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
-      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
-    fi
-    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
-    eval "enable_${ac_feature}=no" ;;
+    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+   { (exit 1); exit 1; }; }
+    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+    eval "enable_$ac_feature=no" ;;
 
   -enable-* | --enable-*)
-    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
-      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
-    fi
-    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
-    case "$ac_option" in
-      *=*) ;;
+    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+   { (exit 1); exit 1; }; }
+    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+    case $ac_option in
+      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
       *) ac_optarg=yes ;;
     esac
-    eval "enable_${ac_feature}='$ac_optarg'" ;;
+    eval "enable_$ac_feature='$ac_optarg'" ;;
 
   -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
   | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
@@ -165,95 +262,47 @@
   -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
   | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
   | --exec=* | --exe=* | --ex=*)
-    exec_prefix="$ac_optarg" ;;
+    exec_prefix=$ac_optarg ;;
 
   -gas | --gas | --ga | --g)
     # Obsolete; use --with-gas.
     with_gas=yes ;;
 
-  -help | --help | --hel | --he)
-    # Omit some internal or obsolete options to make the list less imposing.
-    # This message is too long to be a string in the A/UX 3.1 sh.
-    cat << EOF
-Usage: configure [options] [host]
-Options: [defaults in brackets after descriptions]
-Configuration:
-  --cache-file=FILE       cache test results in FILE
-  --help                  print this message
-  --no-create             do not create output files
-  --quiet, --silent       do not print \`checking...' messages
-  --version               print the version of autoconf that created configure
-Directory and file names:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-                          [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                          [same as prefix]
-  --bindir=DIR            user executables in DIR [EPREFIX/bin]
-  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]
-  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]
-  --datadir=DIR           read-only architecture-independent data in DIR
-                          [PREFIX/share]
-  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]
-  --sharedstatedir=DIR    modifiable architecture-independent data in DIR
-                          [PREFIX/com]
-  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]
-  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
-  --includedir=DIR        C header files in DIR [PREFIX/include]
-  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]
-  --infodir=DIR           info documentation in DIR [PREFIX/info]
-  --mandir=DIR            man documentation in DIR [PREFIX/man]
-  --srcdir=DIR            find the sources in DIR [configure dir or ..]
-  --program-prefix=PREFIX prepend PREFIX to installed program names
-  --program-suffix=SUFFIX append SUFFIX to installed program names
-  --program-transform-name=PROGRAM
-                          run sed PROGRAM on installed program names
-EOF
-    cat << EOF
-Host type:
-  --build=BUILD           configure for building on BUILD [BUILD=HOST]
-  --host=HOST             configure for HOST [guessed]
-  --target=TARGET         configure for TARGET [TARGET=HOST]
-Features and packages:
-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --x-includes=DIR        X include files are in DIR
-  --x-libraries=DIR       X library files are in DIR
-EOF
-    if test -n "$ac_help"; then
-      echo "--enable and --with options recognized:$ac_help"
-    fi
-    exit 0 ;;
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
 
   -host | --host | --hos | --ho)
-    ac_prev=host ;;
+    ac_prev=host_alias ;;
   -host=* | --host=* | --hos=* | --ho=*)
-    host="$ac_optarg" ;;
+    host_alias=$ac_optarg ;;
 
   -includedir | --includedir | --includedi | --included | --include \
   | --includ | --inclu | --incl | --inc)
     ac_prev=includedir ;;
   -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
   | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir="$ac_optarg" ;;
+    includedir=$ac_optarg ;;
 
   -infodir | --infodir | --infodi | --infod | --info | --inf)
     ac_prev=infodir ;;
   -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir="$ac_optarg" ;;
+    infodir=$ac_optarg ;;
 
   -libdir | --libdir | --libdi | --libd)
     ac_prev=libdir ;;
   -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir="$ac_optarg" ;;
+    libdir=$ac_optarg ;;
 
   -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
   | --libexe | --libex | --libe)
     ac_prev=libexecdir ;;
   -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
   | --libexe=* | --libex=* | --libe=*)
-    libexecdir="$ac_optarg" ;;
+    libexecdir=$ac_optarg ;;
 
   -localstatedir | --localstatedir | --localstatedi | --localstated \
   | --localstate | --localstat | --localsta | --localst \
@@ -262,12 +311,12 @@
   -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
   | --localstate=* | --localstat=* | --localsta=* | --localst=* \
   | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
-    localstatedir="$ac_optarg" ;;
+    localstatedir=$ac_optarg ;;
 
   -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
     ac_prev=mandir ;;
   -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir="$ac_optarg" ;;
+    mandir=$ac_optarg ;;
 
   -nfp | --nfp | --nf)
     # Obsolete; use --without-fp.
@@ -288,26 +337,26 @@
   -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
   | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
   | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir="$ac_optarg" ;;
+    oldincludedir=$ac_optarg ;;
 
   -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
     ac_prev=prefix ;;
   -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix="$ac_optarg" ;;
+    prefix=$ac_optarg ;;
 
   -program-prefix | --program-prefix | --program-prefi | --program-pref \
   | --program-pre | --program-pr | --program-p)
     ac_prev=program_prefix ;;
   -program-prefix=* | --program-prefix=* | --program-prefi=* \
   | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix="$ac_optarg" ;;
+    program_prefix=$ac_optarg ;;
 
   -program-suffix | --program-suffix | --program-suffi | --program-suff \
   | --program-suf | --program-su | --program-s)
     ac_prev=program_suffix ;;
   -program-suffix=* | --program-suffix=* | --program-suffi=* \
   | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix="$ac_optarg" ;;
+    program_suffix=$ac_optarg ;;
 
   -program-transform-name | --program-transform-name \
   | --program-transform-nam | --program-transform-na \
@@ -324,7 +373,7 @@
   | --program-transfo=* | --program-transf=* \
   | --program-trans=* | --program-tran=* \
   | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name="$ac_optarg" ;;
+    program_transform_name=$ac_optarg ;;
 
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
   | -silent | --silent | --silen | --sile | --sil)
@@ -334,7 +383,7 @@
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
   | --sbi=* | --sb=*)
-    sbindir="$ac_optarg" ;;
+    sbindir=$ac_optarg ;;
 
   -sharedstatedir | --sharedstatedir | --sharedstatedi \
   | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
@@ -345,58 +394,57 @@
   | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
   | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
   | --sha=* | --sh=*)
-    sharedstatedir="$ac_optarg" ;;
+    sharedstatedir=$ac_optarg ;;
 
   -site | --site | --sit)
     ac_prev=site ;;
   -site=* | --site=* | --sit=*)
-    site="$ac_optarg" ;;
+    site=$ac_optarg ;;
 
   -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
     ac_prev=srcdir ;;
   -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir="$ac_optarg" ;;
+    srcdir=$ac_optarg ;;
 
   -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
   | --syscon | --sysco | --sysc | --sys | --sy)
     ac_prev=sysconfdir ;;
   -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
   | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir="$ac_optarg" ;;
+    sysconfdir=$ac_optarg ;;
 
   -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target ;;
+    ac_prev=target_alias ;;
   -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target="$ac_optarg" ;;
+    target_alias=$ac_optarg ;;
 
   -v | -verbose | --verbose | --verbos | --verbo | --verb)
     verbose=yes ;;
 
-  -version | --version | --versio | --versi | --vers)
-    echo "configure generated by autoconf version 2.13"
-    exit 0 ;;
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
 
   -with-* | --with-*)
-    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
-      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
-    fi
+    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid package name: $ac_package" >&2
+   { (exit 1); exit 1; }; }
     ac_package=`echo $ac_package| sed 's/-/_/g'`
-    case "$ac_option" in
-      *=*) ;;
+    case $ac_option in
+      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
       *) ac_optarg=yes ;;
     esac
-    eval "with_${ac_package}='$ac_optarg'" ;;
+    eval "with_$ac_package='$ac_optarg'" ;;
 
   -without-* | --without-*)
-    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
-    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
-      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
-    fi
-    ac_package=`echo $ac_package| sed 's/-/_/g'`
-    eval "with_${ac_package}=no" ;;
+    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid package name: $ac_package" >&2
+   { (exit 1); exit 1; }; }
+    ac_package=`echo $ac_package | sed 's/-/_/g'`
+    eval "with_$ac_package=no" ;;
 
   --x)
     # Obsolete; use --with-x.
@@ -407,98 +455,98 @@
     ac_prev=x_includes ;;
   -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
   | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes="$ac_optarg" ;;
+    x_includes=$ac_optarg ;;
 
   -x-libraries | --x-libraries | --x-librarie | --x-librari \
   | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
     ac_prev=x_libraries ;;
   -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries="$ac_optarg" ;;
+    x_libraries=$ac_optarg ;;
 
-  -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+  -*) { echo "$as_me: error: unrecognized option: $ac_option
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; }
     ;;
 
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+   { (exit 1); exit 1; }; }
+    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
+    eval "$ac_envvar='$ac_optarg'"
+    export $ac_envvar ;;
+
   *)
-    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
-      echo "configure: warning: $ac_option: invalid host type" 1>&2
-    fi
-    if test "x$nonopt" != xNONE; then
-      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
-    fi
-    nonopt="$ac_option"
+    # FIXME: should be removed in autoconf 3.0.
+    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
     ;;
 
   esac
 done
 
 if test -n "$ac_prev"; then
-  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  { echo "$as_me: error: missing argument to $ac_option" >&2
+   { (exit 1); exit 1; }; }
 fi
 
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-# File descriptor usage:
-# 0 standard input
-# 1 file creation
-# 2 errors and warnings
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
-# 6 checking for... messages and results
-# 5 compiler messages saved in config.log
-if test "$silent" = yes; then
-  exec 6>/dev/null
-else
-  exec 6>&1
-fi
-exec 5>./config.log
-
-echo "\
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-" 1>&5
-
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Also quote any args containing shell metacharacters.
-ac_configure_args=
-for ac_arg
+# Be sure to have absolute paths.
+for ac_var in exec_prefix prefix
 do
-  case "$ac_arg" in
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c) ;;
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
-  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
-  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+  eval ac_val=$`echo $ac_var`
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+    *)  { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; };;
   esac
 done
 
-# NLS nuisances.
-# Only set these to C if already set.  These must not be set unconditionally
-# because not all systems understand e.g. LANG=C (notably SCO).
-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
-# Non-C LC_CTYPE values break the ctype check.
-if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
+# Be sure to have absolute paths.
+for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
+              localstatedir libdir includedir oldincludedir infodir mandir
+do
+  eval ac_val=$`echo $ac_var`
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* ) ;;
+    *)  { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; };;
+  esac
+done
 
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo > confdefs.h
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+build=$build_alias
+host=$host_alias
+target=$target_alias
 
-# A filename unique to this package, relative to the directory that
-# configure is in, which we can look for to find out if srcdir is correct.
-ac_unique_file=lib/zebra.h
+# FIXME: should be removed in autoconf 3.0.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+    If a cross compiler is detected then cross compile mode will be used." >&2
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
 
 # Find the source files, if location was not specified.
 if test -z "$srcdir"; then
   ac_srcdir_defaulted=yes
   # Try the directory containing this script, then its parent.
   ac_prog=$0
-  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+  ac_confdir=`echo "$ac_prog" | sed 's%[\\/][^\\/][^\\/]*$%%'`
   test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
   srcdir=$ac_confdir
   if test ! -r $srcdir/$ac_unique_file; then
@@ -509,13 +557,355 @@
 fi
 if test ! -r $srcdir/$ac_unique_file; then
   if test "$ac_srcdir_defaulted" = yes; then
-    { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
+   { (exit 1); exit 1; }; }
   else
-    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+   { (exit 1); exit 1; }; }
   fi
 fi
-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
+ac_env_build_alias_set=${build_alias+set}
+ac_env_build_alias_value=$build_alias
+ac_cv_env_build_alias_set=${build_alias+set}
+ac_cv_env_build_alias_value=$build_alias
+ac_env_host_alias_set=${host_alias+set}
+ac_env_host_alias_value=$host_alias
+ac_cv_env_host_alias_set=${host_alias+set}
+ac_cv_env_host_alias_value=$host_alias
+ac_env_target_alias_set=${target_alias+set}
+ac_env_target_alias_value=$target_alias
+ac_cv_env_target_alias_set=${target_alias+set}
+ac_cv_env_target_alias_value=$target_alias
+ac_env_CC_set=${CC+set}
+ac_env_CC_value=$CC
+ac_cv_env_CC_set=${CC+set}
+ac_cv_env_CC_value=$CC
+ac_env_CFLAGS_set=${CFLAGS+set}
+ac_env_CFLAGS_value=$CFLAGS
+ac_cv_env_CFLAGS_set=${CFLAGS+set}
+ac_cv_env_CFLAGS_value=$CFLAGS
+ac_env_LDFLAGS_set=${LDFLAGS+set}
+ac_env_LDFLAGS_value=$LDFLAGS
+ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
+ac_cv_env_LDFLAGS_value=$LDFLAGS
+ac_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_env_CPPFLAGS_value=$CPPFLAGS
+ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_cv_env_CPPFLAGS_value=$CPPFLAGS
+ac_env_CPP_set=${CPP+set}
+ac_env_CPP_value=$CPP
+ac_cv_env_CPP_set=${CPP+set}
+ac_cv_env_CPP_value=$CPP
 
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # Omit some internal or obsolete options to make the list less imposing.
+  # This message is too long to be a string in the A/UX 3.1 sh.
+  cat <<_ACEOF
+\`configure' configures this package to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print \`checking...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+_ACEOF
+
+  cat <<_ACEOF
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR           user executables [EPREFIX/bin]
+  --sbindir=DIR          system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR       program executables [EPREFIX/libexec]
+  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
+  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
+  --libdir=DIR           object code libraries [EPREFIX/lib]
+  --includedir=DIR       C header files [PREFIX/include]
+  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
+  --infodir=DIR          info documentation [PREFIX/info]
+  --mandir=DIR           man documentation [PREFIX/man]
+_ACEOF
+
+  cat <<\_ACEOF
+
+Program names:
+  --program-prefix=PREFIX            prepend PREFIX to installed program names
+  --program-suffix=SUFFIX            append SUFFIX to installed program names
+  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
+
+System types:
+  --build=BUILD     configure for building on BUILD [guessed]
+  --host=HOST       build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+
+  cat <<\_ACEOF
+
+Optional Features:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --disable-dependency-tracking Speeds up one-time builds
+  --enable-dependency-tracking  Do not reject slow dependency extractors
+  --enable-vtysh,       Make integrated VTY version of zebra
+  --disable-ipv6          turn off IPv6 related features and daemons
+  --disable-zebra         do not build zebra daemon
+  --disable-bgpd          do not build bgpd
+  --disable-ripd          do not build ripd
+  --disable-ripngd        do not build ripngd
+  --disable-ospfd         do not build ospfd
+  --disable-ospf6d        do not build ospf6d
+  --disable-bgp-announce, turn off BGP route announcement
+  --enable-netlink        force to use Linux netlink interface
+  --enable-broken-aliases enable aliases as distinct interfaces for Linux 2.2.X
+  --enable-snmp           enable SNMP support
+  --enable-tcp-zebra      enable TCP/IP socket connection between zebra and protocol daemon
+  --enable-nssa           enable OSPF NSSA option
+  --enable-opaque-lsa     enable OSPF Opaque-LSA with OSPFAPI support (RFC2370)
+  --disable-ospfapi       do not build OSPFAPI to access the OSPF LSA Database,
+                          (this is the default if --enable-opaque-lsa is not set)
+  --disable-ospfclient    do not build OSPFAPI client for OSPFAPI,
+                          (this is the default if --disable-ospfapi is set)
+  --enable-ospf-te        enable Traffic Engineering Extension to OSPF
+  --enable-multipath=ARG  enable multipath function, ARG must be digit
+
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-cflags           Set CFLAGS for use in compilation.
+  --with-libpam           use libpam for PAM support in vtysh
+
+Some influential environment variables:
+  CC          C compiler command
+  CFLAGS      C compiler flags
+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+              nonstandard directory <lib dir>
+  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
+              headers in a nonstandard directory <include dir>
+  CPP         C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+_ACEOF
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  ac_popdir=`pwd`
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    cd $ac_dir
+    if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\./,,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+    # Check for guested configure; otherwise get Cygnus style configure.
+    if test -f $ac_srcdir/configure.gnu; then
+      echo
+      $SHELL $ac_srcdir/configure.gnu  --help=recursive
+    elif test -f $ac_srcdir/configure; then
+      echo
+      $SHELL $ac_srcdir/configure  --help=recursive
+    elif test -f $ac_srcdir/configure.ac ||
+           test -f $ac_srcdir/configure.in; then
+      echo
+      $ac_configure --help
+    else
+      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi
+    cd $ac_popdir
+  done
+fi
+
+test -n "$ac_init_help" && exit 0
+if $ac_init_version; then
+  cat <<\_ACEOF
+
+Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit 0
+fi
+exec 5>config.log
+cat >&5 <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by $as_me, which was
+generated by GNU Autoconf 2.52d.  Invocation command line was
+
+  $ $0 $@
+
+_ACEOF
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+PATH = $PATH
+
+_ASUNAME
+} >&5
+
+cat >&5 <<_ACEOF
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell meta-characters.
+ac_configure_args=
+ac_sep=
+for ac_arg
+do
+  case $ac_arg in
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c) ;;
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+    ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"`
+    ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+    ac_sep=" " ;;
+  *) ac_configure_args="$ac_configure_args$ac_sep$ac_arg"
+     ac_sep=" " ;;
+  esac
+  # Get rid of the leading space.
+done
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Be sure not to use single quotes in there, as some shells,
+# such as our DU 5.0 friend, will then `close' the trap.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
+    cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+{
+  (set) 2>&1 |
+    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
+    *ac_space=\ *)
+      sed -n \
+        "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+    	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+      ;;
+    *)
+      sed -n \
+        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      ;;
+    esac;
+}
+    echo
+    if test -s confdefs.h; then
+      cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+      echo
+      sed "/^$/d" confdefs.h
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      echo "$as_me: caught signal $ac_signal"
+    echo "$as_me: exit $exit_status"
+  } >&5
+  rm -rf conftest* confdefs* core core.* *.core conf$$* $ac_clean_files &&
+    exit $exit_status
+     ' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo >confdefs.h
+
+# Let the site file select an alternate cache file if it wants to.
 # Prefer explicitly selected file to automatically selected ones.
 if test -z "$CONFIG_SITE"; then
   if test "x$prefix" != xNONE; then
@@ -526,40 +916,107 @@
 fi
 for ac_site_file in $CONFIG_SITE; do
   if test -r "$ac_site_file"; then
-    echo "loading site script $ac_site_file"
+    { echo "$as_me:919: loading site script $ac_site_file" >&5
+echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
     . "$ac_site_file"
   fi
 done
 
 if test -r "$cache_file"; then
-  echo "loading cache $cache_file"
-  . $cache_file
+  # Some versions of bash will fail to source /dev/null (special
+  # files actually), so we avoid doing that.
+  if test -f "$cache_file"; then
+    { echo "$as_me:930: loading cache $cache_file" >&5
+echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . $cache_file;;
+      *)                      . ./$cache_file;;
+    esac
+  fi
 else
-  echo "creating cache $cache_file"
-  > $cache_file
+  { echo "$as_me:938: creating cache $cache_file" >&5
+echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in `(set) 2>&1 |
+               sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
+  eval ac_new_val="\$ac_env_${ac_var}_value"
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { echo "$as_me:954: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { echo "$as_me:958: error: \`$ac_var' was not set in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+        { echo "$as_me:964: error: \`$ac_var' has changed since the previous run:" >&5
+echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+        { echo "$as_me:966:   former value:  $ac_old_val" >&5
+echo "$as_me:   former value:  $ac_old_val" >&2;}
+        { echo "$as_me:968:   current value: $ac_new_val" >&5
+echo "$as_me:   current value: $ac_new_val" >&2;}
+        ac_cache_corrupted=:
+      fi;;
+  esac
+  # Pass precious variables to config.status.  It doesn't matter if
+  # we pass some twice (in addition to the command line arguments).
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"`
+      ac_configure_args="$ac_configure_args '$ac_arg'"
+      ;;
+    *) ac_configure_args="$ac_configure_args $ac_var=$ac_new_val"
+       ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { echo "$as_me:987: error: changes in the environment can compromise the build" >&5
+echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  { { echo "$as_me:989: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+   { (exit 1); exit 1; }; }
 fi
 
 ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
 ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-ac_exeext=
-ac_objext=o
-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
-  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
-  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
-    ac_n= ac_c='
-' ac_t='	'
-  else
-    ac_n=-n ac_c= ac_t=
-  fi
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+  *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T='	' ;;
+  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+  *)      ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+echo "#! $SHELL" >conftest.sh
+echo  "exit 0"   >>conftest.sh
+chmod +x conftest.sh
+if { (echo "$as_me:1009: PATH=\".;.\"; conftest.sh") >&5
+  (PATH=".;."; conftest.sh) 2>&5
+  ac_status=$?
+  echo "$as_me:1012: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  ac_path_separator=';'
 else
-  ac_n= ac_c='\c' ac_t=
+  ac_path_separator=:
 fi
-
+PATH_SEPARATOR="$ac_path_separator"
+rm -f conftest.sh
 
 ac_aux_dir=
 for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
@@ -571,14 +1028,20 @@
     ac_aux_dir=$ac_dir
     ac_install_sh="$ac_aux_dir/install.sh -c"
     break
+  elif test -f $ac_dir/shtool; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
   fi
 done
 if test -z "$ac_aux_dir"; then
-  { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+  { { echo "$as_me:1038: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+   { (exit 1); exit 1; }; }
 fi
-ac_config_guess=$ac_aux_dir/config.guess
-ac_config_sub=$ac_aux_dir/config.sub
-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"
+ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
 
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
@@ -587,31 +1050,39 @@
 # SunOS /usr/etc/install
 # IRIX /sbin/install
 # AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
 # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
 # AFS /usr/afsws/bin/install, which mishandles nonexistent args
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
-echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:596: checking for a BSD compatible install" >&5
+echo "$as_me:1058: checking for a BSD compatible install" >&5
+echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6
 if test -z "$INSTALL"; then
-if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+if test "${ac_cv_path_install+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-    IFS="${IFS= 	}"; ac_save_IFS="$IFS"; IFS=":"
+    ac_save_IFS=$IFS; IFS=$ac_path_separator
   for ac_dir in $PATH; do
+    IFS=$ac_save_IFS
     # Account for people who put trailing slashes in PATH elements.
-    case "$ac_dir/" in
-    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+    case $ac_dir/ in
+    / | ./ | .// | /cC/* \
+    | /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* \
+    | /usr/ucb/* ) ;;
     *)
       # OSF1 and SCO ODT 3.0 have their own names for install.
       # Don't use installbsd from OSF since it installs stuff as root
       # by default.
       for ac_prog in ginstall scoinst install; do
-        if test -f $ac_dir/$ac_prog; then
+        if $as_executable_p "$ac_dir/$ac_prog"; then
 	  if test $ac_prog = install &&
-            grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+            grep dspmsg "$ac_dir/$ac_prog" >/dev/null 2>&1; then
 	    # AIX install.  It has an incompatible calling convention.
 	    :
+	  elif test $ac_prog = install &&
+	    grep pwplus "$ac_dir/$ac_prog" >/dev/null 2>&1; then
+	    # program-specific install script used by HP pwplus--don't use.
+	    :
 	  else
 	    ac_cv_path_install="$ac_dir/$ac_prog -c"
 	    break 2
@@ -621,450 +1092,908 @@
       ;;
     esac
   done
-  IFS="$ac_save_IFS"
 
 fi
   if test "${ac_cv_path_install+set}" = set; then
-    INSTALL="$ac_cv_path_install"
+    INSTALL=$ac_cv_path_install
   else
     # As a last resort, use the slow shell script.  We don't cache a
     # path for INSTALL within a source directory, because that will
     # break other packages using the cache if that directory is
     # removed, or if the path is relative.
-    INSTALL="$ac_install_sh"
+    INSTALL=$ac_install_sh
   fi
 fi
-echo "$ac_t""$INSTALL" 1>&6
+echo "$as_me:1107: result: $INSTALL" >&5
+echo "${ECHO_T}$INSTALL" >&6
 
 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
 # It thinks the first close brace ends the variable substitution.
 test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
 
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
-echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
-echo "configure:649: checking whether build environment is sane" >&5
+echo "$as_me:1118: checking whether build environment is sane" >&5
+echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
 # Just in case
 sleep 1
-echo timestamp > conftestfile
+echo timestamp > conftest.file
 # Do `set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
+   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
    if test "$*" = "X"; then
       # -L didn't work.
-      set X `ls -t $srcdir/configure conftestfile`
+      set X `ls -t $srcdir/configure conftest.file`
    fi
-   if test "$*" != "X $srcdir/configure conftestfile" \
-      && test "$*" != "X conftestfile $srcdir/configure"; then
+   rm -f conftest.file
+   if test "$*" != "X $srcdir/configure conftest.file" \
+      && test "$*" != "X conftest.file $srcdir/configure"; then
 
       # If neither matched, then we have a broken ls.  This can happen
       # if, for instance, CONFIG_SHELL is bash and it inherits a
       # broken ls alias from the environment.  This has actually
       # happened.  Such a system could not be considered "sane".
-      { echo "configure: error: ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" 1>&2; exit 1; }
+      { { echo "$as_me:1142: error: ls -t appears to fail.  Make sure there is not a broken
+alias in your environment" >&5
+echo "$as_me: error: ls -t appears to fail.  Make sure there is not a broken
+alias in your environment" >&2;}
+   { (exit 1); exit 1; }; }
    fi
 
-   test "$2" = conftestfile
+   test "$2" = conftest.file
    )
 then
    # Ok.
    :
 else
-   { echo "configure: error: newly created file is older than distributed files!
-Check your system clock" 1>&2; exit 1; }
+   { { echo "$as_me:1155: error: newly created file is older than distributed files!
+Check your system clock" >&5
+echo "$as_me: error: newly created file is older than distributed files!
+Check your system clock" >&2;}
+   { (exit 1); exit 1; }; }
 fi
-rm -f conftest*
-echo "$ac_t""yes" 1>&6
-if test "$program_transform_name" = s,x,x,; then
-  program_transform_name=
-else
-  # Double any \ or $.  echo might interpret backslashes.
-  cat <<\EOF_SED > conftestsed
-s,\\,\\\\,g; s,\$,$$,g
-EOF_SED
-  program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
-  rm -f conftestsed
-fi
+echo "$as_me:1161: result: yes" >&5
+echo "${ECHO_T}yes" >&6
 test "$program_prefix" != NONE &&
-  program_transform_name="s,^,${program_prefix},; $program_transform_name"
+  program_transform_name="s,^,$program_prefix,;$program_transform_name"
 # Use a double $ so make ignores it.
 test "$program_suffix" != NONE &&
-  program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
+  program_transform_name="s,\$,$program_suffix,;$program_transform_name"
+# Double any \ or $.  echo might interpret backslashes.
+# By default was `s,x,x', remove it if useless.
+cat <<\_ACEOF >conftest.sed
+s/[\\$]/&&/g;s/;s,x,x,$//
+_ACEOF
+program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
+rm conftest.sed
 
-# sed with no file args requires a program.
-test "$program_transform_name" = "" && program_transform_name="s,x,x,"
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`CDPATH=:; cd $ac_aux_dir && pwd`
 
-echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:706: checking whether ${MAKE-make} sets \${MAKE}" >&5
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+  am_missing_run="$MISSING --run "
 else
-  cat > conftestmake <<\EOF
+  am_missing_run=
+  am_backtick='`'
+  { echo "$as_me:1186: WARNING: ${am_backtick}missing' script is too old or missing" >&5
+echo "$as_me: WARNING: ${am_backtick}missing' script is too old or missing" >&2;}
+fi
+
+for ac_prog in gawk mawk nawk awk
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:1194: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_AWK+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$AWK"; then
+  ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_AWK="$ac_prog"
+echo "$as_me:1209: found $ac_dir/$ac_word" >&5
+break
+done
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+  echo "$as_me:1217: result: $AWK" >&5
+echo "${ECHO_T}$AWK" >&6
+else
+  echo "$as_me:1220: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$AWK" && break
+done
+
+echo "$as_me:1227: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
+if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.make <<\_ACEOF
 all:
 	@echo 'ac_maketemp="${MAKE}"'
-EOF
+_ACEOF
 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
+eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
 if test -n "$ac_maketemp"; then
   eval ac_cv_prog_make_${ac_make}_set=yes
 else
   eval ac_cv_prog_make_${ac_make}_set=no
 fi
-rm -f conftestmake
+rm -f conftest.make
 fi
 if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
+  echo "$as_me:1247: result: yes" >&5
+echo "${ECHO_T}yes" >&6
   SET_MAKE=
 else
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:1251: result: no" >&5
+echo "${ECHO_T}no" >&6
   SET_MAKE="MAKE=${MAKE-make}"
 fi
 
+# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then
+  enableval="$enable_dependency_tracking"
 
+fi;
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+  AMDEP_TRUE=
+  AMDEP_FALSE='#'
+else
+  AMDEP_TRUE='#'
+  AMDEP_FALSE=
+fi
+
+rm -f .deps 2>/dev/null
+mkdir .deps 2>/dev/null
+if test -d .deps; then
+  DEPDIR=.deps
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  DEPDIR=_deps
+fi
+rmdir .deps 2>/dev/null
+
+# test to see if srcdir already configured
+if test "`CDPATH=:; cd $srcdir && pwd`" != "`pwd`" &&
+   test -f $srcdir/config.status; then
+  { { echo "$as_me:1287: error: source directory already configured; run \"make distclean\" there first" >&5
+echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+# Define the identity of the package.
 PACKAGE=zebra
-
 VERSION=0.94
 
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
-  { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
-fi
-cat >> confdefs.h <<EOF
+cat >>confdefs.h <<_ACEOF
 #define PACKAGE "$PACKAGE"
-EOF
+_ACEOF
 
-cat >> confdefs.h <<EOF
+cat >>confdefs.h <<_ACEOF
 #define VERSION "$VERSION"
-EOF
+_ACEOF
 
+# Autoconf 2.50 wants to disallow AM_ names.  We explicitly allow
+# the ones we care about.
 
+# Autoconf 2.50 always computes EXEEXT.  However we need to be
+# compatible with 2.13, for now.  So we always define EXEEXT, but we
+# don't compute it.
 
-missing_dir=`cd $ac_aux_dir && pwd`
-echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
-echo "configure:752: checking for working aclocal" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (aclocal --version) < /dev/null > /dev/null 2>&1; then
-   ACLOCAL=aclocal
-   echo "$ac_t""found" 1>&6
-else
-   ACLOCAL="$missing_dir/missing aclocal"
-   echo "$ac_t""missing" 1>&6
-fi
+# Similar for OBJEXT -- only we only use OBJEXT if the user actually
+# requests that it be used.  This is a bit dumb.
+: ${OBJEXT=o}
 
-echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
-echo "configure:765: checking for working autoconf" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (autoconf --version) < /dev/null > /dev/null 2>&1; then
-   AUTOCONF=autoconf
-   echo "$ac_t""found" 1>&6
-else
-   AUTOCONF="$missing_dir/missing autoconf"
-   echo "$ac_t""missing" 1>&6
-fi
+# Some tools Automake needs.
 
-echo $ac_n "checking for working automake""... $ac_c" 1>&6
-echo "configure:778: checking for working automake" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (automake --version) < /dev/null > /dev/null 2>&1; then
-   AUTOMAKE=automake
-   echo "$ac_t""found" 1>&6
-else
-   AUTOMAKE="$missing_dir/missing automake"
-   echo "$ac_t""missing" 1>&6
-fi
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal"}
 
-echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
-echo "configure:791: checking for working autoheader" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (autoheader --version) < /dev/null > /dev/null 2>&1; then
-   AUTOHEADER=autoheader
-   echo "$ac_t""found" 1>&6
-else
-   AUTOHEADER="$missing_dir/missing autoheader"
-   echo "$ac_t""missing" 1>&6
-fi
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
 
-echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
-echo "configure:804: checking for working makeinfo" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
-   MAKEINFO=makeinfo
-   echo "$ac_t""found" 1>&6
-else
-   MAKEINFO="$missing_dir/missing makeinfo"
-   echo "$ac_t""missing" 1>&6
-fi
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake"}
 
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
 
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 
+AMTAR=${AMTAR-"${am_missing_run}tar"}
 
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
 
+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
 
+# We need awk for the "check" target.  The system "awk" is bad on
+# some platforms.
+
+		    		    		    ac_config_headers="$ac_config_headers config.h"
 
 # Make sure we can run config.sub.
-if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
-else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
+$ac_config_sub sun4 >/dev/null 2>&1 ||
+  { { echo "$as_me:1340: error: cannot run $ac_config_sub" >&5
+echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+   { (exit 1); exit 1; }; }
+
+echo "$as_me:1344: checking build system type" >&5
+echo $ECHO_N "checking build system type... $ECHO_C" >&6
+if test "${ac_cv_build+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_build_alias=$build_alias
+test -z "$ac_cv_build_alias" &&
+  ac_cv_build_alias=`$ac_config_guess`
+test -z "$ac_cv_build_alias" &&
+  { { echo "$as_me:1353: error: cannot guess build type; you must specify one" >&5
+echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+   { (exit 1); exit 1; }; }
+ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
+  { { echo "$as_me:1357: error: $ac_config_sub $ac_cv_build_alias failed." >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;}
+   { (exit 1); exit 1; }; }
+
 fi
+echo "$as_me:1362: result: $ac_cv_build" >&5
+echo "${ECHO_T}$ac_cv_build" >&6
+build=$ac_cv_build
+build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 
-echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:828: checking host system type" >&5
+echo "$as_me:1369: checking host system type" >&5
+echo $ECHO_N "checking host system type... $ECHO_C" >&6
+if test "${ac_cv_host+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_host_alias=$host_alias
+test -z "$ac_cv_host_alias" &&
+  ac_cv_host_alias=$ac_cv_build_alias
+ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
+  { { echo "$as_me:1378: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+   { (exit 1); exit 1; }; }
 
-host_alias=$host
-case "$host_alias" in
-NONE)
-  case $nonopt in
-  NONE)
-    if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
-    else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
-    fi ;;
-  *) host_alias=$nonopt ;;
-  esac ;;
-esac
-
-host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
-host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$host" 1>&6
-
+fi
+echo "$as_me:1383: result: $ac_cv_host" >&5
+echo "${ECHO_T}$ac_cv_host" >&6
+host=$ac_cv_host
+host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 
 # Check whether --with-cflags or --without-cflags was given.
 if test "${with_cflags+set}" = set; then
   withval="$with_cflags"
-  :
-fi
 
+fi;
 if test "x$with_cflags" != "x" ; then
   CFLAGS="$with_cflags" ; cflags_specified=yes ;
 elif test -n "$CFLAGS" ; then
   cflags_specified=yes ;
 fi
 
-# Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:864: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+echo "$as_me:1409: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_CC="gcc"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_CC="${ac_tool_prefix}gcc"
+echo "$as_me:1424: found $ac_dir/$ac_word" >&5
+break
+done
+
 fi
 fi
-CC="$ac_cv_prog_CC"
+CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$ac_t""$CC" 1>&6
+  echo "$as_me:1432: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
 else
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:1435: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo "$as_me:1444: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_ac_ct_CC="gcc"
+echo "$as_me:1459: found $ac_dir/$ac_word" >&5
+break
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:1467: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:1470: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  CC=$ac_ct_CC
+else
+  CC="$ac_cv_prog_CC"
 fi
 
 if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:894: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+echo "$as_me:1483: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_CC="${ac_tool_prefix}cc"
+echo "$as_me:1498: found $ac_dir/$ac_word" >&5
+break
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:1506: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:1509: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:1518: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_ac_ct_CC="cc"
+echo "$as_me:1533: found $ac_dir/$ac_word" >&5
+break
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:1541: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:1544: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  CC=$ac_ct_CC
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:1557: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
   ac_prog_rejected=no
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
-        ac_prog_rejected=yes
-	continue
-      fi
-      ac_cv_prog_CC="cc"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+  ac_prog_rejected=yes
+  continue
+fi
+ac_cv_prog_CC="cc"
+echo "$as_me:1577: found $ac_dir/$ac_word" >&5
+break
+done
+
 if test $ac_prog_rejected = yes; then
   # We found a bogon in the path, so make sure we never use it.
   set dummy $ac_cv_prog_CC
   shift
-  if test $# -gt 0; then
+  if test $# != 0; then
     # We chose a different compiler from the bogus one.
     # However, it has the same basename, so the bogon will be chosen
     # first if we set CC to just the basename; use the full file name.
     shift
-    set dummy "$ac_dir/$ac_word" "$@"
+    set dummy "$ac_dir/$ac_word" ${1+"$@"}
     shift
     ac_cv_prog_CC="$@"
   fi
 fi
 fi
 fi
-CC="$ac_cv_prog_CC"
+CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$ac_t""$CC" 1>&6
+  echo "$as_me:1599: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
 else
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:1602: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-  if test -z "$CC"; then
-    case "`uname -s`" in
-    *win32* | *WIN32*)
-      # Extract the first word of "cl", so it can be a program name with args.
-set dummy cl; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:945: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:1613: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_CC="cl"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+echo "$as_me:1628: found $ac_dir/$ac_word" >&5
+break
+done
+
 fi
 fi
-CC="$ac_cv_prog_CC"
+CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$ac_t""$CC" 1>&6
+  echo "$as_me:1636: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
 else
-  echo "$ac_t""no" 1>&6
-fi
- ;;
-    esac
-  fi
-  test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+  echo "$as_me:1639: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:977: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:1652: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_ac_ct_CC="$ac_prog"
+echo "$as_me:1667: found $ac_dir/$ac_word" >&5
+break
+done
 
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:1675: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:1678: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-cat > conftest.$ac_ext << EOF
+  test -n "$ac_ct_CC" && break
+done
 
-#line 988 "configure"
+  CC=$ac_ct_CC
+fi
+
+fi
+
+test -z "$CC" && { { echo "$as_me:1690: error: no acceptable cc found in \$PATH" >&5
+echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
+   { (exit 1); exit 1; }; }
+
+# Provide some information about the compiler.
+echo "$as_me:1695:" \
+     "checking for C compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:1698: \"$ac_compiler --version </dev/null >&5\"") >&5
+  (eval $ac_compiler --version </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:1701: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:1703: \"$ac_compiler -v </dev/null >&5\"") >&5
+  (eval $ac_compiler -v </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:1706: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:1708: \"$ac_compiler -V </dev/null >&5\"") >&5
+  (eval $ac_compiler -V </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:1711: \$? = $ac_status" >&5
+  (exit $ac_status); }
+
+cat >conftest.$ac_ext <<_ACEOF
+#line 1715 "configure"
 #include "confdefs.h"
 
-main(){return(0);}
-EOF
-if { (eval echo configure:993: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  ac_cv_prog_cc_works=yes
-  # If we can't run a trivial program, we are probably using a cross compiler.
-  if (./conftest; exit) 2>/dev/null; then
-    ac_cv_prog_cc_cross=no
-  else
-    ac_cv_prog_cc_cross=yes
-  fi
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  ac_cv_prog_cc_works=no
-fi
-rm -fr conftest*
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
-if test $ac_cv_prog_cc_works = no; then
-  { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
-fi
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1019: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
-echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1024: checking whether we are using GNU C" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.c <<EOF
-#ifdef __GNUC__
-  yes;
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
 #endif
-EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1033: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
-  ac_cv_prog_gcc=yes
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.exe"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+echo "$as_me:1737: checking for C compiler default output" >&5
+echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
+ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+if { (eval echo "$as_me:1740: \"$ac_link_default\"") >&5
+  (eval $ac_link_default) 2>&5
+  ac_status=$?
+  echo "$as_me:1743: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # Find the output, starting from the most likely.  This scheme is
+# not robust to junk in `.', hence go to wildcards (a.*) only as a last
+# resort.
+for ac_file in `ls a.exe conftest.exe 2>/dev/null;
+                ls a.out conftest 2>/dev/null;
+                ls a.* conftest.* 2>/dev/null`; do
+  case $ac_file in
+    *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb | *.xSYM ) ;;
+    a.out ) # We found the default executable, but exeext='' is most
+            # certainly right.
+            break;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+          # FIXME: I believe we export ac_cv_exeext for Libtool --akim.
+          export ac_cv_exeext
+          break;;
+    * ) break;;
+  esac
+done
 else
-  ac_cv_prog_gcc=no
-fi
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+{ { echo "$as_me:1766: error: C compiler cannot create executables" >&5
+echo "$as_me: error: C compiler cannot create executables" >&2;}
+   { (exit 77); exit 77; }; }
 fi
 
-echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+ac_exeext=$ac_cv_exeext
+echo "$as_me:1772: result: $ac_file" >&5
+echo "${ECHO_T}$ac_file" >&6
 
-if test $ac_cv_prog_gcc = yes; then
-  GCC=yes
+# Check the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:1777: checking whether the C compiler works" >&5
+echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+  if { ac_try='./$ac_file'
+  { (eval echo "$as_me:1783: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:1786: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+	cross_compiling=yes
+    else
+	{ { echo "$as_me:1793: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'." >&5
+echo "$as_me: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'." >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+  fi
+fi
+echo "$as_me:1801: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+rm -f a.out a.exe conftest$ac_cv_exeext
+ac_clean_files=$ac_clean_files_save
+# Check the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:1808: checking whether we are cross compiling" >&5
+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+echo "$as_me:1810: result: $cross_compiling" >&5
+echo "${ECHO_T}$cross_compiling" >&6
+
+echo "$as_me:1813: checking for executable suffix" >&5
+echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
+if { (eval echo "$as_me:1815: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:1818: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do
+  case $ac_file in
+    *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+          export ac_cv_exeext
+          break;;
+    * ) break;;
+  esac
+done
 else
-  GCC=
+  { { echo "$as_me:1834: error: cannot compute EXEEXT: cannot compile and link" >&5
+echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;}
+   { (exit 1); exit 1; }; }
 fi
 
-ac_test_CFLAGS="${CFLAGS+set}"
-ac_save_CFLAGS="$CFLAGS"
-CFLAGS=
-echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1052: checking whether ${CC-cc} accepts -g" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+rm -f conftest$ac_cv_exeext
+echo "$as_me:1840: result: $ac_cv_exeext" >&5
+echo "${ECHO_T}$ac_cv_exeext" >&6
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+echo "$as_me:1846: checking for object suffix" >&5
+echo $ECHO_N "checking for object suffix... $ECHO_C" >&6
+if test "${ac_cv_objext+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+  cat >conftest.$ac_ext <<_ACEOF
+#line 1852 "configure"
+#include "confdefs.h"
+
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { (eval echo "$as_me:1870: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:1873: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+{ { echo "$as_me:1885: error: cannot compute OBJEXT: cannot compile" >&5
+echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+echo "$as_me:1892: result: $ac_cv_objext" >&5
+echo "${ECHO_T}$ac_cv_objext" >&6
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+echo "$as_me:1896: checking whether we are using the GNU C compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+if test "${ac_cv_c_compiler_gnu+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 1902 "configure"
+#include "confdefs.h"
+
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:1923: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:1926: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:1929: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:1932: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_compiler_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_compiler_gnu=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:1944: result: $ac_cv_c_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+GCC=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+CFLAGS="-g"
+echo "$as_me:1950: checking whether $CC accepts -g" >&5
+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 1956 "configure"
+#include "confdefs.h"
+
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:1974: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:1977: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:1980: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:1983: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   ac_cv_prog_cc_g=yes
 else
-  ac_cv_prog_cc_g=no
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_prog_cc_g=no
 fi
-rm -f conftest*
-
+rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-
-echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
+echo "$as_me:1993: result: $ac_cv_prog_cc_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
 if test "$ac_test_CFLAGS" = set; then
-  CFLAGS="$ac_save_CFLAGS"
+  CFLAGS=$ac_save_CFLAGS
 elif test $ac_cv_prog_cc_g = yes; then
   if test "$GCC" = yes; then
     CFLAGS="-g -O2"
@@ -1078,91 +2007,439 @@
     CFLAGS=
   fi
 fi
+# Some people use a C++ compiler to compile C.  Since we use `exit',
+# in C++ we need to declare it.  In case someone uses the same compiler
+# for both compiling C and C++ we need to have the C++ compiler decide
+# the declaration of exit, since it's the most demanding environment.
+cat >conftest.$ac_ext <<_ACEOF
+#ifndef __cplusplus
+  choke me
+#endif
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:2020: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:2023: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:2026: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:2029: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  for ac_declaration in \
+   ''\
+   '#include <stdlib.h>' \
+   'extern "C" void std::exit (int) throw (); using std::exit;' \
+   'extern "C" void std::exit (int); using std::exit;' \
+   'extern "C" void exit (int) throw ();' \
+   'extern "C" void exit (int);' \
+   'void exit (int);'
+do
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2041 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+$ac_declaration
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:2060: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:2063: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:2066: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:2069: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+continue
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2079 "configure"
+#include "confdefs.h"
+$ac_declaration
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:2097: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:2100: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:2103: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:2106: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  break
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+  echo '#ifdef __cplusplus' >>confdefs.h
+  echo $ac_declaration      >>confdefs.h
+  echo '#endif'             >>confdefs.h
+fi
 
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_config_commands="$ac_config_commands default-1"
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+doit:
+	@echo done
+END
+# If we don't find an include directive, just comment out the code.
+echo "$as_me:2141: checking for style of include used by $am_make" >&5
+echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6
+am__include='#'
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then
+   am__include=include
+   am__quote=
+   _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+      am__include=.include
+      am__quote='"'
+      _am_result=BSD
+   fi
+fi
+
+echo "$as_me:2168: result: $_am_result" >&5
+echo "${ECHO_T}$_am_result" >&6
+rm -f confinc confmf
+
+depcc="$CC"   am_compiler_list=
+
+echo "$as_me:2174: checking dependency style of $depcc" >&5
+echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+
+  am_cv_CC_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  for depmode in $am_compiler_list; do
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    echo '#include "conftest.h"' > conftest.c
+    echo 'int i;' > conftest.h
+    echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
+
+    case $depmode in
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    none) break ;;
+    esac
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
+    if depmode=$depmode \
+       source=conftest.c object=conftest.o \
+       depfile=conftest.Po tmpdepfile=conftest.TPo \
+       $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
+       grep conftest.h conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      am_cv_CC_dependencies_compiler_type=$depmode
+      break
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+echo "$as_me:2236: result: $am_cv_CC_dependencies_compiler_type" >&5
+echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
+CCDEPMODE="depmode=$am_cv_CC_dependencies_compiler_type"
 
 if test "x$cflags_specified" = "x" ; then
   CFLAGS="$CFLAGS -Wall"
 fi
 
-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1089: checking how to run the C preprocessor" >&5
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+echo "$as_me:2249: checking how to run the C preprocessor" >&5
+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
 fi
 if test -z "$CPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+  if test "${ac_cv_prog_CPP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-    # This must be in double quotes, not single quotes, because CPP may get
-  # substituted into the Makefile and "${CC-cc}" will confuse make.
-  CPP="${CC-cc} -E"
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
   # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp.
-  cat > conftest.$ac_ext <<EOF
-#line 1104 "configure"
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2270 "configure"
 #include "confdefs.h"
 #include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1110: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
+                     Syntax error
+_ACEOF
+if { (eval echo "$as_me:2275: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:2281: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
   :
 else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
+  echo "$as_me: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  CPP="${CC-cc} -E -traditional-cpp"
-  cat > conftest.$ac_ext <<EOF
-#line 1121 "configure"
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2304 "configure"
+#include "confdefs.h"
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:2308: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:2314: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  break
+fi
+
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+echo "$as_me:2351: result: $CPP" >&5
+echo "${ECHO_T}$CPP" >&6
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2361 "configure"
 #include "confdefs.h"
 #include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1127: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
+                     Syntax error
+_ACEOF
+if { (eval echo "$as_me:2366: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:2372: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
   :
 else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
+  echo "$as_me: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  CPP="${CC-cc} -nologo -E"
-  cat > conftest.$ac_ext <<EOF
-#line 1138 "configure"
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2395 "configure"
 #include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1144: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:2399: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:2405: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
   :
 else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  CPP=/lib/cpp
+  { { echo "$as_me:2433: error: C preprocessor \"$CPP\" fails sanity check" >&5
+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
+   { (exit 1); exit 1; }; }
 fi
-rm -f conftest*
-fi
-rm -f conftest*
-fi
-rm -f conftest*
-  ac_cv_prog_CPP="$CPP"
-fi
-  CPP="$ac_cv_prog_CPP"
-else
-  ac_cv_prog_CPP="$CPP"
-fi
-echo "$ac_t""$CPP" 1>&6
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
@@ -1171,31 +2448,39 @@
 # SunOS /usr/etc/install
 # IRIX /sbin/install
 # AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
 # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
 # AFS /usr/afsws/bin/install, which mishandles nonexistent args
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
-echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:1180: checking for a BSD compatible install" >&5
+echo "$as_me:2456: checking for a BSD compatible install" >&5
+echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6
 if test -z "$INSTALL"; then
-if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+if test "${ac_cv_path_install+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-    IFS="${IFS= 	}"; ac_save_IFS="$IFS"; IFS=":"
+    ac_save_IFS=$IFS; IFS=$ac_path_separator
   for ac_dir in $PATH; do
+    IFS=$ac_save_IFS
     # Account for people who put trailing slashes in PATH elements.
-    case "$ac_dir/" in
-    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+    case $ac_dir/ in
+    / | ./ | .// | /cC/* \
+    | /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* \
+    | /usr/ucb/* ) ;;
     *)
       # OSF1 and SCO ODT 3.0 have their own names for install.
       # Don't use installbsd from OSF since it installs stuff as root
       # by default.
       for ac_prog in ginstall scoinst install; do
-        if test -f $ac_dir/$ac_prog; then
+        if $as_executable_p "$ac_dir/$ac_prog"; then
 	  if test $ac_prog = install &&
-            grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+            grep dspmsg "$ac_dir/$ac_prog" >/dev/null 2>&1; then
 	    # AIX install.  It has an incompatible calling convention.
 	    :
+	  elif test $ac_prog = install &&
+	    grep pwplus "$ac_dir/$ac_prog" >/dev/null 2>&1; then
+	    # program-specific install script used by HP pwplus--don't use.
+	    :
 	  else
 	    ac_cv_path_install="$ac_dir/$ac_prog -c"
 	    break 2
@@ -1205,320 +2490,330 @@
       ;;
     esac
   done
-  IFS="$ac_save_IFS"
 
 fi
   if test "${ac_cv_path_install+set}" = set; then
-    INSTALL="$ac_cv_path_install"
+    INSTALL=$ac_cv_path_install
   else
     # As a last resort, use the slow shell script.  We don't cache a
     # path for INSTALL within a source directory, because that will
     # break other packages using the cache if that directory is
     # removed, or if the path is relative.
-    INSTALL="$ac_install_sh"
+    INSTALL=$ac_install_sh
   fi
 fi
-echo "$ac_t""$INSTALL" 1>&6
+echo "$as_me:2505: result: $INSTALL" >&5
+echo "${ECHO_T}$INSTALL" >&6
 
 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
 # It thinks the first close brace ends the variable substitution.
 test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
 
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
-echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:1233: checking whether ${MAKE-make} sets \${MAKE}" >&5
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:2516: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
+if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat > conftestmake <<\EOF
+  cat >conftest.make <<\_ACEOF
 all:
 	@echo 'ac_maketemp="${MAKE}"'
-EOF
+_ACEOF
 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
+eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
 if test -n "$ac_maketemp"; then
   eval ac_cv_prog_make_${ac_make}_set=yes
 else
   eval ac_cv_prog_make_${ac_make}_set=no
 fi
-rm -f conftestmake
+rm -f conftest.make
 fi
 if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
+  echo "$as_me:2536: result: yes" >&5
+echo "${ECHO_T}yes" >&6
   SET_MAKE=
 else
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:2540: result: no" >&5
+echo "${ECHO_T}no" >&6
   SET_MAKE="MAKE=${MAKE-make}"
 fi
 
-echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:1260: checking build system type" >&5
-
-build_alias=$build
-case "$build_alias" in
-NONE)
-  case $nonopt in
-  NONE) build_alias=$host_alias ;;
-  *) build_alias=$nonopt ;;
-  esac ;;
-esac
-
-build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
-build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$build" 1>&6
-
-if test $host != $build; then
-  ac_tool_prefix=${host_alias}-
-else
-  ac_tool_prefix=
-fi
-
-# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ar; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1286: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:2548: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_AR+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   if test -n "$AR"; then
   ac_cv_prog_AR="$AR" # Let the user override the test.
 else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_AR="${ac_tool_prefix}ar"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-  test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar"
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_AR="${ac_tool_prefix}ar"
+echo "$as_me:2563: found $ac_dir/$ac_word" >&5
+break
+done
+
 fi
 fi
-AR="$ac_cv_prog_AR"
+AR=$ac_cv_prog_AR
 if test -n "$AR"; then
-  echo "$ac_t""$AR" 1>&6
+  echo "$as_me:2571: result: $AR" >&5
+echo "${ECHO_T}$AR" >&6
 else
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:2574: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
+fi
+if test -z "$ac_cv_prog_AR"; then
+  ac_ct_AR=$AR
+  # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+echo "$as_me:2583: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_AR"; then
+  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_ac_ct_AR="ar"
+echo "$as_me:2598: found $ac_dir/$ac_word" >&5
+break
+done
 
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+  echo "$as_me:2606: result: $ac_ct_AR" >&5
+echo "${ECHO_T}$ac_ct_AR" >&6
+else
+  echo "$as_me:2609: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+  AR=$ac_ct_AR
+else
+  AR="$ac_cv_prog_AR"
+fi
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1318: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:2621: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_RANLIB+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   if test -n "$RANLIB"; then
   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
 else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+echo "$as_me:2636: found $ac_dir/$ac_word" >&5
+break
+done
+
 fi
 fi
-RANLIB="$ac_cv_prog_RANLIB"
+RANLIB=$ac_cv_prog_RANLIB
 if test -n "$RANLIB"; then
-  echo "$ac_t""$RANLIB" 1>&6
+  echo "$as_me:2644: result: $RANLIB" >&5
+echo "${ECHO_T}$RANLIB" >&6
 else
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:2647: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-
+fi
 if test -z "$ac_cv_prog_RANLIB"; then
-if test -n "$ac_tool_prefix"; then
+  ac_ct_RANLIB=$RANLIB
   # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1350: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:2656: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+  if test -n "$ac_ct_RANLIB"; then
+  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
 else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_RANLIB="ranlib"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_ac_ct_RANLIB="ranlib"
+echo "$as_me:2671: found $ac_dir/$ac_word" >&5
+break
+done
+
+  test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
 fi
 fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
-  echo "$ac_t""$RANLIB" 1>&6
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+  echo "$as_me:2680: result: $ac_ct_RANLIB" >&5
+echo "${ECHO_T}$ac_ct_RANLIB" >&6
 else
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:2683: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
+  RANLIB=$ac_ct_RANLIB
 else
-  RANLIB=":"
-fi
+  RANLIB="$ac_cv_prog_RANLIB"
 fi
 
-
-echo $ac_n "checking for AIX""... $ac_c" 1>&6
-echo "configure:1384: checking for AIX" >&5
-cat > conftest.$ac_ext <<EOF
-#line 1386 "configure"
+echo "$as_me:2692: checking for AIX" >&5
+echo $ECHO_N "checking for AIX... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line 2695 "configure"
 #include "confdefs.h"
 #ifdef _AIX
   yes
 #endif
 
-EOF
+_ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "yes" >/dev/null 2>&1; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
+  echo "$as_me:2704: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+cat >>confdefs.h <<\_ACEOF
 #define _ALL_SOURCE 1
-EOF
+_ACEOF
 
 else
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:2711: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 rm -f conftest*
 
-
-
 # Check whether --enable-vtysh or --disable-vtysh was given.
 if test "${enable_vtysh+set}" = set; then
   enableval="$enable_vtysh"
-  :
-fi
 
+fi;
 # Check whether --enable-ipv6 or --disable-ipv6 was given.
 if test "${enable_ipv6+set}" = set; then
   enableval="$enable_ipv6"
-  :
-fi
 
+fi;
 # Check whether --enable-zebra or --disable-zebra was given.
 if test "${enable_zebra+set}" = set; then
   enableval="$enable_zebra"
-  :
-fi
 
+fi;
 # Check whether --enable-bgpd or --disable-bgpd was given.
 if test "${enable_bgpd+set}" = set; then
   enableval="$enable_bgpd"
-  :
-fi
 
+fi;
 # Check whether --enable-ripd or --disable-ripd was given.
 if test "${enable_ripd+set}" = set; then
   enableval="$enable_ripd"
-  :
-fi
 
+fi;
 # Check whether --enable-ripngd or --disable-ripngd was given.
 if test "${enable_ripngd+set}" = set; then
   enableval="$enable_ripngd"
-  :
-fi
 
+fi;
 # Check whether --enable-ospfd or --disable-ospfd was given.
 if test "${enable_ospfd+set}" = set; then
   enableval="$enable_ospfd"
-  :
-fi
 
-# Check whether --enable-ospfclient or --disable-ospfclient was given.
-if test "${enable_ospfclient+set}" = set; then
-  enableval="$enable_ospfclient"
-  :
-fi
-
+fi;
 # Check whether --enable-ospf6d or --disable-ospf6d was given.
 if test "${enable_ospf6d+set}" = set; then
   enableval="$enable_ospf6d"
-  :
-fi
 
+fi;
 # Check whether --enable-bgp-announce or --disable-bgp-announce was given.
 if test "${enable_bgp_announce+set}" = set; then
   enableval="$enable_bgp_announce"
-  :
-fi
 
+fi;
 # Check whether --enable-netlink or --disable-netlink was given.
 if test "${enable_netlink+set}" = set; then
   enableval="$enable_netlink"
-  :
-fi
 
+fi;
 # Check whether --enable-broken-aliases or --disable-broken-aliases was given.
 if test "${enable_broken_aliases+set}" = set; then
   enableval="$enable_broken_aliases"
-  :
-fi
 
+fi;
 # Check whether --enable-snmp or --disable-snmp was given.
 if test "${enable_snmp+set}" = set; then
   enableval="$enable_snmp"
-  :
-fi
+
+fi;
 
 # Check whether --with-libpam or --without-libpam was given.
 if test "${with_libpam+set}" = set; then
   withval="$with_libpam"
-  :
-fi
 
+fi;
 # Check whether --enable-tcpsock or --disable-tcpsock was given.
 if test "${enable_tcpsock+set}" = set; then
   enableval="$enable_tcpsock"
-  :
-fi
 
+fi;
 # Check whether --enable-nssa or --disable-nssa was given.
 if test "${enable_nssa+set}" = set; then
   enableval="$enable_nssa"
-  :
-fi
 
+fi;
 # Check whether --enable-opaque-lsa or --disable-opaque-lsa was given.
 if test "${enable_opaque_lsa+set}" = set; then
   enableval="$enable_opaque_lsa"
-  :
-fi
 
+fi;
+# Check whether --enable-ospfapi or --disable-ospfapi was given.
+if test "${enable_ospfapi+set}" = set; then
+  enableval="$enable_ospfapi"
+
+fi;
+# Check whether --enable-ospfclient or --disable-ospfclient was given.
+if test "${enable_ospfclient+set}" = set; then
+  enableval="$enable_ospfclient"
+
+fi;
 # Check whether --enable-ospf-te or --disable-ospf-te was given.
 if test "${enable_ospf_te+set}" = set; then
   enableval="$enable_ospf_te"
-  :
-fi
 
+fi;
 # Check whether --enable-multipath or --disable-multipath was given.
 if test "${enable_multipath+set}" = set; then
   enableval="$enable_multipath"
-  :
-fi
 
-
+fi;
 
 if test "${enable_broken_aliases}" = "yes"; then
   if test "${enable_netlink}" = "yes"
@@ -1526,47 +2821,50 @@
     echo "Sorry, you can't use netlink with broken aliases"
     exit 1
   fi
-  cat >> confdefs.h <<\EOF
-#define HAVE_BROKEN_ALIASES 
-EOF
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_BROKEN_ALIASES
+_ACEOF
 
   enable_netlink=no
 fi
 
 if test "${enable_tcp_zebra}" = "yes"; then
-  cat >> confdefs.h <<\EOF
-#define HAVE_TCP_ZEBRA 
-EOF
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_TCP_ZEBRA
+_ACEOF
 
 fi
 
 if test "${enable_nssa}" = "yes"; then
-  cat >> confdefs.h <<\EOF
-#define HAVE_NSSA 
-EOF
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_NSSA
+_ACEOF
 
 fi
 
 if test "${enable_opaque_lsa}" = "yes"; then
-  cat >> confdefs.h <<\EOF
-#define HAVE_OPAQUE_LSA 
-EOF
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_OPAQUE_LSA
+_ACEOF
 
 fi
 
 if test "${enable_ospf_te}" = "yes"; then
-  cat >> confdefs.h <<\EOF
-#define HAVE_OPAQUE_LSA 
-EOF
 
-  cat >> confdefs.h <<\EOF
-#define HAVE_OSPF_TE 
-EOF
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_OPAQUE_LSA
+_ACEOF
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_OSPF_TE
+_ACEOF
 
 fi
 
-
-
 MULTIPATH_NUM=1
 
 case "${enable_multipath}" in
@@ -1575,55 +2873,63 @@
     ;;
   "")
     ;;
-  *)           
+  *)
     echo "Please specify digit to --enable-multipath ARG."
     exit 1
     ;;
 esac
 
-
-
-
-echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1589: checking for ANSI C header files" >&5
-if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:2882: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+if test "${ac_cv_header_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 1594 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2888 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
 #include <string.h>
 #include <float.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1602: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
+
+_ACEOF
+if { (eval echo "$as_me:2896: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:2902: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
   ac_cv_header_stdc=yes
 else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
+  echo "$as_me: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
   ac_cv_header_stdc=no
 fi
-rm -f conftest*
+rm -f conftest.err conftest.$ac_ext
 
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 1619 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2924 "configure"
 #include "confdefs.h"
 #include <string.h>
-EOF
+
+_ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "memchr" >/dev/null 2>&1; then
   :
 else
-  rm -rf conftest*
   ac_cv_header_stdc=no
 fi
 rm -f conftest*
@@ -1632,16 +2938,16 @@
 
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 1637 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2942 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
-EOF
+
+_ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "free" >/dev/null 2>&1; then
   :
 else
-  rm -rf conftest*
   ac_cv_header_stdc=no
 fi
 rm -f conftest*
@@ -1650,172 +2956,437 @@
 
 if test $ac_cv_header_stdc = yes; then
   # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-if test "$cross_compiling" = yes; then
+  if test "$cross_compiling" = yes; then
   :
 else
-  cat > conftest.$ac_ext <<EOF
-#line 1658 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 2963 "configure"
 #include "confdefs.h"
 #include <ctype.h>
-#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int main () { int i; for (i = 0; i < 256; i++)
-if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
-exit (0); }
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
+                     || ('j' <= (c) && (c) <= 'r') \
+                     || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
 
-EOF
-if { (eval echo configure:1669: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+        || toupper (i) != TOUPPER (i))
+      exit(2);
+  exit (0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:2989: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:2992: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:2994: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:2997: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   :
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_header_stdc=no
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_header_stdc=no
 fi
-rm -fr conftest*
-fi
-
+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
-
-echo "$ac_t""$ac_cv_header_stdc" 1>&6
+fi
+echo "$as_me:3010: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
 if test $ac_cv_header_stdc = yes; then
-  cat >> confdefs.h <<\EOF
+
+cat >>confdefs.h <<\_ACEOF
 #define STDC_HEADERS 1
-EOF
+_ACEOF
 
 fi
 
-for ac_hdr in string.h stropts.h sys/conf.h sys/ksym.h sys/time.h sys/times.h sys/select.h sys/sysctl.h sys/sockio.h sys/types.h net/if_dl.h net/if_var.h linux/version.h kvm.h netdb.h netinet/in.h net/netopt.h netinet/in_var.h netinet/in6_var.h netinet/in6.h inet/nd.h asm/types.h netinet/icmp6.h netinet6/nd6.h libutil.h
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+                  inttypes.h stdint.h unistd.h
 do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1696: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:3026: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 1701 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 3032 "configure"
 #include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1706: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
+$ac_includes_default
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:3039: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:3042: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:3045: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3048: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Header=yes"
 else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+eval "$as_ac_Header=no"
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
- 
-else
-  echo "$ac_t""no" 1>&6
+echo "$as_me:3058: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
 fi
+
 done
 
-
-echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:1734: checking for working const" >&5
-if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+for ac_header in string.h stropts.h sys/conf.h sys/ksym.h sys/time.h sys/times.h sys/select.h sys/sysctl.h sys/sockio.h sys/types.h net/if_dl.h net/if_var.h linux/version.h kvm.h netdb.h netinet/in.h net/netopt.h netinet/in_var.h netinet/in6_var.h netinet/in6.h inet/nd.h asm/types.h netinet/icmp6.h netinet6/nd6.h libutil.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:3073: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:3078: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 1739 "configure"
+  # Is the header compilable?
+echo "$as_me:3082: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line 3085 "configure"
+#include "confdefs.h"
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:3091: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:3094: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:3097: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3100: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_header_compiler=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:3109: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:3113: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line 3116 "configure"
+#include "confdefs.h"
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:3120: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:3126: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:3144: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc in
+  yes:no )
+    { echo "$as_me:3150: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:3152: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
+  no:yes )
+    { echo "$as_me:3155: WARNING: $ac_header: present but cannot be compiled." >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled." >&2;}
+    { echo "$as_me:3157: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:3159: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
+esac
+echo "$as_me:3162: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=$ac_header_preproc"
+fi
+echo "$as_me:3169: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+echo "$as_me:3182: checking for $CC option to accept ANSI C" >&5
+echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_prog_cc_stdc=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+#line 3190 "configure"
+#include "confdefs.h"
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX			-qlanglvl=ansi
+# Ultrix and OSF/1	-std1
+# HP-UX 10.20 and later	-Ae
+# HP-UX older versions	-Aa -D_HPUX_SOURCE
+# SVR4			-Xc -D__EXTENSIONS__
+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  rm -f conftest.$ac_objext
+if { (eval echo "$as_me:3245: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:3248: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:3251: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3254: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cc_stdc=$ac_arg
+break
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext
+done
+rm -f conftest.$ac_ext conftest.$ac_objext
+CC=$ac_save_CC
+
+fi
+
+case "x$ac_cv_prog_cc_stdc" in
+  x|xno)
+    echo "$as_me:3271: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6 ;;
+  *)
+    echo "$as_me:3274: result: $ac_cv_prog_cc_stdc" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+    CC="$CC $ac_cv_prog_cc_stdc" ;;
+esac
+
+echo "$as_me:3279: checking for an ANSI C-conforming const" >&5
+echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
+if test "${ac_cv_c_const+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 3285 "configure"
 #include "confdefs.h"
 
-int main() {
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+/* FIXME: Include the comments suggested by Paul. */
+#ifndef __cplusplus
+  /* Ultrix mips cc rejects this.  */
+  typedef int charset[2];
+  const charset x;
+  /* SunOS 4.1.1 cc rejects this.  */
+  char const *const *ccp;
+  char **p;
+  /* NEC SVR4.0.2 mips cc rejects this.  */
+  struct point {int x, y;};
+  static struct point const zero = {0,0};
+  /* AIX XL C 1.02.0.0 rejects this.
+     It does not let you subtract one const X* pointer from another in
+     an arm of an if-expression whose if-part is not a constant
+     expression */
+  const char *g = "string";
+  ccp = &g + (g ? g-g : 0);
+  /* HPUX 7.0 cc rejects these. */
+  ++ccp;
+  p = (char**) ccp;
+  ccp = (char const *const *) p;
+  { /* SCO 3.2v4 cc rejects this.  */
+    char *t;
+    char const *s = 0 ? (char *) 0 : (char const *) 0;
 
-/* Ultrix mips cc rejects this.  */
-typedef int charset[2]; const charset x;
-/* SunOS 4.1.1 cc rejects this.  */
-char const *const *ccp;
-char **p;
-/* NEC SVR4.0.2 mips cc rejects this.  */
-struct point {int x, y;};
-static struct point const zero = {0,0};
-/* AIX XL C 1.02.0.0 rejects this.
-   It does not let you subtract one const X* pointer from another in an arm
-   of an if-expression whose if-part is not a constant expression */
-const char *g = "string";
-ccp = &g + (g ? g-g : 0);
-/* HPUX 7.0 cc rejects these. */
-++ccp;
-p = (char**) ccp;
-ccp = (char const *const *) p;
-{ /* SCO 3.2v4 cc rejects this.  */
-  char *t;
-  char const *s = 0 ? (char *) 0 : (char const *) 0;
+    *t++ = 0;
+  }
+  { /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
+    int x[] = {25, 17};
+    const int *foo = &x[0];
+    ++foo;
+  }
+  { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+    typedef const int *iptr;
+    iptr p = 0;
+    ++p;
+  }
+  { /* AIX XL C 1.02.0.0 rejects this saying
+       "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+    struct s { int j; const int *ap[3]; };
+    struct s *b; b->j = 5;
+  }
+  { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+    const int foo = 10;
+  }
+#endif
 
-  *t++ = 0;
+  ;
+  return 0;
 }
-{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
-  int x[] = {25, 17};
-  const int *foo = &x[0];
-  ++foo;
-}
-{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
-  typedef const int *iptr;
-  iptr p = 0;
-  ++p;
-}
-{ /* AIX XL C 1.02.0.0 rejects this saying
-     "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
-  struct s { int j; const int *ap[3]; };
-  struct s *b; b->j = 5;
-}
-{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
-  const int foo = 10;
-}
-
-; return 0; }
-EOF
-if { (eval echo configure:1788: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:3349: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:3352: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:3355: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3358: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   ac_cv_c_const=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_c_const=no
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_c_const=no
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-
-echo "$ac_t""$ac_cv_c_const" 1>&6
+echo "$as_me:3368: result: $ac_cv_c_const" >&5
+echo "${ECHO_T}$ac_cv_c_const" >&6
 if test $ac_cv_c_const = no; then
-  cat >> confdefs.h <<\EOF
-#define const 
-EOF
+
+cat >>confdefs.h <<\_ACEOF
+#define const
+_ACEOF
 
 fi
 
-echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:1809: checking return type of signal handlers" >&5
-if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:3378: checking return type of signal handlers" >&5
+echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
+if test "${ac_cv_type_signal+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 1814 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 3384 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
 #ifdef signal
-#undef signal
+# undef signal
 #endif
 #ifdef __cplusplus
 extern "C" void (*signal (int, void (*)(int)))(int);
@@ -1823,334 +3394,449 @@
 void (*signal ()) ();
 #endif
 
-int main() {
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
 int i;
-; return 0; }
-EOF
-if { (eval echo configure:1831: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:3412: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:3415: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:3418: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3421: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   ac_cv_type_signal=void
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_type_signal=int
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_type_signal=int
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 fi
+echo "$as_me:3431: result: $ac_cv_type_signal" >&5
+echo "${ECHO_T}$ac_cv_type_signal" >&6
 
-echo "$ac_t""$ac_cv_type_signal" 1>&6
-cat >> confdefs.h <<EOF
+cat >>confdefs.h <<_ACEOF
 #define RETSIGTYPE $ac_cv_type_signal
-EOF
-
-
+_ACEOF
 
 case "$host" in
   *-sunos5.6* | *-solaris2.6*)
       opsys=sol2-6
-      cat >> confdefs.h <<\EOF
-#define SUNOS_5 
-EOF
 
-      echo $ac_n "checking for main in -lxnet""... $ac_c" 1>&6
-echo "configure:1858: checking for main in -lxnet" >&5
-ac_lib_var=`echo xnet'_'main | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+cat >>confdefs.h <<\_ACEOF
+#define SUNOS_5
+_ACEOF
+
+echo "$as_me:3446: checking for main in -lxnet" >&5
+echo $ECHO_N "checking for main in -lxnet... $ECHO_C" >&6
+if test "${ac_cv_lib_xnet_main+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lxnet  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1866 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 3454 "configure"
 #include "confdefs.h"
 
-int main() {
-main()
-; return 0; }
-EOF
-if { (eval echo configure:1873: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+main ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:3472: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:3475: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:3478: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3481: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_xnet_main=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_xnet_main=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_lib=HAVE_LIB`echo xnet | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
+echo "$as_me:3492: result: $ac_cv_lib_xnet_main" >&5
+echo "${ECHO_T}$ac_cv_lib_xnet_main" >&6
+if test $ac_cv_lib_xnet_main = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBXNET 1
+_ACEOF
 
   LIBS="-lxnet $LIBS"
 
-else
-  echo "$ac_t""no" 1>&6
 fi
 
       CURSES=-lcurses
   ;;
   *-sunos5* | *-solaris2*)
-      cat >> confdefs.h <<\EOF
-#define SUNOS_5 
-EOF
 
-      echo $ac_n "checking for main in -lsocket""... $ac_c" 1>&6
-echo "configure:1908: checking for main in -lsocket" >&5
-ac_lib_var=`echo socket'_'main | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+cat >>confdefs.h <<\_ACEOF
+#define SUNOS_5
+_ACEOF
+
+echo "$as_me:3511: checking for main in -lsocket" >&5
+echo $ECHO_N "checking for main in -lsocket... $ECHO_C" >&6
+if test "${ac_cv_lib_socket_main+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lsocket  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1916 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 3519 "configure"
 #include "confdefs.h"
 
-int main() {
-main()
-; return 0; }
-EOF
-if { (eval echo configure:1923: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+main ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:3537: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:3540: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:3543: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3546: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_socket_main=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_socket_main=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_lib=HAVE_LIB`echo socket | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
+echo "$as_me:3557: result: $ac_cv_lib_socket_main" >&5
+echo "${ECHO_T}$ac_cv_lib_socket_main" >&6
+if test $ac_cv_lib_socket_main = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBSOCKET 1
+_ACEOF
 
   LIBS="-lsocket $LIBS"
 
-else
-  echo "$ac_t""no" 1>&6
 fi
 
-      echo $ac_n "checking for main in -lnsl""... $ac_c" 1>&6
-echo "configure:1951: checking for main in -lnsl" >&5
-ac_lib_var=`echo nsl'_'main | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:3568: checking for main in -lnsl" >&5
+echo $ECHO_N "checking for main in -lnsl... $ECHO_C" >&6
+if test "${ac_cv_lib_nsl_main+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lnsl  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1959 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 3576 "configure"
 #include "confdefs.h"
 
-int main() {
-main()
-; return 0; }
-EOF
-if { (eval echo configure:1966: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+main ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:3594: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:3597: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:3600: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3603: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_nsl_main=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_nsl_main=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_lib=HAVE_LIB`echo nsl | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
+echo "$as_me:3614: result: $ac_cv_lib_nsl_main" >&5
+echo "${ECHO_T}$ac_cv_lib_nsl_main" >&6
+if test $ac_cv_lib_nsl_main = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBNSL 1
+_ACEOF
 
   LIBS="-lnsl $LIBS"
 
-else
-  echo "$ac_t""no" 1>&6
 fi
 
       CURSES=-lcurses
   ;;
   *-linux-*)
       opsys=gnu-linux
-      cat >> confdefs.h <<\EOF
-#define GNU_LINUX 
-EOF
+
+cat >>confdefs.h <<\_ACEOF
+#define GNU_LINUX
+_ACEOF
 
   ;;
   *-nec-sysv4*)
-      echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:2004: checking for gethostbyname in -lnsl" >&5
-ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+
+echo "$as_me:3637: checking for gethostbyname in -lnsl" >&5
+echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6
+if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lnsl  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2012 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 3645 "configure"
 #include "confdefs.h"
+
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char gethostbyname();
-
-int main() {
-gethostbyname()
-; return 0; }
-EOF
-if { (eval echo configure:2023: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+   builtin and then its argument prototype would still apply.  */
+char gethostbyname ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+gethostbyname ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:3670: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:3673: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:3676: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3679: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_nsl_gethostbyname=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_nsl_gethostbyname=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_lib=HAVE_LIB`echo nsl | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
+echo "$as_me:3690: result: $ac_cv_lib_nsl_gethostbyname" >&5
+echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6
+if test $ac_cv_lib_nsl_gethostbyname = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBNSL 1
+_ACEOF
 
   LIBS="-lnsl $LIBS"
 
-else
-  echo "$ac_t""no" 1>&6
 fi
 
-      echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6
-echo "configure:2051: checking for socket in -lsocket" >&5
-ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:3701: checking for socket in -lsocket" >&5
+echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6
+if test "${ac_cv_lib_socket_socket+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lsocket  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2059 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 3709 "configure"
 #include "confdefs.h"
+
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char socket();
-
-int main() {
-socket()
-; return 0; }
-EOF
-if { (eval echo configure:2070: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+   builtin and then its argument prototype would still apply.  */
+char socket ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+socket ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:3734: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:3737: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:3740: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3743: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_socket_socket=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_socket_socket=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_lib=HAVE_LIB`echo socket | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
+echo "$as_me:3754: result: $ac_cv_lib_socket_socket" >&5
+echo "${ECHO_T}$ac_cv_lib_socket_socket" >&6
+if test $ac_cv_lib_socket_socket = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBSOCKET 1
+_ACEOF
 
   LIBS="-lsocket $LIBS"
 
-else
-  echo "$ac_t""no" 1>&6
 fi
 
   ;;
   *-freebsd3.2)
-      cat >> confdefs.h <<\EOF
-#define FREEBSD_32 
-EOF
+
+cat >>confdefs.h <<\_ACEOF
+#define FREEBSD_32
+_ACEOF
 
   ;;
   *-openbsd*)
       opsys=openbsd
-      cat >> confdefs.h <<\EOF
-#define OPEN_BSD 
-EOF
+
+cat >>confdefs.h <<\_ACEOF
+#define OPEN_BSD
+_ACEOF
 
   ;;
   *-bsdi*)
       opsys=bsdi
       OTHER_METHOD="mtu_kvm.o"
-      echo $ac_n "checking for main in -lkvm""... $ac_c" 1>&6
-echo "configure:2115: checking for main in -lkvm" >&5
-ac_lib_var=`echo kvm'_'main | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+
+echo "$as_me:3785: checking for main in -lkvm" >&5
+echo $ECHO_N "checking for main in -lkvm... $ECHO_C" >&6
+if test "${ac_cv_lib_kvm_main+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lkvm  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2123 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 3793 "configure"
 #include "confdefs.h"
 
-int main() {
-main()
-; return 0; }
-EOF
-if { (eval echo configure:2130: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+main ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:3811: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:3814: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:3817: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3820: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_kvm_main=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_kvm_main=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_lib=HAVE_LIB`echo kvm | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
+echo "$as_me:3831: result: $ac_cv_lib_kvm_main" >&5
+echo "${ECHO_T}$ac_cv_lib_kvm_main" >&6
+if test $ac_cv_lib_kvm_main = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBKVM 1
+_ACEOF
 
   LIBS="-lkvm $LIBS"
 
-else
-  echo "$ac_t""no" 1>&6
 fi
 
   ;;
@@ -2158,185 +3844,309 @@
 
 case "${enable_vtysh}" in
   "yes") VTYSH="vtysh";
-         cat >> confdefs.h <<\EOF
-#define VTYSH 
-EOF
 
-	 echo $ac_n "checking for tputs in -ltinfo""... $ac_c" 1>&6
-echo "configure:2167: checking for tputs in -ltinfo" >&5
-ac_lib_var=`echo tinfo'_'tputs | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+cat >>confdefs.h <<\_ACEOF
+#define VTYSH
+_ACEOF
+
+echo "$as_me:3852: checking for tputs in -ltinfo" >&5
+echo $ECHO_N "checking for tputs in -ltinfo... $ECHO_C" >&6
+if test "${ac_cv_lib_tinfo_tputs+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-ltinfo  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2175 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 3860 "configure"
 #include "confdefs.h"
+
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char tputs();
-
-int main() {
-tputs()
-; return 0; }
-EOF
-if { (eval echo configure:2186: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+   builtin and then its argument prototype would still apply.  */
+char tputs ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+tputs ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:3885: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:3888: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:3891: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3894: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_tinfo_tputs=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_tinfo_tputs=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_lib=HAVE_LIB`echo tinfo | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
+echo "$as_me:3905: result: $ac_cv_lib_tinfo_tputs" >&5
+echo "${ECHO_T}$ac_cv_lib_tinfo_tputs" >&6
+if test $ac_cv_lib_tinfo_tputs = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBTINFO 1
+_ACEOF
 
   LIBS="-ltinfo $LIBS"
 
 else
-  echo "$ac_t""no" 1>&6
-echo $ac_n "checking for tputs in -lncurses""... $ac_c" 1>&6
-echo "configure:2212: checking for tputs in -lncurses" >&5
-ac_lib_var=`echo ncurses'_'tputs | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+
+echo "$as_me:3916: checking for tputs in -lncurses" >&5
+echo $ECHO_N "checking for tputs in -lncurses... $ECHO_C" >&6
+if test "${ac_cv_lib_ncurses_tputs+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lncurses  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2220 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 3924 "configure"
 #include "confdefs.h"
+
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char tputs();
-
-int main() {
-tputs()
-; return 0; }
-EOF
-if { (eval echo configure:2231: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+   builtin and then its argument prototype would still apply.  */
+char tputs ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+tputs ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:3949: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:3952: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:3955: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:3958: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_ncurses_tputs=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_ncurses_tputs=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_lib=HAVE_LIB`echo ncurses | sed -e 's/^a-zA-Z0-9_/_/g' \
-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
+echo "$as_me:3969: result: $ac_cv_lib_ncurses_tputs" >&5
+echo "${ECHO_T}$ac_cv_lib_ncurses_tputs" >&6
+if test $ac_cv_lib_ncurses_tputs = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBNCURSES 1
+_ACEOF
 
   LIBS="-lncurses $LIBS"
 
-else
-  echo "$ac_t""no" 1>&6
 fi
 
 fi
 
-         echo $ac_n "checking for main in -lreadline""... $ac_c" 1>&6
-echo "configure:2261: checking for main in -lreadline" >&5
-ac_lib_var=`echo readline'_'main | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:3982: checking for main in -lreadline" >&5
+echo $ECHO_N "checking for main in -lreadline... $ECHO_C" >&6
+if test "${ac_cv_lib_readline_main+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lreadline  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2269 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 3990 "configure"
 #include "confdefs.h"
 
-int main() {
-main()
-; return 0; }
-EOF
-if { (eval echo configure:2276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+main ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4008: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4011: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:4014: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4017: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_readline_main=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_readline_main=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_lib=HAVE_LIB`echo readline | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
+echo "$as_me:4028: result: $ac_cv_lib_readline_main" >&5
+echo "${ECHO_T}$ac_cv_lib_readline_main" >&6
+if test $ac_cv_lib_readline_main = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBREADLINE 1
+_ACEOF
 
   LIBS="-lreadline $LIBS"
 
-else
-  echo "$ac_t""no" 1>&6
 fi
 
          if test $ac_cv_lib_readline_main = no; then
-           { echo "configure: error: vtysh needs libreadline but was not found on your system." 1>&2; exit 1; }
+           { { echo "$as_me:4040: error: vtysh needs libreadline but was not found on your system." >&5
+echo "$as_me: error: vtysh needs libreadline but was not found on your system." >&2;}
+   { (exit 1); exit 1; }; }
          fi
-	 ac_safe=`echo "readline/history.h" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for readline/history.h""... $ac_c" 1>&6
-echo "configure:2308: checking for readline/history.h" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+	 if test "${ac_cv_header_readline_history_h+set}" = set; then
+  echo "$as_me:4045: checking for readline/history.h" >&5
+echo $ECHO_N "checking for readline/history.h... $ECHO_C" >&6
+if test "${ac_cv_header_readline_history_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:4050: result: $ac_cv_header_readline_history_h" >&5
+echo "${ECHO_T}$ac_cv_header_readline_history_h" >&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 2313 "configure"
+  # Is the header compilable?
+echo "$as_me:4054: checking readline/history.h usability" >&5
+echo $ECHO_N "checking readline/history.h usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line 4057 "configure"
+#include "confdefs.h"
+$ac_includes_default
+#include <readline/history.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:4063: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:4066: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:4069: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4072: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_header_compiler=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:4081: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:4085: checking readline/history.h presence" >&5
+echo $ECHO_N "checking readline/history.h presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line 4088 "configure"
 #include "confdefs.h"
 #include <readline/history.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2318: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
+_ACEOF
+if { (eval echo "$as_me:4092: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  egrep -v '^ *\+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:4098: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+  else
+    ac_cpp_err=
+  fi
 else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+  ac_header_preproc=no
 fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  :
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:4116: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc in
+  yes:no )
+    { echo "$as_me:4122: WARNING: readline/history.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: readline/history.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:4124: WARNING: readline/history.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: readline/history.h: proceeding with the preprocessor's result" >&2;};;
+  no:yes )
+    { echo "$as_me:4127: WARNING: readline/history.h: present but cannot be compiled." >&5
+echo "$as_me: WARNING: readline/history.h: present but cannot be compiled." >&2;}
+    { echo "$as_me:4129: WARNING: readline/history.h: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: readline/history.h: check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:4131: WARNING: readline/history.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: readline/history.h: proceeding with the preprocessor's result" >&2;};;
+esac
+echo "$as_me:4134: checking for readline/history.h" >&5
+echo $ECHO_N "checking for readline/history.h... $ECHO_C" >&6
+if test "${ac_cv_header_readline_history_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  echo "$ac_t""no" 1>&6
+  ac_cv_header_readline_history_h=$ac_header_preproc
+fi
+echo "$as_me:4141: result: $ac_cv_header_readline_history_h" >&5
+echo "${ECHO_T}$ac_cv_header_readline_history_h" >&6
+
 fi
 
 	 if test $ac_cv_header_readline_history_h = no;then
-           { echo "configure: error: readline is too old to have readline/history.h, please update to the latest readline library." 1>&2; exit 1; }
+           { { echo "$as_me:4147: error: readline is too old to have readline/history.h, please update to the latest readline library." >&5
+echo "$as_me: error: readline is too old to have readline/history.h, please update to the latest readline library." >&2;}
+   { (exit 1); exit 1; }; }
 	 fi
          ;;
   "no" ) VTYSH="";;
@@ -2344,249 +4154,419 @@
 esac
 
 if test "$with_libpam" = "yes"; then
-echo $ac_n "checking for pam_start in -lpam""... $ac_c" 1>&6
-echo "configure:2349: checking for pam_start in -lpam" >&5
-ac_lib_var=`echo pam'_'pam_start | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:4157: checking for pam_start in -lpam" >&5
+echo $ECHO_N "checking for pam_start in -lpam... $ECHO_C" >&6
+if test "${ac_cv_lib_pam_pam_start+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lpam  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2357 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 4165 "configure"
 #include "confdefs.h"
+
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char pam_start();
-
-int main() {
-pam_start()
-; return 0; }
-EOF
-if { (eval echo configure:2368: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+   builtin and then its argument prototype would still apply.  */
+char pam_start ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+pam_start ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4190: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4193: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:4196: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4199: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_pam_pam_start=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_pam_pam_start=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  echo $ac_n "checking for misc_conv in -lpam""... $ac_c" 1>&6
-echo "configure:2384: checking for misc_conv in -lpam" >&5
-ac_lib_var=`echo pam'_'misc_conv | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:4210: result: $ac_cv_lib_pam_pam_start" >&5
+echo "${ECHO_T}$ac_cv_lib_pam_pam_start" >&6
+if test $ac_cv_lib_pam_pam_start = yes; then
+  echo "$as_me:4213: checking for misc_conv in -lpam" >&5
+echo $ECHO_N "checking for misc_conv in -lpam... $ECHO_C" >&6
+if test "${ac_cv_lib_pam_misc_conv+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lpam  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2392 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 4221 "configure"
 #include "confdefs.h"
+
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char misc_conv();
-
-int main() {
-misc_conv()
-; return 0; }
-EOF
-if { (eval echo configure:2403: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+   builtin and then its argument prototype would still apply.  */
+char misc_conv ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+misc_conv ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4246: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4249: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:4252: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4255: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_pam_misc_conv=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_pam_misc_conv=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:4266: result: $ac_cv_lib_pam_misc_conv" >&5
+echo "${ECHO_T}$ac_cv_lib_pam_misc_conv" >&6
+if test $ac_cv_lib_pam_misc_conv = yes; then
 
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  cat >> confdefs.h <<\EOF
-#define USE_PAM 
-EOF
+cat >>confdefs.h <<\_ACEOF
+#define USE_PAM
+_ACEOF
 
      LIBPAM="-lpam"
 else
-  echo "$ac_t""no" 1>&6
-cat >> confdefs.h <<\EOF
-#define USE_PAM 
-EOF
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_PAM
+_ACEOF
 
      LIBPAM="-lpam -lpam_misc"
-    
+
 fi
 
-  
 else
-  echo "$ac_t""no" 1>&6
-echo $ac_n "checking for pam_end in -lpam""... $ac_c" 1>&6
-echo "configure:2437: checking for pam_end in -lpam" >&5
-ac_lib_var=`echo pam'_'pam_end | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+  echo "$as_me:4286: checking for pam_end in -lpam" >&5
+echo $ECHO_N "checking for pam_end in -lpam... $ECHO_C" >&6
+if test "${ac_cv_lib_pam_pam_end+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lpam -ldl $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2445 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 4294 "configure"
 #include "confdefs.h"
+
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char pam_end();
-
-int main() {
-pam_end()
-; return 0; }
-EOF
-if { (eval echo configure:2456: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+   builtin and then its argument prototype would still apply.  */
+char pam_end ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+pam_end ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4319: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4322: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:4325: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4328: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_pam_pam_end=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_pam_pam_end=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  echo $ac_n "checking for misc_conv in -lpam""... $ac_c" 1>&6
-echo "configure:2472: checking for misc_conv in -lpam" >&5
-ac_lib_var=`echo pam'_'misc_conv | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:4339: result: $ac_cv_lib_pam_pam_end" >&5
+echo "${ECHO_T}$ac_cv_lib_pam_pam_end" >&6
+if test $ac_cv_lib_pam_pam_end = yes; then
+  echo "$as_me:4342: checking for misc_conv in -lpam" >&5
+echo $ECHO_N "checking for misc_conv in -lpam... $ECHO_C" >&6
+if test "${ac_cv_lib_pam_misc_conv+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lpam  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2480 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 4350 "configure"
 #include "confdefs.h"
+
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char misc_conv();
-
-int main() {
-misc_conv()
-; return 0; }
-EOF
-if { (eval echo configure:2491: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+   builtin and then its argument prototype would still apply.  */
+char misc_conv ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+misc_conv ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4375: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4378: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:4381: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4384: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_pam_misc_conv=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_pam_misc_conv=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  cat >> confdefs.h <<\EOF
+echo "$as_me:4395: result: $ac_cv_lib_pam_misc_conv" >&5
+echo "${ECHO_T}$ac_cv_lib_pam_misc_conv" >&6
+if test $ac_cv_lib_pam_misc_conv = yes; then
+  cat >>confdefs.h <<\_ACEOF
 #define USE_PAM 1
-EOF
+_ACEOF
 
        LIBPAM="-lpam -ldl"
 else
-  echo "$ac_t""no" 1>&6
-cat >> confdefs.h <<\EOF
+  cat >>confdefs.h <<\_ACEOF
 #define USE_PAM 1
-EOF
+_ACEOF
 
        LIBPAM="-lpam -ldl -lpam_misc"
-     
+
 fi
 
-  
 else
-  echo "$ac_t""no" 1>&6
-echo "configure: warning: *** pam support will not be built ***" 1>&2
+  { echo "$as_me:4413: WARNING: *** pam support will not be built ***" >&5
+echo "$as_me: WARNING: *** pam support will not be built ***" >&2;}
 fi
 
-  
-
 fi
 
 fi
 
-
-echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:2535: checking whether byte ordering is bigendian" >&5
-if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:4421: checking whether byte ordering is bigendian" >&5
+echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6
+if test "${ac_cv_c_bigendian+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_c_bigendian=unknown
-# See if sys/param.h defines the BYTE_ORDER macro.
-cat > conftest.$ac_ext <<EOF
-#line 2542 "configure"
+  # See if sys/param.h defines the BYTE_ORDER macro.
+cat >conftest.$ac_ext <<_ACEOF
+#line 4428 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
-int main() {
 
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
 #if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
  bogus endian macros
 #endif
-; return 0; }
-EOF
-if { (eval echo configure:2553: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:4451: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:4454: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:4457: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4460: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   # It does; now see whether it defined to BIG_ENDIAN or not.
-cat > conftest.$ac_ext <<EOF
-#line 2557 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 4464 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
-int main() {
 
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
 #if BYTE_ORDER != BIG_ENDIAN
  not big endian
 #endif
-; return 0; }
-EOF
-if { (eval echo configure:2568: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:4487: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:4490: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:4493: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4496: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   ac_cv_c_bigendian=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_c_bigendian=no
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_c_bigendian=no
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-if test $ac_cv_c_bigendian = unknown; then
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+# It does not; compile a test program.
 if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
-  cat > conftest.$ac_ext <<EOF
-#line 2588 "configure"
+  # try to guess the endianess by grep'ing values into an object file
+  ac_cv_c_bigendian=unknown
+  cat >conftest.$ac_ext <<_ACEOF
+#line 4513 "configure"
 #include "confdefs.h"
-main () {
+short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; }
+short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; }
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+ _ascii (); _ebcdic ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:4536: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:4539: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:4542: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4545: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  if fgrep BIGenDianSyS conftest.$ac_objext >/dev/null ; then
+  ac_cv_c_bigendian=yes
+fi
+if fgrep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+  if test "$ac_cv_c_bigendian" = unknown; then
+    ac_cv_c_bigendian=no
+  else
+    # finding both strings is unlikely to happen, but who knows?
+    ac_cv_c_bigendian=unknown
+  fi
+fi
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line 4565 "configure"
+#include "confdefs.h"
+int
+main ()
+{
   /* Are we little or big endian?  From Harbison&Steele.  */
   union
   {
@@ -2596,223 +4576,306 @@
   u.l = 1;
   exit (u.c[sizeof (long) - 1] == 1);
 }
-EOF
-if { (eval echo configure:2601: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:4581: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4584: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:4586: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4589: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   ac_cv_c_bigendian=no
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_c_bigendian=yes
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_c_bigendian=yes
 fi
-rm -fr conftest*
+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:4603: result: $ac_cv_c_bigendian" >&5
+echo "${ECHO_T}$ac_cv_c_bigendian" >&6
+case $ac_cv_c_bigendian in
+  yes)
 
-fi
-fi
-
-echo "$ac_t""$ac_cv_c_bigendian" 1>&6
-if test $ac_cv_c_bigendian = yes; then
-  cat >> confdefs.h <<\EOF
+cat >>confdefs.h <<\_ACEOF
 #define WORDS_BIGENDIAN 1
-EOF
-
-fi
-
-
+_ACEOF
+ ;;
+  no)
+     ;;
+  *)
+    { { echo "$as_me:4615: error: unknown endianess
+presetting ac_cv_c_bigendian=no (or yes) will help" >&5
+echo "$as_me: error: unknown endianess
+presetting ac_cv_c_bigendian=no (or yes) will help" >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
 
 for ac_func in bcopy bzero strerror inet_aton daemon snprintf vsnprintf strlcat strlcpy if_nametoindex if_indextoname getifaddrs
 do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2629: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:4625: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 2634 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 4631 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func(); below.  */
+    which can conflict with char $ac_func (); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char $ac_func();
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+char (*f) ();
 
-int main() {
-
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-$ac_func();
+f = $ac_func;
 #endif
 
-; return 0; }
-EOF
-if { (eval echo configure:2657: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=yes"
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4668: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4671: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:4674: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4677: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+eval "$as_ac_var=no"
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
+echo "$as_me:4687: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
- 
-else
-  echo "$ac_t""no" 1>&6
 fi
 done
 
 for ac_func in setproctitle
 do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2684: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:4700: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 2689 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 4706 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func(); below.  */
+    which can conflict with char $ac_func (); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char $ac_func();
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+char (*f) ();
 
-int main() {
-
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-$ac_func();
+f = $ac_func;
 #endif
 
-; return 0; }
-EOF
-if { (eval echo configure:2712: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=yes"
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4743: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4746: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:4749: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4752: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+eval "$as_ac_var=no"
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
+echo "$as_me:4762: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
- 
 else
-  echo "$ac_t""no" 1>&6
-echo $ac_n "checking for setproctitle in -lutil""... $ac_c" 1>&6
-echo "configure:2734: checking for setproctitle in -lutil" >&5
-ac_lib_var=`echo util'_'setproctitle | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+  echo "$as_me:4770: checking for setproctitle in -lutil" >&5
+echo $ECHO_N "checking for setproctitle in -lutil... $ECHO_C" >&6
+if test "${ac_cv_lib_util_setproctitle+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lutil  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2742 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 4778 "configure"
 #include "confdefs.h"
+
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char setproctitle();
-
-int main() {
-setproctitle()
-; return 0; }
-EOF
-if { (eval echo configure:2753: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+   builtin and then its argument prototype would still apply.  */
+char setproctitle ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+setproctitle ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4803: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4806: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:4809: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4812: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_util_setproctitle=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_util_setproctitle=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  LIBS="$LIBS -lutil"; cat >> confdefs.h <<\EOF
+echo "$as_me:4823: result: $ac_cv_lib_util_setproctitle" >&5
+echo "${ECHO_T}$ac_cv_lib_util_setproctitle" >&6
+if test $ac_cv_lib_util_setproctitle = yes; then
+  LIBS="$LIBS -lutil"; cat >>confdefs.h <<\_ACEOF
 #define HAVE_SETPROCTITLE 1
-EOF
+_ACEOF
 
-else
-  echo "$ac_t""no" 1>&6
 fi
 
 fi
 done
 
-
-echo $ac_n "checking zebra between kernel interface method""... $ac_c" 1>&6
-echo "configure:2781: checking zebra between kernel interface method" >&5
+echo "$as_me:4835: checking zebra between kernel interface method" >&5
+echo $ECHO_N "checking zebra between kernel interface method... $ECHO_C" >&6
 if test x"$opsys" = x"gnu-linux"; then
   if test "${enable_netlink}" = "yes";then
-    echo "$ac_t""netlink" 1>&6
+    echo "$as_me:4839: result: netlink" >&5
+echo "${ECHO_T}netlink" >&6
     RT_METHOD=rt_netlink.o
-    cat >> confdefs.h <<\EOF
-#define HAVE_NETLINK 
-EOF
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_NETLINK
+_ACEOF
 
     netlink=yes
   elif test "${enable_netlink}" = "no"; then
-    echo "$ac_t""ioctl" 1>&6
+    echo "$as_me:4849: result: ioctl" >&5
+echo "${ECHO_T}ioctl" >&6
     RT_METHOD=rt_ioctl.o
     netlink=no
   else
-    echo "$ac_t""netlink" 1>&6
+    echo "$as_me:4854: result: netlink" >&5
+echo "${ECHO_T}netlink" >&6
     RT_METHOD=rt_netlink.o
-    cat >> confdefs.h <<\EOF
-#define HAVE_NETLINK 
-EOF
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_NETLINK
+_ACEOF
 
     netlink=yes
   fi
 else
   if test "$opsys" = "sol2-6";then
-    echo "$ac_t""solaris" 1>&6
+    echo "$as_me:4866: result: solaris" >&5
+echo "${ECHO_T}solaris" >&6
     KERNEL_METHOD="kernel_socket.o"
     RT_METHOD="rt_socket.o"
   else
     if test "$cross_compiling" = yes; then
   KERNEL_METHOD=kernel_socket.o
    RT_METHOD=rt_socket.o
-   echo "$ac_t""socket" 1>&6
+   echo "$as_me:4874: result: socket" >&5
+echo "${ECHO_T}socket" >&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 2816 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 4878 "configure"
 #include "confdefs.h"
 #include <errno.h>
 #include <sys/types.h>
@@ -2827,32 +4890,39 @@
     exit (1);
   exit (0);
 }
-EOF
-if { (eval echo configure:2832: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:4895: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:4898: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:4900: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:4903: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   KERNEL_METHOD=kernel_socket.o
    RT_METHOD=rt_socket.o
-   echo "$ac_t""socket" 1>&6
+   echo "$as_me:4907: result: socket" >&5
+echo "${ECHO_T}socket" >&6
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  RT_METHOD=rt_ioctl.o
-   echo "$ac_t""ioctl" 1>&6
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+RT_METHOD=rt_ioctl.o
+   echo "$as_me:4914: result: ioctl" >&5
+echo "${ECHO_T}ioctl" >&6
 fi
-rm -fr conftest*
+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
-
   fi
 fi
 
-
-
-
-echo $ac_n "checking route read method check""... $ac_c" 1>&6
-echo "configure:2854: checking route read method check" >&5
-if eval "test \"`echo '$''{'zebra_rtread'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:4922: checking route read method check" >&5
+echo $ECHO_N "checking route read method check... $ECHO_C" >&6
+if test "${zebra_rtread+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   if test "$netlink" = yes; then
   RTREAD_METHOD="rtread_netlink.o"
@@ -2872,57 +4942,62 @@
 esac
 fi
 fi
+echo "$as_me:4945: result: $zebra_rtread" >&5
+echo "${ECHO_T}$zebra_rtread" >&6
 
-echo "$ac_t""$zebra_rtread" 1>&6
-
-
-echo $ac_n "checking interface looking up method""... $ac_c" 1>&6
-echo "configure:2881: checking interface looking up method" >&5
+echo "$as_me:4948: checking interface looking up method" >&5
+echo $ECHO_N "checking interface looking up method... $ECHO_C" >&6
 if test "$netlink" = yes; then
-  echo "$ac_t""netlink" 1>&6
+  echo "$as_me:4951: result: netlink" >&5
+echo "${ECHO_T}netlink" >&6
   IF_METHOD=if_netlink.o
 else
   if test "$opsys" = "sol2-6";then
-    echo "$ac_t""solaris" 1>&6
+    echo "$as_me:4956: result: solaris" >&5
+echo "${ECHO_T}solaris" >&6
     IF_METHOD=if_ioctl.o
   elif test "$opsys" = "openbsd";then
-    echo "$ac_t""openbsd" 1>&6
+    echo "$as_me:4960: result: openbsd" >&5
+echo "${ECHO_T}openbsd" >&6
     IF_METHOD=if_ioctl.o
   elif grep NET_RT_IFLIST /usr/include/sys/socket.h >/dev/null 2>&1; then
-    echo "$ac_t""sysctl" 1>&6
+    echo "$as_me:4964: result: sysctl" >&5
+echo "${ECHO_T}sysctl" >&6
     IF_METHOD=if_sysctl.o
-    cat >> confdefs.h <<\EOF
-#define HAVE_NET_RT_IFLIST 
-EOF
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_NET_RT_IFLIST
+_ACEOF
 
   else
-    echo "$ac_t""ioctl" 1>&6
+    echo "$as_me:4973: result: ioctl" >&5
+echo "${ECHO_T}ioctl" >&6
     IF_METHOD=if_ioctl.o
   fi
 fi
 
-
 if test -r /proc/net/dev; then
-  cat >> confdefs.h <<\EOF
-#define HAVE_PROC_NET_DEV 
-EOF
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_PROC_NET_DEV
+_ACEOF
 
   IF_PROC=if_proc.o
 fi
 
 if test -r /proc/net/if_inet6; then
-  cat >> confdefs.h <<\EOF
-#define HAVE_PROC_NET_IF_INET6 
-EOF
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_PROC_NET_IF_INET6
+_ACEOF
 
   IF_PROC=if_proc.o
 fi
 
-
-echo $ac_n "checking ipforward method check""... $ac_c" 1>&6
-echo "configure:2924: checking ipforward method check" >&5
-if eval "test \"`echo '$''{'zebra_ipforward_path'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:4997: checking ipforward method check" >&5
+echo $ECHO_N "checking ipforward method check... $ECHO_C" >&6
+if test "${zebra_ipforward_path+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   for zebra_ipforward_path in /proc/net/snmp /dev/ip /dev/null;
 do
@@ -2931,7 +5006,7 @@
 case $zebra_ipforward_path in
   "/proc/net/snmp")  IPFORWARD=ipforward_proc.o
                      zebra_ipforward_path="proc";;
-  "/dev/ip")         
+  "/dev/ip")
                      case "$host" in
                        *-nec-sysv4*)  IPFORWARD=ipforward_ews.o
                                       zebra_ipforward_path="ews";;
@@ -2942,130 +5017,158 @@
                      zebra_ipforward_path="sysctl";;
 esac
 fi
-
-echo "$ac_t""$zebra_ipforward_path" 1>&6
-
+echo "$as_me:5020: result: $zebra_ipforward_path" >&5
+echo "${ECHO_T}$zebra_ipforward_path" >&6
 
 for ac_func in getaddrinfo
 do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2953: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:5026: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 2958 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 5032 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func(); below.  */
+    which can conflict with char $ac_func (); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char $ac_func();
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+char (*f) ();
 
-int main() {
-
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-$ac_func();
+f = $ac_func;
 #endif
 
-; return 0; }
-EOF
-if { (eval echo configure:2981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=yes"
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:5069: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:5072: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:5075: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:5078: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+eval "$as_ac_var=no"
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
+echo "$as_me:5088: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
  have_getaddrinfo=yes
 else
-  echo "$ac_t""no" 1>&6
-have_getaddrinfo=no
+  have_getaddrinfo=no
 fi
 done
 
-
-echo $ac_n "checking whether does this OS have IPv6 stack""... $ac_c" 1>&6
-echo "configure:3008: checking whether does this OS have IPv6 stack" >&5
+echo "$as_me:5100: checking whether does this OS have IPv6 stack" >&5
+echo $ECHO_N "checking whether does this OS have IPv6 stack... $ECHO_C" >&6
 if test "${enable_ipv6}" = "no"; then
-  echo "$ac_t""disabled" 1>&6
+  echo "$as_me:5103: result: disabled" >&5
+echo "${ECHO_T}disabled" >&6
 else
 if grep IPV6_INRIA_VERSION /usr/include/netinet/in.h >/dev/null 2>&1; then
    zebra_cv_ipv6=yes
-   cat >> confdefs.h <<\EOF
-#define HAVE_IPV6 
-EOF
 
-   cat >> confdefs.h <<\EOF
-#define INRIA_IPV6 
-EOF
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_IPV6
+_ACEOF
+
+cat >>confdefs.h <<\_ACEOF
+#define INRIA_IPV6
+_ACEOF
 
    RIPNGD="ripngd"
    OSPF6D="ospf6d"
    LIB_IPV6=""
-   echo "$ac_t""INRIA IPv6" 1>&6
+   echo "$as_me:5120: result: INRIA IPv6" >&5
+echo "${ECHO_T}INRIA IPv6" >&6
 fi
 if grep WIDE /usr/include/netinet6/in6.h >/dev/null 2>&1; then
    zebra_cv_ipv6=yes
-   cat >> confdefs.h <<\EOF
-#define HAVE_IPV6 
-EOF
 
-   cat >> confdefs.h <<\EOF
-#define KAME 
-EOF
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_IPV6
+_ACEOF
+
+cat >>confdefs.h <<\_ACEOF
+#define KAME
+_ACEOF
 
    RIPNGD="ripngd"
    OSPF6D="ospf6d"
    if test -d /usr/local/v6/lib -a -f /usr/local/v6/lib/libinet6.a; then
       LIB_IPV6="-L/usr/local/v6/lib -linet6"
    fi
-   echo "$ac_t""KAME" 1>&6
+   echo "$as_me:5139: result: KAME" >&5
+echo "${ECHO_T}KAME" >&6
 fi
 if grep NRL /usr/include/netinet6/in6.h >/dev/null 2>&1; then
    zebra_cv_ipv6=yes
-   cat >> confdefs.h <<\EOF
-#define HAVE_IPV6 
-EOF
 
-   cat >> confdefs.h <<\EOF
-#define NRL 
-EOF
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_IPV6
+_ACEOF
+
+cat >>confdefs.h <<\_ACEOF
+#define NRL
+_ACEOF
 
    RIPNGD="ripngd"
    OSPF6D="ospf6d"
    if test x"$opsys" = x"bsdi";then
-      cat >> confdefs.h <<\EOF
-#define BSDI_NRL 
-EOF
 
-      echo "$ac_t""BSDI_NRL" 1>&6
+cat >>confdefs.h <<\_ACEOF
+#define BSDI_NRL
+_ACEOF
+
+      echo "$as_me:5161: result: BSDI_NRL" >&5
+echo "${ECHO_T}BSDI_NRL" >&6
    else
-      echo "$ac_t""NRL" 1>&6
+      echo "$as_me:5164: result: NRL" >&5
+echo "${ECHO_T}NRL" >&6
    fi
 fi
 
 if test "${enable_ipv6}" = "yes"; then
-   cat > conftest.$ac_ext <<EOF
-#line 3069 "configure"
+   cat >conftest.$ac_ext <<_ACEOF
+#line 5171 "configure"
 #include "confdefs.h"
 
    #include <linux/version.h>
@@ -3073,11 +5176,11 @@
    #if LINUX_VERSION_CODE >= 0x020180
    yes
    #endif
-EOF
+_ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "yes" >/dev/null 2>&1; then
-  rm -rf conftest*
-  zebra_cv_ipv6=yes; zebra_cv_linux_ipv6=yes;echo "$ac_t""Linux IPv6" 1>&6
+  zebra_cv_ipv6=yes; zebra_cv_linux_ipv6=yes;echo "$as_me:5182: result: Linux IPv6" >&5
+echo "${ECHO_T}Linux IPv6" >&6
 fi
 rm -f conftest*
 
@@ -3086,40 +5189,41 @@
    then
       zebra_cv_ipv6=yes
       zebra_cv_linux_ipv6=yes
-      echo "$ac_t""Linux IPv6" 1>&6
+      echo "$as_me:5192: result: Linux IPv6" >&5
+echo "${ECHO_T}Linux IPv6" >&6
    fi
 fi
 
 if test "$zebra_cv_linux_ipv6" = "yes";then
-   cat >> confdefs.h <<\EOF
+   cat >>confdefs.h <<\_ACEOF
 #define HAVE_IPV6 1
-EOF
+_ACEOF
 
-   echo $ac_n "checking for GNU libc 2.1""... $ac_c" 1>&6
-echo "configure:3100: checking for GNU libc 2.1" >&5
-   cat > conftest.$ac_ext <<EOF
-#line 3102 "configure"
+   echo "$as_me:5202: checking for GNU libc 2.1" >&5
+echo $ECHO_N "checking for GNU libc 2.1... $ECHO_C" >&6
+   cat >conftest.$ac_ext <<_ACEOF
+#line 5205 "configure"
 #include "confdefs.h"
 
 #include <features.h>
 #if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
   yes
 #endif
-EOF
+_ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "yes" >/dev/null 2>&1; then
-  rm -rf conftest*
-  glibc=yes; echo "$ac_t""yes" 1>&6
+  glibc=yes; echo "$as_me:5215: result: yes" >&5
+echo "${ECHO_T}yes" >&6
 else
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:5218: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 rm -f conftest*
 
-   cat >> confdefs.h <<\EOF
-#define LINUX_IPV6 
-EOF
-   
+cat >>confdefs.h <<\_ACEOF
+#define LINUX_IPV6
+_ACEOF
+
    RIPNGD="ripngd"
    OSPF6D="ospf6d"
    if test "$glibc" != "yes"; then
@@ -3132,9 +5236,9 @@
 
 LIBS="$LIB_IPV6 $LIBS"
 
-
 if test x"$RIPNGD" = x""; then
-  echo "$ac_t""IPv4 only" 1>&6
+  echo "$as_me:5240: result: IPv4 only" >&5
+echo "${ECHO_T}IPv4 only" >&6
 fi
 fi
 
@@ -3162,10 +5266,17 @@
   OSPFD="ospfd"
 fi
 
-if test "${enable_ospfclient}" = "no";then
-  OSPFCLIENT=""
-else
-  OSPFCLIENT="ospfclient"
+OSPFAPI=""
+OSPFCLIENT=""
+if test "${enable_opaque_lsa}" = "yes"; then
+  if test "${enable_ospfapi}" != "no";then
+    OSPFAPI="-DSUPPORT_OSPF_API"
+
+    if test "${enable_ospfclient}" != "no";then
+      OSPFCLIENT="ospfclient"
+    fi
+  fi
+
 fi
 
 case "${enable_ripngd}" in
@@ -3181,690 +5292,1189 @@
 esac
 
 if test "${enable_bgp_announce}" = "no";then
-  cat >> confdefs.h <<\EOF
-#define DISABLE_BGP_ANNOUNCE 
-EOF
+
+cat >>confdefs.h <<\_ACEOF
+#define DISABLE_BGP_ANNOUNCE
+_ACEOF
 
 fi
 
-
-
-
-
-
-
-
-
-
-
-echo $ac_n "checking for inet_ntop in -lc""... $ac_c" 1>&6
-echo "configure:3202: checking for inet_ntop in -lc" >&5
-ac_lib_var=`echo c'_'inet_ntop | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:5302: checking for inet_ntop in -lc" >&5
+echo $ECHO_N "checking for inet_ntop in -lc... $ECHO_C" >&6
+if test "${ac_cv_lib_c_inet_ntop+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lc  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3210 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 5310 "configure"
 #include "confdefs.h"
+
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char inet_ntop();
-
-int main() {
-inet_ntop()
-; return 0; }
-EOF
-if { (eval echo configure:3221: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+   builtin and then its argument prototype would still apply.  */
+char inet_ntop ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+inet_ntop ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:5335: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:5338: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:5341: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:5344: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_c_inet_ntop=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_c_inet_ntop=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:5355: result: $ac_cv_lib_c_inet_ntop" >&5
+echo "${ECHO_T}$ac_cv_lib_c_inet_ntop" >&6
+if test $ac_cv_lib_c_inet_ntop = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_INET_NTOP
+_ACEOF
 
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  cat >> confdefs.h <<\EOF
-#define HAVE_INET_NTOP 
-EOF
 
+echo "$as_me:5365: checking for inet_pton in -lc" >&5
+echo $ECHO_N "checking for inet_pton in -lc... $ECHO_C" >&6
+if test "${ac_cv_lib_c_inet_pton+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  echo "$ac_t""no" 1>&6
-fi
-
-echo $ac_n "checking for inet_pton in -lc""... $ac_c" 1>&6
-echo "configure:3245: checking for inet_pton in -lc" >&5
-ac_lib_var=`echo c'_'inet_pton | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lc  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3253 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 5373 "configure"
 #include "confdefs.h"
+
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char inet_pton();
-
-int main() {
-inet_pton()
-; return 0; }
-EOF
-if { (eval echo configure:3264: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+   builtin and then its argument prototype would still apply.  */
+char inet_pton ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+inet_pton ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:5398: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:5401: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:5404: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:5407: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_c_inet_pton=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_c_inet_pton=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:5418: result: $ac_cv_lib_c_inet_pton" >&5
+echo "${ECHO_T}$ac_cv_lib_c_inet_pton" >&6
+if test $ac_cv_lib_c_inet_pton = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_INET_PTON
+_ACEOF
 
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  cat >> confdefs.h <<\EOF
-#define HAVE_INET_PTON 
-EOF
 
+echo "$as_me:5428: checking for crypt in -lcrypt" >&5
+echo $ECHO_N "checking for crypt in -lcrypt... $ECHO_C" >&6
+if test "${ac_cv_lib_crypt_crypt+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  echo "$ac_t""no" 1>&6
-fi
-
-echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
-echo "configure:3288: checking for crypt in -lcrypt" >&5
-ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lcrypt  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3296 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 5436 "configure"
 #include "confdefs.h"
+
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char crypt();
-
-int main() {
-crypt()
-; return 0; }
-EOF
-if { (eval echo configure:3307: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+   builtin and then its argument prototype would still apply.  */
+char crypt ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+crypt ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:5461: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:5464: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:5467: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:5470: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_crypt_crypt=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_crypt_crypt=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_lib=HAVE_LIB`echo crypt | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
+echo "$as_me:5481: result: $ac_cv_lib_crypt_crypt" >&5
+echo "${ECHO_T}$ac_cv_lib_crypt_crypt" >&6
+if test $ac_cv_lib_crypt_crypt = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBCRYPT 1
+_ACEOF
 
   LIBS="-lcrypt $LIBS"
 
-else
-  echo "$ac_t""no" 1>&6
 fi
 
-echo $ac_n "checking for res_init in -lresolv""... $ac_c" 1>&6
-echo "configure:3335: checking for res_init in -lresolv" >&5
-ac_lib_var=`echo resolv'_'res_init | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:5492: checking for res_init in -lresolv" >&5
+echo $ECHO_N "checking for res_init in -lresolv... $ECHO_C" >&6
+if test "${ac_cv_lib_resolv_res_init+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lresolv  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3343 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 5500 "configure"
 #include "confdefs.h"
+
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char res_init();
-
-int main() {
-res_init()
-; return 0; }
-EOF
-if { (eval echo configure:3354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+   builtin and then its argument prototype would still apply.  */
+char res_init ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+res_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:5525: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:5528: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:5531: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:5534: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_resolv_res_init=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_resolv_res_init=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_lib=HAVE_LIB`echo resolv | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
+echo "$as_me:5545: result: $ac_cv_lib_resolv_res_init" >&5
+echo "${ECHO_T}$ac_cv_lib_resolv_res_init" >&6
+if test $ac_cv_lib_resolv_res_init = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBRESOLV 1
+_ACEOF
 
   LIBS="-lresolv $LIBS"
 
-else
-  echo "$ac_t""no" 1>&6
 fi
 
-echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-echo "configure:3382: checking for main in -lm" >&5
-ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:5556: checking for main in -lm" >&5
+echo $ECHO_N "checking for main in -lm... $ECHO_C" >&6
+if test "${ac_cv_lib_m_main+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lm  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3390 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 5564 "configure"
 #include "confdefs.h"
 
-int main() {
-main()
-; return 0; }
-EOF
-if { (eval echo configure:3397: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+main ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:5582: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:5585: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:5588: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:5591: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_m_main=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_m_main=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_lib=HAVE_LIB`echo m | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
+echo "$as_me:5602: result: $ac_cv_lib_m_main" >&5
+echo "${ECHO_T}$ac_cv_lib_m_main" >&6
+if test $ac_cv_lib_m_main = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBM 1
+_ACEOF
 
   LIBS="-lm $LIBS"
 
-else
-  echo "$ac_t""no" 1>&6
 fi
 
-
-echo $ac_n "checking for __inet_ntop""... $ac_c" 1>&6
-echo "configure:3426: checking for __inet_ntop" >&5
-if eval "test \"`echo '$''{'ac_cv_func___inet_ntop'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:5613: checking for __inet_ntop" >&5
+echo $ECHO_N "checking for __inet_ntop... $ECHO_C" >&6
+if test "${ac_cv_func___inet_ntop+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 3431 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 5619 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char __inet_ntop(); below.  */
+    which can conflict with char __inet_ntop (); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char __inet_ntop();
+   builtin and then its argument prototype would still apply.  */
+char __inet_ntop ();
+char (*f) ();
 
-int main() {
-
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub___inet_ntop) || defined (__stub_____inet_ntop)
 choke me
 #else
-__inet_ntop();
+f = __inet_ntop;
 #endif
 
-; return 0; }
-EOF
-if { (eval echo configure:3454: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func___inet_ntop=yes"
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:5656: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:5659: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:5662: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:5665: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func___inet_ntop=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func___inet_ntop=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_func___inet_ntop=no
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-
-if eval "test \"`echo '$ac_cv_func_'__inet_ntop`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  cat >> confdefs.h <<\EOF
+echo "$as_me:5675: result: $ac_cv_func___inet_ntop" >&5
+echo "${ECHO_T}$ac_cv_func___inet_ntop" >&6
+if test $ac_cv_func___inet_ntop = yes; then
+  cat >>confdefs.h <<\_ACEOF
 #define HAVE_INET_NTOP 1
-EOF
+_ACEOF
 
-else
-  echo "$ac_t""no" 1>&6
 fi
 
-echo $ac_n "checking for __inet_pton""... $ac_c" 1>&6
-echo "configure:3477: checking for __inet_pton" >&5
-if eval "test \"`echo '$''{'ac_cv_func___inet_pton'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:5684: checking for __inet_pton" >&5
+echo $ECHO_N "checking for __inet_pton... $ECHO_C" >&6
+if test "${ac_cv_func___inet_pton+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 3482 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 5690 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char __inet_pton(); below.  */
+    which can conflict with char __inet_pton (); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char __inet_pton();
+   builtin and then its argument prototype would still apply.  */
+char __inet_pton ();
+char (*f) ();
 
-int main() {
-
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub___inet_pton) || defined (__stub_____inet_pton)
 choke me
 #else
-__inet_pton();
+f = __inet_pton;
 #endif
 
-; return 0; }
-EOF
-if { (eval echo configure:3505: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func___inet_pton=yes"
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:5727: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:5730: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:5733: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:5736: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func___inet_pton=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func___inet_pton=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_func___inet_pton=no
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-
-if eval "test \"`echo '$ac_cv_func_'__inet_pton`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  cat >> confdefs.h <<\EOF
+echo "$as_me:5746: result: $ac_cv_func___inet_pton" >&5
+echo "${ECHO_T}$ac_cv_func___inet_pton" >&6
+if test $ac_cv_func___inet_pton = yes; then
+  cat >>confdefs.h <<\_ACEOF
 #define HAVE_INET_PTON 1
-EOF
+_ACEOF
 
-else
-  echo "$ac_t""no" 1>&6
 fi
 
-echo $ac_n "checking for __inet_aton""... $ac_c" 1>&6
-echo "configure:3528: checking for __inet_aton" >&5
-if eval "test \"`echo '$''{'ac_cv_func___inet_aton'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:5755: checking for __inet_aton" >&5
+echo $ECHO_N "checking for __inet_aton... $ECHO_C" >&6
+if test "${ac_cv_func___inet_aton+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 3533 "configure"
+  cat >conftest.$ac_ext <<_ACEOF
+#line 5761 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char __inet_aton(); below.  */
+    which can conflict with char __inet_aton (); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char __inet_aton();
+   builtin and then its argument prototype would still apply.  */
+char __inet_aton ();
+char (*f) ();
 
-int main() {
-
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
 #if defined (__stub___inet_aton) || defined (__stub_____inet_aton)
 choke me
 #else
-__inet_aton();
+f = __inet_aton;
 #endif
 
-; return 0; }
-EOF
-if { (eval echo configure:3556: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func___inet_aton=yes"
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:5798: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:5801: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:5804: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:5807: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func___inet_aton=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func___inet_aton=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_func___inet_aton=no
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-
-if eval "test \"`echo '$ac_cv_func_'__inet_aton`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  cat >> confdefs.h <<\EOF
+echo "$as_me:5817: result: $ac_cv_func___inet_aton" >&5
+echo "${ECHO_T}$ac_cv_func___inet_aton" >&6
+if test $ac_cv_func___inet_aton = yes; then
+  cat >>confdefs.h <<\_ACEOF
 #define HAVE_INET_ATON 1
-EOF
+_ACEOF
 
-else
-  echo "$ac_t""no" 1>&6
 fi
 
-
-echo $ac_n "checking for regexec in -lc""... $ac_c" 1>&6
-echo "configure:3580: checking for regexec in -lc" >&5
-ac_lib_var=`echo c'_'regexec | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:5826: checking for regexec in -lc" >&5
+echo $ECHO_N "checking for regexec in -lc... $ECHO_C" >&6
+if test "${ac_cv_lib_c_regexec+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lc  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3588 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 5834 "configure"
 #include "confdefs.h"
+
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char regexec();
-
-int main() {
-regexec()
-; return 0; }
-EOF
-if { (eval echo configure:3599: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+   builtin and then its argument prototype would still apply.  */
+char regexec ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+regexec ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:5859: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:5862: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:5865: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:5868: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_c_regexec=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_c_regexec=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:5879: result: $ac_cv_lib_c_regexec" >&5
+echo "${ECHO_T}$ac_cv_lib_c_regexec" >&6
+if test $ac_cv_lib_c_regexec = yes; then
 
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  cat >> confdefs.h <<\EOF
-#define HAVE_GNU_REGEX 
-EOF
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_GNU_REGEX
+_ACEOF
 
  LIB_REGEX=""
 else
-  echo "$ac_t""no" 1>&6
-LIB_REGEX="regex.o"
+  LIB_REGEX="regex.o"
 fi
 
-
-
 if test "${enable_snmp}" = "yes";then
-  old_libs="${LIBS}"
-  LIBS="-L/usr/local/lib"
-  unset ac_cv_lib_snmp_asn_parse_int
-  echo $ac_n "checking for asn_parse_int in -lsnmp""... $ac_c" 1>&6
-echo "configure:3631: checking for asn_parse_int in -lsnmp" >&5
-ac_lib_var=`echo snmp'_'asn_parse_int | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lsnmp  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3639 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char asn_parse_int();
-
-int main() {
-asn_parse_int()
-; return 0; }
-EOF
-if { (eval echo configure:3650: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  HAVE_SNMP=yes
-else
-  echo "$ac_t""no" 1>&6
-fi
-
   if test "${HAVE_SNMP}" = ""; then
+    old_libs="${LIBS}"
+    LIBS="-L/usr/lib"
     unset ac_cv_lib_snmp_asn_parse_int
-    echo $ac_n "checking for main in -lcrypto""... $ac_c" 1>&6
-echo "configure:3673: checking for main in -lcrypto" >&5
-ac_lib_var=`echo crypto'_'main | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+    echo "$as_me:5897: checking for main in -lcrypto" >&5
+echo $ECHO_N "checking for main in -lcrypto... $ECHO_C" >&6
+if test "${ac_cv_lib_crypto_main+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lcrypto  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3681 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 5905 "configure"
 #include "confdefs.h"
 
-int main() {
-main()
-; return 0; }
-EOF
-if { (eval echo configure:3688: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+main ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:5923: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:5926: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:5929: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:5932: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_crypto_main=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_crypto_main=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  NEED_CRYPTO=yes 
-else
-  echo "$ac_t""no" 1>&6
+echo "$as_me:5943: result: $ac_cv_lib_crypto_main" >&5
+echo "${ECHO_T}$ac_cv_lib_crypto_main" >&6
+if test $ac_cv_lib_crypto_main = yes; then
+  NEED_CRYPTO=yes
 fi
 
-	if test "${NEED_CRYPTO}" = ""; then 
-		echo $ac_n "checking for asn_parse_int in -lsnmp""... $ac_c" 1>&6
-echo "configure:3710: checking for asn_parse_int in -lsnmp" >&5
-ac_lib_var=`echo snmp'_'asn_parse_int | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+    if test "${NEED_CRYPTO}" = ""; then
+      echo "$as_me:5950: checking for asn_parse_int in -lnetsnmp" >&5
+echo $ECHO_N "checking for asn_parse_int in -lnetsnmp... $ECHO_C" >&6
+if test "${ac_cv_lib_netsnmp_asn_parse_int+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
-LIBS="-lsnmp  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3718 "configure"
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnetsnmp  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 5958 "configure"
 #include "confdefs.h"
+
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char asn_parse_int();
-
-int main() {
-asn_parse_int()
-; return 0; }
-EOF
-if { (eval echo configure:3729: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+   builtin and then its argument prototype would still apply.  */
+char asn_parse_int ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+asn_parse_int ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:5983: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:5986: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:5989: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:5992: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_netsnmp_asn_parse_int=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_netsnmp_asn_parse_int=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  HAVE_SNMP=yes; NEED_CRYPTO=yes 
-else
-  echo "$ac_t""no" 1>&6
+echo "$as_me:6003: result: $ac_cv_lib_netsnmp_asn_parse_int" >&5
+echo "${ECHO_T}$ac_cv_lib_netsnmp_asn_parse_int" >&6
+if test $ac_cv_lib_netsnmp_asn_parse_int = yes; then
+  HAVE_NETSNMP=yes; HAVE_SNMP=yes
 fi
 
-	else
-	    echo $ac_n "checking for asn_parse_int in -lsnmp""... $ac_c" 1>&6
-echo "configure:3751: checking for asn_parse_int in -lsnmp" >&5
-ac_lib_var=`echo snmp'_'asn_parse_int | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+    else
+      echo "$as_me:6010: checking for asn_parse_int in -lnetsnmp" >&5
+echo $ECHO_N "checking for asn_parse_int in -lnetsnmp... $ECHO_C" >&6
+if test "${ac_cv_lib_netsnmp_asn_parse_int+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
-LIBS="-lsnmp "-lcrypto" $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3759 "configure"
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnetsnmp "-lcrypto" $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 6018 "configure"
 #include "confdefs.h"
+
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char asn_parse_int();
-
-int main() {
-asn_parse_int()
-; return 0; }
-EOF
-if { (eval echo configure:3770: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+   builtin and then its argument prototype would still apply.  */
+char asn_parse_int ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+asn_parse_int ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:6043: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:6046: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:6049: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6052: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_netsnmp_asn_parse_int=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_netsnmp_asn_parse_int=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  HAVE_SNMP=yes; NEED_CRYPTO=yes;LIBS="$LIBS -lcrypto" 
-else
-  echo "$ac_t""no" 1>&6
+echo "$as_me:6063: result: $ac_cv_lib_netsnmp_asn_parse_int" >&5
+echo "${ECHO_T}$ac_cv_lib_netsnmp_asn_parse_int" >&6
+if test $ac_cv_lib_netsnmp_asn_parse_int = yes; then
+  HAVE_NETSNMP=yes; HAVE_SNMP=yes; NEED_CRYPTO=yes;LIBS="$LIBS -lcrypto"
 fi
 
-	fi
+    fi
+    LIBS="${old_libs}"
   fi
-  LIBS="${old_libs}"
+  if test "${HAVE_SNMP}" = ""; then
+    old_libs="${LIBS}"
+    LIBS="-L/usr/lib"
+    unset ac_cv_lib_snmp_asn_parse_int
+    echo "$as_me:6076: checking for asn_parse_int in -lsnmp" >&5
+echo $ECHO_N "checking for asn_parse_int in -lsnmp... $ECHO_C" >&6
+if test "${ac_cv_lib_snmp_asn_parse_int+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsnmp  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 6084 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char asn_parse_int ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+asn_parse_int ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:6109: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:6112: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:6115: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6118: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_snmp_asn_parse_int=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_snmp_asn_parse_int=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:6129: result: $ac_cv_lib_snmp_asn_parse_int" >&5
+echo "${ECHO_T}$ac_cv_lib_snmp_asn_parse_int" >&6
+if test $ac_cv_lib_snmp_asn_parse_int = yes; then
+  HAVE_SNMP=yes
+fi
+
+    if test "${HAVE_SNMP}" = ""; then
+      unset ac_cv_lib_snmp_asn_parse_int
+      echo "$as_me:6137: checking for main in -lcrypto" >&5
+echo $ECHO_N "checking for main in -lcrypto... $ECHO_C" >&6
+if test "${ac_cv_lib_crypto_main+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcrypto  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 6145 "configure"
+#include "confdefs.h"
+
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+main ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:6163: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:6166: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:6169: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6172: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_crypto_main=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_crypto_main=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:6183: result: $ac_cv_lib_crypto_main" >&5
+echo "${ECHO_T}$ac_cv_lib_crypto_main" >&6
+if test $ac_cv_lib_crypto_main = yes; then
+  NEED_CRYPTO=yes
+fi
+
+      if test "${NEED_CRYPTO}" = "yes"; then
+        echo "$as_me:6190: checking for asn_parse_int in -lsnmp" >&5
+echo $ECHO_N "checking for asn_parse_int in -lsnmp... $ECHO_C" >&6
+if test "${ac_cv_lib_snmp_asn_parse_int+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsnmp "-lcrypto" $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 6198 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char asn_parse_int ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+asn_parse_int ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:6223: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:6226: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:6229: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6232: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_snmp_asn_parse_int=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_snmp_asn_parse_int=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:6243: result: $ac_cv_lib_snmp_asn_parse_int" >&5
+echo "${ECHO_T}$ac_cv_lib_snmp_asn_parse_int" >&6
+if test $ac_cv_lib_snmp_asn_parse_int = yes; then
+  HAVE_SNMP=yes; NEED_CRYPTO=yes; LIBS="$LIBS -lcrypto"
+fi
+
+      fi
+    fi
+    LIBS="${old_libs}"
+  fi
 
   if test "${HAVE_SNMP}" = ""; then
-	old_libs="${LIBS}"
-	LIBS="-L/usr/local/lib"
-	echo $ac_n "checking for asn_parse_int in -lsnmp""... $ac_c" 1>&6
-echo "configure:3798: checking for asn_parse_int in -lsnmp" >&5
-ac_lib_var=`echo snmp'_'asn_parse_int | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+    old_libs="${LIBS}"
+    LIBS="-L/usr/local/lib"
+    unset ac_cv_lib_snmp_asn_parse_int
+    echo "$as_me:6258: checking for asn_parse_int in -lsnmp" >&5
+echo $ECHO_N "checking for asn_parse_int in -lsnmp... $ECHO_C" >&6
+if test "${ac_cv_lib_snmp_asn_parse_int+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_save_LIBS="$LIBS"
+  ac_check_lib_save_LIBS=$LIBS
 LIBS="-lsnmp  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3806 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 6266 "configure"
 #include "confdefs.h"
+
 /* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
 /* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char asn_parse_int();
-
-int main() {
-asn_parse_int()
-; return 0; }
-EOF
-if { (eval echo configure:3817: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+   builtin and then its argument prototype would still apply.  */
+char asn_parse_int ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+asn_parse_int ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:6291: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:6294: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:6297: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6300: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_snmp_asn_parse_int=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_snmp_asn_parse_int=no
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
+echo "$as_me:6311: result: $ac_cv_lib_snmp_asn_parse_int" >&5
+echo "${ECHO_T}$ac_cv_lib_snmp_asn_parse_int" >&6
+if test $ac_cv_lib_snmp_asn_parse_int = yes; then
   HAVE_SNMP=yes
-else
-  echo "$ac_t""no" 1>&6
 fi
 
-	LIBS="${old_libs}"
+    if test "${HAVE_SNMP}" = ""; then
+      unset ac_cv_lib_snmp_asn_parse_int
+      echo "$as_me:6319: checking for main in -lcrypto" >&5
+echo $ECHO_N "checking for main in -lcrypto... $ECHO_C" >&6
+if test "${ac_cv_lib_crypto_main+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcrypto  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 6327 "configure"
+#include "confdefs.h"
+
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+main ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:6345: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:6348: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:6351: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6354: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_crypto_main=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_crypto_main=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:6365: result: $ac_cv_lib_crypto_main" >&5
+echo "${ECHO_T}$ac_cv_lib_crypto_main" >&6
+if test $ac_cv_lib_crypto_main = yes; then
+  NEED_CRYPTO=yes
+fi
+
+      if test "${NEED_CRYPTO}" = "yes"; then
+        echo "$as_me:6372: checking for asn_parse_int in -lsnmp" >&5
+echo $ECHO_N "checking for asn_parse_int in -lsnmp... $ECHO_C" >&6
+if test "${ac_cv_lib_snmp_asn_parse_int+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsnmp "-lcrypto" $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 6380 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char asn_parse_int ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+asn_parse_int ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:6405: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:6408: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:6411: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6414: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_snmp_asn_parse_int=yes
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_snmp_asn_parse_int=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:6425: result: $ac_cv_lib_snmp_asn_parse_int" >&5
+echo "${ECHO_T}$ac_cv_lib_snmp_asn_parse_int" >&6
+if test $ac_cv_lib_snmp_asn_parse_int = yes; then
+  HAVE_SNMP=yes; NEED_CRYPTO=yes; LIBS="$LIBS -lcrypto"
+fi
+
+      fi
+    fi
+    LIBS="${old_libs}"
   fi
+
   if test "${HAVE_SNMP}" = "yes"; then
     for ac_snmp in /usr/include/net-snmp/library/asn1.h /usr/include/ucd-snmp/asn1.h /usr/local/include/ucd-snmp/asn1.h /dev/null
     do
       test -f "${ac_snmp}" && break
     done
+
     case ${ac_snmp} in
       /usr/include/net-snmp/*)
-                  cat >> confdefs.h <<\EOF
-#define HAVE_SNMP 
-EOF
 
-                  cat >> confdefs.h <<\EOF
-#define UCD_COMPATIBLE 
-EOF
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SNMP
+_ACEOF
 
-                  CFLAGS="${CFLAGS} -I/usr/include/ucd-snmp"
-                  LIBS="${LIBS} -lsnmp"
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_NETSNMP
+_ACEOF
+
+cat >>confdefs.h <<\_ACEOF
+#define UCD_COMPATIBLE
+_ACEOF
+
+                  CFLAGS="${CFLAGS} -I/usr/include/net-snmp -I/usr/include/net-snmp/library"
+		  if test "${HAVE_NETSNMP}" = "yes"; then
+		        LIBS="${LIBS} -lnetsnmp"
+		  else
+			LIBS="${LIBS} -lsnmp"
+		  fi
                   ;;
-      /usr/include/ucd-snmp/*) 
-                  cat >> confdefs.h <<\EOF
-#define HAVE_SNMP 
-EOF
+      /usr/include/ucd-snmp/*)
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SNMP
+_ACEOF
 
                   CFLAGS="${CFLAGS} -I/usr/include/ucd-snmp"
     		  LIBS="${LIBS} -lsnmp"
                   ;;
-      /usr/local/include/ucd-snmp/*) 
-                  cat >> confdefs.h <<\EOF
-#define HAVE_SNMP 
-EOF
+      /usr/local/include/ucd-snmp/*)
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SNMP
+_ACEOF
 
   	          CFLAGS="${CFLAGS} -I/usr/local/include/ucd-snmp"
   		  LIBS="${LIBS} -L/usr/local/lib -lsnmp"
@@ -3876,292 +6486,449 @@
   fi
 fi
 
-echo $ac_n "checking whether struct sockaddr has a sa_len field""... $ac_c" 1>&6
-echo "configure:3881: checking whether struct sockaddr has a sa_len field" >&5
-cat > conftest.$ac_ext <<EOF
-#line 3883 "configure"
+echo "$as_me:6489: checking whether struct sockaddr has a sa_len field" >&5
+echo $ECHO_N "checking whether struct sockaddr has a sa_len field... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line 6492 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/socket.h>
 
-int main() {
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
 static struct sockaddr ac_i;int ac_j = sizeof (ac_i.sa_len);
-; return 0; }
-EOF
-if { (eval echo configure:3892: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_SA_LEN 
-EOF
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6512: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:6515: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:6518: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6521: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  echo "$as_me:6523: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SA_LEN
+_ACEOF
 
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+echo "$as_me:6533: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 
-echo $ac_n "checking whether struct sockaddr_in has a sin_len field""... $ac_c" 1>&6
-echo "configure:3908: checking whether struct sockaddr_in has a sin_len field" >&5
-cat > conftest.$ac_ext <<EOF
-#line 3910 "configure"
+echo "$as_me:6538: checking whether struct sockaddr_in has a sin_len field" >&5
+echo $ECHO_N "checking whether struct sockaddr_in has a sin_len field... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line 6541 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <netinet/in.h>
 
-int main() {
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
 static struct sockaddr_in ac_i;int ac_j = sizeof (ac_i.sin_len);
-; return 0; }
-EOF
-if { (eval echo configure:3919: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_SIN_LEN 
-EOF
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6561: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:6564: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:6567: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6570: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  echo "$as_me:6572: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SIN_LEN
+_ACEOF
 
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+echo "$as_me:6582: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 
-echo $ac_n "checking whether struct sockaddr_un has a sun_len field""... $ac_c" 1>&6
-echo "configure:3935: checking whether struct sockaddr_un has a sun_len field" >&5
-cat > conftest.$ac_ext <<EOF
-#line 3937 "configure"
+echo "$as_me:6587: checking whether struct sockaddr_un has a sun_len field" >&5
+echo $ECHO_N "checking whether struct sockaddr_un has a sun_len field... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line 6590 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/un.h>
 
-int main() {
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
 static struct sockaddr_un ac_i;int ac_j = sizeof (ac_i.sun_len);
-; return 0; }
-EOF
-if { (eval echo configure:3946: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_SUN_LEN 
-EOF
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6610: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:6613: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:6616: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6619: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  echo "$as_me:6621: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SUN_LEN
+_ACEOF
 
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+echo "$as_me:6631: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 
 if test "$zebra_cv_ipv6" = yes; then
-  echo $ac_n "checking whether struct sockaddr_in6 has a sin6_scope_id field""... $ac_c" 1>&6
-echo "configure:3963: checking whether struct sockaddr_in6 has a sin6_scope_id field" >&5
-  cat > conftest.$ac_ext <<EOF
-#line 3965 "configure"
+  echo "$as_me:6637: checking whether struct sockaddr_in6 has a sin6_scope_id field" >&5
+echo $ECHO_N "checking whether struct sockaddr_in6 has a sin6_scope_id field... $ECHO_C" >&6
+  cat >conftest.$ac_ext <<_ACEOF
+#line 6640 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <netinet/in.h>
 
-int main() {
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
 static struct sockaddr_in6 ac_i;int ac_j = sizeof (ac_i.sin6_scope_id);
-; return 0; }
-EOF
-if { (eval echo configure:3974: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_SIN6_SCOPE_ID 
-EOF
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6660: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:6663: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:6666: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6669: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  echo "$as_me:6671: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SIN6_SCOPE_ID
+_ACEOF
 
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+echo "$as_me:6681: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 
-echo $ac_n "checking whther socklen_t is defined""... $ac_c" 1>&6
-echo "configure:3991: checking whther socklen_t is defined" >&5
-cat > conftest.$ac_ext <<EOF
-#line 3993 "configure"
+echo "$as_me:6687: checking whther socklen_t is defined" >&5
+echo $ECHO_N "checking whther socklen_t is defined... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line 6690 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
 
-int main() {
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
 socklen_t ac_x;
-; return 0; }
-EOF
-if { (eval echo configure:4003: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_SOCKLEN_T 
-EOF
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6711: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:6714: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:6717: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6720: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  echo "$as_me:6722: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SOCKLEN_T
+_ACEOF
 
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+echo "$as_me:6732: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 
-echo $ac_n "checking whether struct sockaddr_dl exist""... $ac_c" 1>&6
-echo "configure:4019: checking whether struct sockaddr_dl exist" >&5
-cat > conftest.$ac_ext <<EOF
-#line 4021 "configure"
+echo "$as_me:6737: checking whether struct sockaddr_dl exist" >&5
+echo $ECHO_N "checking whether struct sockaddr_dl exist... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line 6740 "configure"
 #include "confdefs.h"
 #include <net/if_dl.h>
-EOF
+
+_ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "sockaddr_dl" >/dev/null 2>&1; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_SOCKADDR_DL 
-EOF
+  echo "$as_me:6747: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SOCKADDR_DL
+_ACEOF
 
 else
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:6755: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 rm -f conftest*
 
-
-echo $ac_n "checking whether struct ifaliasreq exist""... $ac_c" 1>&6
-echo "configure:4041: checking whether struct ifaliasreq exist" >&5
-cat > conftest.$ac_ext <<EOF
-#line 4043 "configure"
+echo "$as_me:6760: checking whether struct ifaliasreq exist" >&5
+echo $ECHO_N "checking whether struct ifaliasreq exist... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line 6763 "configure"
 #include "confdefs.h"
 #include <net/if.h>
-EOF
+
+_ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "ifaliasreq" >/dev/null 2>&1; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_IFALIASREQ 
-EOF
+  echo "$as_me:6770: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_IFALIASREQ
+_ACEOF
 
 else
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:6778: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 rm -f conftest*
 
-
-echo $ac_n "checking whether struct if6_aliasreq exist""... $ac_c" 1>&6
-echo "configure:4063: checking whether struct if6_aliasreq exist" >&5
-cat > conftest.$ac_ext <<EOF
-#line 4065 "configure"
+echo "$as_me:6783: checking whether struct if6_aliasreq exist" >&5
+echo $ECHO_N "checking whether struct if6_aliasreq exist... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line 6786 "configure"
 #include "confdefs.h"
 #include <netinet6/in6_var.h>
-EOF
+
+_ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "in6_aliasreq" >/dev/null 2>&1; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_IN6_ALIASREQ 
-EOF
+  echo "$as_me:6793: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_IN6_ALIASREQ
+_ACEOF
 
 else
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:6801: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 rm -f conftest*
 
-
-echo $ac_n "checking whether struct rt_addrinfo exist""... $ac_c" 1>&6
-echo "configure:4085: checking whether struct rt_addrinfo exist" >&5
-cat > conftest.$ac_ext <<EOF
-#line 4087 "configure"
+echo "$as_me:6806: checking whether struct rt_addrinfo exist" >&5
+echo $ECHO_N "checking whether struct rt_addrinfo exist... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line 6809 "configure"
 #include "confdefs.h"
 #include <net/route.h>
-EOF
+
+_ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   egrep "rt_addrinfo" >/dev/null 2>&1; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_RT_ADDRINFO 
-EOF
+  echo "$as_me:6816: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_RT_ADDRINFO
+_ACEOF
 
 else
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
+  echo "$as_me:6824: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 rm -f conftest*
 
-
-echo $ac_n "checking whether struct in_pktinfo exist""... $ac_c" 1>&6
-echo "configure:4107: checking whether struct in_pktinfo exist" >&5
-cat > conftest.$ac_ext <<EOF
-#line 4109 "configure"
+echo "$as_me:6829: checking whether struct in_pktinfo exist" >&5
+echo $ECHO_N "checking whether struct in_pktinfo exist... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line 6832 "configure"
 #include "confdefs.h"
 #include <netinet/in.h>
 
-int main() {
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
 struct in_pktinfo ac_x;
-; return 0; }
-EOF
-if { (eval echo configure:4117: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_INPKTINFO 
-EOF
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6851: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:6854: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:6857: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6860: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  echo "$as_me:6862: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_INPKTINFO
+_ACEOF
 
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+echo "$as_me:6872: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 
-echo $ac_n "checking whether getrusage is available""... $ac_c" 1>&6
-echo "configure:4133: checking whether getrusage is available" >&5
-cat > conftest.$ac_ext <<EOF
-#line 4135 "configure"
+echo "$as_me:6877: checking whether getrusage is available" >&5
+echo $ECHO_N "checking whether getrusage is available... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line 6880 "configure"
 #include "confdefs.h"
 #include <sys/resource.h>
 
-int main() {
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
 struct rusage ac_x; getrusage (RUSAGE_SELF, &ac_x);
-; return 0; }
-EOF
-if { (eval echo configure:4143: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_RUSAGE 
-EOF
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6899: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:6902: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:6905: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:6908: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  echo "$as_me:6910: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_RUSAGE
+_ACEOF
 
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+echo "$as_me:6920: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest.$ac_ext
 
 file="${srcdir}/lib/version.h"
 VERSION=`sed -ne 's/^#.*ZEBRA_VERSION.*\"\([^\"]*\)\"$/\1/p' $file`
 
-
-echo $ac_n "checking pid file directory""... $ac_c" 1>&6
-echo "configure:4163: checking pid file directory" >&5
-if eval "test \"`echo '$''{'ac_piddir'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:6928: checking pid file directory" >&5
+echo $ECHO_N "checking pid file directory... $ECHO_C" >&6
+if test "${ac_piddir+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   for ZEBRA_PID_DIR in /var/run	                   /var/adm	                   /etc		                   /dev/null;
 do
@@ -4172,42 +6939,41 @@
   echo "PID DIRECTORY NOT FOUND!"
 fi
 fi
+echo "$as_me:6942: result: $ac_piddir" >&5
+echo "${ECHO_T}$ac_piddir" >&6
 
-echo "$ac_t""$ac_piddir" 1>&6
-cat >> confdefs.h <<EOF
+cat >>confdefs.h <<_ACEOF
 #define PATH_ZEBRA_PID "$ac_piddir/zebra.pid"
-EOF
+_ACEOF
 
-cat >> confdefs.h <<EOF
+cat >>confdefs.h <<_ACEOF
 #define PATH_RIPD_PID "$ac_piddir/ripd.pid"
-EOF
+_ACEOF
 
-cat >> confdefs.h <<EOF
+cat >>confdefs.h <<_ACEOF
 #define PATH_RIPNGD_PID "$ac_piddir/ripngd.pid"
-EOF
+_ACEOF
 
-cat >> confdefs.h <<EOF
+cat >>confdefs.h <<_ACEOF
 #define PATH_BGPD_PID "$ac_piddir/bgpd.pid"
-EOF
+_ACEOF
 
-cat >> confdefs.h <<EOF
+cat >>confdefs.h <<_ACEOF
 #define PATH_OSPFD_PID "$ac_piddir/ospfd.pid"
-EOF
+_ACEOF
 
-cat >> confdefs.h <<EOF
+cat >>confdefs.h <<_ACEOF
 #define PATH_OSPF6D_PID "$ac_piddir/ospf6d.pid"
-EOF
+_ACEOF
 
-
-
-echo $ac_n "checking for working htonl""... $ac_c" 1>&6
-echo "configure:4205: checking for working htonl" >&5
-if eval "test \"`echo '$''{'ac_cv_htonl_works'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+echo "$as_me:6969: checking for working htonl" >&5
+echo $ECHO_N "checking for working htonl... $ECHO_C" >&6
+if test "${ac_cv_htonl_works+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  
-cat > conftest.$ac_ext <<EOF
-#line 4211 "configure"
+
+cat >conftest.$ac_ext <<_ACEOF
+#line 6976 "configure"
 #include "confdefs.h"
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
@@ -4218,424 +6984,1048 @@
 #ifdef HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif
-int main() {
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
 htonl (0);
-; return 0; }
-EOF
-if { (eval echo configure:4226: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:7002: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:7005: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:7008: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:7011: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   ac_cv_htonl_works=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_htonl_works=no
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_htonl_works=no
 fi
-rm -f conftest*
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
 
-echo "$ac_t""$ac_cv_htonl_works" 1>&6
+echo "$as_me:7022: result: $ac_cv_htonl_works" >&5
+echo "${ECHO_T}$ac_cv_htonl_works" >&6
 
-trap '' 1 2 15
-cat > confcache <<\EOF
+ac_config_files="$ac_config_files Makefile lib/Makefile zebra/Makefile ripd/Makefile ripngd/Makefile bgpd/Makefile ospfd/Makefile ospf6d/Makefile vtysh/Makefile doc/Makefile ospfclient/Makefile"
+cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
 # tests run on this system so they can be shared between configure
-# scripts and configure runs.  It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
 #
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already.  You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
 #
-EOF
+# `ac_cv_env_foo' variables (set or unset) will be overriden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
 # The following way of writing the cache mishandles newlines in values,
 # but we know of no workaround that is simple, portable, and efficient.
 # So, don't put newlines in cache variables' values.
 # Ultrix sh set writes to stderr and can't be redirected directly,
 # and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
-  case `(ac_space=' '; set | grep ac_space) 2>&1` in
-  *ac_space=\ *)
-    # `set' does not quote correctly, so add quotes (double-quote substitution
-    # turns \\\\ into \\, and sed turns \\ into \).
-    sed -n \
-      -e "s/'/'\\\\''/g" \
-      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
-    ;;
-  *)
-    # `set' quotes correctly as required by POSIX, so do not add quotes.
-    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
-    ;;
-  esac >> confcache
-if cmp -s $cache_file confcache; then
-  :
-else
+{
+  (set) 2>&1 |
+    case `(ac_space=' '; set | grep ac_space) 2>&1` in
+    *ac_space=\ *)
+      # `set' does not quote correctly, so add quotes (double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      sed -n \
+        "s/'/'\\\\''/g;
+    	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;;
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n \
+        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      ;;
+    esac;
+} |
+  sed '
+     t clear
+     : clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     : end' >>confcache
+if cmp -s $cache_file confcache; then :; else
   if test -w $cache_file; then
-    echo "updating cache $cache_file"
-    cat confcache > $cache_file
+    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+    cat confcache >$cache_file
   else
     echo "not updating unwritable cache $cache_file"
   fi
 fi
 rm -f confcache
 
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
 test "x$prefix" = xNONE && prefix=$ac_default_prefix
 # Let make expand exec_prefix.
 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
 
-# Any assignment to VPATH causes Sun make to only execute
-# the first set of double-colon rules, so remove it if not needed.
-# If there is a colon in the path, we need to keep it.
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
 if test "x$srcdir" = x.; then
-  ac_vpsub='/^[ 	]*VPATH[ 	]*=[^:]*$/d'
+  ac_vpsub='/^[ 	]*VPATH[ 	]*=/{
+s/:*\$(srcdir):*/:/;
+s/:*\${srcdir}:*/:/;
+s/:*@srcdir@:*/:/;
+s/^\([^=]*=[ 	]*\):*/\1/;
+s/:*$//;
+s/^[^=]*=[ 	]*$//;
+}'
 fi
 
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-
 DEFS=-DHAVE_CONFIG_H
 
-# Without the "./", some shells look in PATH for config.status.
 : ${CONFIG_STATUS=./config.status}
-
-echo creating $CONFIG_STATUS
-rm -f $CONFIG_STATUS
-cat > $CONFIG_STATUS <<EOF
-#! /bin/sh
-# Generated automatically by configure.
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ echo "$as_me:7105: creating $CONFIG_STATUS" >&5
+echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF
+#! $SHELL
+# Generated automatically by $as_me.
 # Run this file to recreate the current configuration.
-# This directory was configured as follows,
-# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-#
-# $0 $ac_configure_args
-#
 # Compiler output produced by configure, useful for debugging
-# configure, is in ./config.log if it exists.
+# configure, is in config.log if it exists.
 
-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-for ac_option
-do
-  case "\$ac_option" in
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
-    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
-  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
-    echo "$CONFIG_STATUS generated by autoconf version 2.13"
-    exit 0 ;;
-  -help | --help | --hel | --he | --h)
-    echo "\$ac_cs_usage"; exit 0 ;;
-  *) echo "\$ac_cs_usage"; exit 1 ;;
-  esac
-done
+debug=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_ACEOF
 
-ac_given_srcdir=$srcdir
-ac_given_INSTALL="$INSTALL"
+cat >>$CONFIG_STATUS <<\_ACEOF
 
-trap 'rm -fr `echo "Makefile lib/Makefile zebra/Makefile ripd/Makefile ripngd/Makefile bgpd/Makefile ospfd/Makefile ospf6d/Makefile vtysh/Makefile doc/Makefile ospfclient/Makefile config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-EOF
-cat >> $CONFIG_STATUS <<EOF
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
 
-# Protect against being on the right side of a sed subst in config.status.
-sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
- s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
-$ac_vpsub
-$extrasub
-s%@SHELL@%$SHELL%g
-s%@CFLAGS@%$CFLAGS%g
-s%@CPPFLAGS@%$CPPFLAGS%g
-s%@CXXFLAGS@%$CXXFLAGS%g
-s%@FFLAGS@%$FFLAGS%g
-s%@DEFS@%$DEFS%g
-s%@LDFLAGS@%$LDFLAGS%g
-s%@LIBS@%$LIBS%g
-s%@exec_prefix@%$exec_prefix%g
-s%@prefix@%$prefix%g
-s%@program_transform_name@%$program_transform_name%g
-s%@bindir@%$bindir%g
-s%@sbindir@%$sbindir%g
-s%@libexecdir@%$libexecdir%g
-s%@datadir@%$datadir%g
-s%@sysconfdir@%$sysconfdir%g
-s%@sharedstatedir@%$sharedstatedir%g
-s%@localstatedir@%$localstatedir%g
-s%@libdir@%$libdir%g
-s%@includedir@%$includedir%g
-s%@oldincludedir@%$oldincludedir%g
-s%@infodir@%$infodir%g
-s%@mandir@%$mandir%g
-s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
-s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
-s%@INSTALL_DATA@%$INSTALL_DATA%g
-s%@PACKAGE@%$PACKAGE%g
-s%@VERSION@%$VERSION%g
-s%@ACLOCAL@%$ACLOCAL%g
-s%@AUTOCONF@%$AUTOCONF%g
-s%@AUTOMAKE@%$AUTOMAKE%g
-s%@AUTOHEADER@%$AUTOHEADER%g
-s%@MAKEINFO@%$MAKEINFO%g
-s%@SET_MAKE@%$SET_MAKE%g
-s%@host@%$host%g
-s%@host_alias@%$host_alias%g
-s%@host_cpu@%$host_cpu%g
-s%@host_vendor@%$host_vendor%g
-s%@host_os@%$host_os%g
-s%@CC@%$CC%g
-s%@CPP@%$CPP%g
-s%@build@%$build%g
-s%@build_alias@%$build_alias%g
-s%@build_cpu@%$build_cpu%g
-s%@build_vendor@%$build_vendor%g
-s%@build_os@%$build_os%g
-s%@AR@%$AR%g
-s%@RANLIB@%$RANLIB%g
-s%@MULTIPATH_NUM@%$MULTIPATH_NUM%g
-s%@LIBPAM@%$LIBPAM%g
-s%@RT_METHOD@%$RT_METHOD%g
-s%@KERNEL_METHOD@%$KERNEL_METHOD%g
-s%@OTHER_METHOD@%$OTHER_METHOD%g
-s%@RTREAD_METHOD@%$RTREAD_METHOD%g
-s%@IF_METHOD@%$IF_METHOD%g
-s%@IF_PROC@%$IF_PROC%g
-s%@IPFORWARD@%$IPFORWARD%g
-s%@LIB_IPV6@%$LIB_IPV6%g
-s%@ZEBRA@%$ZEBRA%g
-s%@BGPD@%$BGPD%g
-s%@RIPD@%$RIPD%g
-s%@RIPNGD@%$RIPNGD%g
-s%@OSPFD@%$OSPFD%g
-s%@OSPF6D@%$OSPF6D%g
-s%@VTYSH@%$VTYSH%g
-s%@INCLUDES@%$INCLUDES%g
-s%@CURSES@%$CURSES%g
-s%@OSPFCLIENT@%$OSPFCLIENT%g
-s%@LIB_REGEX@%$LIB_REGEX%g
-
-CEOF
-EOF
-
-cat >> $CONFIG_STATUS <<\EOF
-
-# Split the substitutions into bite-sized pieces for seds with
-# small command number limits, like on Digital OSF/1 and HP-UX.
-ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
-ac_file=1 # Number of current file.
-ac_beg=1 # First line for current file.
-ac_end=$ac_max_sed_cmds # Line after last line for current file.
-ac_more_lines=:
-ac_sed_cmds=""
-while $ac_more_lines; do
-  if test $ac_beg -gt 1; then
-    sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
-  else
-    sed "${ac_end}q" conftest.subs > conftest.s$ac_file
-  fi
-  if test ! -s conftest.s$ac_file; then
-    ac_more_lines=false
-    rm -f conftest.s$ac_file
-  else
-    if test -z "$ac_sed_cmds"; then
-      ac_sed_cmds="sed -f conftest.s$ac_file"
-    else
-      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
-    fi
-    ac_file=`expr $ac_file + 1`
-    ac_beg=$ac_end
-    ac_end=`expr $ac_end + $ac_max_sed_cmds`
-  fi
-done
-if test -z "$ac_sed_cmds"; then
-  ac_sed_cmds=cat
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
 fi
-EOF
 
-cat >> $CONFIG_STATUS <<EOF
+# Name of the executable.
+as_me=`echo "$0" |sed 's,.*[\\/],,'`
 
-CONFIG_FILES=\${CONFIG_FILES-"Makefile lib/Makefile zebra/Makefile ripd/Makefile ripngd/Makefile bgpd/Makefile ospfd/Makefile ospf6d/Makefile vtysh/Makefile doc/Makefile ospfclient/Makefile"}
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case "$ac_file" in
-  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
-       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
-  *) ac_file_in="${ac_file}.in" ;;
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  # We could just check for DJGPP; but this test a) works b) is more generic
+  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+  if test -f conf$$.exe; then
+    # Don't use ln at all; we don't have any links
+    as_ln_s='cp -p'
+  else
+    as_ln_s='ln -s'
+  fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+as_executable_p="test -f"
+
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+# NLS nuisances.
+$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; }
+$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; }
+$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; }
+$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; }
+$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; }
+$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; }
+$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; }
+$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; }
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" 	$as_nl"
+
+# CDPATH.
+$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
+
+exec 6>&1
+
+# Open the log real soon, to keep \$[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.  Logging --version etc. is OK.
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running \$as_me. ##
+_ASBOX
+} >&5
+cat >&5 <<_CSEOF
+
+This file was extended by $as_me, which was
+generated by GNU Autoconf 2.52d.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $@
+
+_CSEOF
+echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+echo >&5
+_ACEOF
+
+# Files that config.status was made for.
+if test -n "$ac_config_files"; then
+  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_headers"; then
+  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_links"; then
+  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_commands"; then
+  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTIONS] [FILE]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number, then exit
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+  --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+  --header=FILE[:TEMPLATE]
+                   instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <bug-autoconf@gnu.org>."
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+ac_cs_version="\\
+config.status
+configured by $0, generated by GNU Autoconf 2.52d,
+  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+srcdir=$srcdir
+INSTALL="$INSTALL"
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+# If no file are specified by the user, then we need to provide default
+# value.  By we need to know if files were specified by the user.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=*)
+    ac_option=`expr "x$1" : 'x\([^=]*\)='`
+    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+    shift
+    set dummy "$ac_option" "$ac_optarg" ${1+"$@"}
+    shift
+    ;;
+  -*);;
+  *) # This is not an option, so the user has probably given explicit
+     # arguments.
+     ac_need_defaults=false;;
   esac
 
-  # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+  case $1 in
+  # Handling of the options.
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion"
+    exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;;
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+  --version | --vers* | -V )
+    echo "$ac_cs_version"; exit 0 ;;
+  --he | --h)
+    # Conflict between --help and --header
+    { { echo "$as_me:7308: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2;}
+   { (exit 1); exit 1; }; };;
+  --help | --hel | -h )
+    echo "$ac_cs_usage"; exit 0 ;;
+  --debug | --d* | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    shift
+    CONFIG_FILES="$CONFIG_FILES $1"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    shift
+    CONFIG_HEADERS="$CONFIG_HEADERS $1"
+    ac_need_defaults=false;;
 
-  # Remove last slash and all that follows it.  Not all systems have dirname.
-  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
-  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
-    # The file is in a subdirectory.
-    test ! -d "$ac_dir" && mkdir "$ac_dir"
-    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
-    # A "../" for each directory in $ac_dir_suffix.
-    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+  # This is an error.
+  -*) { { echo "$as_me:7327: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2;}
+   { (exit 1); exit 1; }; } ;;
+
+  *) ac_config_targets="$ac_config_targets $1" ;;
+
+  esac
+  shift
+done
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+#
+# INIT-COMMANDS section.
+#
+
+AMDEP_TRUE="$AMDEP_TRUE"
+ac_aux_dir="$ac_aux_dir"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_config_target in $ac_config_targets
+do
+  case "$ac_config_target" in
+  # Handling of arguments.
+  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+  "lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
+  "zebra/Makefile" ) CONFIG_FILES="$CONFIG_FILES zebra/Makefile" ;;
+  "ripd/Makefile" ) CONFIG_FILES="$CONFIG_FILES ripd/Makefile" ;;
+  "ripngd/Makefile" ) CONFIG_FILES="$CONFIG_FILES ripngd/Makefile" ;;
+  "bgpd/Makefile" ) CONFIG_FILES="$CONFIG_FILES bgpd/Makefile" ;;
+  "ospfd/Makefile" ) CONFIG_FILES="$CONFIG_FILES ospfd/Makefile" ;;
+  "ospf6d/Makefile" ) CONFIG_FILES="$CONFIG_FILES ospf6d/Makefile" ;;
+  "vtysh/Makefile" ) CONFIG_FILES="$CONFIG_FILES vtysh/Makefile" ;;
+  "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
+  "ospfclient/Makefile" ) CONFIG_FILES="$CONFIG_FILES ospfclient/Makefile" ;;
+  "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
+  "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+  *) { { echo "$as_me:7369: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Create a temporary directory, and hook for its removal unless debugging.
+$debug ||
+{
+  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+  trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+
+# Create a (secure) tmp directory for tmp files.
+: ${TMPDIR=/tmp}
+{
+  tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` &&
+  test -n "$tmp" && test -d "$tmp"
+}  ||
+{
+  tmp=$TMPDIR/cs$$-$RANDOM
+  (umask 077 && mkdir $tmp)
+} ||
+{
+   echo "$me: cannot create a temporary directory in $TMPDIR" >&2
+   { (exit 1); exit 1; }
+}
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+
+#
+# CONFIG_FILES section.
+#
+
+# No need to generate the scripts if there are no CONFIG_FILES.
+# This happens for instance when ./config.status config.h
+if test -n "\$CONFIG_FILES"; then
+  # Protect against being on the right side of a sed subst in config.status.
+  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
+   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+s,@SHELL@,$SHELL,;t t
+s,@exec_prefix@,$exec_prefix,;t t
+s,@prefix@,$prefix,;t t
+s,@program_transform_name@,$program_transform_name,;t t
+s,@bindir@,$bindir,;t t
+s,@sbindir@,$sbindir,;t t
+s,@libexecdir@,$libexecdir,;t t
+s,@datadir@,$datadir,;t t
+s,@sysconfdir@,$sysconfdir,;t t
+s,@sharedstatedir@,$sharedstatedir,;t t
+s,@localstatedir@,$localstatedir,;t t
+s,@libdir@,$libdir,;t t
+s,@includedir@,$includedir,;t t
+s,@oldincludedir@,$oldincludedir,;t t
+s,@infodir@,$infodir,;t t
+s,@mandir@,$mandir,;t t
+s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
+s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
+s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+s,@build_alias@,$build_alias,;t t
+s,@host_alias@,$host_alias,;t t
+s,@target_alias@,$target_alias,;t t
+s,@ECHO_C@,$ECHO_C,;t t
+s,@ECHO_N@,$ECHO_N,;t t
+s,@ECHO_T@,$ECHO_T,;t t
+s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+s,@DEFS@,$DEFS,;t t
+s,@LIBS@,$LIBS,;t t
+s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
+s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
+s,@INSTALL_DATA@,$INSTALL_DATA,;t t
+s,@PACKAGE@,$PACKAGE,;t t
+s,@VERSION@,$VERSION,;t t
+s,@EXEEXT@,$EXEEXT,;t t
+s,@OBJEXT@,$OBJEXT,;t t
+s,@ACLOCAL@,$ACLOCAL,;t t
+s,@AUTOCONF@,$AUTOCONF,;t t
+s,@AUTOMAKE@,$AUTOMAKE,;t t
+s,@AUTOHEADER@,$AUTOHEADER,;t t
+s,@MAKEINFO@,$MAKEINFO,;t t
+s,@AMTAR@,$AMTAR,;t t
+s,@install_sh@,$install_sh,;t t
+s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
+s,@AWK@,$AWK,;t t
+s,@SET_MAKE@,$SET_MAKE,;t t
+s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t
+s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t
+s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
+s,@DEPDIR@,$DEPDIR,;t t
+s,@build@,$build,;t t
+s,@build_cpu@,$build_cpu,;t t
+s,@build_vendor@,$build_vendor,;t t
+s,@build_os@,$build_os,;t t
+s,@host@,$host,;t t
+s,@host_cpu@,$host_cpu,;t t
+s,@host_vendor@,$host_vendor,;t t
+s,@host_os@,$host_os,;t t
+s,@CC@,$CC,;t t
+s,@CFLAGS@,$CFLAGS,;t t
+s,@LDFLAGS@,$LDFLAGS,;t t
+s,@CPPFLAGS@,$CPPFLAGS,;t t
+s,@ac_ct_CC@,$ac_ct_CC,;t t
+s,@am__include@,$am__include,;t t
+s,@am__quote@,$am__quote,;t t
+s,@CCDEPMODE@,$CCDEPMODE,;t t
+s,@CPP@,$CPP,;t t
+s,@AR@,$AR,;t t
+s,@ac_ct_AR@,$ac_ct_AR,;t t
+s,@RANLIB@,$RANLIB,;t t
+s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
+s,@MULTIPATH_NUM@,$MULTIPATH_NUM,;t t
+s,@LIBPAM@,$LIBPAM,;t t
+s,@RT_METHOD@,$RT_METHOD,;t t
+s,@KERNEL_METHOD@,$KERNEL_METHOD,;t t
+s,@OTHER_METHOD@,$OTHER_METHOD,;t t
+s,@RTREAD_METHOD@,$RTREAD_METHOD,;t t
+s,@IF_METHOD@,$IF_METHOD,;t t
+s,@IF_PROC@,$IF_PROC,;t t
+s,@IPFORWARD@,$IPFORWARD,;t t
+s,@LIB_IPV6@,$LIB_IPV6,;t t
+s,@ZEBRA@,$ZEBRA,;t t
+s,@BGPD@,$BGPD,;t t
+s,@RIPD@,$RIPD,;t t
+s,@RIPNGD@,$RIPNGD,;t t
+s,@OSPFD@,$OSPFD,;t t
+s,@OSPF6D@,$OSPF6D,;t t
+s,@VTYSH@,$VTYSH,;t t
+s,@INCLUDES@,$INCLUDES,;t t
+s,@CURSES@,$CURSES,;t t
+s,@OSPFCLIENT@,$OSPFCLIENT,;t t
+s,@OSPFAPI@,$OSPFAPI,;t t
+s,@LIB_REGEX@,$LIB_REGEX,;t t
+CEOF
+
+_ACEOF
+
+  cat >>$CONFIG_STATUS <<\_ACEOF
+  # Split the substitutions into bite-sized pieces for seds with
+  # small command number limits, like on Digital OSF/1 and HP-UX.
+  ac_max_sed_lines=48
+  ac_sed_frag=1 # Number of current file.
+  ac_beg=1 # First line for current file.
+  ac_end=$ac_max_sed_lines # Line after last line for current file.
+  ac_more_lines=:
+  ac_sed_cmds=
+  while $ac_more_lines; do
+    if test $ac_beg -gt 1; then
+      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    else
+      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    fi
+    if test ! -s $tmp/subs.frag; then
+      ac_more_lines=false
+    else
+      # The purpose of the label and of the branching condition is to
+      # speed up the sed processing (if there are no `@' at all, there
+      # is no need to browse any of the substitutions).
+      # These are the two extra sed commands mentioned above.
+      (echo ':t
+  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+      if test -z "$ac_sed_cmds"; then
+  	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+      else
+  	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+      fi
+      ac_sed_frag=`expr $ac_sed_frag + 1`
+      ac_beg=$ac_end
+      ac_end=`expr $ac_end + $ac_max_sed_lines`
+    fi
+  done
+  if test -z "$ac_sed_cmds"; then
+    ac_sed_cmds=cat
+  fi
+fi # test -n "$CONFIG_FILES"
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case $ac_file in
+  - | *:- | *:-:* ) # input from stdin
+        cat >$tmp/stdin
+        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  * )   ac_file_in=$ac_file.in ;;
+  esac
+
+  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+  ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$ac_file" : 'X\(//\)[^/]' \| \
+         X"$ac_file" : 'X\(//\)$' \| \
+         X"$ac_file" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  { case "$ac_dir" in
+  [\\/]* | ?:[\\/]* ) as_incr_dir=;;
+  *)                      as_incr_dir=.;;
+esac
+as_dummy="$ac_dir"
+for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
+  case $as_mkdir_dir in
+    # Skip DOS drivespec
+    ?:) as_incr_dir=$as_mkdir_dir ;;
+    *)
+      as_incr_dir=$as_incr_dir/$as_mkdir_dir
+      test -d "$as_incr_dir" ||
+        mkdir "$as_incr_dir" ||
+	{ { echo "$as_me:7597: error: cannot create \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }
+    ;;
+  esac
+done; }
+
+  if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\./,,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+  esac
+
+  if test x"$ac_file" != x-; then
+    { echo "$as_me:7634: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+    rm -f "$ac_file"
+  fi
+  # Let's still pretend it is `configure' which instantiates (i.e., don't
+  # use $as_me), people would be surprised to read:
+  #    /* config.h.  Generated automatically by config.status.  */
+  configure_input="Generated automatically from `echo $ac_file_in |
+                                                 sed 's,.*/,,'` by configure."
+
+  # First look for the input files in the build tree, otherwise in the
+  # src tree.
+  ac_file_inputs=`IFS=:
+    for f in $ac_file_in; do
+      case $f in
+      -) echo $tmp/stdin ;;
+      [\\/$]*)
+         # Absolute (can't be DOS-style, as IFS=:)
+         test -f "$f" || { { echo "$as_me:7652: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         echo $f;;
+      *) # Relative
+         if test -f "$f"; then
+           # Build tree
+           echo $f
+         elif test -f "$srcdir/$f"; then
+           # Source tree
+           echo $srcdir/$f
+         else
+           # /dev/null tree
+           { { echo "$as_me:7665: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         fi;;
+      esac
+    done` || { (exit 1); exit 1; }
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+  sed "$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s,@configure_input@,$configure_input,;t t
+s,@srcdir@,$ac_srcdir,;t t
+s,@top_srcdir@,$ac_top_srcdir,;t t
+s,@INSTALL@,$ac_INSTALL,;t t
+" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+  rm -f $tmp/stdin
+  if test x"$ac_file" != x-; then
+    mv $tmp/out $ac_file
   else
-    ac_dir_suffix= ac_dots=
+    cat $tmp/out
+    rm -f $tmp/out
   fi
 
-  case "$ac_given_srcdir" in
-  .)  srcdir=.
-      if test -z "$ac_dots"; then top_srcdir=.
-      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
-  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
-  *) # Relative path.
-    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
-    top_srcdir="$ac_dots$ac_given_srcdir" ;;
-  esac
+done
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
 
-  case "$ac_given_INSTALL" in
-  [/$]*) INSTALL="$ac_given_INSTALL" ;;
-  *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
-  esac
-
-  echo creating "$ac_file"
-  rm -f "$ac_file"
-  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
-  case "$ac_file" in
-  *Makefile*) ac_comsub="1i\\
-# $configure_input" ;;
-  *) ac_comsub= ;;
-  esac
-
-  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
-  sed -e "$ac_comsub
-s%@configure_input@%$configure_input%g
-s%@srcdir@%$srcdir%g
-s%@top_srcdir@%$top_srcdir%g
-s%@INSTALL@%$INSTALL%g
-" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
-fi; done
-rm -f conftest.s*
+#
+# CONFIG_HEADER section.
+#
 
 # These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
 # NAME is the cpp macro being defined and VALUE is the value it is being given.
 #
 # ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s%^\([ 	]*\)#\([ 	]*define[ 	][ 	]*\)'
-ac_dB='\([ 	][ 	]*\)[^ 	]*%\1#\2'
-ac_dC='\3'
-ac_dD='%g'
-# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
-ac_uA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
-ac_uB='\([ 	]\)%\1#\2define\3'
+ac_dA='s,^\([ 	]*\)#\([ 	]*define[ 	][ 	]*\)'
+ac_dB='[ 	].*$,\1#\2'
+ac_dC=' '
+ac_dD=',;t'
+# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_uA='s,^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_uB='$,\1#\2define\3'
 ac_uC=' '
-ac_uD='\4%g'
-# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_eA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
-ac_eB='$%\1#\2define\3'
-ac_eC=' '
-ac_eD='%g'
+ac_uD=',;t'
 
-if test "${CONFIG_HEADERS+set}" != set; then
-EOF
-cat >> $CONFIG_STATUS <<EOF
-  CONFIG_HEADERS="config.h"
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-fi
-for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
+for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
   # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case "$ac_file" in
-  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
-       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
-  *) ac_file_in="${ac_file}.in" ;;
+  case $ac_file in
+  - | *:- | *:-:* ) # input from stdin
+        cat >$tmp/stdin
+        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  * )   ac_file_in=$ac_file.in ;;
   esac
 
-  echo creating $ac_file
+  test x"$ac_file" != x- && { echo "$as_me:7726: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
 
-  rm -f conftest.frag conftest.in conftest.out
-  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
-  cat $ac_file_inputs > conftest.in
+  # First look for the input files in the build tree, otherwise in the
+  # src tree.
+  ac_file_inputs=`IFS=:
+    for f in $ac_file_in; do
+      case $f in
+      -) echo $tmp/stdin ;;
+      [\\/$]*)
+         # Absolute (can't be DOS-style, as IFS=:)
+         test -f "$f" || { { echo "$as_me:7737: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         echo $f;;
+      *) # Relative
+         if test -f "$f"; then
+           # Build tree
+           echo $f
+         elif test -f "$srcdir/$f"; then
+           # Source tree
+           echo $srcdir/$f
+         else
+           # /dev/null tree
+           { { echo "$as_me:7750: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         fi;;
+      esac
+    done` || { (exit 1); exit 1; }
+  # Remove the trailing spaces.
+  sed 's/[ 	]*$//' $ac_file_inputs >$tmp/in
 
-EOF
+_ACEOF
 
-# Transform confdefs.h into a sed script conftest.vals that substitutes
-# the proper values into config.h.in to produce config.h.  And first:
-# Protect against being on the right side of a sed subst in config.status.
-# Protect against being in an unquoted here document in config.status.
-rm -f conftest.vals
-cat > conftest.hdr <<\EOF
-s/[\\&%]/\\&/g
-s%[\\$`]%\\&%g
-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
-s%ac_d%ac_u%gp
-s%ac_u%ac_e%gp
-EOF
-sed -n -f conftest.hdr confdefs.h > conftest.vals
-rm -f conftest.hdr
+# Transform confdefs.h into two sed scripts, `conftest.defines' and
+# `conftest.undefs', that substitutes the proper values into
+# config.h.in to produce config.h.  The first handles `#define'
+# templates, and the second `#undef' templates.
+# And first: Protect against being on the right side of a sed subst in
+# config.status.  Protect against being in an unquoted here document
+# in config.status.
+rm -f conftest.defines conftest.undefs
+# Using a here document instead of a string reduces the quoting nightmare.
+# Putting comments in sed scripts is not portable.
+#
+# `end' is used to avoid that the second main sed command (meant for
+# 0-ary CPP macros) applies to n-ary macro definitions.
+# See the Autoconf documentation for `clear'.
+cat >confdef2sed.sed <<\_ACEOF
+s/[\\&,]/\\&/g
+s,[\\$`],\\&,g
+t clear
+: clear
+s,^[ 	]*#[ 	]*define[ 	][ 	]*\(\([^ 	(][^ 	(]*\)([^)]*)\)[ 	]*\(.*\)$,${ac_dA}\2${ac_dB}\1${ac_dC}\3${ac_dD},gp
+t end
+s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	][^ 	]*\)[ 	]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
+: end
+_ACEOF
+# If some macros were called several times there might be several times
+# the same #defines, which is useless.  Nevertheless, we may not want to
+# sort them, since we want the *last* AC-DEFINE to be honored.
+uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
+sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
+rm -f confdef2sed.sed
 
 # This sed command replaces #undef with comments.  This is necessary, for
 # example, in the case of _POSIX_SOURCE, which is predefined and required
 # on some systems where configure will not decide to define it.
-cat >> conftest.vals <<\EOF
-s%^[ 	]*#[ 	]*undef[ 	][ 	]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
-EOF
+cat >>conftest.undefs <<\_ACEOF
+s,^[ 	]*#[ 	]*undef[ 	][ 	]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+_ACEOF
 
-# Break up conftest.vals because some shells have a limit on
-# the size of here documents, and old seds have small limits too.
-
+# Break up conftest.defines because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
+echo '  if egrep "^[ 	]*#[ 	]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
+echo '  :' >>$CONFIG_STATUS
 rm -f conftest.tail
-while :
+while grep . conftest.defines >/dev/null
 do
-  ac_lines=`grep -c . conftest.vals`
-  # grep -c gives empty output for an empty file on some AIX systems.
-  if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
-  # Write a limited-size here document to conftest.frag.
-  echo '  cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
-  sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
+  # Write a limited-size here document to $tmp/defines.sed.
+  echo '  cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
+  # Speed up: don't consider the non `#define' lines.
+  echo '/^[ 	]*#[ 	]*define/!b' >>$CONFIG_STATUS
+  # Work around the forget-to-reset-the-flag bug.
+  echo 't clr' >>$CONFIG_STATUS
+  echo ': clr' >>$CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
   echo 'CEOF
-  sed -f conftest.frag conftest.in > conftest.out
-  rm -f conftest.in
-  mv conftest.out conftest.in
-' >> $CONFIG_STATUS
-  sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
-  rm -f conftest.vals
-  mv conftest.tail conftest.vals
+  sed -f $tmp/defines.sed $tmp/in >$tmp/out
+  rm -f $tmp/in
+  mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
+  rm -f conftest.defines
+  mv conftest.tail conftest.defines
 done
-rm -f conftest.vals
+rm -f conftest.defines
+echo '  fi # egrep' >>$CONFIG_STATUS
+echo >>$CONFIG_STATUS
 
-cat >> $CONFIG_STATUS <<\EOF
-  rm -f conftest.frag conftest.h
-  echo "/* $ac_file.  Generated automatically by configure.  */" > conftest.h
-  cat conftest.in >> conftest.h
-  rm -f conftest.in
-  if cmp -s $ac_file conftest.h 2>/dev/null; then
-    echo "$ac_file is unchanged"
-    rm -f conftest.h
+# Break up conftest.undefs because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo '  # Handle all the #undef templates' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.undefs >/dev/null
+do
+  # Write a limited-size here document to $tmp/undefs.sed.
+  echo '  cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
+  # Speed up: don't consider the non `#undef'
+  echo '/^[ 	]*#[ 	]*undef/!b' >>$CONFIG_STATUS
+  # Work around the forget-to-reset-the-flag bug.
+  echo 't clr' >>$CONFIG_STATUS
+  echo ': clr' >>$CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
+  echo 'CEOF
+  sed -f $tmp/undefs.sed $tmp/in >$tmp/out
+  rm -f $tmp/in
+  mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
+  rm -f conftest.undefs
+  mv conftest.tail conftest.undefs
+done
+rm -f conftest.undefs
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+  # Let's still pretend it is `configure' which instantiates (i.e., don't
+  # use $as_me), people would be surprised to read:
+  #    /* config.h.  Generated automatically by config.status.  */
+  if test x"$ac_file" = x-; then
+    echo "/* Generated automatically by configure.  */" >$tmp/config.h
   else
-    # Remove last slash and all that follows it.  Not all systems have dirname.
-      ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
-      if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
-      # The file is in a subdirectory.
-      test ! -d "$ac_dir" && mkdir "$ac_dir"
-    fi
-    rm -f $ac_file
-    mv conftest.h $ac_file
+    echo "/* $ac_file.  Generated automatically by configure.  */" >$tmp/config.h
   fi
-fi; done
+  cat $tmp/in >>$tmp/config.h
+  rm -f $tmp/in
+  if test x"$ac_file" != x-; then
+    if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
+      { echo "$as_me:7867: $ac_file is unchanged" >&5
+echo "$as_me: $ac_file is unchanged" >&6;}
+    else
+      ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$ac_file" : 'X\(//\)[^/]' \| \
+         X"$ac_file" : 'X\(//\)$' \| \
+         X"$ac_file" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+      { case "$ac_dir" in
+  [\\/]* | ?:[\\/]* ) as_incr_dir=;;
+  *)                      as_incr_dir=.;;
+esac
+as_dummy="$ac_dir"
+for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
+  case $as_mkdir_dir in
+    # Skip DOS drivespec
+    ?:) as_incr_dir=$as_mkdir_dir ;;
+    *)
+      as_incr_dir=$as_incr_dir/$as_mkdir_dir
+      test -d "$as_incr_dir" ||
+        mkdir "$as_incr_dir" ||
+	{ { echo "$as_me:7894: error: cannot create \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }
+    ;;
+  esac
+done; }
 
-EOF
-cat >> $CONFIG_STATUS <<EOF
+      rm -f $ac_file
+      mv $tmp/config.h $ac_file
+    fi
+  else
+    cat $tmp/config.h
+    rm -f $tmp/config.h
+  fi
+  # Run the commands associated with the file.
+  case $ac_file in
+    config.h ) # update the timestamp
+echo timestamp >"./stamp-h1"
+ ;;
+  esac
+done
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
 
+#
+# CONFIG_COMMANDS section.
+#
+for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
+  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
+  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
+  ac_dir=`$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$ac_dest" : 'X\(//\)[^/]' \| \
+         X"$ac_dest" : 'X\(//\)$' \| \
+         X"$ac_dest" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_dest" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\./,,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
 
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
 
-exit 0
-EOF
+  { echo "$as_me:7959: executing $ac_dest commands" >&5
+echo "$as_me: executing $ac_dest commands" >&6;}
+  case $ac_dest in
+    default-1 )
+test x"$AMDEP_TRUE" != x"" ||
+for mf in $CONFIG_FILES; do
+  case "$mf" in
+  Makefile) dirpart=.;;
+  */Makefile) dirpart=`echo "$mf" | sed -e 's|/[^/]*$||'`;;
+  *) continue;;
+  esac
+  grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
+  # Extract the definition of DEP_FILES from the Makefile without
+  # running `make'.
+  DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
+  test -z "$DEPDIR" && continue
+  # When using ansi2knr, U may be empty or an underscore; expand it
+  U=`sed -n -e '/^U = / s///p' < "$mf"`
+  test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
+  # We invoke sed twice because it is the simplest approach to
+  # changing $(DEPDIR) to its actual value in the expansion.
+  for file in `sed -n -e '
+    /^DEP_FILES = .*\\\\$/ {
+      s/^DEP_FILES = //
+      :loop
+	s/\\\\$//
+	p
+	n
+	/\\\\$/ b loop
+      p
+    }
+    /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+    # Make sure the directory exists.
+    test -f "$dirpart/$file" && continue
+    fdir=`echo "$file" | sed -e 's|/[^/]*$||'`
+    $ac_aux_dir/mkinstalldirs "$dirpart/$fdir" > /dev/null 2>&1
+    # echo "creating $dirpart/$file"
+    echo '# dummy' > "$dirpart/$file"
+  done
+done
+ ;;
+  esac
+done
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+{ (exit 0); exit 0; }
+_ACEOF
 chmod +x $CONFIG_STATUS
-rm -fr confdefs* $ac_clean_files
-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+ac_clean_files=$ac_clean_files_save
 
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || { (exit 1); exit 1; }
+fi
 
 echo "
 zebra configuration
diff --git a/configure.in b/configure.in
index 4c30212..8477401 100755
--- a/configure.in
+++ b/configure.in
@@ -69,8 +69,6 @@
 [  --disable-ripngd        do not build ripngd])
 AC_ARG_ENABLE(ospfd,
 [  --disable-ospfd         do not build ospfd])
-AC_ARG_ENABLE(ospfclient,
-[  --disable-ospfclient         do not build ospfclient])
 AC_ARG_ENABLE(ospf6d,
 [  --disable-ospf6d        do not build ospf6d])
 AC_ARG_ENABLE(bgp-announce,
@@ -89,7 +87,13 @@
 AC_ARG_ENABLE(nssa,
 [  --enable-nssa           enable OSPF NSSA option])
 AC_ARG_ENABLE(opaque-lsa,
-[  --enable-opaque-lsa     enable OSPF Opaque-LSA support (RFC2370)])
+[  --enable-opaque-lsa     enable OSPF Opaque-LSA with OSPFAPI support (RFC2370)])
+AC_ARG_ENABLE(ospfapi,
+[  --disable-ospfapi       do not build OSPFAPI to access the OSPF LSA Database, 
+                          (this is the default if --enable-opaque-lsa is not set)])
+AC_ARG_ENABLE(ospfclient,
+[  --disable-ospfclient    do not build OSPFAPI client for OSPFAPI, 
+                          (this is the default if --disable-ospfapi is set)])
 AC_ARG_ENABLE(ospf-te,
 [  --enable-ospf-te        enable Traffic Engineering Extension to OSPF])
 AC_ARG_ENABLE(multipath,
@@ -536,10 +540,17 @@
   OSPFD="ospfd"
 fi
 
-if test "${enable_ospfclient}" = "no";then
-  OSPFCLIENT=""
-else
-  OSPFCLIENT="ospfclient"
+OSPFAPI=""
+OSPFCLIENT=""
+if test "${enable_opaque_lsa}" = "yes"; then
+  if test "${enable_ospfapi}" != "no";then
+    OSPFAPI="-DSUPPORT_OSPF_API"
+
+    if test "${enable_ospfclient}" != "no";then
+      OSPFCLIENT="ospfclient"
+    fi
+  fi
+
 fi
 
 case "${enable_ripngd}" in
@@ -568,6 +579,7 @@
 AC_SUBST(INCLUDES)
 AC_SUBST(CURSES)
 AC_SUBST(OSPFCLIENT)
+AC_SUBST(OSPFAPI)
 AC_CHECK_LIB(c, inet_ntop, [AC_DEFINE(HAVE_INET_NTOP,,inet_ntop)])
 AC_CHECK_LIB(c, inet_pton, [AC_DEFINE(HAVE_INET_PTON,,inet_pton)])
 AC_CHECK_LIB(crypt, crypt)
@@ -596,55 +608,64 @@
 dnl ------------------
 if test "${enable_snmp}" = "yes";then
 dnl  AC_CHECK_LIB(snmp, asn_parse_int, HAVE_SNMP=yes)
-  old_libs="${LIBS}"
-  LIBS="-L/usr/local/lib"
-  unset ac_cv_lib_snmp_asn_parse_int
-  AC_CHECK_LIB(snmp, asn_parse_int, HAVE_SNMP=yes, )
   if test "${HAVE_SNMP}" = ""; then
+    old_libs="${LIBS}"
+    LIBS="-L/usr/lib"
     unset ac_cv_lib_snmp_asn_parse_int
-    AC_CHECK_LIB(crypto, main, [NEED_CRYPTO=yes ], )
-	if test "${NEED_CRYPTO}" = ""; then 
-		AC_CHECK_LIB(snmp, asn_parse_int, [HAVE_SNMP=yes; NEED_CRYPTO=yes ],)
-	else
-	    AC_CHECK_LIB(snmp, asn_parse_int, [HAVE_SNMP=yes; NEED_CRYPTO=yes;LIBS="$LIBS -lcrypto" ],,"-lcrypto")
-	fi
+    AC_CHECK_LIB(crypto, main, NEED_CRYPTO=yes, )
+    if test "${NEED_CRYPTO}" = ""; then
+      AC_CHECK_LIB(netsnmp, asn_parse_int, [HAVE_NETSNMP=yes; HAVE_SNMP=yes ])
+    else
+      AC_CHECK_LIB(netsnmp, asn_parse_int, [HAVE_NETSNMP=yes; HAVE_SNMP=yes; NEED_CRYPTO=yes;LIBS="$LIBS -lcrypto" ],,"-lcrypto")
+    fi
+    LIBS="${old_libs}"
   fi
-  LIBS="${old_libs}"
+  if test "${HAVE_SNMP}" = ""; then
+    old_libs="${LIBS}"
+    LIBS="-L/usr/lib"
+    unset ac_cv_lib_snmp_asn_parse_int
+    AC_CHECK_LIB(snmp, asn_parse_int, HAVE_SNMP=yes, )
+    if test "${HAVE_SNMP}" = ""; then
+      unset ac_cv_lib_snmp_asn_parse_int
+      AC_CHECK_LIB(crypto, main, NEED_CRYPTO=yes, )
+      if test "${NEED_CRYPTO}" = "yes"; then 
+        AC_CHECK_LIB(snmp, asn_parse_int, [HAVE_SNMP=yes; NEED_CRYPTO=yes; LIBS="$LIBS -lcrypto" ],,"-lcrypto")
+      fi
+    fi
+    LIBS="${old_libs}"
+  fi
 
   if test "${HAVE_SNMP}" = ""; then
-	old_libs="${LIBS}"
-	LIBS="-L/usr/local/lib"
-	AC_CHECK_LIB(snmp, asn_parse_int, HAVE_SNMP=yes)
-	LIBS="${old_libs}"
+    old_libs="${LIBS}"
+    LIBS="-L/usr/local/lib"
+    unset ac_cv_lib_snmp_asn_parse_int
+    AC_CHECK_LIB(snmp, asn_parse_int, HAVE_SNMP=yes)
+    if test "${HAVE_SNMP}" = ""; then
+      unset ac_cv_lib_snmp_asn_parse_int
+      AC_CHECK_LIB(crypto, main, NEED_CRYPTO=yes, )
+      if test "${NEED_CRYPTO}" = "yes"; then
+        AC_CHECK_LIB(snmp, asn_parse_int, [HAVE_SNMP=yes; NEED_CRYPTO=yes; LIBS="$LIBS -lcrypto" ],,"-lcrypto")
+      fi
+    fi
+    LIBS="${old_libs}"
   fi
-  if test "${HAVE_SNMP}" = ""; then
-	if test "${NEED_CRYPTO}" = ""; then
-	     old_libs="${LIBS}"
-	     LIBS="-L/usr/lib"
-	     AC_CHECK_LIB(netsnmp, asn_parse_int, [HAVE_NETSNMP=yes; HAVE_SNMP=yes ])
-	     LIBS="${old_libs}"
-	else
-	     old_libs="${LIBS}"
-	     LIBS="-L/usr/lib"
-       	     AC_CHECK_LIB(netsnmp, asn_parse_int, [HAVE_NETSNMP=yes; HAVE_SNMP=yes; NEED_CRYPTO=yes;LIBS="$LIBS -lcrypto" ],,"-lcrypto")
-	     LIBS="${old_libs}"
-	fi
-  fi
+
   if test "${HAVE_SNMP}" = "yes"; then
     for ac_snmp in /usr/include/net-snmp/library/asn1.h /usr/include/ucd-snmp/asn1.h /usr/local/include/ucd-snmp/asn1.h /dev/null
     do
       test -f "${ac_snmp}" && break
     done
+
     case ${ac_snmp} in
       /usr/include/net-snmp/*)
                   AC_DEFINE(HAVE_SNMP,,SNMP)
+		  AC_DEFINE(HAVE_NETSNMP,,SNMP)
                   AC_DEFINE(UCD_COMPATIBLE,,SNMP)
                   CFLAGS="${CFLAGS} -I/usr/include/net-snmp -I/usr/include/net-snmp/library"
 		  if test "${HAVE_NETSNMP}" = "yes"; then
-                       AC_DEFINE(HAVE_NETSNMP,,SNMP)
-                       LIBS="${LIBS} -lnetsnmp"
+		        LIBS="${LIBS} -lnetsnmp"
 		  else
-                  LIBS="${LIBS} -lsnmp"
+			LIBS="${LIBS} -lsnmp"
 		  fi
                   ;;
       /usr/include/ucd-snmp/*) 
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 77bfd8d..030847f 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -1,6 +1,7 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.5 from Makefile.am.
 
-# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# 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.
@@ -10,6 +11,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+@SET_MAKE@
 
 SHELL = @SHELL@
 
@@ -31,13 +33,9 @@
 mandir = @mandir@
 includedir = @includedir@
 oldincludedir = /usr/include
-
-DESTDIR =
-
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-
 top_builddir = ..
 
 ACLOCAL = @ACLOCAL@
@@ -46,11 +44,11 @@
 AUTOHEADER = @AUTOHEADER@
 
 INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
 transform = @program_transform_name@
-
 NORMAL_INSTALL = :
 PRE_INSTALL = :
 POST_INSTALL = :
@@ -59,22 +57,28 @@
 POST_UNINSTALL = :
 host_alias = @host_alias@
 host_triplet = @host@
+AMTAR = @AMTAR@
 AR = @AR@
+AWK = @AWK@
 BGPD = @BGPD@
 CC = @CC@
 CPP = @CPP@
 CURSES = @CURSES@
+DEPDIR = @DEPDIR@
+EXEEXT = @EXEEXT@
 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@
-MAKEINFO = @MAKEINFO@
 MULTIPATH_NUM = @MULTIPATH_NUM@
+OBJEXT = @OBJEXT@
 OSPF6D = @OSPF6D@
+OSPFAPI = @OSPFAPI@
 OSPFCLIENT = @OSPFCLIENT@
 OSPFD = @OSPFD@
 OTHER_METHOD = @OTHER_METHOD@
@@ -87,6 +91,9 @@
 VERSION = @VERSION@
 VTYSH = @VTYSH@
 ZEBRA = @ZEBRA@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
 
 info_TEXINFOS = zebra.texi
 
@@ -98,94 +105,263 @@
 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 = ../config.h
-CONFIG_CLEAN_FILES = 
-TEXI2DVI = texi2dvi
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
 INFO_DEPS = zebra.info
 DVIS = zebra.dvi
 TEXINFOS = zebra.texi
-man1dir = $(mandir)/man1
-man8dir = $(mandir)/man8
-MANS = $(man_MANS)
 
 NROFF = nroff
-DIST_COMMON =  $(zebra_TEXINFOS) ChangeLog Makefile.am Makefile.in \
-texinfo.tex
+MANS = $(man_MANS)
+DIST_COMMON = $(zebra_TEXINFOS) ChangeLog Makefile.am Makefile.in \
+	texinfo.tex
+all: all-am
 
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = gtar
-GZIP_ENV = --best
-all: all-redirect
 .SUFFIXES:
-.SUFFIXES: .dvi .info .ps .texi .texinfo .txi
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile
-
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
-	cd $(top_builddir) \
-	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
+.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) && \
+	  CONFIG_HEADERS= CONFIG_LINKS= \
+	  CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
 
 zebra.info: zebra.texi $(zebra_TEXINFOS)
 zebra.dvi: zebra.texi $(zebra_TEXINFOS)
 
-
-DVIPS = dvips
-
 .texi.info:
 	@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
 	cd $(srcdir) \
-	  && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
+	  && $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
+	       `echo $< | sed 's,.*/,,'`
 
 .texi.dvi:
-	TEXINPUTS=.:$$TEXINPUTS \
-	  MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
+	TEXINPUTS=$(srcdir):$$TEXINPUTS \
+	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+	$(TEXI2DVI) $<
 
 .texi:
 	@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
 	cd $(srcdir) \
-	  && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
+	  && $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
+	       `echo $< | sed 's,.*/,,'`
 
-.texinfo.info:
-	@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
-	cd $(srcdir) \
-	  && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-
-.texinfo:
-	@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
-	cd $(srcdir) \
-	  && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-
-.texinfo.dvi:
-	TEXINPUTS=.:$$TEXINPUTS \
-	  MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
-
-.txi.info:
-	@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
-	cd $(srcdir) \
-	  && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-
-.txi.dvi:
-	TEXINPUTS=.:$$TEXINPUTS \
-	  MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
-
-.txi:
-	@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
-	cd $(srcdir) \
-	  && $(MAKEINFO) `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 `CDPATH=: && cd $$d && eval echo $$base*`; do \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file; \
+	  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.toc zebra.tp zebra.vr
+
+maintainer-clean-aminfo:
+	cd $(srcdir) && \
+	for i in $(INFO_DEPS); 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/^.*\\.//'`; \
+	  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/^.*\\.//'`; \
+	  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)
+	@for file in $(DISTFILES); do \
+	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    $(mkinstalldirs) "$(distdir)/$$dir"; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    cp -pR $$d/$$file $(distdir) \
+	    || 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)" \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
+
+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 `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
+	  for ifile in `CDPATH=: && cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
 	    if test -f $$d/$$ifile; then \
 	      echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
 	      $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
@@ -193,224 +369,44 @@
 	  done; \
 	done
 	@$(POST_INSTALL)
-	@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
+	@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
 
-uninstall-info:
-	$(PRE_UNINSTALL)
-	@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
-	  ii=yes; \
-	else ii=; fi; \
-	list='$(INFO_DEPS)'; \
-	for file in $$list; do \
-	  test -z "$$ii" \
-	    || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
-	done
-	@$(NORMAL_UNINSTALL)
-	list='$(INFO_DEPS)'; \
-	for file in $$list; do \
-	  (cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
-	done
-
-dist-info: $(INFO_DEPS)
-	list='$(INFO_DEPS)'; \
-	for base in $$list; do \
-	  d=$(srcdir); \
-	  for file in `cd $$d && eval echo $$base*`; do \
-	    test -f $(distdir)/$$file \
-	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	    || cp -p $$d/$$file $(distdir)/$$file; \
-	  done; \
-	done
-
-mostlyclean-aminfo:
-	-rm -f zebra.aux zebra.cp zebra.cps zebra.dvi zebra.fn zebra.fns \
-	  zebra.ky zebra.kys zebra.ps zebra.log zebra.pg zebra.toc \
-	  zebra.tp zebra.tps zebra.vr zebra.vrs zebra.op zebra.tr \
-	  zebra.cv zebra.cn
-
-clean-aminfo:
-
-distclean-aminfo:
-
-maintainer-clean-aminfo:
-	cd $(srcdir) && for i in $(INFO_DEPS); do \
-	  rm -f $$i; \
-	  if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
-	    rm -f $$i-[0-9]*; \
-	  fi; \
-	done
-
-install-man1:
-	$(mkinstalldirs) $(DESTDIR)$(man1dir)
-	@list='$(man1_MANS)'; \
-	l2='$(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/^.*\\.//'`; \
-	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-	  echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
-	  $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
-	done
-
-uninstall-man1:
-	@list='$(man1_MANS)'; \
-	l2='$(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 '$(transform)'`.$$ext; \
-	  echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
-	  rm -f $(DESTDIR)$(man1dir)/$$inst; \
-	done
-
-install-man8:
-	$(mkinstalldirs) $(DESTDIR)$(man8dir)
-	@list='$(man8_MANS)'; \
-	l2='$(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/^.*\\.//'`; \
-	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-	  echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst"; \
-	  $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst; \
-	done
-
-uninstall-man8:
-	@list='$(man8_MANS)'; \
-	l2='$(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 '$(transform)'`.$$ext; \
-	  echo " rm -f $(DESTDIR)$(man8dir)/$$inst"; \
-	  rm -f $(DESTDIR)$(man8dir)/$$inst; \
-	done
-install-man: $(MANS)
-	@$(NORMAL_INSTALL)
-	$(MAKE) $(AM_MAKEFLAGS) install-man1 install-man8
-uninstall-man:
-	@$(NORMAL_UNINSTALL)
-	$(MAKE) $(AM_MAKEFLAGS) uninstall-man1 uninstall-man8
-tags: TAGS
-TAGS:
-
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = doc
-
-distdir: $(DISTFILES)
-	here=`cd $(top_builddir) && pwd`; \
-	top_distdir=`cd $(top_distdir) && pwd`; \
-	distdir=`cd $(distdir) && pwd`; \
-	cd $(top_srcdir) \
-	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign doc/Makefile
-	@for file in $(DISTFILES); do \
-	  d=$(srcdir); \
-	  if test -d $$d/$$file; then \
-	    cp -pr $$d/$$file $(distdir)/$$file; \
-	  else \
-	    test -f $(distdir)/$$file \
-	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	    || cp -p $$d/$$file $(distdir)/$$file || :; \
-	  fi; \
-	done
-	$(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info
-info-am: $(INFO_DEPS)
-info: info-am
-dvi-am: $(DVIS)
-dvi: dvi-am
-check-am: all-am
-check: check-am
 installcheck-am:
-installcheck: installcheck-am
-install-exec-am:
-install-exec: install-exec-am
-
-install-data-am: install-info-am install-man
-install-data: install-data-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am: uninstall-info uninstall-man
-uninstall: uninstall-am
-all-am: Makefile $(INFO_DEPS) $(MANS)
-all-redirect: all-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-	$(mkinstalldirs)  $(DESTDIR)$(infodir) $(DESTDIR)$(mandir)/man1 \
-		$(DESTDIR)$(mandir)/man8
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-rm -f Makefile $(CONFIG_CLEAN_FILES)
-	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-aminfo mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am:  clean-aminfo clean-generic mostlyclean-am
-
-clean: clean-am
-
-distclean-am:  distclean-aminfo distclean-generic clean-am
-
-distclean: distclean-am
-
-maintainer-clean-am:  maintainer-clean-aminfo maintainer-clean-generic \
-		distclean-am
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
 
 maintainer-clean: maintainer-clean-am
 
-.PHONY: install-info-am uninstall-info mostlyclean-aminfo \
-distclean-aminfo clean-aminfo maintainer-clean-aminfo install-man1 \
-uninstall-man1 install-man8 uninstall-man8 install-man uninstall-man \
-tags distdir info-am info dvi-am dvi check check-am installcheck-am \
-installcheck install-exec-am install-exec install-data-am install-data \
-install-am install uninstall-am uninstall all-redirect all-am all \
-installdirs mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+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/lib/Makefile.in b/lib/Makefile.in
index 31a60e3..66076ea 100644
--- a/lib/Makefile.in
+++ b/lib/Makefile.in
@@ -1,6 +1,7 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.5 from Makefile.am.
 
-# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# 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.
@@ -10,6 +11,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+@SET_MAKE@
 
 SHELL = @SHELL@
 
@@ -31,13 +33,9 @@
 mandir = @mandir@
 includedir = @includedir@
 oldincludedir = /usr/include
-
-DESTDIR =
-
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-
 top_builddir = ..
 
 ACLOCAL = @ACLOCAL@
@@ -46,11 +44,11 @@
 AUTOHEADER = @AUTOHEADER@
 
 INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
 transform = @program_transform_name@
-
 NORMAL_INSTALL = :
 PRE_INSTALL = :
 POST_INSTALL = :
@@ -59,21 +57,27 @@
 POST_UNINSTALL = :
 host_alias = @host_alias@
 host_triplet = @host@
+AMTAR = @AMTAR@
 AR = @AR@
+AWK = @AWK@
 BGPD = @BGPD@
 CC = @CC@
 CPP = @CPP@
 CURSES = @CURSES@
+DEPDIR = @DEPDIR@
+EXEEXT = @EXEEXT@
 IF_METHOD = @IF_METHOD@
 IF_PROC = @IF_PROC@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 IPFORWARD = @IPFORWARD@
 KERNEL_METHOD = @KERNEL_METHOD@
 LIBPAM = @LIBPAM@
 LIB_IPV6 = @LIB_IPV6@
 LIB_REGEX = @LIB_REGEX@
-MAKEINFO = @MAKEINFO@
 MULTIPATH_NUM = @MULTIPATH_NUM@
+OBJEXT = @OBJEXT@
 OSPF6D = @OSPF6D@
+OSPFAPI = @OSPFAPI@
 OSPFCLIENT = @OSPFCLIENT@
 OSPFD = @OSPFD@
 OTHER_METHOD = @OTHER_METHOD@
@@ -86,11 +90,14 @@
 VERSION = @VERSION@
 VTYSH = @VTYSH@
 ZEBRA = @ZEBRA@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
 
 INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
 DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
 
-noinst_LIBRARIES = libzebra.a
+lib_LIBRARIES = libzebra.a
 
 libzebra_a_SOURCES = \
 	version.c network.c pid_output.c getopt.c getopt1.c daemon.c \
@@ -112,243 +119,294 @@
 
 
 EXTRA_DIST = regex.c regex-gnu.h
+subdir = lib
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../config.h
-CONFIG_CLEAN_FILES = 
-LIBRARIES =  $(noinst_LIBRARIES)
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LIBRARIES = $(lib_LIBRARIES)
 
+libzebra_a_AR = $(AR) cru
+am_libzebra_a_OBJECTS = version.$(OBJEXT) network.$(OBJEXT) \
+	pid_output.$(OBJEXT) getopt.$(OBJEXT) getopt1.$(OBJEXT) \
+	daemon.$(OBJEXT) print_version.$(OBJEXT) checksum.$(OBJEXT) \
+	vector.$(OBJEXT) linklist.$(OBJEXT) vty.$(OBJEXT) \
+	command.$(OBJEXT) sockunion.$(OBJEXT) prefix.$(OBJEXT) \
+	thread.$(OBJEXT) if.$(OBJEXT) memory.$(OBJEXT) buffer.$(OBJEXT) \
+	table.$(OBJEXT) hash.$(OBJEXT) filter.$(OBJEXT) \
+	routemap.$(OBJEXT) distribute.$(OBJEXT) stream.$(OBJEXT) \
+	str.$(OBJEXT) log.$(OBJEXT) plist.$(OBJEXT) zclient.$(OBJEXT) \
+	sockopt.$(OBJEXT) smux.$(OBJEXT) md5.$(OBJEXT) \
+	if_rmap.$(OBJEXT) keychain.$(OBJEXT)
+libzebra_a_OBJECTS = $(am_libzebra_a_OBJECTS)
+DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
 CPPFLAGS = @CPPFLAGS@
 LDFLAGS = @LDFLAGS@
 LIBS = @LIBS@
-libzebra_a_OBJECTS =  version.o network.o pid_output.o getopt.o \
-getopt1.o daemon.o print_version.o checksum.o vector.o linklist.o vty.o \
-command.o sockunion.o prefix.o thread.o if.o memory.o buffer.o table.o \
-hash.o filter.o routemap.o distribute.o stream.o str.o log.o plist.o \
-zclient.o sockopt.o smux.o md5.o if_rmap.o keychain.o
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/buffer.Po $(DEPDIR)/checksum.Po \
+@AMDEP_TRUE@	$(DEPDIR)/command.Po $(DEPDIR)/daemon.Po \
+@AMDEP_TRUE@	$(DEPDIR)/distribute.Po $(DEPDIR)/filter.Po \
+@AMDEP_TRUE@	$(DEPDIR)/getopt.Po $(DEPDIR)/getopt1.Po \
+@AMDEP_TRUE@	$(DEPDIR)/hash.Po $(DEPDIR)/if.Po \
+@AMDEP_TRUE@	$(DEPDIR)/if_rmap.Po $(DEPDIR)/keychain.Po \
+@AMDEP_TRUE@	$(DEPDIR)/linklist.Po $(DEPDIR)/log.Po \
+@AMDEP_TRUE@	$(DEPDIR)/md5.Po $(DEPDIR)/memory.Po \
+@AMDEP_TRUE@	$(DEPDIR)/network.Po $(DEPDIR)/pid_output.Po \
+@AMDEP_TRUE@	$(DEPDIR)/plist.Po $(DEPDIR)/prefix.Po \
+@AMDEP_TRUE@	$(DEPDIR)/print_version.Po $(DEPDIR)/routemap.Po \
+@AMDEP_TRUE@	$(DEPDIR)/smux.Po $(DEPDIR)/sockopt.Po \
+@AMDEP_TRUE@	$(DEPDIR)/sockunion.Po $(DEPDIR)/str.Po \
+@AMDEP_TRUE@	$(DEPDIR)/stream.Po $(DEPDIR)/table.Po \
+@AMDEP_TRUE@	$(DEPDIR)/thread.Po $(DEPDIR)/vector.Po \
+@AMDEP_TRUE@	$(DEPDIR)/version.Po $(DEPDIR)/vty.Po \
+@AMDEP_TRUE@	$(DEPDIR)/zclient.Po
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-HEADERS =  $(noinst_HEADERS)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+CFLAGS = @CFLAGS@
+DIST_SOURCES = $(libzebra_a_SOURCES)
+HEADERS = $(noinst_HEADERS)
 
-DIST_COMMON =  ChangeLog Makefile.am Makefile.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = gtar
-GZIP_ENV = --best
-DEP_FILES =  .deps/buffer.P .deps/checksum.P .deps/command.P \
-.deps/daemon.P .deps/distribute.P .deps/filter.P .deps/getopt.P \
-.deps/getopt1.P .deps/hash.P .deps/if.P .deps/if_rmap.P \
-.deps/keychain.P .deps/linklist.P .deps/log.P .deps/md5.P \
-.deps/memory.P .deps/network.P .deps/pid_output.P .deps/plist.P \
-.deps/prefix.P .deps/print_version.P .deps/routemap.P .deps/smux.P \
-.deps/sockopt.P .deps/sockunion.P .deps/str.P .deps/stream.P \
-.deps/table.P .deps/thread.P .deps/vector.P .deps/version.P .deps/vty.P \
-.deps/zclient.P
+DIST_COMMON = $(noinst_HEADERS) ChangeLog Makefile.am Makefile.in
 SOURCES = $(libzebra_a_SOURCES)
-OBJECTS = $(libzebra_a_OBJECTS)
 
-all: all-redirect
+all: all-am
+
 .SUFFIXES:
-.SUFFIXES: .S .c .o .s
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --foreign lib/Makefile
+.SUFFIXES: .c .o .obj
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign  lib/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) && \
+	  CONFIG_HEADERS= CONFIG_LINKS= \
+	  CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
 
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
-	cd $(top_builddir) \
-	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+AR = ar
+install-libLIBRARIES: $(lib_LIBRARIES)
+	@$(NORMAL_INSTALL)
+	$(mkinstalldirs) $(DESTDIR)$(libdir)
+	@list='$(lib_LIBRARIES)'; for p in $$list; do \
+	  if test -f $$p; then \
+	    echo " $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \
+	    $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \
+	  else :; fi; \
+	done
+	@$(POST_INSTALL)
+	@list='$(lib_LIBRARIES)'; for p in $$list; do \
+	  if test -f $$p; then \
+	    echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \
+	    $(RANLIB) $(DESTDIR)$(libdir)/$$p; \
+	  else :; fi; \
+	done
 
+uninstall-libLIBRARIES:
+	@$(NORMAL_UNINSTALL)
+	@list='$(lib_LIBRARIES)'; for p in $$list; do \
+	  echo " rm -f $(DESTDIR)$(libdir)/$$p"; \
+	  rm -f $(DESTDIR)$(libdir)/$$p; \
+	done
 
-mostlyclean-noinstLIBRARIES:
-
-clean-noinstLIBRARIES:
-	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-
-distclean-noinstLIBRARIES:
-
-maintainer-clean-noinstLIBRARIES:
-
-.s.o:
-	$(COMPILE) -c $<
-
-.S.o:
-	$(COMPILE) -c $<
+clean-libLIBRARIES:
+	-test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
+libzebra.a: $(libzebra_a_OBJECTS) $(libzebra_a_DEPENDENCIES) 
+	-rm -f libzebra.a
+	$(libzebra_a_AR) libzebra.a $(libzebra_a_OBJECTS) $(libzebra_a_LIBADD)
+	$(RANLIB) libzebra.a
 
 mostlyclean-compile:
-	-rm -f *.o core *.core
-
-clean-compile:
+	-rm -f *.$(OBJEXT) core *.core
 
 distclean-compile:
 	-rm -f *.tab.c
 
-maintainer-clean-compile:
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/buffer.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/checksum.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/command.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/daemon.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/distribute.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/filter.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getopt.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getopt1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/hash.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/if.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/if_rmap.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/keychain.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/linklist.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/log.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/md5.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/memory.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/network.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/pid_output.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/plist.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/prefix.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/print_version.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/routemap.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/smux.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/sockopt.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/sockunion.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/str.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/stream.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/table.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/thread.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/vector.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/version.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/vty.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/zclient.Po@am__quote@
 
-libzebra.a: $(libzebra_a_OBJECTS) $(libzebra_a_DEPENDENCIES)
-	-rm -f libzebra.a
-	$(AR) cru libzebra.a $(libzebra_a_OBJECTS) $(libzebra_a_LIBADD)
-	$(RANLIB) libzebra.a
+distclean-depend:
+	-rm -rf $(DEPDIR)
+
+.c.o:
+@AMDEP_TRUE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+	$(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
+
+.c.obj:
+@AMDEP_TRUE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+	$(COMPILE) -c `cygpath -w $<`
+CCDEPMODE = @CCDEPMODE@
+uninstall-info-am:
 
 tags: TAGS
 
-ID: $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
-	here=`pwd` && cd $(srcdir) \
-	  && mkid -f$$here/ID $$unique $(LISP)
+	mkid -fID $$unique $(LISP)
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
 	tags=; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+	list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
 	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
-	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+	  || etags $(ETAGS_ARGS) $$tags  $$unique $(LISP)
 
-mostlyclean-tags:
-
-clean-tags:
+GTAGS:
+	here=`CDPATH=: && cd $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
 
 distclean-tags:
-	-rm -f TAGS ID
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
 
-maintainer-clean-tags:
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = lib
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 
 distdir: $(DISTFILES)
-	here=`cd $(top_builddir) && pwd`; \
-	top_distdir=`cd $(top_distdir) && pwd`; \
-	distdir=`cd $(distdir) && pwd`; \
-	cd $(top_srcdir) \
-	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign lib/Makefile
 	@for file in $(DISTFILES); do \
-	  d=$(srcdir); \
+	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    $(mkinstalldirs) "$(distdir)/$$dir"; \
+	  fi; \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$d/$$file $(distdir)/$$file; \
+	    cp -pR $$d/$$file $(distdir) \
+	    || exit 1; \
 	  else \
 	    test -f $(distdir)/$$file \
-	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
 	  fi; \
 	done
-
-DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-
--include $(DEP_FILES)
-
-mostlyclean-depend:
-
-clean-depend:
-
-distclean-depend:
-	-rm -rf .deps
-
-maintainer-clean-depend:
-
-%.o: %.c
-	@echo '$(COMPILE) -c $<'; \
-	$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-	@-cp .deps/$(*F).pp .deps/$(*F).P; \
-	tr ' ' '\012' < .deps/$(*F).pp \
-	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-	    >> .deps/$(*F).P; \
-	rm .deps/$(*F).pp
-
-%.lo: %.c
-	@echo '$(LTCOMPILE) -c $<'; \
-	$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-	@-sed -e 's/^\([^:]*\)\.o[ 	]*:/\1.lo \1.o :/' \
-	  < .deps/$(*F).pp > .deps/$(*F).P; \
-	tr ' ' '\012' < .deps/$(*F).pp \
-	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-	    >> .deps/$(*F).P; \
-	rm -f .deps/$(*F).pp
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
 check-am: all-am
 check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am:
-install-exec: install-exec-am
+all-am: Makefile $(LIBRARIES) $(HEADERS)
 
-install-data-am:
+installdirs:
+	$(mkinstalldirs) $(DESTDIR)$(libdir)
+
+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
-install: install-am
-uninstall-am:
-uninstall: uninstall-am
-all-am: Makefile $(LIBRARIES) $(HEADERS)
-all-redirect: all-am
+
+installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-
-
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 mostlyclean-generic:
 
 clean-generic:
 
 distclean-generic:
-	-rm -f Makefile $(CONFIG_CLEAN_FILES)
-	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+	-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
 
 maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
-		mostlyclean-tags mostlyclean-depend mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-depend \
-		clean-generic mostlyclean-am
-
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
 clean: clean-am
 
-distclean-am:  distclean-noinstLIBRARIES distclean-compile \
-		distclean-tags distclean-depend distclean-generic \
-		clean-am
+clean-am: clean-generic clean-libLIBRARIES mostlyclean-am
 
 distclean: distclean-am
 
-maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
-		maintainer-clean-compile maintainer-clean-tags \
-		maintainer-clean-depend maintainer-clean-generic \
-		distclean-am
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
+distclean-am: clean-am distclean-compile distclean-depend \
+	distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am: install-libLIBRARIES
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
 
 maintainer-clean: maintainer-clean-am
 
-.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
-clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
-mostlyclean-compile distclean-compile clean-compile \
-maintainer-clean-compile tags mostlyclean-tags distclean-tags \
-clean-tags maintainer-clean-tags distdir mostlyclean-depend \
-distclean-depend clean-depend maintainer-clean-depend info-am info \
-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
-install-exec install-data-am install-data install-am install \
-uninstall-am uninstall all-redirect all-am all installdirs \
-mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+uninstall-am: uninstall-info-am uninstall-libLIBRARIES
+
+.PHONY: GTAGS all all-am check check-am clean clean-generic \
+	clean-libLIBRARIES distclean distclean-compile distclean-depend \
+	distclean-generic distclean-tags 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-libLIBRARIES install-man install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic tags uninstall uninstall-am \
+	uninstall-info-am uninstall-libLIBRARIES
 
 
 version.c: Makefile
 	echo '' >version.c
 	echo 'char *host_name = "$(host_alias)";' >>version.c
-
 # 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/ospf6d/Makefile.in b/ospf6d/Makefile.in
index cf03379..a004fa8 100644
--- a/ospf6d/Makefile.in
+++ b/ospf6d/Makefile.in
@@ -1,6 +1,7 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.5 from Makefile.am.
 
-# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# 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.
@@ -10,6 +11,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+@SET_MAKE@
 
 SHELL = @SHELL@
 
@@ -31,13 +33,9 @@
 mandir = @mandir@
 includedir = @includedir@
 oldincludedir = /usr/include
-
-DESTDIR =
-
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-
 top_builddir = ..
 
 ACLOCAL = @ACLOCAL@
@@ -46,11 +44,11 @@
 AUTOHEADER = @AUTOHEADER@
 
 INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
 transform = @program_transform_name@
-
 NORMAL_INSTALL = :
 PRE_INSTALL = :
 POST_INSTALL = :
@@ -59,21 +57,27 @@
 POST_UNINSTALL = :
 host_alias = @host_alias@
 host_triplet = @host@
+AMTAR = @AMTAR@
 AR = @AR@
+AWK = @AWK@
 BGPD = @BGPD@
 CC = @CC@
 CPP = @CPP@
 CURSES = @CURSES@
+DEPDIR = @DEPDIR@
+EXEEXT = @EXEEXT@
 IF_METHOD = @IF_METHOD@
 IF_PROC = @IF_PROC@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 IPFORWARD = @IPFORWARD@
 KERNEL_METHOD = @KERNEL_METHOD@
 LIBPAM = @LIBPAM@
 LIB_IPV6 = @LIB_IPV6@
 LIB_REGEX = @LIB_REGEX@
-MAKEINFO = @MAKEINFO@
 MULTIPATH_NUM = @MULTIPATH_NUM@
+OBJEXT = @OBJEXT@
 OSPF6D = @OSPF6D@
+OSPFAPI = @OSPFAPI@
 OSPFCLIENT = @OSPFCLIENT@
 OSPFD = @OSPFD@
 OTHER_METHOD = @OTHER_METHOD@
@@ -86,6 +90,9 @@
 VERSION = @VERSION@
 VTYSH = @VTYSH@
 ZEBRA = @ZEBRA@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
 
 INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
 DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
@@ -123,291 +130,317 @@
 sysconf_DATA = ospf6d.conf.sample
 
 EXTRA_DIST = $(sysconf_DATA)
+subdir = ospf6d
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../config.h
-CONFIG_CLEAN_FILES = 
-LIBRARIES =  $(noinst_LIBRARIES)
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
 
+libospf6_a_AR = $(AR) cru
+libospf6_a_LIBADD =
+am_libospf6_a_OBJECTS = ospf6_dump.$(OBJEXT) ospf6d.$(OBJEXT) \
+	ospf6_interface.$(OBJEXT) ospf6_network.$(OBJEXT) \
+	ospf6_neighbor.$(OBJEXT) ospf6_message.$(OBJEXT) \
+	ospf6_lsa.$(OBJEXT) ospf6_spf.$(OBJEXT) ospf6_route.$(OBJEXT) \
+	ospf6_zebra.$(OBJEXT) ospf6_ism.$(OBJEXT) ospf6_dbex.$(OBJEXT) \
+	ospf6_lsdb.$(OBJEXT) ospf6_prefix.$(OBJEXT) ospf6_top.$(OBJEXT) \
+	ospf6_area.$(OBJEXT) ospf6_nsm.$(OBJEXT) \
+	ospf6_routemap.$(OBJEXT) ospf6_proto.$(OBJEXT) \
+	ospf6_hook.$(OBJEXT) ospf6_asbr.$(OBJEXT) \
+	ospf6_bintree.$(OBJEXT) ospf6_linklist.$(OBJEXT) \
+	ospf6_abr.$(OBJEXT) ospf6_intra.$(OBJEXT) ospf6_damp.$(OBJEXT)
+libospf6_a_OBJECTS = $(am_libospf6_a_OBJECTS)
+sbin_PROGRAMS = ospf6d$(EXEEXT)
+PROGRAMS = $(sbin_PROGRAMS)
+
+am_ospf6d_OBJECTS = ospf6_main.$(OBJEXT) ospf6_dump.$(OBJEXT) \
+	ospf6d.$(OBJEXT) ospf6_interface.$(OBJEXT) \
+	ospf6_network.$(OBJEXT) ospf6_neighbor.$(OBJEXT) \
+	ospf6_message.$(OBJEXT) ospf6_lsa.$(OBJEXT) ospf6_spf.$(OBJEXT) \
+	ospf6_route.$(OBJEXT) ospf6_zebra.$(OBJEXT) ospf6_ism.$(OBJEXT) \
+	ospf6_dbex.$(OBJEXT) ospf6_lsdb.$(OBJEXT) \
+	ospf6_prefix.$(OBJEXT) ospf6_top.$(OBJEXT) ospf6_area.$(OBJEXT) \
+	ospf6_nsm.$(OBJEXT) ospf6_routemap.$(OBJEXT) \
+	ospf6_proto.$(OBJEXT) ospf6_hook.$(OBJEXT) ospf6_asbr.$(OBJEXT) \
+	ospf6_bintree.$(OBJEXT) ospf6_linklist.$(OBJEXT) \
+	ospf6_abr.$(OBJEXT) ospf6_intra.$(OBJEXT) ospf6_damp.$(OBJEXT)
+ospf6d_OBJECTS = $(am_ospf6d_OBJECTS)
+ospf6d_DEPENDENCIES = ../lib/libzebra.a
+ospf6d_LDFLAGS =
+DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
 CPPFLAGS = @CPPFLAGS@
 LDFLAGS = @LDFLAGS@
 LIBS = @LIBS@
-libospf6_a_LIBADD = 
-libospf6_a_OBJECTS =  ospf6_dump.o ospf6d.o ospf6_interface.o \
-ospf6_network.o ospf6_neighbor.o ospf6_message.o ospf6_lsa.o \
-ospf6_spf.o ospf6_route.o ospf6_zebra.o ospf6_ism.o ospf6_dbex.o \
-ospf6_lsdb.o ospf6_prefix.o ospf6_top.o ospf6_area.o ospf6_nsm.o \
-ospf6_routemap.o ospf6_proto.o ospf6_hook.o ospf6_asbr.o \
-ospf6_bintree.o ospf6_linklist.o ospf6_abr.o ospf6_intra.o ospf6_damp.o
-PROGRAMS =  $(sbin_PROGRAMS)
-
-ospf6d_OBJECTS =  ospf6_main.o ospf6_dump.o ospf6d.o ospf6_interface.o \
-ospf6_network.o ospf6_neighbor.o ospf6_message.o ospf6_lsa.o \
-ospf6_spf.o ospf6_route.o ospf6_zebra.o ospf6_ism.o ospf6_dbex.o \
-ospf6_lsdb.o ospf6_prefix.o ospf6_top.o ospf6_area.o ospf6_nsm.o \
-ospf6_routemap.o ospf6_proto.o ospf6_hook.o ospf6_asbr.o \
-ospf6_bintree.o ospf6_linklist.o ospf6_abr.o ospf6_intra.o ospf6_damp.o
-ospf6d_DEPENDENCIES =  ../lib/libzebra.a
-ospf6d_LDFLAGS = 
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/ospf6_abr.Po $(DEPDIR)/ospf6_area.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf6_asbr.Po $(DEPDIR)/ospf6_bintree.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf6_damp.Po $(DEPDIR)/ospf6_dbex.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf6_dump.Po $(DEPDIR)/ospf6_hook.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf6_interface.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf6_intra.Po $(DEPDIR)/ospf6_ism.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf6_linklist.Po $(DEPDIR)/ospf6_lsa.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf6_lsdb.Po $(DEPDIR)/ospf6_main.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf6_message.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf6_neighbor.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf6_network.Po $(DEPDIR)/ospf6_nsm.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf6_prefix.Po $(DEPDIR)/ospf6_proto.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf6_route.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf6_routemap.Po $(DEPDIR)/ospf6_spf.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf6_top.Po $(DEPDIR)/ospf6_zebra.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf6d.Po
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-DATA =  $(sysconf_DATA)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+CFLAGS = @CFLAGS@
+DIST_SOURCES = $(libospf6_a_SOURCES) $(ospf6d_SOURCES)
+DATA = $(sysconf_DATA)
 
-HEADERS =  $(noinst_HEADERS)
+HEADERS = $(noinst_HEADERS)
 
-DIST_COMMON =  README ChangeLog Makefile.am Makefile.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = gtar
-GZIP_ENV = --best
-DEP_FILES =  .deps/ospf6_abr.P .deps/ospf6_area.P .deps/ospf6_asbr.P \
-.deps/ospf6_bintree.P .deps/ospf6_damp.P .deps/ospf6_dbex.P \
-.deps/ospf6_dump.P .deps/ospf6_hook.P .deps/ospf6_interface.P \
-.deps/ospf6_intra.P .deps/ospf6_ism.P .deps/ospf6_linklist.P \
-.deps/ospf6_lsa.P .deps/ospf6_lsdb.P .deps/ospf6_main.P \
-.deps/ospf6_message.P .deps/ospf6_neighbor.P .deps/ospf6_network.P \
-.deps/ospf6_nsm.P .deps/ospf6_prefix.P .deps/ospf6_proto.P \
-.deps/ospf6_route.P .deps/ospf6_routemap.P .deps/ospf6_spf.P \
-.deps/ospf6_top.P .deps/ospf6_zebra.P .deps/ospf6d.P
+DIST_COMMON = README $(noinst_HEADERS) ChangeLog Makefile.am \
+	Makefile.in
 SOURCES = $(libospf6_a_SOURCES) $(ospf6d_SOURCES)
-OBJECTS = $(libospf6_a_OBJECTS) $(ospf6d_OBJECTS)
 
-all: all-redirect
+all: all-am
+
 .SUFFIXES:
-.SUFFIXES: .S .c .o .s
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --foreign ospf6d/Makefile
+.SUFFIXES: .c .o .obj
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign  ospf6d/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) && \
+	  CONFIG_HEADERS= CONFIG_LINKS= \
+	  CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
 
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
-	cd $(top_builddir) \
-	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-
-mostlyclean-noinstLIBRARIES:
+AR = ar
 
 clean-noinstLIBRARIES:
 	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-
-distclean-noinstLIBRARIES:
-
-maintainer-clean-noinstLIBRARIES:
-
-.s.o:
-	$(COMPILE) -c $<
-
-.S.o:
-	$(COMPILE) -c $<
-
-mostlyclean-compile:
-	-rm -f *.o core *.core
-
-clean-compile:
-
-distclean-compile:
-	-rm -f *.tab.c
-
-maintainer-clean-compile:
-
-libospf6.a: $(libospf6_a_OBJECTS) $(libospf6_a_DEPENDENCIES)
+libospf6.a: $(libospf6_a_OBJECTS) $(libospf6_a_DEPENDENCIES) 
 	-rm -f libospf6.a
-	$(AR) cru libospf6.a $(libospf6_a_OBJECTS) $(libospf6_a_LIBADD)
+	$(libospf6_a_AR) libospf6.a $(libospf6_a_OBJECTS) $(libospf6_a_LIBADD)
 	$(RANLIB) libospf6.a
-
-mostlyclean-sbinPROGRAMS:
-
-clean-sbinPROGRAMS:
-	-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
-
-distclean-sbinPROGRAMS:
-
-maintainer-clean-sbinPROGRAMS:
-
 install-sbinPROGRAMS: $(sbin_PROGRAMS)
 	@$(NORMAL_INSTALL)
 	$(mkinstalldirs) $(DESTDIR)$(sbindir)
 	@list='$(sbin_PROGRAMS)'; for p in $$list; do \
-	  if test -f $$p; then \
-	    echo "  $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
-	     $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  if test -f $$p \
+	  ; then \
+	    f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f"; \
+	   $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f; \
 	  else :; fi; \
 	done
 
 uninstall-sbinPROGRAMS:
 	@$(NORMAL_UNINSTALL)
-	list='$(sbin_PROGRAMS)'; for p in $$list; do \
-	  rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+	@list='$(sbin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+	  echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
+	  rm -f $(DESTDIR)$(sbindir)/$$f; \
 	done
 
-ospf6d: $(ospf6d_OBJECTS) $(ospf6d_DEPENDENCIES)
-	@rm -f ospf6d
+clean-sbinPROGRAMS:
+	-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
+ospf6d$(EXEEXT): $(ospf6d_OBJECTS) $(ospf6d_DEPENDENCIES) 
+	@rm -f ospf6d$(EXEEXT)
 	$(LINK) $(ospf6d_LDFLAGS) $(ospf6d_OBJECTS) $(ospf6d_LDADD) $(LIBS)
 
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT) core *.core
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_abr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_area.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_asbr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_bintree.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_damp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_dbex.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_dump.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_hook.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_interface.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_intra.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_ism.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_linklist.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_lsa.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_lsdb.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_message.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_neighbor.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_network.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_nsm.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_prefix.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_proto.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_route.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_routemap.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_spf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_top.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6_zebra.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf6d.Po@am__quote@
+
+distclean-depend:
+	-rm -rf $(DEPDIR)
+
+.c.o:
+@AMDEP_TRUE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+	$(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
+
+.c.obj:
+@AMDEP_TRUE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+	$(COMPILE) -c `cygpath -w $<`
+CCDEPMODE = @CCDEPMODE@
+uninstall-info-am:
+
 uninstall-sysconfDATA:
 	@$(NORMAL_UNINSTALL)
-	list='$(sysconf_DATA)'; for p in $$list; do \
-	  rm -f $(DESTDIR)$(sysconfdir)/$$p; \
+	@list='$(sysconf_DATA)'; for p in $$list; do \
+	  f="`echo $$p | sed -e 's|^.*/||'`"; \
+	  echo " rm -f $(DESTDIR)$(sysconfdir)/$$f"; \
+	  rm -f $(DESTDIR)$(sysconfdir)/$$f; \
 	done
 
 tags: TAGS
 
-ID: $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
-	here=`pwd` && cd $(srcdir) \
-	  && mkid -f$$here/ID $$unique $(LISP)
+	mkid -fID $$unique $(LISP)
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
 	tags=; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+	list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
 	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
-	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+	  || etags $(ETAGS_ARGS) $$tags  $$unique $(LISP)
 
-mostlyclean-tags:
-
-clean-tags:
+GTAGS:
+	here=`CDPATH=: && cd $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
 
 distclean-tags:
-	-rm -f TAGS ID
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
 
-maintainer-clean-tags:
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = ospf6d
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 
 distdir: $(DISTFILES)
-	here=`cd $(top_builddir) && pwd`; \
-	top_distdir=`cd $(top_distdir) && pwd`; \
-	distdir=`cd $(distdir) && pwd`; \
-	cd $(top_srcdir) \
-	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign ospf6d/Makefile
 	@for file in $(DISTFILES); do \
-	  d=$(srcdir); \
+	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    $(mkinstalldirs) "$(distdir)/$$dir"; \
+	  fi; \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$d/$$file $(distdir)/$$file; \
+	    cp -pR $$d/$$file $(distdir) \
+	    || exit 1; \
 	  else \
 	    test -f $(distdir)/$$file \
-	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
 	  fi; \
 	done
-
-DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-
--include $(DEP_FILES)
-
-mostlyclean-depend:
-
-clean-depend:
-
-distclean-depend:
-	-rm -rf .deps
-
-maintainer-clean-depend:
-
-%.o: %.c
-	@echo '$(COMPILE) -c $<'; \
-	$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-	@-cp .deps/$(*F).pp .deps/$(*F).P; \
-	tr ' ' '\012' < .deps/$(*F).pp \
-	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-	    >> .deps/$(*F).P; \
-	rm .deps/$(*F).pp
-
-%.lo: %.c
-	@echo '$(LTCOMPILE) -c $<'; \
-	$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-	@-sed -e 's/^\([^:]*\)\.o[ 	]*:/\1.lo \1.o :/' \
-	  < .deps/$(*F).pp > .deps/$(*F).P; \
-	tr ' ' '\012' < .deps/$(*F).pp \
-	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-	    >> .deps/$(*F).P; \
-	rm -f .deps/$(*F).pp
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
 check-am: all-am
 check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am: install-sbinPROGRAMS install-sysconfDATA
-install-exec: install-exec-am
+all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
 
-install-data-am:
+installdirs:
+	$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
+
+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
-install: install-am
-uninstall-am: uninstall-sbinPROGRAMS uninstall-sysconfDATA
-uninstall: uninstall-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
-all-redirect: all-am
+
+installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-	$(mkinstalldirs)  $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
-
-
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 mostlyclean-generic:
 
 clean-generic:
 
 distclean-generic:
-	-rm -f Makefile $(CONFIG_CLEAN_FILES)
-	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+	-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
 
 maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
-		mostlyclean-sbinPROGRAMS mostlyclean-tags \
-		mostlyclean-depend mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am:  clean-noinstLIBRARIES clean-compile clean-sbinPROGRAMS \
-		clean-tags clean-depend clean-generic mostlyclean-am
-
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
 clean: clean-am
 
-distclean-am:  distclean-noinstLIBRARIES distclean-compile \
-		distclean-sbinPROGRAMS distclean-tags distclean-depend \
-		distclean-generic clean-am
+clean-am: clean-generic clean-noinstLIBRARIES clean-sbinPROGRAMS \
+	mostlyclean-am
 
 distclean: distclean-am
 
-maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
-		maintainer-clean-compile maintainer-clean-sbinPROGRAMS \
-		maintainer-clean-tags maintainer-clean-depend \
-		maintainer-clean-generic distclean-am
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
+distclean-am: clean-am distclean-compile distclean-depend \
+	distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am: install-sbinPROGRAMS install-sysconfDATA
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
 
 maintainer-clean: maintainer-clean-am
 
-.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
-clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
-mostlyclean-compile distclean-compile clean-compile \
-maintainer-clean-compile mostlyclean-sbinPROGRAMS \
-distclean-sbinPROGRAMS clean-sbinPROGRAMS maintainer-clean-sbinPROGRAMS \
-uninstall-sbinPROGRAMS install-sbinPROGRAMS uninstall-sysconfDATA \
-install-sysconfDATA tags mostlyclean-tags distclean-tags clean-tags \
-maintainer-clean-tags distdir mostlyclean-depend distclean-depend \
-clean-depend maintainer-clean-depend info-am info dvi-am dvi check \
-check-am installcheck-am installcheck install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+uninstall-am: uninstall-info-am uninstall-sbinPROGRAMS \
+	uninstall-sysconfDATA
+
+.PHONY: GTAGS all all-am check check-am clean clean-generic \
+	clean-noinstLIBRARIES clean-sbinPROGRAMS distclean \
+	distclean-compile distclean-depend distclean-generic \
+	distclean-tags 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-sbinPROGRAMS install-strip install-sysconfDATA \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic tags uninstall uninstall-am \
+	uninstall-info-am uninstall-sbinPROGRAMS uninstall-sysconfDATA
 
 
 install-sysconfDATA: $(sysconf_DATA)
@@ -422,7 +455,6 @@
 	    $(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \
 	  fi; fi; \
 	done
-
 # 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/ospfclient/Makefile.in b/ospfclient/Makefile.in
index 4deac87..040a5f1 100644
--- a/ospfclient/Makefile.in
+++ b/ospfclient/Makefile.in
@@ -1,6 +1,7 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.5 from Makefile.am.
 
-# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# 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.
@@ -10,6 +11,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+@SET_MAKE@
 
 SHELL = @SHELL@
 
@@ -31,13 +33,9 @@
 mandir = @mandir@
 includedir = @includedir@
 oldincludedir = /usr/include
-
-DESTDIR =
-
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-
 top_builddir = ..
 
 ACLOCAL = @ACLOCAL@
@@ -46,11 +44,11 @@
 AUTOHEADER = @AUTOHEADER@
 
 INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
 transform = @program_transform_name@
-
 NORMAL_INSTALL = :
 PRE_INSTALL = :
 POST_INSTALL = :
@@ -59,21 +57,27 @@
 POST_UNINSTALL = :
 host_alias = @host_alias@
 host_triplet = @host@
+AMTAR = @AMTAR@
 AR = @AR@
+AWK = @AWK@
 BGPD = @BGPD@
 CC = @CC@
 CPP = @CPP@
 CURSES = @CURSES@
+DEPDIR = @DEPDIR@
+EXEEXT = @EXEEXT@
 IF_METHOD = @IF_METHOD@
 IF_PROC = @IF_PROC@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 IPFORWARD = @IPFORWARD@
 KERNEL_METHOD = @KERNEL_METHOD@
 LIBPAM = @LIBPAM@
 LIB_IPV6 = @LIB_IPV6@
 LIB_REGEX = @LIB_REGEX@
-MAKEINFO = @MAKEINFO@
 MULTIPATH_NUM = @MULTIPATH_NUM@
+OBJEXT = @OBJEXT@
 OSPF6D = @OSPF6D@
+OSPFAPI = @OSPFAPI@
 OSPFCLIENT = @OSPFCLIENT@
 OSPFD = @OSPFD@
 OTHER_METHOD = @OTHER_METHOD@
@@ -86,17 +90,22 @@
 VERSION = @VERSION@
 VTYSH = @VTYSH@
 ZEBRA = @ZEBRA@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
 
 INCLUDES = -I../lib -I../
 
-noinst_LIBRARIES = libospfapiclient.a
+lib_LIBRARIES = libospfapiclient.a
 sbin_PROGRAMS = ospfclient
 
 libospfapiclient_a_SOURCES = \
 	ospf_apiclient.c
 
 
-noinst_HEADERS = \
+ospfapiheaderdir = $(includedir)/ospfapi
+
+ospfapiheader_HEADERS = \
 	ospf_apiclient.h
 
 
@@ -105,269 +114,291 @@
 
 
 ospfclient_LDADD = ../ospfd/libospf.a ../lib/libzebra.a
+subdir = ospfclient
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../config.h
-CONFIG_CLEAN_FILES = 
-LIBRARIES =  $(noinst_LIBRARIES)
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LIBRARIES = $(lib_LIBRARIES)
 
+libospfapiclient_a_AR = $(AR) cru
+libospfapiclient_a_LIBADD =
+am_libospfapiclient_a_OBJECTS = ospf_apiclient.$(OBJEXT)
+libospfapiclient_a_OBJECTS = $(am_libospfapiclient_a_OBJECTS)
+sbin_PROGRAMS = ospfclient$(EXEEXT)
+PROGRAMS = $(sbin_PROGRAMS)
 
-DEFS = @DEFS@ -I. -I$(srcdir) -I..
+am_ospfclient_OBJECTS = ospfclient.$(OBJEXT) ospf_apiclient.$(OBJEXT)
+ospfclient_OBJECTS = $(am_ospfclient_OBJECTS)
+ospfclient_DEPENDENCIES = ../ospfd/libospf.a ../lib/libzebra.a
+ospfclient_LDFLAGS =
+
+DEFS = @DEFS@
+DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
 CPPFLAGS = @CPPFLAGS@
 LDFLAGS = @LDFLAGS@
 LIBS = @LIBS@
-libospfapiclient_a_LIBADD = 
-libospfapiclient_a_OBJECTS =  ospf_apiclient.o
-PROGRAMS =  $(sbin_PROGRAMS)
-
-ospfclient_OBJECTS =  ospfclient.o ospf_apiclient.o
-ospfclient_DEPENDENCIES =  ../ospfd/libospf.a ../lib/libzebra.a
-ospfclient_LDFLAGS = 
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/ospf_apiclient.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospfclient.Po
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-HEADERS =  $(noinst_HEADERS)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+CFLAGS = @CFLAGS@
+DIST_SOURCES = $(libospfapiclient_a_SOURCES) $(ospfclient_SOURCES)
+HEADERS = $(ospfapiheader_HEADERS)
 
-DIST_COMMON =  README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
-Makefile.in NEWS
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = gtar
-GZIP_ENV = --best
-DEP_FILES =  .deps/ospf_apiclient.P .deps/ospfclient.P
+DIST_COMMON = README $(ospfapiheader_HEADERS) AUTHORS COPYING ChangeLog \
+	INSTALL Makefile.am Makefile.in NEWS
 SOURCES = $(libospfapiclient_a_SOURCES) $(ospfclient_SOURCES)
-OBJECTS = $(libospfapiclient_a_OBJECTS) $(ospfclient_OBJECTS)
 
-all: all-redirect
+all: all-am
+
 .SUFFIXES:
-.SUFFIXES: .S .c .o .s
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --foreign ospfclient/Makefile
+.SUFFIXES: .c .o .obj
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign  ospfclient/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) && \
+	  CONFIG_HEADERS= CONFIG_LINKS= \
+	  CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
 
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
-	cd $(top_builddir) \
-	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+AR = ar
+install-libLIBRARIES: $(lib_LIBRARIES)
+	@$(NORMAL_INSTALL)
+	$(mkinstalldirs) $(DESTDIR)$(libdir)
+	@list='$(lib_LIBRARIES)'; for p in $$list; do \
+	  if test -f $$p; then \
+	    echo " $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \
+	    $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \
+	  else :; fi; \
+	done
+	@$(POST_INSTALL)
+	@list='$(lib_LIBRARIES)'; for p in $$list; do \
+	  if test -f $$p; then \
+	    echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \
+	    $(RANLIB) $(DESTDIR)$(libdir)/$$p; \
+	  else :; fi; \
+	done
 
+uninstall-libLIBRARIES:
+	@$(NORMAL_UNINSTALL)
+	@list='$(lib_LIBRARIES)'; for p in $$list; do \
+	  echo " rm -f $(DESTDIR)$(libdir)/$$p"; \
+	  rm -f $(DESTDIR)$(libdir)/$$p; \
+	done
 
-mostlyclean-noinstLIBRARIES:
-
-clean-noinstLIBRARIES:
-	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-
-distclean-noinstLIBRARIES:
-
-maintainer-clean-noinstLIBRARIES:
-
-.s.o:
-	$(COMPILE) -c $<
-
-.S.o:
-	$(COMPILE) -c $<
-
-mostlyclean-compile:
-	-rm -f *.o core *.core
-
-clean-compile:
-
-distclean-compile:
-	-rm -f *.tab.c
-
-maintainer-clean-compile:
-
-libospfapiclient.a: $(libospfapiclient_a_OBJECTS) $(libospfapiclient_a_DEPENDENCIES)
+clean-libLIBRARIES:
+	-test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
+libospfapiclient.a: $(libospfapiclient_a_OBJECTS) $(libospfapiclient_a_DEPENDENCIES) 
 	-rm -f libospfapiclient.a
-	$(AR) cru libospfapiclient.a $(libospfapiclient_a_OBJECTS) $(libospfapiclient_a_LIBADD)
+	$(libospfapiclient_a_AR) libospfapiclient.a $(libospfapiclient_a_OBJECTS) $(libospfapiclient_a_LIBADD)
 	$(RANLIB) libospfapiclient.a
-
-mostlyclean-sbinPROGRAMS:
-
-clean-sbinPROGRAMS:
-	-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
-
-distclean-sbinPROGRAMS:
-
-maintainer-clean-sbinPROGRAMS:
-
 install-sbinPROGRAMS: $(sbin_PROGRAMS)
 	@$(NORMAL_INSTALL)
 	$(mkinstalldirs) $(DESTDIR)$(sbindir)
 	@list='$(sbin_PROGRAMS)'; for p in $$list; do \
-	  if test -f $$p; then \
-	    echo "  $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
-	     $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  if test -f $$p \
+	  ; then \
+	    f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f"; \
+	   $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f; \
 	  else :; fi; \
 	done
 
 uninstall-sbinPROGRAMS:
 	@$(NORMAL_UNINSTALL)
-	list='$(sbin_PROGRAMS)'; for p in $$list; do \
-	  rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+	@list='$(sbin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+	  echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
+	  rm -f $(DESTDIR)$(sbindir)/$$f; \
 	done
 
-ospfclient: $(ospfclient_OBJECTS) $(ospfclient_DEPENDENCIES)
-	@rm -f ospfclient
+clean-sbinPROGRAMS:
+	-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
+ospfclient$(EXEEXT): $(ospfclient_OBJECTS) $(ospfclient_DEPENDENCIES) 
+	@rm -f ospfclient$(EXEEXT)
 	$(LINK) $(ospfclient_LDFLAGS) $(ospfclient_OBJECTS) $(ospfclient_LDADD) $(LIBS)
 
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT) core *.core
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_apiclient.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospfclient.Po@am__quote@
+
+distclean-depend:
+	-rm -rf $(DEPDIR)
+
+.c.o:
+@AMDEP_TRUE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+	$(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
+
+.c.obj:
+@AMDEP_TRUE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+	$(COMPILE) -c `cygpath -w $<`
+CCDEPMODE = @CCDEPMODE@
+uninstall-info-am:
+install-ospfapiheaderHEADERS: $(ospfapiheader_HEADERS)
+	@$(NORMAL_INSTALL)
+	$(mkinstalldirs) $(DESTDIR)$(ospfapiheaderdir)
+	@list='$(ospfapiheader_HEADERS)'; for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  f="`echo $$p | sed -e 's|^.*/||'`"; \
+	  echo " $(INSTALL_HEADER) $$d$$p $(DESTDIR)$(ospfapiheaderdir)/$$f"; \
+	  $(INSTALL_HEADER) $$d$$p $(DESTDIR)$(ospfapiheaderdir)/$$f; \
+	done
+
+uninstall-ospfapiheaderHEADERS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(ospfapiheader_HEADERS)'; for p in $$list; do \
+	  f="`echo $$p | sed -e 's|^.*/||'`"; \
+	  echo " rm -f $(DESTDIR)$(ospfapiheaderdir)/$$f"; \
+	  rm -f $(DESTDIR)$(ospfapiheaderdir)/$$f; \
+	done
+
 tags: TAGS
 
-ID: $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
-	here=`pwd` && cd $(srcdir) \
-	  && mkid -f$$here/ID $$unique $(LISP)
+	mkid -fID $$unique $(LISP)
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
 	tags=; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+	list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
 	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
-	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+	  || etags $(ETAGS_ARGS) $$tags  $$unique $(LISP)
 
-mostlyclean-tags:
-
-clean-tags:
+GTAGS:
+	here=`CDPATH=: && cd $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
 
 distclean-tags:
-	-rm -f TAGS ID
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
 
-maintainer-clean-tags:
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = ospfclient
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 
 distdir: $(DISTFILES)
-	here=`cd $(top_builddir) && pwd`; \
-	top_distdir=`cd $(top_distdir) && pwd`; \
-	distdir=`cd $(distdir) && pwd`; \
-	cd $(top_srcdir) \
-	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign ospfclient/Makefile
 	@for file in $(DISTFILES); do \
-	  d=$(srcdir); \
+	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    $(mkinstalldirs) "$(distdir)/$$dir"; \
+	  fi; \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$d/$$file $(distdir)/$$file; \
+	    cp -pR $$d/$$file $(distdir) \
+	    || exit 1; \
 	  else \
 	    test -f $(distdir)/$$file \
-	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
 	  fi; \
 	done
-
-DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-
--include $(DEP_FILES)
-
-mostlyclean-depend:
-
-clean-depend:
-
-distclean-depend:
-	-rm -rf .deps
-
-maintainer-clean-depend:
-
-%.o: %.c
-	@echo '$(COMPILE) -c $<'; \
-	$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-	@-cp .deps/$(*F).pp .deps/$(*F).P; \
-	tr ' ' '\012' < .deps/$(*F).pp \
-	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-	    >> .deps/$(*F).P; \
-	rm .deps/$(*F).pp
-
-%.lo: %.c
-	@echo '$(LTCOMPILE) -c $<'; \
-	$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-	@-sed -e 's/^\([^:]*\)\.o[ 	]*:/\1.lo \1.o :/' \
-	  < .deps/$(*F).pp > .deps/$(*F).P; \
-	tr ' ' '\012' < .deps/$(*F).pp \
-	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-	    >> .deps/$(*F).P; \
-	rm -f .deps/$(*F).pp
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
 check-am: all-am
 check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am: install-sbinPROGRAMS
-install-exec: install-exec-am
+all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS)
 
-install-data-am:
+installdirs:
+	$(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(sbindir) $(DESTDIR)$(ospfapiheaderdir)
+
+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
-install: install-am
-uninstall-am: uninstall-sbinPROGRAMS
-uninstall: uninstall-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS)
-all-redirect: all-am
+
+installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-	$(mkinstalldirs)  $(DESTDIR)$(sbindir)
-
-
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 mostlyclean-generic:
 
 clean-generic:
 
 distclean-generic:
-	-rm -f Makefile $(CONFIG_CLEAN_FILES)
-	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+	-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
 
 maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
-		mostlyclean-sbinPROGRAMS mostlyclean-tags \
-		mostlyclean-depend mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am:  clean-noinstLIBRARIES clean-compile clean-sbinPROGRAMS \
-		clean-tags clean-depend clean-generic mostlyclean-am
-
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
 clean: clean-am
 
-distclean-am:  distclean-noinstLIBRARIES distclean-compile \
-		distclean-sbinPROGRAMS distclean-tags distclean-depend \
-		distclean-generic clean-am
+clean-am: clean-generic clean-libLIBRARIES clean-sbinPROGRAMS \
+	mostlyclean-am
 
 distclean: distclean-am
 
-maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
-		maintainer-clean-compile maintainer-clean-sbinPROGRAMS \
-		maintainer-clean-tags maintainer-clean-depend \
-		maintainer-clean-generic distclean-am
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
+distclean-am: clean-am distclean-compile distclean-depend \
+	distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-ospfapiheaderHEADERS
+
+install-exec-am: install-libLIBRARIES install-sbinPROGRAMS
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
 
 maintainer-clean: maintainer-clean-am
 
-.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
-clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
-mostlyclean-compile distclean-compile clean-compile \
-maintainer-clean-compile mostlyclean-sbinPROGRAMS \
-distclean-sbinPROGRAMS clean-sbinPROGRAMS maintainer-clean-sbinPROGRAMS \
-uninstall-sbinPROGRAMS install-sbinPROGRAMS tags mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir \
-mostlyclean-depend distclean-depend clean-depend \
-maintainer-clean-depend info-am info dvi-am dvi check check-am \
-installcheck-am installcheck install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
+maintainer-clean-am: distclean-am maintainer-clean-generic
 
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+uninstall-am: uninstall-info-am uninstall-libLIBRARIES \
+	uninstall-ospfapiheaderHEADERS uninstall-sbinPROGRAMS
+
+.PHONY: GTAGS all all-am check check-am clean clean-generic \
+	clean-libLIBRARIES clean-sbinPROGRAMS distclean \
+	distclean-compile distclean-depend distclean-generic \
+	distclean-tags 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-libLIBRARIES install-man install-ospfapiheaderHEADERS \
+	install-sbinPROGRAMS install-strip installcheck installcheck-am \
+	installdirs maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-compile mostlyclean-generic tags \
+	uninstall uninstall-am uninstall-info-am uninstall-libLIBRARIES \
+	uninstall-ospfapiheaderHEADERS uninstall-sbinPROGRAMS
 
 # 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.
diff --git a/ospfd/Makefile.am b/ospfd/Makefile.am
index 64d488a..16845e7 100644
--- a/ospfd/Makefile.am
+++ b/ospfd/Makefile.am
@@ -1,7 +1,6 @@
 ## Process this file with automake to produce Makefile.in.
 
 INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
-LOCAL_OPTS = @OSPFAPI@
 DEFS = @DEFS@ $(LOCAL_OPTS) -DSYSCONFDIR=\"$(sysconfdir)/\"
 INSTALL_SDATA=@INSTALL@ -m 600
 
diff --git a/ospfd/Makefile.in b/ospfd/Makefile.in
index 907a2a7..aa16022 100644
--- a/ospfd/Makefile.in
+++ b/ospfd/Makefile.in
@@ -1,6 +1,7 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.5 from Makefile.am.
 
-# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# 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.
@@ -10,6 +11,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+@SET_MAKE@
 
 SHELL = @SHELL@
 
@@ -31,13 +33,9 @@
 mandir = @mandir@
 includedir = @includedir@
 oldincludedir = /usr/include
-
-DESTDIR =
-
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-
 top_builddir = ..
 
 ACLOCAL = @ACLOCAL@
@@ -46,11 +44,11 @@
 AUTOHEADER = @AUTOHEADER@
 
 INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
 transform = @program_transform_name@
-
 NORMAL_INSTALL = :
 PRE_INSTALL = :
 POST_INSTALL = :
@@ -59,21 +57,27 @@
 POST_UNINSTALL = :
 host_alias = @host_alias@
 host_triplet = @host@
+AMTAR = @AMTAR@
 AR = @AR@
+AWK = @AWK@
 BGPD = @BGPD@
 CC = @CC@
 CPP = @CPP@
 CURSES = @CURSES@
+DEPDIR = @DEPDIR@
+EXEEXT = @EXEEXT@
 IF_METHOD = @IF_METHOD@
 IF_PROC = @IF_PROC@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 IPFORWARD = @IPFORWARD@
 KERNEL_METHOD = @KERNEL_METHOD@
 LIBPAM = @LIBPAM@
 LIB_IPV6 = @LIB_IPV6@
 LIB_REGEX = @LIB_REGEX@
-MAKEINFO = @MAKEINFO@
 MULTIPATH_NUM = @MULTIPATH_NUM@
+OBJEXT = @OBJEXT@
 OSPF6D = @OSPF6D@
+OSPFAPI = @OSPFAPI@
 OSPFCLIENT = @OSPFCLIENT@
 OSPFD = @OSPFD@
 OTHER_METHOD = @OTHER_METHOD@
@@ -86,13 +90,16 @@
 VERSION = @VERSION@
 VTYSH = @VTYSH@
 ZEBRA = @ZEBRA@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
 
 INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
-LOCAL_OPTS = -DSUPPORT_OSPF_API
+LOCAL_OPTS = @OSPFAPI@
 DEFS = @DEFS@ $(LOCAL_OPTS) -DSYSCONFDIR=\"$(sysconfdir)/\"
 INSTALL_SDATA = @INSTALL@ -m 600
 
-noinst_LIBRARIES = libospf.a
+lib_LIBRARIES = libospf.a
 sbin_PROGRAMS = ospfd
 
 libospf_a_SOURCES = \
@@ -103,12 +110,17 @@
 	ospf_opaque.c ospf_te.c ospf_vty.c ospf_api.c ospf_apiserver.c
 
 
+ospfdheaderdir = $(includedir)/ospfd
+
+ospfdheader_HEADERS = \
+	ospf_api.h ospf_asbr.h ospf_dump.h ospf_lsa.h ospf_lsdb.h \
+	ospf_nsm.h ospf_ism.h ospf_opaque.h ospfd.h
+
+
 noinst_HEADERS = \
-	ospf_dump.h ospf_interface.h ospf_ism.h ospf_neighbor.h \
-	ospf_network.h ospf_nsm.h ospf_packet.h ospf_zebra.h ospfd.h \
-	ospf_lsa.h ospf_spf.h ospf_route.h ospf_ase.h ospf_abr.h ospf_ia.h \
-	ospf_flood.h ospf_lsdb.h ospf_asbr.h ospf_snmp.h ospf_opaque.h \
-	ospf_te.h ospf_vty.h ospf_api.h ospf_apiserver.h
+	ospf_interface.h ospf_neighbor.h ospf_network.h ospf_packet.h \
+	ospf_zebra.h ospf_spf.h ospf_route.h ospf_ase.h ospf_abr.h ospf_ia.h \
+	ospf_flood.h ospf_snmp.h ospf_te.h ospf_vty.h ospf_apiserver.h
 
 
 ospfd_SOURCES = \
@@ -120,289 +132,355 @@
 sysconf_DATA = ospfd.conf.sample
 
 EXTRA_DIST = $(sysconf_DATA) OSPF-MIB.txt OSPF-TRAP-MIB.txt ChangeLog.opaque.txt
+subdir = ospfd
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../config.h
-CONFIG_CLEAN_FILES = 
-LIBRARIES =  $(noinst_LIBRARIES)
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LIBRARIES = $(lib_LIBRARIES)
 
+libospf_a_AR = $(AR) cru
+libospf_a_LIBADD =
+am_libospf_a_OBJECTS = ospfd.$(OBJEXT) ospf_zebra.$(OBJEXT) \
+	ospf_interface.$(OBJEXT) ospf_ism.$(OBJEXT) \
+	ospf_neighbor.$(OBJEXT) ospf_nsm.$(OBJEXT) ospf_dump.$(OBJEXT) \
+	ospf_network.$(OBJEXT) ospf_packet.$(OBJEXT) ospf_lsa.$(OBJEXT) \
+	ospf_spf.$(OBJEXT) ospf_route.$(OBJEXT) ospf_ase.$(OBJEXT) \
+	ospf_abr.$(OBJEXT) ospf_ia.$(OBJEXT) ospf_flood.$(OBJEXT) \
+	ospf_lsdb.$(OBJEXT) ospf_asbr.$(OBJEXT) ospf_routemap.$(OBJEXT) \
+	ospf_snmp.$(OBJEXT) ospf_opaque.$(OBJEXT) ospf_te.$(OBJEXT) \
+	ospf_vty.$(OBJEXT) ospf_api.$(OBJEXT) ospf_apiserver.$(OBJEXT)
+libospf_a_OBJECTS = $(am_libospf_a_OBJECTS)
+sbin_PROGRAMS = ospfd$(EXEEXT)
+PROGRAMS = $(sbin_PROGRAMS)
+
+am_ospfd_OBJECTS = ospf_main.$(OBJEXT) ospfd.$(OBJEXT) \
+	ospf_zebra.$(OBJEXT) ospf_interface.$(OBJEXT) \
+	ospf_ism.$(OBJEXT) ospf_neighbor.$(OBJEXT) ospf_nsm.$(OBJEXT) \
+	ospf_dump.$(OBJEXT) ospf_network.$(OBJEXT) \
+	ospf_packet.$(OBJEXT) ospf_lsa.$(OBJEXT) ospf_spf.$(OBJEXT) \
+	ospf_route.$(OBJEXT) ospf_ase.$(OBJEXT) ospf_abr.$(OBJEXT) \
+	ospf_ia.$(OBJEXT) ospf_flood.$(OBJEXT) ospf_lsdb.$(OBJEXT) \
+	ospf_asbr.$(OBJEXT) ospf_routemap.$(OBJEXT) ospf_snmp.$(OBJEXT) \
+	ospf_opaque.$(OBJEXT) ospf_te.$(OBJEXT) ospf_vty.$(OBJEXT) \
+	ospf_api.$(OBJEXT) ospf_apiserver.$(OBJEXT)
+ospfd_OBJECTS = $(am_ospfd_OBJECTS)
+ospfd_DEPENDENCIES = ../lib/libzebra.a
+ospfd_LDFLAGS =
+DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
 CPPFLAGS = @CPPFLAGS@
 LDFLAGS = @LDFLAGS@
 LIBS = @LIBS@
-libospf_a_LIBADD = 
-libospf_a_OBJECTS =  ospfd.o ospf_zebra.o ospf_interface.o ospf_ism.o \
-ospf_neighbor.o ospf_nsm.o ospf_dump.o ospf_network.o ospf_packet.o \
-ospf_lsa.o ospf_spf.o ospf_route.o ospf_ase.o ospf_abr.o ospf_ia.o \
-ospf_flood.o ospf_lsdb.o ospf_asbr.o ospf_routemap.o ospf_snmp.o \
-ospf_opaque.o ospf_te.o ospf_vty.o ospf_api.o ospf_apiserver.o
-PROGRAMS =  $(sbin_PROGRAMS)
-
-ospfd_OBJECTS =  ospf_main.o ospfd.o ospf_zebra.o ospf_interface.o \
-ospf_ism.o ospf_neighbor.o ospf_nsm.o ospf_dump.o ospf_network.o \
-ospf_packet.o ospf_lsa.o ospf_spf.o ospf_route.o ospf_ase.o ospf_abr.o \
-ospf_ia.o ospf_flood.o ospf_lsdb.o ospf_asbr.o ospf_routemap.o \
-ospf_snmp.o ospf_opaque.o ospf_te.o ospf_vty.o ospf_api.o \
-ospf_apiserver.o
-ospfd_DEPENDENCIES =  ../lib/libzebra.a
-ospfd_LDFLAGS = 
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/ospf_abr.Po $(DEPDIR)/ospf_api.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf_apiserver.Po $(DEPDIR)/ospf_asbr.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf_ase.Po $(DEPDIR)/ospf_dump.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf_flood.Po $(DEPDIR)/ospf_ia.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf_interface.Po $(DEPDIR)/ospf_ism.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf_lsa.Po $(DEPDIR)/ospf_lsdb.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf_main.Po $(DEPDIR)/ospf_neighbor.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf_network.Po $(DEPDIR)/ospf_nsm.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf_opaque.Po $(DEPDIR)/ospf_packet.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf_route.Po $(DEPDIR)/ospf_routemap.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf_snmp.Po $(DEPDIR)/ospf_spf.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf_te.Po $(DEPDIR)/ospf_vty.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ospf_zebra.Po $(DEPDIR)/ospfd.Po
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-DATA =  $(sysconf_DATA)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+CFLAGS = @CFLAGS@
+DIST_SOURCES = $(libospf_a_SOURCES) $(ospfd_SOURCES)
+DATA = $(sysconf_DATA)
 
-HEADERS =  $(noinst_HEADERS)
+HEADERS = $(noinst_HEADERS) $(ospfdheader_HEADERS)
 
-DIST_COMMON =  ChangeLog Makefile.am Makefile.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = gtar
-GZIP_ENV = --best
-DEP_FILES =  .deps/ospf_abr.P .deps/ospf_api.P .deps/ospf_apiserver.P \
-.deps/ospf_asbr.P .deps/ospf_ase.P .deps/ospf_dump.P .deps/ospf_flood.P \
-.deps/ospf_ia.P .deps/ospf_interface.P .deps/ospf_ism.P \
-.deps/ospf_lsa.P .deps/ospf_lsdb.P .deps/ospf_main.P \
-.deps/ospf_neighbor.P .deps/ospf_network.P .deps/ospf_nsm.P \
-.deps/ospf_opaque.P .deps/ospf_packet.P .deps/ospf_route.P \
-.deps/ospf_routemap.P .deps/ospf_snmp.P .deps/ospf_spf.P \
-.deps/ospf_te.P .deps/ospf_vty.P .deps/ospf_zebra.P .deps/ospfd.P
+DIST_COMMON = $(noinst_HEADERS) $(ospfdheader_HEADERS) ChangeLog \
+	Makefile.am Makefile.in
 SOURCES = $(libospf_a_SOURCES) $(ospfd_SOURCES)
-OBJECTS = $(libospf_a_OBJECTS) $(ospfd_OBJECTS)
 
-all: all-redirect
+all: all-am
+
 .SUFFIXES:
-.SUFFIXES: .S .c .o .s
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --foreign ospfd/Makefile
+.SUFFIXES: .c .o .obj
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign  ospfd/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) && \
+	  CONFIG_HEADERS= CONFIG_LINKS= \
+	  CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
 
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
-	cd $(top_builddir) \
-	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+AR = ar
+install-libLIBRARIES: $(lib_LIBRARIES)
+	@$(NORMAL_INSTALL)
+	$(mkinstalldirs) $(DESTDIR)$(libdir)
+	@list='$(lib_LIBRARIES)'; for p in $$list; do \
+	  if test -f $$p; then \
+	    echo " $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \
+	    $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \
+	  else :; fi; \
+	done
+	@$(POST_INSTALL)
+	@list='$(lib_LIBRARIES)'; for p in $$list; do \
+	  if test -f $$p; then \
+	    echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \
+	    $(RANLIB) $(DESTDIR)$(libdir)/$$p; \
+	  else :; fi; \
+	done
 
+uninstall-libLIBRARIES:
+	@$(NORMAL_UNINSTALL)
+	@list='$(lib_LIBRARIES)'; for p in $$list; do \
+	  echo " rm -f $(DESTDIR)$(libdir)/$$p"; \
+	  rm -f $(DESTDIR)$(libdir)/$$p; \
+	done
 
-mostlyclean-noinstLIBRARIES:
-
-clean-noinstLIBRARIES:
-	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-
-distclean-noinstLIBRARIES:
-
-maintainer-clean-noinstLIBRARIES:
-
-.s.o:
-	$(COMPILE) -c $<
-
-.S.o:
-	$(COMPILE) -c $<
-
-mostlyclean-compile:
-	-rm -f *.o core *.core
-
-clean-compile:
-
-distclean-compile:
-	-rm -f *.tab.c
-
-maintainer-clean-compile:
-
-libospf.a: $(libospf_a_OBJECTS) $(libospf_a_DEPENDENCIES)
+clean-libLIBRARIES:
+	-test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
+libospf.a: $(libospf_a_OBJECTS) $(libospf_a_DEPENDENCIES) 
 	-rm -f libospf.a
-	$(AR) cru libospf.a $(libospf_a_OBJECTS) $(libospf_a_LIBADD)
+	$(libospf_a_AR) libospf.a $(libospf_a_OBJECTS) $(libospf_a_LIBADD)
 	$(RANLIB) libospf.a
-
-mostlyclean-sbinPROGRAMS:
-
-clean-sbinPROGRAMS:
-	-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
-
-distclean-sbinPROGRAMS:
-
-maintainer-clean-sbinPROGRAMS:
-
 install-sbinPROGRAMS: $(sbin_PROGRAMS)
 	@$(NORMAL_INSTALL)
 	$(mkinstalldirs) $(DESTDIR)$(sbindir)
 	@list='$(sbin_PROGRAMS)'; for p in $$list; do \
-	  if test -f $$p; then \
-	    echo "  $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
-	     $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  if test -f $$p \
+	  ; then \
+	    f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f"; \
+	   $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f; \
 	  else :; fi; \
 	done
 
 uninstall-sbinPROGRAMS:
 	@$(NORMAL_UNINSTALL)
-	list='$(sbin_PROGRAMS)'; for p in $$list; do \
-	  rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+	@list='$(sbin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+	  echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
+	  rm -f $(DESTDIR)$(sbindir)/$$f; \
 	done
 
-ospfd: $(ospfd_OBJECTS) $(ospfd_DEPENDENCIES)
-	@rm -f ospfd
+clean-sbinPROGRAMS:
+	-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
+ospfd$(EXEEXT): $(ospfd_OBJECTS) $(ospfd_DEPENDENCIES) 
+	@rm -f ospfd$(EXEEXT)
 	$(LINK) $(ospfd_LDFLAGS) $(ospfd_OBJECTS) $(ospfd_LDADD) $(LIBS)
 
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT) core *.core
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_abr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_api.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_apiserver.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_asbr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_ase.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_dump.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_flood.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_ia.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_interface.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_ism.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_lsa.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_lsdb.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_neighbor.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_network.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_nsm.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_opaque.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_packet.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_route.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_routemap.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_snmp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_spf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_te.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_vty.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospf_zebra.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ospfd.Po@am__quote@
+
+distclean-depend:
+	-rm -rf $(DEPDIR)
+
+.c.o:
+@AMDEP_TRUE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+	$(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
+
+.c.obj:
+@AMDEP_TRUE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+	$(COMPILE) -c `cygpath -w $<`
+CCDEPMODE = @CCDEPMODE@
+uninstall-info-am:
+
 uninstall-sysconfDATA:
 	@$(NORMAL_UNINSTALL)
-	list='$(sysconf_DATA)'; for p in $$list; do \
-	  rm -f $(DESTDIR)$(sysconfdir)/$$p; \
+	@list='$(sysconf_DATA)'; for p in $$list; do \
+	  f="`echo $$p | sed -e 's|^.*/||'`"; \
+	  echo " rm -f $(DESTDIR)$(sysconfdir)/$$f"; \
+	  rm -f $(DESTDIR)$(sysconfdir)/$$f; \
+	done
+install-ospfdheaderHEADERS: $(ospfdheader_HEADERS)
+	@$(NORMAL_INSTALL)
+	$(mkinstalldirs) $(DESTDIR)$(ospfdheaderdir)
+	@list='$(ospfdheader_HEADERS)'; for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  f="`echo $$p | sed -e 's|^.*/||'`"; \
+	  echo " $(INSTALL_HEADER) $$d$$p $(DESTDIR)$(ospfdheaderdir)/$$f"; \
+	  $(INSTALL_HEADER) $$d$$p $(DESTDIR)$(ospfdheaderdir)/$$f; \
+	done
+
+uninstall-ospfdheaderHEADERS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(ospfdheader_HEADERS)'; for p in $$list; do \
+	  f="`echo $$p | sed -e 's|^.*/||'`"; \
+	  echo " rm -f $(DESTDIR)$(ospfdheaderdir)/$$f"; \
+	  rm -f $(DESTDIR)$(ospfdheaderdir)/$$f; \
 	done
 
 tags: TAGS
 
-ID: $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
-	here=`pwd` && cd $(srcdir) \
-	  && mkid -f$$here/ID $$unique $(LISP)
+	mkid -fID $$unique $(LISP)
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
 	tags=; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+	list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
 	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
-	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+	  || etags $(ETAGS_ARGS) $$tags  $$unique $(LISP)
 
-mostlyclean-tags:
-
-clean-tags:
+GTAGS:
+	here=`CDPATH=: && cd $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
 
 distclean-tags:
-	-rm -f TAGS ID
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
 
-maintainer-clean-tags:
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = ospfd
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 
 distdir: $(DISTFILES)
-	here=`cd $(top_builddir) && pwd`; \
-	top_distdir=`cd $(top_distdir) && pwd`; \
-	distdir=`cd $(distdir) && pwd`; \
-	cd $(top_srcdir) \
-	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign ospfd/Makefile
 	@for file in $(DISTFILES); do \
-	  d=$(srcdir); \
+	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    $(mkinstalldirs) "$(distdir)/$$dir"; \
+	  fi; \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$d/$$file $(distdir)/$$file; \
+	    cp -pR $$d/$$file $(distdir) \
+	    || exit 1; \
 	  else \
 	    test -f $(distdir)/$$file \
-	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
 	  fi; \
 	done
-
-DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-
--include $(DEP_FILES)
-
-mostlyclean-depend:
-
-clean-depend:
-
-distclean-depend:
-	-rm -rf .deps
-
-maintainer-clean-depend:
-
-%.o: %.c
-	@echo '$(COMPILE) -c $<'; \
-	$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-	@-cp .deps/$(*F).pp .deps/$(*F).P; \
-	tr ' ' '\012' < .deps/$(*F).pp \
-	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-	    >> .deps/$(*F).P; \
-	rm .deps/$(*F).pp
-
-%.lo: %.c
-	@echo '$(LTCOMPILE) -c $<'; \
-	$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-	@-sed -e 's/^\([^:]*\)\.o[ 	]*:/\1.lo \1.o :/' \
-	  < .deps/$(*F).pp > .deps/$(*F).P; \
-	tr ' ' '\012' < .deps/$(*F).pp \
-	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-	    >> .deps/$(*F).P; \
-	rm -f .deps/$(*F).pp
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
 check-am: all-am
 check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am: install-sbinPROGRAMS install-sysconfDATA
-install-exec: install-exec-am
+all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
 
-install-data-am:
+installdirs:
+	$(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir) $(DESTDIR)$(ospfdheaderdir)
+
+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
-install: install-am
-uninstall-am: uninstall-sbinPROGRAMS uninstall-sysconfDATA
-uninstall: uninstall-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
-all-redirect: all-am
+
+installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-	$(mkinstalldirs)  $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
-
-
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 mostlyclean-generic:
 
 clean-generic:
 
 distclean-generic:
-	-rm -f Makefile $(CONFIG_CLEAN_FILES)
-	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+	-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
 
 maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
-		mostlyclean-sbinPROGRAMS mostlyclean-tags \
-		mostlyclean-depend mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am:  clean-noinstLIBRARIES clean-compile clean-sbinPROGRAMS \
-		clean-tags clean-depend clean-generic mostlyclean-am
-
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
 clean: clean-am
 
-distclean-am:  distclean-noinstLIBRARIES distclean-compile \
-		distclean-sbinPROGRAMS distclean-tags distclean-depend \
-		distclean-generic clean-am
+clean-am: clean-generic clean-libLIBRARIES clean-sbinPROGRAMS \
+	mostlyclean-am
 
 distclean: distclean-am
 
-maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
-		maintainer-clean-compile maintainer-clean-sbinPROGRAMS \
-		maintainer-clean-tags maintainer-clean-depend \
-		maintainer-clean-generic distclean-am
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
+distclean-am: clean-am distclean-compile distclean-depend \
+	distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-ospfdheaderHEADERS
+
+install-exec-am: install-libLIBRARIES install-sbinPROGRAMS \
+	install-sysconfDATA
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
 
 maintainer-clean: maintainer-clean-am
 
-.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
-clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
-mostlyclean-compile distclean-compile clean-compile \
-maintainer-clean-compile mostlyclean-sbinPROGRAMS \
-distclean-sbinPROGRAMS clean-sbinPROGRAMS maintainer-clean-sbinPROGRAMS \
-uninstall-sbinPROGRAMS install-sbinPROGRAMS uninstall-sysconfDATA \
-install-sysconfDATA tags mostlyclean-tags distclean-tags clean-tags \
-maintainer-clean-tags distdir mostlyclean-depend distclean-depend \
-clean-depend maintainer-clean-depend info-am info dvi-am dvi check \
-check-am installcheck-am installcheck install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+uninstall-am: uninstall-info-am uninstall-libLIBRARIES \
+	uninstall-ospfdheaderHEADERS uninstall-sbinPROGRAMS \
+	uninstall-sysconfDATA
+
+.PHONY: GTAGS all all-am check check-am clean clean-generic \
+	clean-libLIBRARIES clean-sbinPROGRAMS distclean \
+	distclean-compile distclean-depend distclean-generic \
+	distclean-tags 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-libLIBRARIES install-man install-ospfdheaderHEADERS \
+	install-sbinPROGRAMS install-strip install-sysconfDATA \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic tags uninstall uninstall-am \
+	uninstall-info-am uninstall-libLIBRARIES \
+	uninstall-ospfdheaderHEADERS uninstall-sbinPROGRAMS \
+	uninstall-sysconfDATA
 
 
 install-sysconfDATA: $(sysconf_DATA)
@@ -417,7 +495,6 @@
 	    $(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \
 	  fi; fi; \
 	done
-
 # 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/ospfd/ospf_apiserver.c b/ospfd/ospf_apiserver.c
index 90ca230..3b2c055 100644
--- a/ospfd/ospf_apiserver.c
+++ b/ospfd/ospf_apiserver.c
@@ -1490,7 +1490,8 @@
     }
 
   /* Set opaque-LSA header fields. */
-  lsa_header_set (s, options, protolsa->type, protolsa->id);
+  lsa_header_set (s, options, protolsa->type, protolsa->id, 
+                  area->ospf->router_id);
 
   /* Set opaque-LSA body fields. */
   stream_put (s, ((u_char *) protolsa) + sizeof (struct lsa_header),
diff --git a/ospfd/ospf_ase.c b/ospfd/ospf_ase.c
index 8eb7025..3747bc1 100644
--- a/ospfd/ospf_ase.c
+++ b/ospfd/ospf_ase.c
@@ -49,7 +49,8 @@
 #define DEBUG
 
 struct ospf_route *
-ospf_find_asbr_route (struct route_table *rtrs, struct prefix_ipv4 *asbr)
+ospf_find_asbr_route (struct ospf *ospf,
+		      struct route_table *rtrs, struct prefix_ipv4 *asbr)
 {
   struct route_node *rn;
   struct ospf_route *or, *best = NULL;
@@ -69,7 +70,7 @@
   chosen = list_new ();
 
   /* First try to find intra-area non-bb paths. */
-  if (!CHECK_FLAG (ospf_top->config, OSPF_RFC1583_COMPATIBLE))
+  if (!CHECK_FLAG (ospf->config, OSPF_RFC1583_COMPATIBLE))
     for (node = listhead ((list) rn->info); node; nextnode (node))
       if ((or = getdata (node)) != NULL)
 	if (or->cost < OSPF_LS_INFINITY)
@@ -147,12 +148,12 @@
 }
 
 int
-ospf_ase_forward_address_check (struct in_addr fwd_addr)
+ospf_ase_forward_address_check (struct ospf *ospf, struct in_addr fwd_addr)
 {
   listnode ifn;
   struct ospf_interface *oi;
 
-  for (ifn = listhead (ospf_top->oiflist); ifn; nextnode (ifn))
+  for (ifn = listhead (ospf->oiflist); ifn; nextnode (ifn))
     if ((oi = getdata (ifn)) != NULL)
       if (if_is_operative (oi->ifp))
 	if (oi->type != OSPF_IFTYPE_VIRTUALLINK)
@@ -164,7 +165,8 @@
 
 /* Calculate ASBR route. */
 struct ospf_route *
-ospf_ase_calculate_asbr_route (struct route_table *rt_network,
+ospf_ase_calculate_asbr_route (struct ospf *ospf,
+			       struct route_table *rt_network,
 			       struct route_table *rt_router,
 			       struct as_external_lsa *al)
 {
@@ -178,7 +180,7 @@
   asbr.prefixlen = IPV4_MAX_BITLEN;
   apply_mask_ipv4 (&asbr);
 
-  asbr_route = ospf_find_asbr_route (rt_router, &asbr);
+  asbr_route = ospf_find_asbr_route (ospf, rt_router, &asbr);
 
   if (asbr_route == NULL)
     {
@@ -198,7 +200,7 @@
       zlog_info ("ospf_ase_calculate(): "
 		 "Forwarding address is not 0.0.0.0.");
 
-      if (! ospf_ase_forward_address_check (al->e[0].fwd_addr))
+      if (! ospf_ase_forward_address_check (ospf, al->e[0].fwd_addr))
 	{
 	  zlog_info ("ospf_ase_calculate(): "
 		     "Forwarding address is one of our addresses, Ignore.");
@@ -279,7 +281,7 @@
 #define OSPF_ASE_CALC_INTERVAL 1
 
 int
-ospf_ase_calculate_route (struct ospf_lsa * lsa, void * p_arg, int n_arg)
+ospf_ase_calculate_route (struct ospf *ospf, struct ospf_lsa * lsa)
 {
   u_int32_t metric;
   struct as_external_lsa *al;
@@ -343,7 +345,7 @@
   asbr.prefixlen = IPV4_MAX_BITLEN;
   apply_mask_ipv4 (&asbr);
   
-  asbr_route = ospf_find_asbr_route (ospf_top->new_rtrs, &asbr);
+  asbr_route = ospf_find_asbr_route (ospf, ospf->new_rtrs, &asbr);
   if (asbr_route == NULL)
     {
       zlog_info ("Route[External]: Can't find originating ASBR route");
@@ -383,7 +385,7 @@
 	 routing table entry must specify an intra-area or inter-area
 	 path; if no such path exists, do nothing with the LSA and
 	 consider the next in the list. */
-      if (! ospf_ase_forward_address_check (al->e[0].fwd_addr))
+      if (! ospf_ase_forward_address_check (ospf, al->e[0].fwd_addr))
 	{
 	  zlog_info ("Route[External]: Forwarding address is our router address");
 	  return 0;
@@ -393,7 +395,7 @@
       asbr.prefix = al->e[0].fwd_addr;
       asbr.prefixlen = IPV4_MAX_BITLEN;
 
-      rn = route_node_match (ospf_top->new_table, (struct prefix *) &asbr);
+      rn = route_node_match (ospf->new_table, (struct prefix *) &asbr);
       
       if (rn == NULL || (asbr_route = rn->info) == NULL)
 	{
@@ -437,7 +439,7 @@
 
   /* if there is a Intra/Inter area route to the N
      do not install external route */
-  if ((rn = route_node_lookup (ospf_top->new_table,
+  if ((rn = route_node_lookup (ospf->new_table,
 			       (struct prefix *) &p)) != NULL
       && (rn->info != NULL))
     {
@@ -448,14 +450,14 @@
   
   /* Find a route to the same dest */
   /* If there is no route, create new one. */
-  if ((rn = route_node_lookup (ospf_top->new_external_route,
+  if ((rn = route_node_lookup (ospf->new_external_route,
 			       (struct prefix *) &p)) == NULL 
       || (or = rn->info) == NULL)
     {
       zlog_info ("Route[External]: Adding a new route %s/%d",
 		 inet_ntoa (p.prefix), p.prefixlen);
 
-      ospf_route_add (ospf_top->new_external_route, &p, new, asbr_route);
+      ospf_route_add (ospf->new_external_route, &p, new, asbr_route);
 
       if (al->e[0].fwd_addr.s_addr)
 	ospf_ase_complete_direct_routes (new, al->e[0].fwd_addr);
@@ -470,7 +472,7 @@
              external paths. When all paths are type 2 external
 	     paths, the paths with the smallest advertised type 2
 	     metric are always preferred. */
-      ret = ospf_route_cmp (new, or);
+      ret = ospf_route_cmp (ospf, new, or);
   
   /*     (c) If the new AS external path is still indistinguishable
              from the current paths in the N's routing table entry,
@@ -610,10 +612,11 @@
 ospf_ase_calculate_timer (struct thread *t)
 {
   struct ospf *ospf;
-
+  struct ospf_lsa *lsa;
+  struct route_node *rn;
 #ifdef HAVE_NSSA
-      listnode node;
-      struct ospf_area *area;
+  listnode node;
+  struct ospf_area *area;
 #endif /* HAVE_NSSA */
 
   ospf = THREAD_ARG (t);
@@ -624,13 +627,13 @@
       ospf->ase_calc = 0;
 
       /* Calculate external route for each AS-external-LSA */
-      foreach_lsa (EXTERNAL_LSDB (ospf_top), NULL, 0,
-		   ospf_ase_calculate_route);
+      LSDB_LOOP (EXTERNAL_LSDB (ospf), rn, lsa)
+	ospf_ase_calculate_route (ospf, lsa);
 
 #ifdef HAVE_NSSA
       /*  This version simple adds to the table all NSSA areas  */
-      if (ospf_top->anyNSSA)
-	for (node = listhead (ospf_top->areas); node; nextnode (node))
+      if (ospf->anyNSSA)
+	for (node = listhead (ospf->areas); node; nextnode (node))
 	  {
 	    area = getdata (node);
 	    if (IS_DEBUG_OSPF_NSSA)
@@ -638,9 +641,8 @@
 			 inet_ntoa (area->area_id));
 
 	    if (area->external_routing == OSPF_AREA_NSSA)
-
-	      foreach_lsa (NSSA_LSDB (area), NULL, 0,
-			   ospf_ase_calculate_route);
+	      LSDB_LOOP (NSSA_LSDB (area), rn, lsa)
+		ospf_ase_calculate_route (ospf, lsa);
 	  }
       /* kevinm: And add the NSSA routes in ospf_top */
       foreach_lsa(NSSA_LSDB (ospf_top), NULL, 0,
@@ -650,35 +652,35 @@
 
       /* Compare old and new external routing table and install the
 	 difference info zebra/kernel */
-      ospf_ase_compare_tables (ospf_top->new_external_route,
-			       ospf_top->old_external_route);
+      ospf_ase_compare_tables (ospf->new_external_route,
+			       ospf->old_external_route);
 
       /* Delete old external routing table */
-      ospf_route_table_free (ospf_top->old_external_route);
-      ospf_top->old_external_route = ospf_top->new_external_route;
-      ospf_top->new_external_route = route_table_init ();
+      ospf_route_table_free (ospf->old_external_route);
+      ospf->old_external_route = ospf->new_external_route;
+      ospf->new_external_route = route_table_init ();
     }
   return 0;
 }
 
 void
-ospf_ase_calculate_schedule ()
+ospf_ase_calculate_schedule (struct ospf *ospf)
 {
-  if (! ospf_top)
+  if (ospf == NULL)
     return;
 
-  ospf_top->ase_calc = 1;
+  ospf->ase_calc = 1;
 }
 
 void
-ospf_ase_calculate_timer_add ()
+ospf_ase_calculate_timer_add (struct ospf *ospf)
 {
-  if (! ospf_top)
+  if (ospf == NULL)
     return;
 
-  if (! ospf_top->t_ase_calc)
-    ospf_top->t_ase_calc = thread_add_timer (master, ospf_ase_calculate_timer,
-					     ospf_top, OSPF_ASE_CALC_INTERVAL);
+  if (! ospf->t_ase_calc)
+    ospf->t_ase_calc = thread_add_timer (master, ospf_ase_calculate_timer,
+					 ospf, OSPF_ASE_CALC_INTERVAL);
 }
 
 void
@@ -756,7 +758,7 @@
 }
 
 void
-ospf_ase_incremental_update (struct ospf_lsa *lsa, struct ospf *top)
+ospf_ase_incremental_update (struct ospf *ospf, struct ospf_lsa *lsa)
 {
   list lsas;
   listnode node;
@@ -773,31 +775,31 @@
 
   /* if new_table is NULL, there was no spf calculation, thus
      incremental update is unneeded */
-  if (!top->new_table)
+  if (!ospf->new_table)
     return;
   
   /* If there is already an intra-area or inter-area route
      to the destination, no recalculation is necessary
      (internal routes take precedence). */
   
-  rn = route_node_lookup (top->new_table, (struct prefix *) &p);
+  rn = route_node_lookup (ospf->new_table, (struct prefix *) &p);
   if (rn && rn->info)
     {
       route_unlock_node (rn);
       return;
     }
 
-  rn = route_node_lookup (top->external_lsas, (struct prefix *) &p);
+  rn = route_node_lookup (ospf->external_lsas, (struct prefix *) &p);
   assert (rn && rn->info);
   lsas = rn->info;
   
   for (node = listhead (lsas); node; nextnode (node))
     if ((lsa = getdata (node)) != NULL)
-      ospf_ase_calculate_route (lsa, NULL, 0);
+      ospf_ase_calculate_route (ospf, lsa);
 
   /* prepare temporary old routing table for compare */
   tmp_old = route_table_init ();
-  rn = route_node_lookup (top->old_external_route, (struct prefix *) &p);
+  rn = route_node_lookup (ospf->old_external_route, (struct prefix *) &p);
   if (rn && rn->info)
     {
       rn2 = route_node_get (tmp_old, (struct prefix *) &p);
@@ -805,23 +807,23 @@
     }
 
   /* install changes to zebra */
-  ospf_ase_compare_tables (top->new_external_route, tmp_old);
+  ospf_ase_compare_tables (ospf->new_external_route, tmp_old);
 
-  /* update top->old_external_route table */
+  /* update ospf->old_external_route table */
   if (rn && rn->info)
     ospf_route_free ((struct ospf_route *) rn->info);
 
-  rn2 = route_node_lookup (top->new_external_route, (struct prefix *) &p);
-  /* if new route exists, install it to top->old_external_route */
+  rn2 = route_node_lookup (ospf->new_external_route, (struct prefix *) &p);
+  /* if new route exists, install it to ospf->old_external_route */
   if (rn2 && rn2->info)
     {
       if (!rn)
-	rn = route_node_get (top->old_external_route, (struct prefix *) &p);
+	rn = route_node_get (ospf->old_external_route, (struct prefix *) &p);
       rn->info = rn2->info;
     }
   else
     {
-      /* remove route node from top->old_external_route */
+      /* remove route node from ospf->old_external_route */
       if (rn)
 	{
 	  rn->info = NULL;
@@ -832,7 +834,7 @@
 
   if (rn2)
     {
-      /* rn2->info is stored in route node of top->old_external_route */
+      /* rn2->info is stored in route node of ospf->old_external_route */
       rn2->info = NULL;
       route_unlock_node (rn2);
       route_unlock_node (rn2);
diff --git a/ospfd/ospf_flood.c b/ospfd/ospf_flood.c
index 00a4c64..8c9a4c6 100644
--- a/ospfd/ospf_flood.c
+++ b/ospfd/ospf_flood.c
@@ -111,7 +111,8 @@
 }
 
 void
-ospf_process_self_originated_lsa (struct ospf_lsa *new, struct ospf_area *area)
+ospf_process_self_originated_lsa (struct ospf *ospf,
+				  struct ospf_lsa *new, struct ospf_area *area)
 {
   struct ospf_interface *oi;
   struct external_info *ei;
@@ -148,7 +149,7 @@
 
       /* Look through all interfaces, not just area, since interface
 	 could be moved from one area to another. */
-      for (node = listhead (ospf_top->oiflist); node; nextnode (node))
+      for (node = listhead (ospf->oiflist); node; nextnode (node))
 	/* These are sanity check. */
 	if ((oi = getdata (node)) != NULL)
 	  if (IPV4_ADDR_SAME (&oi->address->u.prefix4, &new->data->id))
@@ -179,7 +180,7 @@
       break;
     case OSPF_SUMMARY_LSA:
     case OSPF_ASBR_SUMMARY_LSA:
-      ospf_schedule_abr_task ();
+      ospf_schedule_abr_task (ospf);
       break;
     case OSPF_AS_EXTERNAL_LSA :
 #ifdef HAVE_NSSA
@@ -187,9 +188,9 @@
 #endif /* HAVE_NSSA */
       ei = ospf_external_info_check (new);
       if (ei)
-	ospf_external_lsa_refresh (new, ei, LSA_REFRESH_FORCE);
+	ospf_external_lsa_refresh (ospf, new, ei, LSA_REFRESH_FORCE);
       else
-	ospf_lsa_flush_as (new);
+	ospf_lsa_flush_as (ospf, new);
       break;
 #ifdef HAVE_OPAQUE_LSA
     case OSPF_OPAQUE_AREA_LSA:
@@ -229,8 +230,8 @@
 	    ABRs calculate external routes from Type-5's and non-self Type-7s
 */
 int
-ospf_flood (struct ospf_neighbor *nbr, struct ospf_lsa *current,
-	    struct ospf_lsa *new)
+ospf_flood (struct ospf *ospf, struct ospf_neighbor *nbr,
+	    struct ospf_lsa *current, struct ospf_lsa *new)
 {
   struct ospf_interface *oi;
   struct timeval now;
@@ -281,7 +282,7 @@
      DR and the LSA was received from a router other than the
      Backup DR) the LSA will be flooded back out the receiving
      interface. */
-  lsa_ack_flag = ospf_flood_through (nbr, new);
+  lsa_ack_flag = ospf_flood_through (ospf, nbr, new);
 
 #ifdef HAVE_OPAQUE_LSA
   /* Remove the current database copy from all neighbors' Link state
@@ -302,17 +303,17 @@
 #ifdef HAVE_OPAQUE_LSA
         case OSPF_OPAQUE_AS_LSA:
 #endif /* HAVE_OPAQUE_LSA */
-          ospf_ls_retransmit_delete_nbr_all (NULL, current);
+          ospf_ls_retransmit_delete_nbr_as (ospf, current);
           break;
         default:
-          ospf_ls_retransmit_delete_nbr_all (nbr->oi->area, current);
+          ospf_ls_retransmit_delete_nbr_area (nbr->oi->area, current);
           break;
         }
     }
 
   /* Do some internal house keeping that is needed here */
   SET_FLAG (new->flags, OSPF_LSA_RECEIVED);
-  ospf_lsa_is_self_originated (new); /* Let it set the flag */
+  ospf_lsa_is_self_originated (ospf, new); /* Let it set the flag */
 
   /* Install the new LSA in the link state database
      (replacing the current database copy).  This may cause the
@@ -321,15 +322,7 @@
      procedure cannot overwrite the newly installed LSA until
      MinLSArrival seconds have elapsed. */  
 
-  new = ospf_lsa_install (nbr->oi, new);
-
-#ifdef HAVE_NSSA 
-  if (IS_DEBUG_OSPF_NSSA)
-    zlog_info ("LSA[Flooding]: Type-%d installed", new->data->type);
-
-  /* if  (new->data->type == OSPF_AS_NSSA_LSA )
-     return 0;  */
-#endif /* HAVE_NSSA */
+  new = ospf_lsa_install (ospf, nbr->oi, new);
 
   /* Acknowledge the receipt of the LSA by sending a Link State
      Acknowledgment packet back out the receiving interface. */
@@ -340,11 +333,11 @@
      receiving router itself, the router must take special action,
      either updating the LSA or in some cases flushing it from
      the routing domain. */
-  if (ospf_lsa_is_self_originated (new))
-    ospf_process_self_originated_lsa (new, oi->area);
+  if (ospf_lsa_is_self_originated (ospf, new))
+    ospf_process_self_originated_lsa (ospf, new, oi->area);
   else
     /* Update statistics value for OSPF-MIB. */
-    ospf_top->rx_lsa_count++;
+    ospf->rx_lsa_count++;
 
   return 0;
 }
@@ -355,6 +348,7 @@
 			      struct ospf_neighbor *inbr,
 			      struct ospf_lsa *lsa)
 {
+  struct ospf *ospf = oi->ospf;
   struct ospf_neighbor *onbr;
   struct route_node *rn;
   int retx_flag;
@@ -440,7 +434,7 @@
               continue;
             }
 
-          if (IS_OPAQUE_LSA_ORIGINATION_BLOCKED (ospf_top->opaque)
+          if (IS_OPAQUE_LSA_ORIGINATION_BLOCKED (ospf->opaque)
           &&  IS_LSA_SELF (lsa)
           &&  onbr->state == NSM_Full)
             {
@@ -579,8 +573,8 @@
 }
 
 int
-ospf_flood_through_area (struct ospf_area * area,struct ospf_neighbor *inbr,
-			 struct ospf_lsa *lsa)
+ospf_flood_through_area (struct ospf_area *area,
+			 struct ospf_neighbor *inbr, struct ospf_lsa *lsa)
 {
   listnode node;
   int lsa_ack_flag = 0;
@@ -618,7 +612,8 @@
 }
 
 int
-ospf_flood_through_as (struct ospf_neighbor *inbr, struct ospf_lsa *lsa)
+ospf_flood_through_as (struct ospf *ospf, struct ospf_neighbor *inbr,
+		       struct ospf_lsa *lsa)
 {
   listnode node;
   int lsa_ack_flag;
@@ -643,7 +638,7 @@
       zlog_info ("Flood/AS: NSSA TRANSLATED LSA");
 #endif /* HAVE_NSSA */
 
-  for (node = listhead (ospf_top->areas); node; nextnode (node))
+  for (node = listhead (ospf->areas); node; nextnode (node))
     {
       int continue_flag = 0;
       struct ospf_area *area = getdata (node);
@@ -659,13 +654,12 @@
 	case OSPF_AREA_NSSA:	/* Sending Type 5 or 7 into NSSA area */
 #ifdef HAVE_NSSA
 	  /* Type-7, flood NSSA area */
-          if (lsa->data->type == OSPF_AS_NSSA_LSA &&
-          	area == lsa->area) { 
+          if (lsa->data->type == OSPF_AS_NSSA_LSA
+	      && area == lsa->area)
 	    /* We will send it. */
 	    continue_flag = 0;
-          } else {
+          else
 	    continue_flag = 1;  /* Skip this NSSA area for Type-5's et al */
-	  }
           break;
 #endif /* HAVE_NSSA */
 
@@ -707,7 +701,8 @@
 }
 
 int
-ospf_flood_through (struct ospf_neighbor *inbr, struct ospf_lsa *lsa)
+ospf_flood_through (struct ospf *ospf,
+		    struct ospf_neighbor *inbr, struct ospf_lsa *lsa)
 {
   int lsa_ack_flag = 0;
   
@@ -736,7 +731,7 @@
 #ifdef HAVE_OPAQUE_LSA
     case OSPF_OPAQUE_AS_LSA:
 #endif /* HAVE_OPAQUE_LSA */
-      lsa_ack_flag = ospf_flood_through_as (inbr, lsa);
+      lsa_ack_flag = ospf_flood_through_as (ospf, inbr, lsa);
       break;
 #ifdef HAVE_NSSA
       /* Type-7 Only received within NSSA, then flooded */
@@ -770,7 +765,7 @@
 #ifdef HAVE_OPAQUE_LSA
     case OSPF_OPAQUE_AS_LSA:
 #endif /* HAVE_OPAQUE_LSA */
-      lsa_ack_flag = ospf_flood_through_as (inbr, lsa);
+      lsa_ack_flag = ospf_flood_through_as (ospf, inbr, lsa);
       break;
 #ifdef HAVE_NSSA
       /* Type-7 Only received within NSSA, then flooded */
@@ -964,62 +959,44 @@
   return ospf_lsdb_lookup (&nbr->ls_rxmt, lsa);
 }
 
-/* Remove All neighbor/interface's Link State Retransmit list in area. */
 void
-ospf_ls_retransmit_delete_nbr_all (struct ospf_area *area,
-				   struct ospf_lsa *lsa)
+ospf_ls_retransmit_delete_nbr_if (struct ospf_interface *oi,
+				  struct ospf_lsa *lsa)
 {
-  listnode node;
-  list oiflist = area ? area->oiflist : ospf_top->oiflist;
-  
-  for (node = listhead (oiflist); node; nextnode (node))
-    {
-      struct ospf_interface *oi = getdata (node);
-      struct route_node *rn;
-      struct ospf_neighbor *nbr;
-      struct ospf_lsa *lsr;
-      
-      if (ospf_if_is_enable (oi))
-	for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
-	  /* If LSA find in LS-retransmit list, then remove it. */
-	  if ((nbr = rn->info) != NULL)
-	    {
-	      lsr = ospf_ls_retransmit_lookup (nbr, lsa);
+  struct route_node *rn;
+  struct ospf_neighbor *nbr;
+  struct ospf_lsa *lsr;
+
+  if (ospf_if_is_enable (oi))
+    for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
+      /* If LSA find in LS-retransmit list, then remove it. */
+      if ((nbr = rn->info) != NULL)
+	{
+	  lsr = ospf_ls_retransmit_lookup (nbr, lsa);
 	     
-	      /* If LSA find in ls-retransmit list, remove it. */
-	      if (lsr != NULL && lsr->data->ls_seqnum == lsa->data->ls_seqnum)
-		ospf_ls_retransmit_delete (nbr, lsr);
-	    }
-    }
+	  /* If LSA find in ls-retransmit list, remove it. */
+	  if (lsr != NULL && lsr->data->ls_seqnum == lsa->data->ls_seqnum)
+	    ospf_ls_retransmit_delete (nbr, lsr);
+	}
 }
 
-/* Add LSA to the current database copy of all neighbors'
-   Link state retransmission lists. */
 void
-ospf_ls_retransmit_add_nbr_all (struct ospf_interface *ospfi,
-				struct ospf_lsa *lsa)
+ospf_ls_retransmit_delete_nbr_area (struct ospf_area *area,
+				    struct ospf_lsa *lsa)
 {
   listnode node;
 
-  for (node = listhead (ospf_top->oiflist); node; nextnode (node))
-    {
-      struct ospf_interface *oi = getdata (node);
-      struct route_node *rn;
-      struct ospf_neighbor *nbr;
-      struct ospf_lsa *old;
+  for (node = listhead (area->oiflist); node; nextnode (node))
+    ospf_ls_retransmit_delete_nbr_if (getdata (node), lsa);
+}
 
-      if (ospf_if_is_enable (oi))
-	if (OSPF_AREA_SAME (&ospfi->area, &oi->area))
-	  for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
-	    if ((nbr = rn->info) != NULL)
-	      if (nbr->state == NSM_Full)
-		{
-		  if ((old = ospf_ls_retransmit_lookup (nbr, lsa)))
-		    ospf_ls_retransmit_delete (nbr, old);
+void
+ospf_ls_retransmit_delete_nbr_as (struct ospf *ospf, struct ospf_lsa *lsa)
+{
+  listnode node;
 
-		  ospf_ls_retransmit_add (nbr, lsa);
-		}
-    }
+  for (node = listhead (ospf->oiflist); node; nextnode (node))
+    ospf_ls_retransmit_delete_nbr_if (getdata (node), lsa);
 }
 
 
@@ -1031,22 +1008,13 @@
 {
   lsa->data->ls_age = htons (OSPF_LSA_MAXAGE);
   ospf_flood_through_area (area, NULL, lsa);
-  ospf_lsa_maxage (lsa);
+  ospf_lsa_maxage (area->ospf, lsa);
 }
 
 void
-ospf_lsa_flush_as (struct ospf_lsa *lsa)
+ospf_lsa_flush_as (struct ospf *ospf, struct ospf_lsa *lsa)
 {
   lsa->data->ls_age = htons (OSPF_LSA_MAXAGE);
-  ospf_flood_through_as (NULL, lsa);
-  ospf_lsa_maxage (lsa);
-}
-
-/* Flush LSA through AS -- used for AS-external-LSAs. */
-void
-ospf_flush_through_as (struct ospf_lsa *lsa)
-{
-  lsa->data->ls_age = htons (OSPF_LSA_MAXAGE);
-  ospf_flood_through_as (NULL, lsa);
-  ospf_lsa_maxage (lsa);
+  ospf_flood_through_as (ospf, NULL, lsa);
+  ospf_lsa_maxage (ospf, lsa);
 }
diff --git a/ospfd/ospf_interface.c b/ospfd/ospf_interface.c
index d94cdb8..89ee8be 100644
--- a/ospfd/ospf_interface.c
+++ b/ospfd/ospf_interface.c
@@ -32,6 +32,7 @@
 #include "stream.h"
 #include "log.h"
 
+#include "ospfd/ospfd.h"
 #include "ospfd/ospf_spf.h"
 #include "ospfd/ospf_interface.h"
 #include "ospfd/ospf_ism.h"
@@ -42,7 +43,6 @@
 #include "ospfd/ospf_nsm.h"
 #include "ospfd/ospf_packet.h"
 #include "ospfd/ospf_abr.h"
-#include "ospfd/ospfd.h"
 #include "ospfd/ospf_network.h"
 #include "ospfd/ospf_dump.h"
 #ifdef HAVE_SNMP
@@ -58,7 +58,7 @@
   u_int32_t bw, refbw;
 
   bw = oi->ifp->bandwidth ? oi->ifp->bandwidth : OSPF_DEFAULT_BANDWIDTH;
-  refbw = ospf_top ? ospf_top->ref_bandwidth : OSPF_DEFAULT_REF_BANDWIDTH;
+  refbw = oi->ospf->ref_bandwidth;
 
   /* A specifed ip ospf cost overrides a calculated one. */
   if (OSPF_IF_PARAM_CONFIGURED (IF_DEF_PARAMS (oi->ifp), output_cost_cmd) ||
@@ -160,7 +160,7 @@
 }
 
 struct ospf_interface *
-ospf_if_new (struct interface *ifp, struct prefix *p)
+ospf_if_new (struct ospf *ospf, struct interface *ifp, struct prefix *p)
 {
   struct ospf_interface *oi;
 
@@ -172,7 +172,7 @@
   oi->address = p;
   
   ospf_add_to_if (ifp, oi);
-  listnode_add (ospf_top->oiflist, oi);
+  listnode_add (ospf->oiflist, oi);
   
   /* Clear self-originated network-LSA. */
   oi->network_lsa_self = NULL;
@@ -193,7 +193,6 @@
   /* Add pseudo neighbor. */
   oi->nbr_self = ospf_nbr_new (oi);
   oi->nbr_self->state = NSM_TwoWay;
-  /*  oi->nbr_self->router_id = ospf_top->router_id; */
   oi->nbr_self->priority = OSPF_IF_PARAM (oi, priority);
   oi->nbr_self->options = OSPF_OPTION_E;
 
@@ -201,11 +200,13 @@
   oi->t_ls_upd_event = NULL;
   oi->t_ls_ack_direct = NULL;
 
+  oi->crypt_seqnum = time (NULL);
+
 #ifdef HAVE_OPAQUE_LSA
   ospf_opaque_type9_lsa_init (oi);
 #endif /* HAVE_OPAQUE_LSA */
 
-  oi->ospf = ospf_top;
+  oi->ospf = ospf;
   
   return oi;
 }
@@ -307,7 +308,7 @@
   
   ospf_delete_from_if (oi->ifp, oi);
 
-  listnode_delete (ospf_top->oiflist, oi);
+  listnode_delete (oi->ospf->oiflist, oi);
   listnode_delete (oi->area->oiflist, oi);
 
   memset (oi, 0, sizeof (*oi));
@@ -320,13 +321,13 @@
 *  return it if yes.
 */
 struct ospf_interface *
-ospf_if_is_configured (struct in_addr *address)
+ospf_if_is_configured (struct ospf *ospf, struct in_addr *address)
 {
   listnode node;
   struct ospf_interface *oi;
   struct prefix *addr;
   
-  for (node = listhead (ospf_top->oiflist); node; nextnode (node))
+  for (node = listhead (ospf->oiflist); node; nextnode (node))
     if ((oi = getdata (node)) != NULL && oi->type != OSPF_IFTYPE_VIRTUALLINK)
       {
 	if (oi->type == OSPF_IFTYPE_POINTOPOINT)
@@ -348,12 +349,13 @@
 }
 
 struct ospf_interface *
-ospf_if_lookup_by_local_addr (struct interface *ifp, struct in_addr address)
+ospf_if_lookup_by_local_addr (struct ospf *ospf,
+			      struct interface *ifp, struct in_addr address)
 {
   listnode node;
   struct ospf_interface *oi;
   
-  for (node = listhead (ospf_top->oiflist); node; nextnode (node))
+  for (node = listhead (ospf->oiflist); node; nextnode (node))
     if ((oi = getdata (node)) != NULL && oi->type != OSPF_IFTYPE_VIRTUALLINK)
       {
 	if (ifp && oi->ifp != ifp)
@@ -367,34 +369,36 @@
 }
 
 struct ospf_interface *
-ospf_if_lookup_by_prefix (struct prefix_ipv4 *p)
+ospf_if_lookup_by_prefix (struct ospf *ospf, struct prefix_ipv4 *p)
 {
   listnode node;
   struct ospf_interface *oi;
   struct prefix ptmp;
   
   /* Check each Interface. */
-  for (node = listhead (ospf_top->oiflist); node; nextnode (node)) {
-    if ((oi = getdata (node)) != NULL && oi->type != OSPF_IFTYPE_VIRTUALLINK)
-      {
-	if (oi->type == OSPF_IFTYPE_POINTOPOINT) {
-	  prefix_copy (&ptmp, oi->connected->destination);
-	  ptmp.prefixlen = IPV4_MAX_BITLEN;
-	}
-	else
-	  prefix_copy (&ptmp, oi->address);
+  for (node = listhead (ospf->oiflist); node; nextnode (node))
+    {
+      if ((oi = getdata (node)) != NULL && oi->type != OSPF_IFTYPE_VIRTUALLINK)
+	{
+	  if (oi->type == OSPF_IFTYPE_POINTOPOINT)
+	    {
+	      prefix_copy (&ptmp, oi->connected->destination);
+	      ptmp.prefixlen = IPV4_MAX_BITLEN;
+	    }
+	  else
+	    prefix_copy (&ptmp, oi->address);
 	
-	apply_mask (&ptmp);
-	if (prefix_same (&ptmp, (struct prefix *) p))
-	  return oi;
-      }
-  }
+	  apply_mask (&ptmp);
+	  if (prefix_same (&ptmp, (struct prefix *) p))
+	    return oi;
+	}
+    }
   return NULL;
 }
 
 /* determine receiving interface by source of packet */
 struct ospf_interface *
-ospf_if_lookup_recv_interface (struct in_addr src)
+ospf_if_lookup_recv_if (struct ospf *ospf, struct in_addr src)
 {
   listnode node;
   struct prefix_ipv4 addr;
@@ -406,7 +410,7 @@
 
   match = NULL;
 
-  for (node = listhead (ospf_top->oiflist); node; nextnode (node))
+  for (node = listhead (ospf->oiflist); node; nextnode (node))
     {
       oi = getdata (node);
       
@@ -439,6 +443,8 @@
 void
 ospf_if_stream_unset (struct ospf_interface *oi)
 {
+  struct ospf *ospf = oi->ospf;
+
   if (oi->obuf)
     {
      ospf_fifo_free (oi->obuf);
@@ -446,13 +452,14 @@
 
      if (oi->on_write_q)
        {
-	 listnode_delete (ospf_top->oi_write_q, oi);
-         if (list_isempty(ospf_top->oi_write_q))
-           OSPF_TIMER_OFF (ospf_top->t_write);
+	 listnode_delete (ospf->oi_write_q, oi);
+         if (list_isempty(ospf->oi_write_q))
+           OSPF_TIMER_OFF (ospf->t_write);
 	 oi->on_write_q = 0;
        }
     }
 }
+
 
 struct ospf_if_params *
 ospf_new_if_params ()
@@ -662,7 +669,7 @@
   else
     {
       if (oi->type != OSPF_IFTYPE_VIRTUALLINK)
-	ospf_if_add_allspfrouters (ospf_top, oi->address, oi->ifp->ifindex);
+	ospf_if_add_allspfrouters (oi->ospf, oi->address, oi->ifp->ifindex);
       ospf_if_stream_set (oi);
       OSPF_ISM_EVENT_SCHEDULE (oi, ISM_InterfaceUp);
     }
@@ -680,7 +687,7 @@
   /* Shutdown packet reception and sending */
   ospf_if_stream_unset (oi);
   if (oi->type != OSPF_IFTYPE_VIRTUALLINK)
-    ospf_if_drop_allspfrouters (ospf_top, oi->address, oi->ifp->ifindex);
+    ospf_if_drop_allspfrouters (oi->ospf, oi->address, oi->ifp->ifindex);
 
 
   return 1;
@@ -713,7 +720,7 @@
 u_int vlink_count = 0;
 
 struct ospf_interface * 
-ospf_vl_new (struct ospf_vl_data *vl_data)
+ospf_vl_new (struct ospf *ospf, struct ospf_vl_data *vl_data)
 {
   struct ospf_interface * voi;
   struct interface * vi;
@@ -748,7 +755,7 @@
  
   co->address = (struct prefix *)p;
   
-  voi = ospf_if_new (vi, co->address);
+  voi = ospf_if_new (ospf, vi, co->address);
   if (voi == NULL)
     {
       if (IS_DEBUG_OSPF_EVENT)
@@ -768,7 +775,7 @@
     zlog_info ("ospf_vl_new(): set if->name to %s", vi->name);
 
   area_id.s_addr = 0;
-  area = ospf_area_get (area_id, OSPF_AREA_ID_FORMAT_ADDRESS);
+  area = ospf_area_get (ospf, area_id, OSPF_AREA_ID_FORMAT_ADDRESS);
   voi->area = area;
 
   if (IS_DEBUG_OSPF_EVENT)
@@ -800,7 +807,7 @@
   struct ospf_vl_data *vl_data;
   listnode node;
 
-  for (node = listhead (ospf_top->vlinks); node; nextnode (node))
+  for (node = listhead (area->ospf->vlinks); node; nextnode (node))
     if ((vl_data = getdata (node)) != NULL)
       if (vl_data->vl_peer.s_addr == vl_peer.s_addr &&
           IPV4_ADDR_SAME (&vl_data->vl_area_id, &area->area_id))
@@ -826,16 +833,16 @@
 }
 
 void
-ospf_vl_add (struct ospf_vl_data *vl_data)
+ospf_vl_add (struct ospf *ospf, struct ospf_vl_data *vl_data)
 {
-  listnode_add (ospf_top->vlinks, vl_data);
+  listnode_add (ospf->vlinks, vl_data);
 #ifdef HAVE_SNMP
   ospf_snmp_vl_add (vl_data);
 #endif /* HAVE_SNMP */
 }
 
 void
-ospf_vl_delete (struct ospf_vl_data *vl_data)
+ospf_vl_delete (struct ospf *ospf, struct ospf_vl_data *vl_data)
 {
   ospf_vl_shutdown (vl_data);
   ospf_vl_if_delete (vl_data);
@@ -843,7 +850,7 @@
 #ifdef HAVE_SNMP
   ospf_snmp_vl_delete (vl_data);
 #endif /* HAVE_SNMP */
-  listnode_delete (ospf_top->vlinks, vl_data);
+  listnode_delete (ospf->vlinks, vl_data);
 
   ospf_vl_data_free (vl_data);
 }
@@ -899,9 +906,10 @@
 
 
 void
-ospf_vl_up_check (struct ospf_area * area, struct in_addr rid,
+ospf_vl_up_check (struct ospf_area *area, struct in_addr rid,
                   struct vertex *v)
 {
+  struct ospf *ospf = area->ospf;
   listnode node;
   struct ospf_vl_data *vl_data;
   struct ospf_interface *oi;
@@ -913,7 +921,7 @@
       zlog_info ("ospf_vl_up_check(): Area is %s", inet_ntoa (area->area_id));
     }
 
-  for (node = listhead (ospf_top->vlinks); node; nextnode (node))
+  for (node = listhead (ospf->vlinks); node; nextnode (node))
     {
       if ((vl_data = getdata (node)) == NULL)
         continue;
@@ -950,23 +958,23 @@
 }
 
 void
-ospf_vl_unapprove ()
+ospf_vl_unapprove (struct ospf *ospf)
 {
   listnode node;
   struct ospf_vl_data *vl_data;
 
-  for (node = listhead (ospf_top->vlinks); node; nextnode (node))
+  for (node = listhead (ospf->vlinks); node; nextnode (node))
     if ((vl_data = getdata (node)) != NULL)
       UNSET_FLAG (vl_data->flags, OSPF_VL_FLAG_APPROVED);
 }
 
 void
-ospf_vl_shut_unapproved ()
+ospf_vl_shut_unapproved (struct ospf *ospf)
 {
   listnode node;
   struct ospf_vl_data *vl_data;
 
-  for (node = listhead (ospf_top->vlinks); node; nextnode (node))
+  for (node = listhead (ospf->vlinks); node; nextnode (node))
     if ((vl_data = getdata (node)) != NULL)
       if (!CHECK_FLAG (vl_data->flags, OSPF_VL_FLAG_APPROVED))
         ospf_vl_shutdown (vl_data);
@@ -992,7 +1000,7 @@
   struct ospf_vl_data *vl_data;
   int c = 0;
 
-  for (node = listhead (ospf_top->vlinks); node; nextnode (node))
+  for (node = listhead (area->ospf->vlinks); node; nextnode (node))
     if ((vl_data = getdata (node)) != NULL)
       if (IPV4_ADDR_SAME (&vl_data->vl_area_id, &area->area_id))
         c++;
diff --git a/ospfd/ospf_ism.c b/ospfd/ospf_ism.c
index b47487f..5f4d546 100644
--- a/ospfd/ospf_ism.c
+++ b/ospfd/ospf_ism.c
@@ -192,7 +192,7 @@
 
 /* Generate AdjOK? NSM event. */
 void
-ospf_dr_change (struct route_table *nbrs)
+ospf_dr_change (struct ospf *ospf, struct route_table *nbrs)
 {
   struct route_node *rn;
   struct ospf_neighbor *nbr;
@@ -204,7 +204,7 @@
 	/* Is neighbor upper 2-Way? */
 	if (nbr->state >= NSM_TwoWay)
 	  /* Ignore myself. */
-	  if (!IPV4_ADDR_SAME (&nbr->router_id, &ospf_top->router_id))
+	  if (!IPV4_ADDR_SAME (&nbr->router_id, &ospf->router_id))
 	    OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_AdjOK);
 }
 
@@ -252,17 +252,17 @@
   /* if DR or BDR changes, cause AdjOK? neighbor event. */
   if (!IPV4_ADDR_SAME (&old_dr, &DR (oi)) ||
       !IPV4_ADDR_SAME (&old_bdr, &BDR (oi)))
-    ospf_dr_change (oi->nbrs);
+    ospf_dr_change (oi->ospf, oi->nbrs);
 
   if (oi->type == OSPF_IFTYPE_BROADCAST || oi->type == OSPF_IFTYPE_POINTOPOINT)
     {
       /* Multicast group change. */
       if ((old_state != ISM_DR && old_state != ISM_Backup) &&
 	  (new_state == ISM_DR || new_state == ISM_Backup))
-	ospf_if_add_alldrouters (ospf_top, oi->address, oi->ifp->ifindex);
+	ospf_if_add_alldrouters (oi->ospf, oi->address, oi->ifp->ifindex);
       else if ((old_state == ISM_DR || old_state == ISM_Backup) &&
 	       (new_state != ISM_DR && new_state != ISM_Backup))
-	ospf_if_drop_alldrouters (ospf_top, oi->address, oi->ifp->ifindex);
+	ospf_if_drop_alldrouters (oi->ospf, oi->address, oi->ifp->ifindex);
     }
 
   return new_state;
@@ -404,7 +404,7 @@
     next_state = ISM_Waiting;
 
   if (oi->type == OSPF_IFTYPE_NBMA)
-    ospf_nbr_nbma_if_update (oi);
+    ospf_nbr_nbma_if_update (oi->ospf, oi);
 
   /*  ospf_ism_event (t); */
   return next_state;
@@ -582,7 +582,7 @@
   oi->state_change++;
 
   if (old_state == ISM_Down || state == ISM_Down)
-    ospf_check_abr_status();
+    ospf_check_abr_status (oi->ospf);
 
   /* Originate router-LSA. */
   if (oi->area)
@@ -621,7 +621,7 @@
 #endif /* HAVE_OPAQUE_LSA */
 
   /* Check area border status.  */
-  ospf_check_abr_status ();
+  ospf_check_abr_status (oi->ospf);
 }
 
 /* Execute ISM event process. */
diff --git a/ospfd/ospf_lsa.c b/ospfd/ospf_lsa.c
index 9c8cd81..e01dbd0 100644
--- a/ospfd/ospf_lsa.c
+++ b/ospfd/ospf_lsa.c
@@ -394,7 +394,7 @@
 
 void
 lsa_header_set (struct stream *s, u_char options,
-		u_char type, struct in_addr id)
+		u_char type, struct in_addr id, struct in_addr router_id)
 {
   struct lsa_header *lsah;
 
@@ -404,12 +404,13 @@
   lsah->options = options;
   lsah->type = type;
   lsah->id = id;
-  lsah->adv_router = ospf_top->router_id;
+  lsah->adv_router = router_id;
   lsah->ls_seqnum = htonl (OSPF_INITIAL_SEQUENCE_NUMBER);
 
   ospf_output_forward (s, OSPF_LSA_HEADER_SIZE);
 }
 
+
 /* router-LSA related functions. */
 /* Get router-LSA flags. */
 u_char
@@ -417,7 +418,7 @@
 {
   u_char flags;
 
-  flags = ospf_top->flags;
+  flags = area->ospf->flags;
 
   /* Set virtual link flag. */
   if (ospf_full_virtual_nbrs (area))
@@ -428,10 +429,10 @@
 
   /* Set Shortcut ABR behabiour flag. */
   UNSET_FLAG (flags, ROUTER_LSA_SHORTCUT);
-  if (ospf_top->abr_type == OSPF_ABR_SHORTCUT)
+  if (area->ospf->abr_type == OSPF_ABR_SHORTCUT)
     if (!OSPF_IS_AREA_BACKBONE (area))
       if ((area->shortcut_configured == OSPF_SHORTCUT_DEFAULT &&
-	   !ospf_top->backbone) ||
+	   area->ospf->backbone == NULL) ||
 	  area->shortcut_configured == OSPF_SHORTCUT_ENABLE)
 	SET_FLAG (flags, ROUTER_LSA_SHORTCUT);
 
@@ -446,21 +447,23 @@
    And check neighbor count,
    Point-to-Point link must have only 1 neighbor. */
 struct ospf_neighbor *
-ospf_nbr_lookup_ptop (struct route_table *nbrs, struct in_addr router_id)
+ospf_nbr_lookup_ptop (struct ospf_interface *oi)
 {
-  struct route_node *rn;
   struct ospf_neighbor *nbr = NULL;
+  struct route_node *rn;
 
   /* Search neighbor, there must be one of two nbrs. */
-  for (rn = route_top (nbrs); rn; rn = route_next (rn))
-    if ((nbr = rn->info) != NULL)
-      /* Ignore myself. */
-      if (!IPV4_ADDR_SAME (&nbr->router_id, &ospf_top->router_id))
+  for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
+    if ((nbr = rn->info))
+      if (!IPV4_ADDR_SAME (&nbr->router_id, &oi->ospf->router_id))
 	if (nbr->state == NSM_Full)
-	  break;
+	  {
+	    route_unlock_node (rn);
+	    break;
+	  }
 
   /* PtoP link must have only 1 neighbor. */
-  if (ospf_nbr_count (nbrs, 0) > 1)
+  if (ospf_nbr_count (oi, 0) > 1)
     zlog_warn ("Point-to-Point link has more than 1 neighobrs.");
 
   return nbr;
@@ -490,7 +493,7 @@
   if (IS_DEBUG_OSPF (lsa, LSA_GENERATE))
     zlog_info ("LSA[Type1]: Set link Point-to-Point");
 
-  if ((nbr = ospf_nbr_lookup_ptop (oi->nbrs, ospf_top->router_id)))
+  if ((nbr = ospf_nbr_lookup_ptop (oi)))
     if (nbr->state == NSM_Full)
       {
 	/* For unnumbered point-to-point networks, the Link Data field
@@ -545,7 +548,7 @@
   /* Describe Type 2 link. */
   if (dr && (dr->state == NSM_Full ||
 	     IPV4_ADDR_SAME (&oi->address->u.prefix4, &DR (oi))) &&
-      ospf_nbr_count (oi->nbrs, NSM_Full) > 0)
+      ospf_nbr_count (oi, NSM_Full) > 0)
     {
       link_info_set (s, DR (oi), oi->address->u.prefix4,
 		     LSA_LINK_TYPE_TRANSIT, 0, oi->output_cost);
@@ -581,11 +584,8 @@
 {
   struct ospf_neighbor *nbr;
 
-  if (IS_DEBUG_OSPF (lsa, LSA_GENERATE))
-    zlog_info ("LSA[Type1]: Set link type VL, state %d", oi->state);
-
   if (oi->state == ISM_PointToPoint)
-    if ((nbr = ospf_nbr_lookup_ptop (oi->nbrs, ospf_top->router_id)))
+    if ((nbr = ospf_nbr_lookup_ptop (oi)))
       if (nbr->state == NSM_Full)
 	{
 	  link_info_set (s, nbr->router_id, oi->address->u.prefix4,
@@ -602,7 +602,8 @@
 12.4.1.4.*/
 /* from "edward rrr" <edward_rrr@hotmail.com>
    http://marc.theaimsgroup.com/?l=zebra&m=100739222210507&w=2 */
-int lsa_link_ptomultip_set (struct stream *s, struct ospf_interface *oi)
+int
+lsa_link_ptomp_set (struct stream *s, struct ospf_interface *oi)
 {
   int links = 0;
   struct route_node *rn;
@@ -620,11 +621,10 @@
   for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
     if ((nbr = rn->info) != NULL)
       /* Ignore myself. */
-      if (!IPV4_ADDR_SAME (&nbr->router_id, &ospf_top->router_id))
+      if (!IPV4_ADDR_SAME (&nbr->router_id, &oi->ospf->router_id))
 	if (nbr->state == NSM_Full)
 
 	  {
-	    
 	    link_info_set (s, nbr->router_id, oi->address->u.prefix4,
 			   LSA_LINK_TYPE_POINTOPOINT, 0, oi->output_cost);
 	    links++;
@@ -633,7 +633,6 @@
 	  }
   
   return links;
-  
 }
 
 /* Set router-LSA link information. */
@@ -666,7 +665,7 @@
 		  links += lsa_link_nbma_set (s, oi);
 		  break;
 		case OSPF_IFTYPE_POINTOMULTIPOINT:
-		  links += lsa_link_ptomultip_set (s, oi);
+		  links += lsa_link_ptomp_set (s, oi);
 		  break;
 		case OSPF_IFTYPE_VIRTUALLINK:
 		  links += lsa_link_virtuallink_set (s, oi);
@@ -711,6 +710,7 @@
 struct ospf_lsa *
 ospf_router_lsa_new (struct ospf_area *area)
 {
+  struct ospf *ospf = area->ospf;
   struct stream *s;
   struct lsa_header *lsah;
   struct ospf_lsa *new;
@@ -726,11 +726,11 @@
 #ifdef HAVE_NSSA
   /* Set LSA common header fields. */
   lsa_header_set (s, LSA_OPTIONS_GET (area) | LSA_NSSA_GET (area),
-		  OSPF_ROUTER_LSA, ospf_top->router_id);
+		  OSPF_ROUTER_LSA, ospf->router_id, ospf->router_id);
 #else /* ! HAVE_NSSA */
   /* Set LSA common header fields. */
   lsa_header_set (s, LSA_OPTIONS_GET (area),
-		  OSPF_ROUTER_LSA, ospf_top->router_id);
+		  OSPF_ROUTER_LSA, ospf->router_id, ospf->router_id);
 #endif /* HAVE_NSSA */
 
   /* Set router-LSA body fields. */
@@ -772,10 +772,10 @@
     }
 
   /* Install LSA to LSDB. */
-  new = ospf_lsa_install (NULL, new);
+  new = ospf_lsa_install (area->ospf, NULL, new);
 
   /* Update LSA origination count. */
-  ospf_top->lsa_originate_count++;
+  area->ospf->lsa_originate_count++;
 
   /* Flooding new LSA through area. */
   ospf_flood_through_area (area, NULL, new);
@@ -801,13 +801,13 @@
   assert (lsa->data);
 
   /* Delete LSA from neighbor retransmit-list. */
-  ospf_ls_retransmit_delete_nbr_all (area, lsa);
+  ospf_ls_retransmit_delete_nbr_area (area, lsa);
 
   /* Create new router-LSA instance. */
   new = ospf_router_lsa_new (area);
   new->data->ls_seqnum = lsa_seqnum_increment (lsa);
 
-  ospf_lsa_install (NULL, new);
+  ospf_lsa_install (area->ospf, NULL, new);
 
   /* Flood LSA through area. */
   ospf_flood_through_area (area, NULL, new);
@@ -877,16 +877,17 @@
 }
 
 int
-ospf_router_lsa_update_timer (struct thread *t)
+ospf_router_lsa_update_timer (struct thread *thread)
 {
+  struct ospf *ospf = THREAD_ARG (thread);
   listnode node;
 
   if (IS_DEBUG_OSPF (lsa, LSA_GENERATE))
     zlog_info ("Timer[router-LSA Update]: (timer expire)");
 
-  ospf_top->t_router_lsa_update = NULL;
+  ospf->t_router_lsa_update = NULL;
 
-  for (node = listhead (ospf_top->areas); node; nextnode (node))
+  for (node = listhead (ospf->areas); node; nextnode (node))
     {
       struct ospf_area *area = getdata (node);
       struct ospf_lsa *lsa = area->router_lsa_self;
@@ -906,7 +907,7 @@
         }
       /* If router-ID is changed, Link ID must change.
 	 First flush old LSA, then originate new. */
-      else if (!IPV4_ADDR_SAME (&lsa->data->id, &ospf_top->router_id))
+      else if (!IPV4_ADDR_SAME (&lsa->data->id, &ospf->router_id))
 	{
 	  if (IS_DEBUG_OSPF (lsa, LSA_GENERATE))
 	    zlog_info("LSA[Type%d:%s]: Refresh router-LSA for Area %s",
@@ -922,7 +923,7 @@
 	{
 	  rl = (struct router_lsa *) lsa->data;
 	  /* Refresh router-LSA, (not install) and flood through area. */
-	  if (rl->flags != ospf_top->flags)
+	  if (rl->flags != ospf->flags)
 	    ospf_router_lsa_timer_add (area);
 	}
     }
@@ -975,7 +976,7 @@
   lsah = (struct lsa_header *) STREAM_DATA (s);
 
   lsa_header_set (s, (OPTIONS (oi) | LSA_OPTIONS_GET (oi->area)),
-		  OSPF_NETWORK_LSA, DR (oi));
+		  OSPF_NETWORK_LSA, DR (oi), oi->ospf->router_id);
 
   /* Set network-LSA body fields. */
   ospf_network_lsa_body_set (s, oi);
@@ -1009,10 +1010,10 @@
     return NULL;
 
   /* Install LSA to LSDB. */
-  new = ospf_lsa_install (oi, new);
+  new = ospf_lsa_install (oi->ospf, oi, new);
 
   /* Update LSA origination count. */
-  ospf_top->lsa_originate_count++;
+  oi->ospf->lsa_originate_count++;
 
   /* Flooding new LSA through area. */
   ospf_flood_through_area (oi->area, NULL, new);
@@ -1036,7 +1037,7 @@
   assert (lsa->data);
 
   /* Delete LSA from neighbor retransmit-list. */
-  ospf_ls_retransmit_delete_nbr_all (area, lsa);
+  ospf_ls_retransmit_delete_nbr_area (area, lsa);
 
   /* Create new network-LSA instance. */
   new = ospf_network_lsa_new (oi);
@@ -1044,7 +1045,7 @@
     return -1;
   new->data->ls_seqnum = lsa_seqnum_increment (lsa);
 
-  ospf_lsa_install (oi, new);
+  ospf_lsa_install (area->ospf, oi, new);
 
   /* Flood LSA through aera. */
   ospf_flood_through_area (area, NULL, new);
@@ -1159,7 +1160,8 @@
   s = stream_new (OSPF_MAX_LSA_SIZE);
   lsah = (struct lsa_header *) STREAM_DATA (s);
 
-  lsa_header_set (s, LSA_OPTIONS_GET (area), OSPF_SUMMARY_LSA, id);
+  lsa_header_set (s, LSA_OPTIONS_GET (area), OSPF_SUMMARY_LSA,
+		  id, area->ospf->router_id);
 
   /* Set summary-LSA body fields. */
   ospf_summary_lsa_body_set (s, p, metric);
@@ -1189,16 +1191,16 @@
   struct ospf_lsa *new;
   struct in_addr id;
   
-  id = ospf_lsa_unique_id (area->lsdb, OSPF_SUMMARY_LSA, p);
+  id = ospf_lsa_unique_id (area->ospf, area->lsdb, OSPF_SUMMARY_LSA, p);
 
   /* Create new summary-LSA instance. */
   new = ospf_summary_lsa_new (area, (struct prefix *) p, metric, id);
 
   /* Instlal LSA to LSDB. */
-  new = ospf_lsa_install (NULL, new);
+  new = ospf_lsa_install (area->ospf, NULL, new);
 
   /* Update LSA origination count. */
-  ospf_top->lsa_originate_count++;
+  area->ospf->lsa_originate_count++;
 
   /* Flooding new LSA through area. */
   ospf_flood_through_area (area, NULL, new);
@@ -1214,7 +1216,7 @@
 }
 
 struct ospf_lsa*
-ospf_summary_lsa_refresh (struct ospf_lsa *lsa)
+ospf_summary_lsa_refresh (struct ospf *ospf, struct ospf_lsa *lsa)
 {
   struct ospf_lsa *new;
   struct summary_lsa *sl;
@@ -1233,7 +1235,7 @@
   /* Re-calculate checksum. */
   ospf_lsa_checksum (new->data);
 
-  ospf_lsa_install (NULL, new);
+  ospf_lsa_install (ospf, NULL, new);
   
   /* Flood LSA through AS. */
   ospf_flood_through_area (new->area, NULL, new);
@@ -1285,7 +1287,8 @@
   s = stream_new (OSPF_MAX_LSA_SIZE);
   lsah = (struct lsa_header *) STREAM_DATA (s);
 
-  lsa_header_set (s, LSA_OPTIONS_GET (area), OSPF_ASBR_SUMMARY_LSA, id);
+  lsa_header_set (s, LSA_OPTIONS_GET (area), OSPF_ASBR_SUMMARY_LSA,
+		  id, area->ospf->router_id);
 
   /* Set summary-LSA body fields. */
   ospf_summary_asbr_lsa_body_set (s, p, metric);
@@ -1315,16 +1318,16 @@
   struct ospf_lsa *new;
   struct in_addr id;
   
-  id = ospf_lsa_unique_id (area->lsdb, OSPF_ASBR_SUMMARY_LSA, p);
+  id = ospf_lsa_unique_id (area->ospf, area->lsdb, OSPF_ASBR_SUMMARY_LSA, p);
 
   /* Create new summary-LSA instance. */
   new = ospf_summary_asbr_lsa_new (area, (struct prefix *) p, metric, id);
 
   /* Install LSA to LSDB. */
-  new = ospf_lsa_install (NULL, new);
+  new = ospf_lsa_install (area->ospf, NULL, new);
   
   /* Update LSA origination count. */
-  ospf_top->lsa_originate_count++;
+  area->ospf->lsa_originate_count++;
 
   /* Flooding new LSA through area. */
   ospf_flood_through_area (area, NULL, new);
@@ -1340,7 +1343,7 @@
 }
 
 struct ospf_lsa*
-ospf_summary_asbr_lsa_refresh (struct ospf_lsa *lsa)
+ospf_summary_asbr_lsa_refresh (struct ospf *ospf, struct ospf_lsa *lsa)
 {
   struct ospf_lsa *new;
   struct summary_lsa *sl;
@@ -1359,7 +1362,7 @@
   /* Re-calculate checksum. */
   ospf_lsa_checksum (new->data);
 
-  ospf_lsa_install (NULL, new);
+  ospf_lsa_install (ospf, NULL, new);
   
   /* Flood LSA through area. */
   ospf_flood_through_area (new->area, NULL, new);
@@ -1379,11 +1382,10 @@
 /* Get nexthop for AS-external-LSAs.  Return nexthop if its interface
    is connected, else 0*/
 struct in_addr
-ospf_external_lsa_nexthop_get (struct in_addr nexthop)
+ospf_external_lsa_nexthop_get (struct ospf *ospf, struct in_addr nexthop)
 {
   struct in_addr fwd;
   struct prefix nh;
-  /* struct route_node *rn; */
   listnode n1;
 
   fwd.s_addr = 0;
@@ -1396,7 +1398,7 @@
   nh.u.prefix4 = nexthop;
   nh.prefixlen = IPV4_MAX_BITLEN;
 
-  for (n1 = listhead (ospf_top->oiflist); n1; nextnode (n1))
+  for (n1 = listhead (ospf->oiflist); n1; nextnode (n1))
     {
       struct ospf_interface *oi = getdata (n1);
 
@@ -1438,24 +1440,26 @@
   fwd.s_addr = 0;
   best_default.s_addr = 0;
 
-
-  for (n1 = listhead (ospf_top->oiflist); n1; nextnode (n1))
+  for (n1 = listhead (area->ospf->oiflist); n1; nextnode (n1))
     {
       struct ospf_interface *oi = getdata (n1);
 
       if (if_is_operative (oi->ifp))
 	if (oi->area->external_routing == OSPF_AREA_NSSA)
-	  if (oi->address && oi->address->family == AF_INET) {
-	    if (best_default.s_addr == 0) {
-	      best_default = oi->address->u.prefix4;
+	  if (oi->address && oi->address->family == AF_INET)
+	    {
+	      if (best_default.s_addr == 0)
+		best_default = oi->address->u.prefix4;
+	      if (oi->area == area)
+		return oi->address->u.prefix4;
 	    }
-	    if (oi->area == area)
-	      return (oi->address->u.prefix4);
-	  }
     }
   if (best_default.s_addr != 0)
     return best_default;
 
+  if (best_default.s_addr != 0)
+    return best_default;
+
   return fwd;
 }
 #endif /* HAVE_NSSA */
@@ -1467,36 +1471,37 @@
 #define DEFAULT_METRIC_TYPE		     EXTERNAL_METRIC_TYPE_2
 
 int
-metric_type (u_char src)
+metric_type (struct ospf *ospf, u_char src)
 {
-  return (ospf_top->dmetric[src].type < 0 ?
-	  DEFAULT_METRIC_TYPE : ospf_top->dmetric[src].type);
+  return (ospf->dmetric[src].type < 0 ?
+	  DEFAULT_METRIC_TYPE : ospf->dmetric[src].type);
 }
 
 int
-metric_value (u_char src)
+metric_value (struct ospf *ospf, u_char src)
 {
-  if (ospf_top->dmetric[src].value < 0)
+  if (ospf->dmetric[src].value < 0)
     {
       if (src == DEFAULT_ROUTE)
 	{
-	  if (ospf_top->default_originate == DEFAULT_ORIGINATE_ZEBRA)
+	  if (ospf->default_originate == DEFAULT_ORIGINATE_ZEBRA)
 	    return DEFAULT_DEFAULT_ORIGINATE_METRIC;
 	  else
 	    return DEFAULT_DEFAULT_ALWAYS_METRIC;
 	}
-      else if (ospf_top->default_metric < 0)
+      else if (ospf->default_metric < 0)
 	return DEFAULT_DEFAULT_METRIC;
       else
-	return ospf_top->default_metric;
+	return ospf->default_metric;
     }
 
-  return ospf_top->dmetric[src].value;
+  return ospf->dmetric[src].value;
 }
 
 /* Set AS-external-LSA body. */
 void
-ospf_external_lsa_body_set (struct stream *s, struct external_info *ei)
+ospf_external_lsa_body_set (struct stream *s, struct external_info *ei,
+			    struct ospf *ospf)
 {
   struct prefix_ipv4 *p = &ei->p;
   struct in_addr mask, fwd_addr;
@@ -1512,10 +1517,10 @@
   type = is_prefix_default (&ei->p) ? DEFAULT_ROUTE : ei->type;
   
   mtype = (ROUTEMAP_METRIC_TYPE (ei) != -1) ?
-    ROUTEMAP_METRIC_TYPE (ei) : metric_type (type);
+    ROUTEMAP_METRIC_TYPE (ei) : metric_type (ospf, type);
 
   mvalue = (ROUTEMAP_METRIC (ei) != -1) ?
-    ROUTEMAP_METRIC (ei) : metric_value (type);
+    ROUTEMAP_METRIC (ei) : metric_value (ospf, type);
 
   /* Put type of external metric. */
   stream_putc (s, (mtype == EXTERNAL_METRIC_TYPE_2 ? 0x80 : 0));
@@ -1524,7 +1529,7 @@
   stream_put_ospf_metric (s, mvalue);
   
   /* Get forwarding address to nexthop if on the Connection List, else 0. */
-  fwd_addr = ospf_external_lsa_nexthop_get (ei->nexthop);
+  fwd_addr = ospf_external_lsa_nexthop_get (ospf, ei->nexthop);
 
   /* Put forwarding address. */
   stream_put_ipv4 (s, fwd_addr.s_addr);
@@ -1535,7 +1540,8 @@
 
 /* Create new external-LSA. */
 struct ospf_lsa *
-ospf_external_lsa_new (struct external_info *ei, struct in_addr *old_id)
+ospf_external_lsa_new (struct ospf *ospf,
+		       struct external_info *ei, struct in_addr *old_id)
 {
   struct stream *s;
   struct lsa_header *lsah;
@@ -1559,7 +1565,7 @@
   /* Get Link State with unique ID. */
   else
     {
-      id = ospf_lsa_unique_id (ospf_top->lsdb, OSPF_AS_EXTERNAL_LSA, &ei->p);
+      id = ospf_lsa_unique_id (ospf, ospf->lsdb, OSPF_AS_EXTERNAL_LSA, &ei->p);
       if (id.s_addr == 0xffffffff)
 	{
 	  /* Maybe Link State ID not available. */
@@ -1574,10 +1580,11 @@
   lsah = (struct lsa_header *) STREAM_DATA (s);
 
   /* Set LSA common header fields. */
-  lsa_header_set (s, OSPF_OPTION_E, OSPF_AS_EXTERNAL_LSA, id);
+  lsa_header_set (s, OSPF_OPTION_E, OSPF_AS_EXTERNAL_LSA,
+		  id, ospf->router_id);
 
   /* Set AS-external-LSA body fields. */
-  ospf_external_lsa_body_set (s, ei);
+  ospf_external_lsa_body_set (s, ei, ospf);
 
   /* Set length. */
   length = stream_get_endp (s);
@@ -1597,56 +1604,13 @@
 }
 
 #ifdef HAVE_NSSA
-/* Set AS-external-LSA body test. */
-void
-ospf_external_lsa_body_test (struct stream *s)
-{
-  struct in_addr mask, fwd_addr;
-  u_int32_t mvalue = 0;
-  /* int mtype;
-     int type; */
-
-  mask.s_addr = 0;
-  fwd_addr.s_addr = 0;
-
-  /* Put Network Mask. */
-  /* masklen2ip (p->prefixlen, &mask); */
-  stream_put_ipv4 (s, mask.s_addr);
-
-  /* If prefix is default, specify DEFAULT_ROUTE. */
-  /* type = is_prefix_default (&ei->p) ? DEFAULT_ROUTE : ei->type;
-  
-  mtype = (ROUTEMAP_METRIC_TYPE (ei) != -1) ?
-  ROUTEMAP_METRIC_TYPE (ei) : metric_type (type);
-
-  mvalue = (ROUTEMAP_METRIC (ei) != -1) ?
-  ROUTEMAP_METRIC (ei) : metric_value (type); */
-
-  /* Put type of external metric. */
-  stream_putc (s,  0);
-
-  /* Put 0 metric. TOS metric is not supported. */
-  stream_put_ospf_metric (s, mvalue);
-  
- 
-  /*  fwd_addr = ospf_top->router_id; */
-       
-  /* OLD == ospf_external_lsa_nexthop_get (ei->nexthop); */
-
-  /* Put forwarding address. */
-  /* stream_put_ipv4 (s, fwd_addr.s_addr); */
-  stream_put_ipv4 (s, ospf_top->router_id.s_addr);
-  
-  /* Put route tag -- This value should be introduced from configuration. */
-  stream_putl (s, 0);
-}
-
 /* As Type-7 */
 void
-ospf_install_flood_nssa (struct ospf_lsa *lsa, struct external_info *ei)
+ospf_install_flood_nssa (struct ospf *ospf, 
+			 struct ospf_lsa *lsa, struct external_info *ei)
 {
   struct ospf_lsa *new2;
-  struct as_external_lsa *extlsa, *newextlsa;
+  struct as_external_lsa *extlsa;
   listnode node;
 
   /* NSSA Originate or Refresh (If anyNSSA)
@@ -1664,65 +1628,58 @@
   Later, ABR_TASK and P-bit will scan Type-7 LSDB and translate to
   Type-5's to non-NSSA Areas.  (it will also attempt a re-install) */
 
-  for (node = listhead (ospf_top->areas); node; nextnode (node)) {
-  
-  	  struct ospf_area *area = getdata (node);
+  for (node = listhead (ospf->areas); node; nextnode (node))
+    {
+      struct ospf_area *area = getdata (node);
 
-	  /* make lsa duplicate, lock=1 */
-	  new2 = ospf_lsa_dup(lsa);
+      /* make lsa duplicate, lock=1 */
+      new2 = ospf_lsa_dup (lsa);
+      new2->area = area;
+      new2->data->type = OSPF_AS_NSSA_LSA;
 
-	  /* make type-7 */
-	  new2->data->type  = OSPF_AS_NSSA_LSA;
+      /* set P-bit if not ABR */
+      if (! OSPF_IS_ABR)
+        {
+	  SET_FLAG(new2->data->options, OSPF_OPTION_NP);
+       
+	  /* set non-zero FWD ADDR
+       
+	  draft-ietf-ospf-nssa-update-09.txt
+       
+	  if the network between the NSSA AS boundary router and the
+	  adjacent AS is advertised into OSPF as an internal OSPF route,
+	  the forwarding address should be the next op address as is cu
+	  currently done with type-5 LSAs.  If the intervening network is
+	  not adversited into OSPF as an internal OSPF route and the
+	  type-7 LSA's P-bit is set a forwarding address should be
+	  selected from one of the router's active OSPF inteface addresses
+	  which belong to the NSSA.  If no such addresses exist, then
+	  no type-7 LSA's with the P-bit set should originate from this
+	  router.   */
+       
+	  /* kevinm: not updating lsa anymore, just new2 */
+	  extlsa = (struct as_external_lsa *)(new2->data);
+       
+	  if (extlsa->e[0].fwd_addr.s_addr == 0)
+	    extlsa->e[0].fwd_addr = ospf_get_nssa_ip(area); /* this NSSA area in ifp */
 
-	  /* set P-bit if not ABR */
-	  if (! OSPF_IS_ABR)
-	    {
-	      SET_FLAG(new2->data->options, OSPF_OPTION_NP);
-
-	      /* set non-zero FWD ADDR 
-
-	      draft-ietf-ospf-nssa-update-09.txt
-
-	      if the network between the NSSA AS boundary router and the
-	      adjacent AS is advertised into OSPF as an internal OSPF route, 
-	      the forwarding address should be the next op address as is cu
-	      currently done with type-5 LSAs.  If the intervening network is 
-	      not adversited into OSPF as an internal OSPF route and the 
-	      type-7 LSA's P-bit is set a forwarding address should be 
-	      selected from one of the router's active OSPF inteface addresses
-	      which belong to the NSSA.  If no such addresses exist, then
-	      no type-7 LSA's with the P-bit set should originate from this
-	      router.   */
-
-		/* not updating lsa anymore, just new2 */ 
-		extlsa = (struct as_external_lsa *)(new2->data);
-
-	      if (extlsa->e[0].fwd_addr.s_addr == 0) 
-		/* this NSSA area in ifp */
-		extlsa->e[0].fwd_addr = ospf_get_nssa_ip(area); 
-
-	      if (IS_DEBUG_OSPF_NSSA)
-		if (extlsa->e[0].fwd_addr.s_addr == 0) 
-		  {
-		    zlog_info ("LSA[Type-7]: Could not build FWD-ADDR");
-		    ospf_lsa_discard(new2);
-		    return;
-		  }
-	    }
-
-	  /* Re-calculate checksum. */
-	  ospf_lsa_checksum (new2->data);
-
-	  /* install also as Type-7 */
-	  ospf_lsa_install (NULL, new2);   /* Remove Old, Lock New = 2 */
-
-	  /* will send each copy, lock=2+n */
-	  ospf_flood_through_as (NULL, new2); /* all attached NSSA's, no AS/STUBs */
+	  if (IS_DEBUG_OSPF_NSSA)
+	    if (extlsa->e[0].fwd_addr.s_addr == 0) 
+	      {
+		zlog_info ("LSA[Type-7]: Could not build FWD-ADDR");
+		ospf_lsa_discard(new2);
+		return;
+	      }
 	}
+      /* Re-calculate checksum. */
+      ospf_lsa_checksum (new2->data);
 
-  /* last send, lock=2 LSA is now permanent in Type-7 LSDB */
-  /* It has the same ID as it's Type-5 Counter-Part */
- 
+      /* install also as Type-7 */
+      ospf_lsa_install (ospf, NULL, new2);   /* Remove Old, Lock New = 2 */
+
+      /* will send each copy, lock=2+n */
+      ospf_flood_through_as (ospf, NULL, new2); /* all attached NSSA's, no AS/STUBs */
+    }
 }
 #endif /* HAVE_NSSA */
 
@@ -1740,7 +1697,7 @@
 
 /* Originate an AS-external-LSA, install and flood. */
 struct ospf_lsa *
-ospf_external_lsa_originate (struct external_info *ei)
+ospf_external_lsa_originate (struct ospf *ospf, struct external_info *ei)
 {
   struct ospf_lsa *new;
 
@@ -1780,11 +1737,11 @@
      */
   
   /* Check the AS-external-LSA should be originated. */
-  if (!ospf_redistribute_check (ei, NULL))
+  if (!ospf_redistribute_check (ospf, ei, NULL))
     return NULL;
   
   /* Create new AS-external-LSA instance. */
-  if ((new = ospf_external_lsa_new (ei, NULL)) == NULL)
+  if ((new = ospf_external_lsa_new (ospf, ei, NULL)) == NULL)
     {
       if (IS_DEBUG_OSPF_EVENT)
 	zlog_info ("LSA[Type5:%s]: Could not originate AS-external-LSA",
@@ -1793,18 +1750,18 @@
     }
 
   /* Install newly created LSA into Type-5 LSDB, lock = 1. */
-  ospf_lsa_install (NULL, new);
+  ospf_lsa_install (ospf, NULL, new);
 
   /* Update LSA origination count. */
-  ospf_top->lsa_originate_count++;
+  ospf->lsa_originate_count++;
 
   /* Flooding new LSA. only to AS (non-NSSA/STUB) */
-  ospf_flood_through_as (NULL, new);
+  ospf_flood_through_as (ospf, NULL, new);
 
 #ifdef HAVE_NSSA
   /* If there is any attached NSSA, do special handling */
-  if (ospf_top->anyNSSA)
-    ospf_install_flood_nssa (new, ei); /* Install/Flood Type-7 to all NSSAs */
+  if (ospf->anyNSSA)
+    ospf_install_flood_nssa (ospf, new, ei); /* Install/Flood Type-7 to all NSSAs */
 #endif /* HAVE_NSSA */
 
   /* Debug logging. */
@@ -1820,22 +1777,22 @@
 
 /* Originate AS-external-LSA from external info with initial flag. */
 int
-ospf_external_lsa_originate_timer (struct thread *t)
+ospf_external_lsa_originate_timer (struct thread *thread)
 {
+  struct ospf *ospf = THREAD_ARG (thread);
   struct route_node *rn;
   struct external_info *ei;
   struct route_table *rt;
-  int type;
+  int type = THREAD_VAL (thread);
 
-  ospf_top->t_external_lsa = NULL;
-  type = THREAD_VAL (t);
+  ospf->t_external_lsa = NULL;
 
   /* Originate As-external-LSA from all type of distribute source. */
   if ((rt = EXTERNAL_INFO (type)))
     for (rn = route_top (rt); rn; rn = route_next (rn))
       if ((ei = rn->info) != NULL)
 	if (!is_prefix_default ((struct prefix_ipv4 *)&ei->p))
-	  if (!ospf_external_lsa_originate (ei))
+	  if (!ospf_external_lsa_originate (ospf, ei))
 	    zlog_warn ("LSA: AS-external-LSA was not originated.");
   
   return 0;
@@ -1847,6 +1804,7 @@
   int type;
   struct route_node *rn;
   struct prefix_ipv4 p;
+  struct ospf *ospf = ospf_top;
   
   p.family = AF_INET;
   p.prefix.s_addr = 0;
@@ -1861,7 +1819,7 @@
 	  {
 	    route_unlock_node (rn);
 	    assert (rn->info);
-	    if (ospf_redistribute_check (rn->info, NULL))
+	    if (ospf_redistribute_check (ospf, rn->info, NULL))
 	      return rn->info;
 	  }
       }
@@ -1870,15 +1828,16 @@
 }
 
 int
-ospf_default_originate_timer (struct thread *t)
+ospf_default_originate_timer (struct thread *thread)
 {
   int *origin;
   struct prefix_ipv4 p;
   struct in_addr nexthop;
   struct external_info *ei;
+  struct ospf *ospf = ospf_top;
   
   /* Get originate flags. */
-  origin = THREAD_ARG (t);
+  origin = THREAD_ARG (thread);
 
   p.family = AF_INET;
   p.prefix.s_addr = 0;
@@ -1893,14 +1852,15 @@
     }
 
   if ((ei = ospf_default_external_info ()))
-    ospf_external_lsa_originate (ei);
+    ospf_external_lsa_originate (ospf, ei);
   
   return 0;
 }
 
 /* Flush an AS-external-LSA from LSDB and routing domain. */
 void
-ospf_external_lsa_flush (u_char type, struct prefix_ipv4 *p,
+ospf_external_lsa_flush (struct ospf *ospf,
+			 u_char type, struct prefix_ipv4 *p,
 			 unsigned int ifindex, struct in_addr nexthop)
 {
   struct ospf_lsa *lsa;
@@ -1910,7 +1870,7 @@
 	       inet_ntoa (p->prefix), p->prefixlen);
 
   /* First lookup LSA from LSDB. */
-  if (!(lsa = ospf_external_info_find_lsa (p)))
+  if (!(lsa = ospf_external_info_find_lsa (ospf, p)))
     {
       if (IS_DEBUG_OSPF (lsa, LSA_FLOODING))
 	zlog_warn ("LSA: There is no such AS-external-LSA %s/%d in LSDB",
@@ -1919,7 +1879,7 @@
     }
 
   /* Sweep LSA from Link State Retransmit List. */
-  ospf_ls_retransmit_delete_nbr_all (NULL, lsa);
+  ospf_ls_retransmit_delete_nbr_as (ospf, lsa);
 
   /* There must be no self-originated LSA in rtrs_external. */
 #if 0
@@ -1930,10 +1890,10 @@
   if (!IS_LSA_MAXAGE (lsa))
     {
       /* Unregister LSA from Refresh queue. */
-      ospf_refresher_unregister_lsa (ospf_top, lsa);
+      ospf_refresher_unregister_lsa (ospf, lsa);
 
       /* Flush AS-external-LSA through AS. */
-      ospf_flush_through_as (lsa);
+      ospf_lsa_flush_as (ospf, lsa);
     }
 
   if (IS_DEBUG_OSPF (lsa, LSA_FLOODING))
@@ -1941,7 +1901,7 @@
 }
 
 void
-ospf_external_lsa_refresh_default ()
+ospf_external_lsa_refresh_default (struct ospf *ospf)
 {
   struct prefix_ipv4 p;
   struct external_info *ei;
@@ -1952,7 +1912,7 @@
   p.prefix.s_addr = 0;
 
   ei = ospf_default_external_info ();
-  lsa = ospf_external_info_find_lsa (&p);
+  lsa = ospf_external_info_find_lsa (ospf, &p);
 
   if (ei)
     {
@@ -1960,13 +1920,13 @@
 	{
 	  if (IS_DEBUG_OSPF_EVENT)
 	    zlog_info ("LSA[Type5:0.0.0.0]: Refresh AS-external-LSA %p", lsa);
-	  ospf_external_lsa_refresh (lsa, ei, LSA_REFRESH_FORCE);
+	  ospf_external_lsa_refresh (ospf, lsa, ei, LSA_REFRESH_FORCE);
 	}
       else
 	{
 	  if (IS_DEBUG_OSPF_EVENT)
 	    zlog_info ("LSA[Type5:0.0.0.0]: Originate AS-external-LSA");
-	  ospf_external_lsa_originate (ei);
+	  ospf_external_lsa_originate (ospf, ei);
 	}
     }
   else
@@ -1975,13 +1935,13 @@
 	{
 	  if (IS_DEBUG_OSPF_EVENT)
 	    zlog_info ("LSA[Type5:0.0.0.0]: Flush AS-external-LSA");
-	  ospf_lsa_flush_as (lsa);
+	  ospf_lsa_flush_as (ospf, lsa);
 	}
     }
 }
 
 void
-ospf_external_lsa_refresh_type (u_char type, int force)
+ospf_external_lsa_refresh_type (struct ospf *ospf, u_char type, int force)
 {
   struct route_node *rn;
   struct external_info *ei;
@@ -1995,25 +1955,26 @@
 	    {
 	      struct ospf_lsa *lsa;
 
-	      if ((lsa = ospf_external_info_find_lsa (&ei->p)))
-		ospf_external_lsa_refresh (lsa, ei, force);
+	      if ((lsa = ospf_external_info_find_lsa (ospf, &ei->p)))
+		ospf_external_lsa_refresh (ospf, lsa, ei, force);
 	      else
-		ospf_external_lsa_originate (ei);
+		ospf_external_lsa_originate (ospf, ei);
 	    }
 }
 
 /* Refresh AS-external-LSA. */
 void
-ospf_external_lsa_refresh (struct ospf_lsa *lsa,
+ospf_external_lsa_refresh (struct ospf *ospf, struct ospf_lsa *lsa,
 			   struct external_info *ei, int force)
 {
   struct ospf_lsa *new;
   int changed;
   
   /* Check the AS-external-LSA should be originated. */
-  if (!ospf_redistribute_check (ei, &changed))
+  if (!ospf_redistribute_check (ospf, ei, &changed))
     {
-      ospf_external_lsa_flush (ei->type, &ei->p, ei->ifindex, ei->nexthop);
+      ospf_external_lsa_flush (ospf, ei->type, &ei->p,
+			       ei->ifindex, ei->nexthop);
       return;
     }
 
@@ -2021,12 +1982,12 @@
     return;
 
   /* Delete LSA from neighbor retransmit-list. */
-  ospf_ls_retransmit_delete_nbr_all (NULL, lsa);
+  ospf_ls_retransmit_delete_nbr_as (ospf, lsa);
 
   /* Unregister AS-external-LSA from refresh-list. */
-  ospf_refresher_unregister_lsa (ospf_top, lsa);
+  ospf_refresher_unregister_lsa (ospf, lsa);
 
-  new = ospf_external_lsa_new (ei, &lsa->data->id);
+  new = ospf_external_lsa_new (ospf, ei, &lsa->data->id);
   
   if (new == NULL)
     {
@@ -2044,19 +2005,19 @@
   /* Re-calculate checksum. */
   ospf_lsa_checksum (new->data);
 
-  ospf_lsa_install (NULL, new);	/* As type-5. */
+  ospf_lsa_install (ospf, NULL, new);	/* As type-5. */
 
   /* Flood LSA through AS. */
-  ospf_flood_through_as (NULL, new);
+  ospf_flood_through_as (ospf, NULL, new);
 
 #ifdef HAVE_NSSA
   /* If any attached NSSA, install as Type-7, flood to all NSSA Areas */
-  if (ospf_top->anyNSSA)
-    ospf_install_flood_nssa (new, ei); /* Install/Flood per new rules */
+  if (ospf->anyNSSA)
+    ospf_install_flood_nssa (ospf, new, ei); /* Install/Flood per new rules */
 #endif /* HAVE_NSSA */
 
   /* Register slef-originated LSA to refresh queue. */
-  ospf_refresher_register_lsa (ospf_top, new);
+  ospf_refresher_register_lsa (ospf, new);
 
   /* Debug logging. */
   if (IS_DEBUG_OSPF (lsa, LSA_GENERATE))
@@ -2074,7 +2035,8 @@
 
 /* Install router-LSA to an area. */
 struct ospf_lsa *
-ospf_router_lsa_install (struct ospf_lsa *new, int rt_recalc)
+ospf_router_lsa_install (struct ospf *ospf,
+			 struct ospf_lsa *new, int rt_recalc)
 {
   struct ospf_area *area = new->area;
 
@@ -2084,7 +2046,7 @@
      area whose link-state database has changed). 
   */
   if (rt_recalc)
-    ospf_spf_calculate_schedule();
+    ospf_spf_calculate_schedule (ospf);
 
   if (IS_LSA_SELF (new))
     {
@@ -2111,7 +2073,8 @@
 
 /* Install network-LSA to an area. */
 struct ospf_lsa *
-ospf_network_lsa_install (struct ospf_interface *oi, 
+ospf_network_lsa_install (struct ospf *ospf,
+			  struct ospf_interface *oi, 
 			  struct ospf_lsa *new,
 			  int rt_recalc)
 {
@@ -2122,7 +2085,7 @@
      area whose link-state database has changed). 
   */
   if (rt_recalc)
-    ospf_spf_calculate_schedule();
+    ospf_spf_calculate_schedule (ospf);
 
   /* We supposed that when LSA is originated by us, we pass the int
      for which it was originated. If LSA was received by flooding,
@@ -2145,9 +2108,9 @@
 
 /* Install summary-LSA to an area. */
 struct ospf_lsa *
-ospf_summary_lsa_install (struct ospf_lsa *new, int rt_recalc)
+ospf_summary_lsa_install (struct ospf *ospf, struct ospf_lsa *new,
+			  int rt_recalc)
 {
-
   if (rt_recalc && !IS_LSA_SELF (new))
     {
       /* RFC 2328 Section 13.2 Summary-LSAs
@@ -2161,7 +2124,7 @@
       /* This doesn't exist yet... */
       ospf_summary_incremental_update(new); */
 #else /* #if 0 */
-      ospf_spf_calculate_schedule();
+      ospf_spf_calculate_schedule (ospf);
 #endif /* #if 0 */
  
       if (IS_DEBUG_OSPF (lsa, LSA_INSTALL))
@@ -2169,14 +2132,15 @@
     }
 
   if (IS_LSA_SELF (new))
-    ospf_refresher_register_lsa (ospf_top, new);
+    ospf_refresher_register_lsa (ospf, new);
 
   return new;
 }
 
 /* Install ASBR-summary-LSA to an area. */
 struct ospf_lsa *
-ospf_summary_asbr_lsa_install (struct ospf_lsa *new, int rt_recalc)
+ospf_summary_asbr_lsa_install (struct ospf *ospf, struct ospf_lsa *new,
+			       int rt_recalc)
 {
   if (rt_recalc && !IS_LSA_SELF (new))
     {
@@ -2193,22 +2157,23 @@
 	 - RFC 2328 Section 16.5 implies it should be */
       /* ospf_ase_calculate_schedule(); */
 #else  /* #if 0 */
-      ospf_spf_calculate_schedule();
+      ospf_spf_calculate_schedule (ospf);
 #endif /* #if 0 */
     }
 
   /* register LSA to refresh-list. */
   if (IS_LSA_SELF (new))
-    ospf_refresher_register_lsa (ospf_top, new);
+    ospf_refresher_register_lsa (ospf, new);
 
   return new;
 }
 
 /* Install AS-external-LSA. */
 struct ospf_lsa *
-ospf_external_lsa_install (struct ospf_lsa *new, int rt_recalc)
+ospf_external_lsa_install (struct ospf *ospf, struct ospf_lsa *new,
+			   int rt_recalc)
 {
-  ospf_ase_register_external_lsa (new, ospf_top);
+  ospf_ase_register_external_lsa (new, ospf);
   /* If LSA is not self-originated, calculate an external route. */
   if (rt_recalc)
     {
@@ -2218,18 +2183,19 @@
       */
 
       if (!IS_LSA_SELF (new))
-	ospf_ase_incremental_update (new, ospf_top);
+	ospf_ase_incremental_update (ospf, new);
     }
 
   /* Register self-originated LSA to refresh queue. */
   if (IS_LSA_SELF (new))
-    ospf_refresher_register_lsa (ospf_top, new);
+    ospf_refresher_register_lsa (ospf, new);
 
   return new;
 }
 
 void
-ospf_discard_from_db (struct ospf_lsdb *lsdb, struct ospf_lsa *lsa)
+ospf_discard_from_db (struct ospf *ospf,
+		      struct ospf_lsdb *lsdb, struct ospf_lsa *lsa)
 {
   struct ospf_lsa *old;
   
@@ -2239,9 +2205,7 @@
     return;
 
   if (old->refresh_list >= 0)
-    ospf_refresher_unregister_lsa (ospf_top, old);
-
-  ospf_ls_retransmit_delete_nbr_all (old->area, old);
+    ospf_refresher_unregister_lsa (ospf, old);
 
   switch (old->data->type)
     {
@@ -2249,31 +2213,21 @@
 #ifdef HAVE_OPAQUE_LSA
     case OSPF_OPAQUE_AS_LSA:
 #endif /* HAVE_OPAQUE_LSA */
-      ospf_ase_unregister_external_lsa (old, ospf_top);
+      ospf_ls_retransmit_delete_nbr_as (ospf, old);
+      ospf_ase_unregister_external_lsa (old, ospf);
       break;
     default:
+      ospf_ls_retransmit_delete_nbr_area (old->area, old);
       break;
     }
 
-  ospf_lsa_maxage_delete (old);
+  ospf_lsa_maxage_delete (ospf, old);
   ospf_lsa_discard (old);
 }
 
-/* callback for foreach_lsa */
-int
-ospf_lsa_discard_callback (struct ospf_lsa *lsa, void *p, int i)
-{
-#ifdef HAVE_NSSA
-  /* Removed: Stay away from any Local Translated Type-7 LSAs */
-  /* if (CHECK_FLAG (lsa->flags, OSPF_LSA_LOCAL_XLT))
-     return 0; */
-#endif /* HAVE_NSSA */
-  ospf_discard_from_db ((struct ospf_lsdb *)p, lsa);
-  return 0;
-}
-
 struct ospf_lsa *
-ospf_lsa_install (struct ospf_interface *oi, struct ospf_lsa *lsa)
+ospf_lsa_install (struct ospf *ospf, struct ospf_interface *oi,
+		  struct ospf_lsa *lsa)
 {
   struct ospf_lsa *new = NULL;
   struct ospf_lsa *old = NULL;
@@ -2283,34 +2237,26 @@
   /* Set LSDB. */
   switch (lsa->data->type)
     {
+#ifdef HAVE_NSSA
       /* kevinm */
     case OSPF_AS_NSSA_LSA:
       if (lsa->area)
 	lsdb = lsa->area->lsdb;
       else
-	lsdb = ospf_top->lsdb;
+	lsdb = ospf->lsdb;
       break;
+#endif /* HAVE_NSSA */
     case OSPF_AS_EXTERNAL_LSA:
 #ifdef HAVE_OPAQUE_LSA
     case OSPF_OPAQUE_AS_LSA:
 #endif /* HAVE_OPAQUE_LSA */
-      lsdb = ospf_top->lsdb;
+      lsdb = ospf->lsdb;
       break;
     default:
       lsdb = lsa->area->lsdb;
       break;
     }
 
-#ifdef HAVE_NSSA
-  if (IS_DEBUG_OSPF_NSSA)
-    {
-      zlog_info ("LSA[Installing]: Type-%d ", lsa->data->type);
-
-      if  (lsa->data->type == OSPF_AS_NSSA_LSA )
-	zlog_info ("NSSA LSA AREA = %s", inet_ntoa (lsa->area->area_id));
-    }
-#endif /* HAVE_NSSA */
-
   assert (lsdb);
 
   /*  RFC 2328 13.2.  Installing LSAs in the database
@@ -2346,7 +2292,7 @@
 
   /* discard old LSA from LSDB */
   if (old != NULL)
-    ospf_discard_from_db (lsdb, lsa);
+    ospf_discard_from_db (ospf, lsdb, lsa);
 
   /* Insert LSA to LSDB. */
   ospf_lsdb_add (lsdb, lsa);
@@ -2360,27 +2306,27 @@
   switch (lsa->data->type)
     {
     case OSPF_ROUTER_LSA:
-      new = ospf_router_lsa_install (lsa, rt_recalc);
+      new = ospf_router_lsa_install (ospf, lsa, rt_recalc);
       break;
     case OSPF_NETWORK_LSA:
       assert (oi);
-      new = ospf_network_lsa_install (oi, lsa, rt_recalc);
+      new = ospf_network_lsa_install (ospf, oi, lsa, rt_recalc);
       break;
     case OSPF_SUMMARY_LSA:
-      new = ospf_summary_lsa_install (lsa, rt_recalc);
+      new = ospf_summary_lsa_install (ospf, lsa, rt_recalc);
       break;
     case OSPF_ASBR_SUMMARY_LSA:
-      new = ospf_summary_asbr_lsa_install (lsa, rt_recalc);
+      new = ospf_summary_asbr_lsa_install (ospf, lsa, rt_recalc);
       break;
     case OSPF_AS_EXTERNAL_LSA:
-      new = ospf_external_lsa_install (lsa, rt_recalc);
+      new = ospf_external_lsa_install (ospf, lsa, rt_recalc);
       break;
 #ifdef HAVE_OPAQUE_LSA
     case OSPF_OPAQUE_LINK_LSA:
       if (IS_LSA_SELF (lsa))
-          lsa->oi = oi; /* Specify outgoing ospf-interface for this LSA. */
+	lsa->oi = oi; /* Specify outgoing ospf-interface for this LSA. */
       else
-          ; /* Incoming "oi" for this LSA has set at LSUpd reception. */
+	; /* Incoming "oi" for this LSA has set at LSUpd reception. */
       /* Fallthrough */
     case OSPF_OPAQUE_AREA_LSA:
     case OSPF_OPAQUE_AS_LSA:
@@ -2389,7 +2335,7 @@
 #endif /* HAVE_OPAQUE_LSA */
     default: /* NSSA, or type-6,8,9....nothing special */
 #ifdef HAVE_NSSA
-      new = ospf_external_lsa_install (lsa, rt_recalc);
+      new = ospf_external_lsa_install (ospf, lsa, rt_recalc);
 #endif /* HAVE_NSSA */
       break;
     }
@@ -2410,7 +2356,7 @@
 #endif /* HAVE_OPAQUE_LSA */
 #ifdef HAVE_NSSA
 	case OSPF_AS_NSSA_LSA:
-#endif
+#endif /* HAVE_NSSA */
           zlog_info ("LSA[%s]: Install %s",
                  dump_lsa_key (new),
                  LOOKUP (ospf_lsa_type_msg, new->data->type));
@@ -2430,7 +2376,7 @@
       if (IS_DEBUG_OSPF (lsa, LSA_FLOODING))
 	zlog_info ("LSA[Type%d:%s]: Install LSA, MaxAge",
 		   new->data->type, inet_ntoa (new->data->id));
-      ospf_lsa_maxage (lsa);
+      ospf_lsa_maxage (ospf, lsa);
     }
 
   return new;
@@ -2438,11 +2384,11 @@
 
 
 int
-ospf_check_nbr_status ()
+ospf_check_nbr_status (struct ospf *ospf)
 {
   listnode node;
 
-  for (node = listhead (ospf_top->oiflist); node; node = nextnode (node))
+  for (node = listhead (ospf->oiflist); node; node = nextnode (node))
     {
       struct ospf_interface *oi = getdata (node);
       struct route_node *rn;
@@ -2497,19 +2443,20 @@
 int
 ospf_maxage_lsa_remover (struct thread *thread)
 {
+  struct ospf *ospf = THREAD_ARG (thread);
   listnode node;
   listnode next;
   int reschedule = 0;
 
-  ospf_top->t_maxage = NULL;
+  ospf->t_maxage = NULL;
 
   if (IS_DEBUG_OSPF (lsa, LSA_FLOODING))
     zlog_info ("LSA[MaxAge]: remover Start");
 
-  reschedule = !ospf_check_nbr_status ();
+  reschedule = !ospf_check_nbr_status (ospf);
 
   if (!reschedule)
-    for (node = listhead (ospf_top->maxage_lsa); node; node = next)
+    for (node = listhead (ospf->maxage_lsa); node; node = next)
       {
         struct ospf_lsa *lsa = getdata (node);
         next = node->next;
@@ -2534,11 +2481,11 @@
 #ifdef ORIGINAL_CODING
 	ospf_maxage_flood (lsa);
 #else /* ORIGINAL_CODING */
-        ospf_flood_through (NULL, lsa);
+        ospf_flood_through (ospf, NULL, lsa);
 #endif /* ORIGINAL_CODING */
 
 	/* Remove from lsdb. */
-        ospf_discard_from_db (lsa->lsdb, lsa);
+        ospf_discard_from_db (ospf, lsa->lsdb, lsa);
         ospf_lsdb_delete (lsa->lsdb, lsa);
       }
 
@@ -2547,17 +2494,17 @@
         neighbor Link state retransmission lists and b) none of the router's
         neighbors are in states Exchange or Loading. */
   if (reschedule)
-    OSPF_SCHEDULE_MAXAGE (ospf_top->t_maxage, ospf_maxage_lsa_remover);
+    OSPF_TIMER_ON (ospf->t_maxage, ospf_maxage_lsa_remover, 2);
 
   return 0;
 }
 
 int
-ospf_lsa_maxage_exist (struct ospf_lsa *new)
+ospf_lsa_maxage_exist (struct ospf *ospf, struct ospf_lsa *new)
 {
   listnode node;
 
-  for (node = listhead (ospf_top->maxage_lsa); node; nextnode (node))
+  for (node = listhead (ospf->maxage_lsa); node; nextnode (node))
     if (((struct ospf_lsa *) node->data) == new)
       return 1;
 
@@ -2565,23 +2512,23 @@
 }
 
 void
-ospf_lsa_maxage_delete (struct ospf_lsa *lsa)
+ospf_lsa_maxage_delete (struct ospf *ospf, struct ospf_lsa *lsa)
 {
   listnode n;
 
-  if ((n = listnode_lookup (ospf_top->maxage_lsa, lsa)))
+  if ((n = listnode_lookup (ospf->maxage_lsa, lsa)))
     {
-      list_delete_node (ospf_top->maxage_lsa, n);
+      list_delete_node (ospf->maxage_lsa, n);
       ospf_lsa_unlock (lsa);
     }
 }
 
 void
-ospf_lsa_maxage (struct ospf_lsa *lsa)
+ospf_lsa_maxage (struct ospf *ospf, struct ospf_lsa *lsa)
 {
   /* When we saw a MaxAge LSA flooded to us, we put it on the list
      and schedule the MaxAge LSA remover. */
-  if (ospf_lsa_maxage_exist (lsa))
+  if (ospf_lsa_maxage_exist (ospf, lsa))
     {
       if (IS_DEBUG_OSPF (lsa, LSA_FLOODING))
 	zlog_info ("LSA[Type%d:%s]: %p already exists on MaxAge LSA list",
@@ -2589,16 +2536,16 @@
       return;
     }
 
-  listnode_add (ospf_top->maxage_lsa, ospf_lsa_lock (lsa));
+  listnode_add (ospf->maxage_lsa, ospf_lsa_lock (lsa));
 
   if (IS_DEBUG_OSPF (lsa, LSA_FLOODING))
     zlog_info ("LSA[%s]: MaxAge LSA remover scheduled.", dump_lsa_key (lsa));
 
-  OSPF_SCHEDULE_MAXAGE (ospf_top->t_maxage, ospf_maxage_lsa_remover);
+  OSPF_TIMER_ON (ospf->t_maxage, ospf_maxage_lsa_remover, 2);
 }
 
 int
-ospf_lsa_maxage_walker_remover (struct ospf_lsa *lsa, void *p_arg, int int_arg)
+ospf_lsa_maxage_walker_remover (struct ospf *ospf, struct ospf_lsa *lsa)
 {
 #ifdef HAVE_NSSA
   /* Stay away from any Local Translated Type-7 LSAs */
@@ -2609,7 +2556,7 @@
   if (IS_LSA_MAXAGE (lsa))
     /* Self-originated LSAs should NOT time-out instead,
        they're flushed and submitted to the max_age list explicitly. */
-    if (!ospf_lsa_is_self_originated (lsa))
+    if (!ospf_lsa_is_self_originated (ospf, lsa))
       {
 	if (IS_DEBUG_OSPF (lsa, LSA_FLOODING))
 	  zlog_info("LSA[%s]: is MaxAge", dump_lsa_key (lsa));
@@ -2630,18 +2577,17 @@
              */
             break;
 #endif /* HAVE_OPAQUE_LSA */
-#ifdef HAVE_NSSA
-	      case OSPF_AS_NSSA_LSA:
-#endif
           case OSPF_AS_EXTERNAL_LSA:
-	       ospf_ase_incremental_update (lsa, ospf_top);
-           break;
+#ifdef HAVE_NSSA
+	  case OSPF_AS_NSSA_LSA:
+#endif /* HAVE_NSSA */
+	    ospf_ase_incremental_update (ospf, lsa);
+            break;
           default:
-	       ospf_spf_calculate_schedule ();
-           break;
+	    ospf_spf_calculate_schedule (ospf);
+            break;
           }
-
-	   ospf_lsa_maxage (lsa);
+	ospf_lsa_maxage (ospf, lsa);
       }
 
   return 0;
@@ -2649,90 +2595,80 @@
 
 /* Periodical check of MaxAge LSA. */
 int
-ospf_lsa_maxage_walker (struct thread *t)
+ospf_lsa_maxage_walker (struct thread *thread)
 {
+  struct ospf *ospf = THREAD_ARG (thread);
+  struct route_node *rn;
+  struct ospf_lsa *lsa;
   listnode node;
 
-  ospf_top->t_maxage_walker = NULL;
+  ospf->t_maxage_walker = NULL;
 
-  for (node = listhead (ospf_top->areas); node; nextnode (node))
+  for (node = listhead (ospf->areas); node; nextnode (node))
     {
       struct ospf_area *area = node->data;
 
-      foreach_lsa (ROUTER_LSDB (area), NULL, 0,
-		   ospf_lsa_maxage_walker_remover);
-      foreach_lsa (NETWORK_LSDB (area), NULL, 0,
-		   ospf_lsa_maxage_walker_remover);
-      foreach_lsa (SUMMARY_LSDB (area), NULL, 0,
-		   ospf_lsa_maxage_walker_remover);
-      foreach_lsa (ASBR_SUMMARY_LSDB (area), NULL, 0,
-		   ospf_lsa_maxage_walker_remover);
+      LSDB_LOOP (ROUTER_LSDB (area), rn, lsa)
+	ospf_lsa_maxage_walker_remover (ospf, lsa);
+      LSDB_LOOP (NETWORK_LSDB (area), rn, lsa)
+	ospf_lsa_maxage_walker_remover (ospf, lsa);
+      LSDB_LOOP (SUMMARY_LSDB (area), rn, lsa)
+	ospf_lsa_maxage_walker_remover (ospf, lsa);
+      LSDB_LOOP (ASBR_SUMMARY_LSDB (area), rn, lsa)
+	ospf_lsa_maxage_walker_remover (ospf, lsa);
 #ifdef HAVE_OPAQUE_LSA
-      foreach_lsa (OPAQUE_LINK_LSDB (area), NULL, 0,
-		   ospf_lsa_maxage_walker_remover);
-      foreach_lsa (OPAQUE_AREA_LSDB (area), NULL, 0,
-		   ospf_lsa_maxage_walker_remover);
+      LSDB_LOOP (OPAQUE_AREA_LSDB (area), rn, lsa)
+	ospf_lsa_maxage_walker_remover (ospf, lsa);
+      LSDB_LOOP (OPAQUE_LINK_LSDB (area), rn, lsa)
+	ospf_lsa_maxage_walker_remover (ospf, lsa);
 #endif /* HAVE_OPAQUE_LSA */
     }
 
   /* for AS-eternal-LSAs. */
-  if (ospf_top->lsdb)
-    foreach_lsa (EXTERNAL_LSDB (ospf_top), NULL, 0,
-		 ospf_lsa_maxage_walker_remover);
-
+  if (ospf->lsdb)
+    {
+      LSDB_LOOP (EXTERNAL_LSDB (ospf), rn, lsa)
+	ospf_lsa_maxage_walker_remover (ospf, lsa);
 #ifdef HAVE_OPAQUE_LSA
-  if (ospf_top->lsdb)
-    foreach_lsa (OPAQUE_AS_LSDB (ospf_top), NULL, 0,
-		 ospf_lsa_maxage_walker_remover);
+      LSDB_LOOP (OPAQUE_AS_LSDB (ospf), rn, lsa)
+	ospf_lsa_maxage_walker_remover (ospf, lsa);
 #endif /* HAVE_OPAQUE_LSA */
+    }
 
-  ospf_top->t_maxage_walker = 
-    thread_add_timer (master, ospf_lsa_maxage_walker, NULL,
-                      OSPF_LSA_MAXAGE_CHECK_INTERVAL);
+  OSPF_TIMER_ON (ospf->t_maxage_walker, ospf_lsa_maxage_walker,
+		 OSPF_LSA_MAXAGE_CHECK_INTERVAL);
   return 0;
 }
 
-int
-find_summary (struct ospf_lsa *lsa, void * v, int i)
+struct ospf_lsa *
+ospf_lsa_lookup_by_prefix (struct ospf_lsdb *lsdb, u_char type,
+			   struct prefix_ipv4 *p, struct in_addr router_id)
 {
-  struct prefix_ipv4 *p, pr;
+  struct ospf_lsa *lsa;
+  struct in_addr mask, id;
+  struct lsa_header_mask
+  {
+    struct lsa_header header;
+    struct in_addr mask;
+  } *hmask;
 
-  if ((p = (struct prefix_ipv4 *) v) != NULL)
-    if (lsa != NULL)
-      /* We're looking for self-originated one */
-      if (ospf_lsa_is_self_originated (lsa))
-	{
-	  struct summary_lsa *sl = (struct summary_lsa *) lsa->data;
+  lsa = ospf_lsdb_lookup_by_id (lsdb, type, p->prefix, router_id);
+  if (lsa == NULL)
+    return NULL;
 
-	  pr.family = AF_INET;
-	  pr.prefix = sl->header.id;
-	  pr.prefixlen = ip_masklen (sl->mask);
-	  apply_mask_ipv4 (&pr);
+  masklen2ip (p->prefixlen, &mask);
 
-	  if (prefix_same ((struct prefix*) &pr, (struct prefix*) p))
-	    return 1;
-	}
+  hmask = (struct lsa_header_mask *) lsa->data;
 
-  return 0;
-}
+  if (mask.s_addr != hmask->mask.s_addr)
+    {
+      id.s_addr = p->prefix.s_addr | (~mask.s_addr);
+      lsa = ospf_lsdb_lookup_by_id (lsdb, type, id, router_id);
+      if (!lsa)
+        return NULL;
+    }
 
-int
-find_asbr_summary (struct ospf_lsa *lsa, void * v, int i)
-{
-  struct prefix_ipv4 *p;
-
-  if ((p = (struct prefix_ipv4 *) v) != NULL)
-    if (lsa != NULL)
-      /* We're looking for self-originated one */
-      if (ospf_lsa_is_self_originated (lsa))
-	{
-	  struct summary_lsa *sl = (struct summary_lsa *) lsa->data;
-
-	  if (IPV4_ADDR_SAME (&p->prefix, &sl->header.id))
-	    return 1;
-	}
-
-  return 0;
+  return lsa;
 }
 
 struct ospf_lsa *
@@ -2956,7 +2892,7 @@
 }
 #else /* ORIGINAL_CODING */
 static int
-ospf_lsa_flush_schedule (struct ospf_lsa *lsa, void *v, int i)
+ospf_lsa_flush_schedule (struct ospf *ospf, struct ospf_lsa *lsa)
 {
   if (lsa == NULL || !IS_LSA_SELF (lsa))
     return 0;
@@ -2977,7 +2913,7 @@
       break;
 #endif /* HAVE_OPAQUE_LSA */
     default:
-      ospf_lsa_maxage (lsa);
+      ospf_lsa_maxage (ospf, lsa);
       break;
     }
 
@@ -2985,15 +2921,16 @@
 }
 
 void
-ospf_flush_self_originated_lsas_now (struct ospf *top)
+ospf_flush_self_originated_lsas_now (struct ospf *ospf)
 {
   listnode n1, n2;
   struct ospf_area *area;
   struct ospf_interface *oi;
   struct ospf_lsa *lsa;
+  struct route_node *rn;
   int need_to_flush_ase = 0;
 
-  for (n1 = listhead (top->areas); n1; nextnode (n1))
+  for (n1 = listhead (ospf->areas); n1; nextnode (n1))
     {
       if ((area = getdata (n1)) == NULL)
         continue;
@@ -3032,22 +2969,25 @@
             need_to_flush_ase = 1;
         }
 
-      foreach_lsa (SUMMARY_LSDB (area), NULL, 0, ospf_lsa_flush_schedule);
-      foreach_lsa (ASBR_SUMMARY_LSDB (area), NULL, 0, ospf_lsa_flush_schedule);
+      LSDB_LOOP (SUMMARY_LSDB (area), rn, lsa)
+	ospf_lsa_flush_schedule (ospf, lsa);
+      LSDB_LOOP (ASBR_SUMMARY_LSDB (area), rn, lsa)
+	ospf_lsa_flush_schedule (ospf, lsa);
 #ifdef HAVE_OPAQUE_LSA
-      foreach_lsa (OPAQUE_LINK_LSDB (area),
-                   NULL, 0, ospf_lsa_flush_schedule);
-      foreach_lsa (OPAQUE_AREA_LSDB (area),
-                   NULL, 0, ospf_lsa_flush_schedule);
+      LSDB_LOOP (OPAQUE_LINK_LSDB (area), rn, lsa)
+	ospf_lsa_flush_schedule (ospf, lsa);
+      LSDB_LOOP (OPAQUE_AREA_LSDB (area), rn, lsa)
+	ospf_lsa_flush_schedule (ospf, lsa);
 #endif /* HAVE_OPAQUE_LSA */
     }
 
   if (need_to_flush_ase)
     {
-        foreach_lsa (EXTERNAL_LSDB (top), NULL, 0, ospf_lsa_flush_schedule);
+      LSDB_LOOP (EXTERNAL_LSDB (ospf), rn, lsa)
+	ospf_lsa_flush_schedule (ospf, lsa);
 #ifdef HAVE_OPAQUE_LSA
-        foreach_lsa (OPAQUE_AS_LSDB (top),
-                     NULL, 0, ospf_lsa_flush_schedule);
+      LSDB_LOOP (OPAQUE_AS_LSDB (ospf), rn, lsa)
+	ospf_lsa_flush_schedule (ospf, lsa);
 #endif /* HAVE_OPAQUE_LSA */
     }
 
@@ -3055,10 +2995,10 @@
    * Make sure that the MaxAge LSA remover is executed immediately,
    * without conflicting to other threads.
    */
-  if (top->t_maxage != NULL)
+  if (ospf->t_maxage != NULL)
     {
-      OSPF_TIMER_OFF (top->t_maxage);
-      thread_execute (master, ospf_maxage_lsa_remover, top, 0);
+      OSPF_TIMER_OFF (ospf->t_maxage);
+      thread_execute (master, ospf_maxage_lsa_remover, ospf, 0);
     }
 
   return;
@@ -3068,7 +3008,7 @@
 /* If there is self-originated LSA, then return 1, otherwise return 0. */
 /* An interface-independent version of ospf_lsa_is_self_originated */
 int 
-ospf_lsa_is_self_originated (struct ospf_lsa *lsa)
+ospf_lsa_is_self_originated (struct ospf *ospf, struct ospf_lsa *lsa)
 {
   listnode node;
 
@@ -3080,17 +3020,17 @@
   SET_FLAG (lsa->flags, OSPF_LSA_SELF_CHECKED);
 
   /* AdvRouter and Router ID is the same. */
-  if (IPV4_ADDR_SAME (&lsa->data->adv_router, &ospf_top->router_id))
+  if (IPV4_ADDR_SAME (&lsa->data->adv_router, &ospf->router_id))
     SET_FLAG (lsa->flags, OSPF_LSA_SELF);
 
   /* LSA is router-LSA. */
   else if (lsa->data->type == OSPF_ROUTER_LSA &&
-      IPV4_ADDR_SAME (&lsa->data->id, &ospf_top->router_id))
+      IPV4_ADDR_SAME (&lsa->data->id, &ospf->router_id))
     SET_FLAG (lsa->flags, OSPF_LSA_SELF);
 
   /* LSA is network-LSA.  Compare Link ID with all interfaces. */
   else if (lsa->data->type == OSPF_NETWORK_LSA)
-    for (node = listhead (ospf_top->oiflist); node; nextnode (node))
+    for (node = listhead (ospf->oiflist); node; nextnode (node))
       {
 	struct ospf_interface *oi = getdata (node);
 
@@ -3110,7 +3050,8 @@
 
 /* Get unique Link State ID. */
 struct in_addr
-ospf_lsa_unique_id (struct ospf_lsdb *lsdb, u_char type, struct prefix_ipv4 *p)
+ospf_lsa_unique_id (struct ospf *ospf,
+		    struct ospf_lsdb *lsdb, u_char type, struct prefix_ipv4 *p)
 {
   struct ospf_lsa *lsa;
   struct in_addr mask, id;
@@ -3118,7 +3059,7 @@
   id = p->prefix;
 
   /* Check existence of LSA instance. */
-  lsa = ospf_lsdb_lookup_by_id (lsdb, type, id, ospf_top->router_id);
+  lsa = ospf_lsdb_lookup_by_id (lsdb, type, id, ospf->router_id);
   if (lsa)
     {
       struct as_external_lsa *al = (struct as_external_lsa *) lsa->data;
@@ -3138,8 +3079,8 @@
 	  masklen2ip (p->prefixlen, &mask);
 
 	  id.s_addr = p->prefix.s_addr | (~mask.s_addr);
-	  lsa = ospf_lsdb_lookup_by_id (ospf_top->lsdb, type,
-				       id, ospf_top->router_id);
+	  lsa = ospf_lsdb_lookup_by_id (ospf->lsdb, type,
+				       id, ospf->router_id);
 	  if (lsa)
 	    {
 	      if (IS_DEBUG_OSPF (lsa, LSA_GENERATE))
@@ -3176,6 +3117,7 @@
 ospf_lsa_action (struct thread *t)
 {
   struct lsa_action *data;
+  struct ospf *ospf = ospf_top;
 
   data = THREAD_ARG (t);
 
@@ -3195,13 +3137,13 @@
       ospf_flood_through_area (data->area, NULL, data->lsa);
       break;
     case LSA_ACTION_FLOOD_AS:
-      ospf_flood_through_as (NULL, data->lsa);
+      ospf_flood_through_as (ospf, NULL, data->lsa);
       break;
     case LSA_ACTION_FLUSH_AREA:
       ospf_lsa_flush_area (data->lsa, data->area);
       break;
     case LSA_ACTION_FLUSH_AS:
-      ospf_lsa_flush_as (data->lsa);
+      ospf_lsa_flush_as (ospf, data->lsa);
       break;
     }
 
@@ -3243,7 +3185,7 @@
 
 /* LSA Refreshment functions. */
 void
-ospf_lsa_refresh (struct ospf_lsa *lsa)
+ospf_lsa_refresh (struct ospf *ospf, struct ospf_lsa *lsa)
 {
   struct external_info *ei;
   assert (CHECK_FLAG (lsa->flags, OSPF_LSA_SELF));
@@ -3255,17 +3197,17 @@
     case OSPF_NETWORK_LSA: 
       break;
     case OSPF_SUMMARY_LSA:
-      ospf_summary_lsa_refresh (lsa);
+      ospf_summary_lsa_refresh (ospf, lsa);
       break;
     case OSPF_ASBR_SUMMARY_LSA:
-      ospf_summary_asbr_lsa_refresh (lsa);
+      ospf_summary_asbr_lsa_refresh (ospf, lsa);
       break;
     case OSPF_AS_EXTERNAL_LSA:
       ei = ospf_external_info_check (lsa);
       if (ei)
-	ospf_external_lsa_refresh (lsa, ei, LSA_REFRESH_FORCE);
+	ospf_external_lsa_refresh (ospf, lsa, ei, LSA_REFRESH_FORCE);
       else
-	ospf_lsa_flush_as (lsa);
+	ospf_lsa_flush_as (ospf, lsa);
       break;
 #ifdef HAVE_OPAQUE_LSA
     case OSPF_OPAQUE_LINK_LSA:
@@ -3280,7 +3222,7 @@
 }
 
 void
-ospf_refresher_register_lsa (struct ospf *top, struct ospf_lsa *lsa)
+ospf_refresher_register_lsa (struct ospf *ospf, struct ospf_lsa *lsa)
 {
   u_int16_t index, current_index;
   
@@ -3302,8 +3244,8 @@
       if (delay < 0)
 	delay = 0;
 
-      current_index = top->lsa_refresh_queue.index +
-	(time (NULL) - top->lsa_refresher_started)/OSPF_LSA_REFRESHER_GRANULARITY;
+      current_index = ospf->lsa_refresh_queue.index +
+	(time (NULL) - ospf->lsa_refresher_started)/OSPF_LSA_REFRESHER_GRANULARITY;
       
       index = (current_index + delay/OSPF_LSA_REFRESHER_GRANULARITY)
 	% (OSPF_LSA_REFRESHER_SLOTS);
@@ -3311,9 +3253,9 @@
       if (IS_DEBUG_OSPF (lsa, LSA_REFRESH))
 	zlog_info ("LSA[Refresh]: lsa with age %d added to index %d",
 		   LS_AGE (lsa), index);
-      if (!top->lsa_refresh_queue.qs[index])
-	top->lsa_refresh_queue.qs[index] = list_new ();
-      listnode_add (top->lsa_refresh_queue.qs[index], ospf_lsa_lock (lsa));
+      if (!ospf->lsa_refresh_queue.qs[index])
+	ospf->lsa_refresh_queue.qs[index] = list_new ();
+      listnode_add (ospf->lsa_refresh_queue.qs[index], ospf_lsa_lock (lsa));
       lsa->refresh_list = index;
       if (IS_DEBUG_OSPF (lsa, LSA_REFRESH))
 	zlog_info ("LSA[Refresh]: ospf_refresher_register_lsa(): setting refresh_list on lsa %p (slod %d)", lsa, index);
@@ -3321,17 +3263,17 @@
 }
 
 void
-ospf_refresher_unregister_lsa (struct ospf *top, struct ospf_lsa *lsa)
+ospf_refresher_unregister_lsa (struct ospf *ospf, struct ospf_lsa *lsa)
 {
   assert (CHECK_FLAG (lsa->flags, OSPF_LSA_SELF));
   if (lsa->refresh_list >= 0)
     {
-      list refresh_list = top->lsa_refresh_queue.qs[lsa->refresh_list];
+      list refresh_list = ospf->lsa_refresh_queue.qs[lsa->refresh_list];
       listnode_delete (refresh_list, lsa);
       if (!listcount (refresh_list))
 	{
 	  list_free (refresh_list);
-	  top->lsa_refresh_queue.qs[lsa->refresh_list] = NULL;
+	  ospf->lsa_refresh_queue.qs[lsa->refresh_list] = NULL;
 	}
       ospf_lsa_unlock (lsa);
       lsa->refresh_list = -1;
@@ -3343,7 +3285,7 @@
 {
   list refresh_list;
   listnode node;
-  struct ospf *top = THREAD_ARG (t);
+  struct ospf *ospf = THREAD_ARG (t);
   int i;
   list lsa_to_refresh = list_new ();
 
@@ -3351,27 +3293,27 @@
     zlog_info ("LSA[Refresh]:ospf_lsa_refresh_walker(): start");
 
   
-  i = top->lsa_refresh_queue.index;
+  i = ospf->lsa_refresh_queue.index;
   
-  top->lsa_refresh_queue.index =
-    (top->lsa_refresh_queue.index +
-     (time (NULL) - top->lsa_refresher_started) / OSPF_LSA_REFRESHER_GRANULARITY)
+  ospf->lsa_refresh_queue.index =
+    (ospf->lsa_refresh_queue.index +
+     (time (NULL) - ospf->lsa_refresher_started) / OSPF_LSA_REFRESHER_GRANULARITY)
     % OSPF_LSA_REFRESHER_SLOTS;
 
   if (IS_DEBUG_OSPF (lsa, LSA_REFRESH))
     zlog_info ("LSA[Refresh]: ospf_lsa_refresh_walker(): next index %d",
-	       top->lsa_refresh_queue.index);
+	       ospf->lsa_refresh_queue.index);
 
-  for (;i != top->lsa_refresh_queue.index;
+  for (;i != ospf->lsa_refresh_queue.index;
        i = (i + 1) % OSPF_LSA_REFRESHER_SLOTS)
     {
       if (IS_DEBUG_OSPF (lsa, LSA_REFRESH))
 	zlog_info ("LSA[Refresh]: ospf_lsa_refresh_walker(): refresh index %d", i);
 
-      refresh_list = top->lsa_refresh_queue.qs [i];
+      refresh_list = ospf->lsa_refresh_queue.qs [i];
       
-      top->lsa_refresh_queue.qs [i] = NULL;
-      
+      ospf->lsa_refresh_queue.qs [i] = NULL;
+
       if (refresh_list)
 	{
 	  for (node = listhead (refresh_list); node;)
@@ -3393,12 +3335,12 @@
 	}
     }
 
-  top->t_lsa_refresher = thread_add_timer (master, ospf_lsa_refresh_walker,
-					   top, top->lsa_refresh_interval);
-  top->lsa_refresher_started = time (NULL);
+  ospf->t_lsa_refresher = thread_add_timer (master, ospf_lsa_refresh_walker,
+					   ospf, ospf->lsa_refresh_interval);
+  ospf->lsa_refresher_started = time (NULL);
 
   for (node = listhead (lsa_to_refresh); node; nextnode (node))
-    ospf_lsa_refresh (getdata (node));
+    ospf_lsa_refresh (ospf, getdata (node));
   
   list_delete (lsa_to_refresh);
   
diff --git a/ospfd/ospf_lsa.h b/ospfd/ospf_lsa.h
index 4303bcd..82d9549 100644
--- a/ospfd/ospf_lsa.h
+++ b/ospfd/ospf_lsa.h
@@ -207,14 +207,6 @@
 #define IS_LSA_SELF(L)          (CHECK_FLAG ((L)->flags, OSPF_LSA_SELF))
 #define IS_LSA_MAXAGE(L)        (LS_AGE ((L)) == OSPF_LSA_MAXAGE)
 
-#define OSPF_SUMMARY_LSA_SELF_FIND_BY_PREFIX(A,P) \
-        foreach_lsa (SUMMARY_LSDB ((A)), \
-                     (struct prefix_ipv4 *) (P), 0, find_summary)
-
-#define OSPF_SUMMARY_ASBR_LSA_SELF_FIND_BY_PREFIX(A,P) \
-        foreach_lsa (ASBR_SUMMARY_LSDB ((A)), \
-                     (struct prefix_ipv4 *) (P), 0, find_asbr_summary)
-
 #define OSPF_LSA_UPDATE_DELAY		2
 
 #define OSPF_LSA_UPDATE_TIMER_ON(T,F) \
@@ -237,15 +229,16 @@
 u_int16_t ospf_lsa_checksum (struct lsa_header *);
 
 struct stream;
-const char *dump_lsa_key (struct ospf_lsa *lsa);
-u_int32_t lsa_seqnum_increment (struct ospf_lsa *lsa);
-void lsa_header_set (struct stream *s, u_char options, u_char type, struct in_addr id);
-struct ospf_neighbor *ospf_nbr_lookup_ptop (struct route_table *nbrs, struct in_addr router_id);
+const char *dump_lsa_key (struct ospf_lsa *);
+u_int32_t lsa_seqnum_increment (struct ospf_lsa *);
+void lsa_header_set (struct stream *, u_char, u_char, struct in_addr,
+		     struct in_addr);
+struct ospf_neighbor *ospf_nbr_lookup_ptop (struct ospf_interface *);
 
 /* Prototype for LSA primitive. */
 struct ospf_lsa *ospf_lsa_new ();
 struct ospf_lsa *ospf_lsa_dup ();
-void ospf_lsa_free (struct ospf_lsa *lsa);
+void ospf_lsa_free (struct ospf_lsa *);
 struct ospf_lsa *ospf_lsa_lock (struct ospf_lsa *);
 void ospf_lsa_unlock (struct ospf_lsa *);
 void ospf_lsa_discard (struct ospf_lsa *);
@@ -267,17 +260,18 @@
 struct ospf_lsa *ospf_summary_asbr_lsa_originate (struct prefix_ipv4 *,
 						  u_int32_t,
 						  struct ospf_area *);
-struct ospf_lsa *ospf_summary_lsa_refresh (struct ospf_lsa *);
-struct ospf_lsa *ospf_summary_asbr_lsa_refresh (struct ospf_lsa *);
+struct ospf_lsa *ospf_summary_lsa_refresh (struct ospf *, struct ospf_lsa *);
+struct ospf_lsa *ospf_summary_asbr_lsa_refresh (struct ospf *, struct ospf_lsa *);
 
-struct ospf_lsa *ospf_lsa_install (struct ospf_interface *, struct ospf_lsa *);
+struct ospf_lsa *ospf_lsa_install (struct ospf *,
+				   struct ospf_interface *, struct ospf_lsa *);
 
-void ospf_external_lsa_flush (u_char, struct prefix_ipv4 *,
+void ospf_external_lsa_flush (struct ospf *, u_char, struct prefix_ipv4 *,
 			      unsigned int, struct in_addr);
 
-struct in_addr ospf_get_ip_from_ifp (struct ospf_interface *oi);
+struct in_addr ospf_get_ip_from_ifp (struct ospf_interface *);
 
-struct ospf_lsa *ospf_external_lsa_originate (struct external_info *);
+struct ospf_lsa *ospf_external_lsa_originate (struct ospf *, struct external_info *);
 int ospf_external_lsa_originate_timer (struct thread *);
 struct ospf_lsa *ospf_lsa_lookup (struct ospf_area *, u_int32_t,
 				  struct in_addr, struct in_addr);
@@ -286,24 +280,25 @@
 					    struct lsa_header *);
 int ospf_lsa_more_recent (struct ospf_lsa *, struct ospf_lsa *);
 int ospf_lsa_different (struct ospf_lsa *, struct ospf_lsa *);
-void ospf_flush_self_originated_lsas_now (struct ospf *top);
+void ospf_flush_self_originated_lsas_now (struct ospf *);
 
-int ospf_lsa_is_self_originated (struct ospf_lsa *);
+int ospf_lsa_is_self_originated (struct ospf *, struct ospf_lsa *);
 
-int find_summary (struct ospf_lsa *, void *, int);
-int find_asbr_summary (struct ospf_lsa *, void *, int);
+struct ospf_lsa *ospf_lsa_lookup_by_prefix (struct ospf_lsdb *, u_char,
+					    struct prefix_ipv4 *,
+					    struct in_addr);
 
-void ospf_lsa_maxage (struct ospf_lsa *);
+void ospf_lsa_maxage (struct ospf *, struct ospf_lsa *);
 u_int32_t get_metric (u_char *);
 
 int ospf_lsa_maxage_walker (struct thread *);
 
-void ospf_external_lsa_refresh_default (void);
+void ospf_external_lsa_refresh_default (struct ospf *);
 
-void ospf_external_lsa_refresh_type (u_char, int);
-void ospf_external_lsa_refresh (struct ospf_lsa *, struct external_info *ei,
-				int force);
-struct in_addr ospf_lsa_unique_id (struct ospf_lsdb *, u_char,
+void ospf_external_lsa_refresh_type (struct ospf *, u_char, int);
+void ospf_external_lsa_refresh (struct ospf *, struct ospf_lsa *,
+				struct external_info *, int);
+struct in_addr ospf_lsa_unique_id (struct ospf *, struct ospf_lsdb *, u_char,
 				   struct prefix_ipv4 *);
 void ospf_schedule_lsa_flood_area (struct ospf_area *, struct ospf_lsa *);
 void ospf_schedule_lsa_flush_area (struct ospf_area *, struct ospf_lsa *);
@@ -312,16 +307,17 @@
 void ospf_refresher_unregister_lsa (struct ospf *, struct ospf_lsa *);
 int ospf_lsa_refresh_walker (struct thread *);
 
-void ospf_lsa_init ();
+void ospf_lsa_maxage_delete (struct ospf *, struct ospf_lsa *);
 
-void ospf_lsa_maxage_delete (struct ospf_lsa *);
-
-void ospf_discard_from_db (struct ospf_lsdb *, struct ospf_lsa*);
-int ospf_lsa_discard_callback (struct ospf_lsa *, void *, int);
+void ospf_discard_from_db (struct ospf *, struct ospf_lsdb *, struct ospf_lsa*);
 int is_prefix_default (struct prefix_ipv4 *);
 
-int metric_type (u_char);
-int metric_value (u_char);
+int metric_type (struct ospf *, u_char);
+int metric_value (struct ospf *, u_char);
+
+#ifdef HAVE_NSSA
+struct in_addr ospf_get_nssa_ip (struct ospf_area *);
+#endif /* HAVE NSSA */
 
 #ifdef HAVE_NSSA
 struct in_addr ospf_get_nssa_ip (struct ospf_area *);
diff --git a/ospfd/ospf_neighbor.c b/ospfd/ospf_neighbor.c
index a302aa9..ccef055 100644
--- a/ospfd/ospf_neighbor.c
+++ b/ospfd/ospf_neighbor.c
@@ -202,20 +202,15 @@
 /* Get neighbor count by status.
    Specify status = 0, get all neighbor other than myself. */
 int
-ospf_nbr_count (struct route_table *nbrs, int state)
+ospf_nbr_count (struct ospf_interface *oi, int state)
 {
-  struct route_node *rn;
   struct ospf_neighbor *nbr;
+  struct route_node *rn;
   int count = 0;
 
-  /* Sanity check. */
-  if (nbrs == NULL)
-    return 0;
-
-  for (rn = route_top (nbrs); rn; rn = route_next (rn))
-    if ((nbr = rn->info) != NULL)
-      /* Ignore myself. */
-      if (!IPV4_ADDR_SAME (&nbr->router_id, &ospf_top->router_id))
+  for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
+    if ((nbr = rn->info))
+      if (!IPV4_ADDR_SAME (&nbr->router_id, &oi->ospf->router_id))
 	if (state == 0 || nbr->state == state)
 	  count++;
 
@@ -224,23 +219,18 @@
 
 #ifdef HAVE_OPAQUE_LSA
 int
-ospf_opaque_capable_nbr_count (struct route_table *nbrs, int state)
+ospf_nbr_count_opaque_capable (struct ospf_interface *oi)
 {
-  struct route_node *rn;
   struct ospf_neighbor *nbr;
+  struct route_node *rn;
   int count = 0;
 
-  /* Sanity check. */
-  if (nbrs == NULL)
-    return 0;
-
-  for (rn = route_top (nbrs); rn; rn = route_next (rn))
-    if ((nbr = rn->info) != NULL)
-      /* Ignore myself. */
-      if (!IPV4_ADDR_SAME (&nbr->router_id, &ospf_top->router_id))
-	if ((state == 0 || nbr->state == state)
-	&&  CHECK_FLAG (nbr->options, OSPF_OPTION_O))
-	  count++;
+  for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
+    if ((nbr = rn->info))
+      if (!IPV4_ADDR_SAME (&nbr->router_id, &oi->ospf->router_id))
+	if (nbr->state == NSM_Full)
+	  if (CHECK_FLAG (nbr->options, OSPF_OPTION_O))
+	    count++;
 
   return count;
 }
diff --git a/ospfd/ospf_nsm.c b/ospfd/ospf_nsm.c
index 5730357..a8efdcc 100644
--- a/ospfd/ospf_nsm.c
+++ b/ospfd/ospf_nsm.c
@@ -222,13 +222,8 @@
 }
 
 int
-ospf_db_summary_add (struct ospf_lsa *lsa, void *v, int i)
+ospf_db_summary_add (struct ospf_neighbor *nbr, struct ospf_lsa *lsa)
 {
-  struct ospf_neighbor *nbr = (struct ospf_neighbor *) v;
-
-  if (lsa == NULL)
-    return 0;
-
 #ifdef HAVE_OPAQUE_LSA
   switch (lsa->data->type)
     {
@@ -283,73 +278,58 @@
 
 
 
-#ifdef HAVE_OPAQUE_LSA
-/* The area link state database consists of the router-LSAs,
-   network-LSAs, summary-LSAs, and type-9/10 opaque-LSAs contained
-			     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   in the area structure, along with the AS-external and type-11
-						     ^^^^^^^^^^^
-   opaque LSAs contained in the global structure.
-   ^^^^^^
-   AS-external and type-11 opaque LSAs are omitted from a virtual
-	       ^^^^^^^^^^^^^^^^^^
-   neighbor's Database summary list. AS-external and type-11 opaque
-						 ^^^^^^^^^^^^^^^^^^
-   LSAs are omitted from the Database summary list if the area has
-   been configured as a stub. */
-#else /* HAVE_OPAQUE_LSA */
 /* The area link state database consists of the router-LSAs,
    network-LSAs and summary-LSAs contained in the area structure,
-   along with the AS-external- LSAs contained in the global structure.
-   AS- external-LSAs are omitted from a virtual neighbor's Database
+   along with the AS-external-LSAs contained in the global structure.
+   AS-external-LSAs are omitted from a virtual neighbor's Database
    summary list.  AS-external-LSAs are omitted from the Database
    summary list if the area has been configured as a stub. */
-#endif /* HAVE_OPAQUE_LSA */
 int
 nsm_negotiation_done (struct ospf_neighbor *nbr)
 {
-  struct ospf_area *area;
+  struct ospf_area *area = nbr->oi->area;
+  struct ospf_lsa *lsa;
+  struct route_node *rn;
 
-  area = nbr->oi->area;
+  LSDB_LOOP (ROUTER_LSDB (area), rn, lsa)
+    ospf_db_summary_add (nbr, lsa);
+  LSDB_LOOP (NETWORK_LSDB (area), rn, lsa)
+    ospf_db_summary_add (nbr, lsa);
+  LSDB_LOOP (SUMMARY_LSDB (area), rn, lsa)
+    ospf_db_summary_add (nbr, lsa);
+  LSDB_LOOP (ASBR_SUMMARY_LSDB (area), rn, lsa)
+    ospf_db_summary_add (nbr, lsa);
 
-  foreach_lsa (ROUTER_LSDB (area), nbr, 0, ospf_db_summary_add);
-  foreach_lsa (NETWORK_LSDB (area), nbr, 0, ospf_db_summary_add);
-  foreach_lsa (SUMMARY_LSDB (area), nbr, 0, ospf_db_summary_add);
-  foreach_lsa (ASBR_SUMMARY_LSDB (area), nbr, 0, ospf_db_summary_add);
-  
 #ifdef HAVE_OPAQUE_LSA
   /* Process only if the neighbor is opaque capable. */
   if (CHECK_FLAG (nbr->options, OSPF_OPTION_O))
     {
-      foreach_lsa (OPAQUE_LINK_LSDB (area), nbr, 0, ospf_db_summary_add);
-      foreach_lsa (OPAQUE_AREA_LSDB (area), nbr, 0, ospf_db_summary_add);
+      LSDB_LOOP (OPAQUE_LINK_LSDB (area), rn, lsa)
+	ospf_db_summary_add (nbr, lsa);
+      LSDB_LOOP (OPAQUE_AREA_LSDB (area), rn, lsa)
+	ospf_db_summary_add (nbr, lsa);
     }
 #endif /* HAVE_OPAQUE_LSA */
 
-  if (nbr->oi->type != OSPF_IFTYPE_VIRTUALLINK &&
-      area->external_routing == OSPF_AREA_DEFAULT)
-    foreach_lsa (EXTERNAL_LSDB (ospf_top), nbr, 0, ospf_db_summary_add);
+  if (nbr->oi->type != OSPF_IFTYPE_VIRTUALLINK
+      && area->external_routing == OSPF_AREA_DEFAULT)
+    LSDB_LOOP (EXTERNAL_LSDB (nbr->oi->ospf), rn, lsa)
+      ospf_db_summary_add (nbr, lsa);
 
 #ifdef HAVE_OPAQUE_LSA
-  if (CHECK_FLAG (nbr->options, OSPF_OPTION_O) &&
-      (nbr->oi->type != OSPF_IFTYPE_VIRTUALLINK &&
-       area->external_routing == OSPF_AREA_DEFAULT))
-    foreach_lsa (OPAQUE_AS_LSDB (ospf_top),
-		 nbr, 0, ospf_db_summary_add);
+  if (CHECK_FLAG (nbr->options, OSPF_OPTION_O)
+      && (nbr->oi->type != OSPF_IFTYPE_VIRTUALLINK
+	  && area->external_routing == OSPF_AREA_DEFAULT))
+    LSDB_LOOP (OPAQUE_AS_LSDB (nbr->oi->ospf), rn, lsa)
+      ospf_db_summary_add (nbr, lsa);
 #endif /* HAVE_OPAQUE_LSA */
 
-  /* OSPF_NSM_TIMER_OFF (nbr->t_db_desc); */
-
   return 0;
 }
 
 int
 nsm_exchange_done (struct ospf_neighbor *nbr)
 {
-  struct ospf_interface *oi;
-
-  oi = nbr->oi;
-
   if (ospf_ls_request_isempty (nbr))
     return NSM_Full;
 
@@ -382,18 +362,18 @@
   next_state = nbr->state;
 
   /* These netowork types must be adjacency. */
-  if (oi->type == OSPF_IFTYPE_POINTOPOINT ||
-      oi->type == OSPF_IFTYPE_POINTOMULTIPOINT ||
-      oi->type == OSPF_IFTYPE_VIRTUALLINK)
+  if (oi->type == OSPF_IFTYPE_POINTOPOINT
+      || oi->type == OSPF_IFTYPE_POINTOMULTIPOINT
+      || oi->type == OSPF_IFTYPE_VIRTUALLINK)
     flag = 1;
 
   /* Router itself is the DRouter or the BDRouter. */
-  if (IPV4_ADDR_SAME (&oi->address->u.prefix4, &DR (oi)) ||
-      IPV4_ADDR_SAME (&oi->address->u.prefix4, &BDR (oi)))
+  if (IPV4_ADDR_SAME (&oi->address->u.prefix4, &DR (oi))
+      || IPV4_ADDR_SAME (&oi->address->u.prefix4, &BDR (oi)))
     flag = 1;
 
-  if (IPV4_ADDR_SAME (&nbr->address.u.prefix4, &DR (oi)) ||
-      IPV4_ADDR_SAME (&nbr->address.u.prefix4, &BDR (oi)))
+  if (IPV4_ADDR_SAME (&nbr->address.u.prefix4, &DR (oi))
+      || IPV4_ADDR_SAME (&nbr->address.u.prefix4, &BDR (oi)))
     flag = 1;
 
   if (nbr->state == NSM_TwoWay && flag == 1)
@@ -683,7 +663,7 @@
 void
 nsm_change_state (struct ospf_neighbor *nbr, int state)
 {
-  struct ospf_interface *oi;
+  struct ospf_interface *oi = nbr->oi;
   struct ospf_area *vl_area = NULL;
   u_char old_state;
   int x;
@@ -705,10 +685,8 @@
   /* Statistics. */
   nbr->state_change++;
 
-  oi = nbr->oi;
-
   if (oi->type == OSPF_IFTYPE_VIRTUALLINK)
-    vl_area = ospf_area_lookup_by_area_id (oi->vl_data->vl_area_id);
+    vl_area = ospf_area_lookup_by_area_id (oi->ospf, oi->vl_data->vl_area_id);
   
   /* One of the neighboring routers changes to/from the FULL state. */
   if ((old_state != NSM_Full && state == NSM_Full) ||
@@ -719,31 +697,31 @@
 	  oi->full_nbrs++;
 	  oi->area->full_nbrs++;
 
-          ospf_check_abr_status ();
+          ospf_check_abr_status (oi->ospf);
 
 	  if (oi->type == OSPF_IFTYPE_VIRTUALLINK && vl_area)
             if (++vl_area->full_vls == 1)
-	      ospf_schedule_abr_task ();
+	      ospf_schedule_abr_task (oi->ospf);
 
 	  /* kevinm: refresh any redistributions */
-	  for (x = ZEBRA_ROUTE_SYSTEM; x < ZEBRA_ROUTE_MAX; x++) {
-	    if (x == ZEBRA_ROUTE_OSPF || x == ZEBRA_ROUTE_OSPF6)
-	      continue;
-	    ospf_external_lsa_refresh_type(x, force);
-	  }
-
+	  for (x = ZEBRA_ROUTE_SYSTEM; x < ZEBRA_ROUTE_MAX; x++)
+	    {
+	      if (x == ZEBRA_ROUTE_OSPF || x == ZEBRA_ROUTE_OSPF6)
+		continue;
+	      ospf_external_lsa_refresh_type (oi->ospf, x, force);
+	    }
 	}
       else
 	{
 	  oi->full_nbrs--;
 	  oi->area->full_nbrs--;
 
-          ospf_check_abr_status ();
+          ospf_check_abr_status (oi->ospf);
 
 	  if (oi->type == OSPF_IFTYPE_VIRTUALLINK && vl_area)
 	    if (vl_area->full_vls > 0)
 	      if (--vl_area->full_vls == 0)
-		ospf_schedule_abr_task ();
+		ospf_schedule_abr_task (oi->ospf);
  
           /* clear neighbor retransmit list */
           if (!ospf_ls_retransmit_isempty (nbr))
@@ -758,7 +736,7 @@
       if (oi->type == OSPF_IFTYPE_VIRTUALLINK)
 	{
 	  struct ospf_area *vl_area =
-	    ospf_area_lookup_by_area_id (oi->vl_data->vl_area_id);
+	    ospf_area_lookup_by_area_id (oi->ospf, oi->vl_data->vl_area_id);
 	  
 	  if (vl_area)
 	    ospf_router_lsa_timer_add (vl_area);
diff --git a/ospfd/ospf_opaque.c b/ospfd/ospf_opaque.c
index fa9c4db..b8ba518 100644
--- a/ospfd/ospf_opaque.c
+++ b/ospfd/ospf_opaque.c
@@ -545,7 +545,7 @@
       break;
     case OSPF_OPAQUE_AS_LSA:
       top = ospf_top;
-      if (new->area != NULL && (top = new->area->top) == NULL)
+      if (new->area != NULL && (top = new->area->ospf) == NULL)
         {
           free_opaque_info_per_type ((void *) oipt);
           oipt = NULL;
@@ -653,7 +653,7 @@
       break;
     case OSPF_OPAQUE_AS_LSA:
       top = ospf_top;
-      if ((area = lsa->area) != NULL && (top = area->top) == NULL)
+      if ((area = lsa->area) != NULL && (top = area->ospf) == NULL)
         {
           zlog_warn ("Type-11 Opaque-LSA: Reference to OSPF is missing?");
           break; /* Unlikely to happen. */
@@ -1572,7 +1572,7 @@
         }
       break;
     case OSPF_OPAQUE_AREA_LSA:
-      if (lsa->area == NULL || (top = lsa->area->top) == NULL)
+      if (lsa->area == NULL || (top = lsa->area->ospf) == NULL)
         {
           /* Above conditions must have passed. */
           zlog_warn ("ospf_opaque_lsa_install: Sonmething wrong?");
@@ -1581,7 +1581,7 @@
       break;
     case OSPF_OPAQUE_AS_LSA:
       top = ospf_top;
-      if (lsa->area != NULL && (top = lsa->area->top) == NULL)
+      if (lsa->area != NULL && (top = lsa->area->ospf) == NULL)
         {
           /* Above conditions must have passed. */
           zlog_warn ("ospf_opaque_lsa_install: Sonmething wrong?");
@@ -1603,6 +1603,7 @@
 void
 ospf_opaque_lsa_refresh (struct ospf_lsa *lsa)
 {
+  struct ospf *ospf = ospf_top;
   struct ospf_opaque_functab *functab;
 
   if ((functab = ospf_opaque_functab_lookup (lsa)) == NULL
@@ -1619,7 +1620,7 @@
         zlog_info ("LSA[Type%d:%s]: Flush stray Opaque-LSA", lsa->data->type, inet_ntoa (lsa->data->id));
 
       lsa->data->ls_age = htons (OSPF_LSA_MAXAGE);
-      ospf_lsa_maxage (lsa);
+      ospf_lsa_maxage (ospf, lsa);
     }
   else
     (* functab->lsa_refresher)(lsa);
@@ -1683,7 +1684,7 @@
           zlog_warn ("ospf_opaque_lsa_reoriginate_schedule: Type-10 Opaque-LSA: Invalid parameter?");
           goto out;
         }
-      if ((top = area->top) == NULL)
+      if ((top = area->ospf) == NULL)
         {
           zlog_warn ("ospf_opaque_lsa_reoriginate_schedule: AREA(%s) -> TOP?", inet_ntoa (area->area_id));
           goto out;
@@ -1712,7 +1713,7 @@
         }
 
       /* Fake "area" to pass "ospf" to a lookup function later. */
-      dummy.top = top;
+      dummy.ospf = top;
       area = &dummy;
 
       func = ospf_opaque_type11_lsa_reoriginate_timer;
@@ -1826,7 +1827,7 @@
 
   if (! CHECK_FLAG (top->config, OSPF_OPAQUE_CAPABLE)
   ||  ! ospf_if_is_enable (oi)
-  ||    ospf_opaque_capable_nbr_count (oi->nbrs, NSM_Full) == 0)
+  ||    ospf_nbr_count_opaque_capable (oi) == 0)
     {
       if (IS_DEBUG_OSPF_EVENT)
         zlog_info ("Suspend re-origination of Type-9 Opaque-LSAs (opaque-type=%u) for a while...", oipt->opaque_type);
@@ -1866,7 +1867,7 @@
     }
 
   area = (struct ospf_area *) oipt->owner;
-  if (area == NULL || (top = area->top) == NULL)
+  if (area == NULL || (top = area->ospf) == NULL)
     {
       zlog_warn ("ospf_opaque_type10_lsa_reoriginate_timer: Something wrong?");
       goto out;
@@ -1878,7 +1879,7 @@
     {
       if ((oi = getdata (node)) == NULL)
         continue;
-      if ((n = ospf_opaque_capable_nbr_count (oi->nbrs, NSM_Full)) > 0)
+      if ((n = ospf_nbr_count_opaque_capable (oi)) > 0)
         break;
     }
 
@@ -1947,6 +1948,7 @@
 void
 ospf_opaque_lsa_refresh_schedule (struct ospf_lsa *lsa0)
 {
+  struct ospf *ospf = ospf_top;
   struct opaque_info_per_type *oipt;
   struct opaque_info_per_id *oipi;
   struct ospf_lsa *lsa;
@@ -1978,10 +1980,10 @@
     {
     case OSPF_OPAQUE_LINK_LSA:
     case OSPF_OPAQUE_AREA_LSA:
-      ospf_ls_retransmit_delete_nbr_all (lsa->area, lsa);
+      ospf_ls_retransmit_delete_nbr_area (lsa->area, lsa);
       break;
     case OSPF_OPAQUE_AS_LSA:
-      ospf_ls_retransmit_delete_nbr_all (NULL, lsa);
+      ospf_ls_retransmit_delete_nbr_as (ospf, lsa);
       break;
     default:
       zlog_warn ("ospf_opaque_lsa_refresh_schedule: Unexpected LSA-type(%u)", lsa->data->type);
@@ -2023,6 +2025,7 @@
 void
 ospf_opaque_lsa_flush_schedule (struct ospf_lsa *lsa0)
 {
+  struct ospf *ospf = ospf_top;
   struct opaque_info_per_type *oipt;
   struct opaque_info_per_id *oipi;
   struct ospf_lsa *lsa;
@@ -2046,10 +2049,10 @@
     {
     case OSPF_OPAQUE_LINK_LSA:
     case OSPF_OPAQUE_AREA_LSA:
-      ospf_ls_retransmit_delete_nbr_all (lsa->area, lsa);
+      ospf_ls_retransmit_delete_nbr_area (lsa->area, lsa);
       break;
     case OSPF_OPAQUE_AS_LSA:
-      ospf_ls_retransmit_delete_nbr_all (NULL, lsa);
+      ospf_ls_retransmit_delete_nbr_as (ospf, lsa);
       break;
     default:
       zlog_warn ("ospf_opaque_lsa_flush_schedule: Unexpected LSA-type(%u)", lsa->data->type);
@@ -2074,7 +2077,7 @@
     zlog_info ("Schedule Type-%u Opaque-LSA to FLUSH: [opaque-type=%u, opaque-id=%x]", lsa->data->type, GET_OPAQUE_TYPE (ntohl (lsa->data->id.s_addr)), GET_OPAQUE_ID (ntohl (lsa->data->id.s_addr)));
 
   /* This lsa will be flushed and removed eventually. */
-  ospf_lsa_maxage (lsa);
+  ospf_lsa_maxage (ospf, lsa);
 
 out:
   return;
@@ -2241,7 +2244,7 @@
           break;
         case OSPF_OPAQUE_AS_LSA:
           SET_FLAG (top->opaque, OPAQUE_BLOCK_TYPE_11_LSA_BIT);
-          ospf_flood_through_as (NULL/*inbr*/, lsa);
+          ospf_flood_through_as (top, NULL/*inbr*/, lsa);
           break;
         default:
           zlog_warn ("ospf_opaque_self_originated_lsa_received: Unexpected LSA-type(%u)", lsa->data->type);
@@ -2331,7 +2334,7 @@
             continue;
 
           if (! ospf_if_is_enable (oi)
-          ||    ospf_opaque_capable_nbr_count (oi->nbrs, NSM_Full) == 0)
+          ||    ospf_nbr_count_opaque_capable (oi) == 0)
             continue;
 
           ospf_opaque_lsa_originate_schedule (oi, &delay);
@@ -2353,7 +2356,7 @@
       if (IS_DEBUG_OSPF_EVENT)
         zlog_info ("Self-originated type-9 Opaque-LSAs: OI(%s): Flush completed", IF_NAME (oi));
 
-      UNSET_FLAG (oi->area->top->opaque, OPAQUE_BLOCK_TYPE_09_LSA_BIT);
+      UNSET_FLAG (oi->area->ospf->opaque, OPAQUE_BLOCK_TYPE_09_LSA_BIT);
     }
   return;
 }
@@ -2384,7 +2387,7 @@
       if (IS_DEBUG_OSPF_EVENT)
         zlog_info ("Self-originated type-10 Opaque-LSAs: AREA(%s): Flush completed", inet_ntoa (area->area_id));
 
-      UNSET_FLAG (area->top->opaque, OPAQUE_BLOCK_TYPE_10_LSA_BIT);
+      UNSET_FLAG (area->ospf->opaque, OPAQUE_BLOCK_TYPE_10_LSA_BIT);
     }
 
   return;
@@ -2481,7 +2484,7 @@
   struct ospf *top = NULL;
   struct ospf_area *area;
 
-  if (oi == NULL || (area = oi->area) == NULL || (top = area->top) == NULL)
+  if (oi == NULL || (area = oi->area) == NULL || (top = area->ospf) == NULL)
     zlog_warn ("Broken relationship for \"OI -> AREA -> OSPF\"?");
 
   return top;
diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c
index d845684..08217af 100644
--- a/ospfd/ospf_packet.c
+++ b/ospfd/ospf_packet.c
@@ -482,22 +482,21 @@
 int
 ospf_write (struct thread *thread)
 {
+  struct ospf *ospf = THREAD_ARG (thread);
   struct ospf_interface *oi;
   struct ospf_packet *op;
   struct sockaddr_in sa_dst;
-  u_char type;
-  int ret;
-  int flags = 0;
   struct ip iph;
   struct msghdr msg;
   struct iovec iov[2];
-  struct ospf *top;
+  u_char type;
+  int ret;
+  int flags = 0;
   listnode node;
   
-  top = THREAD_ARG (thread);
-  top->t_write = NULL;
+  ospf->t_write = NULL;
 
-  node = listhead (top->oi_write_q);
+  node = listhead (ospf->oi_write_q);
   assert (node);
   oi = getdata (node);
   assert (oi);
@@ -507,9 +506,9 @@
   assert (op);
   assert (op->length >= OSPF_HEADER_SIZE);
 
-  if (op->dst.s_addr == htonl (OSPF_ALLSPFROUTERS) ||
-      op->dst.s_addr == htonl (OSPF_ALLDROUTERS))
-    ospf_if_ipmulticast (top, oi->address, oi->ifp->ifindex);
+  if (op->dst.s_addr == htonl (OSPF_ALLSPFROUTERS)
+      || op->dst.s_addr == htonl (OSPF_ALLDROUTERS))
+    ospf_if_ipmulticast (ospf, oi->address, oi->ifp->ifindex);
 
   /* Rewrite the md5 signature & update the seq */
   ospf_make_md5_digest (oi, op);
@@ -529,7 +528,7 @@
 
   iph.ip_hl = sizeof (struct ip) >> 2;
   iph.ip_v = IPVERSION;
-  iph.ip_tos = 0;
+  iph.ip_tos = IPTOS_PREC_INTERNETCONTROL;
 #if defined(__NetBSD__) || defined(__FreeBSD__)
   iph.ip_len = iph.ip_hl*4 + op->length;
 #else
@@ -556,7 +555,7 @@
   iov[1].iov_base = STREAM_DATA (op->s);
   iov[1].iov_len = op->length;
 
-  ret = sendmsg (top->fd, &msg, flags);
+  ret = sendmsg (ospf->fd, &msg, flags);
   
   if (ret < 0)
     zlog_warn ("*** sendmsg in ospf_write failed with %s", strerror (errno));
@@ -589,13 +588,13 @@
   if (ospf_fifo_head (oi->obuf) == NULL)
     {
       oi->on_write_q = 0;
-      list_delete_node (top->oi_write_q, node);
+      list_delete_node (ospf->oi_write_q, node);
     }
   
   /* If packets still remain in queue, call write thread. */
-  if (!list_isempty (top->oi_write_q))
-    ospf_top->t_write =                                              
-      thread_add_write (master, ospf_write, top, top->fd);
+  if (!list_isempty (ospf->oi_write_q))
+    ospf->t_write =                                              
+      thread_add_write (master, ospf_write, ospf, ospf->fd);
 
   return 0;
 }
@@ -617,10 +616,8 @@
   hello = (struct ospf_hello *) STREAM_PNT (s);
 
   /* If Hello is myself, silently discard. */
-  if (IPV4_ADDR_SAME (&ospfh->router_id, &ospf_top->router_id)) {
-    zlog_info ("Packet %s [Hello:RECV]: router_id matches our router id");
+  if (IPV4_ADDR_SAME (&ospfh->router_id, &oi->ospf->router_id))
     return;
-  }
 
   /* If incoming interface is passive one, ignore Hello. */
   if (OSPF_IF_PARAM (oi, passive_interface) == OSPF_IF_PASSIVE) {
@@ -681,7 +678,7 @@
 #endif /* REJECT_IF_TBIT_ON */
 
 #ifdef HAVE_OPAQUE_LSA
-  if (CHECK_FLAG (ospf_top->config, OSPF_OPAQUE_CAPABLE)
+  if (CHECK_FLAG (oi->ospf->config, OSPF_OPAQUE_CAPABLE)
       && CHECK_FLAG (hello->options, OSPF_OPTION_O))
     {
       /*
@@ -823,7 +820,7 @@
       return;
     }
 
-  if (ospf_nbr_bidirectional (&ospf_top->router_id, hello->neighbors,
+  if (ospf_nbr_bidirectional (&oi->ospf->router_id, hello->neighbors,
 			      size - OSPF_HELLO_MIN_SIZE))
     {
       OSPF_NSM_EVENT_EXECUTE (nbr, NSM_TwoWayReceived);
@@ -1050,7 +1047,7 @@
 
 #ifdef HAVE_OPAQUE_LSA
   if (CHECK_FLAG (dd->options, OSPF_OPTION_O)
-      && !CHECK_FLAG (ospf_top->config, OSPF_OPAQUE_CAPABLE))
+      && !CHECK_FLAG (oi->ospf->config, OSPF_OPAQUE_CAPABLE))
     {
       /*
        * This node is not configured to handle O-bit, for now.
@@ -1081,7 +1078,7 @@
       if ((IS_SET_DD_ALL (dd->flags) == OSPF_DD_FLAG_ALL) &&
 	  (size == OSPF_DB_DESC_MIN_SIZE))
 	{
-	  if (IPV4_ADDR_CMP (&nbr->router_id, &ospf_top->router_id) > 0)
+	  if (IPV4_ADDR_CMP (&nbr->router_id, &oi->ospf->router_id) > 0)
 	    {
 	      /* We're Slave---obey */
 	      zlog_warn ("Packet[DD]: Negotiation done (Slave).");
@@ -1098,7 +1095,7 @@
       /* Ack from the Slave */
       else if (!IS_SET_DD_MS (dd->flags) && !IS_SET_DD_I (dd->flags) &&
 	       ntohl (dd->dd_seqnum) == nbr->dd_seqnum &&
-	       IPV4_ADDR_CMP (&nbr->router_id, &ospf_top->router_id) < 0)
+	       IPV4_ADDR_CMP (&nbr->router_id, &oi->ospf->router_id) < 0)
 	{
 	  zlog_warn ("Packet[DD]: Negotiation done (Master).");
 	  nbr->dd_flags &= ~OSPF_DD_FLAG_I;
@@ -1113,7 +1110,7 @@
       nbr->options = dd->options;
 
 #ifdef HAVE_OPAQUE_LSA
-      if (CHECK_FLAG (ospf_top->config, OSPF_OPAQUE_CAPABLE))
+      if (CHECK_FLAG (oi->ospf->config, OSPF_OPAQUE_CAPABLE))
         {
           if (IS_DEBUG_OSPF_EVENT)
             zlog_info ("Neighbor[%s] is %sOpaque-capable.",
@@ -1610,8 +1607,8 @@
 	 then take the following actions. */
 
       if (IS_LSA_MAXAGE (lsa) && !current &&
-	  (ospf_nbr_count (oi->nbrs, NSM_Exchange) +
-	   ospf_nbr_count (oi->nbrs, NSM_Loading)) == 0)
+	  (ospf_nbr_count (oi, NSM_Exchange) +
+	   ospf_nbr_count (oi, NSM_Loading)) == 0)
 	{
 	  /* Response Link State Acknowledgment. */
 	  ospf_ls_ack_send (nbr, lsa);
@@ -1623,7 +1620,7 @@
 
 #ifdef HAVE_OPAQUE_LSA
       if (IS_OPAQUE_LSA (lsa->data->type)
-      &&  IPV4_ADDR_SAME (&lsa->data->adv_router, &ospf_top->router_id))
+      &&  IPV4_ADDR_SAME (&lsa->data->adv_router, &oi->ospf->router_id))
         {
           /*
            * Even if initial flushing seems to be completed, there might
@@ -1676,7 +1673,7 @@
 	  (ret = ospf_lsa_more_recent (current, lsa)) < 0)
 	{
 	  /* Actual flooding procedure. */
-	  if (ospf_flood (nbr, current, lsa) < 0)  /* Trap NSSA later. */
+	  if (ospf_flood (oi->ospf, nbr, current, lsa) < 0)  /* Trap NSSA later. */
 	    DISCARD_LSA (lsa, 4);
 	  continue;
 	}
@@ -1973,9 +1970,9 @@
 			  struct ip *iph, struct ospf_header *ospfh)
 {
   struct ospf_interface *rcv_oi;
-  listnode node;
   struct ospf_vl_data *vl_data;
   struct ospf_area *vl_area;
+  listnode node;
 
   if (IN_MULTICAST (ntohl (iph->ip_dst.s_addr)) ||
       !OSPF_IS_AREA_BACKBONE (ospfh))
@@ -1983,16 +1980,17 @@
 
   if ((rcv_oi = oi) == NULL)
     {
-     if ((rcv_oi = ospf_if_lookup_by_local_addr (ifp, iph->ip_dst)) == NULL)
+     if ((rcv_oi = ospf_if_lookup_by_local_addr (oi->ospf, ifp,
+						 iph->ip_dst)) == NULL)
        return NULL;
     }
 
-  for (node = listhead (ospf_top->vlinks); node; nextnode (node))
+  for (node = listhead (oi->ospf->vlinks); node; nextnode (node))
     {
       if ((vl_data = getdata (node)) == NULL)
 	continue;
       
-      vl_area = ospf_area_lookup_by_area_id (vl_data->vl_area_id);
+      vl_area = ospf_area_lookup_by_area_id (oi->ospf, vl_data->vl_area_id);
       if (!vl_area)
 	continue;
       
@@ -2195,7 +2193,7 @@
 {
   int ret;
   struct stream *ibuf;
-  struct ospf *top;
+  struct ospf *ospf;
   struct ospf_interface *oi;
   struct ip *iph;
   struct ospf_header *ospfh;
@@ -2203,25 +2201,25 @@
   struct interface *ifp;
 
   /* first of all get interface pointer. */
-  top = THREAD_ARG (thread);
-  top->t_read = NULL;
+  ospf = THREAD_ARG (thread);
+  ospf->t_read = NULL;
 
   /* read OSPF packet. */
-  ibuf = ospf_recv_packet (top->fd, &ifp);
+  ibuf = ospf_recv_packet (ospf->fd, &ifp);
   if (ibuf == NULL)
     return -1;
   
   iph = (struct ip *) STREAM_DATA (ibuf);
 
   /* prepare for next packet. */
-  top->t_read = thread_add_read (master, ospf_read, top, top->fd);
+  ospf->t_read = thread_add_read (master, ospf_read, ospf, ospf->fd);
 
   /* IP Header dump. */
     if (IS_DEBUG_OSPF_PACKET(0, RECV))
 	    ospf_ip_header_dump (ibuf);
 
   /* Self-originated packet should be discarded silently. */
-  if (ospf_if_lookup_by_local_addr (NULL, iph->ip_src))
+  if (ospf_if_lookup_by_local_addr (ospf, NULL, iph->ip_src))
     {
       stream_free (ibuf);
       return 0;
@@ -2234,7 +2232,7 @@
   ospfh = (struct ospf_header *) STREAM_PNT (ibuf);
 
   /* associate packet with ospf interface */
-  oi = ospf_if_lookup_recv_interface (iph->ip_src);
+  oi = ospf_if_lookup_recv_if (ospf, iph->ip_src);
   if (ifp && oi && oi->ifp != ifp)
     {
       zlog_warn ("Packet from [%s] received on wrong link %s",
@@ -2336,7 +2334,7 @@
   ospfh->version = (u_char) OSPF_VERSION;
   ospfh->type = (u_char) type;
 
-  ospfh->router_id = ospf_top->router_id;
+  ospfh->router_id = oi->ospf->router_id;
 
   ospfh->checksum = 0;
   ospfh->area_id = oi->area->area_id;
@@ -2453,25 +2451,21 @@
 
   /* Add neighbor seen. */
   for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
-    if ((nbr = rn->info) != NULL) {
-      /* ignore 0.0.0.0 node. */
-      if (nbr->router_id.s_addr != 0)
-	if (nbr->state != NSM_Attempt)
-	/* ignore Down neighbor. */
-	if (nbr->state != NSM_Down)
-	  /* this is myself for DR election. */
-	  if (!IPV4_ADDR_SAME (&nbr->router_id, &ospf_top->router_id))
+    if ((nbr = rn->info))
+      if (nbr->router_id.s_addr != 0)	/* Ignore 0.0.0.0 node. */
+	if (nbr->state != NSM_Attempt)  /* Ignore Down neighbor. */
+	if (nbr->state != NSM_Down)     /* This is myself for DR election. */
+	  if (!IPV4_ADDR_SAME (&nbr->router_id, &oi->ospf->router_id))
 	    {
 	      /* Check neighbor is sane? */
-	      if (nbr->d_router.s_addr != 0 &&
-		  IPV4_ADDR_SAME (&nbr->d_router, &oi->address->u.prefix4) &&
-		  IPV4_ADDR_SAME (&nbr->bd_router, &oi->address->u.prefix4))
-		flag = 0;
+	      if (nbr->d_router.s_addr != 0
+		  && IPV4_ADDR_SAME (&nbr->d_router, &oi->address->u.prefix4)
+		  && IPV4_ADDR_SAME (&nbr->bd_router, &oi->address->u.prefix4))
+		flag = 1;
 
 	      stream_put_ipv4 (s, nbr->router_id.s_addr);
 	      length += 4;
 	    }
-    }
 
   /* Let neighbor generate BackupSeen. */
   if (flag == 1)
@@ -2503,7 +2497,7 @@
   /* Set Options. */
   options = OPTIONS (oi);
 #ifdef HAVE_OPAQUE_LSA
-  if (CHECK_FLAG (ospf_top->config, OSPF_OPAQUE_CAPABLE))
+  if (CHECK_FLAG (oi->ospf->config, OSPF_OPAQUE_CAPABLE))
     {
       if (IS_SET_DD_I (nbr->dd_flags)
       ||  CHECK_FLAG (nbr->options, OSPF_OPTION_O))
diff --git a/ospfd/ospf_snmp.c b/ospfd/ospf_snmp.c
index 4f9af31..c3e3468 100644
--- a/ospfd/ospf_snmp.c
+++ b/ospfd/ospf_snmp.c
@@ -496,15 +496,15 @@
 /* The administrative status of OSPF.  When OSPF is enbled on at least
    one interface return 1. */
 int
-ospf_admin_stat ()
+ospf_admin_stat (struct ospf *ospf)
 {
   listnode node;
   struct ospf_interface *oi;
 
-  if (! ospf_top)
+  if (ospf == NULL)
     return 0;
 
-  for (node = listhead (ospf_top->oiflist); node; nextnode (node))
+  for (node = listhead (ospf->oiflist); node; nextnode (node))
     {
       oi = getdata (node);
 
@@ -518,6 +518,8 @@
 ospfGeneralGroup (struct variable *v, oid *name, size_t *length,
 		  int exact, size_t *var_len, WriteMethod **write_method)
 {
+  struct ospf *ospf = ospf_top;
+
   /* Check whether the instance identifier is valid */
   if (smux_header_generic (v, name, length, exact, var_len, write_method)
       == MATCH_FAILED)
@@ -528,14 +530,14 @@
     {
     case OSPFROUTERID:		/* 1 */
       /* Router-ID of this OSPF instance. */
-      if (ospf_top)
-	return SNMP_IPADDRESS (ospf_top->router_id);
+      if (ospf)
+	return SNMP_IPADDRESS (ospf->router_id);
       else
 	return SNMP_IPADDRESS (ospf_empty_addr);
       break;
     case OSPFADMINSTAT:		/* 2 */
       /* The administrative status of OSPF in the router. */
-      if (ospf_admin_stat ())
+      if (ospf_admin_stat (ospf))
 	return SNMP_INTEGER (OSPF_STATUS_ENABLED);
       else
 	return SNMP_INTEGER (OSPF_STATUS_DISABLED);
@@ -546,22 +548,22 @@
       break;
     case OSPFAREABDRRTRSTATUS:	/* 4 */
       /* Area Border router status. */
-      if (ospf_top && CHECK_FLAG (ospf_top->flags, OSPF_FLAG_ABR))
+      if (ospf && CHECK_FLAG (ospf->flags, OSPF_FLAG_ABR))
 	return SNMP_INTEGER (SNMP_TRUE);
       else
 	return SNMP_INTEGER (SNMP_FALSE);
       break;
     case OSPFASBDRRTRSTATUS:	/* 5 */
       /* AS Border router status. */
-      if (ospf_top && CHECK_FLAG (ospf_top->flags, OSPF_FLAG_ASBR))
+      if (ospf && CHECK_FLAG (ospf->flags, OSPF_FLAG_ASBR))
 	return SNMP_INTEGER (SNMP_TRUE);
       else
 	return SNMP_INTEGER (SNMP_FALSE);
       break;
     case OSPFEXTERNLSACOUNT:	/* 6 */
       /* External LSA counts. */
-      if (ospf_top)
-	return SNMP_INTEGER (ospf_lsdb_count_all (ospf_top->lsdb));
+      if (ospf)
+	return SNMP_INTEGER (ospf_lsdb_count_all (ospf->lsdb));
       else
 	return SNMP_INTEGER (0);
       break;
@@ -575,16 +577,16 @@
       break;
     case OSPFORIGINATENEWLSAS:	/* 9 */
       /* The number of new link-state advertisements. */
-      if (ospf_top)
-	return SNMP_INTEGER (ospf_top->lsa_originate_count);
+      if (ospf)
+	return SNMP_INTEGER (ospf->lsa_originate_count);
       else
 	return SNMP_INTEGER (0);
       break;
     case OSPFRXNEWLSAS:		/* 10 */
       /* The number of link-state advertisements received determined
          to be new instantiations. */
-      if (ospf_top)
-	return SNMP_INTEGER (ospf_top->rx_lsa_count);
+      if (ospf)
+	return SNMP_INTEGER (ospf->rx_lsa_count);
       else
 	return SNMP_INTEGER (0);
       break;
@@ -612,7 +614,7 @@
 }
 
 struct ospf_area *
-ospf_area_lookup_next (struct in_addr *area_id, int first)
+ospf_area_lookup_next (struct ospf *ospf, struct in_addr *area_id, int first)
 {
   struct ospf_area *area;
   listnode node;
@@ -622,7 +624,7 @@
 
   if (first)
     {
-      node = listhead (ospf_top->areas);
+      node = listhead (ospf->areas);
       if (node)
 	{
 	  area = getdata (node);
@@ -631,7 +633,7 @@
 	}
       return NULL;
     }
-  for (node = listhead (ospf_top->areas); node; nextnode (node))
+  for (node = listhead (ospf->areas); node; nextnode (node))
     {
       area = getdata (node);
 
@@ -648,10 +650,11 @@
 ospfAreaLookup (struct variable *v, oid name[], size_t *length,
 		struct in_addr *addr, int exact)
 {
-  int len;
+  struct ospf *ospf = ospf_top;
   struct ospf_area *area;
+  int len;
 
-  if (! ospf_top)
+  if (ospf == NULL)
     return NULL;
 
   if (exact)
@@ -662,7 +665,7 @@
 
       oid2in_addr (name + v->namelen, sizeof (struct in_addr), addr);
 
-      area = ospf_area_lookup_by_area_id (*addr);
+      area = ospf_area_lookup_by_area_id (ospf, *addr);
 
       return area;
     }
@@ -674,7 +677,7 @@
       
       oid2in_addr (name + v->namelen, len, addr);
 
-      area = ospf_area_lookup_next (addr, len == 0 ? 1 : 0);
+      area = ospf_area_lookup_next (ospf, addr, len == 0 ? 1 : 0);
 
       if (area == NULL)
 	return NULL;
@@ -779,8 +782,9 @@
 ospfStubAreaLookup (struct variable *v, oid name[], size_t *length,
 		    struct in_addr *addr, int exact)
 {
-  int len;
+  struct ospf *ospf = ospf_top;
   struct ospf_area *area;
+  int len;
 
   if (! ospf_top)
     return NULL;
@@ -798,7 +802,7 @@
 
       oid2in_addr (name + v->namelen, sizeof (struct in_addr), addr);
 
-      area = ospf_area_lookup_by_area_id (*addr);
+      area = ospf_area_lookup_by_area_id (ospf, *addr);
 
       if (area->external_routing == OSPF_AREA_STUB)
 	return area;
@@ -906,6 +910,7 @@
 		struct in_addr *area_id, u_char *type,
 		struct in_addr *ls_id, struct in_addr *router_id, int exact)
 {
+  struct ospf *ospf = ospf_top;
   struct ospf_area *area;
   struct ospf_lsa *lsa;
   int len;
@@ -929,7 +934,7 @@
 
       /* Lookup area first. */
       oid2in_addr (offset, IN_ADDR_SIZE, area_id);
-      area = ospf_area_lookup_by_area_id (*area_id);
+      area = ospf_area_lookup_by_area_id (ospf, *area_id);
       if (! area)
 	return NULL;
       offset += IN_ADDR_SIZE;
@@ -962,9 +967,9 @@
 
       /* First we search area. */
       if (len == IN_ADDR_SIZE)
-	area = ospf_area_lookup_by_area_id (*area_id);
+	area = ospf_area_lookup_by_area_id (ospf, *area_id);
       else
-	area = ospf_area_lookup_next (area_id, len == 0 ? 1 : 0);
+	area = ospf_area_lookup_next (ospf, area_id, len == 0 ? 1 : 0);
 
       if (area == NULL)
 	return NULL;
@@ -1038,7 +1043,7 @@
 	      return lsa;
 	    }
 	}
-      while ((area = ospf_area_lookup_next (area_id, 0)) != NULL);
+      while ((area = ospf_area_lookup_next (ospf, area_id, 0)) != NULL);
     }
   return NULL;
 }
@@ -1116,6 +1121,7 @@
   oid *offset;
   int offsetlen;
   int len;
+  struct ospf *ospf = ospf_top;
   struct ospf_area *area;
   struct ospf_area_range *range;
   struct prefix_ipv4 p;
@@ -1134,7 +1140,7 @@
       /* Lookup area first. */
       oid2in_addr (offset, IN_ADDR_SIZE, area_id);
 
-      area = ospf_area_lookup_by_area_id (*area_id);
+      area = ospf_area_lookup_by_area_id (ospf, *area_id);
       if (! area)
 	return NULL;
 
@@ -1160,9 +1166,9 @@
 
       /* First we search area. */
       if (len == IN_ADDR_SIZE)
-	area = ospf_area_lookup_by_area_id (*area_id);
+	area = ospf_area_lookup_by_area_id (ospf,*area_id);
       else
-	area = ospf_area_lookup_next (area_id, len == 0 ? 1 : 0);
+	area = ospf_area_lookup_next (ospf, area_id, len == 0 ? 1 : 0);
 
       if (area == NULL)
 	return NULL;
@@ -1197,7 +1203,7 @@
 	      return range;
 	    }
 	}
-      while ((area = ospf_area_lookup_next (area_id, 0)) != NULL);
+      while ((area = ospf_area_lookup_next (ospf, area_id, 0)) != NULL);
     }
   return NULL;
 }
@@ -1210,9 +1216,10 @@
   struct in_addr area_id;
   struct in_addr range_net;
   struct in_addr mask;
+  struct ospf *ospf = ospf_top;
   
   /* Check OSPF instance. */
-  if (! ospf_top)
+  if (ospf == NULL)
     return NULL;
 
   memset (&area_id, 0, IN_ADDR_SIZE);
@@ -1258,8 +1265,9 @@
 {
   int len;
   struct ospf_nbr_nbma *nbr_nbma;
+  struct ospf *ospf = ospf_top;
 
-  if (! ospf_top)
+  if (ospf == NULL)
     return NULL;
 
   if (exact)
@@ -1274,7 +1282,7 @@
 
       oid2in_addr (name + v->namelen, IN_ADDR_SIZE, addr);
 
-      nbr_nbma = ospf_nbr_nbma_lookup (ospf_top, *addr);
+      nbr_nbma = ospf_nbr_nbma_lookup (ospf, *addr);
 
       return nbr_nbma;
     }
@@ -1286,7 +1294,7 @@
       
       oid2in_addr (name + v->namelen, len, addr);
 
-      nbr_nbma = ospf_nbr_nbma_lookup_next (addr, len == 0 ? 1 : 0);
+      nbr_nbma = ospf_nbr_nbma_lookup_next (ospf, addr, len == 0 ? 1 : 0);
 
       if (nbr_nbma == NULL)
 	return NULL;
@@ -1310,9 +1318,10 @@
   struct ospf_nbr_nbma *nbr_nbma;
   struct ospf_interface *oi;
   struct in_addr addr;
+  struct ospf *ospf = ospf_top;
 
   /* Check OSPF instance. */
-  if (! ospf_top)
+  if (ospf == NULL)
     return NULL;
 
   memset (&addr, 0, sizeof (struct in_addr));
@@ -1600,19 +1609,20 @@
   unsigned int ifindex;
   struct in_addr ifaddr;
   struct ospf_interface *oi;
+  struct ospf *ospf = ospf_top;
 
   ifindex = 0;
   memset (&ifaddr, 0, sizeof (struct in_addr));
 
   /* Check OSPF instance. */
-  if (! ospf_top)
+  if (ospf == NULL)
     return NULL;
 
   ifp = ospfIfLookup (v, name, length, &ifaddr, &ifindex, exact);
   if (ifp == NULL)
     return NULL;
 
-  oi = ospf_if_lookup_by_local_addr (ifp, ifaddr);
+  oi = ospf_if_lookup_by_local_addr (ospf, ifp, ifaddr);
   if (oi == NULL)
     return NULL;
 
@@ -1771,19 +1781,20 @@
   unsigned int ifindex;
   struct in_addr ifaddr;
   struct ospf_interface *oi;
+  struct ospf *ospf = ospf_top;
 
   ifindex = 0;
   memset (&ifaddr, 0, sizeof (struct in_addr));
 
   /* Check OSPF instance. */
-  if (! ospf_top)
+  if (ospf == NULL)
     return NULL;
 
   ifp = ospfIfMetricLookup (v, name, length, &ifaddr, &ifindex, exact);
   if (ifp == NULL)
     return NULL;
 
-  oi = ospf_if_lookup_by_local_addr (ifp, ifaddr);
+  oi = ospf_if_lookup_by_local_addr (ospf, ifp, ifaddr);
   if (oi == NULL)
     return NULL;
 
@@ -2025,14 +2036,15 @@
 }
 
 struct ospf_neighbor *
-ospf_snmp_nbr_lookup (struct in_addr *nbr_addr, unsigned int *ifindex)
+ospf_snmp_nbr_lookup (struct ospf *ospf, struct in_addr *nbr_addr,
+		      unsigned int *ifindex)
 {
   struct listnode *nn;
   struct ospf_interface *oi;
   struct ospf_neighbor *nbr;
   struct route_node *rn;
 
-  LIST_LOOP (ospf_top->oiflist, oi, nn)
+  LIST_LOOP (ospf->oiflist, oi, nn)
     {
       for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
 	if ((nbr = rn->info) != NULL
@@ -2059,8 +2071,9 @@
   struct ospf_neighbor *nbr;
   struct route_node *rn;
   struct ospf_neighbor *min = NULL;
+  struct ospf *ospf = ospf_top;
 
-  LIST_LOOP (ospf_top->oiflist, oi, nn)
+  LIST_LOOP (ospf->oiflist, oi, nn)
     {
       for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
 	if ((nbr = rn->info) != NULL
@@ -2100,6 +2113,7 @@
   int len;
   int first;
   struct ospf_neighbor *nbr;
+  struct ospf *ospf = ospf_top;
 
   if (exact)
     {
@@ -2109,7 +2123,7 @@
       oid2in_addr (name + v->namelen, IN_ADDR_SIZE, nbr_addr);
       *ifindex = name[v->namelen + IN_ADDR_SIZE];
 
-      return ospf_snmp_nbr_lookup (nbr_addr, ifindex);
+      return ospf_snmp_nbr_lookup (ospf, nbr_addr, ifindex);
     }
   else
     {
@@ -2210,12 +2224,13 @@
   struct ospf_vl_data *vl_data;
   struct in_addr area_id;
   struct in_addr neighbor;
+  struct ospf *ospf = ospf_top;
 
   memset (&area_id, 0, sizeof (struct in_addr));
   memset (&neighbor, 0, sizeof (struct in_addr));
 
   /* Check OSPF instance. */
-  if (! ospf_top)
+  if (ospf == NULL)
     return NULL;
 
   vl_data = ospfVirtIfLookup (v, name, length, &area_id, &neighbor, exact);
@@ -2266,6 +2281,7 @@
   u_char lsa_type;
   int len;
   struct ospf_lsa *lsa;
+  struct ospf *ospf = ospf_top;
 
   if (exact)
     {
@@ -2288,7 +2304,7 @@
       /* Router ID. */
       oid2in_addr (offset, IN_ADDR_SIZE, router_id);
 
-      return ospf_lsdb_lookup_by_id (ospf_top->lsdb, *type, *ls_id, *router_id);
+      return ospf_lsdb_lookup_by_id (ospf->lsdb, *type, *ls_id, *router_id);
     }
   else
     {
@@ -2322,7 +2338,7 @@
 
       oid2in_addr (offset, len, router_id);
 
-      lsa = ospf_lsdb_lookup_by_id_next (ospf_top->lsdb, *type, *ls_id,
+      lsa = ospf_lsdb_lookup_by_id_next (ospf->lsdb, *type, *ls_id,
 					*router_id, first);
 
       if (lsa)
@@ -2354,13 +2370,14 @@
   u_char type;
   struct in_addr ls_id;
   struct in_addr router_id;
+  struct ospf *ospf = ospf_top;
 
   type = OSPF_AS_EXTERNAL_LSA;
   memset (&ls_id, 0, sizeof (struct in_addr));
   memset (&router_id, 0, sizeof (struct in_addr));
 
   /* Check OSPF instance. */
-  if (! ospf_top)
+  if (ospf == NULL)
     return NULL;
 
   lsa = ospfExtLsdbLookup (v, name, length, &type, &ls_id, &router_id, exact);
diff --git a/ospfd/ospf_spf.c b/ospfd/ospf_spf.c
index 6e92bb2..1586a3a 100644
--- a/ospfd/ospf_spf.c
+++ b/ospfd/ospf_spf.c
@@ -365,39 +365,41 @@
 	      
 	      if (l->m[0].type == LSA_LINK_TYPE_POINTOPOINT)
 		{
-		  /* check for PtMP, signified by PtP link V->W with link_data our PtMP interface */
-                  oi = ospf_if_is_configured(&l->link_data);
+		  /* Check for PtMP, signified by PtP link V->W
+		     with link_data our PtMP interface. */
+                  oi = ospf_if_is_configured (area->ospf, &l->link_data);
                   if (oi && oi->type == OSPF_IFTYPE_POINTOMULTIPOINT)
 		    {
-		    
-		      struct prefix_ipv4 * la = prefix_ipv4_new();
-		      la->prefixlen = oi->address->prefixlen;
-		      
-		      /* we link to them on PtMP interface - find the interface on w */
+		      struct prefix_ipv4 la;
+		      la.prefixlen = oi->address->prefixlen;
+		      /* We link to them on PtMP interface
+			 - find the interface on w */
 		      while ((l2 = ospf_get_next_link (w, v, l2)))
 			{
-			  la->prefix = l2->link_data;
+			  la.prefix = l2->link_data;
 			  
-			  if (prefix_cmp((struct prefix *)la, oi->address) == 0)
+			  if (prefix_cmp ((struct prefix *)&la,
+					  oi->address) == 0)
 			    /* link_data is on our PtMP network */
 			    break;
-			  
 			}
 		    }
 		  else
 		    {                                
 		      while ((l2 = ospf_get_next_link (w, v, l2)))
 			{
-			  oi = ospf_if_is_configured (&(l2->link_data));
+			  oi = ospf_if_is_configured (area->ospf,
+						      &(l2->link_data));
 			  
 			  if (oi == NULL)
 			    continue;
 			  
-			  if (!IPV4_ADDR_SAME (&oi->address->u.prefix4, &l->link_data))
+			  if (!IPV4_ADDR_SAME (&oi->address->u.prefix4,
+					       &l->link_data))
 			    continue;
 			  
 			  break;
-                      }
+			}
 		    }
 		  
 		  if (oi && l2)
@@ -414,7 +416,7 @@
 	{
 	  while ((l = ospf_get_next_link (v, w, l)))
 	    {
-	      oi = ospf_if_is_configured (&(l->link_data));
+	      oi = ospf_if_is_configured (area->ospf, &(l->link_data));
 	      if (oi)
 		{
 		  nh = vertex_nexthop_new (v);
@@ -995,7 +997,7 @@
   /* Increment SPF Calculation Counter. */
   area->spf_calculation++;
 
-  ospf_top->ts_spf = time (NULL);
+  area->ospf->ts_spf = time (NULL);
 
   if (IS_DEBUG_OSPF_EVENT)
     zlog_info ("ospf_spf_calculate: Stop");
@@ -1003,32 +1005,30 @@
 
 /* Timer for SPF calculation. */
 int
-ospf_spf_calculate_timer (struct thread *t)
+ospf_spf_calculate_timer (struct thread *thread)
 {
+  struct ospf *ospf = THREAD_ARG (thread);
   struct route_table *new_table, *new_rtrs;
-  struct ospf *ospf;
-  /* struct ospf_area *area; */
   listnode node;
 
   if (IS_DEBUG_OSPF_EVENT)
     zlog_info ("SPF: Timer (SPF calculation expire)");
   
-  ospf = THREAD_ARG (t);
   ospf->t_spf_calc = NULL;
 
   /* Allocate new table tree. */
   new_table = route_table_init ();
   new_rtrs  = route_table_init ();
 
-  ospf_vl_unapprove ();
+  ospf_vl_unapprove (ospf);
 
   /* Calculate SPF for each area. */
   for (node = listhead (ospf->areas); node; node = nextnode (node))
     ospf_spf_calculate (node->data, new_table, new_rtrs);
 
-  ospf_vl_shut_unapproved ();
+  ospf_vl_shut_unapproved (ospf);
 
-  ospf_ia_routing (new_table, new_rtrs);
+  ospf_ia_routing (ospf, new_table, new_rtrs);
 
   ospf_prune_unreachable_networks (new_table);
   ospf_prune_unreachable_routers (new_rtrs);
@@ -1038,26 +1038,26 @@
   /* If new Router Route is installed,
      then schedule re-calculate External routes. */
   if (1)
-    ospf_ase_calculate_schedule ();
+    ospf_ase_calculate_schedule (ospf);
 
-  ospf_ase_calculate_timer_add ();
+  ospf_ase_calculate_timer_add (ospf);
 
   /* Update routing table. */
-  ospf_route_install (new_table);
+  ospf_route_install (ospf, new_table);
 
   /* Update ABR/ASBR routing table */
-  if (ospf_top->old_rtrs)
+  if (ospf->old_rtrs)
     {
       /* old_rtrs's node holds linked list of ospf_route. --kunihiro. */
-      /* ospf_route_delete (ospf_top->old_rtrs); */
-      ospf_rtrs_free (ospf_top->old_rtrs);
+      /* ospf_route_delete (ospf->old_rtrs); */
+      ospf_rtrs_free (ospf->old_rtrs);
     }
 
-  ospf_top->old_rtrs = ospf_top->new_rtrs;
-  ospf_top->new_rtrs = new_rtrs;
+  ospf->old_rtrs = ospf->new_rtrs;
+  ospf->new_rtrs = new_rtrs;
 
   if (OSPF_IS_ABR) 
-    ospf_abr_task (new_table, new_rtrs);
+    ospf_abr_task (ospf);
 
   if (IS_DEBUG_OSPF_EVENT)
     zlog_info ("SPF: calculation complete");
@@ -1068,7 +1068,7 @@
 /* Add schedule for SPF calculation.  To avoid frequenst SPF calc, we
    set timer for SPF calc. */
 void
-ospf_spf_calculate_schedule ()
+ospf_spf_calculate_schedule (struct ospf *ospf)
 {
   time_t ht, delay;
 
@@ -1076,34 +1076,34 @@
     zlog_info ("SPF: calculation timer scheduled");
 
   /* OSPF instance does not exist. */
-  if (!ospf_top)
+  if (ospf == NULL)
     return;
 
   /* SPF calculation timer is already scheduled. */
-  if (ospf_top->t_spf_calc)
+  if (ospf->t_spf_calc)
     {
       if (IS_DEBUG_OSPF_EVENT)
 	zlog_info ("SPF: calculation timer is already scheduled: %p",
-		   ospf_top->t_spf_calc);
+		   ospf->t_spf_calc);
       return;
     }
 
-  ht = time (NULL) - ospf_top->ts_spf;
+  ht = time (NULL) - ospf->ts_spf;
 
   /* Get SPF calculation delay time. */
-  if (ht < ospf_top->spf_holdtime)
+  if (ht < ospf->spf_holdtime)
     {
-      if (ospf_top->spf_holdtime - ht < ospf_top->spf_delay)
-	delay = ospf_top->spf_delay;
+      if (ospf->spf_holdtime - ht < ospf->spf_delay)
+	delay = ospf->spf_delay;
       else
-	delay = ospf_top->spf_holdtime - ht;
+	delay = ospf->spf_holdtime - ht;
     }
   else
-    delay = ospf_top->spf_delay;
+    delay = ospf->spf_delay;
 
   if (IS_DEBUG_OSPF_EVENT)
     zlog_info ("SPF: calculation timer delay = %ld", delay);
-  ospf_top->t_spf_calc =
-    thread_add_timer (master, ospf_spf_calculate_timer, ospf_top, delay);
+  ospf->t_spf_calc =
+    thread_add_timer (master, ospf_spf_calculate_timer, ospf, delay);
 }
 
diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c
index accf7a8..fff6f65 100644
--- a/ospfd/ospf_vty.c
+++ b/ospfd/ospf_vty.c
@@ -199,8 +199,9 @@
        "router-id for the OSPF process\n"
        "OSPF router-id in IP address format\n")
 {
-  int ret;
+  struct ospf *ospf = vty->index;
   struct in_addr router_id;
+  int ret;
 
   ret = inet_aton (argv[0], &router_id);
   if (!ret)
@@ -209,11 +210,10 @@
       return CMD_WARNING;
     }
 
-  /* ospf_top->router_id = router_id; */
-  ospf_top->router_id_static = router_id;
+  ospf->router_id_static = router_id;
 
-  if (ospf_top->t_router_id_update == NULL)
-    ospf_top->t_router_id_update =
+  if (ospf->t_router_id_update == NULL)
+    ospf->t_router_id_update =
       thread_add_timer (master, ospf_router_id_update_timer, NULL,
 			OSPF_ROUTER_ID_UPDATE_DELAY);
 
@@ -233,9 +233,11 @@
        "OSPF specific commands\n"
        "router-id for the OSPF process\n")
 {
-  ospf_top->router_id_static.s_addr = 0;
+  struct ospf *ospf = vty->index;
 
-  ospf_router_id_update ();
+  ospf->router_id_static.s_addr = 0;
+
+  ospf_router_id_update (ospf);
 
   return CMD_SUCCESS;
 }
@@ -647,7 +649,7 @@
 }
 
 struct ospf_vl_data *
-ospf_find_vl_data (struct ospf_vl_config_data *vl_config)
+ospf_find_vl_data (struct ospf *ospf, struct ospf_vl_config_data *vl_config)
 {
   struct ospf_area *area;
   struct ospf_vl_data *vl_data;
@@ -664,7 +666,7 @@
                VTY_NEWLINE);
       return NULL;
     }
-  area = ospf_area_get (area_id, vl_config->format);
+  area = ospf_area_get (ospf, area_id, vl_config->format);
 
   if (area->external_routing != OSPF_AREA_DEFAULT)
     {
@@ -694,9 +696,9 @@
       vl_data = ospf_vl_data_new (area, vl_config->vl_peer);
       if (vl_data->vl_oi == NULL)
 	{
-	  vl_data->vl_oi = ospf_vl_new (vl_data);
-	  ospf_vl_add (vl_data);
-	  ospf_spf_calculate_schedule ();
+	  vl_data->vl_oi = ospf_vl_new (ospf, vl_data);
+	  ospf_vl_add (ospf, vl_data);
+	  ospf_spf_calculate_schedule (ospf);
 	}
     }
   return vl_data;
@@ -800,12 +802,12 @@
 
 /* The business end of all of the above */
 int
-ospf_vl_set (struct ospf_vl_config_data *vl_config)
+ospf_vl_set (struct ospf *ospf, struct ospf_vl_config_data *vl_config)
 {
   struct ospf_vl_data *vl_data;
   int ret;
 
-  vl_data = ospf_find_vl_data (vl_config);
+  vl_data = ospf_find_vl_data (ospf, vl_config);
   if (!vl_data)
     return CMD_WARNING;
   
@@ -872,6 +874,7 @@
        "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D",
        VLINK_HELPSTR_IPADDR)
 {
+  struct ospf *ospf = vty->index;
   struct ospf_vl_config_data vl_config;
   char auth_key[OSPF_AUTH_SIMPLE_SIZE+1];
   char md5_key[OSPF_AUTH_MD5_SIZE+1]; 
@@ -900,7 +903,7 @@
     {
       /* Thats all folks! - BUGS B. strikes again!!!*/
 
-      return  ospf_vl_set (&vl_config);
+      return  ospf_vl_set (ospf, &vl_config);
     }
 
   /* Deal with other parameters */
@@ -996,7 +999,7 @@
 
   /* Action configuration */
 
-  return ospf_vl_set (&vl_config);
+  return ospf_vl_set (ospf, &vl_config);
 
 }
 
@@ -1006,6 +1009,7 @@
        NO_STR
        VLINK_HELPSTR_IPADDR)
 {
+  struct ospf *ospf = vty->index;
   struct ospf_area *area;
   struct ospf_vl_config_data vl_config;
   struct ospf_vl_data *vl_data = NULL;
@@ -1022,7 +1026,7 @@
       return CMD_WARNING;
     }
 
-  area = ospf_area_lookup_by_area_id (vl_config.area_id);
+  area = ospf_area_lookup_by_area_id (ospf, vl_config.area_id);
   if (!area)
     {
       vty_out (vty, "Area does not exist%s", VTY_NEWLINE);
@@ -1042,9 +1046,9 @@
       /* Basic VLink no command */
       /* Thats all folks! - BUGS B. strikes again!!!*/
       if ((vl_data = ospf_vl_lookup (area, vl_config.vl_peer)))
-	ospf_vl_delete (vl_data);
+	ospf_vl_delete (ospf, vl_data);
 
-      ospf_area_check_free (vl_config.area_id);
+      ospf_area_check_free (ospf, vl_config.area_id);
       
       return CMD_SUCCESS;
     }
@@ -1054,7 +1058,6 @@
   /* Deal with other parameters */
   for (i=2; i < argc; i++)
     {
-
       /* vty_out (vty, "argv[%d] - %s%s", i, argv[i], VTY_NEWLINE); */
 
       switch (argv[i][0])
@@ -1113,7 +1116,7 @@
 
   /* Action configuration */
 
-  return ospf_vl_set (&vl_config);
+  return ospf_vl_set (ospf, &vl_config);
 }
 
 ALIAS (area_vlink,
@@ -1320,6 +1323,7 @@
        "Enable shortcutting through the area\n"
        "Disable shortcutting through the area\n")
 {
+  struct ospf *ospf = vty->index;
   struct ospf_area *area;
   struct in_addr area_id;
   int mode;
@@ -1327,7 +1331,7 @@
 
   VTY_GET_OSPF_AREA_ID_NO_BB ("shortcut", area_id, format, argv[0]);
 
-  area = ospf_area_get (area_id, format);
+  area = ospf_area_get (ospf, area_id, format);
 
   if (strncmp (argv[1], "de", 2) == 0)
     mode = OSPF_SHORTCUT_DEFAULT;
@@ -1338,9 +1342,9 @@
   else
     return CMD_WARNING;
 
-  ospf_area_shortcut_set (area, mode);
+  ospf_area_shortcut_set (ospf, area, mode);
 
-  if (ospf_top->abr_type != OSPF_ABR_SHORTCUT)
+  if (ospf->abr_type != OSPF_ABR_SHORTCUT)
     vty_out (vty, "Shortcut area setting will take effect "
 	     "only when the router is configured as Shortcut ABR%s",
 	     VTY_NEWLINE);
@@ -1359,17 +1363,18 @@
        "Deconfigure enabled shortcutting through the area\n"
        "Deconfigure disabled shortcutting through the area\n")
 {
+  struct ospf *ospf = vty->index;
   struct ospf_area *area;
   struct in_addr area_id;
   int format;
 
   VTY_GET_OSPF_AREA_ID_NO_BB ("shortcut", area_id, format, argv[0]);
 
-  area = ospf_area_lookup_by_area_id (area_id);
+  area = ospf_area_lookup_by_area_id (ospf, area_id);
   if (!area)
     return CMD_SUCCESS;
 
-  ospf_area_shortcut_unset (area);
+  ospf_area_shortcut_unset (ospf, area);
 
   return CMD_SUCCESS;
 }
@@ -1617,6 +1622,7 @@
        "Set the summary-default cost of a NSSA or stub area\n"
        "Stub's advertised default summary cost\n")
 {
+  struct ospf *ospf = vty->index;
   struct ospf_area *area;
   struct in_addr area_id;
   u_int32_t cost;
@@ -1625,7 +1631,7 @@
   VTY_GET_OSPF_AREA_ID_NO_BB ("default-cost", area_id, format, argv[0]);
   VTY_GET_INTEGER_RANGE ("stub default cost", cost, argv[1], 0, 16777215);
 
-  area = ospf_area_get (area_id, format);
+  area = ospf_area_get (ospf, area_id, format);
 
   if (area->external_routing == OSPF_AREA_DEFAULT)
     {
@@ -1648,6 +1654,7 @@
        "Set the summary-default cost of a NSSA or stub area\n"
        "Stub's advertised default summary cost\n")
 {
+  struct ospf *ospf = vty->index;
   struct ospf_area *area;
   struct in_addr area_id;
   u_int32_t cost;
@@ -1656,7 +1663,7 @@
   VTY_GET_OSPF_AREA_ID_NO_BB ("default-cost", area_id, format, argv[0]);
   VTY_GET_INTEGER_RANGE ("stub default cost", cost, argv[1], 0, 16777215);
 
-  area = ospf_area_lookup_by_area_id (area_id);
+  area = ospf_area_lookup_by_area_id (ospf, area_id);
   if (area == NULL)
     return CMD_SUCCESS;
 
@@ -1668,7 +1675,7 @@
 
   area->default_cost = 1;
 
-  ospf_area_check_free (area_id);
+  ospf_area_check_free (ospf, area_id);
 
   return CMD_SUCCESS;
 }
@@ -1682,14 +1689,15 @@
        "Set the filter for networks announced to other areas\n"
        "Name of the access-list\n")
 {
+  struct ospf *ospf = vty->index;
   struct ospf_area *area;
   struct in_addr area_id;
   int format;
 
   VTY_GET_OSPF_AREA_ID_NO_BB ("export-list", area_id, format, argv[0]);
 
-  area = ospf_area_get (area_id, format);
-  ospf_area_export_list_set (area, argv[1]);
+  area = ospf_area_get (ospf, area_id, format);
+  ospf_area_export_list_set (ospf, area, argv[1]);
 
   return CMD_SUCCESS;
 }
@@ -1704,17 +1712,18 @@
        "Unset the filter for networks announced to other areas\n"
        "Name of the access-list\n")
 {
+  struct ospf *ospf = vty->index;
   struct ospf_area *area;
   struct in_addr area_id;
   int format;
 
   VTY_GET_OSPF_AREA_ID_NO_BB ("export-list", area_id, format, argv[0]);
 
-  area = ospf_area_lookup_by_area_id (area_id);
+  area = ospf_area_lookup_by_area_id (ospf, area_id);
   if (area == NULL)
     return CMD_SUCCESS;
 
-  ospf_area_export_list_unset (area);
+  ospf_area_export_list_unset (ospf, area);
 
   return CMD_SUCCESS;
 }
@@ -1729,14 +1738,15 @@
        "Set the filter for networks from other areas announced to the specified one\n"
        "Name of the access-list\n")
 {
+  struct ospf *ospf = vty->index;
   struct ospf_area *area;
   struct in_addr area_id;
   int format;
 
   VTY_GET_OSPF_AREA_ID_NO_BB ("import-list", area_id, format, argv[0]);
 
-  area = ospf_area_get (area_id, format);
-  ospf_area_import_list_set (area, argv[1]);
+  area = ospf_area_get (ospf, area_id, format);
+  ospf_area_import_list_set (ospf, area, argv[1]);
 
   return CMD_SUCCESS;
 }
@@ -1751,16 +1761,17 @@
        "Unset the filter for networks announced to other areas\n"
        "Name of the access-list\n")
 {
+  struct ospf *ospf = vty->index;
   struct ospf_area *area;
   struct in_addr area_id;
   int format;
 
   VTY_GET_OSPF_AREA_ID_NO_BB ("import-list", area_id, format, argv[0]);
-  area = ospf_area_lookup_by_area_id (area_id);
+  area = ospf_area_lookup_by_area_id (ospf, area_id);
   if (area == NULL)
     return CMD_SUCCESS;
 
-  ospf_area_import_list_unset (area);
+  ospf_area_import_list_unset (ospf, area);
 
   return CMD_SUCCESS;
 }
@@ -1777,6 +1788,7 @@
        "Filter networks sent to this area\n"
        "Filter networks sent from this area\n")
 {
+  struct ospf *ospf = vty->index;
   struct ospf_area *area;
   struct in_addr area_id;
   struct prefix_list *plist;
@@ -1784,7 +1796,7 @@
 
   VTY_GET_OSPF_AREA_ID (area_id, format, argv[0]);
 
-  area = ospf_area_get (area_id, format);
+  area = ospf_area_get (ospf, area_id, format);
   plist = prefix_list_lookup (AFI_IP, argv[1]);
   if (strncmp (argv[2], "in", 2) == 0)
     {
@@ -1793,7 +1805,7 @@
 	free (PREFIX_NAME_IN (area));
 
       PREFIX_NAME_IN (area) = strdup (argv[1]);
-      ospf_schedule_abr_task ();
+      ospf_schedule_abr_task (ospf);
     }
   else
     {
@@ -1802,7 +1814,7 @@
 	free (PREFIX_NAME_OUT (area));
 
       PREFIX_NAME_OUT (area) = strdup (argv[1]);
-      ospf_schedule_abr_task ();
+      ospf_schedule_abr_task (ospf);
     }
 
   return CMD_SUCCESS;
@@ -1821,6 +1833,7 @@
        "Filter networks sent to this area\n"
        "Filter networks sent from this area\n")
 {
+  struct ospf *ospf = vty->index;
   struct ospf_area *area;
   struct in_addr area_id;
   struct prefix_list *plist;
@@ -1828,7 +1841,7 @@
 
   VTY_GET_OSPF_AREA_ID (area_id, format, argv[0]);
 
-  area = ospf_area_lookup_by_area_id (area_id);
+  area = ospf_area_lookup_by_area_id (ospf, area_id);
   plist = prefix_list_lookup (AFI_IP, argv[1]);
   if (strncmp (argv[2], "in", 2) == 0)
     {
@@ -1842,7 +1855,7 @@
 
       PREFIX_NAME_IN (area) = NULL;
 
-      ospf_schedule_abr_task ();
+      ospf_schedule_abr_task (ospf);
     }
   else
     {
@@ -1856,7 +1869,7 @@
 
       PREFIX_NAME_OUT (area) = NULL;
 
-      ospf_schedule_abr_task ();
+      ospf_schedule_abr_task (ospf);
     }
 
   return CMD_SUCCESS;
@@ -1870,13 +1883,14 @@
        "Enable authentication\n"
        "Use message-digest authentication\n")
 {
+  struct ospf *ospf = vty->index;
   struct ospf_area *area;
   struct in_addr area_id;
   int format;
 
   VTY_GET_OSPF_AREA_ID (area_id, format, argv[0]);
 
-  area = ospf_area_get (area_id, format);
+  area = ospf_area_get (ospf, area_id, format);
   area->auth_type = OSPF_AUTH_CRYPTOGRAPHIC;
 
   return CMD_SUCCESS;
@@ -1890,13 +1904,14 @@
        "OSPF area ID as a decimal value\n"
        "Enable authentication\n")
 {
+  struct ospf *ospf = vty->index;
   struct ospf_area *area;
   struct in_addr area_id;
   int format;
 
   VTY_GET_OSPF_AREA_ID (area_id, format, argv[0]);
 
-  area = ospf_area_get (area_id, format);
+  area = ospf_area_get (ospf, area_id, format);
   area->auth_type = OSPF_AUTH_SIMPLE;
 
   return CMD_SUCCESS;
@@ -1911,19 +1926,20 @@
        "OSPF area ID as a decimal value\n"
        "Enable authentication\n")
 {
+  struct ospf *ospf = vty->index;
   struct ospf_area *area;
   struct in_addr area_id;
   int format;
 
   VTY_GET_OSPF_AREA_ID (area_id, format, argv[0]);
 
-  area = ospf_area_lookup_by_area_id (area_id);
+  area = ospf_area_lookup_by_area_id (ospf, area_id);
   if (area == NULL)
     return CMD_SUCCESS;
 
   area->auth_type = OSPF_AUTH_NULL;
 
-  ospf_area_check_free (area_id);
+  ospf_area_check_free (ospf, area_id);
   
   return CMD_SUCCESS;
 }
@@ -1939,6 +1955,7 @@
        "Shortcut ABR\n"
        "Standard behavior (RFC2328)\n")
 {
+  struct ospf *ospf = vty->index;
   u_char abr_type = OSPF_ABR_UNKNOWN;
 
   if (strncmp (argv[0], "c", 1) == 0)
@@ -1953,10 +1970,10 @@
     return CMD_WARNING;
 
   /* If ABR type value is changed, schedule ABR task. */
-  if (ospf_top->abr_type != abr_type)
+  if (ospf->abr_type != abr_type)
     {
-      ospf_top->abr_type = abr_type;
-      ospf_schedule_abr_task ();
+      ospf->abr_type = abr_type;
+      ospf_schedule_abr_task (ospf);
     }
 
   return CMD_SUCCESS;
@@ -1972,6 +1989,7 @@
        "Alternative ABR, IBM implementation\n"
        "Shortcut ABR\n")
 {
+  struct ospf *ospf = vty->index;
   u_char abr_type = OSPF_ABR_UNKNOWN;
 
   if (strncmp (argv[0], "c", 1) == 0)
@@ -1984,10 +2002,10 @@
     return CMD_WARNING;
 
   /* If ABR type value is changed, schedule ABR task. */
-  if (ospf_top->abr_type == abr_type)
+  if (ospf->abr_type == abr_type)
     {
-      ospf_top->abr_type = OSPF_ABR_STAND;
-      ospf_schedule_abr_task ();
+      ospf->abr_type = OSPF_ABR_STAND;
+      ospf_schedule_abr_task (ospf);
     }
 
   return CMD_SUCCESS;
@@ -2004,7 +2022,7 @@
   if (!CHECK_FLAG (ospf->config, OSPF_RFC1583_COMPATIBLE))
     {
       SET_FLAG (ospf->config, OSPF_RFC1583_COMPATIBLE);
-      ospf_spf_calculate_schedule ();
+      ospf_spf_calculate_schedule (ospf);
     }
   return CMD_SUCCESS;
 }
@@ -2021,7 +2039,7 @@
   if (CHECK_FLAG (ospf->config, OSPF_RFC1583_COMPATIBLE))
     {
       UNSET_FLAG (ospf->config, OSPF_RFC1583_COMPATIBLE);
-      ospf_spf_calculate_schedule ();
+      ospf_spf_calculate_schedule (ospf);
     }
   return CMD_SUCCESS;
 }
@@ -2065,8 +2083,10 @@
        "Adjust routing timers\n"
        "OSPF SPF timers\n")
 {
-  ospf_top->spf_delay = OSPF_SPF_DELAY_DEFAULT;
-  ospf_top->spf_holdtime = OSPF_SPF_HOLDTIME_DEFAULT;
+  struct ospf *ospf = vty->index;
+
+  ospf->spf_delay = OSPF_SPF_DELAY_DEFAULT;
+  ospf->spf_holdtime = OSPF_SPF_HOLDTIME_DEFAULT;
 
   return CMD_SUCCESS;
 }
@@ -2259,6 +2279,7 @@
        "Use reference bandwidth method to assign OSPF cost\n"
        "The reference bandwidth in terms of Mbits per second\n")
 {
+  struct ospf *ospf = vty->index;
   u_int32_t refbw;
   listnode node;
 
@@ -2270,14 +2291,14 @@
     }
 
   /* If reference bandwidth is changed. */
-  if ((refbw * 1000) == ospf_top->ref_bandwidth)
+  if ((refbw * 1000) == ospf->ref_bandwidth)
     return CMD_SUCCESS;
   
-  ospf_top->ref_bandwidth = refbw * 1000;
+  ospf->ref_bandwidth = refbw * 1000;
   vty_out (vty, "%% OSPF: Reference bandwidth is changed.%s", VTY_NEWLINE);
   vty_out (vty, "        Please ensure reference bandwidth is consistent across all routers%s", VTY_NEWLINE);
       
-  for (node = listhead (ospf_top->iflist); node; nextnode (node))
+  for (node = listhead (ospf->iflist); node; nextnode (node))
       ospf_if_recalculate_output_cost (getdata (node));
   
   return CMD_SUCCESS;
@@ -2290,61 +2311,22 @@
        "Calculate OSPF interface cost according to bandwidth\n"
        "Use reference bandwidth method to assign OSPF cost\n")
 {
+  struct ospf *ospf = vty->index;
   listnode node;
 
-  if (ospf_top->ref_bandwidth == OSPF_DEFAULT_REF_BANDWIDTH)
+  if (ospf->ref_bandwidth == OSPF_DEFAULT_REF_BANDWIDTH)
     return CMD_SUCCESS;
   
-  ospf_top->ref_bandwidth = OSPF_DEFAULT_REF_BANDWIDTH;
+  ospf->ref_bandwidth = OSPF_DEFAULT_REF_BANDWIDTH;
   vty_out (vty, "%% OSPF: Reference bandwidth is changed.%s", VTY_NEWLINE);
   vty_out (vty, "        Please ensure reference bandwidth is consistent across all routers%s", VTY_NEWLINE);
 
-  
-    for (node = listhead (ospf_top->iflist); node; nextnode (node))
+    for (node = listhead (ospf->iflist); node; nextnode (node))
       ospf_if_recalculate_output_cost (getdata (node));
       
   return CMD_SUCCESS;
 }
 
-
-DEFUN (clear_ip_ospf_neighbor,
-       clear_ip_ospf_neighbor_cmd,
-       "clear ip ospf neighbor A.B.C.D",
-       "Reset functions\n"
-       "IP\n"
-       "Clear OSPF\n"
-       "Neighbor list\n"
-       "Neighbor ID\n")
-{
-  listnode node;
-  struct ospf_neighbor *nbr;
-  struct in_addr router_id;
-  int ret;
-
-  ret = inet_aton (argv[0], &router_id);
-  if (!ret)
-    {
-      vty_out (vty, "Please specify Neighbor ID by A.B.C.D%s", VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-
-  for (node = listhead (ospf_top->oiflist); node; nextnode (node))
-    {
-      struct ospf_interface *oi = getdata (node);
-
-      nbr = ospf_nbr_lookup_by_routerid (oi->nbrs, &router_id);
-
-      if (nbr)
-	{
-	  OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_SeqNumberMismatch);
-	  vty_out (vty, "clear neighbor %s%s", argv[0], VTY_NEWLINE);
-	  break;
-	}
-    }
-
-  return CMD_SUCCESS;
-}
-
 char *ospf_abr_type_descr_str[] = 
 {
   "Unknown",
@@ -2453,9 +2435,10 @@
 {
   listnode node;
   struct ospf_area * area;
+  struct ospf *ospf = ospf_top;
 
   /* Check OSPF is enable. */
-  if (ospf_top == NULL)
+  if (ospf == NULL)
     {
       vty_out (vty, " OSPF Routing Process not enabled%s", VTY_NEWLINE);
       return CMD_SUCCESS;
@@ -2463,51 +2446,51 @@
 
   /* Show Router ID. */
   vty_out (vty, " OSPF Routing Process, Router ID: %s%s",
-           inet_ntoa (ospf_top->router_id),
+           inet_ntoa (ospf->router_id),
            VTY_NEWLINE);
 
   /* Show capability. */
   vty_out (vty, " Supports only single TOS (TOS0) routes%s", VTY_NEWLINE);
   vty_out (vty, " This implementation conforms to RFC2328%s", VTY_NEWLINE);
   vty_out (vty, " RFC1583Compatibility flag is %s%s",
-	   CHECK_FLAG (ospf_top->config, OSPF_RFC1583_COMPATIBLE) ?
+	   CHECK_FLAG (ospf->config, OSPF_RFC1583_COMPATIBLE) ?
 	   "enabled" : "disabled", VTY_NEWLINE);
 #ifdef HAVE_OPAQUE_LSA
   vty_out (vty, " OpaqueCapability flag is %s%s%s",
-	   CHECK_FLAG (ospf_top->config, OSPF_OPAQUE_CAPABLE) ?
+	   CHECK_FLAG (ospf->config, OSPF_OPAQUE_CAPABLE) ?
            "enabled" : "disabled",
-           IS_OPAQUE_LSA_ORIGINATION_BLOCKED (ospf_top->opaque) ?
+           IS_OPAQUE_LSA_ORIGINATION_BLOCKED (ospf->opaque) ?
            " (origination blocked)" : "",
            VTY_NEWLINE);
 #endif /* HAVE_OPAQUE_LSA */
 
   /* Show SPF timers. */
   vty_out (vty, " SPF schedule delay %d secs, Hold time between two SPFs %d secs%s",
-	   ospf_top->spf_delay, ospf_top->spf_holdtime, VTY_NEWLINE);
+	   ospf->spf_delay, ospf->spf_holdtime, VTY_NEWLINE);
 
   /* Show refresh parameters. */
   vty_out (vty, " Refresh timer %d secs%s",
-	   ospf_top->lsa_refresh_interval, VTY_NEWLINE);
+	   ospf->lsa_refresh_interval, VTY_NEWLINE);
 	   
   /* Show ABR/ASBR flags. */
-  if (CHECK_FLAG (ospf_top->flags, OSPF_FLAG_ABR))
+  if (CHECK_FLAG (ospf->flags, OSPF_FLAG_ABR))
     vty_out (vty, " This router is an ABR, ABR type is: %s%s",
-             ospf_abr_type_descr_str[ospf_top->abr_type], VTY_NEWLINE);
+             ospf_abr_type_descr_str[ospf->abr_type], VTY_NEWLINE);
 
-  if (CHECK_FLAG (ospf_top->flags, OSPF_FLAG_ASBR))
+  if (CHECK_FLAG (ospf->flags, OSPF_FLAG_ASBR))
     vty_out (vty, " This router is an ASBR "
              "(injecting external routing information)%s", VTY_NEWLINE);
 
   /* Show Number of AS-external-LSAs. */
   vty_out (vty, " Number of external LSA %ld%s",
-	   ospf_lsdb_count_all (ospf_top->lsdb), VTY_NEWLINE);
+	   ospf_lsdb_count_all (ospf->lsdb), VTY_NEWLINE);
 
   /* Show number of areas attached. */
   vty_out (vty, " Number of areas attached to this router: %d%s%s",
-           listcount (ospf_top->areas), VTY_NEWLINE, VTY_NEWLINE);
+           listcount (ospf->areas), VTY_NEWLINE, VTY_NEWLINE);
 
   /* Show each area status. */
-  for (node = listhead (ospf_top->areas); node; nextnode (node))
+  for (node = listhead (ospf->areas); node; nextnode (node))
     if ((area = getdata (node)) != NULL)
       show_ip_ospf_area (vty, area);
 
@@ -2516,7 +2499,8 @@
 
 
 void
-show_ip_ospf_interface_sub (struct vty *vty, struct interface *ifp)
+show_ip_ospf_interface_sub (struct vty *vty, struct ospf *ospf,
+			    struct interface *ifp)
 {
   struct ospf_neighbor *nbr;
   int oi_count;
@@ -2563,7 +2547,7 @@
 	       VTY_NEWLINE);
 
       vty_out (vty, "  Router ID %s, Network Type %s, Cost: %d%s",
-	       inet_ntoa (ospf_top->router_id), ospf_network_type_str[oi->type],
+	       inet_ntoa (ospf->router_id), ospf_network_type_str[oi->type],
 	       oi->output_cost, VTY_NEWLINE);
 
       vty_out (vty, "  Transmit Delay is %d sec, State %s, Priority %d%s",
@@ -2619,7 +2603,7 @@
 	vty_out (vty, "    No Hellos (Passive interface)%s", VTY_NEWLINE);
       
       vty_out (vty, "  Neighbor Count is %d, Adjacent neighbor count is %d%s",
-	       ospf_nbr_count (oi->nbrs, 0), ospf_nbr_count (oi->nbrs, NSM_Full),
+	       ospf_nbr_count (oi, 0), ospf_nbr_count (oi, NSM_Full),
 	       VTY_NEWLINE);
     }
 }
@@ -2634,19 +2618,20 @@
        "Interface name\n")
 {
   struct interface *ifp;
+  struct ospf *ospf = ospf_top;
   listnode node;
 
   /* Show All Interfaces. */
   if (argc == 0)
     for (node = listhead (iflist); node; nextnode (node))
-      show_ip_ospf_interface_sub (vty, node->data);
+      show_ip_ospf_interface_sub (vty, ospf, node->data);
   /* Interface name is specified. */
   else
     {
       if ((ifp = if_lookup_by_name (argv[0])) == NULL)
         vty_out (vty, "No such interface name%s", VTY_NEWLINE);
       else
-        show_ip_ospf_interface_sub (vty, ifp);
+        show_ip_ospf_interface_sub (vty, ospf, ifp);
     }
 
   return CMD_SUCCESS;
@@ -2693,9 +2678,10 @@
        "OSPF information\n"
        "Neighbor list\n")
 {
+  struct ospf *ospf = ospf_top;
   listnode node;
 
-  if (!ospf_top)
+  if (ospf == NULL)
     {
       vty_out (vty, " OSPF Routing Process not enabled%s", VTY_NEWLINE);
       return CMD_SUCCESS;
@@ -2706,7 +2692,7 @@
            "Time   Address         Interface           RXmtL "
            "RqstL DBsmL%s", VTY_NEWLINE, VTY_NEWLINE);
 
-  for (node = listhead (ospf_top->oiflist); node; nextnode (node))
+  for (node = listhead (ospf->oiflist); node; nextnode (node))
       show_ip_ospf_neighbor_sub (vty, getdata (node));
 
   return CMD_SUCCESS;
@@ -2721,9 +2707,10 @@
        "Neighbor list\n"
        "include down status neighbor\n")
 {
+  struct ospf *ospf = vty->index;
   listnode node;
 
-  if (!ospf_top)
+  if (ospf == NULL)
     {
       vty_out (vty, " OSPF Routing Process not enabled%s", VTY_NEWLINE);
       return CMD_SUCCESS;
@@ -2734,7 +2721,7 @@
            "Time   Address         Interface           RXmtL "
            "RqstL DBsmL%s", VTY_NEWLINE, VTY_NEWLINE);
 
-  for (node = listhead (ospf_top->oiflist); node; nextnode (node))
+  for (node = listhead (ospf->oiflist); node; nextnode (node))
     {
       struct ospf_interface *oi = getdata (node);
       listnode nbr_node;
@@ -2772,11 +2759,12 @@
        "Neighbor list\n"
        "Interface name\n")
 {
+  struct ospf *ospf = ospf_top;
   struct ospf_interface *oi;
   struct in_addr addr;
   int ret;
   
-  if (!ospf_top)
+  if (ospf == NULL)
     {
       vty_out (vty, " OSPF Routing Process not enabled%s", VTY_NEWLINE);
       return CMD_SUCCESS;
@@ -2790,7 +2778,7 @@
       return CMD_WARNING;
     }
 
-  if ((oi = ospf_if_is_configured (&addr)) == NULL)
+  if ((oi = ospf_if_is_configured (ospf, &addr)) == NULL)
     vty_out (vty, "No such interface address%s", VTY_NEWLINE);
   else
     {
@@ -2902,6 +2890,7 @@
        "Neighbor list\n"
        "Neighbor ID\n")
 {
+  struct ospf *ospf = ospf_top;
   listnode node;
   struct ospf_neighbor *nbr;
   struct in_addr router_id;
@@ -2914,7 +2903,7 @@
       return CMD_WARNING;
     }
 
-  for (node = listhead (ospf_top->oiflist); node; nextnode (node))
+  for (node = listhead (ospf->oiflist); node; nextnode (node))
     {
       struct ospf_interface *oi = getdata (node);
 
@@ -2938,12 +2927,13 @@
        "Neighbor list\n"
        "detail of all neighbors\n")
 {
+  struct ospf *ospf = ospf_top;
   listnode node;
 
-  if (!ospf_top)
+  if (ospf == NULL)
     return CMD_SUCCESS;
 
-  for (node = listhead (ospf_top->oiflist); node; nextnode (node))
+  for (node = listhead (ospf->oiflist); node; nextnode (node))
     {
       struct ospf_interface *oi = getdata (node);
       struct route_node *rn;
@@ -2969,12 +2959,13 @@
        "detail of all neighbors\n"
        "include down status neighbor\n")
 {
+  struct ospf *ospf = ospf_top;
   listnode node;
 
-  if (!ospf_top)
+  if (ospf == NULL)
     return CMD_SUCCESS;
 
-  for (node = listhead (ospf_top->oiflist); node; nextnode (node))
+  for (node = listhead (ospf->oiflist); node; nextnode (node))
     {
       struct ospf_interface *oi = getdata (node);
       struct route_node *rn;
@@ -3025,7 +3016,10 @@
       return CMD_WARNING;
     }
 
-  if ((oi = ospf_if_is_configured (&addr)) == NULL)
+  if (ospf_top == NULL)
+    return CMD_WARNING;
+
+  if ((oi = ospf_if_is_configured (ospf_top, &addr)) == NULL)
     vty_out (vty, "No such interface address%s", VTY_NEWLINE);
   else
     {
@@ -3203,7 +3197,7 @@
   "(null)",
   "Neighboring Router ID",
   "Designated Router address",
-  "Network/subnet number",
+  "Net",
   "Neighboring Router ID",
 };
 
@@ -3509,6 +3503,7 @@
 show_lsa_detail (struct vty *vty, int type,
 		 struct in_addr *id, struct in_addr *adv_router)
 {
+  struct ospf *ospf = ospf_top;
   listnode node;
 
   switch (type)
@@ -3520,10 +3515,10 @@
       vty_out (vty, "                %s %s%s",
                show_database_desc[type],
                VTY_NEWLINE, VTY_NEWLINE);
-      show_lsa_detail_proc (vty, AS_LSDB (ospf_top, type), id, adv_router);
+      show_lsa_detail_proc (vty, AS_LSDB (ospf, type), id, adv_router);
       break;
     default:
-      for (node = listhead (ospf_top->areas); node; nextnode (node))
+      for (node = listhead (ospf->areas); node; nextnode (node))
         {
           struct ospf_area *area = node->data;
           vty_out (vty, "%s                %s (Area %s)%s%s",
@@ -3560,6 +3555,7 @@
 show_lsa_detail_adv_router (struct vty *vty, int type,
 			    struct in_addr *adv_router)
 {
+  struct ospf *ospf = ospf_top;
   listnode node;
 
   switch (type)
@@ -3571,11 +3567,11 @@
       vty_out (vty, "                %s %s%s",
                show_database_desc[type],
                VTY_NEWLINE, VTY_NEWLINE);
-      show_lsa_detail_adv_router_proc (vty, AS_LSDB (ospf_top, type),
+      show_lsa_detail_adv_router_proc (vty, AS_LSDB (ospf, type),
                                        adv_router);
       break;
     default:
-      for (node = listhead (ospf_top->areas); node; nextnode (node))
+      for (node = listhead (ospf->areas); node; nextnode (node))
         {
           struct ospf_area *area = node->data;
           vty_out (vty, "%s                %s (Area %s)%s%s",
@@ -3591,10 +3587,11 @@
 void
 show_ip_ospf_database_summary (struct vty *vty, int self)
 {
+  struct ospf *ospf = ospf_top;
   listnode node;
   int type;
 
-  for (node = listhead (ospf_top->areas); node; nextnode (node))
+  for (node = listhead (ospf->areas); node; nextnode (node))
     {
       struct ospf_area *area = node->data;
       for (type = OSPF_MIN_LSA; type < OSPF_MAX_LSA; type++)
@@ -3637,15 +3634,15 @@
           default:
             continue;
         }
-      if (ospf_lsdb_count_self (ospf_top->lsdb, type) ||
-         (!self && ospf_lsdb_count (ospf_top->lsdb, type)))
+      if (ospf_lsdb_count_self (ospf->lsdb, type) ||
+         (!self && ospf_lsdb_count (ospf->lsdb, type)))
         {
           vty_out (vty, "                %s%s%s",
 	       show_database_desc[type],
 	       VTY_NEWLINE, VTY_NEWLINE);
           vty_out (vty, "%s%s", show_database_header[type],
 	       VTY_NEWLINE);
-          foreach_lsa (AS_LSDB (ospf_top, type), vty, self, show_lsa_summary);
+          foreach_lsa (AS_LSDB (ospf, type), vty, self, show_lsa_summary);
           vty_out (vty, "%s", VTY_NEWLINE);
         }
     }
@@ -3656,13 +3653,14 @@
 void
 show_ip_ospf_database_maxage (struct vty *vty)
 {
+  struct ospf *ospf = ospf_top;
   listnode node;
   struct ospf_lsa *lsa;
 
   vty_out (vty, "%s                MaxAge Link States:%s%s",
            VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE);
 
-  for (node = listhead (ospf_top->maxage_lsa); node; nextnode (node))
+  for (node = listhead (ospf->maxage_lsa); node; nextnode (node))
     if ((lsa = node->data) != NULL)
       {
 	vty_out (vty, "Link type: %d%s", lsa->data->type, VTY_NEWLINE);
@@ -3719,14 +3717,15 @@
        "OSPF information\n"
        "Database summary\n")
 {
+  struct ospf *ospf = ospf_top;
   int type, ret;
   struct in_addr id, adv_router;
 
-  if (ospf_top == NULL)
+  if (ospf == NULL)
     return CMD_SUCCESS;
 
   vty_out (vty, "%s       OSPF Router with ID (%s)%s%s", VTY_NEWLINE,
-           inet_ntoa (ospf_top->router_id), VTY_NEWLINE, VTY_NEWLINE);
+           inet_ntoa (ospf->router_id), VTY_NEWLINE, VTY_NEWLINE);
 
   /* Show all LSA. */
   if (argc == 0)
@@ -3787,7 +3786,7 @@
       else if (argc == 3)
 	{
 	  if (strncmp (argv[2], "s", 1) == 0)
-	    adv_router = ospf_top->router_id;
+	    adv_router = ospf->router_id;
 	  else
 	    {
 	      ret = inet_aton (argv[2], &adv_router);
@@ -3857,14 +3856,15 @@
        "Advertising Router link states\n"
        "Advertising Router (as an IP address)\n")
 {
+  struct ospf *ospf = ospf_top;
   int type, ret;
   struct in_addr adv_router;
 
-  if (ospf_top == NULL)
+  if (ospf == NULL)
     return CMD_SUCCESS;
 
   vty_out (vty, "%s       OSPF Router with ID (%s)%s%s", VTY_NEWLINE,
-           inet_ntoa (ospf_top->router_id), VTY_NEWLINE, VTY_NEWLINE);
+           inet_ntoa (ospf->router_id), VTY_NEWLINE, VTY_NEWLINE);
 
   if (argc != 2)
     return CMD_WARNING;
@@ -3897,7 +3897,7 @@
 
   /* `show ip ospf database LSA adv-router ADV_ROUTER'. */
   if (strncmp (argv[1], "s", 1) == 0)
-    adv_router = ospf_top->router_id;
+    adv_router = ospf->router_id;
   else
     {
       ret = inet_aton (argv[1], &adv_router);
@@ -4488,6 +4488,7 @@
   struct ospf_if_params *params;
   struct ospf_interface *oi;
   struct route_node *rn;
+  struct ospf *ospf = ospf_top;
       
   params = IF_DEF_PARAMS (ifp);
 
@@ -4520,9 +4521,12 @@
   /* Update timer values in neighbor structure. */
   if (argc == 2)
     {
-      oi = ospf_if_lookup_by_local_addr (ifp, addr);
-      if (oi)
-	ospf_nbr_timer_update (oi);
+      if (ospf)
+	{
+	  oi = ospf_if_lookup_by_local_addr (ospf, ifp, addr);
+	  if (oi)
+	    ospf_nbr_timer_update (oi);
+	}
     }
   else
     {
@@ -4564,6 +4568,7 @@
   struct ospf_if_params *params;
   struct ospf_interface *oi;
   struct route_node *rn;
+  struct ospf *ospf = ospf_top;
   
   ifp = vty->index;
   params = IF_DEF_PARAMS (ifp);
@@ -4595,9 +4600,12 @@
   /* Update timer values in neighbor structure. */
   if (argc == 1)
     {
-      oi = ospf_if_lookup_by_local_addr (ifp, addr);
-      if (oi)
-	ospf_nbr_timer_update (oi);
+      if (ospf)
+	{
+	  oi = ospf_if_lookup_by_local_addr (ospf, ifp, addr);
+	  if (oi)
+	    ospf_nbr_timer_update (oi);
+	}
     }
   else
     {
@@ -5515,13 +5523,14 @@
        "Routing Information Protocol (RIP)\n"
        "Border Gateway Protocol (BGP)\n")
 {
+  struct ospf *ospf = vty->index;
   int source;
 
   /* Get distribute source. */
   if (!str2distribute_source (argv[1], &source))
     return CMD_WARNING;
 
-  return ospf_distribute_list_out_set (source, argv[0]);
+  return ospf_distribute_list_out_set (ospf, source, argv[0]);
 }
 
 DEFUN (no_ospf_distribute_list_out,
@@ -5537,12 +5546,13 @@
        "Routing Information Protocol (RIP)\n"
        "Border Gateway Protocol (BGP)\n")
 {
+  struct ospf *ospf = vty->index;
   int source;
 
   if (!str2distribute_source (argv[1], &source))
     return CMD_WARNING;
 
-  return ospf_distribute_list_out_unset (source, argv[0]);
+  return ospf_distribute_list_out_unset (ospf, source, argv[0]);
 }
 
 /* Default information originate. */
@@ -5929,6 +5939,7 @@
        "Control distribution of default information\n"
        "Distribute a default route\n")
 {
+  struct ospf *ospf = vty->index;
   struct prefix_ipv4 p;
   struct in_addr nexthop;
     
@@ -5936,7 +5947,7 @@
   p.prefix.s_addr = 0;
   p.prefixlen = 0;
 
-  ospf_external_lsa_flush (DEFAULT_ROUTE, &p, 0, nexthop);
+  ospf_external_lsa_flush (ospf, DEFAULT_ROUTE, &p, 0, nexthop);
 
   if (EXTERNAL_INFO (DEFAULT_ROUTE)) {
     ospf_external_info_delete (DEFAULT_ROUTE, p);
@@ -5954,12 +5965,13 @@
        "Set metric of redistributed routes\n"
        "Default metric\n")
 {
+  struct ospf *ospf = vty->index;
   int metric = -1;
 
   if (!str2metric (argv[0], &metric))
     return CMD_WARNING;
 
-  ospf_top->default_metric = metric;
+  ospf->default_metric = metric;
 
   return CMD_SUCCESS;
 }
@@ -5970,7 +5982,10 @@
        NO_STR
        "Set metric of redistributed routes\n")
 {
-  ospf_top->default_metric = -1;
+  struct ospf *ospf = vty->index;
+
+  ospf->default_metric = -1;
+
   return CMD_SUCCESS;
 }
 
@@ -5987,7 +6002,10 @@
        "Define an administrative distance\n"
        "OSPF Administrative distance\n")
 {
-  ospf_top->distance_all = atoi (argv[0]);
+  struct ospf *ospf = vty->index;
+
+  ospf->distance_all = atoi (argv[0]);
+
   return CMD_SUCCESS;
 }
 
@@ -5998,7 +6016,10 @@
        "Define an administrative distance\n"
        "OSPF Administrative distance\n")
 {
-  ospf_top->distance_all = 0;
+  struct ospf *ospf = vty->index;
+
+  ospf->distance_all = 0;
+
   return CMD_SUCCESS;
 }
 
@@ -6010,9 +6031,12 @@
        "OSPF Administrative distance\n"
        "OSPF Distance\n")
 {
-  ospf_top->distance_intra = 0;
-  ospf_top->distance_inter = 0;
-  ospf_top->distance_external = 0;
+  struct ospf *ospf = vty->index;
+
+  ospf->distance_intra = 0;
+  ospf->distance_inter = 0;
+  ospf->distance_external = 0;
+
   return CMD_SUCCESS;
 }
 
@@ -6024,7 +6048,10 @@
        "Intra-area routes\n"
        "Distance for intra-area routes\n")
 {
-  ospf_top->distance_intra = atoi (argv[0]);
+  struct ospf *ospf = vty->index;
+
+  ospf->distance_intra = atoi (argv[0]);
+
   return CMD_SUCCESS;
 }
 
@@ -6038,8 +6065,11 @@
        "Inter-area routes\n"
        "Distance for inter-area routes\n")
 {
-  ospf_top->distance_intra = atoi (argv[0]);
-  ospf_top->distance_inter = atoi (argv[1]);
+  struct ospf *ospf = vty->index;
+
+  ospf->distance_intra = atoi (argv[0]);
+  ospf->distance_inter = atoi (argv[1]);
+
   return CMD_SUCCESS;
 }
 
@@ -6053,8 +6083,11 @@
        "External routes\n"
        "Distance for external routes\n")
 {
-  ospf_top->distance_intra = atoi (argv[0]);
-  ospf_top->distance_external = atoi (argv[1]);
+  struct ospf *ospf = vty->index;
+
+  ospf->distance_intra = atoi (argv[0]);
+  ospf->distance_external = atoi (argv[1]);
+
   return CMD_SUCCESS;
 }
 
@@ -6070,9 +6103,12 @@
        "External routes\n"
        "Distance for external routes\n")
 {
-  ospf_top->distance_intra = atoi (argv[0]);
-  ospf_top->distance_inter = atoi (argv[1]);
-  ospf_top->distance_external = atoi (argv[2]);
+  struct ospf *ospf = vty->index;
+
+  ospf->distance_intra = atoi (argv[0]);
+  ospf->distance_inter = atoi (argv[1]);
+  ospf->distance_external = atoi (argv[2]);
+
   return CMD_SUCCESS;
 }
 
@@ -6088,9 +6124,12 @@
        "Inter-area routes\n"
        "Distance for inter-area routes\n")
 {
-  ospf_top->distance_intra = atoi (argv[0]);
-  ospf_top->distance_external = atoi (argv[1]);
-  ospf_top->distance_inter = atoi (argv[2]);
+  struct ospf *ospf = vty->index;
+
+  ospf->distance_intra = atoi (argv[0]);
+  ospf->distance_external = atoi (argv[1]);
+  ospf->distance_inter = atoi (argv[2]);
+
   return CMD_SUCCESS;
 }
 
@@ -6102,7 +6141,10 @@
        "Inter-area routes\n"
        "Distance for inter-area routes\n")
 {
-  ospf_top->distance_inter = atoi (argv[0]);
+  struct ospf *ospf = vty->index;
+
+  ospf->distance_inter = atoi (argv[0]);
+
   return CMD_SUCCESS;
 }
 
@@ -6116,8 +6158,11 @@
        "Intra-area routes\n"
        "Distance for intra-area routes\n")
 {
-  ospf_top->distance_inter = atoi (argv[0]);
-  ospf_top->distance_intra = atoi (argv[1]);
+  struct ospf *ospf = vty->index;
+
+  ospf->distance_inter = atoi (argv[0]);
+  ospf->distance_intra = atoi (argv[1]);
+
   return CMD_SUCCESS;
 }
 
@@ -6131,8 +6176,11 @@
        "External routes\n"
        "Distance for external routes\n")
 {
-  ospf_top->distance_inter = atoi (argv[0]);
-  ospf_top->distance_external = atoi (argv[1]);
+  struct ospf *ospf = vty->index;
+
+  ospf->distance_inter = atoi (argv[0]);
+  ospf->distance_external = atoi (argv[1]);
+
   return CMD_SUCCESS;
 }
 
@@ -6148,9 +6196,12 @@
        "External routes\n"
        "Distance for external routes\n")
 {
-  ospf_top->distance_inter = atoi (argv[0]);
-  ospf_top->distance_intra = atoi (argv[1]);
-  ospf_top->distance_external = atoi (argv[2]);
+  struct ospf *ospf = vty->index;
+
+  ospf->distance_inter = atoi (argv[0]);
+  ospf->distance_intra = atoi (argv[1]);
+  ospf->distance_external = atoi (argv[2]);
+
   return CMD_SUCCESS;
 }
 
@@ -6166,9 +6217,12 @@
        "Intra-area routes\n"
        "Distance for intra-area routes\n")
 {
-  ospf_top->distance_inter = atoi (argv[0]);
-  ospf_top->distance_external = atoi (argv[1]);
-  ospf_top->distance_intra = atoi (argv[2]);
+  struct ospf *ospf = vty->index;
+
+  ospf->distance_inter = atoi (argv[0]);
+  ospf->distance_external = atoi (argv[1]);
+  ospf->distance_intra = atoi (argv[2]);
+
   return CMD_SUCCESS;
 }
 
@@ -6180,7 +6234,10 @@
        "External routes\n"
        "Distance for external routes\n")
 {
-  ospf_top->distance_external = atoi (argv[0]);
+  struct ospf *ospf = vty->index;
+
+  ospf->distance_external = atoi (argv[0]);
+
   return CMD_SUCCESS;
 }
 
@@ -6194,8 +6251,11 @@
        "Intra-area routes\n"
        "Distance for intra-area routes\n")
 {
-  ospf_top->distance_external = atoi (argv[0]);
-  ospf_top->distance_intra = atoi (argv[1]);
+  struct ospf *ospf = vty->index;
+
+  ospf->distance_external = atoi (argv[0]);
+  ospf->distance_intra = atoi (argv[1]);
+
   return CMD_SUCCESS;
 }
 
@@ -6209,8 +6269,11 @@
        "Inter-area routes\n"
        "Distance for inter-area routes\n")
 {
-  ospf_top->distance_external = atoi (argv[0]);
-  ospf_top->distance_inter = atoi (argv[1]);
+  struct ospf *ospf = vty->index;
+
+  ospf->distance_external = atoi (argv[0]);
+  ospf->distance_inter = atoi (argv[1]);
+
   return CMD_SUCCESS;
 }
 
@@ -6226,9 +6289,12 @@
        "Inter-area routes\n"
        "Distance for inter-area routes\n")
 {
-  ospf_top->distance_external = atoi (argv[0]);
-  ospf_top->distance_intra = atoi (argv[1]);
-  ospf_top->distance_inter = atoi (argv[2]);
+  struct ospf *ospf = vty->index;
+
+  ospf->distance_external = atoi (argv[0]);
+  ospf->distance_intra = atoi (argv[1]);
+  ospf->distance_inter = atoi (argv[2]);
+
   return CMD_SUCCESS;
 }
 
@@ -6244,9 +6310,12 @@
        "Intra-area routes\n"
        "Distance for intra-area routes\n")
 {
-  ospf_top->distance_external = atoi (argv[0]);
-  ospf_top->distance_inter = atoi (argv[1]);
-  ospf_top->distance_intra = atoi (argv[2]);
+  struct ospf *ospf = vty->index;
+
+  ospf->distance_external = atoi (argv[0]);
+  ospf->distance_inter = atoi (argv[1]);
+  ospf->distance_intra = atoi (argv[2]);
+
   return CMD_SUCCESS;
 }
 
@@ -6258,6 +6327,7 @@
        "IP source prefix\n")
 {
   ospf_distance_set (vty, argv[0], argv[1], NULL);
+
   return CMD_SUCCESS;
 }
 
@@ -6457,13 +6527,15 @@
        "show all the ABR's and ASBR's\n"
        "for this area\n")
 {
-  if (ospf_top == NULL)
+  struct ospf *ospf = ospf_top;
+
+  if (ospf == NULL)
     {
       vty_out (vty, "OSPF is not enabled%s", VTY_NEWLINE);
       return CMD_SUCCESS;
     }
 
-  if (ospf_top->new_table == NULL)
+  if (ospf->new_table == NULL)
     {
       vty_out (vty, "No OSPF routing information exist%s", VTY_NEWLINE);
       return CMD_SUCCESS;
@@ -6473,7 +6545,7 @@
   show_ip_ospf_route_network (vty, ospf_top->new_table);   */
 
   /* Show Router routes. */
-  show_ip_ospf_route_router (vty, ospf_top->new_rtrs);
+  show_ip_ospf_route_router (vty, ospf->new_rtrs);
 
   return CMD_SUCCESS;
 }
@@ -6487,26 +6559,28 @@
        "OSPF information\n"
        "OSPF routing table\n")
 {
-  if (ospf_top == NULL)
+  struct ospf *ospf = ospf_top;
+
+  if (ospf == NULL)
     {
       vty_out (vty, "OSPF is not enabled%s", VTY_NEWLINE);
       return CMD_SUCCESS;
     }
 
-  if (ospf_top->new_table == NULL)
+  if (ospf->new_table == NULL)
     {
       vty_out (vty, "No OSPF routing information exist%s", VTY_NEWLINE);
       return CMD_SUCCESS;
     }
 
   /* Show Network routes. */
-  show_ip_ospf_route_network (vty, ospf_top->new_table);
+  show_ip_ospf_route_network (vty, ospf->new_table);
 
   /* Show Router routes. */
-  show_ip_ospf_route_router (vty, ospf_top->new_rtrs);
+  show_ip_ospf_route_router (vty, ospf->new_rtrs);
 
   /* Show AS External routes. */
-  show_ip_ospf_route_external (vty, ospf_top->old_external_route);
+  show_ip_ospf_route_external (vty, ospf->old_external_route);
 
   return CMD_SUCCESS;
 }
@@ -6735,13 +6809,13 @@
 }
 
 int
-config_write_network_area (struct vty *vty)
+config_write_network_area (struct vty *vty, struct ospf *ospf)
 {
   struct route_node *rn;
   u_char buf[INET_ADDRSTRLEN];
 
   /* `network area' print. */
-  for (rn = route_top (ospf_top->networks); rn; rn = route_next (rn))
+  for (rn = route_top (ospf->networks); rn; rn = route_next (rn))
     if (rn->info)
       {
 	struct ospf_network *n = rn->info;
@@ -6765,13 +6839,13 @@
 }
 
 int
-config_write_ospf_area (struct vty *vty)
+config_write_ospf_area (struct vty *vty, struct ospf *ospf)
 {
   listnode node;
   u_char buf[INET_ADDRSTRLEN];
 
   /* Area configuration print. */
-  for (node = listhead (ospf_top->areas); node; nextnode (node))
+  for (node = listhead (ospf->areas); node; nextnode (node))
     {
       struct ospf_area *area = getdata (node);
       struct route_node *rn1;
@@ -6857,13 +6931,13 @@
 }
 
 int
-config_write_ospf_nbr_nbma (struct vty *vty)
+config_write_ospf_nbr_nbma (struct vty *vty, struct ospf *ospf)
 {
   struct ospf_nbr_nbma *nbr_nbma;
   struct route_node *rn;
 
   /* Static Neighbor configuration print. */
-  for (rn = route_top (ospf_top->nbr_nbma); rn; rn = route_next (rn))
+  for (rn = route_top (ospf->nbr_nbma); rn; rn = route_next (rn))
     if ((nbr_nbma = rn->info))
       {
 	vty_out (vty, " neighbor %s", inet_ntoa (nbr_nbma->addr));
@@ -6881,13 +6955,13 @@
 }
 
 int
-config_write_virtual_link (struct vty *vty)
+config_write_virtual_link (struct vty *vty, struct ospf *ospf)
 {
   listnode node;
   u_char buf[INET_ADDRSTRLEN];
 
   /* Virtual-Link print */
-  for (node = listhead (ospf_top->vlinks); node; nextnode (node))
+  for (node = listhead (ospf->vlinks); node; nextnode (node))
     {
       listnode n2;
       struct crypt_key *ck;
@@ -6948,7 +7022,7 @@
 char *distribute_str[] = { "system", "kernel", "connected", "static", "rip",
 			   "ripng", "ospf", "ospf6", "bgp"};
 int
-config_write_ospf_redistribute (struct vty *vty)
+config_write_ospf_redistribute (struct vty *vty, struct ospf *ospf)
 {
   int type;
 
@@ -6957,10 +7031,10 @@
     if (type != zclient->redist_default && zclient->redist[type])
       {
         vty_out (vty, " redistribute %s", distribute_str[type]);
-	if (ospf_top->dmetric[type].value >= 0)
+	if (ospf->dmetric[type].value >= 0)
 	  vty_out (vty, " metric %d", ospf_top->dmetric[type].value);
 	
-        if (ospf_top->dmetric[type].type == EXTERNAL_METRIC_TYPE_1)
+        if (ospf->dmetric[type].type == EXTERNAL_METRIC_TYPE_1)
 	  vty_out (vty, " metric-type 1");
 
 	if (ROUTEMAP_NAME (type))
@@ -6973,40 +7047,40 @@
 }
 
 int
-config_write_ospf_default_metric (struct vty *vty)
+config_write_ospf_default_metric (struct vty *vty, struct ospf *ospf)
 {
-  if (ospf_top->default_metric != -1)
-    vty_out (vty, " default-metric %d%s", ospf_top->default_metric,
+  if (ospf->default_metric != -1)
+    vty_out (vty, " default-metric %d%s", ospf->default_metric,
 	     VTY_NEWLINE);
   return 0;
 }
 
 int
-config_write_ospf_distribute (struct vty *vty)
+config_write_ospf_distribute (struct vty *vty, struct ospf *ospf)
 {
   int type;
 
-  if (ospf_top)
+  if (ospf)
     {
       /* distribute-list print. */
       for (type = 0; type < ZEBRA_ROUTE_MAX; type++)
-	if (ospf_top->dlist[type].name)
+	if (ospf->dlist[type].name)
 	  vty_out (vty, " distribute-list %s out %s%s", 
-		   ospf_top->dlist[type].name,
+		   ospf->dlist[type].name,
 		   distribute_str[type], VTY_NEWLINE);
 
       /* default-information print. */
-      if (ospf_top->default_originate != DEFAULT_ORIGINATE_NONE)
+      if (ospf->default_originate != DEFAULT_ORIGINATE_NONE)
 	{
-	  if (ospf_top->default_originate == DEFAULT_ORIGINATE_ZEBRA)
+	  if (ospf->default_originate == DEFAULT_ORIGINATE_ZEBRA)
 	    vty_out (vty, " default-information originate");
 	  else
 	    vty_out (vty, " default-information originate always");
 
-	  if (ospf_top->dmetric[DEFAULT_ROUTE].value >= 0)
+	  if (ospf->dmetric[DEFAULT_ROUTE].value >= 0)
 	    vty_out (vty, " metric %d",
-		     ospf_top->dmetric[DEFAULT_ROUTE].value);
-	  if (ospf_top->dmetric[DEFAULT_ROUTE].type == EXTERNAL_METRIC_TYPE_1)
+		     ospf->dmetric[DEFAULT_ROUTE].value);
+	  if (ospf->dmetric[DEFAULT_ROUTE].type == EXTERNAL_METRIC_TYPE_1)
 	    vty_out (vty, " metric-type 1");
 
 	  if (ROUTEMAP_NAME (DEFAULT_ROUTE))
@@ -7021,31 +7095,31 @@
 }
 
 int
-config_write_ospf_distance (struct vty *vty)
+config_write_ospf_distance (struct vty *vty, struct ospf *ospf)
 {
   struct route_node *rn;
   struct ospf_distance *odistance;
 
-  if (ospf_top->distance_all)
-    vty_out (vty, " distance %d%s", ospf_top->distance_all, VTY_NEWLINE);
+  if (ospf->distance_all)
+    vty_out (vty, " distance %d%s", ospf->distance_all, VTY_NEWLINE);
 
-  if (ospf_top->distance_intra 
-      || ospf_top->distance_inter 
-      || ospf_top->distance_external)
+  if (ospf->distance_intra 
+      || ospf->distance_inter 
+      || ospf->distance_external)
     {
       vty_out (vty, " distance ospf");
 
-      if (ospf_top->distance_intra)
-	vty_out (vty, " intra-area %d", ospf_top->distance_intra);
-      if (ospf_top->distance_inter)
-	vty_out (vty, " inter-area %d", ospf_top->distance_inter);
-      if (ospf_top->distance_external)
-	vty_out (vty, " external %d", ospf_top->distance_external);
+      if (ospf->distance_intra)
+	vty_out (vty, " intra-area %d", ospf->distance_intra);
+      if (ospf->distance_inter)
+	vty_out (vty, " inter-area %d", ospf->distance_inter);
+      if (ospf->distance_external)
+	vty_out (vty, " external %d", ospf->distance_external);
 
       vty_out (vty, "%s", VTY_NEWLINE);
     }
   
-  for (rn = route_top (ospf_top->distance_table); rn; rn = route_next (rn))
+  for (rn = route_top (ospf->distance_table); rn; rn = route_next (rn))
     if ((odistance = rn->info) != NULL)
       {
 	vty_out (vty, " distance %d %s/%d %s%s", odistance->distance,
@@ -7060,54 +7134,55 @@
 int
 ospf_config_write (struct vty *vty)
 {
+  struct ospf *ospf = ospf_top;
   listnode node;
   int write = 0;
 
-  if (ospf_top != NULL)
+  if (ospf != NULL)
     {
       /* `router ospf' print. */
       vty_out (vty, "router ospf%s", VTY_NEWLINE);
 
       write++;
 
-      if (!ospf_top->networks)
+      if (!ospf->networks)
         return write;
 
       /* Router ID print. */
-      if (ospf_top->router_id_static.s_addr != 0)
+      if (ospf->router_id_static.s_addr != 0)
         vty_out (vty, " ospf router-id %s%s",
-                 inet_ntoa (ospf_top->router_id_static), VTY_NEWLINE);
+                 inet_ntoa (ospf->router_id_static), VTY_NEWLINE);
 
       /* ABR type print. */
-      if (ospf_top->abr_type != OSPF_ABR_STAND)
+      if (ospf->abr_type != OSPF_ABR_STAND)
         vty_out (vty, " ospf abr-type %s%s", 
-                 ospf_abr_type_str[ospf_top->abr_type], VTY_NEWLINE);
+                 ospf_abr_type_str[ospf->abr_type], VTY_NEWLINE);
 
       /* RFC1583 compatibility flag print -- Compatible with CISCO 12.1. */
-      if (CHECK_FLAG (ospf_top->config, OSPF_RFC1583_COMPATIBLE))
+      if (CHECK_FLAG (ospf->config, OSPF_RFC1583_COMPATIBLE))
 	vty_out (vty, " compatible rfc1583%s", VTY_NEWLINE);
 
       /* auto-cost reference-bandwidth configuration.  */
-      if (ospf_top->ref_bandwidth != OSPF_DEFAULT_REF_BANDWIDTH)
+      if (ospf->ref_bandwidth != OSPF_DEFAULT_REF_BANDWIDTH)
 	vty_out (vty, " auto-cost reference-bandwidth %d%s",
-		 ospf_top->ref_bandwidth / 1000, VTY_NEWLINE);
+		 ospf->ref_bandwidth / 1000, VTY_NEWLINE);
 
       /* SPF timers print. */
-      if (ospf_top->spf_delay != OSPF_SPF_DELAY_DEFAULT ||
-	  ospf_top->spf_holdtime != OSPF_SPF_HOLDTIME_DEFAULT)
+      if (ospf->spf_delay != OSPF_SPF_DELAY_DEFAULT ||
+	  ospf->spf_holdtime != OSPF_SPF_HOLDTIME_DEFAULT)
 	vty_out (vty, " timers spf %d %d%s",
-		 ospf_top->spf_delay, ospf_top->spf_holdtime, VTY_NEWLINE);
+		 ospf->spf_delay, ospf->spf_holdtime, VTY_NEWLINE);
 
       /* SPF refresh parameters print. */
-      if (ospf_top->lsa_refresh_interval != OSPF_LSA_REFRESH_INTERVAL_DEFAULT)
+      if (ospf->lsa_refresh_interval != OSPF_LSA_REFRESH_INTERVAL_DEFAULT)
 	vty_out (vty, " refresh timer %d%s",
-		 ospf_top->lsa_refresh_interval, VTY_NEWLINE);
+		 ospf->lsa_refresh_interval, VTY_NEWLINE);
 
       /* Redistribute information print. */
-      config_write_ospf_redistribute (vty);
+      config_write_ospf_redistribute (vty, ospf);
 
       /* passive-interface print. */
-      for (node = listhead (ospf_top->iflist); node; nextnode (node))
+      for (node = listhead (ospf->iflist); node; nextnode (node))
         {
           struct interface *ifp = getdata (node);
 
@@ -7118,7 +7193,7 @@
 		     ifp->name, VTY_NEWLINE);
         }
 
-      for (node = listhead (ospf_top->oiflist); node; nextnode (node))
+      for (node = listhead (ospf->oiflist); node; nextnode (node))
         {
           struct ospf_interface *oi = getdata (node);
 
@@ -7130,28 +7205,28 @@
 
       
       /* Network area print. */
-      config_write_network_area (vty);
+      config_write_network_area (vty, ospf);
 
       /* Area config print. */
-      config_write_ospf_area (vty);
+      config_write_ospf_area (vty, ospf);
 
       /* static neighbor print. */
-      config_write_ospf_nbr_nbma (vty);
+      config_write_ospf_nbr_nbma (vty, ospf);
 
       /* Virtual-Link print. */
-      config_write_virtual_link (vty);
+      config_write_virtual_link (vty, ospf);
 
       /* Default metric configuration.  */
-      config_write_ospf_default_metric (vty);
+      config_write_ospf_default_metric (vty, ospf);
 
       /* Distribute-list and default-information print. */
-      config_write_ospf_distribute (vty);
+      config_write_ospf_distribute (vty, ospf);
 
       /* Distance configuration. */
-      config_write_ospf_distance (vty);
+      config_write_ospf_distance (vty, ospf);
 
 #ifdef HAVE_OPAQUE_LSA
-      ospf_opaque_config_write_router (vty, ospf_top);
+      ospf_opaque_config_write_router (vty, ospf);
 #endif /* HAVE_OPAQUE_LSA */
     }
 
@@ -7568,3 +7643,4 @@
   ospf_vty_zebra_init ();
 }
 
+
diff --git a/ospfd/ospf_zebra.c b/ospfd/ospf_zebra.c
index a8e1630..baba11d 100644
--- a/ospfd/ospf_zebra.c
+++ b/ospfd/ospf_zebra.c
@@ -59,6 +59,7 @@
 ospf_interface_add (int command, struct zclient *zclient, zebra_size_t length)
 {
   struct interface *ifp;
+  struct ospf *ospf = ospf_top;
 
   ifp = zebra_interface_add_read (zclient->ibuf);
 
@@ -81,7 +82,7 @@
 	IF_DEF_PARAMS (ifp)->type = OSPF_IFTYPE_LOOPBACK;
     }
 
-  ospf_if_update ();
+  ospf_if_update (ospf);
 
 #ifdef HAVE_SNMP
   ospf_snmp_if_update (ifp);
@@ -245,6 +246,7 @@
 ospf_interface_address_add (int command, struct zclient *zclient,
 			    zebra_size_t length)
 {
+  struct ospf *ospf = ospf_top;
   struct connected *c;
 
   c = zebra_interface_address_add_read (zclient->ibuf);
@@ -252,19 +254,7 @@
   if (c == NULL)
     return 0;
 
-#if 0
-  if (IS_DEBUG_OSPF (zebra, ZEBRA_INTERFACE))
-    {
-      struct prefix *p;
-
-      p = c->address;
-      if (p->family == AF_INET)
-	zlog_info (" connected address %s/%d", 
-		   inet_atop (p->u.prefix4), p->prefixlen);
-    }
-#endif
-
-  ospf_if_update ();
+  ospf_if_update (ospf);
 
 #ifdef HAVE_SNMP
   ospf_snmp_if_update (c->ifp);
@@ -277,6 +267,7 @@
 ospf_interface_address_delete (int command, struct zclient *zclient,
 			       zebra_size_t length)
 {
+  struct ospf *ospf = ospf_top;
   struct connected *c;
   struct interface *ifp;
   struct ospf_interface *oi;
@@ -308,7 +299,7 @@
 
   connected_free (c);
 
-  ospf_if_update();
+  ospf_if_update (ospf);
 
   return 0;
 }
@@ -482,42 +473,43 @@
 int
 ospf_redistribute_set (int type, int mtype, int mvalue)
 {
+  struct ospf *ospf = ospf_top;
   int force = 0;
   
   if (ospf_is_type_redistributed (type))
     {
-      if (mtype != ospf_top->dmetric[type].type)
+      if (mtype != ospf->dmetric[type].type)
 	{
-	  ospf_top->dmetric[type].type = mtype;
+	  ospf->dmetric[type].type = mtype;
 	  force = LSA_REFRESH_FORCE;
 	}
-      if (mvalue != ospf_top->dmetric[type].value)
+      if (mvalue != ospf->dmetric[type].value)
 	{
-	  ospf_top->dmetric[type].value = mvalue;
+	  ospf->dmetric[type].value = mvalue;
 	  force = LSA_REFRESH_FORCE;
 	}
 	  
-      ospf_external_lsa_refresh_type (type, force);
+      ospf_external_lsa_refresh_type (ospf, type, force);
       
       if (IS_DEBUG_OSPF (zebra, ZEBRA_REDISTRIBUTE))
 	zlog_info ("Redistribute[%s]: Refresh  Type[%d], Metric[%d]",
 		   LOOKUP (ospf_redistributed_proto, type),
-		   metric_type (type), metric_value (type));
+		   metric_type (ospf, type), metric_value (ospf, type));
       
       return CMD_SUCCESS;
     }
 
-  ospf_top->dmetric[type].type = mtype;
-  ospf_top->dmetric[type].value = mvalue;
+  ospf->dmetric[type].type = mtype;
+  ospf->dmetric[type].value = mvalue;
 
   zclient_redistribute_set (zclient, type);
 
   if (IS_DEBUG_OSPF (zebra, ZEBRA_REDISTRIBUTE))
     zlog_info ("Redistribute[%s]: Start  Type[%d], Metric[%d]",
 	       LOOKUP (ospf_redistributed_proto, type),
-	       metric_type (type), metric_value (type));
+	       metric_type (ospf, type), metric_value (ospf, type));
   
-  ospf_asbr_status_update (++ospf_top->redistribute);
+  ospf_asbr_status_update (ospf, ++ospf->redistribute);
 
   return CMD_SUCCESS;
 }
@@ -525,6 +517,8 @@
 int
 ospf_redistribute_unset (int type)
 {
+  struct ospf *ospf = ospf_top;
+
   if (type == zclient->redist_default)
     return CMD_SUCCESS;
 
@@ -537,13 +531,13 @@
     zlog_info ("Redistribute[%s]: Stop",
 	       LOOKUP (ospf_redistributed_proto, type));
 
-  ospf_top->dmetric[type].type = -1;
-  ospf_top->dmetric[type].value = -1;
+  ospf->dmetric[type].type = -1;
+  ospf->dmetric[type].value = -1;
 
   /* Remove the routes from OSPF table. */
   ospf_redistribute_withdraw (type);
 
-  ospf_asbr_status_update (--ospf_top->redistribute);
+  ospf_asbr_status_update (ospf, --ospf->redistribute);
 
   return CMD_SUCCESS;
 }
@@ -551,48 +545,50 @@
 int
 ospf_redistribute_default_set (int originate, int mtype, int mvalue)
 {
+  struct ospf *ospf = ospf_top;
+
   int force = 0;
   if (ospf_is_type_redistributed (DEFAULT_ROUTE))
     {
-      if (mtype != ospf_top->dmetric[DEFAULT_ROUTE].type)
+      if (mtype != ospf->dmetric[DEFAULT_ROUTE].type)
 	{
-	  ospf_top->dmetric[DEFAULT_ROUTE].type = mtype;
+	  ospf->dmetric[DEFAULT_ROUTE].type = mtype;
 	  force = 1;
 	}
-      if (mvalue != ospf_top->dmetric[DEFAULT_ROUTE].value)
+      if (mvalue != ospf->dmetric[DEFAULT_ROUTE].value)
 	{
 	  force = 1;
-	  ospf_top->dmetric[DEFAULT_ROUTE].value = mvalue;
+	  ospf->dmetric[DEFAULT_ROUTE].value = mvalue;
 	}
       
-      ospf_external_lsa_refresh_default ();
+      ospf_external_lsa_refresh_default (ospf);
       
       if (IS_DEBUG_OSPF (zebra, ZEBRA_REDISTRIBUTE))
 	zlog_info ("Redistribute[%s]: Refresh  Type[%d], Metric[%d]",
 		   LOOKUP (ospf_redistributed_proto, DEFAULT_ROUTE),
-		   metric_type (DEFAULT_ROUTE),
-		   metric_value (DEFAULT_ROUTE));
+		   metric_type (ospf, DEFAULT_ROUTE),
+		   metric_value (ospf, DEFAULT_ROUTE));
       return CMD_SUCCESS;
     }
 
-  ospf_top->default_originate = originate;
-  ospf_top->dmetric[DEFAULT_ROUTE].type = mtype;
-  ospf_top->dmetric[DEFAULT_ROUTE].value = mvalue;
+  ospf->default_originate = originate;
+  ospf->dmetric[DEFAULT_ROUTE].type = mtype;
+  ospf->dmetric[DEFAULT_ROUTE].value = mvalue;
 
   zclient_redistribute_default_set (zclient);
   
   if (IS_DEBUG_OSPF (zebra, ZEBRA_REDISTRIBUTE))
     zlog_info ("Redistribute[DEFAULT]: Start  Type[%d], Metric[%d]",
-	       metric_type (DEFAULT_ROUTE), metric_value (DEFAULT_ROUTE));
+	       metric_type (ospf, DEFAULT_ROUTE),
+	       metric_value (ospf, DEFAULT_ROUTE));
 
-
-  if (ospf_top->router_id.s_addr == 0)
-    ospf_top->external_origin |= (1 << DEFAULT_ROUTE);
+  if (ospf->router_id.s_addr == 0)
+    ospf->external_origin |= (1 << DEFAULT_ROUTE);
   else
     thread_add_timer (master, ospf_default_originate_timer,
-		      &ospf_top->default_originate, 1);
+		      &ospf->default_originate, 1);
 
-  ospf_asbr_status_update (++ospf_top->redistribute);
+  ospf_asbr_status_update (ospf, ++ospf->redistribute);
 
   return CMD_SUCCESS;
 }
@@ -600,19 +596,21 @@
 int
 ospf_redistribute_default_unset ()
 {
+  struct ospf *ospf = ospf_top;
+
   if (!ospf_is_type_redistributed (DEFAULT_ROUTE))
     return CMD_SUCCESS;
 
-  ospf_top->default_originate = DEFAULT_ORIGINATE_NONE;
-  ospf_top->dmetric[DEFAULT_ROUTE].type = -1;
-  ospf_top->dmetric[DEFAULT_ROUTE].value = -1;
+  ospf->default_originate = DEFAULT_ORIGINATE_NONE;
+  ospf->dmetric[DEFAULT_ROUTE].type = -1;
+  ospf->dmetric[DEFAULT_ROUTE].value = -1;
 
   zclient_redistribute_default_unset (zclient);
 
   if (IS_DEBUG_OSPF (zebra, ZEBRA_REDISTRIBUTE))
     zlog_info ("Redistribute[DEFAULT]: Stop");
   
-  ospf_asbr_status_update (--ospf_top->redistribute);
+  ospf_asbr_status_update (ospf, --ospf->redistribute);
 
   return CMD_SUCCESS;
 }
@@ -620,6 +618,8 @@
 int
 ospf_external_lsa_originate_check (struct external_info *ei)
 {
+  struct ospf *ospf = ospf_top;
+
   /* If prefix is multicast, then do not originate LSA. */
   if (IN_MULTICAST (htonl (ei->p.prefix.s_addr)))
     {
@@ -630,7 +630,7 @@
 
   /* Take care of default-originate. */
   if (is_prefix_default (&ei->p))
-    if (ospf_top->default_originate == DEFAULT_ORIGINATE_NONE)
+    if (ospf->default_originate == DEFAULT_ORIGINATE_NONE)
       {
 	zlog_info ("LSA[Type5:0.0.0.0]: Not originate AS-exntenal-LSA "
 		   "for default");
@@ -642,21 +642,26 @@
 
 /* If connected prefix is OSPF enable interface, then do not announce. */
 int
-ospf_distribute_check_connected (struct external_info *ei)
+ospf_distribute_check_connected (struct ospf *ospf,
+				 struct external_info *ei)
 {
   struct route_node *rn;
 
-  for (rn = route_top (ospf_top->networks); rn; rn = route_next (rn))
+  for (rn = route_top (ospf->networks); rn; rn = route_next (rn))
     if (rn->info != NULL)
       if (prefix_match (&rn->p, (struct prefix *)&ei->p))
-	return 0;
+	{
+	  route_unlock_node (rn);
+	  return 0;
+	}
 
   return 1;
 }
 
 /* return 1 if external LSA must be originated, 0 otherwise */
 int
-ospf_redistribute_check (struct external_info *ei, int *changed)
+ospf_redistribute_check (struct ospf *ospf,
+			 struct external_info *ei, int *changed)
 {
   struct route_map_set_values save_values;
   struct prefix_ipv4 *p = &ei->p;
@@ -669,7 +674,8 @@
     return 0;
 
   /* Take care connected route. */
-  if (type == ZEBRA_ROUTE_CONNECT && !ospf_distribute_check_connected (ei))
+  if (type == ZEBRA_ROUTE_CONNECT &&
+      !ospf_distribute_check_connected (ospf, ei))
     return 0;
 
   if (!DEFAULT_ROUTE_TYPE (type) && DISTRIBUTE_NAME (type))
@@ -746,6 +752,7 @@
   struct in_addr nexthop;
   struct prefix_ipv4 p;
   struct external_info *ei;
+  struct ospf *ospf = ospf_top;
 
   s = zclient->ibuf;
   ifindex = 0;
@@ -782,25 +789,26 @@
     {
       ei = ospf_external_info_add (api.type, p, ifindex, nexthop);
 
-      if (ospf_top->router_id.s_addr == 0)
+      if (ospf->router_id.s_addr == 0)
 	/* Set flags to generate AS-external-LSA originate event
 	   for each redistributed protocols later. */
-	ospf_top->external_origin |= (1 << api.type);
+	ospf->external_origin |= (1 << api.type);
       else
 	{
 	  if (ei)
 	    {
 	      if (is_prefix_default (&p))
-		ospf_external_lsa_refresh_default ();
+		ospf_external_lsa_refresh_default (ospf);
 	      else
 		{
 		  struct ospf_lsa *current;
 
-		  current = ospf_external_info_find_lsa (&ei->p);
+		  current = ospf_external_info_find_lsa (ospf, &ei->p);
 		  if (!current)
-		    ospf_external_lsa_originate (ei);
+		    ospf_external_lsa_originate (ospf, ei);
 		  else if (IS_LSA_MAXAGE (current))
-		    ospf_external_lsa_refresh (current, ei, LSA_REFRESH_FORCE);
+		    ospf_external_lsa_refresh (ospf, current,
+					       ei, LSA_REFRESH_FORCE);
 		  else
 		    zlog_warn ("ospf_zebra_read_ipv4() : %s already exists",
 			       inet_ntoa (p.prefix));
@@ -812,9 +820,9 @@
     {
       ospf_external_info_delete (api.type, p);
       if ( !is_prefix_default (&p))
-	ospf_external_lsa_flush (api.type, &p, ifindex, nexthop);
+	ospf_external_lsa_flush (ospf, api.type, &p, ifindex, nexthop);
       else
-	ospf_external_lsa_refresh_default ();
+	ospf_external_lsa_refresh_default (ospf);
     }
 
   return 0;
@@ -822,7 +830,7 @@
 
 
 int
-ospf_distribute_list_out_set (int type, char *name)
+ospf_distribute_list_out_set (struct ospf *ospf, int type, char *name)
 {
   /* Lookup access-list for distribute-list. */
   DISTRIBUTE_LIST (type) = access_list_lookup (AFI_IP, name);
@@ -836,17 +844,17 @@
 
   /* If access-list have been set, schedule update timer. */
   if (DISTRIBUTE_LIST (type))
-    ospf_distribute_list_update (type);
+    ospf_distribute_list_update (ospf, type);
 
   return CMD_SUCCESS;
 }
 
 int
-ospf_distribute_list_out_unset (int type, char *name)
+ospf_distribute_list_out_unset (struct ospf *ospf, int type, char *name)
 {
   /* Schedule update timer. */
   if (DISTRIBUTE_LIST (type))
-    ospf_distribute_list_update (type);
+    ospf_distribute_list_update (ospf, type);
 
   /* Unset distribute-list. */
   DISTRIBUTE_LIST (type) = NULL;
@@ -869,11 +877,12 @@
   struct route_table *rt;
   struct ospf_lsa *lsa;
   u_char type;
+  struct ospf *ospf = ospf_top;
 
   type = (int) THREAD_ARG (thread);
   rt = EXTERNAL_INFO (type);
 
-  ospf_top->t_distribute_update = NULL;
+  ospf->t_distribute_update = NULL;
 
   zlog_info ("Zebra[Redistribute]: distribute-list update timer fired!");
 
@@ -883,11 +892,11 @@
       if ((ei = rn->info) != NULL)
 	{
 	  if (is_prefix_default (&ei->p))
-	    ospf_external_lsa_refresh_default ();
-	  else if ((lsa = ospf_external_info_find_lsa (&ei->p)))
-	    ospf_external_lsa_refresh (lsa, ei, LSA_REFRESH_IF_CHANGED);
+	    ospf_external_lsa_refresh_default (ospf);
+	  else if ((lsa = ospf_external_info_find_lsa (ospf, &ei->p)))
+	    ospf_external_lsa_refresh (ospf, lsa, ei, LSA_REFRESH_IF_CHANGED);
 	  else
-	    ospf_external_lsa_originate (ei);
+	    ospf_external_lsa_originate (ospf, ei);
 	}
   return 0;
 }
@@ -896,49 +905,45 @@
 
 /* Update distribute-list and set timer to apply access-list. */
 void
-ospf_distribute_list_update (int type)
+ospf_distribute_list_update (struct ospf *ospf, int type)
 {
   struct route_table *rt;
   
-  zlog_info ("ospf_distribute_list_update(): start");
-
   /* External info does not exist. */
   if (!(rt = EXTERNAL_INFO (type)))
     return;
 
   /* If exists previously invoked thread, then cancel it. */
-  if (ospf_top->t_distribute_update)
-    OSPF_TIMER_OFF (ospf_top->t_distribute_update);
+  if (ospf->t_distribute_update)
+    OSPF_TIMER_OFF (ospf->t_distribute_update);
 
   /* Set timer. */
-  ospf_top->t_distribute_update =
+  ospf->t_distribute_update =
     thread_add_timer (master, ospf_distribute_list_update_timer,
 		      (void *) type, OSPF_DISTRIBUTE_UPDATE_DELAY);
-
-  zlog_info ("ospf_distribute_list_update(): stop");
 }
 
 /* If access-list is updated, apply some check. */
 void
 ospf_filter_update (struct access_list *access)
 {
+  struct ospf *ospf = ospf_top;
   int type;
   int abr_inv = 0;
   struct ospf_area *area;
   listnode node;
 
   /* If OSPF instatnce does not exist, return right now. */
-  if (!ospf_top)
+  if (ospf == NULL)
     return;
 
-
   /* Update distribute-list, and apply filter. */
   for (type = 0; type < ZEBRA_ROUTE_MAX; type++)
     {
       if (ROUTEMAP (type) != NULL)
 	{
 	  /* if route-map is not NULL it may be using this access list */
-	  ospf_distribute_list_update (type);
+	  ospf_distribute_list_update (ospf, type);
 	  continue;
 	}
       
@@ -959,12 +964,12 @@
 	  /* Schedule distribute-list update timer. */
 	  if (DISTRIBUTE_LIST (type) == NULL ||
 	      strcmp (DISTRIBUTE_NAME (type), access->name) == 0)
-	    ospf_distribute_list_update (type);
+	    ospf_distribute_list_update (ospf, type);
 	}
     }
 
   /* Update Area access-list. */
-  for (node = listhead (ospf_top->areas); node; nextnode (node))
+  for (node = listhead (ospf->areas); node; nextnode (node))
     if ((area = getdata (node)) != NULL)
       {
 	if (EXPORT_NAME (area))
@@ -982,7 +987,7 @@
 
   /* Schedule ABR tasks -- this will be changed -- takada. */
   if (OSPF_IS_ABR && abr_inv)
-    ospf_schedule_abr_task ();
+    ospf_schedule_abr_task (ospf);
 }
 
 
@@ -1010,6 +1015,7 @@
   u_char distance;
   struct route_node *rn;
   struct ospf_distance *odistance;
+  struct ospf *ospf = ospf_top;
 
   ret = str2prefix_ipv4 (ip_str, &p);
   if (ret == 0)
@@ -1021,7 +1027,7 @@
   distance = atoi (distance_str);
 
   /* Get OSPF distance node. */
-  rn = route_node_get (ospf_top->distance_table, (struct prefix *) &p);
+  rn = route_node_get (ospf->distance_table, (struct prefix *) &p);
   if (rn->info)
     {
       odistance = rn->info;
@@ -1057,6 +1063,7 @@
   u_char distance;
   struct route_node *rn;
   struct ospf_distance *odistance;
+  struct ospf *ospf = ospf_top;
 
   ret = str2prefix_ipv4 (ip_str, &p);
   if (ret == 0)
@@ -1067,7 +1074,7 @@
 
   distance = atoi (distance_str);
 
-  rn = route_node_lookup (ospf_top->distance_table, (struct prefix *)&p);
+  rn = route_node_lookup (ospf->distance_table, (struct prefix *)&p);
   if (! rn)
     {
       vty_out (vty, "Can't find specified prefix%s", VTY_NEWLINE);
@@ -1088,12 +1095,12 @@
 }
 
 void
-ospf_distance_reset ()
+ospf_distance_reset (struct ospf *ospf)
 {
   struct route_node *rn;
   struct ospf_distance *odistance;
 
-  for (rn = route_top (ospf_top->distance_table); rn; rn = route_next (rn))
+  for (rn = route_top (ospf->distance_table); rn; rn = route_next (rn))
     if ((odistance = rn->info) != NULL)
       {
 	if (odistance->access_list)
@@ -1107,58 +1114,26 @@
 u_char
 ospf_distance_apply (struct prefix_ipv4 *p, struct ospf_route *or)
 {
-#if 0
-  struct route_node *rn;
-  struct ospf_distance *odistance;
-  struct access_list *alist;
-  struct prefix_ipv4 q;
+  struct ospf *ospf = ospf_top;
 
-  memset (&q, 0, sizeof (struct prefix_ipv4));
-  q.family = AF_INET;
-  /* q.prefix =  */
-  q.prefixlen = IPV4_MAX_BITLEN;
-#endif /* 0 */
-
-  if (! ospf_top)
+  if (ospf == NULL)
     return 0;
 
-#if 0
-  rn = route_node_match (ospf_top->distance_table, (struct prefix *) &q);
-  if (rn)
-    {
-      odistance = rn->info;
-      route_unlock_node (rn);
-
-      if (odistance->access_list)
-	{
-	  alist = access_list_lookup (AFI_IP, odistance->access_list);
-	  if (alist == NULL)
-	    return 0;
-	  if (access_list_apply (alist, (struct prefix *) p) == FILTER_DENY)
-	    return 0;
-
-	  return odistance->distance;
-	}
-      else
-	return odistance->distance;
-    }
-#endif /* 0 */
-
-  if (ospf_top->distance_intra)
+  if (ospf->distance_intra)
     if (or->path_type == OSPF_PATH_INTRA_AREA)
-      return ospf_top->distance_intra;
+      return ospf->distance_intra;
 
-  if (ospf_top->distance_inter)
+  if (ospf->distance_inter)
     if (or->path_type == OSPF_PATH_INTER_AREA)
-      return ospf_top->distance_inter;
+      return ospf->distance_inter;
 
-  if (ospf_top->distance_external)
+  if (ospf->distance_external)
     if (or->path_type == OSPF_PATH_TYPE1_EXTERNAL
 	|| or->path_type == OSPF_PATH_TYPE2_EXTERNAL)
-      return ospf_top->distance_external;
+      return ospf->distance_external;
   
-  if (ospf_top->distance_all)
-    return ospf_top->distance_all;
+  if (ospf->distance_all)
+    return ospf->distance_all;
 
   return 0;
 }
diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c
index 6e205e6..8d1b786 100644
--- a/ospfd/ospfd.c
+++ b/ospfd/ospfd.c
@@ -58,8 +58,8 @@
 extern struct zclient *zclient;
 
 
-void ospf_remove_vls_through_area (struct ospf_area *);
-void ospf_network_free (struct ospf_network *);
+void ospf_remove_vls_through_area (struct ospf *, struct ospf_area *);
+void ospf_network_free (struct ospf *, struct ospf_network *);
 void ospf_area_free (struct ospf_area *);
 void ospf_network_run (struct ospf *, struct prefix *, struct ospf_area *);
 
@@ -93,29 +93,29 @@
 #define OSPF_EXTERNAL_LSA_ORIGINATE_DELAY 1
 
 void
-ospf_router_id_update ()
+ospf_router_id_update (struct ospf *ospf)
 {
-  listnode node;
   struct in_addr router_id, router_id_old;
+  listnode node;
 
   if (IS_DEBUG_OSPF_EVENT)
-    zlog_info ("Router-ID[OLD:%s]: Update",inet_ntoa (ospf_top->router_id));
+    zlog_info ("Router-ID[OLD:%s]: Update", inet_ntoa (ospf->router_id));
 
-  router_id_old = ospf_top->router_id;
+  router_id_old = ospf->router_id;
 
-  if (ospf_top->router_id_static.s_addr != 0)
-    router_id = ospf_top->router_id_static;
+  if (ospf->router_id_static.s_addr != 0)
+    router_id = ospf->router_id_static;
   else
-    router_id = ospf_router_id_get (ospf_top->oiflist);
+    router_id = ospf_router_id_get (ospf->oiflist);
 
-  ospf_top->router_id = router_id;
+  ospf->router_id = router_id;
   
   if (IS_DEBUG_OSPF_EVENT)
-    zlog_info ("Router-ID[NEW:%s]: Update", inet_ntoa (ospf_top->router_id));
+    zlog_info ("Router-ID[NEW:%s]: Update", inet_ntoa (ospf->router_id));
 
   if (!IPV4_ADDR_SAME (&router_id_old, &router_id))
     {
-      for (node = listhead (ospf_top->oiflist); node; nextnode (node))
+      for (node = listhead (ospf->oiflist); node; nextnode (node))
         {
 	  struct ospf_interface *oi = getdata (node);
 
@@ -124,23 +124,23 @@
         }
 
       /* If AS-external-LSA is queued, then flush those LSAs. */
-      if (router_id_old.s_addr == 0 && ospf_top->external_origin)
+      if (router_id_old.s_addr == 0 && ospf->external_origin)
 	{
 	  int type;
 	  /* Originate each redistributed external route. */
 	  for (type = 0; type < ZEBRA_ROUTE_MAX; type++)
-	    if (ospf_top->external_origin & (1 << type))
+	    if (ospf->external_origin & (1 << type))
 	      thread_add_event (master, ospf_external_lsa_originate_timer,
-				NULL, type);
+				ospf, type);
 	  /* Originate Deafult. */
-	  if (ospf_top->external_origin & (1 << ZEBRA_ROUTE_MAX))
+	  if (ospf->external_origin & (1 << ZEBRA_ROUTE_MAX))
 	    thread_add_event (master, ospf_default_originate_timer,
-			      &ospf_top->default_originate, 0);
+			      &ospf->default_originate, 0);
 
-	  ospf_top->external_origin = 0;
+	  ospf->external_origin = 0;
 	}
 
-      OSPF_TIMER_ON (ospf_top->t_router_lsa_update,
+      OSPF_TIMER_ON (ospf->t_router_lsa_update,
 		     ospf_router_lsa_update_timer, OSPF_LSA_UPDATE_DELAY);
     }
 }
@@ -148,11 +148,13 @@
 int
 ospf_router_id_update_timer (struct thread *thread)
 {
+  struct ospf *ospf = ospf_top;
+
   if (IS_DEBUG_OSPF_EVENT)
     zlog_info ("Router-ID: Update timer fired!");
 
-  ospf_top->t_router_id_update = NULL;
-  ospf_router_id_update ();
+  ospf->t_router_id_update = NULL;
+  ospf_router_id_update (ospf);
 
   return 0;
 }
@@ -213,7 +215,7 @@
   new->maxage_lsa = list_new ();
   new->t_maxage_walker =
     thread_add_timer (master, ospf_lsa_maxage_walker,
-                      NULL, OSPF_LSA_MAXAGE_CHECK_INTERVAL);
+                      new, OSPF_LSA_MAXAGE_CHECK_INTERVAL);
 
   /* Distance table init. */
   new->distance_table = route_table_init ();
@@ -235,19 +237,23 @@
 struct ospf *
 ospf_get ()
 {
-  if (ospf_top != NULL)
-    return ospf_top;
+  struct ospf *ospf = ospf_top;
 
-  ospf_top = ospf_new ();
+  if (ospf != NULL)
+    return ospf;
 
-  if (ospf_top->router_id_static.s_addr == 0)
-    ospf_router_id_update ();
+  ospf = ospf_new ();
+
+  if (ospf->router_id_static.s_addr == 0)
+    ospf_router_id_update (ospf);
 
 #ifdef HAVE_OPAQUE_LSA
-  ospf_opaque_type11_lsa_init (ospf_top);
+  ospf_opaque_type11_lsa_init (ospf);
 #endif /* HAVE_OPAQUE_LSA */
 
-  return ospf_top;
+  ospf_top = ospf;
+
+  return ospf;
 }
 
 void
@@ -255,6 +261,7 @@
 {
   struct route_node *rn;
   struct ospf_nbr_nbma *nbr_nbma;
+  struct ospf_lsa *lsa;
   listnode node;
   int i;
 
@@ -271,7 +278,7 @@
       struct ospf_area *area = getdata (node);
       nextnode (node);
       
-      ospf_remove_vls_through_area (area);
+      ospf_remove_vls_through_area (ospf, area);
     }
   
   for (node = listhead (ospf->vlinks); node; )
@@ -279,7 +286,7 @@
       struct ospf_vl_data *vl_data = node->data;
       nextnode (node);
       
-      ospf_vl_delete (vl_data);
+      ospf_vl_delete (ospf, vl_data);
     }
   
   list_delete (ospf->vlinks);
@@ -324,7 +331,7 @@
 
       if ((network = rn->info) != NULL)
 	{
-	  ospf_network_free (network);
+	  ospf_network_free (ospf, network);
 	  rn->info = NULL;
 	  route_unlock_node (rn);
 	}
@@ -356,11 +363,12 @@
   close (ospf->fd);
    
 #ifdef HAVE_OPAQUE_LSA
-  foreach_lsa (OPAQUE_AS_LSDB (ospf), ospf_top->lsdb, 0,
-	       ospf_lsa_discard_callback);
+  LSDB_LOOP (OPAQUE_AS_LSDB (ospf), rn, lsa)
+    ospf_discard_from_db (ospf, ospf->lsdb, lsa);
 #endif /* HAVE_OPAQUE_LSA */
-  foreach_lsa (EXTERNAL_LSDB (ospf), ospf->lsdb, 0,
-	       ospf_lsa_discard_callback);
+  LSDB_LOOP (EXTERNAL_LSDB (ospf), rn, lsa)
+    ospf_discard_from_db (ospf, ospf->lsdb, lsa);
+
   ospf_lsdb_delete_all (ospf->lsdb);
   ospf_lsdb_free (ospf->lsdb);
 
@@ -409,7 +417,7 @@
 	  route_unlock_node (rn);
 	}
 
-  ospf_distance_reset ();
+  ospf_distance_reset (ospf);
   route_table_finish (ospf->distance_table);
 
   XFREE (MTYPE_OSPF_TOP, ospf);
@@ -420,14 +428,14 @@
 
 /* allocate new OSPF Area object */
 struct ospf_area *
-ospf_area_new (struct in_addr area_id)
+ospf_area_new (struct ospf *ospf, struct in_addr area_id)
 {
   struct ospf_area *new;
 
   /* Allocate new config_network. */
   new = XCALLOC (MTYPE_OSPF_AREA, sizeof (struct ospf_area));
 
-  new->top = ospf_top;
+  new->ospf = ospf;
 
   new->area_id = area_id;
 
@@ -449,7 +457,7 @@
   new->ranges = route_table_init ();
 
   if (area_id.s_addr == OSPF_AREA_BACKBONE)
-    ospf_top->backbone = new;
+    ospf->backbone = new;
 
   return new;
 }
@@ -457,22 +465,28 @@
 void
 ospf_area_free (struct ospf_area *area)
 {
+  struct route_node *rn;
+  struct ospf_lsa *lsa;
+
   /* Free LSDBs. */
-  foreach_lsa (ROUTER_LSDB (area), area->lsdb, 0, ospf_lsa_discard_callback);
-  foreach_lsa (NETWORK_LSDB (area), area->lsdb, 0, ospf_lsa_discard_callback);
-  foreach_lsa (SUMMARY_LSDB (area), area->lsdb, 0, ospf_lsa_discard_callback);
-  foreach_lsa (ASBR_SUMMARY_LSDB (area), area->lsdb, 0,
-	       ospf_lsa_discard_callback);
+  LSDB_LOOP (ROUTER_LSDB (area), rn, lsa)
+    ospf_discard_from_db (area->ospf, area->lsdb, lsa);
+  LSDB_LOOP (NETWORK_LSDB (area), rn, lsa)
+    ospf_discard_from_db (area->ospf, area->lsdb, lsa);
+  LSDB_LOOP (SUMMARY_LSDB (area), rn, lsa)
+    ospf_discard_from_db (area->ospf, area->lsdb, lsa);
+  LSDB_LOOP (ASBR_SUMMARY_LSDB (area), rn, lsa)
+    ospf_discard_from_db (area->ospf, area->lsdb, lsa);
 
 #ifdef HAVE_NSSA
-  foreach_lsa (NSSA_LSDB (area), area->lsdb, 0, ospf_lsa_discard_callback);
+  LSDB_LOOP (NSSA_LSDB (area), rn, lsa)
+    ospf_discard_from_db (area->ospf, area->lsdb, lsa);
 #endif /* HAVE_NSSA */
 #ifdef HAVE_OPAQUE_LSA
-  foreach_lsa (OPAQUE_AREA_LSDB (area), area->lsdb, 0,
-               ospf_lsa_discard_callback);
-  foreach_lsa (OPAQUE_LINK_LSDB (area), area->lsdb, 0,
-               ospf_lsa_discard_callback);
-  ospf_opaque_type10_lsa_term (area);
+  LSDB_LOOP (OPAQUE_AREA_LSDB (area), rn, lsa)
+    ospf_discard_from_db (area->ospf, area->lsdb, lsa);
+  LSDB_LOOP (OPAQUE_LINK_LSDB (area), rn, lsa)
+    ospf_discard_from_db (area->ospf, area->lsdb, lsa);
 #endif /* HAVE_OPAQUE_LSA */
 
   ospf_lsdb_delete_all (area->lsdb);
@@ -493,17 +507,17 @@
   OSPF_TIMER_OFF (area->t_router_lsa_self);
 
   if (OSPF_IS_AREA_BACKBONE (area))
-    ospf_top->backbone = NULL;
+    area->ospf->backbone = NULL;
 
   XFREE (MTYPE_OSPF_AREA, area);
 }
 
 void
-ospf_area_check_free (struct in_addr area_id)
+ospf_area_check_free (struct ospf *ospf, struct in_addr area_id)
 {
   struct ospf_area *area;
 
-  area = ospf_area_lookup_by_area_id (area_id);
+  area = ospf_area_lookup_by_area_id (ospf, area_id);
   if (area &&
       listcount (area->oiflist) == 0 &&
       area->ranges->top == NULL &&
@@ -515,35 +529,35 @@
       IMPORT_NAME (area) == NULL &&
       area->auth_type == OSPF_AUTH_NULL)
     {
-      listnode_delete (ospf_top->areas, area);
+      listnode_delete (ospf->areas, area);
       ospf_area_free (area);
     }
 }
 
 struct ospf_area *
-ospf_area_get (struct in_addr area_id, int format)
+ospf_area_get (struct ospf *ospf, struct in_addr area_id, int format)
 {
   struct ospf_area *area;
   
-  area = ospf_area_lookup_by_area_id (area_id);
+  area = ospf_area_lookup_by_area_id (ospf, area_id);
   if (!area)
     {
-      area = ospf_area_new (area_id);
+      area = ospf_area_new (ospf, area_id);
       area->format = format;
-      listnode_add_sort (ospf_top->areas, area);
-      ospf_check_abr_status ();  
+      listnode_add_sort (ospf->areas, area);
+      ospf_check_abr_status (ospf);  
     }
 
   return area;
 }
 
 struct ospf_area *
-ospf_area_lookup_by_area_id (struct in_addr area_id)
+ospf_area_lookup_by_area_id (struct ospf *ospf, struct in_addr area_id)
 {
   struct ospf_area *area;
   listnode node;
 
-  for (node = listhead (ospf_top->areas); node; nextnode (node))
+  for (node = listhead (ospf->areas); node; nextnode (node))
     {
       area = getdata (node);
 
@@ -581,10 +595,10 @@
 }
 
 void
-ospf_network_free (struct ospf_network *network)
+ospf_network_free (struct ospf *ospf, struct ospf_network *network)
 {
-  ospf_area_check_free (network->area_id);
-  ospf_schedule_abr_task ();
+  ospf_area_check_free (ospf, network->area_id);
+  ospf_schedule_abr_task (ospf);
   XFREE (MTYPE_OSPF_NETWORK, network);
 }
 
@@ -607,7 +621,7 @@
     }
 
   rn->info = network = ospf_network_new (area_id, ret);
-  area = ospf_area_get (area_id, ret);
+  area = ospf_area_get (ospf, area_id, ret);
 
   /* Run network config now. */
   ospf_network_run (ospf, (struct prefix *)p, area);
@@ -618,12 +632,12 @@
       for (rn = route_top (EXTERNAL_INFO (ZEBRA_ROUTE_CONNECT));
 	   rn; rn = route_next (rn))
 	if ((ei = rn->info) != NULL)
-	  if (ospf_external_info_find_lsa (&ei->p))
-	    if (!ospf_distribute_check_connected (ei))
-	      ospf_external_lsa_flush (ei->type, &ei->p,
+	  if (ospf_external_info_find_lsa (ospf, &ei->p))
+	    if (!ospf_distribute_check_connected (ospf, ei))
+	      ospf_external_lsa_flush (ospf, ei->type, &ei->p,
 				       ei->ifindex, ei->nexthop);
 
-  ospf_area_check_free (area_id);
+  ospf_area_check_free (ospf, area_id);
 
   return 1;
 }
@@ -644,11 +658,11 @@
   if (!IPV4_ADDR_SAME (&area_id, &network->area_id))
     return 0;
 
-  ospf_network_free (rn->info);
+  ospf_network_free (ospf, rn->info);
   rn->info = NULL;
   route_unlock_node (rn);
 
-  ospf_if_update ();
+  ospf_if_update (ospf);
   
   /* Update connected redistribute. */
   if (ospf_is_type_redistributed (ZEBRA_ROUTE_CONNECT))
@@ -656,9 +670,9 @@
       for (rn = route_top (EXTERNAL_INFO (ZEBRA_ROUTE_CONNECT));
 	   rn; rn = route_next (rn))
 	if ((ei = rn->info) != NULL)
-	  if (!ospf_external_info_find_lsa (&ei->p))
-	    if (ospf_distribute_check_connected (ei))
-	      ospf_external_lsa_originate (ei);
+	  if (!ospf_external_info_find_lsa (ospf, &ei->p))
+	    if (ospf_distribute_check_connected (ospf, ei))
+	      ospf_external_lsa_originate (ospf, ei);
 
   return 1;
 }
@@ -721,13 +735,13 @@
 	    addr = co->address;
 
 	  if (p->family == co->address->family 
-	      && ! ospf_if_is_configured (&(addr->u.prefix4))
+	      && ! ospf_if_is_configured (ospf, &(addr->u.prefix4))
 	      && ospf_network_match_iface(co,p))
 	    {
 		struct ospf_interface *oi;
 		assert(co);
 		
-		oi = ospf_if_new (ifp, co->address);
+		oi = ospf_if_new (ospf, ifp, co->address);
 		oi->connected = co;
 		
 		oi->nbr_self->address = *oi->address;
@@ -746,11 +760,11 @@
 		ospf_nbr_add_self (oi);
 
 		/* Make sure pseudo neighbor's router_id. */
-		oi->nbr_self->router_id = ospf_top->router_id;
+		oi->nbr_self->router_id = ospf->router_id;
 		oi->nbr_self->src = oi->address->u.prefix4;
 		
 		/* Relate ospf interface to ospf instance. */
-		oi->ospf = ospf_top;
+		oi->ospf = ospf;
 
 		/* update network type as interface flag */
 		/* If network type is specified previously,
@@ -814,7 +828,7 @@
 }
 
 void
-ospf_if_update ()
+ospf_if_update (struct ospf *ospf)
 {
   struct route_node *rn;
   listnode node;
@@ -822,19 +836,19 @@
   struct ospf_network *network;
   struct ospf_area *area;
 
-  if (ospf_top != NULL)
+  if (ospf != NULL)
     {
       /* Update Router ID scheduled. */
-      if (ospf_top->router_id_static.s_addr == 0)
-        if (ospf_top->t_router_id_update == NULL)
+      if (ospf->router_id_static.s_addr == 0)
+        if (ospf->t_router_id_update == NULL)
           {
-            ospf_top->t_router_id_update =
+            ospf->t_router_id_update =
               thread_add_timer (master, ospf_router_id_update_timer, NULL,
                                 OSPF_ROUTER_ID_UPDATE_DELAY);
           }
 
       /* Find interfaces that not configured already.  */
-      for (node = listhead (ospf_top->oiflist); node; node = next)
+      for (node = listhead (ospf->oiflist); node; node = next)
 	{
 	  int found = 0;
 	  struct ospf_interface *oi = getdata (node);
@@ -845,7 +859,7 @@
 	  if (oi->type == OSPF_IFTYPE_VIRTUALLINK)
 	    continue;
 	  
-	  for (rn = route_top (ospf_top->networks); rn; rn = route_next (rn))
+	  for (rn = route_top (ospf->networks); rn; rn = route_next (rn))
 	    {
 	      if (rn->info == NULL)
 		continue;
@@ -863,28 +877,28 @@
 	}
 	
       /* Run each interface. */
-      for (rn = route_top (ospf_top->networks); rn; rn = route_next (rn))
+      for (rn = route_top (ospf->networks); rn; rn = route_next (rn))
 	if (rn->info != NULL)
 	  {
 	    network = (struct ospf_network *) rn->info;
-	    area = ospf_area_get (network->area_id, network->format);
-	    ospf_network_run (ospf_top, &rn->p, area);
+	    area = ospf_area_get (ospf, network->area_id, network->format);
+	    ospf_network_run (ospf, &rn->p, area);
 	  }
     }
 }
 
 void
-ospf_remove_vls_through_area (struct ospf_area *area)
+ospf_remove_vls_through_area (struct ospf *ospf, struct ospf_area *area)
 {
   listnode node, next;
   struct ospf_vl_data *vl_data;
 
-  for (node = listhead (ospf_top->vlinks); node; node = next)
+  for (node = listhead (ospf->vlinks); node; node = next)
     {
       next = node->next;
       if ((vl_data = getdata (node)) != NULL)
 	if (IPV4_ADDR_SAME (&vl_data->vl_area_id, &area->area_id))
-	  ospf_vl_delete (vl_data);
+	  ospf_vl_delete (ospf, vl_data);
     }
 }
 
@@ -956,31 +970,31 @@
     }
 
   ospf_router_lsa_timer_add (area);
-  ospf_schedule_abr_task ();
+  ospf_schedule_abr_task (area->ospf);
 }
 
 int
-ospf_area_shortcut_set (struct ospf_area *area, int mode)
+ospf_area_shortcut_set (struct ospf *ospf, struct ospf_area *area, int mode)
 {
   if (area->shortcut_configured == mode)
     return 0;
 
   area->shortcut_configured = mode;
   ospf_router_lsa_timer_add (area);
-  ospf_schedule_abr_task ();
+  ospf_schedule_abr_task (ospf);
 
-  ospf_area_check_free (area->area_id);
+  ospf_area_check_free (ospf, area->area_id);
 
   return 1;
 }
 
 int
-ospf_area_shortcut_unset (struct ospf_area *area)
+ospf_area_shortcut_unset (struct ospf *ospf, struct ospf_area *area)
 {
   area->shortcut_configured = OSPF_SHORTCUT_DEFAULT;
   ospf_router_lsa_timer_add (area);
-  ospf_area_check_free (area->area_id);
-  ospf_schedule_abr_task ();
+  ospf_area_check_free (ospf, area->area_id);
+  ospf_schedule_abr_task (ospf);
 
   return 1;
 }
@@ -1008,7 +1022,7 @@
   struct ospf_area *area;
   int format = OSPF_AREA_ID_FORMAT_DECIMAL;
 
-  area = ospf_area_get (area_id, format);
+  area = ospf_area_get (ospf, area_id, format);
   if (ospf_area_vlink_count (ospf, area))
     return 0;
 
@@ -1023,14 +1037,14 @@
 {
   struct ospf_area *area;
 
-  area = ospf_area_lookup_by_area_id (area_id);
+  area = ospf_area_lookup_by_area_id (ospf, area_id);
   if (area == NULL)
     return 1;
 
   if (area->external_routing == OSPF_AREA_STUB)
     ospf_area_type_set (area, OSPF_AREA_DEFAULT);
 
-  ospf_area_check_free (area_id);
+  ospf_area_check_free (ospf, area_id);
 
   return 1;
 }
@@ -1041,7 +1055,7 @@
   struct ospf_area *area;
   int format = OSPF_AREA_ID_FORMAT_DECIMAL;
 
-  area = ospf_area_get (area_id, format);
+  area = ospf_area_get (ospf, area_id, format);
   area->no_summary = 1;
 
   return 1;
@@ -1052,12 +1066,12 @@
 {
   struct ospf_area *area;
 
-  area = ospf_area_lookup_by_area_id (area_id);
+  area = ospf_area_lookup_by_area_id (ospf, area_id);
   if (area == NULL)
     return 0;
 
   area->no_summary = 0;
-  ospf_area_check_free (area_id);
+  ospf_area_check_free (ospf, area_id);
 
   return 1;
 }
@@ -1068,7 +1082,7 @@
   struct ospf_area *area;
   int format = OSPF_AREA_ID_FORMAT_DECIMAL;
 
-  area = ospf_area_get (area_id, format);
+  area = ospf_area_get (ospf, area_id, format);
   if (ospf_area_vlink_count (ospf, area))
     return 0;
 
@@ -1086,7 +1100,7 @@
 {
   struct ospf_area *area;
 
-  area = ospf_area_lookup_by_area_id (area_id);
+  area = ospf_area_lookup_by_area_id (ospf, area_id);
   if (area == NULL)
     return 0;
 
@@ -1096,7 +1110,7 @@
       ospf_area_type_set (area, OSPF_AREA_DEFAULT);
     }
 
-  ospf_area_check_free (area_id);
+  ospf_area_check_free (ospf, area_id);
 
   return 1;
 }
@@ -1107,7 +1121,7 @@
 {
   struct ospf_area *area;
 
-  area = ospf_area_lookup_by_area_id (area_id);
+  area = ospf_area_lookup_by_area_id (ospf, area_id);
   if (area == NULL)
     return 0;
 
@@ -1122,19 +1136,20 @@
 {
   struct ospf_area *area;
 
-  area = ospf_area_lookup_by_area_id (area_id);
+  area = ospf_area_lookup_by_area_id (ospf, area_id);
   if (area == NULL)
     return 0;
 
   area->NSSATranslator = OSPF_NSSA_ROLE_CANDIDATE;
 
-  ospf_area_check_free (area_id);
+  ospf_area_check_free (ospf, area_id);
 
   return 1;
 }
 
 int
-ospf_area_export_list_set (struct ospf_area *area, char *list_name)
+ospf_area_export_list_set (struct ospf *ospf,
+			   struct ospf_area *area, char *list_name)
 {
   struct access_list *list;
   list = access_list_lookup (AFI_IP, list_name);
@@ -1145,13 +1160,13 @@
     free (EXPORT_NAME (area));
 
   EXPORT_NAME (area) = strdup (list_name);
-  ospf_schedule_abr_task ();
+  ospf_schedule_abr_task (ospf);
 
   return 1;
 }
 
 int
-ospf_area_export_list_unset (struct ospf_area * area)
+ospf_area_export_list_unset (struct ospf *ospf, struct ospf_area * area)
 {
 
   EXPORT_LIST (area) = 0;
@@ -1161,15 +1176,16 @@
 
   EXPORT_NAME (area) = NULL;
 
-  ospf_area_check_free (area->area_id);
+  ospf_area_check_free (ospf, area->area_id);
   
-  ospf_schedule_abr_task ();
+  ospf_schedule_abr_task (ospf);
 
   return 1;
 }
 
 int
-ospf_area_import_list_set (struct ospf_area *area, char *name)
+ospf_area_import_list_set (struct ospf *ospf,
+			   struct ospf_area *area, char *name)
 {
   struct access_list *list;
   list = access_list_lookup (AFI_IP, name);
@@ -1180,13 +1196,13 @@
     free (IMPORT_NAME (area));
 
   IMPORT_NAME (area) = strdup (name);
-  ospf_schedule_abr_task ();
+  ospf_schedule_abr_task (ospf);
 
   return 1;
 }
 
 int
-ospf_area_import_list_unset (struct ospf_area * area)
+ospf_area_import_list_unset (struct ospf *ospf, struct ospf_area * area)
 {
   IMPORT_LIST (area) = 0;
 
@@ -1194,9 +1210,9 @@
     free (IMPORT_NAME (area));
 
   IMPORT_NAME (area) = NULL;
-  ospf_area_check_free (area->area_id);
+  ospf_area_check_free (ospf, area->area_id);
 
-  ospf_schedule_abr_task ();
+  ospf_schedule_abr_task (ospf);
 
   return 1;
 }
@@ -1369,7 +1385,7 @@
 }
 
 void
-ospf_nbr_nbma_if_update (struct ospf_interface *oi)
+ospf_nbr_nbma_if_update (struct ospf *ospf, struct ospf_interface *oi)
 {
   struct ospf_nbr_nbma *nbr_nbma;
   struct route_node *rn;
@@ -1378,7 +1394,7 @@
   if (oi->type != OSPF_IFTYPE_NBMA)
     return;
 
-  for (rn = route_top (ospf_top->nbr_nbma); rn; rn = route_next (rn))
+  for (rn = route_top (ospf->nbr_nbma); rn; rn = route_next (rn))
     if ((nbr_nbma = rn->info))
       if (nbr_nbma->oi == NULL && nbr_nbma->nbr == NULL)
 	{
@@ -1411,18 +1427,18 @@
 }
 
 struct ospf_nbr_nbma *
-ospf_nbr_nbma_lookup_next (struct in_addr *addr, int first)
+ospf_nbr_nbma_lookup_next (struct ospf *ospf, struct in_addr *addr, int first)
 {
 #if 0
   struct ospf_nbr_nbma *nbr_nbma;
   listnode node;
 #endif
 
-  if (! ospf_top)
+  if (ospf == NULL)
     return NULL;
 
 #if 0
-  for (node = listhead (ospf_top->nbr_nbma); node; nextnode (node))
+  for (node = listhead (ospf->nbr_nbma); node; nextnode (node))
     {
       nbr_nbma = getdata (node);
 
@@ -1567,16 +1583,17 @@
 void
 ospf_prefix_list_update (struct prefix_list *plist)
 {
+  struct ospf *ospf = ospf_top;
   struct ospf_area *area;
   listnode node;
   int abr_inv = 0;
 
   /* If OSPF instatnce does not exist, return right now. */
-  if (!ospf_top)
+  if (ospf == NULL)
     return;
 
   /* Update Area prefix-list. */
-  for (node = listhead (ospf_top->areas); node; nextnode (node))
+  for (node = listhead (ospf->areas); node; nextnode (node))
     {
       area = getdata (node);
 
@@ -1601,7 +1618,7 @@
 
   /* Schedule ABR tasks. */
   if (OSPF_IS_ABR && abr_inv)
-    ospf_schedule_abr_task ();
+    ospf_schedule_abr_task (ospf);
 }
 
 void
diff --git a/ospfd/ospfd.h b/ospfd/ospfd.h
index a46a793..be80621 100644
--- a/ospfd/ospfd.h
+++ b/ospfd/ospfd.h
@@ -32,6 +32,11 @@
 #define IPPROTO_OSPFIGP         89
 #endif /* IPPROTO_OSPFIGP */
 
+/* IP precedence. */
+#ifndef IPTOS_PREC_INTERNETCONTROL
+#define IPTOS_PREC_INTERNETCONTROL	0xC0
+#endif /* IPTOS_PREC_INTERNETCONTROL */
+
 /* VTY port number. */
 #define OSPF_VTY_PORT          2604
 #define OSPF_VTYSH_PATH        "/tmp/.ospfd"
@@ -288,7 +293,7 @@
 struct ospf_area
 {
   /* OSPF instance. */
-  struct ospf *top;
+  struct ospf *ospf;
 
   /* Zebra interface list belonging to the area. */
   list oiflist;
@@ -456,7 +461,7 @@
 #define OSPF_TIMER_ON(T,F,V)                                                  \
     do {                                                                      \
       if (!(T))                                                               \
-	(T) = thread_add_timer (master, (F), NULL, (V));                      \
+	(T) = thread_add_timer (master, (F), ospf, (V));                      \
     } while (0)
 
 #define OSPF_AREA_TIMER_ON(T,F,V)                                             \
@@ -482,12 +487,6 @@
         }                                                                     \
     } while (0)
 
-#define OSPF_SCHEDULE_MAXAGE(T, F)                                            \
-    do {                                                                      \
-      if (!(T))                                                               \
-        (T) = thread_add_timer (master, (F), 0, 2);                           \
-    } while (0)
-
 /* Messages */
 extern struct message ospf_ism_state_msg[];
 extern struct message ospf_nsm_state_msg[];
@@ -521,12 +520,12 @@
 int ospf_area_nssa_set (struct ospf *, struct in_addr);
 int ospf_area_nssa_unset (struct ospf *, struct in_addr);
 int ospf_area_nssa_translator_role_set (struct ospf *, struct in_addr, int);
-int ospf_area_export_list_set (struct ospf_area *, char *);
-int ospf_area_export_list_unset (struct ospf_area *);
-int ospf_area_import_list_set (struct ospf_area *, char *);
-int ospf_area_import_list_unset (struct ospf_area *);
-int ospf_area_shortcut_set (struct ospf_area *, int);
-int ospf_area_shortcut_unset (struct ospf_area *);
+int ospf_area_export_list_set (struct ospf *, struct ospf_area *, char *);
+int ospf_area_export_list_unset (struct ospf *, struct ospf_area *);
+int ospf_area_import_list_set (struct ospf *, struct ospf_area *, char *);
+int ospf_area_import_list_unset (struct ospf *, struct ospf_area *);
+int ospf_area_shortcut_set (struct ospf *, struct ospf_area *, int);
+int ospf_area_shortcut_unset (struct ospf *, struct ospf_area *);
 int ospf_timers_spf_set (struct ospf *, u_int32_t, u_int32_t);
 int ospf_timers_spf_unset (struct ospf *);
 int ospf_timers_refresh_set (struct ospf *, int);
@@ -539,18 +538,18 @@
 int ospf_nbr_nbma_poll_interval_unset (struct ospf *, struct in_addr);
 void ospf_prefix_list_update (struct prefix_list *);
 void ospf_init ();
-void ospf_if_update ();
+void ospf_if_update (struct ospf *);
 void ospf_ls_upd_queue_empty (struct ospf_interface *);
 void ospf_terminate ();
-void ospf_nbr_nbma_if_update (struct ospf_interface *);
+void ospf_nbr_nbma_if_update (struct ospf *, struct ospf_interface *);
 struct ospf_nbr_nbma *ospf_nbr_nbma_lookup (struct ospf *, struct in_addr);
-struct ospf_nbr_nbma *ospf_nbr_nbma_lookup_next (struct in_addr *, int);
+struct ospf_nbr_nbma *ospf_nbr_nbma_lookup_next (struct ospf *,
+						 struct in_addr *, int);
 int ospf_oi_count (struct interface *);
 
-struct ospf_area *ospf_area_new (struct in_addr);
-struct ospf_area *ospf_area_get (struct in_addr, int);
-void ospf_area_check_free (struct in_addr);
-struct ospf_area *ospf_area_lookup_by_area_id (struct in_addr);
+struct ospf_area *ospf_area_get (struct ospf *, struct in_addr, int);
+void ospf_area_check_free (struct ospf *, struct in_addr);
+struct ospf_area *ospf_area_lookup_by_area_id (struct ospf *, struct in_addr);
 void ospf_area_add_if (struct ospf_area *, struct ospf_interface *);
 void ospf_area_del_if (struct ospf_area *, struct ospf_interface *);
 
diff --git a/redhat/zebra.spec b/redhat/zebra.spec
index 77f5146..db42c68 100644
--- a/redhat/zebra.spec
+++ b/redhat/zebra.spec
@@ -1,5 +1,5 @@
 # conditionals
-%define 	with_snmp	1
+%define 	with_snmp	0
 %define		with_vtysh	1
 %define		with_ospf_te	1
 %define		with_nssa	1
@@ -8,6 +8,8 @@
 %define		with_vtysh	1
 %define		with_pam	1
 %define		with_ipv6	1
+%define		with_ospfclient 0
+%define		with_ospfapi	0
 %define		with_multipath	64
 
 # path defines
@@ -24,7 +26,7 @@
 Summary: Routing daemon
 Name:		zebra
 Version:	0.94
-Release:	2003031801
+Release:	2003032501
 License:	GPL
 Group: System Environment/Daemons
 Source0:	ftp://ftp.zebra.org/pub/zebra/%{name}-%{version}.tar.gz
@@ -105,6 +107,16 @@
 %if %with_vtysh
 	--enable-vtysh \
 %endif
+%if %with_ospfclient 
+	--enable-ospfclient=yes \
+%else
+	--enable-ospfclient=no\
+%endif
+%if %with_ospfapi
+	--enable-ospfapi=yes \
+%else
+	--enable-ospfapi=no \
+%endif
 %if %with_pam
 	--with-libpam
 %endif
@@ -243,8 +255,10 @@
 %files devel
 %defattr(-,root,root)
 %dir %{_libdir}/*
-%dir %{_includedir}/ospfd/* 
+%dir %{_includedir}/ospfd/*
+%if %with_ospfapi
 %dir %{_includedir}/ospfapi/*
+%endif
 
 %changelog
 * Mon Mar 18 2003 Paul Jakma <paul@dishone.st>
diff --git a/ripd/Makefile.in b/ripd/Makefile.in
index 8134a1a..4ea4b6e 100644
--- a/ripd/Makefile.in
+++ b/ripd/Makefile.in
@@ -1,6 +1,7 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.5 from Makefile.am.
 
-# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# 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.
@@ -10,6 +11,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+@SET_MAKE@
 
 SHELL = @SHELL@
 
@@ -31,13 +33,9 @@
 mandir = @mandir@
 includedir = @includedir@
 oldincludedir = /usr/include
-
-DESTDIR =
-
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-
 top_builddir = ..
 
 ACLOCAL = @ACLOCAL@
@@ -46,11 +44,11 @@
 AUTOHEADER = @AUTOHEADER@
 
 INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
 transform = @program_transform_name@
-
 NORMAL_INSTALL = :
 PRE_INSTALL = :
 POST_INSTALL = :
@@ -59,21 +57,27 @@
 POST_UNINSTALL = :
 host_alias = @host_alias@
 host_triplet = @host@
+AMTAR = @AMTAR@
 AR = @AR@
+AWK = @AWK@
 BGPD = @BGPD@
 CC = @CC@
 CPP = @CPP@
 CURSES = @CURSES@
+DEPDIR = @DEPDIR@
+EXEEXT = @EXEEXT@
 IF_METHOD = @IF_METHOD@
 IF_PROC = @IF_PROC@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 IPFORWARD = @IPFORWARD@
 KERNEL_METHOD = @KERNEL_METHOD@
 LIBPAM = @LIBPAM@
 LIB_IPV6 = @LIB_IPV6@
 LIB_REGEX = @LIB_REGEX@
-MAKEINFO = @MAKEINFO@
 MULTIPATH_NUM = @MULTIPATH_NUM@
+OBJEXT = @OBJEXT@
 OSPF6D = @OSPF6D@
+OSPFAPI = @OSPFAPI@
 OSPFCLIENT = @OSPFCLIENT@
 OSPFD = @OSPFD@
 OTHER_METHOD = @OTHER_METHOD@
@@ -86,6 +90,9 @@
 VERSION = @VERSION@
 VTYSH = @VTYSH@
 ZEBRA = @ZEBRA@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
 
 INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
 DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
@@ -112,277 +119,271 @@
 sysconf_DATA = ripd.conf.sample
 
 EXTRA_DIST = $(sysconf_DATA) RIPv2-MIB.txt
+subdir = ripd
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../config.h
-CONFIG_CLEAN_FILES = 
-LIBRARIES =  $(noinst_LIBRARIES)
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
 
+librip_a_AR = $(AR) cru
+librip_a_LIBADD =
+am_librip_a_OBJECTS = ripd.$(OBJEXT) rip_zebra.$(OBJEXT) \
+	rip_interface.$(OBJEXT) rip_debug.$(OBJEXT) rip_snmp.$(OBJEXT) \
+	rip_routemap.$(OBJEXT) rip_peer.$(OBJEXT) rip_offset.$(OBJEXT)
+librip_a_OBJECTS = $(am_librip_a_OBJECTS)
+sbin_PROGRAMS = ripd$(EXEEXT)
+PROGRAMS = $(sbin_PROGRAMS)
+
+am_ripd_OBJECTS = rip_main.$(OBJEXT) ripd.$(OBJEXT) rip_zebra.$(OBJEXT) \
+	rip_interface.$(OBJEXT) rip_debug.$(OBJEXT) rip_snmp.$(OBJEXT) \
+	rip_routemap.$(OBJEXT) rip_peer.$(OBJEXT) rip_offset.$(OBJEXT)
+ripd_OBJECTS = $(am_ripd_OBJECTS)
+ripd_DEPENDENCIES = ../lib/libzebra.a
+ripd_LDFLAGS =
+DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
 CPPFLAGS = @CPPFLAGS@
 LDFLAGS = @LDFLAGS@
 LIBS = @LIBS@
-librip_a_LIBADD = 
-librip_a_OBJECTS =  ripd.o rip_zebra.o rip_interface.o rip_debug.o \
-rip_snmp.o rip_routemap.o rip_peer.o rip_offset.o
-PROGRAMS =  $(sbin_PROGRAMS)
-
-ripd_OBJECTS =  rip_main.o ripd.o rip_zebra.o rip_interface.o \
-rip_debug.o rip_snmp.o rip_routemap.o rip_peer.o rip_offset.o
-ripd_DEPENDENCIES =  ../lib/libzebra.a
-ripd_LDFLAGS = 
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/rip_debug.Po \
+@AMDEP_TRUE@	$(DEPDIR)/rip_interface.Po $(DEPDIR)/rip_main.Po \
+@AMDEP_TRUE@	$(DEPDIR)/rip_offset.Po $(DEPDIR)/rip_peer.Po \
+@AMDEP_TRUE@	$(DEPDIR)/rip_routemap.Po $(DEPDIR)/rip_snmp.Po \
+@AMDEP_TRUE@	$(DEPDIR)/rip_zebra.Po $(DEPDIR)/ripd.Po
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-DATA =  $(sysconf_DATA)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+CFLAGS = @CFLAGS@
+DIST_SOURCES = $(librip_a_SOURCES) $(ripd_SOURCES)
+DATA = $(sysconf_DATA)
 
-HEADERS =  $(noinst_HEADERS)
+HEADERS = $(noinst_HEADERS)
 
-DIST_COMMON =  ChangeLog Makefile.am Makefile.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = gtar
-GZIP_ENV = --best
-DEP_FILES =  .deps/rip_debug.P .deps/rip_interface.P .deps/rip_main.P \
-.deps/rip_offset.P .deps/rip_peer.P .deps/rip_routemap.P \
-.deps/rip_snmp.P .deps/rip_zebra.P .deps/ripd.P
+DIST_COMMON = $(noinst_HEADERS) ChangeLog Makefile.am Makefile.in
 SOURCES = $(librip_a_SOURCES) $(ripd_SOURCES)
-OBJECTS = $(librip_a_OBJECTS) $(ripd_OBJECTS)
 
-all: all-redirect
+all: all-am
+
 .SUFFIXES:
-.SUFFIXES: .S .c .o .s
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --foreign ripd/Makefile
+.SUFFIXES: .c .o .obj
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign  ripd/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) && \
+	  CONFIG_HEADERS= CONFIG_LINKS= \
+	  CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
 
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
-	cd $(top_builddir) \
-	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-
-mostlyclean-noinstLIBRARIES:
+AR = ar
 
 clean-noinstLIBRARIES:
 	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-
-distclean-noinstLIBRARIES:
-
-maintainer-clean-noinstLIBRARIES:
-
-.s.o:
-	$(COMPILE) -c $<
-
-.S.o:
-	$(COMPILE) -c $<
-
-mostlyclean-compile:
-	-rm -f *.o core *.core
-
-clean-compile:
-
-distclean-compile:
-	-rm -f *.tab.c
-
-maintainer-clean-compile:
-
-librip.a: $(librip_a_OBJECTS) $(librip_a_DEPENDENCIES)
+librip.a: $(librip_a_OBJECTS) $(librip_a_DEPENDENCIES) 
 	-rm -f librip.a
-	$(AR) cru librip.a $(librip_a_OBJECTS) $(librip_a_LIBADD)
+	$(librip_a_AR) librip.a $(librip_a_OBJECTS) $(librip_a_LIBADD)
 	$(RANLIB) librip.a
-
-mostlyclean-sbinPROGRAMS:
-
-clean-sbinPROGRAMS:
-	-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
-
-distclean-sbinPROGRAMS:
-
-maintainer-clean-sbinPROGRAMS:
-
 install-sbinPROGRAMS: $(sbin_PROGRAMS)
 	@$(NORMAL_INSTALL)
 	$(mkinstalldirs) $(DESTDIR)$(sbindir)
 	@list='$(sbin_PROGRAMS)'; for p in $$list; do \
-	  if test -f $$p; then \
-	    echo "  $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
-	     $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  if test -f $$p \
+	  ; then \
+	    f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f"; \
+	   $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f; \
 	  else :; fi; \
 	done
 
 uninstall-sbinPROGRAMS:
 	@$(NORMAL_UNINSTALL)
-	list='$(sbin_PROGRAMS)'; for p in $$list; do \
-	  rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+	@list='$(sbin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+	  echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
+	  rm -f $(DESTDIR)$(sbindir)/$$f; \
 	done
 
-ripd: $(ripd_OBJECTS) $(ripd_DEPENDENCIES)
-	@rm -f ripd
+clean-sbinPROGRAMS:
+	-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
+ripd$(EXEEXT): $(ripd_OBJECTS) $(ripd_DEPENDENCIES) 
+	@rm -f ripd$(EXEEXT)
 	$(LINK) $(ripd_LDFLAGS) $(ripd_OBJECTS) $(ripd_LDADD) $(LIBS)
 
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT) core *.core
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/rip_debug.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/rip_interface.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/rip_main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/rip_offset.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/rip_peer.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/rip_routemap.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/rip_snmp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/rip_zebra.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ripd.Po@am__quote@
+
+distclean-depend:
+	-rm -rf $(DEPDIR)
+
+.c.o:
+@AMDEP_TRUE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+	$(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
+
+.c.obj:
+@AMDEP_TRUE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+	$(COMPILE) -c `cygpath -w $<`
+CCDEPMODE = @CCDEPMODE@
+uninstall-info-am:
+
 uninstall-sysconfDATA:
 	@$(NORMAL_UNINSTALL)
-	list='$(sysconf_DATA)'; for p in $$list; do \
-	  rm -f $(DESTDIR)$(sysconfdir)/$$p; \
+	@list='$(sysconf_DATA)'; for p in $$list; do \
+	  f="`echo $$p | sed -e 's|^.*/||'`"; \
+	  echo " rm -f $(DESTDIR)$(sysconfdir)/$$f"; \
+	  rm -f $(DESTDIR)$(sysconfdir)/$$f; \
 	done
 
 tags: TAGS
 
-ID: $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
-	here=`pwd` && cd $(srcdir) \
-	  && mkid -f$$here/ID $$unique $(LISP)
+	mkid -fID $$unique $(LISP)
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
 	tags=; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+	list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
 	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
-	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+	  || etags $(ETAGS_ARGS) $$tags  $$unique $(LISP)
 
-mostlyclean-tags:
-
-clean-tags:
+GTAGS:
+	here=`CDPATH=: && cd $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
 
 distclean-tags:
-	-rm -f TAGS ID
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
 
-maintainer-clean-tags:
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = ripd
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 
 distdir: $(DISTFILES)
-	here=`cd $(top_builddir) && pwd`; \
-	top_distdir=`cd $(top_distdir) && pwd`; \
-	distdir=`cd $(distdir) && pwd`; \
-	cd $(top_srcdir) \
-	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign ripd/Makefile
 	@for file in $(DISTFILES); do \
-	  d=$(srcdir); \
+	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    $(mkinstalldirs) "$(distdir)/$$dir"; \
+	  fi; \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$d/$$file $(distdir)/$$file; \
+	    cp -pR $$d/$$file $(distdir) \
+	    || exit 1; \
 	  else \
 	    test -f $(distdir)/$$file \
-	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
 	  fi; \
 	done
-
-DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-
--include $(DEP_FILES)
-
-mostlyclean-depend:
-
-clean-depend:
-
-distclean-depend:
-	-rm -rf .deps
-
-maintainer-clean-depend:
-
-%.o: %.c
-	@echo '$(COMPILE) -c $<'; \
-	$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-	@-cp .deps/$(*F).pp .deps/$(*F).P; \
-	tr ' ' '\012' < .deps/$(*F).pp \
-	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-	    >> .deps/$(*F).P; \
-	rm .deps/$(*F).pp
-
-%.lo: %.c
-	@echo '$(LTCOMPILE) -c $<'; \
-	$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-	@-sed -e 's/^\([^:]*\)\.o[ 	]*:/\1.lo \1.o :/' \
-	  < .deps/$(*F).pp > .deps/$(*F).P; \
-	tr ' ' '\012' < .deps/$(*F).pp \
-	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-	    >> .deps/$(*F).P; \
-	rm -f .deps/$(*F).pp
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
 check-am: all-am
 check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am: install-sbinPROGRAMS install-sysconfDATA
-install-exec: install-exec-am
+all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
 
-install-data-am:
+installdirs:
+	$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
+
+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
-install: install-am
-uninstall-am: uninstall-sbinPROGRAMS uninstall-sysconfDATA
-uninstall: uninstall-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
-all-redirect: all-am
+
+installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-	$(mkinstalldirs)  $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
-
-
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 mostlyclean-generic:
 
 clean-generic:
 
 distclean-generic:
-	-rm -f Makefile $(CONFIG_CLEAN_FILES)
-	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+	-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
 
 maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
-		mostlyclean-sbinPROGRAMS mostlyclean-tags \
-		mostlyclean-depend mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am:  clean-noinstLIBRARIES clean-compile clean-sbinPROGRAMS \
-		clean-tags clean-depend clean-generic mostlyclean-am
-
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
 clean: clean-am
 
-distclean-am:  distclean-noinstLIBRARIES distclean-compile \
-		distclean-sbinPROGRAMS distclean-tags distclean-depend \
-		distclean-generic clean-am
+clean-am: clean-generic clean-noinstLIBRARIES clean-sbinPROGRAMS \
+	mostlyclean-am
 
 distclean: distclean-am
 
-maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
-		maintainer-clean-compile maintainer-clean-sbinPROGRAMS \
-		maintainer-clean-tags maintainer-clean-depend \
-		maintainer-clean-generic distclean-am
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
+distclean-am: clean-am distclean-compile distclean-depend \
+	distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am: install-sbinPROGRAMS install-sysconfDATA
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
 
 maintainer-clean: maintainer-clean-am
 
-.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
-clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
-mostlyclean-compile distclean-compile clean-compile \
-maintainer-clean-compile mostlyclean-sbinPROGRAMS \
-distclean-sbinPROGRAMS clean-sbinPROGRAMS maintainer-clean-sbinPROGRAMS \
-uninstall-sbinPROGRAMS install-sbinPROGRAMS uninstall-sysconfDATA \
-install-sysconfDATA tags mostlyclean-tags distclean-tags clean-tags \
-maintainer-clean-tags distdir mostlyclean-depend distclean-depend \
-clean-depend maintainer-clean-depend info-am info dvi-am dvi check \
-check-am installcheck-am installcheck install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+uninstall-am: uninstall-info-am uninstall-sbinPROGRAMS \
+	uninstall-sysconfDATA
+
+.PHONY: GTAGS all all-am check check-am clean clean-generic \
+	clean-noinstLIBRARIES clean-sbinPROGRAMS distclean \
+	distclean-compile distclean-depend distclean-generic \
+	distclean-tags 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-sbinPROGRAMS install-strip install-sysconfDATA \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic tags uninstall uninstall-am \
+	uninstall-info-am uninstall-sbinPROGRAMS uninstall-sysconfDATA
 
 
 install-sysconfDATA: $(sysconf_DATA)
@@ -397,7 +398,6 @@
 	    $(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \
 	  fi; fi; \
 	done
-
 # 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/ripngd/Makefile.in b/ripngd/Makefile.in
index 7c6899d..6bd78ca 100644
--- a/ripngd/Makefile.in
+++ b/ripngd/Makefile.in
@@ -1,6 +1,7 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.5 from Makefile.am.
 
-# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# 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.
@@ -10,6 +11,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+@SET_MAKE@
 
 SHELL = @SHELL@
 
@@ -31,13 +33,9 @@
 mandir = @mandir@
 includedir = @includedir@
 oldincludedir = /usr/include
-
-DESTDIR =
-
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-
 top_builddir = ..
 
 ACLOCAL = @ACLOCAL@
@@ -46,11 +44,11 @@
 AUTOHEADER = @AUTOHEADER@
 
 INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
 transform = @program_transform_name@
-
 NORMAL_INSTALL = :
 PRE_INSTALL = :
 POST_INSTALL = :
@@ -59,21 +57,27 @@
 POST_UNINSTALL = :
 host_alias = @host_alias@
 host_triplet = @host@
+AMTAR = @AMTAR@
 AR = @AR@
+AWK = @AWK@
 BGPD = @BGPD@
 CC = @CC@
 CPP = @CPP@
 CURSES = @CURSES@
+DEPDIR = @DEPDIR@
+EXEEXT = @EXEEXT@
 IF_METHOD = @IF_METHOD@
 IF_PROC = @IF_PROC@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 IPFORWARD = @IPFORWARD@
 KERNEL_METHOD = @KERNEL_METHOD@
 LIBPAM = @LIBPAM@
 LIB_IPV6 = @LIB_IPV6@
 LIB_REGEX = @LIB_REGEX@
-MAKEINFO = @MAKEINFO@
 MULTIPATH_NUM = @MULTIPATH_NUM@
+OBJEXT = @OBJEXT@
 OSPF6D = @OSPF6D@
+OSPFAPI = @OSPFAPI@
 OSPFCLIENT = @OSPFCLIENT@
 OSPFD = @OSPFD@
 OTHER_METHOD = @OTHER_METHOD@
@@ -86,6 +90,9 @@
 VERSION = @VERSION@
 VTYSH = @VTYSH@
 ZEBRA = @ZEBRA@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
 
 INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
 DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
@@ -112,277 +119,269 @@
 sysconf_DATA = ripngd.conf.sample
 
 EXTRA_DIST = $(sysconf_DATA)
+subdir = ripngd
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../config.h
-CONFIG_CLEAN_FILES = 
-LIBRARIES =  $(noinst_LIBRARIES)
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
 
+libripng_a_AR = $(AR) cru
+libripng_a_LIBADD =
+am_libripng_a_OBJECTS = ripng_interface.$(OBJEXT) ripngd.$(OBJEXT) \
+	ripng_zebra.$(OBJEXT) ripng_route.$(OBJEXT) \
+	ripng_debug.$(OBJEXT) ripng_routemap.$(OBJEXT)
+libripng_a_OBJECTS = $(am_libripng_a_OBJECTS)
+sbin_PROGRAMS = ripngd$(EXEEXT)
+PROGRAMS = $(sbin_PROGRAMS)
+
+am_ripngd_OBJECTS = ripng_main.$(OBJEXT) ripng_interface.$(OBJEXT) \
+	ripngd.$(OBJEXT) ripng_zebra.$(OBJEXT) ripng_route.$(OBJEXT) \
+	ripng_debug.$(OBJEXT) ripng_routemap.$(OBJEXT)
+ripngd_OBJECTS = $(am_ripngd_OBJECTS)
+ripngd_DEPENDENCIES = ../lib/libzebra.a
+ripngd_LDFLAGS =
+DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
 CPPFLAGS = @CPPFLAGS@
 LDFLAGS = @LDFLAGS@
 LIBS = @LIBS@
-libripng_a_LIBADD = 
-libripng_a_OBJECTS =  ripng_interface.o ripngd.o ripng_zebra.o \
-ripng_route.o ripng_debug.o ripng_routemap.o
-PROGRAMS =  $(sbin_PROGRAMS)
-
-ripngd_OBJECTS =  ripng_main.o ripng_interface.o ripngd.o ripng_zebra.o \
-ripng_route.o ripng_debug.o ripng_routemap.o
-ripngd_DEPENDENCIES =  ../lib/libzebra.a
-ripngd_LDFLAGS = 
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/ripng_debug.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ripng_interface.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ripng_main.Po $(DEPDIR)/ripng_route.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ripng_routemap.Po \
+@AMDEP_TRUE@	$(DEPDIR)/ripng_zebra.Po $(DEPDIR)/ripngd.Po
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-DATA =  $(sysconf_DATA)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+CFLAGS = @CFLAGS@
+DIST_SOURCES = $(libripng_a_SOURCES) $(ripngd_SOURCES)
+DATA = $(sysconf_DATA)
 
-HEADERS =  $(noinst_HEADERS)
+HEADERS = $(noinst_HEADERS)
 
-DIST_COMMON =  ChangeLog Makefile.am Makefile.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = gtar
-GZIP_ENV = --best
-DEP_FILES =  .deps/ripng_debug.P .deps/ripng_interface.P \
-.deps/ripng_main.P .deps/ripng_route.P .deps/ripng_routemap.P \
-.deps/ripng_zebra.P .deps/ripngd.P
+DIST_COMMON = $(noinst_HEADERS) ChangeLog Makefile.am Makefile.in
 SOURCES = $(libripng_a_SOURCES) $(ripngd_SOURCES)
-OBJECTS = $(libripng_a_OBJECTS) $(ripngd_OBJECTS)
 
-all: all-redirect
+all: all-am
+
 .SUFFIXES:
-.SUFFIXES: .S .c .o .s
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --foreign ripngd/Makefile
+.SUFFIXES: .c .o .obj
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign  ripngd/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) && \
+	  CONFIG_HEADERS= CONFIG_LINKS= \
+	  CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
 
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
-	cd $(top_builddir) \
-	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-
-mostlyclean-noinstLIBRARIES:
+AR = ar
 
 clean-noinstLIBRARIES:
 	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-
-distclean-noinstLIBRARIES:
-
-maintainer-clean-noinstLIBRARIES:
-
-.s.o:
-	$(COMPILE) -c $<
-
-.S.o:
-	$(COMPILE) -c $<
-
-mostlyclean-compile:
-	-rm -f *.o core *.core
-
-clean-compile:
-
-distclean-compile:
-	-rm -f *.tab.c
-
-maintainer-clean-compile:
-
-libripng.a: $(libripng_a_OBJECTS) $(libripng_a_DEPENDENCIES)
+libripng.a: $(libripng_a_OBJECTS) $(libripng_a_DEPENDENCIES) 
 	-rm -f libripng.a
-	$(AR) cru libripng.a $(libripng_a_OBJECTS) $(libripng_a_LIBADD)
+	$(libripng_a_AR) libripng.a $(libripng_a_OBJECTS) $(libripng_a_LIBADD)
 	$(RANLIB) libripng.a
-
-mostlyclean-sbinPROGRAMS:
-
-clean-sbinPROGRAMS:
-	-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
-
-distclean-sbinPROGRAMS:
-
-maintainer-clean-sbinPROGRAMS:
-
 install-sbinPROGRAMS: $(sbin_PROGRAMS)
 	@$(NORMAL_INSTALL)
 	$(mkinstalldirs) $(DESTDIR)$(sbindir)
 	@list='$(sbin_PROGRAMS)'; for p in $$list; do \
-	  if test -f $$p; then \
-	    echo "  $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
-	     $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  if test -f $$p \
+	  ; then \
+	    f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f"; \
+	   $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f; \
 	  else :; fi; \
 	done
 
 uninstall-sbinPROGRAMS:
 	@$(NORMAL_UNINSTALL)
-	list='$(sbin_PROGRAMS)'; for p in $$list; do \
-	  rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+	@list='$(sbin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+	  echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
+	  rm -f $(DESTDIR)$(sbindir)/$$f; \
 	done
 
-ripngd: $(ripngd_OBJECTS) $(ripngd_DEPENDENCIES)
-	@rm -f ripngd
+clean-sbinPROGRAMS:
+	-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
+ripngd$(EXEEXT): $(ripngd_OBJECTS) $(ripngd_DEPENDENCIES) 
+	@rm -f ripngd$(EXEEXT)
 	$(LINK) $(ripngd_LDFLAGS) $(ripngd_OBJECTS) $(ripngd_LDADD) $(LIBS)
 
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT) core *.core
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ripng_debug.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ripng_interface.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ripng_main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ripng_route.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ripng_routemap.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ripng_zebra.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ripngd.Po@am__quote@
+
+distclean-depend:
+	-rm -rf $(DEPDIR)
+
+.c.o:
+@AMDEP_TRUE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+	$(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
+
+.c.obj:
+@AMDEP_TRUE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+	$(COMPILE) -c `cygpath -w $<`
+CCDEPMODE = @CCDEPMODE@
+uninstall-info-am:
+
 uninstall-sysconfDATA:
 	@$(NORMAL_UNINSTALL)
-	list='$(sysconf_DATA)'; for p in $$list; do \
-	  rm -f $(DESTDIR)$(sysconfdir)/$$p; \
+	@list='$(sysconf_DATA)'; for p in $$list; do \
+	  f="`echo $$p | sed -e 's|^.*/||'`"; \
+	  echo " rm -f $(DESTDIR)$(sysconfdir)/$$f"; \
+	  rm -f $(DESTDIR)$(sysconfdir)/$$f; \
 	done
 
 tags: TAGS
 
-ID: $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
-	here=`pwd` && cd $(srcdir) \
-	  && mkid -f$$here/ID $$unique $(LISP)
+	mkid -fID $$unique $(LISP)
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
 	tags=; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+	list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
 	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
-	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+	  || etags $(ETAGS_ARGS) $$tags  $$unique $(LISP)
 
-mostlyclean-tags:
-
-clean-tags:
+GTAGS:
+	here=`CDPATH=: && cd $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
 
 distclean-tags:
-	-rm -f TAGS ID
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
 
-maintainer-clean-tags:
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = ripngd
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 
 distdir: $(DISTFILES)
-	here=`cd $(top_builddir) && pwd`; \
-	top_distdir=`cd $(top_distdir) && pwd`; \
-	distdir=`cd $(distdir) && pwd`; \
-	cd $(top_srcdir) \
-	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign ripngd/Makefile
 	@for file in $(DISTFILES); do \
-	  d=$(srcdir); \
+	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    $(mkinstalldirs) "$(distdir)/$$dir"; \
+	  fi; \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$d/$$file $(distdir)/$$file; \
+	    cp -pR $$d/$$file $(distdir) \
+	    || exit 1; \
 	  else \
 	    test -f $(distdir)/$$file \
-	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
 	  fi; \
 	done
-
-DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-
--include $(DEP_FILES)
-
-mostlyclean-depend:
-
-clean-depend:
-
-distclean-depend:
-	-rm -rf .deps
-
-maintainer-clean-depend:
-
-%.o: %.c
-	@echo '$(COMPILE) -c $<'; \
-	$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-	@-cp .deps/$(*F).pp .deps/$(*F).P; \
-	tr ' ' '\012' < .deps/$(*F).pp \
-	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-	    >> .deps/$(*F).P; \
-	rm .deps/$(*F).pp
-
-%.lo: %.c
-	@echo '$(LTCOMPILE) -c $<'; \
-	$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-	@-sed -e 's/^\([^:]*\)\.o[ 	]*:/\1.lo \1.o :/' \
-	  < .deps/$(*F).pp > .deps/$(*F).P; \
-	tr ' ' '\012' < .deps/$(*F).pp \
-	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-	    >> .deps/$(*F).P; \
-	rm -f .deps/$(*F).pp
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
 check-am: all-am
 check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am: install-sbinPROGRAMS install-sysconfDATA
-install-exec: install-exec-am
+all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
 
-install-data-am:
+installdirs:
+	$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
+
+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
-install: install-am
-uninstall-am: uninstall-sbinPROGRAMS uninstall-sysconfDATA
-uninstall: uninstall-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
-all-redirect: all-am
+
+installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-	$(mkinstalldirs)  $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
-
-
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 mostlyclean-generic:
 
 clean-generic:
 
 distclean-generic:
-	-rm -f Makefile $(CONFIG_CLEAN_FILES)
-	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+	-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
 
 maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
-		mostlyclean-sbinPROGRAMS mostlyclean-tags \
-		mostlyclean-depend mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am:  clean-noinstLIBRARIES clean-compile clean-sbinPROGRAMS \
-		clean-tags clean-depend clean-generic mostlyclean-am
-
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
 clean: clean-am
 
-distclean-am:  distclean-noinstLIBRARIES distclean-compile \
-		distclean-sbinPROGRAMS distclean-tags distclean-depend \
-		distclean-generic clean-am
+clean-am: clean-generic clean-noinstLIBRARIES clean-sbinPROGRAMS \
+	mostlyclean-am
 
 distclean: distclean-am
 
-maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
-		maintainer-clean-compile maintainer-clean-sbinPROGRAMS \
-		maintainer-clean-tags maintainer-clean-depend \
-		maintainer-clean-generic distclean-am
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
+distclean-am: clean-am distclean-compile distclean-depend \
+	distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am: install-sbinPROGRAMS install-sysconfDATA
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
 
 maintainer-clean: maintainer-clean-am
 
-.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
-clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
-mostlyclean-compile distclean-compile clean-compile \
-maintainer-clean-compile mostlyclean-sbinPROGRAMS \
-distclean-sbinPROGRAMS clean-sbinPROGRAMS maintainer-clean-sbinPROGRAMS \
-uninstall-sbinPROGRAMS install-sbinPROGRAMS uninstall-sysconfDATA \
-install-sysconfDATA tags mostlyclean-tags distclean-tags clean-tags \
-maintainer-clean-tags distdir mostlyclean-depend distclean-depend \
-clean-depend maintainer-clean-depend info-am info dvi-am dvi check \
-check-am installcheck-am installcheck install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+uninstall-am: uninstall-info-am uninstall-sbinPROGRAMS \
+	uninstall-sysconfDATA
+
+.PHONY: GTAGS all all-am check check-am clean clean-generic \
+	clean-noinstLIBRARIES clean-sbinPROGRAMS distclean \
+	distclean-compile distclean-depend distclean-generic \
+	distclean-tags 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-sbinPROGRAMS install-strip install-sysconfDATA \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic tags uninstall uninstall-am \
+	uninstall-info-am uninstall-sbinPROGRAMS uninstall-sysconfDATA
 
 
 install-sysconfDATA: $(sysconf_DATA)
@@ -397,7 +396,6 @@
 	    $(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \
 	  fi; fi; \
 	done
-
 # 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/vtysh/Makefile.in b/vtysh/Makefile.in
index 3c9ccba..528c994 100644
--- a/vtysh/Makefile.in
+++ b/vtysh/Makefile.in
@@ -1,6 +1,7 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.5 from Makefile.am.
 
-# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# 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.
@@ -10,6 +11,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+@SET_MAKE@
 
 SHELL = @SHELL@
 
@@ -31,13 +33,9 @@
 mandir = @mandir@
 includedir = @includedir@
 oldincludedir = /usr/include
-
-DESTDIR =
-
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-
 top_builddir = ..
 
 ACLOCAL = @ACLOCAL@
@@ -46,11 +44,11 @@
 AUTOHEADER = @AUTOHEADER@
 
 INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
 transform = @program_transform_name@
-
 NORMAL_INSTALL = :
 PRE_INSTALL = :
 POST_INSTALL = :
@@ -59,21 +57,27 @@
 POST_UNINSTALL = :
 host_alias = @host_alias@
 host_triplet = @host@
+AMTAR = @AMTAR@
 AR = @AR@
+AWK = @AWK@
 BGPD = @BGPD@
 CC = @CC@
 CPP = @CPP@
 CURSES = @CURSES@
+DEPDIR = @DEPDIR@
+EXEEXT = @EXEEXT@
 IF_METHOD = @IF_METHOD@
 IF_PROC = @IF_PROC@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 IPFORWARD = @IPFORWARD@
 KERNEL_METHOD = @KERNEL_METHOD@
 LIBPAM = @LIBPAM@
 LIB_IPV6 = @LIB_IPV6@
 LIB_REGEX = @LIB_REGEX@
-MAKEINFO = @MAKEINFO@
 MULTIPATH_NUM = @MULTIPATH_NUM@
+OBJEXT = @OBJEXT@
 OSPF6D = @OSPF6D@
+OSPFAPI = @OSPFAPI@
 OSPFCLIENT = @OSPFCLIENT@
 OSPFD = @OSPFD@
 OTHER_METHOD = @OTHER_METHOD@
@@ -86,6 +90,9 @@
 VERSION = @VERSION@
 VTYSH = @VTYSH@
 ZEBRA = @ZEBRA@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
 
 INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
 DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
@@ -101,265 +108,253 @@
 sysconf_DATA = vtysh.conf.sample
 
 EXTRA_DIST = extract.pl vtysh.conf.sample
+subdir = vtysh
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../config.h
-CONFIG_CLEAN_FILES = 
-PROGRAMS =  $(bin_PROGRAMS)
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+bin_PROGRAMS = vtysh$(EXEEXT)
+PROGRAMS = $(bin_PROGRAMS)
 
+am_vtysh_OBJECTS = vtysh_main.$(OBJEXT) vtysh.$(OBJEXT) \
+	vtysh_cmd.$(OBJEXT) vtysh_user.$(OBJEXT) vtysh_config.$(OBJEXT)
+vtysh_OBJECTS = $(am_vtysh_OBJECTS)
+vtysh_DEPENDENCIES = ../lib/libzebra.a
+vtysh_LDFLAGS =
+DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
 CPPFLAGS = @CPPFLAGS@
 LDFLAGS = @LDFLAGS@
-vtysh_OBJECTS =  vtysh_main.o vtysh.o vtysh_cmd.o vtysh_user.o \
-vtysh_config.o
-vtysh_DEPENDENCIES =  ../lib/libzebra.a
-vtysh_LDFLAGS = 
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/vtysh.Po $(DEPDIR)/vtysh_cmd.Po \
+@AMDEP_TRUE@	$(DEPDIR)/vtysh_config.Po $(DEPDIR)/vtysh_main.Po \
+@AMDEP_TRUE@	$(DEPDIR)/vtysh_user.Po
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-DATA =  $(sysconf_DATA)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+CFLAGS = @CFLAGS@
+DIST_SOURCES = $(vtysh_SOURCES)
+DATA = $(sysconf_DATA)
 
-HEADERS =  $(noinst_HEADERS)
+HEADERS = $(noinst_HEADERS)
 
-DIST_COMMON =  ChangeLog Makefile.am Makefile.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = gtar
-GZIP_ENV = --best
-DEP_FILES =  .deps/vtysh.P .deps/vtysh_cmd.P .deps/vtysh_config.P \
-.deps/vtysh_main.P .deps/vtysh_user.P
+DIST_COMMON = $(noinst_HEADERS) ChangeLog Makefile.am Makefile.in
 SOURCES = $(vtysh_SOURCES)
-OBJECTS = $(vtysh_OBJECTS)
 
-all: all-redirect
+all: all-am
+
 .SUFFIXES:
-.SUFFIXES: .S .c .o .s
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --foreign vtysh/Makefile
-
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
-	cd $(top_builddir) \
-	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-
-mostlyclean-binPROGRAMS:
-
-clean-binPROGRAMS:
-	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
-
-distclean-binPROGRAMS:
-
-maintainer-clean-binPROGRAMS:
-
+.SUFFIXES: .c .o .obj
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign  vtysh/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) && \
+	  CONFIG_HEADERS= CONFIG_LINKS= \
+	  CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
 install-binPROGRAMS: $(bin_PROGRAMS)
 	@$(NORMAL_INSTALL)
 	$(mkinstalldirs) $(DESTDIR)$(bindir)
 	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  if test -f $$p; then \
-	    echo "  $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
-	     $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  if test -f $$p \
+	  ; then \
+	    f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$f"; \
+	   $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$f; \
 	  else :; fi; \
 	done
 
 uninstall-binPROGRAMS:
 	@$(NORMAL_UNINSTALL)
-	list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+	  echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
+	  rm -f $(DESTDIR)$(bindir)/$$f; \
 	done
 
-.s.o:
-	$(COMPILE) -c $<
-
-.S.o:
-	$(COMPILE) -c $<
+clean-binPROGRAMS:
+	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+vtysh$(EXEEXT): $(vtysh_OBJECTS) $(vtysh_DEPENDENCIES) 
+	@rm -f vtysh$(EXEEXT)
+	$(LINK) $(vtysh_LDFLAGS) $(vtysh_OBJECTS) $(vtysh_LDADD) $(LIBS)
 
 mostlyclean-compile:
-	-rm -f *.o core *.core
-
-clean-compile:
+	-rm -f *.$(OBJEXT) core *.core
 
 distclean-compile:
 	-rm -f *.tab.c
 
-maintainer-clean-compile:
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/vtysh.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/vtysh_cmd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/vtysh_config.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/vtysh_main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/vtysh_user.Po@am__quote@
 
-vtysh: $(vtysh_OBJECTS) $(vtysh_DEPENDENCIES)
-	@rm -f vtysh
-	$(LINK) $(vtysh_LDFLAGS) $(vtysh_OBJECTS) $(vtysh_LDADD) $(LIBS)
+distclean-depend:
+	-rm -rf $(DEPDIR)
 
+.c.o:
+@AMDEP_TRUE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+	$(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
+
+.c.obj:
+@AMDEP_TRUE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+	$(COMPILE) -c `cygpath -w $<`
+CCDEPMODE = @CCDEPMODE@
+uninstall-info-am:
 install-sysconfDATA: $(sysconf_DATA)
 	@$(NORMAL_INSTALL)
 	$(mkinstalldirs) $(DESTDIR)$(sysconfdir)
 	@list='$(sysconf_DATA)'; for p in $$list; do \
-	  if test -f $(srcdir)/$$p; then \
-	    echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p"; \
-	    $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p; \
-	  else if test -f $$p; then \
-	    echo " $(INSTALL_DATA) $$p $(DESTDIR)$(sysconfdir)/$$p"; \
-	    $(INSTALL_DATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \
-	  fi; fi; \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  f="`echo $$p | sed -e 's|^.*/||'`"; \
+	  echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(sysconfdir)/$$f"; \
+	  $(INSTALL_DATA) $$d$$p $(DESTDIR)$(sysconfdir)/$$f; \
 	done
 
 uninstall-sysconfDATA:
 	@$(NORMAL_UNINSTALL)
-	list='$(sysconf_DATA)'; for p in $$list; do \
-	  rm -f $(DESTDIR)$(sysconfdir)/$$p; \
+	@list='$(sysconf_DATA)'; for p in $$list; do \
+	  f="`echo $$p | sed -e 's|^.*/||'`"; \
+	  echo " rm -f $(DESTDIR)$(sysconfdir)/$$f"; \
+	  rm -f $(DESTDIR)$(sysconfdir)/$$f; \
 	done
 
 tags: TAGS
 
-ID: $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
-	here=`pwd` && cd $(srcdir) \
-	  && mkid -f$$here/ID $$unique $(LISP)
+	mkid -fID $$unique $(LISP)
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
 	tags=; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+	list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
 	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
-	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+	  || etags $(ETAGS_ARGS) $$tags  $$unique $(LISP)
 
-mostlyclean-tags:
-
-clean-tags:
+GTAGS:
+	here=`CDPATH=: && cd $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
 
 distclean-tags:
-	-rm -f TAGS ID
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
 
-maintainer-clean-tags:
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = vtysh
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 
 distdir: $(DISTFILES)
-	here=`cd $(top_builddir) && pwd`; \
-	top_distdir=`cd $(top_distdir) && pwd`; \
-	distdir=`cd $(distdir) && pwd`; \
-	cd $(top_srcdir) \
-	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign vtysh/Makefile
 	@for file in $(DISTFILES); do \
-	  d=$(srcdir); \
+	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    $(mkinstalldirs) "$(distdir)/$$dir"; \
+	  fi; \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$d/$$file $(distdir)/$$file; \
+	    cp -pR $$d/$$file $(distdir) \
+	    || exit 1; \
 	  else \
 	    test -f $(distdir)/$$file \
-	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
 	  fi; \
 	done
-
-DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-
--include $(DEP_FILES)
-
-mostlyclean-depend:
-
-clean-depend:
-
-distclean-depend:
-	-rm -rf .deps
-
-maintainer-clean-depend:
-
-%.o: %.c
-	@echo '$(COMPILE) -c $<'; \
-	$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-	@-cp .deps/$(*F).pp .deps/$(*F).P; \
-	tr ' ' '\012' < .deps/$(*F).pp \
-	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-	    >> .deps/$(*F).P; \
-	rm .deps/$(*F).pp
-
-%.lo: %.c
-	@echo '$(LTCOMPILE) -c $<'; \
-	$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-	@-sed -e 's/^\([^:]*\)\.o[ 	]*:/\1.lo \1.o :/' \
-	  < .deps/$(*F).pp > .deps/$(*F).P; \
-	tr ' ' '\012' < .deps/$(*F).pp \
-	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-	    >> .deps/$(*F).P; \
-	rm -f .deps/$(*F).pp
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
 check-am: all-am
 check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am: install-binPROGRAMS install-sysconfDATA
-install-exec: install-exec-am
+all-am: Makefile $(PROGRAMS) $(DATA) $(HEADERS)
 
-install-data-am:
+installdirs:
+	$(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(sysconfdir)
+
+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
-install: install-am
-uninstall-am: uninstall-binPROGRAMS uninstall-sysconfDATA
-uninstall: uninstall-am
-all-am: Makefile $(PROGRAMS) $(DATA) $(HEADERS)
-all-redirect: all-am
+
+installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-	$(mkinstalldirs)  $(DESTDIR)$(bindir) $(DESTDIR)$(sysconfdir)
-
-
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 mostlyclean-generic:
 
 clean-generic:
 
 distclean-generic:
-	-rm -f Makefile $(CONFIG_CLEAN_FILES)
-	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+	-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
 
 maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-binPROGRAMS mostlyclean-compile \
-		mostlyclean-tags mostlyclean-depend mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am:  clean-binPROGRAMS clean-compile clean-tags clean-depend \
-		clean-generic mostlyclean-am
-
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
 clean: clean-am
 
-distclean-am:  distclean-binPROGRAMS distclean-compile distclean-tags \
-		distclean-depend distclean-generic clean-am
+clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
 
 distclean: distclean-am
 
-maintainer-clean-am:  maintainer-clean-binPROGRAMS \
-		maintainer-clean-compile maintainer-clean-tags \
-		maintainer-clean-depend maintainer-clean-generic \
-		distclean-am
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
+distclean-am: clean-am distclean-compile distclean-depend \
+	distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am: install-binPROGRAMS install-sysconfDATA
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
 
 maintainer-clean: maintainer-clean-am
 
-.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
-maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
-mostlyclean-compile distclean-compile clean-compile \
-maintainer-clean-compile uninstall-sysconfDATA install-sysconfDATA tags \
-mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \
-distdir mostlyclean-depend distclean-depend clean-depend \
-maintainer-clean-depend info-am info dvi-am dvi check check-am \
-installcheck-am installcheck install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+uninstall-am: uninstall-binPROGRAMS uninstall-info-am \
+	uninstall-sysconfDATA
+
+.PHONY: GTAGS all all-am check check-am clean clean-binPROGRAMS \
+	clean-generic distclean distclean-compile distclean-depend \
+	distclean-generic distclean-tags distdir dvi dvi-am info \
+	info-am install install-am install-binPROGRAMS install-data \
+	install-data-am install-exec install-exec-am install-info \
+	install-info-am install-man install-strip install-sysconfDATA \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic tags uninstall uninstall-am \
+	uninstall-binPROGRAMS uninstall-info-am uninstall-sysconfDATA
 
 
 rebuild4:
@@ -367,7 +362,6 @@
 
 rebuild:
 	./extract.pl ../zebra/*.c ../ripd/*.c ../ripngd/*.c ../ospfd/*.c ../ospf6d/*.c ../bgpd/*.c ../lib/keychain.c ../lib/routemap.c ../lib/filter.c ../lib/plist.c >vtysh_cmd.c
-
 # 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/vtysh/extract.pl b/vtysh/extract.pl
index 4eb88fa..5d29f8a 100755
--- a/vtysh/extract.pl
+++ b/vtysh/extract.pl
@@ -61,25 +61,6 @@
     @defun = ($line =~ /(?:DEFUN|ALIAS)\s*\((.+?)\);?\s?\s?\n/sg);
     @install = ($line =~ /install_element \(\s*[0-9A-Z_]+,\s*&[^;]*;\s*\n/sg);
 
-    # $protocol is VTYSH_PROTO format for redirection of user input
-    if ($file =~ /lib/) {
-	if ($file =~ /keychain.c/) {
-	    $protocol = "VTYSH_RIPD";
-	}
-	if ($file =~ /routemap.c/) {
-	    $protocol = "VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD";
-	}
-	if ($file =~ /filter.c/) {
-	    $protocol = "VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD";
-	}
-	if ($file =~ /plist.c/) {
-	    $protocol = "VTYSH_RIPD|VTYSH_BGPD";
-	}
-    } else {
-	($protocol) = ($file =~ /\/([a-z0-9]+)/);
-	$protocol = "VTYSH_" . uc $protocol;
-    }
-
     # DEFUN process
     foreach (@defun) {
 	my (@defun_array);
@@ -98,6 +79,33 @@
 	$cmd =~ s/^\s+//g;
 	$cmd =~ s/\s+$//g;
 
+        # $protocol is VTYSH_PROTO format for redirection of user input
+    	if ($file =~ /lib/) {
+           if ($file =~ /keychain.c/) {
+              $protocol = "VTYSH_RIPD";
+           }
+           if ($file =~ /routemap.c/) {
+              $protocol = "VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD";
+           }
+           if ($file =~ /filter.c/) {
+              if ($defun_array[1] =~ m/ipv6/) {
+                 $protocol = "VTYSH_RIPNGD|VTYSH_OSPF6D|VTYSH_BGPD";
+	      } else {
+                 $protocol = "VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD";
+              }
+           }
+           if ($file =~ /plist.c/) {
+	      if ($defun_array[1] =~ m/ipv6/) {
+                 $protocol = "VTYSH_RIPNGD|VTYSH_BGPD";
+              } else {
+                 $protocol = "VTYSH_RIPD|VTYSH_BGPD";
+              }
+           }
+        } else {
+           ($protocol) = ($file =~ /\/([a-z0-9]+)/);
+           $protocol = "VTYSH_" . uc $protocol;
+        }
+
 	# Append _vtysh to structure then build DEFUN again
 	$defun_array[1] = $cmd . "_vtysh";
 	$defun_body = join (", ", @defun_array);
diff --git a/vtysh/vtysh.c b/vtysh/vtysh.c
index 01fb520..f54a2e8 100644
--- a/vtysh/vtysh.c
+++ b/vtysh/vtysh.c
@@ -1081,6 +1081,20 @@
        "quit",
        "Exit current mode and down to previous mode\n")
 
+DEFUNSH (VTYSH_RIPNGD,
+    vtysh_exit_ripngd,
+    vtysh_exit_ripngd_cmd,
+    "exit",
+    "Exit current mode and down to previous mode\n")
+{
+  return vtysh_exit (vty);
+}
+
+ALIAS (vtysh_exit_ripngd,
+       vtysh_quit_ripngd_cmd,
+       "quit",
+       "Exit current mode and down to previous mode\n")
+
 DEFUNSH (VTYSH_RMAP,
 	 vtysh_exit_rmap,
 	 vtysh_exit_rmap_cmd,
@@ -1123,7 +1137,21 @@
        "quit",
        "Exit current mode and down to previous mode\n")
 
-DEFUNSH (VTYSH_ZEBRA|VTYSH_RIPD|VTYSH_OSPFD,
+DEFUNSH (VTYSH_OSPF6D,
+    vtysh_exit_ospf6d,
+    vtysh_exit_ospf6d_cmd,
+    "exit",
+    "Exit current mode and down to previous mode\n")
+{
+  return vtysh_exit (vty);
+}
+
+ALIAS (vtysh_exit_ospf6d,
+       vtysh_quit_ospf6d_cmd,
+       "quit",
+       "Exit current mode and down to previous mode\n")
+
+DEFUNSH (VTYSH_ZEBRA|VTYSH_RIPD|VTYSH_OSPFD|VTYSH_OSPF6D,
 	 vtysh_interface,
 	 vtysh_interface_cmd,
 	 "interface IFNAME",
@@ -1155,7 +1183,7 @@
        "Metric value for destination routing protocol\n"
        "Metric value\n")
 
-DEFUNSH (VTYSH_ZEBRA|VTYSH_RIPD|VTYSH_OSPFD,
+DEFUNSH (VTYSH_ZEBRA|VTYSH_RIPD|VTYSH_OSPFD|VTYSH_OSPF6D,
 	 vtysh_exit_interface,
 	 vtysh_exit_interface_cmd,
 	 "exit",
@@ -1653,7 +1681,7 @@
 
 /* To disable readline's filename completion */
 int
-vtysh_completion_entry_fucntion (int ignore, int invoking_key)
+vtysh_completion_entry_function (int ignore, int invoking_key)
 {
   return 0;
 }
@@ -1663,7 +1691,7 @@
 {
   /* readline related settings. */
   rl_bind_key ('?', vtysh_rl_describe);
-  rl_completion_entry_function = vtysh_completion_entry_fucntion;
+  rl_completion_entry_function = vtysh_completion_entry_function;
   rl_attempted_completion_function = (CPPFunction *)new_completion;
   /* do not append space after completion. It will be appended
      in new_completion() function explicitly */
@@ -1753,8 +1781,12 @@
   install_element (ENABLE_NODE, &vtysh_quit_all_cmd);
   install_element (RIP_NODE, &vtysh_exit_ripd_cmd);
   install_element (RIP_NODE, &vtysh_quit_ripd_cmd);
+  install_element (RIPNG_NODE, &vtysh_exit_ripngd_cmd);
+  install_element (RIPNG_NODE, &vtysh_quit_ripngd_cmd);
   install_element (OSPF_NODE, &vtysh_exit_ospfd_cmd);
   install_element (OSPF_NODE, &vtysh_quit_ospfd_cmd);
+  install_element (OSPF6_NODE, &vtysh_exit_ospf6d_cmd);
+  install_element (OSPF6_NODE, &vtysh_quit_ospf6d_cmd);
   install_element (BGP_NODE, &vtysh_exit_bgpd_cmd);
   install_element (BGP_NODE, &vtysh_quit_bgpd_cmd);
   install_element (BGP_VPNV4_NODE, &vtysh_exit_bgpd_cmd);
diff --git a/vtysh/vtysh_cmd.c b/vtysh/vtysh_cmd.c
index 60a6b57..76b9f53 100644
--- a/vtysh/vtysh_cmd.c
+++ b/vtysh/vtysh_cmd.c
@@ -2,576 +2,216 @@
 #include "command.h"
 #include "vtysh.h"
 
-DEFSH (VTYSH_OSPFD, neighbor_cmd_vtysh, 
-       "neighbor A.B.C.D", 
-       "Specify neighbor router\n"
-       "Neighbor IP address\n")
-
-DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_route_flapping_cmd_vtysh, 
-       "show ipv6 ospf6 route flapping", 
-       "Show running system information\n"
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n")
-
-DEFSH (VTYSH_OSPFD, refresh_timer_cmd_vtysh, 
-       "refresh timer <10-1800>", 
-       "Adjust refresh parameters\n"
-       "Set refresh timer\n"
-       "Timer value in seconds\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_mbgp_cmd_vtysh, 
-       "show ipv6 mbgp", 
-       "Show running system information\n"
-       "IP information\n"
-       "MBGP information\n")
-
-DEFSH (VTYSH_BGPD, show_ip_community_list_arg_cmd_vtysh, 
-       "show ip community-list (<1-199>|WORD)", 
-       "Show running system information\n"
-       "IP information\n"
-       "List community-list\n"
-       "Community-list number\n"
-       "Community-list name\n")
-
-DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_interface_cmd_vtysh, 
-       "show ipv6 ospf6 interface", 
-       "Show running system information\n"
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Interface infomation\n"
-       )
-
-DEFSH (VTYSH_BGPD, no_neighbor_distribute_list_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "distribute-list (<1-199>|<1300-2699>|WORD) (in|out)", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Filter updates to/from this neighbor\n"
-       "IP access-list number\n"
-       "IP access-list number (expanded range)\n"
-       "IP Access-list name\n"
-       "Filter incoming updates\n"
-       "Filter outgoing updates\n")
-
-DEFSH (VTYSH_RIPD, no_rip_offset_list_ifname_cmd_vtysh, 
-       "no offset-list WORD (in|out) <0-16> IFNAME", 
-       "Negate a command or set its defaults\n"
-       "Modify RIP metric\n"
-       "Access-list name\n"
-       "For incoming updates\n"
-       "For outgoing updates\n"
-       "Metric value\n"
-       "Interface to match\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_all_ipv4_soft_in_cmd_vtysh, 
-       "clear ip bgp * ipv4 (unicast|multicast) soft in", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all peers\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_maximum_prefix_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "maximum-prefix", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Maximum number of prefix accept from this peer\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_mbgp_prefix_longer_cmd_vtysh, 
-       "show ipv6 mbgp X:X::X:X/M longer-prefixes", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "MBGP information\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
-       "Display route and more specific routes\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_mbgp_regexp_cmd_vtysh, 
-       "show ipv6 mbgp regexp .LINE", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display routes matching the AS path regular expression\n"
-       "A regular-expression to match the MBGP AS paths\n")
-
-DEFSH (VTYSH_RIPD, accept_lifetime_day_month_day_month_cmd_vtysh, 
-       "accept-lifetime HH:MM:SS <1-31> MONTH <1993-2035> HH:MM:SS <1-31> MONTH <1993-2035>", 
-       "Set accept lifetime of the key\n"
-       "Time to start\n"
-       "Day of th month to start\n"
-       "Month of the year to start\n"
-       "Year to start\n"
-       "Time to expire\n"
-       "Day of th month to expire\n"
-       "Month of the year to expire\n"
-       "Year to expire\n")
-
-DEFSH (VTYSH_BGPD, no_set_community_val_cmd_vtysh, 
-       "no set community .AA:NN", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "BGP community attribute\n"
-       "Community number in aa:nn format or local-AS|no-advertise|no-export|internet or additive\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_bgp_community_list_exact_cmd_vtysh, 
-       "show ipv6 bgp community-list WORD exact-match", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "BGP information\n"
-       "Display routes matching the community-list\n"
-       "community-list name\n"
-       "Exact match of the communities\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_attr_unchanged9_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged med next-hop as-path", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "BGP attribute is propagated unchanged to this neighbor\n"
-       "Med attribute\n"
-       "Nexthop attribute\n"
-       "As-path attribute\n")
-
-DEFSH (VTYSH_RIPNGD, ripng_redistribute_static_metric_cmd_vtysh, 
-       "redistribute static metric <0-16>", 
-       "Redistribute information from another routing protocol\n"
-       "Static routes\n"
-       "Metric\n"
-       "Metric value\n")
-
-DEFSH (VTYSH_OSPFD, no_debug_ospf_zebra_sub_cmd_vtysh, 
-       "no debug ospf zebra (interface|redistribute)", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "OSPF information\n"
-       "OSPF Zebra information\n"
-       "Zebra interface\n"
-       "Zebra redistribute\n")
-
-DEFSH (VTYSH_RIPD, no_ip_rip_authentication_string_cmd_vtysh, 
-       "no ip rip authentication string", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Routing Information Protocol\n"
-       "Authentication control\n"
-       "Authentication string\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_instance_all_soft_cmd_vtysh, 
-       "clear ip bgp view WORD * soft", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP view\n"
-       "view name\n"
-       "Clear all peers\n"
-       "Soft reconfig\n")
-
-DEFSH (VTYSH_OSPFD, no_area_vlink_param1_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
-       "(hello-interval|retransmit-interval|transmit-delay|dead-interval)", 
-       "Negate a command or set its defaults\n"
-       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
-       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n")
-
-DEFSH (VTYSH_OSPFD, no_capability_opaque_cmd_vtysh, 
-       "no capability opaque", 
-       "Negate a command or set its defaults\n"
-       "Enable specific OSPF feature\n"
-       "Opaque LSA\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_community3_exact_cmd_vtysh, 
-       "show bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "Exact match of the communities")
-
-DEFSH (VTYSH_RIPD, send_lifetime_day_month_month_day_cmd_vtysh, 
-       "send-lifetime HH:MM:SS <1-31> MONTH <1993-2035> HH:MM:SS MONTH <1-31> <1993-2035>", 
-       "Set send lifetime of the key\n"
-       "Time to start\n"
-       "Day of th month to start\n"
-       "Month of the year to start\n"
-       "Year to start\n"
-       "Time to expire\n"
-       "Month of the year to expire\n"
-       "Day of th month to expire\n"
-       "Year to expire\n")
-
-DEFSH (VTYSH_BGPD, no_ipv6_bgp_network_route_map_cmd_vtysh, 
-       "no network X:X::X:X/M route-map WORD", 
-       "Negate a command or set its defaults\n"
-       "Specify a network to announce via BGP\n"
-       "IPv6 prefix <network>/<length>\n"
-       "Route-map to modify the attributes\n"
-       "Name of the route map\n")
-
-DEFSH (VTYSH_ZEBRA, no_ip_route_distance_cmd_vtysh, 
-       "no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) <1-255>", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Establish static routes\n"
-       "IP destination prefix (e.g. 10.0.0.0/8)\n"
-       "IP gateway address\n"
-       "IP gateway interface name\n"
-       "Null interface\n"
-       "Distance value for this route\n")
-
-DEFSH (VTYSH_BGPD, no_match_origin_val_cmd_vtysh, 
-       "no match origin (egp|igp|incomplete)", 
-       "Negate a command or set its defaults\n"
-       "Match values from routing table\n"
-       "BGP origin code\n"
-       "remote EGP\n"
-       "local IGP\n"
-       "unknown heritage\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_ipv6_neighbor_advertised_route_cmd_vtysh, 
-       "show bgp ipv6 neighbors (A.B.C.D|X:X::X:X) advertised-routes", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Neighbor to display information about\n"
-       "Display the routes advertised to a BGP neighbor\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_RIPNGD|VTYSH_OSPF6D, no_router_zebra_cmd_vtysh, 
-       "no router zebra", 
-       "Negate a command or set its defaults\n"
-       "Configure routing process\n"
-       "Disable connection to zebra daemon\n")
-
-DEFSH (VTYSH_BGPD, no_router_bgp_cmd_vtysh, 
-       "no router bgp <1-65535>", 
-       "Negate a command or set its defaults\n"
-       "Enable a routing process\n"
-       "BGP information\n"
-       "AS number\n")
-
-DEFSH (VTYSH_ZEBRA, show_ip_route_cmd_vtysh, 
-       "show ip route", 
-       "Show running system information\n"
-       "IP information\n"
-       "IP routing table\n")
-
-DEFSH (VTYSH_OSPFD, no_area_range_cost_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) range A.B.C.D/M cost <0-16777215>", 
-       "Negate a command or set its defaults\n"
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Summarize routes matching address/mask (border routers only)\n"
-       "Area range prefix\n"
-       "User specified metric for this range\n"
-       "Advertised metric for this range\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_all_cmd_vtysh, 
-       "clear bgp *", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear all peers\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_default_originate_rmap_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "default-originate route-map WORD", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Originate default route to this neighbor\n"
-       "Route-map to specify criteria to originate default\n"
-       "route-map name\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_summary_cmd_vtysh, 
-       "show ip bgp ipv4 (unicast|multicast) summary", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Summary of BGP neighbor status\n")
-
-DEFSH (VTYSH_OSPFD, ospf_transmit_delay_cmd_vtysh, 
-       "ospf transmit-delay <1-65535>", 
-       "OSPF interface commands\n"
-       "Link state transmit delay\n"
-       "Seconds\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_default_metric_cmd_vtysh, 
-       "no default-metric", 
-       "Negate a command or set its defaults\n"
-       "Set a metric of redistribute routes\n"
-       "Default metric\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_rd_summary_cmd_vtysh, 
-       "show ip bgp vpnv4 rd ASN:nn_or_IP-address:nn summary", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display VPNv4 NLRI specific information\n"
-       "Display information for a route distinguisher\n"
-       "VPN Route Distinguisher\n"
-       "Summary of BGP neighbor status\n")
-
-DEFSH (VTYSH_OSPFD, no_mpls_te_cmd_vtysh, 
-       "no mpls-te", 
-       "Negate a command or set its defaults\n"
-       "Configure MPLS-TE parameters\n"
-       "Disable the MPLS-TE functionality\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_neighbor_advertised_route_cmd_vtysh, 
-       "show bgp neighbors (A.B.C.D|X:X::X:X) advertised-routes", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Neighbor to display information about\n"
-       "Display the routes advertised to a BGP neighbor\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_timers_connect_val_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X) " "timers connect <0-65535>", 
-       "Negate a command or set its defaults\n"
+DEFSH (VTYSH_BGPD, neighbor_version_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X) " "version (4|4-)", 
        "Specify neighbor router\n"
        "Neighbor address\nIPv6 address\n"
-       "BGP per neighbor timers\n"
-       "BGP connect timer\n"
-       "Connect timer\n")
+       "Neighbor's BGP version\n"
+       "Border Gateway Protocol 4\n"
+       "Multiprotocol Extensions for BGP-4(Old Draft)\n")
 
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_extended_any_mask_cmd_vtysh, 
-       "no access-list (<100-199>|<2000-2699>) (deny|permit) ip any A.B.C.D A.B.C.D", 
+DEFSH (VTYSH_BGPD, no_set_aspath_prepend_cmd_vtysh, 
+       "no set as-path prepend", 
        "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "Prepend string for a BGP AS-path attribute\n"
+       "Prepend to the as-path\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, clear_ipv6_prefix_list_cmd_vtysh, 
+       "clear ipv6 prefix-list", 
+       "Reset functions\n"
+       "IPv6 information\n"
+       "Build a prefix list\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_vpnv4_soft_out_cmd_vtysh, 
+       "clear ip bgp A.B.C.D vpnv4 unicast soft out", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "BGP neighbor address to clear\n"
+       "Address family\n"
+       "Address Family Modifier\n"
+       "Soft reconfig\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_extended_host_any_cmd_vtysh, 
+       "access-list (<100-199>|<2000-2699>) (deny|permit) ip host A.B.C.D any", 
        "Add an access list entry\n"
        "IP extended access list\n"
        "IP extended access list (expanded range)\n"
        "Specify packets to reject\n"
        "Specify packets to forward\n"
        "Any Internet Protocol\n"
-       "Any source host\n"
-       "Destination address\n"
-       "Destination Wildcard bits\n")
+       "A single source host\n"
+       "Source address\n"
+       "Any destination host\n")
 
-DEFSH (VTYSH_OSPFD, ospf_distance_ospf_intra_inter_cmd_vtysh, 
-       "distance ospf intra-area <1-255> inter-area <1-255>", 
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, ip_prefix_list_description_cmd_vtysh, 
+       "ip prefix-list WORD description .LINE", 
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "Prefix-list specific description\n"
+       "Up to 80 characters describing this prefix-list\n")
+
+DEFSH (VTYSH_ZEBRA, no_ipv6_route_cmd_vtysh, 
+       "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE)", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Establish static routes\n"
+       "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
+       "IPv6 gateway address\n"
+       "IPv6 gateway interface name\n")
+
+DEFSH (VTYSH_OSPFD, ospf_distance_ospf_intra_inter_external_cmd_vtysh, 
+       "distance ospf intra-area <1-255> inter-area <1-255> external <1-255>", 
        "Define an administrative distance\n"
        "OSPF Administrative distance\n"
        "Intra-area routes\n"
        "Distance for intra-area routes\n"
        "Inter-area routes\n"
-       "Distance for inter-area routes\n")
+       "Distance for inter-area routes\n"
+       "External routes\n"
+       "Distance for external routes\n")
 
-DEFSH (VTYSH_RIPNGD, ripng_redistribute_connected_routemap_cmd_vtysh, 
-       "redistribute connected route-map WORD", 
-       "Redistribute information from another routing protocol\n"
-       "Connected\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
+DEFSH (VTYSH_OSPFD, area_default_cost_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) default-cost <0-16777215>", 
+       "OSPF area parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "Set the summary-default cost of a NSSA or stub area\n"
+       "Stub's advertised default summary cost\n")
 
-DEFSH (VTYSH_OSPF6D|VTYSH_BGPD, match_ipv6_address_prefix_list_cmd_vtysh, 
-       "match ipv6 address prefix-list WORD", 
-       "Match values from routing table\n"
-       "IPv6 information\n"
-       "Match address of route\n"
-       "Match entries of prefix-lists\n"
-       "IP prefix-list name\n")
+DEFSH (VTYSH_RIPNGD, default_information_originate_cmd_vtysh, 
+       "default-information originate", 
+       "Default route information\n"
+       "Distribute default route\n")
 
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_ospf6_routemap_cmd_vtysh, 
-       "no redistribute ospf6 route-map WORD", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "IPv6 Open Shortest Path First (OSPFv3)\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, rmap_onmatch_goto_cmd_vtysh, 
-       "on-match goto <1-65535>", 
-       "Exit policy on matches\n"
-       "Goto Clause number\n"
-       "Number\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_soft_in_cmd_vtysh, 
-       "clear bgp ipv6 (A.B.C.D|X:X::X:X) soft in", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "BGP neighbor address to clear\n"
-       "BGP IPv6 neighbor to clear\n"
-       "Soft reconfig\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_in_cmd_vtysh, 
-       "clear bgp ipv6 (A.B.C.D|X:X::X:X) in", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "BGP neighbor address to clear\n"
-       "BGP IPv6 neighbor to clear\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_summary_cmd_vtysh, 
-       "show ip bgp summary", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Summary of BGP neighbor status\n")
-
-DEFSH (VTYSH_OSPFD, no_area_vlink_authtype_authkey_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
-       "(authentication|) "
-       "(authentication-key|)", 
-       "Negate a command or set its defaults\n"
-       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
-       "Enable authentication on this virtual link\n" "dummy string \n"
-       "Authentication password (key)\n" "The OSPF password (key)")
-
-DEFSH (VTYSH_BGPD, no_neighbor_capability_route_refresh_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "capability route-refresh", 
+DEFSH (VTYSH_BGPD, no_neighbor_update_source_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "update-source", 
        "Negate a command or set its defaults\n"
        "Specify neighbor router\n"
        "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Advertise capability to the peer\n"
-       "Advertise route-refresh capability to this neighbor\n")
+       "Source of routing updates\n"
+       "Interface name\n")
 
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_group_soft_in_cmd_vtysh, 
-       "clear bgp ipv6 peer-group WORD soft in", 
-       "Reset functions\n"
+DEFSH (VTYSH_BGPD, show_bgp_ipv6_route_cmd_vtysh, 
+       "show bgp ipv6 X:X::X:X", 
+       "Show running system information\n"
        "BGP information\n"
        "Address family\n"
-       "Clear all members of peer-group\n"
-       "BGP peer-group name\n"
-       "Soft reconfig\n"
-       "Soft reconfig inbound update\n")
+       "Network in the BGP routing table to display\n")
 
-DEFSH (VTYSH_BGPD, show_ip_bgp_view_prefix_cmd_vtysh, 
-       "show ip bgp view WORD A.B.C.D/M", 
+DEFSH (VTYSH_ZEBRA, no_bandwidth_if_cmd_vtysh, 
+       "no bandwidth", 
+       "Negate a command or set its defaults\n"
+       "Set bandwidth informational parameter\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_standard_any_cmd_vtysh, 
+       "access-list (<1-99>|<1300-1999>) (deny|permit) any", 
+       "Add an access list entry\n"
+       "IP standard access list\n"
+       "IP standard access list (expanded range)\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Any source host\n")
+
+DEFSH (VTYSH_BGPD, no_match_ipv6_next_hop_cmd_vtysh, 
+       "no match ipv6 next-hop X:X::X:X", 
+       "Negate a command or set its defaults\n"
+       "Match values from routing table\n"
+       "IPv6 information\n"
+       "Match IPv6 next-hop address of route\n"
+       "IPv6 address of next hop\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_external_out_cmd_vtysh, 
+       "clear bgp external out", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear all external peers\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, ip_prefix_list_seq_le_cmd_vtysh, 
+       "ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M le <0-32>", 
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "sequence number of an entry\n"
+       "Sequence number\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Maximum prefix length to be matched\n"
+       "Maximum prefix length\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_instance_summary_cmd_vtysh, 
+       "show ip bgp view WORD summary", 
        "Show running system information\n"
        "IP information\n"
        "BGP information\n"
        "BGP view\n"
-       "BGP view name\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n")
+       "View name\n"
+       "Summary of BGP neighbor status\n")
 
-DEFSH (VTYSH_BGPD, bgp_deterministic_med_cmd_vtysh, 
-       "bgp deterministic-med", 
-       "BGP specific commands\n"
-       "Pick the best-MED path among paths advertised from the neighboring AS\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_peer_group_out_cmd_vtysh, 
-       "clear bgp peer-group WORD out", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear all members of peer-group\n"
-       "BGP peer-group name\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_OSPFD, ospf_default_metric_cmd_vtysh, 
-       "default-metric <0-16777214>", 
-       "Set metric of redistributed routes\n"
-       "Default metric\n")
-
-DEFSH (VTYSH_OSPFD, ospf_distance_ospf_intra_external_inter_cmd_vtysh, 
-       "distance ospf intra-area <1-255> external <1-255> inter-area <1-255>", 
-       "Define an administrative distance\n"
-       "OSPF Administrative distance\n"
-       "Intra-area routes\n"
-       "Distance for intra-area routes\n"
-       "External routes\n"
-       "Distance for external routes\n"
-       "Inter-area routes\n"
-       "Distance for inter-area routes\n")
-
-DEFSH (VTYSH_BGPD, aggregate_address_summary_only_cmd_vtysh, 
-       "aggregate-address A.B.C.D/M summary-only", 
-       "Configure BGP aggregate entries\n"
-       "Aggregate prefix\n"
-       "Filter more specific routes from updates\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_all_vpnv4_soft_out_cmd_vtysh, 
-       "clear ip bgp * vpnv4 unicast soft out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all peers\n"
-       "Address family\n"
-       "Address Family Modifier\n"
-       "Soft reconfig\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_BGPD, no_set_origin_val_cmd_vtysh, 
-       "no set origin (egp|igp|incomplete)", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "BGP origin code\n"
-       "remote EGP\n"
-       "local IGP\n"
-       "unknown heritage\n")
-
-DEFSH (VTYSH_BGPD, bgp_damp_set3_cmd_vtysh, 
-       "bgp dampening", 
-       "BGP Specific commands\n"
-       "Enable route-flap dampening\n")
-
-DEFSH (VTYSH_RIPD, no_rip_offset_list_cmd_vtysh, 
-       "no offset-list WORD (in|out) <0-16>", 
-       "Negate a command or set its defaults\n"
-       "Modify RIP metric\n"
-       "Access-list name\n"
-       "For incoming updates\n"
-       "For outgoing updates\n"
-       "Metric value\n")
-
-DEFSH (VTYSH_BGPD, ipv6_bgp_network_route_map_cmd_vtysh, 
-       "network X:X::X:X/M route-map WORD", 
-       "Specify a network to announce via BGP\n"
-       "IPv6 prefix <network>/<length>\n"
-       "Route-map to modify the attributes\n"
-       "Name of the route map\n")
-
-DEFSH (VTYSH_OSPF6D, show_debug_ospf6_damp_cmd_vtysh, 
-       "show debugging ospf6 damp", 
-       "Show running system information\n"
-       "Debugging functions (see also 'undebug')\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Flap-dampening information\n"
-      )
-
-DEFSH (VTYSH_OSPFD, ospf_redistribute_source_type_routemap_cmd_vtysh, 
-       "redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) route-map WORD", 
+DEFSH (VTYSH_RIPNGD, ripng_redistribute_kernel_metric_routemap_cmd_vtysh, 
+       "redistribute kernel metric <0-16> route-map WORD", 
        "Redistribute information from another routing protocol\n"
        "Kernel routes\n"
-       "Connected\n"
-       "Static routes\n"
-       "Routing Information Protocol (RIP)\n"
-       "Border Gateway Protocol (BGP)\n"
-       "OSPF exterior metric type for redistributed routes\n"
-       "Set OSPF External Type 1 metrics\n"
-       "Set OSPF External Type 2 metrics\n"
+       "Metric\n"
+       "Metric value\n"
        "Route map reference\n"
        "Pointer to route-map entries\n")
 
-DEFSH (VTYSH_BGPD, no_ip_extcommunity_list_name_all_cmd_vtysh, 
-       "no ip extcommunity-list (standard|expanded) WORD", 
+DEFSH (VTYSH_BGPD, no_bgp_distance_source_cmd_vtysh, 
+       "no distance <1-255> A.B.C.D/M", 
        "Negate a command or set its defaults\n"
+       "Define an administrative distance\n"
+       "Administrative distance\n"
+       "IP source prefix\n")
+
+DEFSH (VTYSH_OSPF6D, no_ospf6_redistribute_cmd_vtysh, 
+       "no redistribute (static|kernel|connected|ripng|bgp)", 
+       "Negate a command or set its defaults\n"
+       "Redistribute\n"
+       "Static route\n"
+       "Kernel route\n"
+       "Connected route\n"
+       "RIPng route\n"
+       "BGP route\n"
+      )
+
+DEFSH (VTYSH_RIPNGD, ripng_aggregate_address_cmd_vtysh, 
+       "aggregate-address X:X::X:X/M", 
+       "Set aggregate RIPng route announcement\n"
+       "Aggregate network\n")
+
+DEFSH (VTYSH_RIPD, send_lifetime_duration_month_day_cmd_vtysh, 
+       "send-lifetime HH:MM:SS MONTH <1-31> <1993-2035> duration <1-2147483646>", 
+       "Set send lifetime of the key\n"
+       "Time to start\n"
+       "Month of the year to start\n"
+       "Day of th month to start\n"
+       "Year to start\n"
+       "Duration of the key\n"
+       "Duration seconds\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, ip_prefix_list_ge_cmd_vtysh, 
+       "ip prefix-list WORD (deny|permit) A.B.C.D/M ge <0-32>", 
        "IP information\n"
-       "Add a extended community list entry\n"
-       "Specify standard extcommunity-list\n"
-       "Specify expanded extcommunity-list\n"
-       "Extended Community list name\n")
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Minimum prefix length to be matched\n"
+       "Minimum prefix length\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_dampening_cmd_vtysh, 
+       "clear ip bgp dampening", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear route flap dampening information\n")
 
 DEFSH (VTYSH_RIPNGD, debug_ripng_zebra_cmd_vtysh, 
        "debug ripng zebra", 
@@ -579,196 +219,35 @@
        "RIPng configuration\n"
        "Debug option set for ripng and zebra communication\n")
 
-DEFSH (VTYSH_BGPD, set_vpnv4_nexthop_cmd_vtysh, 
-       "set vpnv4 next-hop A.B.C.D", 
-       "Set values in destination routing protocol\n"
-       "VPNv4 information\n"
-       "VPNv4 next-hop address\n"
-       "IP address of next hop\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_remote_as_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X) " "remote-as <1-65535>", 
-       "Negate a command or set its defaults\n"
+DEFSH (VTYSH_OSPFD, neighbor_poll_interval_priority_cmd_vtysh, 
+       "neighbor A.B.C.D poll-interval <1-65535> priority <0-255>", 
        "Specify neighbor router\n"
-       "Neighbor address\nIPv6 address\n"
-       "Specify a BGP neighbor\n"
-       "AS number\n")
+       "Neighbor address\n"
+       "OSPF dead-router polling interval\n"
+       "Seconds\n"
+       "OSPF priority of non-broadcast neighbor\n"
+       "Priority\n")
 
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ipv6_prefix_list_prefix_cmd_vtysh, 
-       "no ipv6 prefix-list WORD (deny|permit) (X:X::X:X/M|any)", 
-       "Negate a command or set its defaults\n"
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
-       "Any prefix match.  Same as \"::0/0 le 128\"\n")
-
-DEFSH (VTYSH_OSPFD, debug_ospf_zebra_cmd_vtysh, 
-       "debug ospf zebra", 
-       "Debugging functions (see also 'undebug')\n"
-       "OSPF information\n"
-       "OSPF Zebra information\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ip_prefix_list_prefix_first_match_cmd_vtysh, 
-       "show ip prefix-list WORD A.B.C.D/M first-match", 
-       "Show running system information\n"
-       "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "First matched prefix\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_neighbors_peer_cmd_vtysh, 
-       "show bgp neighbors (A.B.C.D|X:X::X:X)", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Neighbor to display information about\n")
-
-DEFSH (VTYSH_OSPF6D, ospf6_routemap_no_set_forwarding_cmd_vtysh, 
-       "no set forwarding-address X:X::X:X", 
-       "Negate a command or set its defaults\n"
-       "Set value\n"
-       "Forwarding Address\n"
-       "IPv6 Address\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_all_neighbors_cmd_vtysh, 
-       "show ip bgp vpnv4 all neighbors", 
+DEFSH (VTYSH_BGPD, show_ip_bgp_community_cmd_vtysh, 
+       "show ip bgp community (AA:NN|local-AS|no-advertise|no-export)", 
        "Show running system information\n"
        "IP information\n"
        "BGP information\n"
-       "Display VPNv4 NLRI specific information\n"
-       "Display information about all VPNv4 NLRIs\n"
-       "Detailed information on TCP and BGP neighbor connections\n")
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n")
 
-DEFSH (VTYSH_BGPD, neighbor_send_community_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "send-community", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Send Community attribute to this neighbor\n")
-
-DEFSH (VTYSH_BGPD, dump_bgp_updates_cmd_vtysh, 
-       "dump bgp updates PATH", 
-       "Dump packet\n"
-       "BGP packet dump\n"
-       "Dump BGP updates only\n"
-       "Output filename\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_in_prefix_filter_cmd_vtysh, 
-       "clear ip bgp A.B.C.D in prefix-filter", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP neighbor address to clear\n"
-       "Soft reconfig inbound update\n"
-       "Push out the existing ORF prefix-list\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_community_list_exact_cmd_vtysh, 
-       "show ip bgp community-list WORD exact-match", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display routes matching the community-list\n"
-       "community-list name\n"
-       "Exact match of the communities\n")
-
-DEFSH (VTYSH_RIPD, accept_lifetime_infinite_day_month_cmd_vtysh, 
-       "accept-lifetime HH:MM:SS <1-31> MONTH <1993-2035> infinite", 
-       "Set accept lifetime of the key\n"
-       "Time to start\n"
-       "Day of th month to start\n"
-       "Month of the year to start\n"
-       "Year to start\n"
-       "Never expires")
-
-DEFSH (VTYSH_OSPFD, mpls_te_cmd_vtysh, 
-       "mpls-te", 
-       "Configure MPLS-TE parameters\n"
-       "Enable the MPLS-TE functionality\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_all_soft_out_cmd_vtysh, 
-       "clear bgp ipv6 * soft out", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "Clear all peers\n"
-       "Soft reconfig\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_OSPFD, no_ip_ospf_message_digest_key_cmd_vtysh, 
-       "no ip ospf message-digest-key <1-255>", 
-       "Negate a command or set its defaults\n"
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Message digest authentication password (key)\n"
-       "Key ID\n")
-
-DEFSH (VTYSH_ZEBRA, debug_zebra_packet_cmd_vtysh, 
-       "debug zebra packet", 
-       "Debugging functions (see also 'undebug')\n"
-       "Zebra configuration\n"
-       "Debug option set for zebra packet\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_bestpath_med2_cmd_vtysh, 
-       "no bgp bestpath med confed missing-as-worst", 
-       "Negate a command or set its defaults\n"
-       "BGP specific commands\n"
-       "Change the default bestpath selection\n"
-       "MED attribute\n"
-       "Compare MED among confederation paths\n"
-       "Treat missing MED as the least preferred one\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_multiple_instance_cmd_vtysh, 
-       "no bgp multiple-instance", 
-       "Negate a command or set its defaults\n"
-       "BGP information\n"
-       "BGP multiple instance\n")
-
-DEFSH (VTYSH_RIPD, no_rip_distance_cmd_vtysh, 
-       "no distance <1-255>", 
-       "Negate a command or set its defaults\n"
-       "Administrative distance\n"
-       "Distance value\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_as_ipv4_soft_cmd_vtysh, 
-       "clear ip bgp <1-65535> ipv4 (unicast|multicast) soft", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear peers with the AS number\n"
-       "Address family\n"
-       "Address Family Modifier\n"
-       "Address Family Modifier\n"
-       "Soft reconfig\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_kernel_metric_val_cmd_vtysh, 
-       "no redistribute kernel metric <0-16>", 
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_static_cmd_vtysh, 
+       "no redistribute static", 
        "Negate a command or set its defaults\n"
        "Redistribute information from another routing protocol\n"
-       "Kernel routes\n"
-       "Metric\n"
-       "Metric value\n")
+       "Static routes\n")
 
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_route_map_all_cmd_vtysh, 
-       "no route-map WORD", 
-       "Negate a command or set its defaults\n"
-       "Create route-map or enter route-map command mode\n"
-       "Route map tag\n")
-
-DEFSH (VTYSH_BGPD, bgp_distance_source_access_list_cmd_vtysh, 
-       "distance <1-255> A.B.C.D/M WORD", 
-       "Define an administrative distance\n"
-       "Administrative distance\n"
-       "IP source prefix\n"
-       "Access list name\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_community3_cmd_vtysh, 
-       "show ip bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
+DEFSH (VTYSH_BGPD, show_bgp_community3_cmd_vtysh, 
+       "show bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
        "Show running system information\n"
-       "IP information\n"
        "BGP information\n"
        "Display routes matching the communities\n"
        "community number\n"
@@ -784,1501 +263,187 @@
        "Do not advertise to any peer (well-known community)\n"
        "Do not export to next AS (well-known community)\n")
 
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_sequence_number_cmd_vtysh, 
-       "no ip prefix-list sequence-number", 
+DEFSH (VTYSH_BGPD, no_neighbor_attr_unchanged_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged", 
        "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Build a prefix list\n"
-       "Include/exclude sequence numbers in NVGEN\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_peer_group_cmd_vtysh, 
-       "clear bgp peer-group WORD", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear all members of peer-group\n"
-       "BGP peer-group name\n")
-
-DEFSH (VTYSH_OSPFD, ospf_default_information_originate_metric_type_routemap_cmd_vtysh, 
-       "default-information originate metric <0-16777214> metric-type (1|2) route-map WORD", 
-       "Control distribution of default information\n"
-       "Distribute a default route\n"
-       "OSPF default metric\n"
-       "OSPF metric\n"
-       "OSPF metric type for default routes\n"
-       "Set OSPF External Type 1 metrics\n"
-       "Set OSPF External Type 2 metrics\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_OSPFD, show_ip_ospf_database_cmd_vtysh, 
-       "show ip ospf database", 
-       "Show running system information\n"
-       "IP information\n"
-       "OSPF information\n"
-       "Database summary\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_neighbor_received_prefix_filter_cmd_vtysh, 
-       "show ip bgp ipv4 (unicast|multicast) neighbors (A.B.C.D|X:X::X:X) received prefix-filter", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Neighbor to display information about\n"
-       "Display information received from a BGP neighbor\n"
-       "Display the prefixlist filter\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, ipv6_prefix_list_seq_le_cmd_vtysh, 
-       "ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) X:X::X:X/M le <0-128>", 
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "sequence number of an entry\n"
-       "Sequence number\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
-       "Maximum prefix length to be matched\n"
-       "Maximum prefix length\n")
-
-DEFSH (VTYSH_OSPFD, ospf_redistribute_source_metric_routemap_cmd_vtysh, 
-       "redistribute (kernel|connected|static|rip|bgp) metric <0-16777214> route-map WORD", 
-       "Redistribute information from another routing protocol\n"
-       "Kernel routes\n"
-       "Connected\n"
-       "Static routes\n"
-       "Routing Information Protocol (RIP)\n"
-       "Border Gateway Protocol (BGP)\n"
-       "Metric for redistributed routes\n"
-       "OSPF default metric\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_BGPD, neighbor_maximum_prefix_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "maximum-prefix <1-4294967295>", 
        "Specify neighbor router\n"
        "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Maximum number of prefix accept from this peer\n"
-       "maximum no. of prefix limit\n")
+       "BGP attribute is propagated unchanged to this neighbor\n")
 
-DEFSH (VTYSH_BGPD, clear_ip_bgp_instance_all_ipv4_soft_in_cmd_vtysh, 
-       "clear ip bgp view WORD * ipv4 (unicast|multicast) soft in", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP view\n"
-       "view name\n"
-       "Clear all peers\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_community_all_cmd_vtysh, 
-       "show ip bgp ipv4 (unicast|multicast) community", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Display routes matching the communities\n")
-
-DEFSH (VTYSH_OSPFD, area_vlink_param2_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
-       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535> "
-       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535>", 
-       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
-       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n"
-       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_as_soft_cmd_vtysh, 
-       "clear bgp <1-65535> soft", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear peers with the AS number\n"
-       "Soft reconfig\n")
-
-DEFSH (VTYSH_OSPFD, ip_ospf_cost_cmd_vtysh, 
-       "ip ospf cost <1-65535>", 
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Interface cost\n"
-       "Cost")
-
-DEFSH (VTYSH_RIPNGD, ripng_redistribute_connected_cmd_vtysh, 
-       "redistribute connected", 
-       "Redistribute information from another routing protocol\n"
-       "Connected\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_all_ipv4_out_cmd_vtysh, 
-       "clear ip bgp * ipv4 (unicast|multicast) out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all peers\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_extended_host_any_cmd_vtysh, 
-       "access-list (<100-199>|<2000-2699>) (deny|permit) ip host A.B.C.D any", 
-       "Add an access list entry\n"
-       "IP extended access list\n"
-       "IP extended access list (expanded range)\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Any Internet Protocol\n"
-       "A single source host\n"
-       "Source address\n"
-       "Any destination host\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_static_metric_cmd_vtysh, 
-       "no redistribute static metric", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Static routes\n"
-       "Metric\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_bgp_prefix_longer_cmd_vtysh, 
-       "show ipv6 bgp X:X::X:X/M longer-prefixes", 
+DEFSH (VTYSH_BGPD, show_ipv6_bgp_community_all_cmd_vtysh, 
+       "show ipv6 bgp community", 
        "Show running system information\n"
        "IPv6 information\n"
        "BGP information\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
-       "Display route and more specific routes\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_distance_source_access_list_cmd_vtysh, 
-       "no distance <1-255> A.B.C.D/M WORD", 
-       "Negate a command or set its defaults\n"
-       "Define an administrative distance\n"
-       "Administrative distance\n"
-       "IP source prefix\n"
-       "Access list name\n")
-
-DEFSH (VTYSH_OSPFD, ospf_opaque_capable_cmd_vtysh, 
-       "ospf opaque-lsa", 
-       "OSPF specific commands\n"
-       "Enable the Opaque-LSA capability (rfc2370)\n")
-
-DEFSH (VTYSH_BGPD, neighbor_update_source_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "update-source WORD", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Source of routing updates\n"
-       "Interface name\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ipv6_prefix_list_sequence_number_cmd_vtysh, 
-       "no ipv6 prefix-list sequence-number", 
-       "Negate a command or set its defaults\n"
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Include/exclude sequence numbers in NVGEN\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_redistribute_ipv6_metric_rmap_cmd_vtysh, 
-       "no redistribute (connected|kernel|ospf6|ripng|static) metric <0-4294967295> route-map WORD", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Connected\n"
-       "Kernel routes\n"
-       "Open Shurtest Path First (OSPFv3)\n"
-       "Routing Information Protocol (RIPng)\n"
-       "Static routes\n"
-       "Metric for redistributed routes\n"
-       "Default metric\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_BGPD, ipv6_aggregate_address_cmd_vtysh, 
-       "aggregate-address X:X::X:X/M", 
-       "Configure BGP aggregate entries\n"
-       "Aggregate prefix\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_ipv4_soft_out_cmd_vtysh, 
-       "clear ip bgp A.B.C.D ipv4 (unicast|multicast) soft out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP neighbor address to clear\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_all_vpnv4_soft_cmd_vtysh, 
-       "clear ip bgp * vpnv4 unicast soft", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all peers\n"
-       "Address family\n"
-       "Address Family Modifier\n"
-       "Soft reconfig\n")
-
-DEFSH (VTYSH_OSPF6D, no_ipv6_ospf6_advertise_force_prefix_cmd_vtysh, 
-       "no ipv6 ospf6 advertise force-prefix", 
-       "Negate a command or set its defaults\n"
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Advertising options\n"
-       "Force to advertise prefix,  applicable if Loopback or P-to-P\n"
-       )
-
-DEFSH (VTYSH_BGPD, no_neighbor_ebgp_multihop_ttl_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "ebgp-multihop <1-255>", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Allow EBGP neighbors not on directly connected networks\n"
-       "maximum hop count\n")
-
-DEFSH (VTYSH_OSPFD, ospf_default_information_originate_routemap_cmd_vtysh, 
-       "default-information originate route-map WORD", 
-       "Control distribution of default information\n"
-       "Distribute a default route\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_interface_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X) " "interface WORD", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nIPv6 address\n"
-       "Interface\n"
-       "Interface name\n")
-
-DEFSH (VTYSH_RIPD, no_rip_distance_source_access_list_cmd_vtysh, 
-       "no distance <1-255> A.B.C.D/M WORD", 
-       "Negate a command or set its defaults\n"
-       "Administrative distance\n"
-       "Distance value\n"
-       "IP source prefix\n"
-       "Access list name\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_flap_cidr_only_cmd_vtysh, 
-       "show ip bgp flap-statistics cidr-only", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display flap statistics of routes\n"
-       "Display only routes with non-natural netmasks\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_all_summary_cmd_vtysh, 
-       "show ip bgp vpnv4 all summary", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display VPNv4 NLRI specific information\n"
-       "Display information about all VPNv4 NLRIs\n"
-       "Summary of BGP neighbor status\n")
-
-DEFSH (VTYSH_ZEBRA, no_ipv6_address_cmd_vtysh, 
-       "no ipv6 address X:X::X:X/M", 
-       "Negate a command or set its defaults\n"
-       "Interface Internet Protocol config commands\n"
-       "Set the IP address of an interface\n"
-       "IPv6 address (e.g. 3ffe:506::1/48)\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_external_soft_cmd_vtysh, 
-       "clear bgp external soft", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear all external peers\n"
-       "Soft reconfig\n")
-
-DEFSH (VTYSH_OSPFD, area_nssa_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) nssa", 
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Configure OSPF area as nssa\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_shutdown_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "shutdown", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Administratively shut down this neighbor\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_prefix_list_cmd_vtysh, 
-       "show bgp prefix-list WORD", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Display routes conforming to the prefix-list\n"
-       "IPv6 prefix-list name\n")
-
-DEFSH (VTYSH_RIPD, rip_split_horizon_cmd_vtysh, 
-       "ip split-horizon", 
-       "IP information\n"
-       "Perform split horizon\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ipv6_prefix_list_summary_cmd_vtysh, 
-       "show ipv6 prefix-list summary", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Summary of prefix lists\n")
-
-DEFSH (VTYSH_BGPD, set_community_none_cmd_vtysh, 
-       "set community none", 
-       "Set values in destination routing protocol\n"
-       "BGP community attribute\n"
-       "No community attribute\n")
-
-DEFSH (VTYSH_BGPD, neighbor_attr_unchanged6_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged as-path med next-hop", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "BGP attribute is propagated unchanged to this neighbor\n"
-       "As-path attribute\n"
-       "Med attribute\n"
-       "Nexthop attribute\n")
-
-DEFSH (VTYSH_OSPFD, area_vlink_authtype_args_md5_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
-       "(authentication|) (message-digest|null) "
-       "(message-digest-key|) <1-255> md5 KEY", 
-       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
-       "Enable authentication on this virtual link\n" "dummy string \n" "Use null authentication\n" "Use message-digest authentication\n"
-       "Message digest authentication password (key)\n" "dummy string \n" "Key ID\n" "Use MD5 algorithm\n" "The OSPF password (key)")
-
-DEFSH (VTYSH_RIPD, ip_rip_receive_version_cmd_vtysh, 
-       "ip rip receive version (1|2)", 
-       "IP information\n"
-       "Routing Information Protocol\n"
-       "Advertisement reception\n"
-       "Version control\n"
-       "RIP version 1\n"
-       "RIP version 2\n")
-
-DEFSH (VTYSH_RIPNGD, ripng_redistribute_kernel_metric_routemap_cmd_vtysh, 
-       "redistribute kernel metric <0-16> route-map WORD", 
-       "Redistribute information from another routing protocol\n"
-       "Kernel routes\n"
-       "Metric\n"
-       "Metric value\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_BGPD, no_aggregate_address_as_set_cmd_vtysh, 
-       "no aggregate-address A.B.C.D/M as-set", 
-       "Negate a command or set its defaults\n"
-       "Configure BGP aggregate entries\n"
-       "Aggregate prefix\n"
-       "Generate AS set path information\n")
-
-DEFSH (VTYSH_ZEBRA, no_linkdetect_cmd_vtysh, 
-       "no link-detect", 
-       "Negate a command or set its defaults\n"
-       "Disable link detection on interface\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_all_out_cmd_vtysh, 
-       "clear bgp ipv6 * out", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "Clear all peers\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_OSPFD, show_debugging_ospf_cmd_vtysh, 
-       "show debugging ospf", 
-       "Show running system information\n"
-       "Debugging functions (see also 'undebug')\n"
-       "OSPF information\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_all_cmd_vtysh, 
-       "no access-list (<1-99>|<100-199>|<1300-1999>|<2000-2699>|WORD)", 
-       "Negate a command or set its defaults\n"
-       "Add an access list entry\n"
-       "IP standard access list\n"
-       "IP extended access list\n"
-       "IP standard access list (expanded range)\n"
-       "IP extended access list (expanded range)\n"
-       "IP zebra access-list name\n")
-
-DEFSH (VTYSH_BGPD, bgp_config_type_cmd_vtysh, 
-       "bgp config-type (cisco|zebra)", 
-       "BGP information\n"
-       "Configuration type\n"
-       "cisco\n"
-       "zebra\n")
-
-DEFSH (VTYSH_OSPFD, show_ip_ospf_neighbor_int_detail_cmd_vtysh, 
-       "show ip ospf neighbor A.B.C.D detail", 
-       "Show running system information\n"
-       "IP information\n"
-       "OSPF information\n"
-       "Neighbor list\n"
-       "Interface address\n"
-       "detail of all neighbors")
-
-DEFSH (VTYSH_BGPD, neighbor_attr_unchanged10_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged med as-path next-hop", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "BGP attribute is propagated unchanged to this neighbor\n"
-       "Med attribute\n"
-       "As-path attribute\n"
-       "Nexthop attribute\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_network_backdoor_cmd_vtysh, 
-       "no network A.B.C.D/M backdoor", 
-       "Negate a command or set its defaults\n"
-       "Specify a network to announce via BGP\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Specify a BGP backdoor route\n")
-
-DEFSH (VTYSH_RIPNGD, no_debug_ripng_events_cmd_vtysh, 
-       "no debug ripng events", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "RIPng configuration\n"
-       "Debug option set for ripng events\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_as_ipv4_in_cmd_vtysh, 
-       "clear ip bgp <1-65535> ipv4 (unicast|multicast) in", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear peers with the AS number\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_RIPNGD, ripng_redistribute_bgp_routemap_cmd_vtysh, 
-       "redistribute bgp route-map WORD", 
-       "Redistribute information from another routing protocol\n"
-       "Border Gateway Protocol (BGP)\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_BGPD, aggregate_address_mask_summary_only_cmd_vtysh, 
-       "aggregate-address A.B.C.D A.B.C.D summary-only", 
-       "Configure BGP aggregate entries\n"
-       "Aggregate address\n"
-       "Aggregate mask\n"
-       "Filter more specific routes from updates\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_community_all_cmd_vtysh, 
-       "show ip bgp community", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
        "Display routes matching the communities\n")
 
-DEFSH (VTYSH_BGPD, no_neighbor_attr_unchanged8_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged next-hop as-path med", 
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_match_ip_next_hop_prefix_list_val_cmd_vtysh, 
+       "no match ip next-hop prefix-list WORD", 
        "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "BGP attribute is propagated unchanged to this neighbor\n"
-       "Nexthop attribute\n"
-       "As-path attribute\n"
-       "Med attribute\n")
-
-DEFSH (VTYSH_RIPNGD, ripng_default_metric_cmd_vtysh, 
-       "default-metric <1-16>", 
-       "Set a metric of redistribute routes\n"
-       "Default metric\n")
-
-DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_database_type_cmd_vtysh, 
-       "show ipv6 ospf6 database (router|network|as-external|intra-prefix|inter-prefix|inter-router|link|*|HEX|dump|detail)", 
-       "Show running system information\n"
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "LSA Database\n"
-       "Router-LSA\n"
-       "Network-LSA\n"
-       "AS-External-LSA\n"
-       "Intra-Area-Prefix-LSA\n"
-       "Inter-Area-Router-LSA\n"
-       "Inter-Area-Prefix-LSA\n"
-       "Link-LSA\n"
-       "All LS Type\n"
-       "Specify LS Type by Hex\n"
-       "Dump raw LSA data in Hex\n"
-       "show detail of LSAs\n"
-       )
-
-DEFSH (VTYSH_BGPD, no_aggregate_address_cmd_vtysh, 
-       "no aggregate-address A.B.C.D/M", 
-       "Negate a command or set its defaults\n"
-       "Configure BGP aggregate entries\n"
-       "Aggregate prefix\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_allowas_in_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "allowas-in", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "allow local ASN appears in aspath attribute\n")
-
-DEFSH (VTYSH_BGPD, aggregate_address_mask_as_set_cmd_vtysh, 
-       "aggregate-address A.B.C.D A.B.C.D as-set", 
-       "Configure BGP aggregate entries\n"
-       "Aggregate address\n"
-       "Aggregate mask\n"
-       "Generate AS set path information\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_bgp_metric_cmd_vtysh, 
-       "no redistribute bgp metric", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Border Gateway Protocol (BGP)\n"
-       "Metric\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_kernel_cmd_vtysh, 
-       "no redistribute kernel", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Kernel routes\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_all_vpnv4_soft_in_cmd_vtysh, 
-       "clear ip bgp * vpnv4 unicast soft in", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all peers\n"
-       "Address family\n"
-       "Address Family Modifier\n"
-       "Soft reconfig\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_RIPD, rip_redistribute_type_routemap_cmd_vtysh, 
-       "redistribute (kernel|connected|static|ospf|bgp) route-map WORD", 
-       "Redistribute information from another routing protocol\n"
-       "Kernel routes\n"
-       "Connected\n"
-       "Static routes\n"
-       "Open Shortest Path First (OSPF)\n"
-       "Border Gateway Protocol (BGP)\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_OSPFD, ospf_default_information_originate_always_metric_type_cmd_vtysh, 
-       "default-information originate always metric <0-16777214> metric-type (1|2)", 
-       "Control distribution of default information\n"
-       "Distribute a default route\n"
-       "Always advertise default route\n"
-       "OSPF default metric\n"
-       "OSPF metric\n"
-       "OSPF metric type for default routes\n"
-       "Set OSPF External Type 1 metrics\n"
-       "Set OSPF External Type 2 metrics\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, ip_prefix_list_seq_cmd_vtysh, 
-       "ip prefix-list WORD seq <1-4294967295> (deny|permit) (A.B.C.D/M|any)", 
-       "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "sequence number of an entry\n"
-       "Sequence number\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Any prefix match. Same as \"0.0.0.0/0 le 32\"\n")
-
-DEFSH (VTYSH_OSPFD, no_ospf_network_cmd_vtysh, 
-       "no ospf network", 
-       "Negate a command or set its defaults\n"
-       "OSPF interface commands\n"
-       "Network type\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_prefix_cmd_vtysh, 
-       "no ip prefix-list WORD (deny|permit) (A.B.C.D/M|any)", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Any prefix match.  Same as \"0.0.0.0/0 le 32\"\n")
-
-DEFSH (VTYSH_BGPD, set_community_delete_cmd_vtysh, 
-       "set comm-list (<1-99>|<100-199>|WORD) delete", 
-       "Set values in destination routing protocol\n"
-       "set BGP community list (for deletion)\n"
-       "Community-list number (standard)\n"
-       "Communitly-list number (expanded)\n"
-       "Community-list name\n"
-       "Delete matching communities\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_external_soft_out_cmd_vtysh, 
-       "clear ip bgp external soft out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all external peers\n"
-       "Soft reconfig\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_neighbor_cmd_vtysh, 
-       "show ipv6 ospf6 neighbor", 
-       "Show running system information\n"
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Neighbor list\n"
-       )
-
-DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_database_type_id_adv_router_cmd_vtysh, 
-       "show ipv6 ospf6 database (router|network|as-external|intra-prefix|inter-prefix|inter-router|link|*|HEX) (A.B.C.D|*) (A.B.C.D|*|dump|detail)", 
-       "Show running system information\n"
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "LSA Database\n"
-       "Router-LSA\n"
-       "Network-LSA\n"
-       "AS-External-LSA\n"
-       "Intra-Area-Prefix-LSA\n"
-       "Inter-Area-Router-LSA\n"
-       "Inter-Area-Prefix-LSA\n"
-       "Link-LSA\n"
-       "All LS Type\n"
-       "Specify LS Type by Hex\n"
-       "Link State ID\n"
-       "All Link State ID\n"
-       "Advertising Router\n"
-       "All Advertising Router\n"
-       "Dump raw LSA data in Hex\n"
-       "show detail of LSAs\n"
-       )
-
-DEFSH (VTYSH_RIPD, rip_passive_interface_cmd_vtysh, 
-       "passive-interface IFNAME", 
-       "Suppress routing updates on an interface\n"
-       "Interface name\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_capability_orf_prefix_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "capability orf prefix-list (both|send|receive)", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Advertise capability to the peer\n"
-       "Advertise ORF capability to the peer\n"
-       "Advertise prefixlist ORF capability to this neighbor\n"
-       "Capability to SEND and RECEIVE the ORF to/from this neighbor\n"
-       "Capability to RECEIVE the ORF from this neighbor\n"
-       "Capability to SEND the ORF to this neighbor\n")
-
-DEFSH (VTYSH_ZEBRA, ip_irdp_cmd_vtysh, 
-       "ip irdp", 
-       "IP information\n"
-       "ICMP Router discovery on this interface\n")
-
-DEFSH (VTYSH_RIPNGD, ripng_redistribute_bgp_cmd_vtysh, 
-       "redistribute bgp", 
-       "Redistribute information from another routing protocol\n"
-       "Border Gateway Protocol (BGP)\n")
-
-DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_interface_ifname_cmd_vtysh, 
-       "show ipv6 ospf6 interface IFNAME", 
-       "Show running system information\n"
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Interface infomation\n"
-       "Interface name(e.g. ep0)\n"
-       )
-
-DEFSH (VTYSH_OSPFD, ospf_distance_ospf_intra_inter_external_cmd_vtysh, 
-       "distance ospf intra-area <1-255> inter-area <1-255> external <1-255>", 
-       "Define an administrative distance\n"
-       "OSPF Administrative distance\n"
-       "Intra-area routes\n"
-       "Distance for intra-area routes\n"
-       "Inter-area routes\n"
-       "Distance for inter-area routes\n"
-       "External routes\n"
-       "Distance for external routes\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_all_out_cmd_vtysh, 
-       "clear bgp * out", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear all peers\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_OSPFD, area_stub_no_summary_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) stub no-summary", 
-       "OSPF stub parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Configure OSPF area as stub\n"
-       "Do not inject inter-area routes into stub\n")
-
-DEFSH (VTYSH_RIPNGD, ripng_redistribute_ospf6_metric_cmd_vtysh, 
-       "redistribute ospf6 metric <0-16>", 
-       "Redistribute information from another routing protocol\n"
-       "IPv6 Open Shortest Path First (OSPFv3)\n"
-       "Metric\n"
-       "Metric value\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ipv6_prefix_list_seq_le_ge_cmd_vtysh, 
-       "no ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) X:X::X:X/M le <0-128> ge <0-128>", 
-       "Negate a command or set its defaults\n"
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "sequence number of an entry\n"
-       "Sequence number\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
-       "Maximum prefix length to be matched\n"
-       "Maximum prefix length\n"
-       "Minimum prefix length to be matched\n"
-       "Minimum prefix length\n")
-
-DEFSH (VTYSH_RIPNGD, default_information_originate_cmd_vtysh, 
-       "default-information originate", 
-       "Default route information\n"
-       "Distribute default route\n")
-
-DEFSH (VTYSH_OSPFD, debug_ospf_lsa_sub_cmd_vtysh, 
-       "debug ospf lsa (generate|flooding|install|refresh)", 
-       "Debugging functions (see also 'undebug')\n"
-       "OSPF information\n"
-       "OSPF Link State Advertisement\n"
-       "LSA Generation\n"
-       "LSA Flooding\n"
-       "LSA Install/Delete\n"
-       "LSA Refresh\n")
-
-DEFSH (VTYSH_RIPD, send_lifetime_day_month_day_month_cmd_vtysh, 
-       "send-lifetime HH:MM:SS <1-31> MONTH <1993-2035> HH:MM:SS <1-31> MONTH <1993-2035>", 
-       "Set send lifetime of the key\n"
-       "Time to start\n"
-       "Day of th month to start\n"
-       "Month of the year to start\n"
-       "Year to start\n"
-       "Time to expire\n"
-       "Day of th month to expire\n"
-       "Month of the year to expire\n"
-       "Year to expire\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_bgp_metric_routemap_cmd_vtysh, 
-       "no redistribute bgp metric <0-16> route-map WORD", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Border Gateway Protocol (BGP)\n"
-       "Metric\n"
-       "Metric value\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_OSPFD, area_range_cost_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) range A.B.C.D/M cost <0-16777215>", 
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Summarize routes matching address/mask (border routers only)\n"
-       "Area range prefix\n"
-       "User specified metric for this range\n"
-       "Advertised metric for this range\n")
-
-DEFSH (VTYSH_BGPD, no_ipv6_aggregate_address_cmd_vtysh, 
-       "no aggregate-address X:X::X:X/M", 
-       "Negate a command or set its defaults\n"
-       "Configure BGP aggregate entries\n"
-       "Aggregate prefix\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ipv6_prefix_list_seq_ge_cmd_vtysh, 
-       "no ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) X:X::X:X/M ge <0-128>", 
-       "Negate a command or set its defaults\n"
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "sequence number of an entry\n"
-       "Sequence number\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
-       "Minimum prefix length to be matched\n"
-       "Minimum prefix length\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_all_route_cmd_vtysh, 
-       "show ip bgp vpnv4 all A.B.C.D", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display VPNv4 NLRI specific information\n"
-       "Display information about all VPNv4 NLRIs\n"
-       "Network in the BGP routing table to display\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_instance_all_soft_in_cmd_vtysh, 
-       "clear bgp view WORD * soft in", 
-       "Reset functions\n"
-       "BGP information\n"
-       "BGP view\n"
-       "view name\n"
-       "Clear all peers\n"
-       "Soft reconfig\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_external_ipv4_soft_in_cmd_vtysh, 
-       "clear ip bgp external ipv4 (unicast|multicast) soft in", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all external peers\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_BGPD, aggregate_address_mask_as_set_summary_cmd_vtysh, 
-       "aggregate-address A.B.C.D A.B.C.D as-set summary-only", 
-       "Configure BGP aggregate entries\n"
-       "Aggregate address\n"
-       "Aggregate mask\n"
-       "Generate AS set path information\n"
-       "Filter more specific routes from updates\n")
-
-DEFSH (VTYSH_OSPFD, ip_ospf_hello_interval_cmd_vtysh, 
-       "ip ospf hello-interval <1-65535>", 
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Time between HELLO packets\n"
-       "Seconds\n")
-
-DEFSH (VTYSH_RIPNGD, ripng_redistribute_kernel_metric_cmd_vtysh, 
-       "redistribute kernel metric <0-16>", 
-       "Redistribute information from another routing protocol\n"
-       "Kernel routes\n"
-       "Metric\n"
-       "Metric value\n")
-
-DEFSH (VTYSH_BGPD, no_set_local_pref_cmd_vtysh, 
-       "no set local-preference", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "BGP local preference path attribute\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_client_to_client_reflection_cmd_vtysh, 
-       "no bgp client-to-client reflection", 
-       "Negate a command or set its defaults\n"
-       "BGP specific commands\n"
-       "Configure client to client route reflection\n"
-       "reflection of routes allowed\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_community4_exact_cmd_vtysh, 
-       "show bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "Exact match of the communities")
-
-DEFSH (VTYSH_OSPF6D, no_interface_area_cmd_vtysh, 
-       "no interface IFNAME area A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "Disable routing on an IPv6 interface\n"
-       "Interface name(e.g. ep0)\n")
-
-DEFSH (VTYSH_BGPD, neighbor_remote_as_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "remote-as <1-65535>", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Specify a BGP neighbor\n"
-       "AS number\n")
-
-DEFSH (VTYSH_OSPFD, debug_ospf_ism_cmd_vtysh, 
-       "debug ospf ism", 
-       "Debugging functions (see also 'undebug')\n"
-       "OSPF information\n"
-       "OSPF Interface State Machine\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_out_cmd_vtysh, 
-       "clear ip bgp peer-group WORD out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all members of peer-group\n"
-       "BGP peer-group name\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_match_ip_address_cmd_vtysh, 
-       "no match ip address", 
-       "Negate a command or set its defaults\n"
-       "Match values from routing table\n"
-       "IP information\n"
-       "Match address of route\n")
-
-DEFSH (VTYSH_OSPFD, no_ip_ospf_dead_interval_cmd_vtysh, 
-       "no ip ospf dead-interval", 
-       "Negate a command or set its defaults\n"
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Interval after which a neighbor is declared dead\n")
-
-DEFSH (VTYSH_OSPFD, area_authentication_message_digest_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) authentication message-digest", 
-       "OSPF area parameters\n"
-       "Enable authentication\n"
-       "Use message-digest authentication\n")
-
-DEFSH (VTYSH_RIPD, no_rip_redistribute_type_metric_routemap_cmd_vtysh, 
-       "no redistribute (kernel|connected|static|ospf|bgp) metric <0-16> route-map WORD", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Kernel routes\n"
-       "Connected\n"
-       "Static routes\n"
-       "Open Shortest Path First (OSPF)\n"
-       "Border Gateway Protocol (BGP)\n"
-       "Metric\n"
-       "Metric value\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_OSPFD, show_ip_ospf_neighbor_all_cmd_vtysh, 
-       "show ip ospf neighbor all", 
-       "Show running system information\n"
-       "IP information\n"
-       "OSPF information\n"
-       "Neighbor list\n"
-       "include down status neighbor\n")
-
-DEFSH (VTYSH_OSPFD, neighbor_priority_poll_interval_cmd_vtysh, 
-       "neighbor A.B.C.D priority <0-255> poll-interval <1-65535>", 
-       "Specify neighbor router\n"
-       "Neighbor IP address\n"
-       "Neighbor Priority\n"
-       "Priority\n"
-       "Dead Neighbor Polling interval\n"
-       "Seconds\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ipv6_prefix_list_seq_le_cmd_vtysh, 
-       "no ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) X:X::X:X/M le <0-128>", 
-       "Negate a command or set its defaults\n"
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "sequence number of an entry\n"
-       "Sequence number\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
-       "Maximum prefix length to be matched\n"
-       "Maximum prefix length\n")
-
-DEFSH (VTYSH_BGPD, neighbor_filter_list_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "filter-list WORD (in|out)", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Establish BGP filters\n"
-       "AS path access-list name\n"
-       "Filter incoming routes\n"
-       "Filter outgoing routes\n")
-
-DEFSH (VTYSH_ZEBRA, no_ip_address_secondary_cmd_vtysh, 
-       "no ip address A.B.C.D/M secondary", 
-       "Negate a command or set its defaults\n"
-       "Interface Internet Protocol config commands\n"
-       "Set the IP address of an interface\n"
-       "IP address (e.g. 10.0.0.1/8)\n"
-       "Secondary IP address\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_attr_info_cmd_vtysh, 
-       "show ip bgp attribute-info", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "List all bgp attribute information\n")
-
-DEFSH (VTYSH_BGPD, neighbor_strict_capability_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X) " "strict-capability-match", 
-       "Specify neighbor router\n"
-       "Neighbor address\nIPv6 address\n"
-       "Strict capability negotiation match\n")
-
-DEFSH (VTYSH_OSPFD, ospf_default_information_originate_always_type_metric_routemap_cmd_vtysh, 
-       "default-information originate always metric-type (1|2) metric <0-16777214> route-map WORD", 
-       "Control distribution of default information\n"
-       "Distribute a default route\n"
-       "Always advertise default route\n"
-       "OSPF metric type for default routes\n"
-       "Set OSPF External Type 1 metrics\n"
-       "Set OSPF External Type 2 metrics\n"
-       "OSPF default metric\n"
-       "OSPF metric\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_OSPFD, area_range_advertise_cost_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) range A.B.C.D/M advertise cost <0-16777215>", 
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Summarize routes matching address/mask (border routers only)\n"
-       "Area range prefix\n"
-       "Advertise this range (default)\n"
-       "User specified metric for this range\n"
-       "Advertised metric for this range\n")
-
-DEFSH (VTYSH_OSPFD, no_ospf_distance_ospf_cmd_vtysh, 
-       "no distance ospf", 
-       "Negate a command or set its defaults\n"
-       "Define an administrative distance\n"
-       "OSPF Administrative distance\n"
-       "OSPF Distance\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_prefix_cmd_vtysh, 
-       "show ip bgp A.B.C.D/M", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n")
-
-DEFSH (VTYSH_RIPNGD, ripng_redistribute_static_metric_routemap_cmd_vtysh, 
-       "redistribute static metric <0-16> route-map WORD", 
-       "Redistribute information from another routing protocol\n"
-       "Static routes\n"
-       "Metric\n"
-       "Metric value\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_OSPFD, no_area_vlink_authtype_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
-       "(authentication|)", 
-       "Negate a command or set its defaults\n"
-       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
-       "Enable authentication on this virtual link\n" "dummy string \n")
-
-DEFSH (VTYSH_BGPD, show_bgp_ipv6_community2_exact_cmd_vtysh, 
-       "show bgp ipv6 community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "Exact match of the communities")
-
-DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_neighbor_routerid_cmd_vtysh, 
-       "show ipv6 ospf6 neighbor A.B.C.D", 
-       "Show running system information\n"
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Neighbor list\n"
-       "OSPF6 neighbor Router ID in IP address format\n"
-       )
-
-DEFSH (VTYSH_OSPFD, area_shortcut_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) shortcut (default|enable|disable)", 
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Configure the area's shortcutting mode\n"
-       "Set default shortcutting behavior\n"
-       "Enable shortcutting through the area\n"
-       "Disable shortcutting through the area\n")
-
-DEFSH (VTYSH_OSPFD, ospf_default_information_originate_always_type_routemap_cmd_vtysh, 
-       "default-information originate always metric-type (1|2) route-map WORD", 
-       "Control distribution of default information\n"
-       "Distribute a default route\n"
-       "Always advertise default route\n"
-       "OSPF metric type for default routes\n"
-       "Set OSPF External Type 1 metrics\n"
-       "Set OSPF External Type 2 metrics\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_dampening_prefix_cmd_vtysh, 
-       "clear ip bgp dampening A.B.C.D/M", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear route flap dampening information\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_cmd_vtysh, 
-       "show ip bgp ipv4 (unicast|multicast)", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ipv6_prefix_list_prefix_longer_cmd_vtysh, 
-       "show ipv6 prefix-list WORD X:X::X:X/M longer", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
-       "Lookup longer prefix\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_prefix_list_cmd_vtysh, 
-       "show ip bgp prefix-list WORD", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display routes conforming to the prefix-list\n"
-       "IP prefix-list name\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_maximum_prefix_val2_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "maximum-prefix <1-4294967295> warning-only", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Maximum number of prefix accept from this peer\n"
-       "maximum no. of prefix limit\n"
-       "Only give warning message when limit is exceeded\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_ospf6_metric_val_cmd_vtysh, 
-       "no redistribute ospf6 metric <0-16>", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "IPv6 Open Shortest Path First (OSPFv3)\n"
-       "Metric\n"
-       "Metric value\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_instance_summary_cmd_vtysh, 
-       "show bgp view WORD summary", 
-       "Show running system information\n"
-       "BGP information\n"
-       "BGP view\n"
-       "View name\n"
-       "Summary of BGP neighbor status\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ip_prefix_list_name_cmd_vtysh, 
-       "show ip prefix-list WORD", 
-       "Show running system information\n"
-       "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n")
-
-DEFSH (VTYSH_BGPD, debug_bgp_fsm_cmd_vtysh, 
-       "debug bgp fsm", 
-       "Debugging functions (see also 'undebug')\n"
-       "BGP information\n"
-       "BGP Finite State Machine\n")
-
-DEFSH (VTYSH_RIPD, send_lifetime_month_day_day_month_cmd_vtysh, 
-       "send-lifetime HH:MM:SS MONTH <1-31> <1993-2035> HH:MM:SS <1-31> MONTH <1993-2035>", 
-       "Set send lifetime of the key\n"
-       "Time to start\n"
-       "Month of the year to start\n"
-       "Day of th month to start\n"
-       "Year to start\n"
-       "Time to expire\n"
-       "Day of th month to expire\n"
-       "Month of the year to expire\n"
-       "Year to expire\n")
-
-DEFSH (VTYSH_BGPD, no_aggregate_address_mask_as_set_summary_cmd_vtysh, 
-       "no aggregate-address A.B.C.D A.B.C.D as-set summary-only", 
-       "Negate a command or set its defaults\n"
-       "Configure BGP aggregate entries\n"
-       "Aggregate address\n"
-       "Aggregate mask\n"
-       "Generate AS set path information\n"
-       "Filter more specific routes from updates\n")
-
-DEFSH (VTYSH_OSPFD, ospf_distance_ospf_external_intra_inter_cmd_vtysh, 
-       "distance ospf external <1-255> intra-area <1-255> inter-area <1-255>", 
-       "Define an administrative distance\n"
-       "OSPF Administrative distance\n"
-       "External routes\n"
-       "Distance for external routes\n"
-       "Intra-area routes\n"
-       "Distance for intra-area routes\n"
-       "Inter-area routes\n"
-       "Distance for inter-area routes\n")
-
-DEFSH (VTYSH_RIPD, accept_lifetime_day_month_month_day_cmd_vtysh, 
-       "accept-lifetime HH:MM:SS <1-31> MONTH <1993-2035> HH:MM:SS MONTH <1-31> <1993-2035>", 
-       "Set accept lifetime of the key\n"
-       "Time to start\n"
-       "Day of th month to start\n"
-       "Month of the year to start\n"
-       "Year to start\n"
-       "Time to expire\n"
-       "Month of the year to expire\n"
-       "Day of th month to expire\n"
-       "Year to expire\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_advertise_interval_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X) " "advertisement-interval", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nIPv6 address\n"
-       "Minimum interval between sending BGP routing updates\n")
-
-DEFSH (VTYSH_BGPD, neighbor_soft_reconfiguration_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "soft-reconfiguration inbound", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Per neighbor soft reconfiguration\n"
-       "Allow inbound soft reconfiguration for this neighbor\n")
-
-DEFSH (VTYSH_OSPFD, ospf_default_information_originate_always_cmd_vtysh, 
-       "default-information originate always", 
-       "Control distribution of default information\n"
-       "Distribute a default route\n"
-       "Always advertise default route\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_scan_time_cmd_vtysh, 
-       "no bgp scan-time", 
-       "Negate a command or set its defaults\n"
-       "BGP specific commands\n"
-       "Configure background scanner interval\n")
-
-DEFSH (VTYSH_BGPD, undebug_bgp_normal_cmd_vtysh, 
-       "undebug bgp", 
-       "Disable debugging functions (see also 'debug')\n"
-       "BGP information\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_description_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "description", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Neighbor specific description\n")
-
-DEFSH (VTYSH_BGPD, aggregate_address_mask_cmd_vtysh, 
-       "aggregate-address A.B.C.D A.B.C.D", 
-       "Configure BGP aggregate entries\n"
-       "Aggregate address\n"
-       "Aggregate mask\n")
-
-DEFSH (VTYSH_BGPD, ip_community_list_expanded_cmd_vtysh, 
-       "ip community-list <100-199> (deny|permit) .LINE", 
-       "IP information\n"
-       "Add a community list entry\n"
-       "Community list number (expanded)\n"
-       "Specify community to reject\n"
-       "Specify community to accept\n"
-       "An ordered list as a regular-expression\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_external_soft_out_cmd_vtysh, 
-       "clear bgp external soft out", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear all external peers\n"
-       "Soft reconfig\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_ZEBRA, config_table_cmd_vtysh, 
-       "table TABLENO", 
-       "Configure target kernel routing table\n"
-       "TABLE integer\n")
-
-DEFSH (VTYSH_RIPNGD, ripng_aggregate_address_cmd_vtysh, 
-       "aggregate-address X:X::X:X/M", 
-       "Set aggregate RIPng route announcement\n"
-       "Aggregate network\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_flap_route_map_cmd_vtysh, 
-       "show ip bgp flap-statistics route-map WORD", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display flap statistics of routes\n"
-       "Display routes matching the route-map\n"
-       "A route-map to match on\n")
-
-DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_route_cmd_vtysh, 
-       "show ipv6 ospf6 route", 
-       "Show running system information\n"
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Routing table\n"
-       )
-
-DEFSH (VTYSH_OSPF6D, redistribute_ospf6_cmd_vtysh, 
-       "redistribute ospf6", 
-       "Redistribute control\n"
-       "OSPF6 route\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, match_ip_next_hop_prefix_list_cmd_vtysh, 
-       "match ip next-hop prefix-list WORD", 
        "Match values from routing table\n"
        "IP information\n"
        "Match next-hop address of route\n"
        "Match entries of prefix-lists\n"
        "IP prefix-list name\n")
 
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ipv6_prefix_list_detail_name_cmd_vtysh, 
-       "show ipv6 prefix-list detail WORD", 
+DEFSH (VTYSH_BGPD, bgp_redistribute_ipv6_cmd_vtysh, 
+       "redistribute (connected|kernel|ospf6|ripng|static)", 
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Kernel routes\n"
+       "Open Shurtest Path First (OSPFv3)\n"
+       "Routing Information Protocol (RIPng)\n"
+       "Static routes\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_local_as_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "local-as", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Specify a local-as number\n")
+
+DEFSH (VTYSH_OSPFD, ospf_network_cmd_vtysh, 
+       "ospf network (broadcast|non-broadcast|point-to-multipoint|point-to-point)", 
+       "OSPF interface commands\n"
+       "Network type\n"
+       "Specify OSPF broadcast multi-access network\n"
+       "Specify OSPF NBMA network\n"
+       "Specify OSPF point-to-multipoint network\n"
+       "Specify OSPF point-to-point network\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_set_metric_cmd_vtysh, 
+       "no set metric", 
+       "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "Metric value for destination routing protocol\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_filter_list_cmd_vtysh, 
+       "show ip bgp filter-list WORD", 
        "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display routes conforming to the filter-list\n"
+       "Regular expression access list name\n")
+
+DEFSH (VTYSH_OSPFD, no_area_range_advertise_cmd_vtysh, 
+       "no area (A.B.C.D|<0-4294967295>) range A.B.C.D/M (advertise|not-advertise)", 
+       "Negate a command or set its defaults\n"
+       "OSPF area parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "Summarize routes matching address/mask (border routers only)\n"
+       "Area range prefix\n"
+       "Advertise this range (default)\n"
+       "DoNotAdvertise this range\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, ipv6_prefix_list_seq_ge_cmd_vtysh, 
+       "ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) X:X::X:X/M ge <0-128>", 
        "IPv6 information\n"
        "Build a prefix list\n"
-       "Detail of prefix lists\n"
-       "Name of a prefix list\n")
+       "Name of a prefix list\n"
+       "sequence number of an entry\n"
+       "Sequence number\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
+       "Minimum prefix length to be matched\n"
+       "Minimum prefix length\n")
 
-DEFSH (VTYSH_BGPD, clear_bgp_peer_in_cmd_vtysh, 
-       "clear bgp (A.B.C.D|X:X::X:X) in", 
-       "Reset functions\n"
+DEFSH (VTYSH_BGPD, no_bgp_timers_cmd_vtysh, 
+       "no timers bgp", 
+       "Negate a command or set its defaults\n"
+       "Adjust routing timers\n"
+       "BGP timers\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_enforce_first_as_cmd_vtysh, 
+       "no bgp enforce-first-as", 
+       "Negate a command or set its defaults\n"
        "BGP information\n"
-       "BGP neighbor address to clear\n"
-       "BGP IPv6 neighbor to clear\n"
-       "Soft reconfig inbound update\n")
+       "Enforce the first AS for EBGP routes\n")
 
-DEFSH (VTYSH_BGPD, neighbor_attr_unchanged4_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged med (as-path|next-hop)", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "BGP attribute is propagated unchanged to this neighbor\n"
-       "Med attribute\n"
-       "As-path attribute\n"
-       "Nexthop attribute\n")
+DEFSH (VTYSH_RIPD, no_ip_rip_authentication_mode_cmd_vtysh, 
+       "no ip rip authentication mode", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Routing Information Protocol\n"
+       "Authentication control\n"
+       "Authentication mode\n")
 
-DEFSH (VTYSH_BGPD, neighbor_default_originate_rmap_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "default-originate route-map WORD", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Originate default route to this neighbor\n"
-       "Route-map to specify criteria to originate default\n"
-       "route-map name\n")
+DEFSH (VTYSH_OSPFD, ospf_distance_ospf_intra_cmd_vtysh, 
+       "distance ospf intra-area <1-255>", 
+       "Define an administrative distance\n"
+       "OSPF Administrative distance\n"
+       "Intra-area routes\n"
+       "Distance for intra-area routes\n")
 
-DEFSH (VTYSH_BGPD, clear_ip_bgp_all_in_cmd_vtysh, 
-       "clear ip bgp * in", 
+DEFSH (VTYSH_BGPD, match_ipv6_address_cmd_vtysh, 
+       "match ipv6 address WORD", 
+       "Match values from routing table\n"
+       "IPv6 information\n"
+       "Match IPv6 address of route\n"
+       "IPv6 access-list name\n")
+
+DEFSH (VTYSH_RIPNGD, ripng_redistribute_static_cmd_vtysh, 
+       "redistribute static", 
+       "Redistribute information from another routing protocol\n"
+       "Static routes\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_all_soft_in_cmd_vtysh, 
+       "clear ip bgp * soft in", 
        "Reset functions\n"
        "IP information\n"
        "BGP information\n"
        "Clear all peers\n"
+       "Soft reconfig\n"
        "Soft reconfig inbound update\n")
 
-DEFSH (VTYSH_OSPF6D, interface_area_plist_passive_cmd_vtysh, 
-       "interface IFNAME area A.B.C.D prefix-list WORD passive", 
-       "Enable routing on an IPv6 interface\n"
-       "Interface name(e.g. ep0)\n"
-       "Set the OSPF6 area ID\n"
-       "OSPF6 area ID in IPv4 address notation\n"
-       "Advertise I/F Address only match entries of prefix-list\n"
-       "IPv6 prefix-list name\n"
-       "IPv6 prefix-list name\n"
-       "Suppress routing updates on an interface\n"
-      )
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, match_ip_address_prefix_list_cmd_vtysh, 
-       "match ip address prefix-list WORD", 
-       "Match values from routing table\n"
+DEFSH (VTYSH_ZEBRA, ip_route_mask_distance_cmd_vtysh, 
+       "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) <1-255>", 
        "IP information\n"
-       "Match address of route\n"
-       "Match entries of prefix-lists\n"
-       "IP prefix-list name\n")
+       "Establish static routes\n"
+       "IP destination prefix\n"
+       "IP destination prefix mask\n"
+       "IP gateway address\n"
+       "IP gateway interface name\n"
+       "Null interface\n"
+       "Distance value for this route\n")
 
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ip_prefix_list_summary_cmd_vtysh, 
-       "show ip prefix-list summary", 
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_ospf6_metric_routemap_cmd_vtysh, 
+       "no redistribute ospf6 metric <0-16> route-map WORD", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "IPv6 Open Shortest Path First (OSPFv3)\n"
+       "Metric\n"
+       "Metric value\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_RIPD, no_router_rip_cmd_vtysh, 
+       "no router rip", 
+       "Negate a command or set its defaults\n"
+       "Enable a routing process\n"
+       "Routing Information Protocol (RIP)\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ip_prefix_list_summary_name_cmd_vtysh, 
+       "show ip prefix-list summary WORD", 
        "Show running system information\n"
        "IP information\n"
        "Build a prefix list\n"
-       "Summary of prefix lists\n")
+       "Summary of prefix lists\n"
+       "Name of a prefix list\n")
 
-DEFSH (VTYSH_BGPD, show_ip_bgp_prefix_longer_cmd_vtysh, 
-       "show ip bgp A.B.C.D/M longer-prefixes", 
-       "Show running system information\n"
-       "IP information\n"
+DEFSH (VTYSH_BGPD, clear_bgp_all_cmd_vtysh, 
+       "clear bgp *", 
+       "Reset functions\n"
        "BGP information\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Display route and more specific routes\n")
+       "Clear all peers\n")
 
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, show_ip_access_list_cmd_vtysh, 
-       "show ip access-list", 
-       "Show running system information\n"
-       "IP information\n"
-       "List IP access lists\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_match_metric_cmd_vtysh, 
-       "no match metric", 
-       "Negate a command or set its defaults\n"
-       "Match values from routing table\n"
-       "Match metric of route\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_attr_unchanged2_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged as-path (next-hop|med)", 
+DEFSH (VTYSH_BGPD, no_neighbor_strict_capability_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X) " "strict-capability-match", 
        "Negate a command or set its defaults\n"
        "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "BGP attribute is propagated unchanged to this neighbor\n"
-       "As-path attribute\n"
-       "Nexthop attribute\n"
-       "Med attribute\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, set_ip_nexthop_cmd_vtysh, 
-       "set ip next-hop A.B.C.D", 
-       "Set values in destination routing protocol\n"
-       "IP information\n"
-       "Next hop address\n"
-       "IP address of next hop\n")
-
-DEFSH (VTYSH_BGPD, bgp_bestpath_med3_cmd_vtysh, 
-       "bgp bestpath med missing-as-worst confed", 
-       "BGP specific commands\n"
-       "Change the default bestpath selection\n"
-       "MED attribute\n"
-       "Treat missing MED as the least preferred one\n"
-       "Compare MED among confederation paths\n")
-
-DEFSH (VTYSH_BGPD, dump_bgp_updates_interval_cmd_vtysh, 
-       "dump bgp updates PATH INTERVAL", 
-       "Dump packet\n"
-       "BGP packet dump\n"
-       "Dump BGP updates only\n"
-       "Output filename\n"
-       "Interval of output\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_dampening_address_mask_cmd_vtysh, 
-       "clear ip bgp dampening A.B.C.D A.B.C.D", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear route flap dampening information\n"
-       "Network to clear damping information\n"
-       "Network mask\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_redistribute_ipv4_rmap_metric_cmd_vtysh, 
-       "no redistribute (connected|kernel|ospf|rip|static) route-map WORD metric <0-4294967295>", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Connected\n"
-       "Kernel routes\n"
-       "Open Shurtest Path First (OSPF)\n"
-       "Routing Information Protocol (RIP)\n"
-       "Static routes\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n"
-       "Metric for redistributed routes\n"
-       "Default metric\n")
-
-DEFSH (VTYSH_ZEBRA, linkdetect_cmd_vtysh, 
-       "link-detect", 
-       "Enable link detection on interface\n")
+       "Neighbor address\nIPv6 address\n"
+       "Strict capability negotiation match\n")
 
 DEFSH (VTYSH_BGPD, show_bgp_ipv6_community2_cmd_vtysh, 
        "show bgp ipv6 community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
@@ -2295,140 +460,238 @@
        "Do not advertise to any peer (well-known community)\n"
        "Do not export to next AS (well-known community)\n")
 
-DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_all_neighbor_advertised_routes_cmd_vtysh, 
-       "show ip bgp vpnv4 all neighbors A.B.C.D advertised-routes", 
+DEFSH (VTYSH_RIPD|VTYSH_RIPNGD|VTYSH_OSPFD|VTYSH_OSPF6D|VTYSH_BGPD, no_set_metric_val_cmd_vtysh, 
+       "no set metric <0-4294967295>", 
+       "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "Metric value for destination routing protocol\n"
+       "Metric value\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_all_in_cmd_vtysh, 
+       "clear ip bgp * in", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all peers\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_out_cmd_vtysh, 
+       "clear ip bgp peer-group WORD out", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all members of peer-group\n"
+       "BGP peer-group name\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_OSPFD, no_network_area_cmd_vtysh, 
+       "no network A.B.C.D/M area (A.B.C.D|<0-4294967295>)", 
+       "Negate a command or set its defaults\n"
+       "Enable routing on an IP network\n"
+       "OSPF network prefix\n"
+       "Set the OSPF area ID\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n")
+
+DEFSH (VTYSH_BGPD, neighbor_activate_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "activate", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Enable the Address Family for this Neighbor\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_flap_route_map_cmd_vtysh, 
+       "show ip bgp flap-statistics route-map WORD", 
        "Show running system information\n"
        "IP information\n"
        "BGP information\n"
-       "Display VPNv4 NLRI specific information\n"
-       "Display information about all VPNv4 NLRIs\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Display the routes advertised to a BGP neighbor\n")
+       "Display flap statistics of routes\n"
+       "Display routes matching the route-map\n"
+       "A route-map to match on\n")
 
-DEFSH (VTYSH_RIPD, no_match_ip_next_hop_val_cmd_vtysh, 
-       "no match ip next-hop WORD", 
+DEFSH (VTYSH_OSPF6D|VTYSH_BGPD, no_match_ipv6_address_prefix_list_cmd_vtysh, 
+       "no match ipv6 address prefix-list WORD", 
        "Negate a command or set its defaults\n"
        "Match values from routing table\n"
-       "IP information\n"
-       "Match next-hop address of route\n"
-       "IP access-list name\n")
+       "IPv6 information\n"
+       "Match address of route\n"
+       "Match entries of prefix-lists\n"
+       "IP prefix-list name\n")
 
-DEFSH (VTYSH_BGPD, no_bgp_default_local_preference_cmd_vtysh, 
-       "no bgp default local-preference", 
-       "Negate a command or set its defaults\n"
-       "BGP specific commands\n"
-       "Configure BGP defaults\n"
-       "local preference (higher=more preferred)\n")
-
-DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_database_type_id_cmd_vtysh, 
-       "show ipv6 ospf6 database (router|network|as-external|intra-prefix|inter-prefix|inter-router|link|*|HEX) (A.B.C.D|*|dump|detail)", 
-       "Show running system information\n"
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "LSA Database\n"
-       "Router-LSA\n"
-       "Network-LSA\n"
-       "AS-External-LSA\n"
-       "Intra-Area-Prefix-LSA\n"
-       "Inter-Area-Router-LSA\n"
-       "Inter-Area-Prefix-LSA\n"
-       "Link-LSA\n"
-       "All LS Type\n"
-       "Specify LS Type by Hex\n"
-       "Link State ID\n"
-       "All Link State ID\n"
-       "Dump raw LSA data in Hex\n"
-       "show detail of LSAs\n"
-       )
-
-DEFSH (VTYSH_OSPFD, debug_ospf_zebra_sub_cmd_vtysh, 
-       "debug ospf zebra (interface|redistribute)", 
-       "Debugging functions (see also 'undebug')\n"
-       "OSPF information\n"
-       "OSPF Zebra information\n"
-       "Zebra interface\n"
-       "Zebra redistribute\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ipv6_prefix_list_cmd_vtysh, 
-       "no ipv6 prefix-list WORD", 
+DEFSH (VTYSH_RIPNGD|VTYSH_OSPF6D|VTYSH_BGPD, no_ipv6_access_list_any_cmd_vtysh, 
+       "no ipv6 access-list WORD (deny|permit) any", 
        "Negate a command or set its defaults\n"
        "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n")
+       "Add an access list entry\n"
+       "IPv6 zebra access-list\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Any prefixi to match\n")
 
-DEFSH (VTYSH_BGPD, bgp_redistribute_ipv6_metric_rmap_cmd_vtysh, 
-       "redistribute (connected|kernel|ospf6|ripng|static) metric <0-4294967295> route-map WORD", 
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, ipv6_prefix_list_ge_le_cmd_vtysh, 
+       "ipv6 prefix-list WORD (deny|permit) X:X::X:X/M ge <0-128> le <0-128>", 
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
+       "Minimum prefix length to be matched\n"
+       "Minimum prefix length\n"
+       "Maximum prefix length to be matched\n"
+       "Maximum prefix length\n")
+
+DEFSH (VTYSH_BGPD, aggregate_address_mask_cmd_vtysh, 
+       "aggregate-address A.B.C.D A.B.C.D", 
+       "Configure BGP aggregate entries\n"
+       "Aggregate address\n"
+       "Aggregate mask\n")
+
+DEFSH (VTYSH_RIPNGD, ripng_redistribute_static_metric_cmd_vtysh, 
+       "redistribute static metric <0-16>", 
        "Redistribute information from another routing protocol\n"
-       "Connected\n"
-       "Kernel routes\n"
-       "Open Shurtest Path First (OSPFv3)\n"
-       "Routing Information Protocol (RIPng)\n"
        "Static routes\n"
-       "Metric for redistributed routes\n"
-       "Default metric\n"
+       "Metric\n"
+       "Metric value\n")
+
+DEFSH (VTYSH_OSPFD, area_vlink_authtype_authkey_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
+       "(authentication|) "
+       "(authentication-key|) AUTH_KEY", 
+       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
+       "Enable authentication on this virtual link\n" "dummy string \n"
+       "Authentication password (key)\n" "The OSPF password (key)")
+
+DEFSH (VTYSH_OSPFD, no_ospf_compatible_rfc1583_cmd_vtysh, 
+       "no compatible rfc1583", 
+       "Negate a command or set its defaults\n"
+       "OSPF compatibility list\n"
+       "compatible with RFC 1583\n")
+
+DEFSH (VTYSH_OSPFD, debug_ospf_ism_cmd_vtysh, 
+       "debug ospf ism", 
+       "Debugging functions (see also 'undebug')\n"
+       "OSPF information\n"
+       "OSPF Interface State Machine\n")
+
+DEFSH (VTYSH_RIPD, rip_split_horizon_cmd_vtysh, 
+       "ip split-horizon", 
+       "IP information\n"
+       "Perform split horizon\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_mbgp_community_list_exact_cmd_vtysh, 
+       "show ipv6 mbgp community-list WORD exact-match", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "MBGP information\n"
+       "Display routes matching the community-list\n"
+       "community-list name\n"
+       "Exact match of the communities\n")
+
+DEFSH (VTYSH_OSPFD, ospf_default_information_originate_always_routemap_cmd_vtysh, 
+       "default-information originate always route-map WORD", 
+       "Control distribution of default information\n"
+       "Distribute a default route\n"
+       "Always advertise default route\n"
        "Route map reference\n"
        "Pointer to route-map entries\n")
 
-DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_rd_tags_cmd_vtysh, 
-       "show ip bgp vpnv4 rd ASN:nn_or_IP-address:nn tags", 
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_external_soft_cmd_vtysh, 
+       "clear bgp ipv6 external soft", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear all external peers\n"
+       "Soft reconfig\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, ip_prefix_list_sequence_number_cmd_vtysh, 
+       "ip prefix-list sequence-number", 
+       "IP information\n"
+       "Build a prefix list\n"
+       "Include/exclude sequence numbers in NVGEN\n")
+
+DEFSH (VTYSH_OSPFD, no_ip_ospf_hello_interval_cmd_vtysh, 
+       "no ip ospf hello-interval", 
+       "Negate a command or set its defaults\n"
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Time between HELLO packets\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_neighbor_received_routes_cmd_vtysh, 
+       "show bgp neighbors (A.B.C.D|X:X::X:X) received-routes", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n"
+       "Display the received routes from neighbor\n")
+
+DEFSH (VTYSH_OSPFD, no_ip_ospf_cost_cmd_vtysh, 
+       "no ip ospf cost", 
+       "Negate a command or set its defaults\n"
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Interface cost\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_community4_cmd_vtysh, 
+       "show ip bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
        "Show running system information\n"
        "IP information\n"
        "BGP information\n"
-       "Display VPNv4 NLRI specific information\n"
-       "Display information for a route distinguisher\n"
-       "VPN Route Distinguisher\n"
-       "Display BGP tags for prefixes\n")
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n")
 
-DEFSH (VTYSH_RIPD, send_lifetime_month_day_month_day_cmd_vtysh, 
-       "send-lifetime HH:MM:SS MONTH <1-31> <1993-2035> HH:MM:SS MONTH <1-31> <1993-2035>", 
-       "Set send lifetime of the key\n"
-       "Time to start\n"
-       "Month of the year to start\n"
-       "Day of th month to start\n"
-       "Year to start\n"
-       "Time to expire\n"
-       "Month of the year to expire\n"
-       "Day of th month to expire\n"
-       "Year to expire\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_neighbors_cmd_vtysh, 
-       "show bgp neighbors", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Detailed information on TCP and BGP neighbor connections\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_network_mask_natural_backdoor_cmd_vtysh, 
-       "no network A.B.C.D backdoor", 
+DEFSH (VTYSH_BGPD, no_match_ecommunity_cmd_vtysh, 
+       "no match extcommunity", 
        "Negate a command or set its defaults\n"
-       "Specify a network to announce via BGP\n"
-       "Network number\n"
-       "Specify a BGP backdoor route\n")
+       "Match values from routing table\n"
+       "Match BGP/VPN extended community list\n")
 
-DEFSH (VTYSH_OSPF6D, ospf6_routemap_set_forwarding_cmd_vtysh, 
-       "set forwarding-address X:X::X:X", 
-       "Set value\n"
-       "Forwarding Address\n"
-       "IPv6 Address\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_bgp_community_list_cmd_vtysh, 
-       "show ipv6 bgp community-list WORD", 
-       "Show running system information\n"
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, no_ipv6_prefix_list_seq_ge_le_cmd_vtysh, 
+       "no ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) X:X::X:X/M ge <0-128> le <0-128>", 
+       "Negate a command or set its defaults\n"
        "IPv6 information\n"
-       "BGP information\n"
-       "Display routes matching the community-list\n"
-       "community-list name\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_extended_any_any_cmd_vtysh, 
-       "access-list (<100-199>|<2000-2699>) (deny|permit) ip any any", 
-       "Add an access list entry\n"
-       "IP extended access list\n"
-       "IP extended access list (expanded range)\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "sequence number of an entry\n"
+       "Sequence number\n"
        "Specify packets to reject\n"
        "Specify packets to forward\n"
-       "Any Internet Protocol\n"
-       "Any source host\n"
-       "Any destination host\n")
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
+       "Minimum prefix length to be matched\n"
+       "Minimum prefix length\n"
+       "Maximum prefix length to be matched\n"
+       "Maximum prefix length\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_peer_group_soft_in_cmd_vtysh, 
+       "clear bgp peer-group WORD soft in", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear all members of peer-group\n"
+       "BGP peer-group name\n"
+       "Soft reconfig\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_BGPD, no_aggregate_address_as_set_cmd_vtysh, 
+       "no aggregate-address A.B.C.D/M as-set", 
+       "Negate a command or set its defaults\n"
+       "Configure BGP aggregate entries\n"
+       "Aggregate prefix\n"
+       "Generate AS set path information\n")
 
 DEFSH (VTYSH_BGPD, clear_ip_bgp_as_ipv4_soft_out_cmd_vtysh, 
        "clear ip bgp <1-65535> ipv4 (unicast|multicast) soft out", 
@@ -2442,525 +705,52 @@
        "Soft reconfig\n"
        "Soft reconfig outbound update\n")
 
-DEFSH (VTYSH_OSPFD, no_area_authentication_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) authentication", 
+DEFSH (VTYSH_BGPD, no_set_local_pref_cmd_vtysh, 
+       "no set local-preference", 
        "Negate a command or set its defaults\n"
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Enable authentication\n")
+       "Set values in destination routing protocol\n"
+       "BGP local preference path attribute\n")
 
-DEFSH (VTYSH_BGPD, no_neighbor_maximum_prefix_val_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "maximum-prefix <1-4294967295>", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Maximum number of prefix accept from this peer\n"
-       "maximum no. of prefix limit\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_group_in_prefix_filter_cmd_vtysh, 
-       "clear bgp ipv6 peer-group WORD in prefix-filter", 
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_ipv4_in_prefix_filter_cmd_vtysh, 
+       "clear ip bgp A.B.C.D ipv4 (unicast|multicast) in prefix-filter", 
        "Reset functions\n"
+       "IP information\n"
        "BGP information\n"
+       "BGP neighbor address to clear\n"
        "Address family\n"
-       "Clear all members of peer-group\n"
-       "BGP peer-group name\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
        "Soft reconfig inbound update\n"
-       "Push out prefix-list ORF and do inbound soft reconfig\n")
+       "Push out the existing ORF prefix-list\n")
 
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ipv6_prefix_list_description_arg_cmd_vtysh, 
-       "no ipv6 prefix-list WORD description .LINE", 
+DEFSH (VTYSH_BGPD, old_no_ipv6_bgp_network_cmd_vtysh, 
+       "no ipv6 bgp network X:X::X:X/M", 
        "Negate a command or set its defaults\n"
        "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "Prefix-list specific description\n"
-       "Up to 80 characters describing this prefix-list\n")
-
-DEFSH (VTYSH_OSPFD, neighbor_poll_interval_priority_cmd_vtysh, 
-       "neighbor A.B.C.D poll-interval <1-65535> priority <0-255>", 
-       "Specify neighbor router\n"
-       "Neighbor address\n"
-       "OSPF dead-router polling interval\n"
-       "Seconds\n"
-       "OSPF priority of non-broadcast neighbor\n"
-       "Priority\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_network_mask_backdoor_cmd_vtysh, 
-       "no network A.B.C.D mask A.B.C.D backdoor", 
-       "Negate a command or set its defaults\n"
-       "Specify a network to announce via BGP\n"
-       "Network number\n"
-       "Network mask\n"
-       "Network mask\n"
-       "Specify a BGP backdoor route\n")
-
-DEFSH (VTYSH_RIPNGD, no_default_information_originate_cmd_vtysh, 
-       "no default-information originate", 
-       "Negate a command or set its defaults\n"
-       "Default route information\n"
-       "Distribute default route\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_send_community_type_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "send-community (both|extended|standard)", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Send Community attribute to this neighbor\n"
-       "Send Standard and Extended Community attributes\n"
-       "Send Extended Community attributes\n"
-       "Send Standard Community attributes\n")
-
-DEFSH (VTYSH_BGPD, no_ip_extcommunity_list_name_expanded_cmd_vtysh, 
-       "no ip extcommunity-list expanded WORD (deny|permit) .LINE", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Add a extended community list entry\n"
-       "Specify expanded extcommunity-list\n"
-       "Community list name\n"
-       "Specify community to reject\n"
-       "Specify community to accept\n"
-       "An ordered list as a regular-expression\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_bestpath_aspath_ignore_cmd_vtysh, 
-       "no bgp bestpath as-path ignore", 
-       "Negate a command or set its defaults\n"
-       "BGP specific commands\n"
-       "Change the default bestpath selection\n"
-       "AS-path attribute\n"
-       "Ignore as-path length in selecting a route\n")
-
-DEFSH (VTYSH_ZEBRA, show_ip_route_prefix_cmd_vtysh, 
-       "show ip route A.B.C.D/M", 
-       "Show running system information\n"
-       "IP information\n"
-       "IP routing table\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n")
-
-DEFSH (VTYSH_OSPFD, mpls_te_on_cmd_vtysh, 
-       "mpls-te on", 
-       "Configure MPLS-TE parameters\n"
-       "Enable the MPLS-TE functionality\n")
-
-DEFSH (VTYSH_BGPD, undebug_bgp_update_cmd_vtysh, 
-       "undebug bgp updates", 
-       "Disable debugging functions (see also 'debug')\n"
        "BGP information\n"
-       "BGP updates\n")
+       "Specify a network to announce via BGP\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n")
 
-DEFSH (VTYSH_BGPD, no_set_vpnv4_nexthop_val_cmd_vtysh, 
-       "no set vpnv4 next-hop A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "VPNv4 information\n"
-       "VPNv4 next-hop address\n"
-       "IP address of next hop\n")
+DEFSH (VTYSH_BGPD, debug_bgp_normal_cmd_vtysh, 
+       "debug bgp", 
+       "Debugging functions (see also 'undebug')\n"
+       "BGP information\n")
 
-DEFSH (VTYSH_OSPFD, no_ospf_rfc1583_flag_cmd_vtysh, 
-       "no ospf rfc1583compatibility", 
-       "Negate a command or set its defaults\n"
-       "OSPF specific commands\n"
-       "Disable the RFC1583Compatibility flag\n")
-
-DEFSH (VTYSH_BGPD, show_ip_community_list_cmd_vtysh, 
-       "show ip community-list", 
-       "Show running system information\n"
-       "IP information\n"
-       "List community-list\n")
-
-DEFSH (VTYSH_BGPD, set_weight_cmd_vtysh, 
-       "set weight <0-4294967295>", 
-       "Set values in destination routing protocol\n"
-       "BGP weight for routing table\n"
-       "Weight value\n")
-
-DEFSH (VTYSH_OSPFD, ip_ospf_transmit_delay_addr_cmd_vtysh, 
-       "ip ospf transmit-delay <1-65535> A.B.C.D", 
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Link state transmit delay\n"
-       "Seconds\n"
-       "Address of interface")
-
-DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_neighborlist_cmd_vtysh, 
-       "show ipv6 ospf6 (summary-list|request-list|retrans-list|dbdesc-list)", 
-       "Show running system information\n"
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Link State summary list\n"
-       "Link State request list\n"
-       "Link State retransmission list\n"
-       "Link State Description list (Used to retrans DbDesc)\n"
-       )
-
-DEFSH (VTYSH_BGPD, no_bgp_redistribute_ipv4_rmap_cmd_vtysh, 
-       "no redistribute (connected|kernel|ospf|rip|static) route-map WORD", 
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_static_metric_routemap_cmd_vtysh, 
+       "no redistribute static metric <0-16> route-map WORD", 
        "Negate a command or set its defaults\n"
        "Redistribute information from another routing protocol\n"
-       "Connected\n"
-       "Kernel routes\n"
-       "Open Shurtest Path First (OSPF)\n"
-       "Routing Information Protocol (RIP)\n"
        "Static routes\n"
+       "Metric\n"
+       "Metric value\n"
        "Route map reference\n"
        "Pointer to route-map entries\n")
 
-DEFSH (VTYSH_OSPFD, no_area_vlink_md5_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
-       "(message-digest-key|) <1-255>", 
+DEFSH (VTYSH_ZEBRA, no_bandwidth_if_val_cmd_vtysh, 
+       "no bandwidth <1-10000000>", 
        "Negate a command or set its defaults\n"
-       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
-       "Message digest authentication password (key)\n" "dummy string \n" "Key ID\n" "Use MD5 algorithm\n" "The OSPF password (key)")
-
-DEFSH (VTYSH_BGPD, neighbor_version_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X) " "version (4|4-)", 
-       "Specify neighbor router\n"
-       "Neighbor address\nIPv6 address\n"
-       "Neighbor's BGP version\n"
-       "Border Gateway Protocol 4\n"
-       "Multiprotocol Extensions for BGP-4(Old Draft)\n")
-
-DEFSH (VTYSH_OSPFD, ospf_default_information_originate_always_type_cmd_vtysh, 
-       "default-information originate always metric-type (1|2)", 
-       "Control distribution of default information\n"
-       "Distribute a default route\n"
-       "Always advertise default route\n"
-       "OSPF metric type for default routes\n"
-       "Set OSPF External Type 1 metrics\n"
-       "Set OSPF External Type 2 metrics\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_external_in_prefix_filter_cmd_vtysh, 
-       "clear bgp ipv6 external in prefix-filter", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "Clear all external peers\n"
-       "Soft reconfig inbound update\n"
-       "Push out prefix-list ORF and do inbound soft reconfig\n")
-
-DEFSH (VTYSH_BGPD, neighbor_transparent_nexthop_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X) " "transparent-nexthop", 
-       "Specify neighbor router\n"
-       "Neighbor address\nIPv6 address\n"
-       "Do not change nexthop even peer is EBGP peer\n")
-
-DEFSH (VTYSH_OSPFD, no_debug_ospf_packet_send_recv_cmd_vtysh, 
-       "no debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv|detail)", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions\n"
-       "OSPF information\n"
-       "OSPF packets\n"
-       "OSPF Hello\n"
-       "OSPF Database Description\n"
-       "OSPF Link State Request\n"
-       "OSPF Link State Update\n"
-       "OSPF Link State Acknowledgment\n"
-       "OSPF all packets\n"
-       "Packet sent\n"
-       "Packet received\n"
-       "Detail Information\n")
-
-DEFSH (VTYSH_BGPD, undebug_bgp_filter_cmd_vtysh, 
-       "undebug bgp filters", 
-       "Disable debugging functions (see also 'debug')\n"
-       "BGP information\n"
-       "BGP filters\n")
-
-DEFSH (VTYSH_RIPD, accept_lifetime_duration_month_day_cmd_vtysh, 
-       "accept-lifetime HH:MM:SS MONTH <1-31> <1993-2035> duration <1-2147483646>", 
-       "Set accept lifetime of the key\n"
-       "Time to start\n"
-       "Month of the year to start\n"
-       "Day of th month to start\n"
-       "Year to start\n"
-       "Duration of the key\n"
-       "Duration seconds\n")
-
-DEFSH (VTYSH_OSPFD, no_ospf_router_id_cmd_vtysh, 
-       "no ospf router-id", 
-       "Negate a command or set its defaults\n"
-       "OSPF specific commands\n"
-       "router-id for the OSPF process\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_exact_cmd_vtysh, 
-       "no access-list WORD (deny|permit) A.B.C.D/M exact-match", 
-       "Negate a command or set its defaults\n"
-       "Add an access list entry\n"
-       "IP zebra access-list name\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Prefix to match. e.g. 10.0.0.0/8\n"
-       "Exact match of the prefixes\n")
-
-DEFSH (VTYSH_ZEBRA, debug_zebra_kernel_cmd_vtysh, 
-       "debug zebra kernel", 
-       "Debugging functions (see also 'undebug')\n"
-       "Zebra configuration\n"
-       "Debug option set for zebra between kernel interface\n")
-
-DEFSH (VTYSH_OSPFD, show_ip_ospf_cmd_vtysh, 
-       "show ip ospf", 
-       "Show running system information\n"
-       "IP information\n"
-       "OSPF information\n")
-
-DEFSH (VTYSH_BGPD, neighbor_unsuppress_map_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "unsuppress-map WORD", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Route-map to selectively unsuppress suppressed routes\n"
-       "Name of route map\n")
-
-DEFSH (VTYSH_OSPFD, ospf_retransmit_interval_cmd_vtysh, 
-       "ospf retransmit-interval <3-65535>", 
-       "OSPF interface commands\n"
-       "Time between retransmitting lost link state advertisements\n"
-       "Seconds\n")
-
-DEFSH (VTYSH_RIPD, no_rip_default_information_originate_cmd_vtysh, 
-       "no default-information originate", 
-       "Negate a command or set its defaults\n"
-       "Control distribution of default route\n"
-       "Distribute a default route\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_static_cmd_vtysh, 
-       "no redistribute static", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Static routes\n")
-
-DEFSH (VTYSH_BGPD, no_dump_bgp_all_cmd_vtysh, 
-       "no dump bgp all [PATH] [INTERVAL]", 
-       "Negate a command or set its defaults\n"
-       "Dump packet\n"
-       "BGP packet dump\n"
-       "Dump all BGP packets\n")
-
-DEFSH (VTYSH_BGPD, neighbor_advertise_interval_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X) " "advertisement-interval <0-600>", 
-       "Specify neighbor router\n"
-       "Neighbor address\nIPv6 address\n"
-       "Minimum interval between sending BGP routing updates\n"
-       "time in seconds\n")
-
-DEFSH (VTYSH_OSPFD, show_ip_ospf_interface_cmd_vtysh, 
-       "show ip ospf interface [INTERFACE]", 
-       "Show running system information\n"
-       "IP information\n"
-       "OSPF information\n"
-       "Interface information\n"
-       "Interface name\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_cmd_vtysh, 
-       "access-list WORD (deny|permit) A.B.C.D/M", 
-       "Add an access list entry\n"
-       "IP zebra access-list name\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Prefix to match. e.g. 10.0.0.0/8\n")
-
-DEFSH (VTYSH_RIPD, rip_distance_cmd_vtysh, 
-       "distance <1-255>", 
-       "Administrative distance\n"
-       "Distance value\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_all_in_prefix_filter_cmd_vtysh, 
-       "clear ip bgp * in prefix-filter", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all peers\n"
-       "Soft reconfig inbound update\n"
-       "Push out prefix-list ORF and do inbound soft reconfig\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ipv6_prefix_list_detail_cmd_vtysh, 
-       "show ipv6 prefix-list detail", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Detail of prefix lists\n")
-
-DEFSH (VTYSH_BGPD, neighbor_dont_capability_negotiate_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "dont-capability-negotiate", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Do not perform capability negotiation\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_cmd_vtysh, 
-       "no ip prefix-list WORD", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_default_ipv4_unicast_cmd_vtysh, 
-       "no bgp default ipv4-unicast", 
-       "Negate a command or set its defaults\n"
-       "BGP specific commands\n"
-       "Configure BGP defaults\n"
-       "Activate ipv4-unicast for a peer by default\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_ipv6_route_cmd_vtysh, 
-       "show bgp ipv6 X:X::X:X", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Network in the BGP routing table to display\n")
-
-DEFSH (VTYSH_BGPD, no_ip_extcommunity_list_expanded_cmd_vtysh, 
-       "no ip extcommunity-list <100-199> (deny|permit) .LINE", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Add a extended community list entry\n"
-       "Extended Community list number (expanded)\n"
-       "Specify community to reject\n"
-       "Specify community to accept\n"
-       "An ordered list as a regular-expression\n")
-
-DEFSH (VTYSH_RIPD, accept_lifetime_month_day_month_day_cmd_vtysh, 
-       "accept-lifetime HH:MM:SS MONTH <1-31> <1993-2035> HH:MM:SS MONTH <1-31> <1993-2035>", 
-       "Set accept lifetime of the key\n"
-       "Time to start\n"
-       "Month of the year to start\n"
-       "Day of th month to start\n"
-       "Year to start\n"
-       "Time to expire\n"
-       "Month of the year to expire\n"
-       "Day of th month to expire\n"
-       "Year to expire\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, ipv6_prefix_list_seq_ge_cmd_vtysh, 
-       "ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) X:X::X:X/M ge <0-128>", 
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "sequence number of an entry\n"
-       "Sequence number\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
-       "Minimum prefix length to be matched\n"
-       "Minimum prefix length\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_mbgp_community_list_exact_cmd_vtysh, 
-       "show ipv6 mbgp community-list WORD exact-match", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "MBGP information\n"
-       "Display routes matching the community-list\n"
-       "community-list name\n"
-       "Exact match of the communities\n")
-
-DEFSH (VTYSH_OSPFD, no_ospf_default_information_originate_cmd_vtysh, 
-       "no default-information originate", 
-       "Negate a command or set its defaults\n"
-       "Control distribution of default information\n"
-       "Distribute a default route\n")
-
-DEFSH (VTYSH_BGPD, match_ipv6_address_cmd_vtysh, 
-       "match ipv6 address WORD", 
-       "Match values from routing table\n"
-       "IPv6 information\n"
-       "Match IPv6 address of route\n"
-       "IPv6 access-list name\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_activate_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "activate", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Enable the Address Family for this Neighbor\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_standard_nomask_cmd_vtysh, 
-       "access-list (<1-99>|<1300-1999>) (deny|permit) A.B.C.D", 
-       "Add an access list entry\n"
-       "IP standard access list\n"
-       "IP standard access list (expanded range)\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Address to match\n")
-
-DEFSH (VTYSH_OSPFD, show_ip_ospf_border_routers_cmd_vtysh, 
-       "show ip ospf border-routers", 
-       "Show running system information\n"
-       "IP information\n"
-       "show all the ABR's and ASBR's\n"
-       "for this area\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_as_in_cmd_vtysh, 
-       "clear bgp ipv6 <1-65535> in", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "Clear peers with the AS number\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_RIPD, no_rip_timers_cmd_vtysh, 
-       "no timers basic", 
-       "Negate a command or set its defaults\n"
-       "Adjust routing timers\n"
-       "Basic routing protocol update timers\n")
-
-DEFSH (VTYSH_BGPD, no_set_community_cmd_vtysh, 
-       "no set community", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "BGP community attribute\n")
-
-DEFSH (VTYSH_OSPFD, ospf_distance_cmd_vtysh, 
-       "distance <1-255>", 
-       "Define an administrative distance\n"
-       "OSPF Administrative distance\n")
-
-DEFSH (VTYSH_BGPD, no_ipv6_bgp_network_cmd_vtysh, 
-       "no network X:X::X:X/M", 
-       "Negate a command or set its defaults\n"
-       "Specify a network to announce via BGP\n"
-       "IPv6 prefix <network>/<length>\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_passive_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "passive", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Don't send open messages to this neighbor\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_vpnv4_out_cmd_vtysh, 
-       "clear ip bgp A.B.C.D vpnv4 unicast out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP neighbor address to clear\n"
-       "Address family\n"
-       "Address Family Modifier\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_remark_cmd_vtysh, 
-       "access-list (<1-99>|<100-199>|<1300-1999>|<2000-2699>|WORD) remark .LINE", 
-       "Add an access list entry\n"
-       "IP standard access list\n"
-       "IP extended access list\n"
-       "IP standard access list (expanded range)\n"
-       "IP extended access list (expanded range)\n"
-       "IP zebra access-list\n"
-       "Access list entry comment\n"
-       "Comment up to 100 characters\n")
-
-DEFSH (VTYSH_RIPNGD, show_ipv6_ripng_cmd_vtysh, 
-       "show ipv6 ripng", 
-       "Show running system information\n"
-       "IP information\n"
-       "Show RIPng routes\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_soft_out_cmd_vtysh, 
-       "clear bgp ipv6 (A.B.C.D|X:X::X:X) soft out", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "BGP neighbor address to clear\n"
-       "BGP IPv6 neighbor to clear\n"
-       "Soft reconfig\n"
-       "Soft reconfig outbound update\n")
+       "Set bandwidth informational parameter\n"
+       "Bandwidth in kilobits\n")
 
 DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_database_type_id_adv_router_dump_cmd_vtysh, 
        "show ipv6 ospf6 database (router|network|as-external|intra-prefix|inter-prefix|inter-router|link|*|HEX) (A.B.C.D|*) (A.B.C.D|*) (dump|detail|)", 
@@ -2985,117 +775,21 @@
        "show detail of LSAs\n"
        )
 
-DEFSH (VTYSH_OSPFD, no_set_metric_type_cmd_vtysh, 
-       "no set metric-type", 
+DEFSH (VTYSH_BGPD, no_bgp_router_id_val_cmd_vtysh, 
+       "no bgp router-id A.B.C.D", 
        "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "Type of metric for destination routing protocol\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_redistribute_ipv4_cmd_vtysh, 
-       "no redistribute (connected|kernel|ospf|rip|static)", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Connected\n"
-       "Kernel routes\n"
-       "Open Shurtest Path First (OSPF)\n"
-       "Routing Information Protocol (RIP)\n"
-       "Static routes\n")
-
-DEFSH (VTYSH_BGPD, no_match_ipv6_next_hop_cmd_vtysh, 
-       "no match ipv6 next-hop X:X::X:X", 
-       "Negate a command or set its defaults\n"
-       "Match values from routing table\n"
-       "IPv6 information\n"
-       "Match IPv6 next-hop address of route\n"
-       "IPv6 address of next hop\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_set_ip_nexthop_val_cmd_vtysh, 
-       "no set ip next-hop A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "IP information\n"
-       "Next hop address\n"
-       "IP address of next hop\n")
-
-DEFSH (VTYSH_OSPF6D, show_debug_ospf6_cmd_vtysh, 
-      "show debugging ospf6", 
-      "Show running system information\n"
-      "Debugging functions (see also 'undebug')\n"
-      "Open Shortest Path First (OSPF) for IPv6\n")
-
-DEFSH (VTYSH_BGPD, no_ip_community_list_standard_cmd_vtysh, 
-       "no ip community-list <1-99> (deny|permit) .AA:NN", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Add a community list entry\n"
-       "Community list number (standard)\n"
-       "Specify community to reject\n"
-       "Specify community to accept\n"
-       "Community number in aa:nn format or internet|local-AS|no-advertise|no-export\n")
-
-DEFSH (VTYSH_RIPD, send_lifetime_duration_month_day_cmd_vtysh, 
-       "send-lifetime HH:MM:SS MONTH <1-31> <1993-2035> duration <1-2147483646>", 
-       "Set send lifetime of the key\n"
-       "Time to start\n"
-       "Month of the year to start\n"
-       "Day of th month to start\n"
-       "Year to start\n"
-       "Duration of the key\n"
-       "Duration seconds\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_bgp_community4_cmd_vtysh, 
-       "show ipv6 bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
-       "Show running system information\n"
-       "IPv6 information\n"
        "BGP information\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n")
+       "Override configured router identifier\n"
+       "Manually configured router identifier\n")
 
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ip_prefix_list_prefix_longer_cmd_vtysh, 
-       "show ip prefix-list WORD A.B.C.D/M longer", 
-       "Show running system information\n"
-       "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Lookup longer prefix\n")
-
-DEFSH (VTYSH_BGPD, bgp_network_mask_cmd_vtysh, 
-       "network A.B.C.D mask A.B.C.D", 
-       "Specify a network to announce via BGP\n"
-       "Network number\n"
-       "Network mask\n"
-       "Network mask\n")
-
-DEFSH (VTYSH_OSPFD, no_ip_ospf_cost_cmd_vtysh, 
-       "no ip ospf cost", 
+DEFSH (VTYSH_RIPD, no_rip_offset_list_cmd_vtysh, 
+       "no offset-list WORD (in|out) <0-16>", 
        "Negate a command or set its defaults\n"
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Interface cost\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ip_prefix_list_detail_name_cmd_vtysh, 
-       "show ip prefix-list detail WORD", 
-       "Show running system information\n"
-       "IP information\n"
-       "Build a prefix list\n"
-       "Detail of prefix lists\n"
-       "Name of a prefix list\n")
+       "Modify RIP metric\n"
+       "Access-list name\n"
+       "For incoming updates\n"
+       "For outgoing updates\n"
+       "Metric value\n")
 
 DEFSH (VTYSH_OSPFD, show_ip_ospf_neighbor_detail_all_cmd_vtysh, 
        "show ip ospf neighbor detail all", 
@@ -3106,1114 +800,151 @@
        "detail of all neighbors\n"
        "include down status neighbor\n")
 
-DEFSH (VTYSH_OSPFD, debug_ospf_packet_send_recv_detail_cmd_vtysh, 
-       "debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) (detail|)", 
-       "Debugging functions\n"
-       "OSPF information\n"
-       "OSPF packets\n"
-       "OSPF Hello\n"
-       "OSPF Database Description\n"
-       "OSPF Link State Request\n"
-       "OSPF Link State Update\n"
-       "OSPF Link State Acknowledgment\n"
-       "OSPF all packets\n"
-       "Packet sent\n"
-       "Packet received\n"
-       "Detail Information\n")
-
-DEFSH (VTYSH_BGPD, bgp_network_backdoor_cmd_vtysh, 
-       "network A.B.C.D/M backdoor", 
-       "Specify a network to announce via BGP\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Specify a BGP backdoor route\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_redistribute_ipv6_metric_cmd_vtysh, 
-       "no redistribute (connected|kernel|ospf6|ripng|static) metric <0-4294967295>", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Connected\n"
-       "Kernel routes\n"
-       "Open Shurtest Path First (OSPFv3)\n"
-       "Routing Information Protocol (RIPng)\n"
-       "Static routes\n"
-       "Metric for redistributed routes\n"
-       "Default metric\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_instance_all_cmd_vtysh, 
-       "clear ip bgp view WORD *", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP view\n"
-       "view name\n"
-       "Clear all peers\n")
-
-DEFSH (VTYSH_BGPD, no_match_ecommunity_val_cmd_vtysh, 
-       "no match extcommunity (<1-99>|<100-199>|WORD)", 
-       "Negate a command or set its defaults\n"
-       "Match values from routing table\n"
-       "Match BGP/VPN extended community list\n"
-       "Extended community-list number (standard)\n"
-       "Extended community-list number (expanded)\n"
-       "Extended community-list name\n")
-
-DEFSH (VTYSH_BGPD, no_set_ipv6_nexthop_local_cmd_vtysh, 
-       "no set ipv6 next-hop local", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "IPv6 information\n"
-       "IPv6 next-hop address\n"
-       "IPv6 local address\n")
-
-DEFSH (VTYSH_OSPFD, show_ip_ospf_route_cmd_vtysh, 
-       "show ip ospf route", 
+DEFSH (VTYSH_BGPD, show_bgp_ipv6_prefix_cmd_vtysh, 
+       "show bgp ipv6 X:X::X:X/M", 
        "Show running system information\n"
-       "IP information\n"
-       "OSPF information\n"
-       "OSPF routing table\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_flap_prefix_longer_cmd_vtysh, 
-       "show ip bgp flap-statistics A.B.C.D/M longer-prefixes", 
-       "Show running system information\n"
-       "IP information\n"
        "BGP information\n"
-       "Display flap statistics of routes\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Display route and more specific routes\n")
-
-DEFSH (VTYSH_BGPD, no_set_weight_cmd_vtysh, 
-       "no set weight", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "BGP weight for routing table\n")
-
-DEFSH (VTYSH_BGPD, neighbor_distribute_list_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "distribute-list (<1-199>|<1300-2699>|WORD) (in|out)", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Filter updates to/from this neighbor\n"
-       "IP access-list number\n"
-       "IP access-list number (expanded range)\n"
-       "IP Access-list name\n"
-       "Filter incoming updates\n"
-       "Filter outgoing updates\n")
-
-DEFSH (VTYSH_BGPD, no_match_community_cmd_vtysh, 
-       "no match community", 
-       "Negate a command or set its defaults\n"
-       "Match values from routing table\n"
-       "Match BGP community list\n")
-
-DEFSH (VTYSH_BGPD, no_set_aggregator_as_cmd_vtysh, 
-       "no set aggregator as", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "BGP aggregator attribute\n"
-       "AS number of aggregator\n")
-
-DEFSH (VTYSH_BGPD, bgp_damp_set2_cmd_vtysh, 
-       "bgp dampening <1-45>", 
-       "BGP Specific commands\n"
-       "Enable route-flap dampening\n"
-       "Half-life time for the penalty\n")
-
-DEFSH (VTYSH_OSPF6D, debug_ospf6_all_cmd_vtysh, 
-       "debug ospf6 all", 
-       "Debugging functions (see also 'undebug')\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Turn on ALL OSPFv3 debugging\n")
-
-DEFSH (VTYSH_BGPD, ipv6_mbgp_neighbor_received_routes_cmd_vtysh, 
-       "show ipv6 mbgp neighbors (A.B.C.D|X:X::X:X) received-routes", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "MBGP information\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Neighbor to display information about\n"
-       "Display the received routes from neighbor\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_flap_statistics_cmd_vtysh, 
-       "show ip bgp flap-statistics", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display flap statistics of routes\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_vpnv4_soft_cmd_vtysh, 
-       "clear ip bgp A.B.C.D vpnv4 unicast soft", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP neighbor address to clear\n"
        "Address family\n"
-       "Address Family Modifier\n"
-       "Soft reconfig\n")
+       "IPv6 prefix <network>/<length>\n")
 
-DEFSH (VTYSH_BGPD, show_ipv6_mbgp_community3_exact_cmd_vtysh, 
-       "show ipv6 mbgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "MBGP information\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "Exact match of the communities")
-
-DEFSH (VTYSH_RIPNGD, debug_ripng_packet_cmd_vtysh, 
-       "debug ripng packet", 
-       "Debugging functions (see also 'undebug')\n"
-       "RIPng configuration\n"
-       "Debug option set for ripng packet\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_timers_cmd_vtysh, 
-       "no timers basic", 
+DEFSH (VTYSH_BGPD, no_dump_bgp_routes_cmd_vtysh, 
+       "no dump bgp routes-mrt [PATH] [INTERVAL]", 
        "Negate a command or set its defaults\n"
-       "RIPng timers setup\n"
-       "Basic timer\n")
+       "Dump packet\n"
+       "BGP packet dump\n"
+       "Dump whole BGP routing table\n")
 
-DEFSH (VTYSH_RIPNGD, ripng_route_cmd_vtysh, 
-       "route IPV6ADDR", 
-       "Static route setup\n"
-       "Set static RIPng route announcement\n")
-
-DEFSH (VTYSH_OSPF6D, ipv6_ospf6_advertise_force_prefix_cmd_vtysh, 
-       "ipv6 ospf6 advertise force-prefix", 
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Advertising options\n"
-       "Force advertising prefix,  applicable if Loopback or P-to-P\n"
-       )
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_out_cmd_vtysh, 
-       "clear ip bgp A.B.C.D out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP neighbor address to clear\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_OSPFD, ospf_distance_ospf_external_inter_intra_cmd_vtysh, 
-       "distance ospf external <1-255> inter-area <1-255> intra-area <1-255>", 
+DEFSH (VTYSH_OSPFD, ospf_distance_ospf_inter_external_cmd_vtysh, 
+       "distance ospf inter-area <1-255> external <1-255>", 
        "Define an administrative distance\n"
        "OSPF Administrative distance\n"
-       "External routes\n"
-       "Distance for external routes\n"
        "Inter-area routes\n"
        "Distance for inter-area routes\n"
-       "Intra-area routes\n"
-       "Distance for intra-area routes\n")
+       "External routes\n"
+       "Distance for external routes\n")
 
-DEFSH (VTYSH_OSPFD, ip_ospf_hello_interval_addr_cmd_vtysh, 
-       "ip ospf hello-interval <1-65535> A.B.C.D", 
-       "IP Information\n"
+DEFSH (VTYSH_OSPFD, debug_ospf_event_cmd_vtysh, 
+       "debug ospf event", 
+       "Debugging functions (see also 'undebug')\n"
+       "OSPF information\n"
+       "OSPF event information\n")
+
+DEFSH (VTYSH_OSPFD, no_ospf_retransmit_interval_cmd_vtysh, 
+       "no ospf retransmit-interval", 
+       "Negate a command or set its defaults\n"
        "OSPF interface commands\n"
-       "Time between HELLO packets\n"
-       "Seconds\n"
-       "Address of interface")
+       "Time between retransmitting lost link state advertisements\n")
 
-DEFSH (VTYSH_BGPD, show_bgp_ipv6_filter_list_cmd_vtysh, 
-       "show bgp ipv6 filter-list WORD", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Display routes conforming to the filter-list\n"
-       "Regular expression access list name\n")
+DEFSH (VTYSH_BGPD, set_community_none_cmd_vtysh, 
+       "set community none", 
+       "Set values in destination routing protocol\n"
+       "BGP community attribute\n"
+       "No community attribute\n")
 
-DEFSH (VTYSH_BGPD, debug_bgp_update_cmd_vtysh, 
-       "debug bgp updates", 
+DEFSH (VTYSH_BGPD, debug_bgp_filter_cmd_vtysh, 
+       "debug bgp filters", 
        "Debugging functions (see also 'undebug')\n"
        "BGP information\n"
-       "BGP updates\n")
+       "BGP filters\n")
 
-DEFSH (VTYSH_BGPD, show_bgp_cmd_vtysh, 
-       "show bgp", 
-       "Show running system information\n"
-       "BGP information\n")
+DEFSH (VTYSH_OSPF6D, ospf6_routemap_set_forwarding_cmd_vtysh, 
+       "set forwarding-address X:X::X:X", 
+       "Set value\n"
+       "Forwarding Address\n"
+       "IPv6 Address\n")
 
-DEFSH (VTYSH_BGPD, show_bgp_filter_list_cmd_vtysh, 
-       "show bgp filter-list WORD", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Display routes conforming to the filter-list\n"
-       "Regular expression access list name\n")
+DEFSH (VTYSH_BGPD, no_bgp_bestpath_compare_router_id_cmd_vtysh, 
+       "no bgp bestpath compare-routerid", 
+       "Negate a command or set its defaults\n"
+       "BGP specific commands\n"
+       "Change the default bestpath selection\n"
+       "Compare router-id for identical EBGP paths\n")
 
-DEFSH (VTYSH_BGPD, show_ipv6_bgp_community_cmd_vtysh, 
-       "show ipv6 bgp community (AA:NN|local-AS|no-advertise|no-export)", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "BGP information\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_peer_cmd_vtysh, 
-       "clear bgp (A.B.C.D|X:X::X:X)", 
-       "Reset functions\n"
-       "BGP information\n"
-       "BGP neighbor address to clear\n"
-       "BGP IPv6 neighbor to clear\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_neighbor_received_routes_cmd_vtysh, 
-       "show bgp neighbors (A.B.C.D|X:X::X:X) received-routes", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Neighbor to display information about\n"
-       "Display the received routes from neighbor\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, ip_prefix_list_seq_ge_cmd_vtysh, 
-       "ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M ge <0-32>", 
-       "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "sequence number of an entry\n"
-       "Sequence number\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Minimum prefix length to be matched\n"
-       "Minimum prefix length\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_soft_out_cmd_vtysh, 
-       "clear ip bgp A.B.C.D soft out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP neighbor address to clear\n"
-       "Soft reconfig\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_ZEBRA, ip_irdp_multicast_cmd_vtysh, 
-       "ip irdp multicast", 
-       "IP information\n"
-       "ICMP Router discovery on this interface\n"
-       "Send IRDP advertisement to the multicast address\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_match_ip_address_prefix_list_val_cmd_vtysh, 
-       "no match ip address prefix-list WORD", 
+DEFSH (VTYSH_RIPD, no_match_ip_address_val_cmd_vtysh, 
+       "no match ip address WORD", 
        "Negate a command or set its defaults\n"
        "Match values from routing table\n"
        "IP information\n"
        "Match address of route\n"
-       "Match entries of prefix-lists\n"
-       "IP prefix-list name\n")
+       "IP access-list name\n")
 
-DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_topology_router_lsid_cmd_vtysh, 
-       "show ipv6 ospf6 topology (A.B.C.D|<0-4294967295>) (A.B.C.D|<0-4294967295>)", 
-       "Show running system information\n"
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Inter Area topology information\n"
-       "Specify Router-ID\n"
-       "Specify Router-ID\n"
-       "Specify Link State ID\n"
-       "Specify Link State ID\n"
-       )
+DEFSH (VTYSH_ZEBRA, bandwidth_if_cmd_vtysh, 
+       "bandwidth <1-10000000>", 
+       "Set bandwidth informational parameter\n"
+       "Bandwidth in kilobits\n")
 
-DEFSH (VTYSH_RIPD, ip_rip_authentication_string_cmd_vtysh, 
-       "ip rip authentication string LINE", 
-       "IP information\n"
-       "Routing Information Protocol\n"
-       "Authentication control\n"
-       "Authentication string\n"
-       "Authentication string\n")
+DEFSH (VTYSH_OSPFD, ospf_default_metric_cmd_vtysh, 
+       "default-metric <0-16777214>", 
+       "Set metric of redistributed routes\n"
+       "Default metric\n")
 
-DEFSH (VTYSH_BGPD, clear_bgp_peer_group_soft_cmd_vtysh, 
-       "clear bgp peer-group WORD soft", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear all members of peer-group\n"
-       "BGP peer-group name\n"
-       "Soft reconfig\n")
-
-DEFSH (VTYSH_BGPD, bgp_timers_cmd_vtysh, 
-       "timers bgp <0-65535> <0-65535>", 
-       "Adjust routing timers\n"
-       "BGP timers\n"
-       "Keepalive interval\n"
-       "Holdtime\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_ospf6_metric_routemap_cmd_vtysh, 
-       "no redistribute ospf6 metric <0-16> route-map WORD", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "IPv6 Open Shortest Path First (OSPFv3)\n"
-       "Metric\n"
-       "Metric value\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_BGPD, set_metric_cmd_vtysh, 
-       "set metric (<0-4294967295>|<+/-metric>)", 
-       "Set values in destination routing protocol\n"
-       "Metric value for destination routing protocol\n"
-       "Metric value\n"
-       "Add or subtract metric\n")
-
-DEFSH (VTYSH_OSPFD, debug_ospf_nsm_sub_cmd_vtysh, 
-       "debug ospf nsm (status|events|timers)", 
-       "Debugging functions (see also 'undebug')\n"
-       "OSPF information\n"
-       "OSPF Neighbor State Machine\n"
-       "NSM Status Information\n"
-       "NSM Event Information\n"
-       "NSM Timer Information\n")
-
-DEFSH (VTYSH_OSPFD, auto_cost_reference_bandwidth_cmd_vtysh, 
-       "auto-cost reference-bandwidth <1-4294967>", 
-       "Calculate OSPF interface cost according to bandwidth\n"
-       "Use reference bandwidth method to assign OSPF cost\n"
-       "The reference bandwidth in terms of Mbits per second\n")
-
-DEFSH (VTYSH_OSPFD, no_refresh_timer_cmd_vtysh, 
-       "no refresh timer", 
-       "Adjust refresh parameters\n"
-       "Unset refresh timer\n")
-
-DEFSH (VTYSH_BGPD, no_ip_as_path_all_cmd_vtysh, 
-       "no ip as-path access-list WORD", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "BGP autonomous system path filter\n"
-       "Specify an access list name\n"
-       "Regular expression access list name\n")
-
-DEFSH (VTYSH_OSPF6D, flap_damping_route_cmd_vtysh, 
-       "flap-damping route <0-4294967295> <0-4294967295> "
-                          "<0-4294967295> <0-4294967295>", 
-       "enable flap dampening\n"
-       "enable route flap dampening\n"
-       "half-life in second\n"
-       "reuse value\n"
-       "suppress value\n"
-       "t-hold in second (maximum time that the target can be damped)\n"
-      )
-
-DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_route_prefix_cmd_vtysh, 
-       "show ipv6 ospf6 route (X::X|detail)", 
-       "Show running system information\n"
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Routing table\n"
-       "match IPv6 prefix\n"
-       )
-
-DEFSH (VTYSH_BGPD, match_origin_cmd_vtysh, 
-       "match origin (egp|igp|incomplete)", 
-       "Match values from routing table\n"
-       "BGP origin code\n"
-       "remote EGP\n"
-       "local IGP\n"
-       "unknown heritage\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_extended_cmd_vtysh, 
-       "no access-list (<100-199>|<2000-2699>) (deny|permit) ip A.B.C.D A.B.C.D A.B.C.D A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "Add an access list entry\n"
-       "IP extended access list\n"
-       "IP extended access list (expanded range)\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Any Internet Protocol\n"
-       "Source address\n"
-       "Source wildcard bits\n"
-       "Destination address\n"
-       "Destination Wildcard bits\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_timers_connect_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X) " "timers connect", 
+DEFSH (VTYSH_BGPD, no_neighbor_allowas_in_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "allowas-in", 
        "Negate a command or set its defaults\n"
        "Specify neighbor router\n"
-       "Neighbor address\nIPv6 address\n"
-       "BGP per neighbor timers\n"
-       "BGP connect timer\n")
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "allow local ASN appears in aspath attribute\n")
 
-DEFSH (VTYSH_BGPD, set_aspath_prepend_cmd_vtysh, 
-       "set as-path prepend .<1-65535>", 
-       "Set values in destination routing protocol\n"
-       "Prepend string for a BGP AS-path attribute\n"
-       "Prepend to the as-path\n"
-       "AS number\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_external_ipv4_in_cmd_vtysh, 
-       "clear ip bgp external ipv4 (unicast|multicast) in", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all external peers\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_regexp_cmd_vtysh, 
-       "show ip bgp regexp .LINE", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display routes matching the AS path regular expression\n"
-       "A regular-expression to match the BGP AS paths\n")
+DEFSH (VTYSH_RIPNGD, no_ripng_default_metric_cmd_vtysh, 
+       "no default-metric", 
+       "Negate a command or set its defaults\n"
+       "Set a metric of redistribute routes\n"
+       "Default metric\n")
 
 DEFSH (VTYSH_OSPF6D, reload_cmd_vtysh, 
        "reload", 
        "Reloads\n")
 
-DEFSH (VTYSH_BGPD, no_neighbor_weight_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "weight", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Set default weight for routes from this neighbor\n")
-
-DEFSH (VTYSH_BGPD, bgp_redistribute_ipv4_rmap_cmd_vtysh, 
-       "redistribute (connected|kernel|ospf|rip|static) route-map WORD", 
-       "Redistribute information from another routing protocol\n"
-       "Connected\n"
-       "Kernel routes\n"
-       "Open Shurtest Path First (OSPF)\n"
-       "Routing Information Protocol (RIP)\n"
-       "Static routes\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_ipv4_in_cmd_vtysh, 
-       "clear ip bgp peer-group WORD ipv4 (unicast|multicast) in", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all members of peer-group\n"
-       "BGP peer-group name\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_BGPD, dump_bgp_routes_interval_cmd_vtysh, 
-       "dump bgp routes-mrt PATH INTERVAL", 
-       "Dump packet\n"
-       "BGP packet dump\n"
-       "Dump whole BGP routing table\n"
-       "Output filename\n"
-       "Interval of output\n")
-
-DEFSH (VTYSH_ZEBRA, ipv6_route_pref_cmd_vtysh, 
-       "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) <1-255>", 
-       "IP information\n"
-       "Establish static routes\n"
-       "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
-       "IPv6 gateway address\n"
-       "IPv6 gateway interface name\n"
-       "Distance value for this prefix\n")
-
-DEFSH (VTYSH_RIPD, accept_lifetime_duration_day_month_cmd_vtysh, 
-       "accept-lifetime HH:MM:SS <1-31> MONTH <1993-2035> duration <1-2147483646>", 
-       "Set accept lifetime of the key\n"
-       "Time to start\n"
-       "Day of th month to start\n"
-       "Month of the year to start\n"
-       "Year to start\n"
-       "Duration of the key\n"
-       "Duration seconds\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_dampened_paths_cmd_vtysh, 
-       "show ip bgp dampened-paths", 
+DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_area_spf_tree_cmd_vtysh, 
+       "show ipv6 ospf6 area A.B.C.D spf tree", 
        "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display paths suppressed due to dampening\n")
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Area information\n"
+       "Area ID (as an IPv4 notation)\n"
+       "Shortest Path First caculation\n"
+       "Displays spf tree\n")
 
-DEFSH (VTYSH_RIPD, no_ip_rip_send_version_num_cmd_vtysh, 
-       "no ip rip send version (1|2)", 
+DEFSH (VTYSH_BGPD, bgp_damp_unset2_cmd_vtysh, 
+       "no bgp dampening <1-45> <1-20000> <1-20000> <1-255>", 
        "Negate a command or set its defaults\n"
+       "BGP Specific commands\n"
+       "Enable route-flap dampening\n"
+       "Half-life time for the penalty\n"
+       "Value to start reusing a route\n"
+       "Value to start suppressing a route\n"
+       "Maximum duration to suppress a stable route\n")
+
+DEFSH (VTYSH_OSPFD, ip_ospf_authentication_key_addr_cmd_vtysh, 
+       "ip ospf authentication-key AUTH_KEY A.B.C.D", 
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Authentication password (key)\n"
+       "The OSPF password (key)\n"
+       "Address of interface")
+
+DEFSH (VTYSH_RIPD, ip_rip_send_version_2_cmd_vtysh, 
+       "ip rip send version 2 1", 
        "IP information\n"
        "Routing Information Protocol\n"
        "Advertisement transmission\n"
        "Version control\n"
-       "Version 1\n"
-       "Version 2\n")
+       "RIP version 2\n"
+       "RIP version 1\n")
 
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_in_cmd_vtysh, 
-       "clear ip bgp peer-group WORD in", 
-       "Reset functions\n"
+DEFSH (VTYSH_ZEBRA, ipv6_route_ifname_cmd_vtysh, 
+       "ipv6 route X:X::X:X/M X:X::X:X INTERFACE", 
        "IP information\n"
-       "BGP information\n"
-       "Clear all members of peer-group\n"
-       "BGP peer-group name\n"
-       "Soft reconfig inbound update\n")
+       "Establish static routes\n"
+       "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
+       "IPv6 gateway address\n"
+       "IPv6 gateway interface name\n")
 
-DEFSH (VTYSH_BGPD, no_ip_community_list_cmd_vtysh, 
-       "no ip community-list WORD (deny|permit) .AA:NN", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Add a community list entry\n"
-       "Community list name\n"
-       "Specify community to reject\n"
-       "Specify community to accept\n"
-       "Community number in aa:nn format or internet|local-AS|no-advertise|no-export\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_nexthop_self_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "next-hop-self", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Disable the next hop calculation for this neighbor\n")
-
-DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_database_cmd_vtysh, 
-       "show ipv6 ospf6 database", 
-       "Show running system information\n"
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "LSA Database\n"
-       )
-
-DEFSH (VTYSH_ZEBRA, show_ipv6_route_cmd_vtysh, 
-       "show ipv6 route", 
-       "Show running system information\n"
-       "IP information\n"
-       "IPv6 routing table\n")
-
-DEFSH (VTYSH_OSPFD, ospf_network_cmd_vtysh, 
-       "ospf network (broadcast|non-broadcast|point-to-multipoint|point-to-point)", 
-       "OSPF interface commands\n"
-       "Network type\n"
-       "Specify OSPF broadcast multi-access network\n"
-       "Specify OSPF NBMA network\n"
-       "Specify OSPF point-to-multipoint network\n"
-       "Specify OSPF point-to-point network\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_group_out_cmd_vtysh, 
-       "clear bgp ipv6 peer-group WORD out", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "Clear all members of peer-group\n"
-       "BGP peer-group name\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_all_tags_cmd_vtysh, 
-       "show ip bgp vpnv4 all tags", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display VPNv4 NLRI specific information\n"
-       "Display information about all VPNv4 NLRIs\n"
-       "Display BGP tags for prefixes\n")
-
-DEFSH (VTYSH_OSPFD, no_ospf_redistribute_source_cmd_vtysh, 
-       "no redistribute (kernel|connected|static|rip|bgp)", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Kernel routes\n"
-       "Connected\n"
-       "Static routes\n"
-       "Routing Information Protocol (RIP)\n"
-       "Border Gateway Protocol (BGP)\n")
-
-DEFSH (VTYSH_BGPD, no_debug_bgp_fsm_cmd_vtysh, 
-       "no debug bgp fsm", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "BGP information\n"
-       "Finite State Machine\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_flap_prefix_cmd_vtysh, 
-       "show ip bgp flap-statistics A.B.C.D/M", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display flap statistics of routes\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_as_in_cmd_vtysh, 
-       "clear bgp <1-65535> in", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear peers with the AS number\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_RIPD, no_rip_redistribute_rip_cmd_vtysh, 
-       "no redistribute rip", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Routing Information Protocol (RIP)\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_view_route_cmd_vtysh, 
-       "show ip bgp view WORD A.B.C.D", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP view\n"
-       "BGP view name\n"
-       "Network in the BGP routing table to display\n")
-
-DEFSH (VTYSH_ZEBRA, no_debug_zebra_events_cmd_vtysh, 
-       "no debug zebra events", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "Zebra configuration\n"
-       "Debug option set for zebra events\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_connected_metric_routemap_cmd_vtysh, 
-       "no redistribute connected metric <0-16> route-map WORD", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Connected\n"
-       "Metric\n"
-       "Metric value\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, ip_prefix_list_seq_le_cmd_vtysh, 
-       "ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M le <0-32>", 
-       "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "sequence number of an entry\n"
-       "Sequence number\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Maximum prefix length to be matched\n"
-       "Maximum prefix length\n")
-
-DEFSH (VTYSH_BGPD, no_set_ecommunity_rt_val_cmd_vtysh, 
-       "no set extcommunity rt .ASN:nn_or_IP-address:nn", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "BGP extended community attribute\n"
-       "Route Target extened communityt\n"
-       "VPN extended community\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_neighbors_cmd_vtysh, 
-       "show ip bgp neighbors", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Detailed information on TCP and BGP neighbor connections\n")
-
-DEFSH (VTYSH_OSPFD, no_ospf_distance_cmd_vtysh, 
-       "no distance <1-255>", 
-       "Negate a command or set its defaults\n"
-       "Define an administrative distance\n"
-       "OSPF Administrative distance\n")
-
-DEFSH (VTYSH_BGPD, bgp_network_mask_natural_cmd_vtysh, 
-       "network A.B.C.D", 
-       "Specify a network to announce via BGP\n"
-       "Network number\n")
-
-DEFSH (VTYSH_BGPD, debug_bgp_events_cmd_vtysh, 
-       "debug bgp events", 
-       "Debugging functions (see also 'undebug')\n"
-       "BGP information\n"
-       "BGP events\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_all_soft_in_cmd_vtysh, 
-       "clear bgp * soft in", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear all peers\n"
-       "Soft reconfig\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, ip_prefix_list_ge_le_cmd_vtysh, 
-       "ip prefix-list WORD (deny|permit) A.B.C.D/M ge <0-32> le <0-32>", 
-       "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Minimum prefix length to be matched\n"
-       "Minimum prefix length\n"
-       "Maximum prefix length to be matched\n"
-       "Maximum prefix length\n")
-
-DEFSH (VTYSH_OSPFD, network_area_cmd_vtysh, 
-       "network A.B.C.D/M area (A.B.C.D|<0-4294967295>)", 
-       "Enable routing on an IP network\n"
-       "OSPF network prefix\n"
-       "Set the OSPF area ID\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_all_ipv4_in_cmd_vtysh, 
-       "clear ip bgp * ipv4 (unicast|multicast) in", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all peers\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_paths_cmd_vtysh, 
-       "show ip bgp paths", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Path information\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_ipv6_community_cmd_vtysh, 
-       "show bgp ipv6 community (AA:NN|local-AS|no-advertise|no-export)", 
+DEFSH (VTYSH_BGPD, show_bgp_community_all_cmd_vtysh, 
+       "show bgp community", 
        "Show running system information\n"
        "BGP information\n"
-       "Address family\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n")
-
-DEFSH (VTYSH_OSPFD, no_area_default_cost_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) default-cost <0-16777215>", 
-       "Negate a command or set its defaults\n"
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Set the summary-default cost of a NSSA or stub area\n"
-       "Stub's advertised default summary cost\n")
-
-DEFSH (VTYSH_OSPFD, no_router_ospf_cmd_vtysh, 
-       "no router ospf", 
-       "Negate a command or set its defaults\n"
-       "Enable a routing process\n"
-       "Start OSPF configuration\n")
-
-DEFSH (VTYSH_OSPFD, ip_ospf_transmit_delay_cmd_vtysh, 
-       "ip ospf transmit-delay <1-65535>", 
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Link state transmit delay\n"
-       "Seconds\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_scan_time_val_cmd_vtysh, 
-       "no bgp scan-time <5-60>", 
-       "Negate a command or set its defaults\n"
-       "BGP specific commands\n"
-       "Configure background scanner interval\n"
-       "Scanner interval (seconds)\n")
-
-DEFSH (VTYSH_BGPD, no_debug_bgp_all_cmd_vtysh, 
-       "no debug all bgp", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "Enable all debugging\n"
-       "BGP information\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_flap_address_cmd_vtysh, 
-       "show ip bgp flap-statistics A.B.C.D", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display flap statistics of routes\n"
-       "Network in the BGP routing table to display\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD, no_match_interface_val_cmd_vtysh, 
-       "no match interface WORD", 
-       "Negate a command or set its defaults\n"
-       "Match values from routing table\n"
-       "Match first hop interface of route\n"
-       "Interface name\n")
-
-DEFSH (VTYSH_OSPF6D, router_id_cmd_vtysh, 
-       "router-id ROUTER_ID", 
-       "Configure ospf Router-ID.\n"
-       "specify by IPv4 address notation(e.g. 0.0.0.0)\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_cluster_id_arg_cmd_vtysh, 
-       "no bgp cluster-id A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "BGP information\n"
-       "Configure Route-Reflector Cluster-id\n"
-       "Route-Reflector Cluster-id in IP address format\n")
-
-DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_topology_cmd_vtysh, 
-       "show ipv6 ospf6 topology", 
-       "Show running system information\n"
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Inter Area topology information\n"
-       )
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_extended_any_host_cmd_vtysh, 
-       "no access-list (<100-199>|<2000-2699>) (deny|permit) ip any host A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "Add an access list entry\n"
-       "IP extended access list\n"
-       "IP extended access list (expanded range)\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Any Internet Protocol\n"
-       "Any source host\n"
-       "A single destination host\n"
-       "Destination address\n")
-
-DEFSH (VTYSH_RIPD, no_rip_version_val_cmd_vtysh, 
-       "no version <1-2>", 
-       "Negate a command or set its defaults\n"
-       "Set routing protocol version\n"
-       "version\n")
-
-DEFSH (VTYSH_OSPFD, no_area_vlink_param2_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
-       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) "
-       "(hello-interval|retransmit-interval|transmit-delay|dead-interval)", 
-       "Negate a command or set its defaults\n"
-       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
-       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n"
-       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n")
-
-DEFSH (VTYSH_BGPD, no_ip_extcommunity_list_all_cmd_vtysh, 
-       "no ip extcommunity-list (<1-99>|<100-199>)", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Add a extended community list entry\n"
-       "Extended Community list number (standard)\n"
-       "Extended Community list number (expanded)\n")
-
-DEFSH (VTYSH_ZEBRA, no_zebra_interface_cmd_vtysh, 
-       "no interface IFNAME", 
-       "Delete a pseudo interface's configuration\n"
-       "Interface's name\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_neighbors_peer_cmd_vtysh, 
-       "show ip bgp ipv4 (unicast|multicast) neighbors (A.B.C.D|X:X::X:X)", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Neighbor to display information about\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, ipv6_prefix_list_seq_ge_le_cmd_vtysh, 
-       "ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) X:X::X:X/M ge <0-128> le <0-128>", 
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "sequence number of an entry\n"
-       "Sequence number\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
-       "Minimum prefix length to be matched\n"
-       "Minimum prefix length\n"
-       "Maximum prefix length to be matched\n"
-       "Maximum prefix length\n")
-
-DEFSH (VTYSH_OSPFD, ospf_distance_ospf_inter_cmd_vtysh, 
-       "distance ospf inter-area <1-255>", 
-       "Define an administrative distance\n"
-       "OSPF Administrative distance\n"
-       "Inter-area routes\n"
-       "Distance for inter-area routes\n")
-
-DEFSH (VTYSH_BGPD, set_community_cmd_vtysh, 
-       "set community .AA:NN", 
-       "Set values in destination routing protocol\n"
-       "BGP community attribute\n"
-       "Community number in aa:nn format or local-AS|no-advertise|no-export|internet or additive\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_as_out_cmd_vtysh, 
-       "clear ip bgp <1-65535> out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear peers with the AS number\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ipv6_prefix_list_name_cmd_vtysh, 
-       "show ipv6 prefix-list WORD", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_network_mask_natural_cmd_vtysh, 
-       "no network A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "Specify a network to announce via BGP\n"
-       "Network number\n")
-
-DEFSH (VTYSH_RIPD, no_rip_passive_interface_cmd_vtysh, 
-       "no passive-interface IFNAME", 
-       "Negate a command or set its defaults\n"
-       "Suppress routing updates on an interface\n"
-       "Interface name\n")
-
-DEFSH (VTYSH_RIPD, no_key_chain_cmd_vtysh, 
-       "no key chain WORD", 
-       "Negate a command or set its defaults\n"
-       "Authentication key management\n"
-       "Key-chain management\n"
-       "Key-chain name\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_set_metric_cmd_vtysh, 
-       "no set metric", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "Metric value for destination routing protocol\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_bgp_community3_cmd_vtysh, 
-       "show ipv6 bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "BGP information\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_external_in_prefix_filter_cmd_vtysh, 
-       "clear bgp external in prefix-filter", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear all external peers\n"
-       "Soft reconfig inbound update\n"
-       "Push out prefix-list ORF and do inbound soft reconfig\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_ipv6_neighbor_received_prefix_filter_cmd_vtysh, 
-       "show bgp ipv6 neighbors (A.B.C.D|X:X::X:X) received prefix-filter", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Neighbor to display information about\n"
-       "Display information received from a BGP neighbor\n"
-       "Display the prefixlist filter\n")
-
-DEFSH (VTYSH_RIPD, no_debug_rip_events_cmd_vtysh, 
-       "no debug rip events", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "RIP information\n"
-       "RIP events\n")
-
-DEFSH (VTYSH_BGPD, undebug_bgp_events_cmd_vtysh, 
-       "undebug bgp events", 
-       "Disable debugging functions (see also 'debug')\n"
-       "BGP information\n"
-       "BGP events\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_instance_all_ipv4_in_prefix_filter_cmd_vtysh, 
-       "clear ip bgp view WORD * ipv4 (unicast|multicast) in prefix-filter", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all peers\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig inbound update\n"
-       "Push out prefix-list ORF and do inbound soft reconfig\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_external_in_cmd_vtysh, 
-       "clear bgp external in", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear all external peers\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_external_out_cmd_vtysh, 
-       "clear bgp external out", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear all external peers\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_cmd_vtysh, 
-       "no access-list WORD (deny|permit) A.B.C.D/M", 
-       "Negate a command or set its defaults\n"
-       "Add an access list entry\n"
-       "IP zebra access-list name\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Prefix to match. e.g. 10.0.0.0/8\n")
-
-DEFSH (VTYSH_OSPFD, show_ip_ospf_database_type_id_self_cmd_vtysh, 
-       "show ip ospf database (" "asbr-summary|external|network|router|summary" "|nssa-external" "|opaque-link|opaque-area|opaque-as" ") A.B.C.D (self-originate|)", 
-       "Show running system information\n"
-       "IP information\n"
-       "OSPF information\n"
-       "Database summary\n"
-       "ASBR summary link states\n" "External link states\n" "Network link states\n" "Router link states\n" "Network summary link states\n" "NSSA external link state\n" "Link local Opaque-LSA\n" "Link area Opaque-LSA\n" "Link AS Opaque-LSA\n"
-       "Link State ID (as an IP address)\n"
-       "Self-originated link states\n"
-       "\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_cmd_vtysh, 
-       "show ip bgp", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_remove_private_as_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "remove-private-AS", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Remove private AS number from outbound updates\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_rd_neighbor_routes_cmd_vtysh, 
-       "show ip bgp vpnv4 rd ASN:nn_or_IP-address:nn neighbors A.B.C.D routes", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display VPNv4 NLRI specific information\n"
-       "Display information for a route distinguisher\n"
-       "VPN Route Distinguisher\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Display routes learned from neighbor\n")
-
-DEFSH (VTYSH_BGPD, neighbor_local_as_no_prepend_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "local-as <1-65535> no-prepend", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Specify a local-as number\n"
-       "AS number used as local AS\n"
-       "Do not prepend local-as to updates from ebgp peers\n")
-
-DEFSH (VTYSH_BGPD, bgp_router_id_cmd_vtysh, 
-       "bgp router-id A.B.C.D", 
-       "BGP information\n"
-       "Override configured router identifier\n"
-       "Manually configured router identifier\n")
-
-DEFSH (VTYSH_BGPD, aggregate_address_summary_as_set_cmd_vtysh, 
-       "aggregate-address A.B.C.D/M summary-only as-set", 
-       "Configure BGP aggregate entries\n"
-       "Aggregate prefix\n"
-       "Filter more specific routes from updates\n"
-       "Generate AS set path information\n")
+       "Display routes matching the communities\n")
 
 DEFSH (VTYSH_BGPD, neighbor_port_cmd_vtysh, 
        "neighbor (A.B.C.D|X:X::X:X) " "port <0-65535>", 
@@ -4222,307 +953,32 @@
        "Neighbor's BGP port\n"
        "TCP port number\n")
 
-DEFSH (VTYSH_OSPFD, ospf_redistribute_source_type_metric_cmd_vtysh, 
-       "redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) metric <0-16777214>", 
-       "Redistribute information from another routing protocol\n"
-       "Kernel routes\n"
-       "Connected\n"
-       "Static routes\n"
-       "Routing Information Protocol (RIP)\n"
-       "Border Gateway Protocol (BGP)\n"
-       "OSPF exterior metric type for redistributed routes\n"
-       "Set OSPF External Type 1 metrics\n"
-       "Set OSPF External Type 2 metrics\n"
-       "Metric for redistributed routes\n"
-       "OSPF default metric\n")
-
-DEFSH (VTYSH_OSPFD, ospf_distance_ospf_external_cmd_vtysh, 
-       "distance ospf external <1-255>", 
-       "Define an administrative distance\n"
-       "OSPF Administrative distance\n"
-       "External routes\n"
-       "Distance for external routes\n")
-
-DEFSH (VTYSH_OSPFD, mpls_te_link_rsc_clsclr_cmd_vtysh, 
-       "mpls-te link rsc-clsclr BITPATTERN", 
-       "MPLS-TE specific commands\n"
-       "Configure MPLS-TE link parameters\n"
-       "Administrative group membership\n"
-       "32-bit Hexadecimal value (ex. 0xa1)\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_community_list_cmd_vtysh, 
-       "show ip bgp community-list WORD", 
-       "Show running system information\n"
+DEFSH (VTYSH_BGPD, clear_ip_bgp_dampening_prefix_cmd_vtysh, 
+       "clear ip bgp dampening A.B.C.D/M", 
+       "Reset functions\n"
        "IP information\n"
        "BGP information\n"
-       "Display routes matching the community-list\n"
-       "community-list name\n")
+       "Clear route flap dampening information\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n")
 
-DEFSH (VTYSH_OSPFD, ospf_redistribute_source_metric_cmd_vtysh, 
-       "redistribute (kernel|connected|static|rip|bgp) metric <0-16777214>", 
-       "Redistribute information from another routing protocol\n"
-       "Kernel routes\n"
-       "Connected\n"
-       "Static routes\n"
-       "Routing Information Protocol (RIP)\n"
-       "Border Gateway Protocol (BGP)\n"
-       "Metric for redistributed routes\n"
-       "OSPF default metric\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_all_soft_cmd_vtysh, 
-       "clear bgp ipv6 * soft", 
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_all_soft_out_cmd_vtysh, 
+       "clear bgp ipv6 * soft out", 
        "Reset functions\n"
        "BGP information\n"
        "Address family\n"
        "Clear all peers\n"
-       "Soft reconfig\n")
+       "Soft reconfig\n"
+       "Soft reconfig outbound update\n")
 
-DEFSH (VTYSH_OSPFD, no_area_nssa_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) nssa", 
-       "Negate a command or set its defaults\n"
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Configure OSPF area as nssa\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, ip_prefix_list_sequence_number_cmd_vtysh, 
-       "ip prefix-list sequence-number", 
-       "IP information\n"
-       "Build a prefix list\n"
-       "Include/exclude sequence numbers in NVGEN\n")
-
-DEFSH (VTYSH_BGPD, neighbor_maximum_prefix_warning_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "maximum-prefix <1-4294967295> warning-only", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Maximum number of prefix accept from this peer\n"
-       "maximum no. of prefix limit\n"
-       "Only give warning message when limit is exceeded\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_match_ip_next_hop_prefix_list_val_cmd_vtysh, 
-       "no match ip next-hop prefix-list WORD", 
-       "Negate a command or set its defaults\n"
-       "Match values from routing table\n"
-       "IP information\n"
-       "Match next-hop address of route\n"
-       "Match entries of prefix-lists\n"
-       "IP prefix-list name\n")
-
-DEFSH (VTYSH_BGPD, no_ip_community_list_name_all_cmd_vtysh, 
-       "no ip community-list (standard|expanded) WORD", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Add a community list entry\n"
-       "Add a standard community-list entry\n"
-       "Add an expanded community-list entry\n"
-       "Community list name\n")
-
-DEFSH (VTYSH_BGPD, undebug_bgp_all_cmd_vtysh, 
-       "undebug all bgp", 
-       "Disable debugging functions (see also 'debug')\n"
-       "Enable all debugging\n"
-       "BGP information\n")
-
-DEFSH (VTYSH_OSPFD, no_ospf_default_metric_val_cmd_vtysh, 
-       "no default-metric <0-16777214>", 
-       "Negate a command or set its defaults\n"
-       "Set metric of redistributed routes\n"
-       "Default metric\n")
-
-DEFSH (VTYSH_OSPFD, ospf_default_information_originate_always_routemap_cmd_vtysh, 
-       "default-information originate always route-map WORD", 
-       "Control distribution of default information\n"
-       "Distribute a default route\n"
-       "Always advertise default route\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_RIPD, ip_rip_authentication_key_chain_cmd_vtysh, 
-       "ip rip authentication key-chain LINE", 
-       "IP information\n"
-       "Routing Information Protocol\n"
-       "Authentication control\n"
-       "Authentication key-chain\n"
-       "name of key-chain\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ipv6_prefix_list_le_cmd_vtysh, 
-       "no ipv6 prefix-list WORD (deny|permit) X:X::X:X/M le <0-128>", 
-       "Negate a command or set its defaults\n"
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
-       "Maximum prefix length to be matched\n"
-       "Maximum prefix length\n")
-
-DEFSH (VTYSH_RIPNGD, ripng_redistribute_bgp_metric_cmd_vtysh, 
-       "redistribute bgp metric <0-16>", 
-       "Redistribute information from another routing protocol\n"
-       "Border Gateway Protocol (BGP)\n"
-       "Metric\n"
-       "Metric value\n")
-
-DEFSH (VTYSH_RIPD, rip_version_cmd_vtysh, 
-       "version <1-2>", 
-       "Set routing protocol version\n"
-       "version\n")
-
-DEFSH (VTYSH_BGPD, ip_extcommunity_list_standard2_cmd_vtysh, 
-       "ip extcommunity-list <1-99> (deny|permit)", 
-       "IP information\n"
-       "Add a extended community list entry\n"
-       "Extended Community list number (standard)\n"
-       "Specify community to reject\n"
-       "Specify community to accept\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_instance_all_ipv4_soft_cmd_vtysh, 
-       "clear ip bgp view WORD * ipv4 (unicast|multicast) soft", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP view\n"
-       "view name\n"
-       "Clear all peers\n"
-       "Address family\n"
-       "Address Family Modifier\n"
-       "Address Family Modifier\n"
-       "Soft reconfig\n")
-
-DEFSH (VTYSH_BGPD, ipv6_bgp_neighbor_received_routes_cmd_vtysh, 
-       "show ipv6 bgp neighbors (A.B.C.D|X:X::X:X) received-routes", 
+DEFSH (VTYSH_BGPD, show_ip_community_list_cmd_vtysh, 
+       "show ip community-list", 
        "Show running system information\n"
-       "IPv6 information\n"
-       "BGP information\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Neighbor to display information about\n"
-       "Display the received routes from neighbor\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_as_vpnv4_soft_cmd_vtysh, 
-       "clear ip bgp <1-65535> vpnv4 unicast soft", 
-       "Reset functions\n"
        "IP information\n"
-       "BGP information\n"
-       "Clear peers with the AS number\n"
-       "Address family\n"
-       "Address Family Modifier\n"
-       "Soft reconfig\n")
+       "List community-list\n")
 
-DEFSH (VTYSH_BGPD, no_set_community_delete_val_cmd_vtysh, 
-       "no set comm-list (<1-99>|<100-199>|WORD) delete", 
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_extended_mask_host_cmd_vtysh, 
+       "no access-list (<100-199>|<2000-2699>) (deny|permit) ip A.B.C.D A.B.C.D host A.B.C.D", 
        "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "set BGP community list (for deletion)\n"
-       "Community-list number (standard)\n"
-       "Communitly-list number (expanded)\n"
-       "Community-list name\n"
-       "Delete matching communities\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_any_cmd_vtysh, 
-       "no access-list WORD (deny|permit) any", 
-       "Negate a command or set its defaults\n"
-       "Add an access list entry\n"
-       "IP zebra access-list name\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Prefix to match. e.g. 10.0.0.0/8\n")
-
-DEFSH (VTYSH_BGPD, neighbor_remove_private_as_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "remove-private-AS", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Remove private AS number from outbound updates\n")
-
-DEFSH (VTYSH_ZEBRA, ipv6_address_cmd_vtysh, 
-       "ipv6 address X:X::X:X/M", 
-       "Interface Internet Protocol config commands\n"
-       "Set the IP address of an interface\n"
-       "IPv6 address (e.g. 3ffe:506::1/48)\n")
-
-DEFSH (VTYSH_BGPD, default_attr_localpref_cmd_vtysh, 
-       "default-attr local-pref NUMBER", 
-       "Set default local preference value\n"
-       "Set default local preference value\n"
-       "Value\n")
-
-DEFSH (VTYSH_BGPD, no_ip_community_list_expanded_cmd_vtysh, 
-       "no ip community-list <100-199> (deny|permit) .LINE", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Add a community list entry\n"
-       "Community list number (expanded)\n"
-       "Specify community to reject\n"
-       "Specify community to accept\n"
-       "An ordered list as a regular-expression\n")
-
-DEFSH (VTYSH_BGPD, no_ip_extcommunity_list_standard_cmd_vtysh, 
-       "no ip extcommunity-list <1-99> (deny|permit) .AA:NN", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Add a extended community list entry\n"
-       "Extended Community list number (standard)\n"
-       "Specify community to reject\n"
-       "Specify community to accept\n"
-       "Extended community attribute in 'rt aa:nn_or_IPaddr:nn' OR 'soo aa:nn_or_IPaddr:nn' format\n")
-
-DEFSH (VTYSH_OSPF6D, interface_area_passive_cmd_vtysh, 
-       "interface IFNAME area A.B.C.D passive", 
-       "Enable routing on an IPv6 interface\n"
-       "Interface name(e.g. ep0)\n"
-       "Set the OSPF6 area ID\n"
-       "OSPF6 area ID in IPv4 address notation\n"
-       "Suppress routing updates on an interface\n"
-      )
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, ip_prefix_list_seq_le_ge_cmd_vtysh, 
-       "ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M le <0-32> ge <0-32>", 
-       "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "sequence number of an entry\n"
-       "Sequence number\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Maximum prefix length to be matched\n"
-       "Maximum prefix length\n"
-       "Minimum prefix length to be matched\n"
-       "Minimum prefix length\n")
-
-DEFSH (VTYSH_BGPD, bgp_bestpath_compare_router_id_cmd_vtysh, 
-       "bgp bestpath compare-routerid", 
-       "BGP specific commands\n"
-       "Change the default bestpath selection\n"
-       "Compare router-id for identical EBGP paths\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_connected_metric_cmd_vtysh, 
-       "no redistribute connected metric", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Connected\n"
-       "Metric\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, match_metric_cmd_vtysh, 
-       "match metric <0-4294967295>", 
-       "Match values from routing table\n"
-       "Match metric of route\n"
-       "Metric value\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_ipv4_in_cmd_vtysh, 
-       "clear ip bgp A.B.C.D ipv4 (unicast|multicast) in", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP neighbor address to clear\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_extended_mask_any_cmd_vtysh, 
-       "access-list (<100-199>|<2000-2699>) (deny|permit) ip A.B.C.D A.B.C.D any", 
        "Add an access list entry\n"
        "IP extended access list\n"
        "IP extended access list (expanded range)\n"
@@ -4531,332 +987,15 @@
        "Any Internet Protocol\n"
        "Source address\n"
        "Source wildcard bits\n"
-       "Any destination host\n")
+       "A single destination host\n"
+       "Destination address\n")
 
-DEFSH (VTYSH_BGPD, clear_bgp_all_in_prefix_filter_cmd_vtysh, 
-       "clear bgp * in prefix-filter", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear all peers\n"
-       "Soft reconfig inbound update\n"
-       "Push out prefix-list ORF and do inbound soft reconfig\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_ge_cmd_vtysh, 
-       "no ip prefix-list WORD (deny|permit) A.B.C.D/M ge <0-32>", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Minimum prefix length to be matched\n"
-       "Minimum prefix length\n")
-
-DEFSH (VTYSH_ZEBRA, show_ipv6_route_addr_cmd_vtysh, 
-       "show ipv6 route X:X::X:X", 
-       "Show running system information\n"
-       "IP information\n"
-       "IPv6 routing table\n"
-       "IPv6 Address\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_connected_routemap_cmd_vtysh, 
-       "no redistribute connected route-map WORD", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Connected\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_BGPD, ipv6_mbgp_neighbor_advertised_route_cmd_vtysh, 
-       "show ipv6 mbgp neighbors (A.B.C.D|X:X::X:X) advertised-routes", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "MBGP information\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Neighbor to display information about\n"
-       "Display the routes advertised to a BGP neighbor\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_ipv6_community_all_cmd_vtysh, 
-       "show bgp ipv6 community", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Display routes matching the communities\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_instance_all_soft_in_cmd_vtysh, 
-       "clear ip bgp view WORD * soft in", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP view\n"
-       "view name\n"
-       "Clear all peers\n"
-       "Soft reconfig\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_BGPD, bgp_network_mask_backdoor_cmd_vtysh, 
-       "network A.B.C.D mask A.B.C.D backdoor", 
-       "Specify a network to announce via BGP\n"
-       "Network number\n"
-       "Network mask\n"
-       "Network mask\n"
-       "Specify a BGP backdoor route\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_bestpath_med3_cmd_vtysh, 
-       "no bgp bestpath med missing-as-worst confed", 
-       "Negate a command or set its defaults\n"
-       "BGP specific commands\n"
-       "Change the default bestpath selection\n"
-       "MED attribute\n"
-       "Treat missing MED as the least preferred one\n"
-       "Compare MED among confederation paths\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ipv6_prefix_list_description_cmd_vtysh, 
-       "no ipv6 prefix-list WORD description", 
-       "Negate a command or set its defaults\n"
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "Prefix-list specific description\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_as_out_cmd_vtysh, 
-       "clear bgp ipv6 <1-65535> out", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "Clear peers with the AS number\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_route_cmd_vtysh, 
-       "show ip bgp ipv4 (unicast|multicast) A.B.C.D", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Network in the BGP routing table to display\n")
-
-DEFSH (VTYSH_OSPFD, ospf_cost_cmd_vtysh, 
-       "ospf cost <1-65535>", 
-       "OSPF interface commands\n"
-       "Interface cost\n"
-       "Cost")
-
-DEFSH (VTYSH_BGPD, neighbor_attr_unchanged8_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged next-hop as-path med", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "BGP attribute is propagated unchanged to this neighbor\n"
-       "Nexthop attribute\n"
-       "As-path attribute\n"
-       "Med attribute\n")
-
-DEFSH (VTYSH_BGPD, no_set_origin_cmd_vtysh, 
-       "no set origin", 
-       "Negate a command or set its defaults\n"
+DEFSH (VTYSH_BGPD, set_ecommunity_soo_cmd_vtysh, 
+       "set extcommunity soo .ASN:nn_or_IP-address:nn", 
        "Set values in destination routing protocol\n"
-       "BGP origin code\n")
-
-DEFSH (VTYSH_ZEBRA, ip_route_distance_cmd_vtysh, 
-       "ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) <1-255>", 
-       "IP information\n"
-       "Establish static routes\n"
-       "IP destination prefix (e.g. 10.0.0.0/8)\n"
-       "IP gateway address\n"
-       "IP gateway interface name\n"
-       "Null interface\n"
-       "Distance value for this route\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_community_list_cmd_vtysh, 
-       "show ip bgp ipv4 (unicast|multicast) community-list WORD", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Display routes matching the community-list\n"
-       "community-list name\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_summary_cmd_vtysh, 
-       "show bgp summary", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Summary of BGP neighbor status\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_static_metric_val_cmd_vtysh, 
-       "no redistribute static metric <0-16>", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Static routes\n"
-       "Metric\n"
-       "Metric value\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_description_val_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "description .LINE", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Neighbor specific description\n"
-       "Up to 80 characters describing this neighbor\n")
-
-DEFSH (VTYSH_OSPF6D, ipv6_ospf6_hellointerval_cmd_vtysh, 
-       "ipv6 ospf6 hello-interval HELLO_INTERVAL", 
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Time between HELLO packets\n"
-       "<1-65535> Seconds\n"
-       )
-
-DEFSH (VTYSH_BGPD, show_bgp_instance_ipv6_summary_cmd_vtysh, 
-       "show bgp view WORD ipv6 summary", 
-       "Show running system information\n"
-       "BGP information\n"
-       "BGP view\n"
-       "View name\n"
-       "Address family\n"
-       "Summary of BGP neighbor status\n")
-
-DEFSH (VTYSH_OSPFD|VTYSH_BGPD, match_ip_address_cmd_vtysh, 
-       "match ip address (<1-199>|<1300-2699>|WORD)", 
-       "Match values from routing table\n"
-       "IP information\n"
-       "Match address of route\n"
-       "IP access-list number\n"
-       "IP access-list number (expanded range)\n"
-       "IP Access-list name\n")
-
-DEFSH (VTYSH_BGPD, no_aggregate_address_summary_as_set_cmd_vtysh, 
-       "no aggregate-address A.B.C.D/M summary-only as-set", 
-       "Negate a command or set its defaults\n"
-       "Configure BGP aggregate entries\n"
-       "Aggregate prefix\n"
-       "Filter more specific routes from updates\n"
-       "Generate AS set path information\n")
-
-DEFSH (VTYSH_RIPD, no_rip_network_cmd_vtysh, 
-       "no network (A.B.C.D/M|WORD)", 
-       "Negate a command or set its defaults\n"
-       "Enable routing on an IP network\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Interface name\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ipv6_prefix_list_prefix_cmd_vtysh, 
-       "show ipv6 prefix-list WORD X:X::X:X/M", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_bgp_prefix_list_cmd_vtysh, 
-       "show ipv6 bgp prefix-list WORD", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "BGP information\n"
-       "Display routes matching the prefix-list\n"
-       "IPv6 prefix-list name\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, ipv6_prefix_list_ge_cmd_vtysh, 
-       "ipv6 prefix-list WORD (deny|permit) X:X::X:X/M ge <0-128>", 
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
-       "Minimum prefix length to be matched\n"
-       "Minimum prefix length\n")
-
-DEFSH (VTYSH_BGPD, set_aggregator_as_cmd_vtysh, 
-       "set aggregator as <1-65535> A.B.C.D", 
-       "Set values in destination routing protocol\n"
-       "BGP aggregator attribute\n"
-       "AS number of aggregator\n"
-       "AS number\n"
-       "IP address of aggregator\n")
-
-DEFSH (VTYSH_OSPFD, ospf_distance_ospf_inter_intra_external_cmd_vtysh, 
-       "distance ospf inter-area <1-255> intra-area <1-255> external <1-255>", 
-       "Define an administrative distance\n"
-       "OSPF Administrative distance\n"
-       "Inter-area routes\n"
-       "Distance for inter-area routes\n"
-       "Intra-area routes\n"
-       "Distance for intra-area routes\n"
-       "External routes\n"
-       "Distance for external routes\n")
-
-DEFSH (VTYSH_RIPD, no_ip_rip_authentication_key_chain2_cmd_vtysh, 
-       "no ip rip authentication key-chain LINE", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Routing Information Protocol\n"
-       "Authentication control\n"
-       "Authentication key-chain\n"
-       "name of key-chain\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_as_soft_in_cmd_vtysh, 
-       "clear ip bgp <1-65535> soft in", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear peers with the AS number\n"
-       "Soft reconfig\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_OSPFD, no_ospf_authentication_key_cmd_vtysh, 
-       "no ospf authentication-key", 
-       "Negate a command or set its defaults\n"
-       "OSPF interface commands\n"
-       "Authentication password (key)\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_ipv6_prefix_cmd_vtysh, 
-       "show bgp ipv6 X:X::X:X/M", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Address family\n"
-       "IPv6 prefix <network>/<length>\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_attr_unchanged7_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged next-hop med as-path", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "BGP attribute is propagated unchanged to this neighbor\n"
-       "Nexthop attribute\n"
-       "Med attribute\n"
-       "As-path attribute\n")
-
-DEFSH (VTYSH_BGPD, neighbor_attr_unchanged3_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged next-hop (as-path|med)", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "BGP attribute is propagated unchanged to this neighbor\n"
-       "Nexthop attribute\n"
-       "As-path attribute\n"
-       "Med attribute\n")
-
-DEFSH (VTYSH_BGPD, bgp_bestpath_med2_cmd_vtysh, 
-       "bgp bestpath med confed missing-as-worst", 
-       "BGP specific commands\n"
-       "Change the default bestpath selection\n"
-       "MED attribute\n"
-       "Compare MED among confederation paths\n"
-       "Treat missing MED as the least preferred one\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_standard_nomask_cmd_vtysh, 
-       "no access-list (<1-99>|<1300-1999>) (deny|permit) A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "Add an access list entry\n"
-       "IP standard access list\n"
-       "IP standard access list (expanded range)\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Address to match\n")
+       "BGP extended community attribute\n"
+       "Site-of-Origin extended community\n"
+       "VPN extended community\n")
 
 DEFSH (VTYSH_BGPD, show_bgp_ipv6_community4_exact_cmd_vtysh, 
        "show bgp ipv6 community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
@@ -4882,120 +1021,445 @@
        "Do not export to next AS (well-known community)\n"
        "Exact match of the communities")
 
-DEFSH (VTYSH_OSPFD, ospf_redistribute_source_metric_type_cmd_vtysh, 
-       "redistribute (kernel|connected|static|rip|bgp) metric <0-16777214> metric-type (1|2)", 
-       "Redistribute information from another routing protocol\n"
-       "Kernel routes\n"
-       "Connected\n"
-       "Static routes\n"
-       "Routing Information Protocol (RIP)\n"
-       "Border Gateway Protocol (BGP)\n"
-       "Metric for redistributed routes\n"
-       "OSPF default metric\n"
-       "OSPF exterior metric type for redistributed routes\n"
-       "Set OSPF External Type 1 metrics\n"
-       "Set OSPF External Type 2 metrics\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_enforce_first_as_cmd_vtysh, 
-       "no bgp enforce-first-as", 
+DEFSH (VTYSH_BGPD, no_set_originator_id_cmd_vtysh, 
+       "no set originator-id", 
        "Negate a command or set its defaults\n"
-       "BGP information\n"
-       "Enforce the first AS for EBGP routes\n")
+       "Set values in destination routing protocol\n"
+       "BGP originator ID attribute\n")
 
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_standard_host_cmd_vtysh, 
-       "access-list (<1-99>|<1300-1999>) (deny|permit) host A.B.C.D", 
-       "Add an access list entry\n"
-       "IP standard access list\n"
-       "IP standard access list (expanded range)\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "A single host address\n"
-       "Address to match\n")
-
-DEFSH (VTYSH_BGPD, no_aggregate_address_mask_summary_only_cmd_vtysh, 
-       "no aggregate-address A.B.C.D A.B.C.D summary-only", 
-       "Negate a command or set its defaults\n"
-       "Configure BGP aggregate entries\n"
-       "Aggregate address\n"
-       "Aggregate mask\n"
-       "Filter more specific routes from updates\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ip_prefix_list_detail_cmd_vtysh, 
-       "show ip prefix-list detail", 
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ip_prefix_list_prefix_cmd_vtysh, 
+       "show ip prefix-list WORD A.B.C.D/M", 
        "Show running system information\n"
        "IP information\n"
        "Build a prefix list\n"
-       "Detail of prefix lists\n")
+       "Name of a prefix list\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n")
 
-DEFSH (VTYSH_RIPNGD, debug_ripng_packet_detail_cmd_vtysh, 
-       "debug ripng packet (recv|send) detail", 
-       "Debugging functions (see also 'undebug')\n"
-       "RIPng configuration\n"
-       "Debug option set for ripng packet\n"
-       "Debug option set for receive packet\n"
-       "Debug option set for send packet\n"
-       "Debug option set detaied information\n")
+DEFSH (VTYSH_RIPD, send_lifetime_infinite_day_month_cmd_vtysh, 
+       "send-lifetime HH:MM:SS <1-31> MONTH <1993-2035> infinite", 
+       "Set send lifetime of the key\n"
+       "Time to start\n"
+       "Day of th month to start\n"
+       "Month of the year to start\n"
+       "Year to start\n"
+       "Never expires")
 
-DEFSH (VTYSH_OSPFD, no_ip_ospf_priority_cmd_vtysh, 
-       "no ip ospf priority", 
-       "Negate a command or set its defaults\n"
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Router priority\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_unsuppress_map_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "unsuppress-map WORD", 
+DEFSH (VTYSH_BGPD, no_neighbor_description_val_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "description .LINE", 
        "Negate a command or set its defaults\n"
        "Specify neighbor router\n"
        "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Route-map to selectively unsuppress suppressed routes\n"
-       "Name of route map\n")
+       "Neighbor specific description\n"
+       "Up to 80 characters describing this neighbor\n")
 
-DEFSH (VTYSH_BGPD, old_no_ipv6_aggregate_address_cmd_vtysh, 
-       "no ipv6 bgp aggregate-address X:X::X:X/M", 
+DEFSH (VTYSH_BGPD, no_neighbor_default_originate_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "default-originate", 
        "Negate a command or set its defaults\n"
-       "IPv6 information\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Originate default route to this neighbor\n")
+
+DEFSH (VTYSH_RIPD, no_rip_passive_interface_cmd_vtysh, 
+       "no passive-interface IFNAME", 
+       "Negate a command or set its defaults\n"
+       "Suppress routing updates on an interface\n"
+       "Interface name\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_remark_arg_cmd_vtysh, 
+       "no access-list (<1-99>|<100-199>|<1300-1999>|<2000-2699>|WORD) remark .LINE", 
+       "Negate a command or set its defaults\n"
+       "Add an access list entry\n"
+       "IP standard access list\n"
+       "IP extended access list\n"
+       "IP standard access list (expanded range)\n"
+       "IP extended access list (expanded range)\n"
+       "IP zebra access-list\n"
+       "Access list entry comment\n"
+       "Comment up to 100 characters\n")
+
+DEFSH (VTYSH_BGPD, aggregate_address_as_set_cmd_vtysh, 
+       "aggregate-address A.B.C.D/M as-set", 
+       "Configure BGP aggregate entries\n"
+       "Aggregate prefix\n"
+       "Generate AS set path information\n")
+
+DEFSH (VTYSH_OSPF6D, interface_area_cmd_vtysh, 
+       "interface IFNAME area A.B.C.D", 
+       "Enable routing on an IPv6 interface\n"
+       "Interface name(e.g. ep0)\n"
+       "Set the OSPF6 area ID\n"
+       "OSPF6 area ID in IPv4 address notation\n"
+      )
+
+DEFSH (VTYSH_BGPD, no_neighbor_send_community_type_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "send-community (both|extended|standard)", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Send Community attribute to this neighbor\n"
+       "Send Standard and Extended Community attributes\n"
+       "Send Extended Community attributes\n"
+       "Send Standard Community attributes\n")
+
+DEFSH (VTYSH_OSPFD, ospf_hello_interval_cmd_vtysh, 
+       "ospf hello-interval <1-65535>", 
+       "OSPF interface commands\n"
+       "Time between HELLO packets\n"
+       "Seconds\n")
+
+DEFSH (VTYSH_OSPFD, show_ip_ospf_neighbor_all_cmd_vtysh, 
+       "show ip ospf neighbor all", 
+       "Show running system information\n"
+       "IP information\n"
+       "OSPF information\n"
+       "Neighbor list\n"
+       "include down status neighbor\n")
+
+DEFSH (VTYSH_OSPF6D, ipv6_ospf6_cost_cmd_vtysh, 
+       "ipv6 ospf6 cost COST", 
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Interface cost\n"
+       "<1-65535> Cost\n"
+       )
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_external_out_cmd_vtysh, 
+       "clear ip bgp external out", 
+       "Reset functions\n"
+       "IP information\n"
        "BGP information\n"
+       "Clear all external peers\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD, match_interface_cmd_vtysh, 
+       "match interface WORD", 
+       "Match values from routing table\n"
+       "Match first hop interface of route\n"
+       "Interface name\n")
+
+DEFSH (VTYSH_ZEBRA, debug_zebra_kernel_cmd_vtysh, 
+       "debug zebra kernel", 
+       "Debugging functions (see also 'undebug')\n"
+       "Zebra configuration\n"
+       "Debug option set for zebra between kernel interface\n")
+
+DEFSH (VTYSH_BGPD, no_aggregate_address_cmd_vtysh, 
+       "no aggregate-address A.B.C.D/M", 
+       "Negate a command or set its defaults\n"
        "Configure BGP aggregate entries\n"
        "Aggregate prefix\n")
 
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_seq_le_cmd_vtysh, 
-       "no ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M le <0-32>", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "sequence number of an entry\n"
-       "Sequence number\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Maximum prefix length to be matched\n"
-       "Maximum prefix length\n")
+DEFSH (VTYSH_ZEBRA, show_ipv6_forwarding_cmd_vtysh, 
+       "show ipv6 forwarding", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "Forwarding status\n")
 
-DEFSH (VTYSH_BGPD, no_neighbor_route_map_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "route-map WORD (in|out)", 
+DEFSH (VTYSH_OSPF6D, ipv6_ospf6_instance_cmd_vtysh, 
+       "ipv6 ospf6 instance-id INSTANCE", 
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Instance ID\n"
+       "<0-255> Instance ID\n"
+       )
+
+DEFSH (VTYSH_BGPD, bgp_redistribute_ipv4_rmap_metric_cmd_vtysh, 
+       "redistribute (connected|kernel|ospf|rip|static) route-map WORD metric <0-4294967295>", 
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Kernel routes\n"
+       "Open Shurtest Path First (OSPF)\n"
+       "Routing Information Protocol (RIP)\n"
+       "Static routes\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n"
+       "Metric for redistributed routes\n"
+       "Default metric\n")
+
+DEFSH (VTYSH_BGPD, no_aggregate_address_as_set_summary_cmd_vtysh, 
+       "no aggregate-address A.B.C.D/M as-set summary-only", 
+       "Negate a command or set its defaults\n"
+       "Configure BGP aggregate entries\n"
+       "Aggregate prefix\n"
+       "Generate AS set path information\n"
+       "Filter more specific routes from updates\n")
+
+DEFSH (VTYSH_OSPFD, ip_ospf_authentication_args_addr_cmd_vtysh, 
+       "ip ospf authentication (null|message-digest) A.B.C.D", 
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Enable authentication on this interface\n"
+       "Use null authentication\n"
+       "Use message-digest authentication\n"
+       "Address of interface")
+
+DEFSH (VTYSH_BGPD, no_neighbor_capability_dynamic_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "capability dynamic", 
        "Negate a command or set its defaults\n"
        "Specify neighbor router\n"
        "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Apply route map to neighbor\n"
-       "Name of route map\n"
-       "Apply map to incoming routes\n"
-       "Apply map to outbound routes\n")
+       "Advertise capability to the peer\n"
+       "Advertise dynamic capability to this neighbor\n")
 
-DEFSH (VTYSH_OSPF6D, ipv6_ospf6_advertise_prefix_list_cmd_vtysh, 
-       "ipv6 ospf6 advertise prefix-list WORD", 
+DEFSH (VTYSH_OSPFD, ospf_retransmit_interval_cmd_vtysh, 
+       "ospf retransmit-interval <3-65535>", 
+       "OSPF interface commands\n"
+       "Time between retransmitting lost link state advertisements\n"
+       "Seconds\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_group_soft_in_cmd_vtysh, 
+       "clear bgp ipv6 peer-group WORD soft in", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear all members of peer-group\n"
+       "BGP peer-group name\n"
+       "Soft reconfig\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_BGPD, bgp_confederation_identifier_cmd_vtysh, 
+       "bgp confederation identifier <1-65535>", 
+       "BGP specific commands\n"
+       "AS confederation parameters\n"
+       "AS number\n"
+       "Set routing domain confederation AS\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_as_vpnv4_soft_cmd_vtysh, 
+       "clear ip bgp <1-65535> vpnv4 unicast soft", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear peers with the AS number\n"
+       "Address family\n"
+       "Address Family Modifier\n"
+       "Soft reconfig\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_group_in_prefix_filter_cmd_vtysh, 
+       "clear bgp ipv6 peer-group WORD in prefix-filter", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear all members of peer-group\n"
+       "BGP peer-group name\n"
+       "Soft reconfig inbound update\n"
+       "Push out prefix-list ORF and do inbound soft reconfig\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_attr_unchanged4_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged med (as-path|next-hop)", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "BGP attribute is propagated unchanged to this neighbor\n"
+       "Med attribute\n"
+       "As-path attribute\n"
+       "Nexthop attribute\n")
+
+DEFSH (VTYSH_OSPFD, no_debug_ospf_nsm_cmd_vtysh, 
+       "no debug ospf nsm", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
+       "OSPF information\n"
+       "OSPF Neighbor State Machine")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_instance_all_ipv4_soft_out_cmd_vtysh, 
+       "clear ip bgp view WORD * ipv4 (unicast|multicast) soft out", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "BGP view\n"
+       "view name\n"
+       "Clear all peers\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_ZEBRA, ip_route_mask_cmd_vtysh, 
+       "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0)", 
+       "IP information\n"
+       "Establish static routes\n"
+       "IP destination prefix\n"
+       "IP destination prefix mask\n"
+       "IP gateway address\n"
+       "IP gateway interface name\n"
+       "Null interface\n")
+
+DEFSH (VTYSH_BGPD, no_match_ipv6_address_cmd_vtysh, 
+       "no match ipv6 address WORD", 
+       "Negate a command or set its defaults\n"
+       "Match values from routing table\n"
+       "IPv6 information\n"
+       "Match IPv6 address of route\n"
+       "IPv6 access-list name\n")
+
+DEFSH (VTYSH_BGPD, bgp_damp_set_cmd_vtysh, 
+       "bgp dampening <1-45> <1-20000> <1-20000> <1-255>", 
+       "BGP Specific commands\n"
+       "Enable route-flap dampening\n"
+       "Half-life time for the penalty\n"
+       "Value to start reusing a route\n"
+       "Value to start suppressing a route\n"
+       "Maximum duration to suppress a stable route\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_timers_arg_cmd_vtysh, 
+       "no timers bgp <0-65535> <0-65535>", 
+       "Negate a command or set its defaults\n"
+       "Adjust routing timers\n"
+       "BGP timers\n"
+       "Keepalive interval\n"
+       "Holdtime\n")
+
+DEFSH (VTYSH_OSPF6D, no_debug_ospf6_damp_cmd_vtysh, 
+       "no debug ospf6 damp", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Flap-dampening information\n"
+      )
+
+DEFSH (VTYSH_RIPD, send_lifetime_month_day_month_day_cmd_vtysh, 
+       "send-lifetime HH:MM:SS MONTH <1-31> <1993-2035> HH:MM:SS MONTH <1-31> <1993-2035>", 
+       "Set send lifetime of the key\n"
+       "Time to start\n"
+       "Month of the year to start\n"
+       "Day of th month to start\n"
+       "Year to start\n"
+       "Time to expire\n"
+       "Month of the year to expire\n"
+       "Day of th month to expire\n"
+       "Year to expire\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_community4_exact_cmd_vtysh, 
+       "show bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "Exact match of the communities")
+
+DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_neighborlist_cmd_vtysh, 
+       "show ipv6 ospf6 (summary-list|request-list|retrans-list|dbdesc-list)", 
+       "Show running system information\n"
        "IPv6 Information\n"
        "Open Shortest Path First (OSPF) for IPv6\n"
-       "Advertising options\n"
-       "Filter prefix using prefix-list\n"
-       "Prefix list name\n"
+       "Link State summary list\n"
+       "Link State request list\n"
+       "Link State retransmission list\n"
+       "Link State Description list (Used to retrans DbDesc)\n"
        )
 
-DEFSH (VTYSH_OSPFD, no_area_vlink_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D", 
+DEFSH (VTYSH_BGPD, no_neighbor_maximum_prefix_val_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "maximum-prefix <1-4294967295>", 
        "Negate a command or set its defaults\n"
-       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n")
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Maximum number of prefix accept from this peer\n"
+       "maximum no. of prefix limit\n")
+
+DEFSH (VTYSH_OSPFD, ospf_distance_ospf_intra_external_inter_cmd_vtysh, 
+       "distance ospf intra-area <1-255> external <1-255> inter-area <1-255>", 
+       "Define an administrative distance\n"
+       "OSPF Administrative distance\n"
+       "Intra-area routes\n"
+       "Distance for intra-area routes\n"
+       "External routes\n"
+       "Distance for external routes\n"
+       "Inter-area routes\n"
+       "Distance for inter-area routes\n")
+
+DEFSH (VTYSH_BGPD, no_set_atomic_aggregate_cmd_vtysh, 
+       "no set atomic-aggregate", 
+       "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "BGP atomic aggregate attribute\n" )
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_external_cmd_vtysh, 
+       "clear bgp ipv6 external", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear all external peers\n")
+
+DEFSH (VTYSH_OSPFD, network_area_cmd_vtysh, 
+       "network A.B.C.D/M area (A.B.C.D|<0-4294967295>)", 
+       "Enable routing on an IP network\n"
+       "OSPF network prefix\n"
+       "Set the OSPF area ID\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n")
+
+DEFSH (VTYSH_OSPFD, area_vlink_authtype_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
+       "(authentication|)", 
+       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
+       "Enable authentication on this virtual link\n" "dummy string \n")
+
+DEFSH (VTYSH_BGPD, bgp_bestpath_aspath_ignore_cmd_vtysh, 
+       "bgp bestpath as-path ignore", 
+       "BGP specific commands\n"
+       "Change the default bestpath selection\n"
+       "AS-path attribute\n"
+       "Ignore as-path length in selecting a route\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_dampening_address_cmd_vtysh, 
+       "clear ip bgp dampening A.B.C.D", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear route flap dampening information\n"
+       "Network to clear damping information\n")
+
+DEFSH (VTYSH_RIPNGD, ripng_redistribute_kernel_metric_cmd_vtysh, 
+       "redistribute kernel metric <0-16>", 
+       "Redistribute information from another routing protocol\n"
+       "Kernel routes\n"
+       "Metric\n"
+       "Metric value\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_extended_any_any_cmd_vtysh, 
+       "no access-list (<100-199>|<2000-2699>) (deny|permit) ip any any", 
+       "Negate a command or set its defaults\n"
+       "Add an access list entry\n"
+       "IP extended access list\n"
+       "IP extended access list (expanded range)\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Any Internet Protocol\n"
+       "Any source host\n"
+       "Any destination host\n")
+
+DEFSH (VTYSH_BGPD, bgp_bestpath_med_cmd_vtysh, 
+       "bgp bestpath med (confed|missing-as-worst)", 
+       "BGP specific commands\n"
+       "Change the default bestpath selection\n"
+       "MED attribute\n"
+       "Compare MED among confederation paths\n"
+       "Treat missing MED as the least preferred one\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_community_all_cmd_vtysh, 
+       "show ip bgp ipv4 (unicast|multicast) community", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Display routes matching the communities\n")
 
 DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_in_prefix_filter_cmd_vtysh, 
        "clear ip bgp peer-group WORD in prefix-filter", 
@@ -5007,53 +1471,604 @@
        "Soft reconfig inbound update\n"
        "Push out prefix-list ORF and do inbound soft reconfig\n")
 
-DEFSH (VTYSH_BGPD, show_bgp_prefix_longer_cmd_vtysh, 
-       "show bgp X:X::X:X/M longer-prefixes", 
+DEFSH (VTYSH_BGPD, show_ipv6_mbgp_cmd_vtysh, 
+       "show ipv6 mbgp", 
+       "Show running system information\n"
+       "IP information\n"
+       "MBGP information\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_unsuppress_map_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "unsuppress-map WORD", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Route-map to selectively unsuppress suppressed routes\n"
+       "Name of route map\n")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_ospf6_routemap_cmd_vtysh, 
+       "no redistribute ospf6 route-map WORD", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "IPv6 Open Shortest Path First (OSPFv3)\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_OSPFD, no_area_default_cost_cmd_vtysh, 
+       "no area (A.B.C.D|<0-4294967295>) default-cost <0-16777215>", 
+       "Negate a command or set its defaults\n"
+       "OSPF area parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "Set the summary-default cost of a NSSA or stub area\n"
+       "Stub's advertised default summary cost\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ip_prefix_list_summary_cmd_vtysh, 
+       "show ip prefix-list summary", 
+       "Show running system information\n"
+       "IP information\n"
+       "Build a prefix list\n"
+       "Summary of prefix lists\n")
+
+DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_database_type_id_cmd_vtysh, 
+       "show ipv6 ospf6 database (router|network|as-external|intra-prefix|inter-prefix|inter-router|link|*|HEX) (A.B.C.D|*|dump|detail)", 
+       "Show running system information\n"
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "LSA Database\n"
+       "Router-LSA\n"
+       "Network-LSA\n"
+       "AS-External-LSA\n"
+       "Intra-Area-Prefix-LSA\n"
+       "Inter-Area-Router-LSA\n"
+       "Inter-Area-Prefix-LSA\n"
+       "Link-LSA\n"
+       "All LS Type\n"
+       "Specify LS Type by Hex\n"
+       "Link State ID\n"
+       "All Link State ID\n"
+       "Dump raw LSA data in Hex\n"
+       "show detail of LSAs\n"
+       )
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, show_ipv6_prefix_list_summary_name_cmd_vtysh, 
+       "show ipv6 prefix-list summary WORD", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Summary of prefix lists\n"
+       "Name of a prefix list\n")
+
+DEFSH (VTYSH_BGPD, set_aggregator_as_cmd_vtysh, 
+       "set aggregator as <1-65535> A.B.C.D", 
+       "Set values in destination routing protocol\n"
+       "BGP aggregator attribute\n"
+       "AS number of aggregator\n"
+       "AS number\n"
+       "IP address of aggregator\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, match_ip_address_prefix_list_cmd_vtysh, 
+       "match ip address prefix-list WORD", 
+       "Match values from routing table\n"
+       "IP information\n"
+       "Match address of route\n"
+       "Match entries of prefix-lists\n"
+       "IP prefix-list name\n")
+
+DEFSH (VTYSH_OSPFD, area_stub_no_summary_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) stub no-summary", 
+       "OSPF stub parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "Configure OSPF area as stub\n"
+       "Do not inject inter-area routes into stub\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_network_mask_backdoor_cmd_vtysh, 
+       "no network A.B.C.D mask A.B.C.D backdoor", 
+       "Negate a command or set its defaults\n"
+       "Specify a network to announce via BGP\n"
+       "Network number\n"
+       "Network mask\n"
+       "Network mask\n"
+       "Specify a BGP backdoor route\n")
+
+DEFSH (VTYSH_BGPD, no_match_origin_val_cmd_vtysh, 
+       "no match origin (egp|igp|incomplete)", 
+       "Negate a command or set its defaults\n"
+       "Match values from routing table\n"
+       "BGP origin code\n"
+       "remote EGP\n"
+       "local IGP\n"
+       "unknown heritage\n")
+
+DEFSH (VTYSH_RIPD, rip_network_cmd_vtysh, 
+       "network (A.B.C.D/M|WORD)", 
+       "Enable routing on an IP network\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Interface name\n")
+
+DEFSH (VTYSH_OSPFD, ip_ospf_cost_cmd_vtysh, 
+       "ip ospf cost <1-65535>", 
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Interface cost\n"
+       "Cost")
+
+DEFSH (VTYSH_BGPD, ipv6_aggregate_address_cmd_vtysh, 
+       "aggregate-address X:X::X:X/M", 
+       "Configure BGP aggregate entries\n"
+       "Aggregate prefix\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_as_cmd_vtysh, 
+       "clear bgp <1-65535>", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear peers with the AS number\n")
+
+DEFSH (VTYSH_OSPFD, ospf_distance_ospf_external_intra_inter_cmd_vtysh, 
+       "distance ospf external <1-255> intra-area <1-255> inter-area <1-255>", 
+       "Define an administrative distance\n"
+       "OSPF Administrative distance\n"
+       "External routes\n"
+       "Distance for external routes\n"
+       "Intra-area routes\n"
+       "Distance for intra-area routes\n"
+       "Inter-area routes\n"
+       "Distance for inter-area routes\n")
+
+DEFSH (VTYSH_OSPFD, ospf_cost_cmd_vtysh, 
+       "ospf cost <1-65535>", 
+       "OSPF interface commands\n"
+       "Interface cost\n"
+       "Cost")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, no_ipv6_prefix_list_seq_cmd_vtysh, 
+       "no ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) (X:X::X:X/M|any)", 
+       "Negate a command or set its defaults\n"
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "sequence number of an entry\n"
+       "Sequence number\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
+       "Any prefix match.  Same as \"::0/0 le 128\"\n")
+
+DEFSH (VTYSH_OSPFD, ospf_default_information_originate_type_metric_routemap_cmd_vtysh, 
+       "default-information originate metric-type (1|2) metric <0-16777214> route-map WORD", 
+       "Control distribution of default information\n"
+       "Distribute a default route\n"
+       "OSPF metric type for default routes\n"
+       "Set OSPF External Type 1 metrics\n"
+       "Set OSPF External Type 2 metrics\n"
+       "OSPF default metric\n"
+       "OSPF metric\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_mbgp_prefix_cmd_vtysh, 
+       "show ipv6 mbgp X:X::X:X/M", 
+       "Show running system information\n"
+       "IP information\n"
+       "MBGP information\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n")
+
+DEFSH (VTYSH_RIPD, no_key_cmd_vtysh, 
+       "no key <0-2147483647>", 
+       "Negate a command or set its defaults\n"
+       "Delete a key\n"
+       "Key identifier number\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_ge_cmd_vtysh, 
+       "no ip prefix-list WORD (deny|permit) A.B.C.D/M ge <0-32>", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Minimum prefix length to be matched\n"
+       "Minimum prefix length\n")
+
+DEFSH (VTYSH_BGPD, neighbor_attr_unchanged4_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged med (as-path|next-hop)", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "BGP attribute is propagated unchanged to this neighbor\n"
+       "Med attribute\n"
+       "As-path attribute\n"
+       "Nexthop attribute\n")
+
+DEFSH (VTYSH_RIPNGD, no_debug_ripng_zebra_cmd_vtysh, 
+       "no debug ripng zebra", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
+       "RIPng configuration\n"
+       "Debug option set for ripng and zebra communication\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_weight_val_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "weight <0-65535>", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Set default weight for routes from this neighbor\n"
+       "default weight\n")
+
+DEFSH (VTYSH_RIPD, no_rip_default_information_originate_cmd_vtysh, 
+       "no default-information originate", 
+       "Negate a command or set its defaults\n"
+       "Control distribution of default route\n"
+       "Distribute a default route\n")
+
+DEFSH (VTYSH_BGPD, match_community_exact_cmd_vtysh, 
+       "match community (<1-99>|<100-199>|WORD) exact-match", 
+       "Match values from routing table\n"
+       "Match BGP community list\n"
+       "Community-list number (standard)\n"
+       "Community-list number (expanded)\n"
+       "Community-list name\n"
+       "Do exact matching of communities\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_as_in_cmd_vtysh, 
+       "clear bgp <1-65535> in", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear peers with the AS number\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_extended_any_host_cmd_vtysh, 
+       "no access-list (<100-199>|<2000-2699>) (deny|permit) ip any host A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "Add an access list entry\n"
+       "IP extended access list\n"
+       "IP extended access list (expanded range)\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Any Internet Protocol\n"
+       "Any source host\n"
+       "A single destination host\n"
+       "Destination address\n")
+
+DEFSH (VTYSH_BGPD, ipv6_bgp_network_cmd_vtysh, 
+       "network X:X::X:X/M", 
+       "Specify a network to announce via BGP\n"
+       "IPv6 prefix <network>/<length>\n")
+
+DEFSH (VTYSH_ZEBRA, ip_irdp_preference_cmd_vtysh, 
+
+       "ip irdp preference <0-2147483647>", 
+       "IP information\n"
+       "ICMP Router discovery on this interface\n"
+       "Set default preference level for this interface\n"
+       "Preference level\n")
+
+DEFSH (VTYSH_BGPD, bgp_fast_external_failover_cmd_vtysh, 
+       "bgp fast-external-failover", 
+       "BGP information\n"
+       "Immediately reset session if a link to a directly connected external peer goes down\n")
+
+DEFSH (VTYSH_ZEBRA, ip_route_distance_cmd_vtysh, 
+       "ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) <1-255>", 
+       "IP information\n"
+       "Establish static routes\n"
+       "IP destination prefix (e.g. 10.0.0.0/8)\n"
+       "IP gateway address\n"
+       "IP gateway interface name\n"
+       "Null interface\n"
+       "Distance value for this route\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_mbgp_prefix_list_cmd_vtysh, 
+       "show ipv6 mbgp prefix-list WORD", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "MBGP information\n"
+       "Display routes matching the prefix-list\n"
+       "IPv6 prefix-list name\n")
+
+DEFSH (VTYSH_BGPD, bgp_network_mask_cmd_vtysh, 
+       "network A.B.C.D mask A.B.C.D", 
+       "Specify a network to announce via BGP\n"
+       "Network number\n"
+       "Network mask\n"
+       "Network mask\n")
+
+DEFSH (VTYSH_OSPFD, area_vlink_authtype_md5_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
+       "(authentication|) "
+       "(message-digest-key|) <1-255> md5 KEY", 
+       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
+       "Enable authentication on this virtual link\n" "dummy string \n"
+       "Message digest authentication password (key)\n" "dummy string \n" "Key ID\n" "Use MD5 algorithm\n" "The OSPF password (key)")
+
+DEFSH (VTYSH_BGPD, show_bgp_cmd_vtysh, 
+       "show bgp", 
+       "Show running system information\n"
+       "BGP information\n")
+
+DEFSH (VTYSH_BGPD, bgp_network_mask_backdoor_cmd_vtysh, 
+       "network A.B.C.D mask A.B.C.D backdoor", 
+       "Specify a network to announce via BGP\n"
+       "Network number\n"
+       "Network mask\n"
+       "Network mask\n"
+       "Specify a BGP backdoor route\n")
+
+DEFSH (VTYSH_RIPD, ip_rip_authentication_string_cmd_vtysh, 
+       "ip rip authentication string LINE", 
+       "IP information\n"
+       "Routing Information Protocol\n"
+       "Authentication control\n"
+       "Authentication string\n"
+       "Authentication string\n")
+
+DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_interface_cmd_vtysh, 
+       "show ipv6 ospf6 interface", 
+       "Show running system information\n"
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Interface infomation\n"
+       )
+
+DEFSH (VTYSH_BGPD, no_set_community_none_cmd_vtysh, 
+       "no set community none", 
+       "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "BGP community attribute\n"
+       "No community attribute\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_instance_summary_cmd_vtysh, 
+       "show bgp view WORD summary", 
        "Show running system information\n"
        "BGP information\n"
-       "IPv6 prefix <network>/<length>\n"
-       "Display route and more specific routes\n")
+       "BGP view\n"
+       "View name\n"
+       "Summary of BGP neighbor status\n")
 
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_ipv4_soft_cmd_vtysh, 
-       "clear ip bgp peer-group WORD ipv4 (unicast|multicast) soft", 
+DEFSH (VTYSH_BGPD, no_ip_extcommunity_list_all_cmd_vtysh, 
+       "no ip extcommunity-list (<1-99>|<100-199>)", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Add a extended community list entry\n"
+       "Extended Community list number (standard)\n"
+       "Extended Community list number (expanded)\n")
+
+DEFSH (VTYSH_BGPD, ipv6_bgp_network_route_map_cmd_vtysh, 
+       "network X:X::X:X/M route-map WORD", 
+       "Specify a network to announce via BGP\n"
+       "IPv6 prefix <network>/<length>\n"
+       "Route-map to modify the attributes\n"
+       "Name of the route map\n")
+
+DEFSH (VTYSH_RIPNGD, ripng_redistribute_connected_metric_cmd_vtysh, 
+       "redistribute connected metric <0-16>", 
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Metric\n"
+       "Metric value\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_ge_le_cmd_vtysh, 
+       "no ip prefix-list WORD (deny|permit) A.B.C.D/M ge <0-32> le <0-32>", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Minimum prefix length to be matched\n"
+       "Minimum prefix length\n"
+       "Maximum prefix length to be matched\n"
+       "Maximum prefix length\n")
+
+DEFSH (VTYSH_OSPFD, ip_ospf_authentication_addr_cmd_vtysh, 
+       "ip ospf authentication A.B.C.D", 
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Enable authentication on this interface\n"
+       "Address of interface")
+
+DEFSH (VTYSH_OSPFD, ip_ospf_authentication_key_cmd_vtysh, 
+       "ip ospf authentication-key AUTH_KEY", 
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Authentication password (key)\n"
+       "The OSPF password (key)")
+
+DEFSH (VTYSH_BGPD, show_bgp_neighbor_advertised_route_cmd_vtysh, 
+       "show bgp neighbors (A.B.C.D|X:X::X:X) advertised-routes", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n"
+       "Display the routes advertised to a BGP neighbor\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, clear_ip_prefix_list_name_prefix_cmd_vtysh, 
+       "clear ip prefix-list WORD A.B.C.D/M", 
+       "Reset functions\n"
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n")
+
+DEFSH (VTYSH_BGPD, bgp_client_to_client_reflection_cmd_vtysh, 
+       "bgp client-to-client reflection", 
+       "BGP specific commands\n"
+       "Configure client to client route reflection\n"
+       "reflection of routes allowed\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_external_soft_in_cmd_vtysh, 
+       "clear bgp external soft in", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear all external peers\n"
+       "Soft reconfig\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_RIPD, no_rip_redistribute_type_routemap_cmd_vtysh, 
+       "no redistribute (kernel|connected|static|ospf|bgp) route-map WORD", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Kernel routes\n"
+       "Connected\n"
+       "Static routes\n"
+       "Open Shortest Path First (OSPF)\n"
+       "Border Gateway Protocol (BGP)\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_BGPD, no_aggregate_address_mask_summary_as_set_cmd_vtysh, 
+       "no aggregate-address A.B.C.D A.B.C.D summary-only as-set", 
+       "Negate a command or set its defaults\n"
+       "Configure BGP aggregate entries\n"
+       "Aggregate address\n"
+       "Aggregate mask\n"
+       "Filter more specific routes from updates\n"
+       "Generate AS set path information\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_rd_tags_cmd_vtysh, 
+       "show ip bgp vpnv4 rd ASN:nn_or_IP-address:nn tags", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display VPNv4 NLRI specific information\n"
+       "Display information for a route distinguisher\n"
+       "VPN Route Distinguisher\n"
+       "Display BGP tags for prefixes\n")
+
+DEFSH (VTYSH_BGPD, no_set_ecommunity_soo_cmd_vtysh, 
+       "no set extcommunity soo", 
+       "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "BGP extended community attribute\n"
+       "Site-of-Origin extended community\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_exact_cmd_vtysh, 
+       "access-list WORD (deny|permit) A.B.C.D/M exact-match", 
+       "Add an access list entry\n"
+       "IP zebra access-list name\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Prefix to match. e.g. 10.0.0.0/8\n"
+       "Exact match of the prefixes\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_route_cmd_vtysh, 
+       "show ip bgp ipv4 (unicast|multicast) A.B.C.D", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Network in the BGP routing table to display\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_all_cmd_vtysh, 
+       "clear bgp ipv6 *", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear all peers\n")
+
+DEFSH (VTYSH_BGPD, bgp_confederation_peers_cmd_vtysh, 
+       "bgp confederation peers .<1-65535>", 
+       "BGP specific commands\n"
+       "AS confederation parameters\n"
+       "Peer ASs in BGP confederation\n"
+       "AS number\n")
+
+DEFSH (VTYSH_BGPD, no_set_ecommunity_soo_val_cmd_vtysh, 
+       "no set extcommunity soo .ASN:nn_or_IP-address:nn", 
+       "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "BGP extended community attribute\n"
+       "Site-of-Origin extended community\n"
+       "VPN extended community\n")
+
+DEFSH (VTYSH_OSPFD, ospf_redistribute_source_metric_routemap_cmd_vtysh, 
+       "redistribute (kernel|connected|static|rip|bgp) metric <0-16777214> route-map WORD", 
+       "Redistribute information from another routing protocol\n"
+       "Kernel routes\n"
+       "Connected\n"
+       "Static routes\n"
+       "Routing Information Protocol (RIP)\n"
+       "Border Gateway Protocol (BGP)\n"
+       "Metric for redistributed routes\n"
+       "OSPF default metric\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_OSPFD, ip_ospf_cost_addr_cmd_vtysh, 
+       "ip ospf cost <1-65535> A.B.C.D", 
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Interface cost\n"
+       "Cost\n"
+       "Address of interface")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_external_soft_in_cmd_vtysh, 
+       "clear bgp ipv6 external soft in", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear all external peers\n"
+       "Soft reconfig\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_RIPD, show_ip_rip_cmd_vtysh, 
+       "show ip rip", 
+       "Show running system information\n"
+       "IP information\n"
+       "Show RIP routes\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_ipv4_in_cmd_vtysh, 
+       "clear ip bgp A.B.C.D ipv4 (unicast|multicast) in", 
        "Reset functions\n"
        "IP information\n"
        "BGP information\n"
-       "Clear all members of peer-group\n"
-       "BGP peer-group name\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_ipv6_neighbors_peer_cmd_vtysh, 
-       "show bgp ipv6 neighbors (A.B.C.D|X:X::X:X)", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Neighbor to display information about\n")
-
-DEFSH (VTYSH_OSPFD, ospf_abr_type_cmd_vtysh, 
-       "ospf abr-type (cisco|ibm|shortcut|standard)", 
-       "OSPF specific commands\n"
-       "Set OSPF ABR type\n"
-       "Alternative ABR,  cisco implementation\n"
-       "Alternative ABR,  IBM implementation\n"
-       "Shortcut ABR\n"
-       "Standard behavior (RFC2328)\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_peer_soft_cmd_vtysh, 
-       "clear bgp (A.B.C.D|X:X::X:X) soft", 
-       "Reset functions\n"
-       "BGP information\n"
        "BGP neighbor address to clear\n"
-       "BGP IPv6 neighbor to clear\n"
-       "Soft reconfig\n")
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Soft reconfig inbound update\n")
 
-DEFSH (VTYSH_RIPD, rip_redistribute_type_metric_cmd_vtysh, 
-       "redistribute (kernel|connected|static|ospf|bgp) metric <0-16>", 
+DEFSH (VTYSH_RIPD, show_debugging_rip_cmd_vtysh, 
+       "show debugging rip", 
+       "Show running system information\n"
+       "Debugging functions (see also 'undebug')\n"
+       "RIP information\n")
+
+DEFSH (VTYSH_ZEBRA, no_linkdetect_cmd_vtysh, 
+       "no link-detect", 
+       "Negate a command or set its defaults\n"
+       "Disable link detection on interface\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_network_mask_route_map_cmd_vtysh, 
+       "no network A.B.C.D mask A.B.C.D route-map WORD", 
+       "Negate a command or set its defaults\n"
+       "Specify a network to announce via BGP\n"
+       "Network number\n"
+       "Network mask\n"
+       "Network mask\n"
+       "Route-map to modify the attributes\n"
+       "Name of the route map\n")
+
+DEFSH (VTYSH_BGPD, set_local_pref_cmd_vtysh, 
+       "set local-preference <0-4294967295>", 
+       "Set values in destination routing protocol\n"
+       "BGP local preference path attribute\n"
+       "Preference value\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_activate_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "activate", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Enable the Address Family for this Neighbor\n")
+
+DEFSH (VTYSH_RIPD, no_rip_redistribute_type_metric_cmd_vtysh, 
+       "no redistribute (kernel|connected|static|ospf|bgp) metric <0-16>", 
+       "Negate a command or set its defaults\n"
        "Redistribute information from another routing protocol\n"
        "Kernel routes\n"
        "Connected\n"
@@ -5063,47 +2078,135 @@
        "Metric\n"
        "Metric value\n")
 
-DEFSH (VTYSH_ZEBRA, no_shutdown_if_cmd_vtysh, 
-       "no shutdown", 
+DEFSH (VTYSH_ZEBRA, no_debug_zebra_kernel_cmd_vtysh, 
+       "no debug zebra kernel", 
        "Negate a command or set its defaults\n"
-       "Shutdown the selected interface\n")
+       "Debugging functions (see also 'undebug')\n"
+       "Zebra configuration\n"
+       "Debug option set for zebra between kernel interface\n")
 
-DEFSH (VTYSH_BGPD, set_originator_id_cmd_vtysh, 
-       "set originator-id A.B.C.D", 
+DEFSH (VTYSH_BGPD, no_set_ipv6_nexthop_global_val_cmd_vtysh, 
+       "no set ipv6 next-hop global X:X::X:X", 
+       "Negate a command or set its defaults\n"
        "Set values in destination routing protocol\n"
-       "BGP originator ID attribute\n"
-       "IP address of originator\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, ipv6_prefix_list_description_cmd_vtysh, 
-       "ipv6 prefix-list WORD description .LINE", 
        "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "Prefix-list specific description\n"
-       "Up to 80 characters describing this prefix-list\n")
+       "IPv6 next-hop address\n"
+       "IPv6 global address\n"
+       "IPv6 address of next hop\n")
 
-DEFSH (VTYSH_OSPFD, ospf_redistribute_source_metric_type_routemap_cmd_vtysh, 
-       "redistribute (kernel|connected|static|rip|bgp) metric <0-16777214> metric-type (1|2) route-map WORD", 
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_all_soft_in_cmd_vtysh, 
+       "clear bgp ipv6 * soft in", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear all peers\n"
+       "Soft reconfig\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_community4_cmd_vtysh, 
+       "show bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_neighbors_peer_cmd_vtysh, 
+       "show ip bgp ipv4 (unicast|multicast) neighbors (A.B.C.D|X:X::X:X)", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n")
+
+DEFSH (VTYSH_RIPD, no_rip_split_horizon_cmd_vtysh, 
+       "no ip split-horizon", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Perform split horizon\n")
+
+DEFSH (VTYSH_BGPD, neighbor_local_as_no_prepend_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "local-as <1-65535> no-prepend", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Specify a local-as number\n"
+       "AS number used as local AS\n"
+       "Do not prepend local-as to updates from ebgp peers\n")
+
+DEFSH (VTYSH_OSPFD, ospf_redistribute_source_type_routemap_cmd_vtysh, 
+       "redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) route-map WORD", 
        "Redistribute information from another routing protocol\n"
        "Kernel routes\n"
        "Connected\n"
        "Static routes\n"
        "Routing Information Protocol (RIP)\n"
        "Border Gateway Protocol (BGP)\n"
-       "Metric for redistributed routes\n"
-       "OSPF default metric\n"
        "OSPF exterior metric type for redistributed routes\n"
        "Set OSPF External Type 1 metrics\n"
        "Set OSPF External Type 2 metrics\n"
        "Route map reference\n"
        "Pointer to route-map entries\n")
 
-DEFSH (VTYSH_BGPD, no_debug_bgp_filter_cmd_vtysh, 
-       "no debug bgp filters", 
+DEFSH (VTYSH_BGPD, no_aggregate_address_mask_as_set_cmd_vtysh, 
+       "no aggregate-address A.B.C.D A.B.C.D as-set", 
        "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "BGP information\n"
-       "BGP filters\n")
+       "Configure BGP aggregate entries\n"
+       "Aggregate address\n"
+       "Aggregate mask\n"
+       "Generate AS set path information\n")
+
+DEFSH (VTYSH_OSPFD, ospf_distance_ospf_external_inter_cmd_vtysh, 
+       "distance ospf external <1-255> inter-area <1-255>", 
+       "Define an administrative distance\n"
+       "OSPF Administrative distance\n"
+       "External routes\n"
+       "Distance for external routes\n"
+       "Inter-area routes\n"
+       "Distance for inter-area routes\n")
+
+DEFSH (VTYSH_RIPD, accept_lifetime_month_day_month_day_cmd_vtysh, 
+       "accept-lifetime HH:MM:SS MONTH <1-31> <1993-2035> HH:MM:SS MONTH <1-31> <1993-2035>", 
+       "Set accept lifetime of the key\n"
+       "Time to start\n"
+       "Month of the year to start\n"
+       "Day of th month to start\n"
+       "Year to start\n"
+       "Time to expire\n"
+       "Month of the year to expire\n"
+       "Day of th month to expire\n"
+       "Year to expire\n")
+
+DEFSH (VTYSH_BGPD, no_set_originator_id_val_cmd_vtysh, 
+       "no set originator-id A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "BGP originator ID attribute\n"
+       "IP address of originator\n")
+
+DEFSH (VTYSH_BGPD, no_default_attr_localpref_cmd_vtysh, 
+       "no default-attr local-pref NUMBER", 
+       "Negate a command or set its defaults\n"
+       "Unset default local preference value\n"
+       "Unset default local preference value\n"
+       "Value\n")
 
 DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_all_neighbor_routes_cmd_vtysh, 
        "show ip bgp vpnv4 all neighbors A.B.C.D routes", 
@@ -5116,129 +2219,94 @@
        "Neighbor to display information about\n"
        "Display routes learned from neighbor\n")
 
-DEFSH (VTYSH_OSPFD, no_debug_ospf_nsm_cmd_vtysh, 
-       "no debug ospf nsm", 
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_bgp_metric_routemap_cmd_vtysh, 
+       "no redistribute bgp metric <0-16> route-map WORD", 
        "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "OSPF information\n"
-       "OSPF Neighbor State Machine")
-
-DEFSH (VTYSH_OSPFD, ospf_redistribute_source_type_cmd_vtysh, 
-       "redistribute (kernel|connected|static|rip|bgp) metric-type (1|2)", 
        "Redistribute information from another routing protocol\n"
-       "Kernel routes\n"
-       "Connected\n"
-       "Static routes\n"
-       "Routing Information Protocol (RIP)\n"
        "Border Gateway Protocol (BGP)\n"
-       "OSPF exterior metric type for redistributed routes\n"
-       "Set OSPF External Type 1 metrics\n"
-       "Set OSPF External Type 2 metrics\n")
+       "Metric\n"
+       "Metric value\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
 
-DEFSH (VTYSH_OSPFD, no_neighbor_priority_cmd_vtysh, 
-       "no neighbor A.B.C.D priority <0-255>", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor IP address\n"
-       "Neighbor Priority\n"
-       "Priority\n")
+DEFSH (VTYSH_OSPFD, ospf_default_information_originate_routemap_cmd_vtysh, 
+       "default-information originate route-map WORD", 
+       "Control distribution of default information\n"
+       "Distribute a default route\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
 
-DEFSH (VTYSH_ZEBRA, no_ipv6_forwarding_cmd_vtysh, 
-       "no ipv6 forwarding", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Doesn't forward IPv6 protocol packet")
-
-DEFSH (VTYSH_RIPD, no_debug_rip_packet_cmd_vtysh, 
-       "no debug rip packet", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "RIP information\n"
-       "RIP packet\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, ip_prefix_list_le_ge_cmd_vtysh, 
-       "ip prefix-list WORD (deny|permit) A.B.C.D/M le <0-32> ge <0-32>", 
-       "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Maximum prefix length to be matched\n"
-       "Maximum prefix length\n"
-       "Minimum prefix length to be matched\n"
-       "Minimum prefix length\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, ip_prefix_list_cmd_vtysh, 
-       "ip prefix-list WORD (deny|permit) (A.B.C.D/M|any)", 
-       "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Any prefix match. Same as \"0.0.0.0/0 le 32\"\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_community_info_cmd_vtysh, 
-       "show ip bgp community-info", 
+DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_community_list_exact_cmd_vtysh, 
+       "show ip bgp ipv4 (unicast|multicast) community-list WORD exact-match", 
        "Show running system information\n"
        "IP information\n"
        "BGP information\n"
-       "List all bgp community information\n")
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Display routes matching the community-list\n"
+       "community-list name\n"
+       "Exact match of the communities\n")
 
-DEFSH (VTYSH_OSPF6D, debug_ospf6_damp_cmd_vtysh, 
-       "debug ospf6 damp", 
-       "Debugging functions (see also 'undebug')\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Flap-dampening information\n"
-      )
-
-DEFSH (VTYSH_BGPD, neighbor_attr_unchanged9_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged med next-hop as-path", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "BGP attribute is propagated unchanged to this neighbor\n"
-       "Med attribute\n"
-       "Nexthop attribute\n"
-       "As-path attribute\n")
-
-DEFSH (VTYSH_BGPD, no_set_ecommunity_soo_val_cmd_vtysh, 
-       "no set extcommunity soo .ASN:nn_or_IP-address:nn", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "BGP extended community attribute\n"
-       "Site-of-Origin extended community\n"
-       "VPN extended community\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_remark_cmd_vtysh, 
-       "no access-list (<1-99>|<100-199>|<1300-1999>|<2000-2699>|WORD) remark", 
-       "Negate a command or set its defaults\n"
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_remark_cmd_vtysh, 
+       "access-list (<1-99>|<100-199>|<1300-1999>|<2000-2699>|WORD) remark .LINE", 
        "Add an access list entry\n"
        "IP standard access list\n"
        "IP extended access list\n"
        "IP standard access list (expanded range)\n"
        "IP extended access list (expanded range)\n"
        "IP zebra access-list\n"
-       "Access list entry comment\n")
+       "Access list entry comment\n"
+       "Comment up to 100 characters\n")
 
-DEFSH (VTYSH_ZEBRA, debug_zebra_packet_direct_cmd_vtysh, 
-       "debug zebra packet (recv|send)", 
-       "Debugging functions (see also 'undebug')\n"
-       "Zebra configuration\n"
-       "Debug option set for zebra packet\n"
-       "Debug option set for receive packet\n"
-       "Debug option set for send packet\n")
+DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_prefix_cmd_vtysh, 
+       "show ip bgp ipv4 (unicast|multicast) A.B.C.D/M", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n")
 
-DEFSH (VTYSH_BGPD, no_set_ipv6_nexthop_global_cmd_vtysh, 
-       "no set ipv6 next-hop global", 
+DEFSH (VTYSH_BGPD, no_bgp_router_id_cmd_vtysh, 
+       "no bgp router-id", 
        "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "IPv6 information\n"
-       "IPv6 next-hop address\n"
-       "IPv6 global address\n")
+       "BGP information\n"
+       "Override configured router identifier\n")
 
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_ipv4_soft_out_cmd_vtysh, 
-       "clear ip bgp peer-group WORD ipv4 (unicast|multicast) soft out", 
+DEFSH (VTYSH_BGPD, dump_bgp_all_interval_cmd_vtysh, 
+       "dump bgp all PATH INTERVAL", 
+       "Dump packet\n"
+       "BGP packet dump\n"
+       "Dump all BGP packets\n"
+       "Output filename\n"
+       "Interval of output\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_mbgp_filter_list_cmd_vtysh, 
+       "show ipv6 mbgp filter-list WORD", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "MBGP information\n"
+       "Display routes conforming to the filter-list\n"
+       "Regular expression access list name\n")
+
+DEFSH (VTYSH_BGPD, dump_bgp_updates_cmd_vtysh, 
+       "dump bgp updates PATH", 
+       "Dump packet\n"
+       "BGP packet dump\n"
+       "Dump BGP updates only\n"
+       "Output filename\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_network_backdoor_cmd_vtysh, 
+       "no network A.B.C.D/M backdoor", 
+       "Negate a command or set its defaults\n"
+       "Specify a network to announce via BGP\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Specify a BGP backdoor route\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_ipv4_in_cmd_vtysh, 
+       "clear ip bgp peer-group WORD ipv4 (unicast|multicast) in", 
        "Reset functions\n"
        "IP information\n"
        "BGP information\n"
@@ -5247,214 +2315,25 @@
        "Address family\n"
        "Address Family modifier\n"
        "Address Family modifier\n"
-       "Soft reconfig\n"
-       "Soft reconfig outbound update\n")
+       "Soft reconfig inbound update\n")
 
-DEFSH (VTYSH_BGPD, no_bgp_always_compare_med_cmd_vtysh, 
-       "no bgp always-compare-med", 
-       "Negate a command or set its defaults\n"
-       "BGP specific commands\n"
-       "Allow comparing MED from different neighbors\n")
-
-DEFSH (VTYSH_ZEBRA, show_ipv6_route_prefix_cmd_vtysh, 
-       "show ipv6 route X:X::X:X/M", 
-       "Show running system information\n"
-       "IP information\n"
-       "IPv6 routing table\n"
-       "IPv6 prefix\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_instance_neighbors_peer_cmd_vtysh, 
-       "show ip bgp view WORD neighbors (A.B.C.D|X:X::X:X)", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP view\n"
-       "View name\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Neighbor to display information about\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_as_soft_out_cmd_vtysh, 
-       "clear bgp ipv6 <1-65535> soft out", 
+DEFSH (VTYSH_BGPD, clear_bgp_peer_soft_in_cmd_vtysh, 
+       "clear bgp (A.B.C.D|X:X::X:X) soft in", 
        "Reset functions\n"
        "BGP information\n"
-       "Address family\n"
-       "Clear peers with the AS number\n"
-       "Soft reconfig\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_ZEBRA, no_ipv6_route_cmd_vtysh, 
-       "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE)", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Establish static routes\n"
-       "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
-       "IPv6 gateway address\n"
-       "IPv6 gateway interface name\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_external_in_prefix_filter_cmd_vtysh, 
-       "clear ip bgp external in prefix-filter", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all external peers\n"
-       "Soft reconfig inbound update\n"
-       "Push out prefix-list ORF and do inbound soft reconfig\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_version_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X) " "version", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nIPv6 address\n"
-       "Neighbor's BGP version\n")
-
-DEFSH (VTYSH_OSPF6D, show_ipv6_route_ospf6_external_cmd_vtysh, 
-       "show ipv6 ospf6 route redistribute", 
-       "Show running system information\n"
-       "IPv6 Information\n"
-       "Routing Table\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "redistributing External information\n"
-       )
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_vpnv4_soft_in_cmd_vtysh, 
-       "clear ip bgp A.B.C.D vpnv4 unicast soft in", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
        "BGP neighbor address to clear\n"
-       "Address family\n"
-       "Address Family Modifier\n"
+       "BGP IPv6 neighbor to clear\n"
        "Soft reconfig\n"
        "Soft reconfig inbound update\n")
 
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_all_soft_in_cmd_vtysh, 
-       "clear bgp ipv6 * soft in", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "Clear all peers\n"
-       "Soft reconfig\n"
-       "Soft reconfig inbound update\n")
+DEFSH (VTYSH_OSPF6D, redistribute_ospf6_cmd_vtysh, 
+       "redistribute ospf6", 
+       "Redistribute control\n"
+       "OSPF6 route\n")
 
-DEFSH (VTYSH_OSPF6D, ospf6_redistribute_routemap_cmd_vtysh, 
-       "redistribute (static|kernel|connected|ripng|bgp) route-map WORD", 
-       "Redistribute\n"
-       "Static routes\n"
-       "Kernel route\n"
-       "Connected route\n"
-       "RIPng route\n"
-       "BGP route\n"
-       "Route map reference\n"
-       "Route map name\n"
-      )
-
-DEFSH (VTYSH_BGPD, set_ecommunity_rt_cmd_vtysh, 
-       "set extcommunity rt .ASN:nn_or_IP-address:nn", 
-       "Set values in destination routing protocol\n"
-       "BGP extended community attribute\n"
-       "Route Target extened communityt\n"
-       "VPN extended community\n")
-
-DEFSH (VTYSH_BGPD, neighbor_local_as_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "local-as <1-65535>", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Specify a local-as number\n"
-       "AS number used as local AS\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, show_ipv6_access_list_name_cmd_vtysh, 
-       "show ipv6 access-list WORD", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "List IPv6 access lists\n"
-       "IPv6 zebra access-list\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_standard_host_cmd_vtysh, 
-       "no access-list (<1-99>|<1300-1999>) (deny|permit) host A.B.C.D", 
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_seq_ge_le_cmd_vtysh, 
+       "no ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M ge <0-32> le <0-32>", 
        "Negate a command or set its defaults\n"
-       "Add an access list entry\n"
-       "IP standard access list\n"
-       "IP standard access list (expanded range)\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "A single host address\n"
-       "Address to match\n")
-
-DEFSH (VTYSH_OSPFD, no_area_import_list_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) import-list NAME", 
-       "Negate a command or set its defaults\n"
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Unset the filter for networks announced to other areas\n"
-       "Name of the access-list\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_cidr_only_cmd_vtysh, 
-       "show ip bgp cidr-only", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display only routes with non-natural netmasks\n")
-
-DEFSH (VTYSH_RIPNGD, ripng_timers_cmd_vtysh, 
-       "timers basic <0-65535> <0-65535> <0-65535>", 
-       "RIPng timers setup\n"
-       "Basic timer\n"
-       "Routing table update timer value in second. Default is 30.\n"
-       "Routing information timeout timer. Default is 180.\n"
-       "Garbage collection timer. Default is 120.\n")
-
-DEFSH (VTYSH_BGPD, neighbor_transparent_as_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X) " "transparent-as", 
-       "Specify neighbor router\n"
-       "Neighbor address\nIPv6 address\n"
-       "Do not append my AS number even peer is EBGP peer\n")
-
-DEFSH (VTYSH_OSPFD, area_nssa_no_summary_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) nssa no-summary", 
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Configure OSPF area as nssa\n"
-       "Do not inject inter-area routes into nssa\n")
-
-DEFSH (VTYSH_BGPD, ip_extcommunity_list_expanded_cmd_vtysh, 
-       "ip extcommunity-list <100-199> (deny|permit) .LINE", 
-       "IP information\n"
-       "Add a extended community list entry\n"
-       "Extended Community list number (expanded)\n"
-       "Specify community to reject\n"
-       "Specify community to accept\n"
-       "An ordered list as a regular-expression\n")
-
-DEFSH (VTYSH_RIPD, no_router_rip_cmd_vtysh, 
-       "no router rip", 
-       "Negate a command or set its defaults\n"
-       "Enable a routing process\n"
-       "Routing Information Protocol (RIP)\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_le_cmd_vtysh, 
-       "no ip prefix-list WORD (deny|permit) A.B.C.D/M le <0-32>", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Maximum prefix length to be matched\n"
-       "Maximum prefix length\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_route_cmd_vtysh, 
-       "show ip bgp A.B.C.D", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Network in the BGP routing table to display\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, ip_prefix_list_seq_ge_le_cmd_vtysh, 
-       "ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M ge <0-32> le <0-32>", 
        "IP information\n"
        "Build a prefix list\n"
        "Name of a prefix list\n"
@@ -5468,294 +2347,12 @@
        "Maximum prefix length to be matched\n"
        "Maximum prefix length\n")
 
-DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_rd_neighbor_advertised_routes_cmd_vtysh, 
-       "show ip bgp vpnv4 rd ASN:nn_or_IP-address:nn neighbors A.B.C.D advertised-routes", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display VPNv4 NLRI specific information\n"
-       "Display information for a route distinguisher\n"
-       "VPN Route Distinguisher\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Display the routes advertised to a BGP neighbor\n")
-
-DEFSH (VTYSH_OSPFD, no_ospf_opaque_capable_cmd_vtysh, 
-       "no ospf opaque-lsa", 
+DEFSH (VTYSH_OSPFD, no_ip_ospf_dead_interval_cmd_vtysh, 
+       "no ip ospf dead-interval", 
        "Negate a command or set its defaults\n"
-       "OSPF specific commands\n"
-       "Disable the Opaque-LSA capability (rfc2370)\n")
-
-DEFSH (VTYSH_OSPFD, ospf_priority_cmd_vtysh, 
-       "ospf priority <0-255>", 
+       "IP Information\n"
        "OSPF interface commands\n"
-       "Router priority\n"
-       "Priority\n")
-
-DEFSH (VTYSH_OSPFD, ospf_hello_interval_cmd_vtysh, 
-       "ospf hello-interval <1-65535>", 
-       "OSPF interface commands\n"
-       "Time between HELLO packets\n"
-       "Seconds\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_network_mask_cmd_vtysh, 
-       "no network A.B.C.D mask A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "Specify a network to announce via BGP\n"
-       "Network number\n"
-       "Network mask\n"
-       "Network mask\n")
-
-DEFSH (VTYSH_BGPD, no_aggregate_address_summary_only_cmd_vtysh, 
-       "no aggregate-address A.B.C.D/M summary-only", 
-       "Negate a command or set its defaults\n"
-       "Configure BGP aggregate entries\n"
-       "Aggregate prefix\n"
-       "Filter more specific routes from updates\n")
-
-DEFSH (VTYSH_RIPD, rip_redistribute_type_cmd_vtysh, 
-       "redistribute (kernel|connected|static|ospf|bgp)", 
-       "Redistribute information from another routing protocol\n"
-       "Kernel routes\n"
-       "Connected\n"
-       "Static routes\n"
-       "Open Shortest Path First (OSPF)\n"
-       "Border Gateway Protocol (BGP)\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ipv6_prefix_list_prefix_first_match_cmd_vtysh, 
-       "show ipv6 prefix-list WORD X:X::X:X/M first-match", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
-       "First matched prefix\n")
-
-DEFSH (VTYSH_BGPD, neighbor_capability_orf_prefix_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "capability orf prefix-list (both|send|receive)", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Advertise capability to the peer\n"
-       "Advertise ORF capability to the peer\n"
-       "Advertise prefixlist ORF capability to this neighbor\n"
-       "Capability to SEND and RECEIVE the ORF to/from this neighbor\n"
-       "Capability to RECEIVE the ORF from this neighbor\n"
-       "Capability to SEND the ORF to this neighbor\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_external_ipv4_soft_cmd_vtysh, 
-       "clear ip bgp external ipv4 (unicast|multicast) soft", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all external peers\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_set_peer_group_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X) " "peer-group WORD", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nIPv6 address\n"
-       "Member of the peer-group\n"
-       "peer-group name\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_instance_all_soft_out_cmd_vtysh, 
-       "clear ip bgp view WORD * soft out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP view\n"
-       "view name\n"
-       "Clear all peers\n"
-       "Soft reconfig\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_BGPD, bgp_network_mask_route_map_cmd_vtysh, 
-       "network A.B.C.D mask A.B.C.D route-map WORD", 
-       "Specify a network to announce via BGP\n"
-       "Network number\n"
-       "Network mask\n"
-       "Network mask\n"
-       "Route-map to modify the attributes\n"
-       "Name of the route map\n")
-
-DEFSH (VTYSH_BGPD, aggregate_address_as_set_cmd_vtysh, 
-       "aggregate-address A.B.C.D/M as-set", 
-       "Configure BGP aggregate entries\n"
-       "Aggregate prefix\n"
-       "Generate AS set path information\n")
-
-DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_area_topology_cmd_vtysh, 
-       "show ipv6 ospf6 area A.B.C.D topology", 
-       "Show running system information\n"
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Area information\n"
-       "Area ID (as an IPv4 notation)\n"
-       "Shortest Path First tree information\n"
-       "Displays SPF topology table\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_peer_group_remote_as_cmd_vtysh, 
-       "no neighbor WORD remote-as <1-65535>", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor tag\n"
-       "Specify a BGP neighbor\n"
-       "AS number\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_seq_ge_cmd_vtysh, 
-       "no ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M ge <0-32>", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "sequence number of an entry\n"
-       "Sequence number\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Minimum prefix length to be matched\n"
-       "Minimum prefix length\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_static_routemap_cmd_vtysh, 
-       "no redistribute static route-map WORD", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Static routes\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_RIPD, rip_network_cmd_vtysh, 
-       "network (A.B.C.D/M|WORD)", 
-       "Enable routing on an IP network\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Interface name\n")
-
-DEFSH (VTYSH_ZEBRA, ip_route_mask_cmd_vtysh, 
-       "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0)", 
-       "IP information\n"
-       "Establish static routes\n"
-       "IP destination prefix\n"
-       "IP destination prefix mask\n"
-       "IP gateway address\n"
-       "IP gateway interface name\n"
-       "Null interface\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_ipv6_regexp_cmd_vtysh, 
-       "show bgp ipv6 regexp .LINE", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Display routes matching the AS path regular expression\n"
-       "A regular-expression to match the BGP AS paths\n")
-
-DEFSH (VTYSH_RIPD, debug_rip_zebra_cmd_vtysh, 
-       "debug rip zebra", 
-       "Debugging functions (see also 'undebug')\n"
-       "RIP information\n"
-       "RIP and ZEBRA communication\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_match_metric_val_cmd_vtysh, 
-       "no match metric <0-4294967295>", 
-       "Negate a command or set its defaults\n"
-       "Match values from routing table\n"
-       "Match metric of route\n"
-       "Metric value\n")
-
-DEFSH (VTYSH_BGPD, no_match_ipv6_address_cmd_vtysh, 
-       "no match ipv6 address WORD", 
-       "Negate a command or set its defaults\n"
-       "Match values from routing table\n"
-       "IPv6 information\n"
-       "Match IPv6 address of route\n"
-       "IPv6 access-list name\n")
-
-DEFSH (VTYSH_OSPFD, show_ip_ospf_neighbor_cmd_vtysh, 
-       "show ip ospf neighbor", 
-       "Show running system information\n"
-       "IP information\n"
-       "OSPF information\n"
-       "Neighbor list\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_mbgp_community_list_cmd_vtysh, 
-       "show ipv6 mbgp community-list WORD", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "MBGP information\n"
-       "Display routes matching the community-list\n"
-       "community-list name\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_default_metric_val_cmd_vtysh, 
-       "no default-metric <1-16>", 
-       "Negate a command or set its defaults\n"
-       "Set a metric of redistribute routes\n"
-       "Default metric\n")
-
-DEFSH (VTYSH_RIPNGD, no_debug_ripng_zebra_cmd_vtysh, 
-       "no debug ripng zebra", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "RIPng configuration\n"
-       "Debug option set for ripng and zebra communication\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_ipv6_access_list_any_cmd_vtysh, 
-       "no ipv6 access-list WORD (deny|permit) any", 
-       "Negate a command or set its defaults\n"
-       "IPv6 information\n"
-       "Add an access list entry\n"
-       "IPv6 zebra access-list\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Any prefixi to match\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ipv6_prefix_list_ge_cmd_vtysh, 
-       "no ipv6 prefix-list WORD (deny|permit) X:X::X:X/M ge <0-128>", 
-       "Negate a command or set its defaults\n"
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
-       "Minimum prefix length to be matched\n"
-       "Minimum prefix length\n")
-
-DEFSH (VTYSH_ZEBRA, no_ip_forwarding_cmd_vtysh, 
-       "no ip forwarding", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Turn off IP forwarding")
-
-DEFSH (VTYSH_BGPD, no_set_aspath_prepend_val_cmd_vtysh, 
-       "no set as-path prepend .<1-65535>", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "Prepend string for a BGP AS-path attribute\n"
-       "Prepend to the as-path\n"
-       "AS number\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_attr_unchanged4_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged med (as-path|next-hop)", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "BGP attribute is propagated unchanged to this neighbor\n"
-       "Med attribute\n"
-       "As-path attribute\n"
-       "Nexthop attribute\n")
-
-DEFSH (VTYSH_OSPFD, show_ip_ospf_database_type_id_adv_router_cmd_vtysh, 
-       "show ip ospf database (" "asbr-summary|external|network|router|summary" "|nssa-external" "|opaque-link|opaque-area|opaque-as" ") A.B.C.D adv-router A.B.C.D", 
-       "Show running system information\n"
-       "IP information\n"
-       "OSPF information\n"
-       "Database summary\n"
-       "ASBR summary link states\n" "External link states\n" "Network link states\n" "Router link states\n" "Network summary link states\n" "NSSA external link state\n" "Link local Opaque-LSA\n" "Link area Opaque-LSA\n" "Link AS Opaque-LSA\n"
-       "Link State ID (as an IP address)\n"
-       "Advertising Router link states\n"
-       "Advertising Router (as an IP address)\n")
+       "Interval after which a neighbor is declared dead\n")
 
 DEFSH (VTYSH_RIPD|VTYSH_BGPD, ip_prefix_list_le_cmd_vtysh, 
        "ip prefix-list WORD (deny|permit) A.B.C.D/M le <0-32>", 
@@ -5768,63 +2365,26 @@
        "Maximum prefix length to be matched\n"
        "Maximum prefix length\n")
 
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD, match_interface_cmd_vtysh, 
-       "match interface WORD", 
-       "Match values from routing table\n"
-       "Match first hop interface of route\n"
-       "Interface name\n")
+DEFSH (VTYSH_OSPF6D, router_id_cmd_vtysh, 
+       "router-id ROUTER_ID", 
+       "Configure ospf Router-ID.\n"
+       "specify by IPv4 address notation(e.g. 0.0.0.0)\n")
 
-DEFSH (VTYSH_OSPFD, no_ip_ospf_authentication_cmd_vtysh, 
-       "no ip ospf authentication", 
-       "Negate a command or set its defaults\n"
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Enable authentication on this interface\n")
-
-DEFSH (VTYSH_OSPFD, no_area_range_advertise_cost_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) range A.B.C.D/M advertise cost <0-16777215>", 
-       "Negate a command or set its defaults\n"
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Summarize routes matching address/mask (border routers only)\n"
-       "Area range prefix\n"
-       "Advertise this range (default)\n"
-       "User specified metric for this range\n"
-       "Advertised metric for this range\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_default_local_preference_val_cmd_vtysh, 
-       "no bgp default local-preference <0-4294967295>", 
-       "Negate a command or set its defaults\n"
+DEFSH (VTYSH_BGPD, bgp_bestpath_med2_cmd_vtysh, 
+       "bgp bestpath med confed missing-as-worst", 
        "BGP specific commands\n"
-       "Configure BGP defaults\n"
-       "local preference (higher=more preferred)\n"
-       "Configure default local preference value\n")
+       "Change the default bestpath selection\n"
+       "MED attribute\n"
+       "Compare MED among confederation paths\n"
+       "Treat missing MED as the least preferred one\n")
 
-DEFSH (VTYSH_OSPFD, ospf_rfc1583_flag_cmd_vtysh, 
-       "ospf rfc1583compatibility", 
-       "OSPF specific commands\n"
-       "Enable the RFC1583Compatibility flag\n")
-
-DEFSH (VTYSH_OSPFD, area_filter_list_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) filter-list prefix WORD (in|out)", 
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Filter networks between OSPF areas\n"
-       "Filter prefixes between OSPF areas\n"
-       "Name of an IP prefix-list\n"
-       "Filter networks sent to this area\n"
-       "Filter networks sent from this area\n")
-
-DEFSH (VTYSH_RIPD, ip_rip_send_version_1_cmd_vtysh, 
-       "ip rip send version 1 2", 
-       "IP information\n"
-       "Routing Information Protocol\n"
-       "Advertisement transmission\n"
-       "Version control\n"
-       "RIP version 1\n"
-       "RIP version 2\n")
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_all_in_cmd_vtysh, 
+       "clear bgp ipv6 * in", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear all peers\n"
+       "Soft reconfig inbound update\n")
 
 DEFSH (VTYSH_BGPD, show_bgp_ipv6_community3_cmd_vtysh, 
        "show bgp ipv6 community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
@@ -5845,500 +2405,142 @@
        "Do not advertise to any peer (well-known community)\n"
        "Do not export to next AS (well-known community)\n")
 
-DEFSH (VTYSH_BGPD, clear_ip_bgp_all_vpnv4_in_cmd_vtysh, 
-       "clear ip bgp * vpnv4 unicast in", 
-       "Reset functions\n"
+DEFSH (VTYSH_BGPD, ip_extcommunity_list_standard2_cmd_vtysh, 
+       "ip extcommunity-list <1-99> (deny|permit)", 
        "IP information\n"
-       "BGP information\n"
-       "Clear all peers\n"
-       "Address family\n"
-       "Address Family Modifier\n"
-       "Soft reconfig inbound update\n")
+       "Add a extended community list entry\n"
+       "Extended Community list number (standard)\n"
+       "Specify community to reject\n"
+       "Specify community to accept\n")
 
-DEFSH (VTYSH_BGPD, bgp_network_import_check_cmd_vtysh, 
-       "bgp network import-check", 
-       "BGP specific commands\n"
-       "BGP network command\n"
-       "Check BGP network route exists in IGP\n")
+DEFSH (VTYSH_OSPFD, passive_interface_addr_cmd_vtysh, 
+       "passive-interface IFNAME A.B.C.D", 
+       "Suppress routing updates on an interface\n"
+       "Interface's name\n")
 
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_group_soft_out_cmd_vtysh, 
-       "clear bgp ipv6 peer-group WORD soft out", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "Clear all members of peer-group\n"
-       "BGP peer-group name\n"
-       "Soft reconfig\n"
-       "Soft reconfig outbound update\n")
+DEFSH (VTYSH_BGPD, neighbor_ebgp_multihop_ttl_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "ebgp-multihop <1-255>", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Allow EBGP neighbors not on directly connected networks\n"
+       "maximum hop count\n")
 
-DEFSH (VTYSH_OSPFD, ip_ospf_priority_cmd_vtysh, 
-       "ip ospf priority <0-255>", 
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Router priority\n"
-       "Priority\n")
-
-DEFSH (VTYSH_OSPFD, debug_ospf_lsa_cmd_vtysh, 
-       "debug ospf lsa", 
-       "Debugging functions (see also 'undebug')\n"
-       "OSPF information\n"
-       "OSPF Link State Advertisement\n")
-
-DEFSH (VTYSH_ZEBRA, show_ip_route_prefix_longer_cmd_vtysh, 
-       "show ip route A.B.C.D/M longer-prefixes", 
+DEFSH (VTYSH_BGPD, show_ip_bgp_flap_prefix_longer_cmd_vtysh, 
+       "show ip bgp flap-statistics A.B.C.D/M longer-prefixes", 
        "Show running system information\n"
        "IP information\n"
-       "IP routing table\n"
+       "BGP information\n"
+       "Display flap statistics of routes\n"
        "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Show route matching the specified Network/Mask pair only\n")
+       "Display route and more specific routes\n")
 
-DEFSH (VTYSH_BGPD, bgp_always_compare_med_cmd_vtysh, 
-       "bgp always-compare-med", 
-       "BGP specific commands\n"
-       "Allow comparing MED from different neighbors\n")
-
-DEFSH (VTYSH_OSPFD, ospf_distribute_list_out_cmd_vtysh, 
-       "distribute-list WORD out (kernel|connected|static|rip|bgp)", 
-       "Filter networks in routing updates\n"
-       "Access-list name\n"
-       "Filter outgoing routing updates\n"
-       "Kernel routes\n"
-       "Connected\n"
-       "Static routes\n"
-       "Routing Information Protocol (RIP)\n"
-       "Border Gateway Protocol (BGP)\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_community3_cmd_vtysh, 
-       "show ip bgp ipv4 (unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n")
-
-DEFSH (VTYSH_RIPD, match_ip_next_hop_cmd_vtysh, 
-       "match ip next-hop WORD", 
-       "Match values from routing table\n"
-       "IP information\n"
-       "Match next-hop address of route\n"
-       "IP access-list name\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ip_prefix_list_prefix_cmd_vtysh, 
-       "show ip prefix-list WORD A.B.C.D/M", 
-       "Show running system information\n"
-       "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, clear_ipv6_prefix_list_name_cmd_vtysh, 
-       "clear ipv6 prefix-list WORD", 
-       "Reset functions\n"
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_mbgp_community_cmd_vtysh, 
-       "show ipv6 mbgp community (AA:NN|local-AS|no-advertise|no-export)", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "MBGP information\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n")
-
-DEFSH (VTYSH_ZEBRA, ip_irdp_holdtime_cmd_vtysh, 
-       "ip irdp holdtime <0-9000>", 
-       "IP information\n"
-       "ICMP Router discovery on this interface\n"
-       "Set holdtime value\n"
-       "Holdtime value in seconds. Default is 1800 seconds\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_all_soft_cmd_vtysh, 
-       "clear bgp * soft", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear all peers\n"
-       "Soft reconfig\n")
-
-DEFSH (VTYSH_BGPD, no_aggregate_address_mask_cmd_vtysh, 
-       "no aggregate-address A.B.C.D A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "Configure BGP aggregate entries\n"
-       "Aggregate address\n"
-       "Aggregate mask\n")
-
-DEFSH (VTYSH_RIPD, key_string_cmd_vtysh, 
-       "key-string LINE", 
-       "Set key string\n"
-       "The key\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_bgp_route_cmd_vtysh, 
-       "show ipv6 bgp X:X::X:X", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Network in the BGP routing table to display\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_community2_exact_cmd_vtysh, 
-       "show bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "Exact match of the communities")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_ospf6_cmd_vtysh, 
-       "no redistribute ospf6", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "IPv6 Open Shortest Path First (OSPFv3)\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_match_ip_address_prefix_list_cmd_vtysh, 
-       "no match ip address prefix-list", 
-       "Negate a command or set its defaults\n"
-       "Match values from routing table\n"
-       "IP information\n"
-       "Match address of route\n"
-       "Match entries of prefix-lists\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_any_cmd_vtysh, 
-       "access-list WORD (deny|permit) any", 
-       "Add an access list entry\n"
-       "IP zebra access-list name\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Prefix to match. e.g. 10.0.0.0/8\n")
-
-DEFSH (VTYSH_OSPFD, no_neighbor_poll_interval_cmd_vtysh, 
-       "no neighbor A.B.C.D poll-interval <1-65535>", 
+DEFSH (VTYSH_BGPD, no_neighbor_peer_group_cmd_vtysh, 
+       "no neighbor WORD peer-group", 
        "Negate a command or set its defaults\n"
        "Specify neighbor router\n"
-       "Neighbor IP address\n"
-       "Dead Neighbor Polling interval\n"
-       "Seconds\n")
+       "Neighbor tag\n"
+       "Configure peer-group\n")
 
-DEFSH (VTYSH_OSPFD, show_ip_ospf_database_type_adv_router_cmd_vtysh, 
-       "show ip ospf database (" "asbr-summary|external|network|router|summary" "|nssa-external" "|opaque-link|opaque-area|opaque-as" ") adv-router A.B.C.D", 
-       "Show running system information\n"
-       "IP information\n"
-       "OSPF information\n"
-       "Database summary\n"
-       "ASBR summary link states\n" "External link states\n" "Network link states\n" "Router link states\n" "Network summary link states\n" "NSSA external link state\n" "Link local Opaque-LSA\n" "Link area Opaque-LSA\n" "Link AS Opaque-LSA\n"
-       "Advertising Router link states\n"
-       "Advertising Router (as an IP address)\n")
-
-DEFSH (VTYSH_ZEBRA, ipv6_route_cmd_vtysh, 
-       "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE)", 
+DEFSH (VTYSH_ZEBRA, no_ipv6_route_ifname_cmd_vtysh, 
+       "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE", 
+       "Negate a command or set its defaults\n"
        "IP information\n"
        "Establish static routes\n"
        "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
        "IPv6 gateway address\n"
        "IPv6 gateway interface name\n")
 
-DEFSH (VTYSH_OSPFD, no_ip_ospf_authentication_addr_cmd_vtysh, 
-       "no ip ospf authentication A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Enable authentication on this interface\n"
-       "Address of interface")
+DEFSH (VTYSH_RIPD, rip_distance_source_access_list_cmd_vtysh, 
+       "distance <1-255> A.B.C.D/M WORD", 
+       "Administrative distance\n"
+       "Distance value\n"
+       "IP source prefix\n"
+       "Access list name\n")
 
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_extended_host_mask_cmd_vtysh, 
-       "no access-list (<100-199>|<2000-2699>) (deny|permit) ip host A.B.C.D A.B.C.D A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "Add an access list entry\n"
-       "IP extended access list\n"
-       "IP extended access list (expanded range)\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Any Internet Protocol\n"
-       "A single source host\n"
-       "Source address\n"
-       "Destination address\n"
-       "Destination Wildcard bits\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_community4_exact_cmd_vtysh, 
-       "show ip bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "Exact match of the communities")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, clear_ipv6_prefix_list_name_prefix_cmd_vtysh, 
-       "clear ipv6 prefix-list WORD X:X::X:X/M", 
-       "Reset functions\n"
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n")
-
-DEFSH (VTYSH_BGPD, no_set_aspath_prepend_cmd_vtysh, 
-       "no set as-path prepend", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "Prepend string for a BGP AS-path attribute\n"
-       "Prepend to the as-path\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_ipv6_summary_cmd_vtysh, 
-       "show bgp ipv6 summary", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Summary of BGP neighbor status\n")
-
-DEFSH (VTYSH_BGPD, ip_extcommunity_list_name_standard2_cmd_vtysh, 
-       "ip extcommunity-list standard WORD (deny|permit)", 
-       "IP information\n"
-       "Add a extended community list entry\n"
-       "Specify standard extcommunity-list\n"
-       "Extended Community list name\n"
-       "Specify community to reject\n"
-       "Specify community to accept\n")
-
-DEFSH (VTYSH_RIPD, rip_route_cmd_vtysh, 
-       "route A.B.C.D/M", 
-       "RIP static route configuration\n"
-       "IP prefix <network>/<length>\n")
-
-DEFSH (VTYSH_BGPD, ip_community_list_standard_cmd_vtysh, 
-       "ip community-list <1-99> (deny|permit) .AA:NN", 
-       "IP information\n"
-       "Add a community list entry\n"
-       "Community list number (standard)\n"
-       "Specify community to reject\n"
-       "Specify community to accept\n"
-       "Community number in aa:nn format or internet|local-AS|no-advertise|no-export\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_all_soft_out_cmd_vtysh, 
-       "clear bgp * soft out", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear all peers\n"
-       "Soft reconfig\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_neighbor_received_prefix_filter_cmd_vtysh, 
-       "show bgp neighbors (A.B.C.D|X:X::X:X) received prefix-filter", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Neighbor to display information about\n"
-       "Display information received from a BGP neighbor\n"
-       "Display the prefixlist filter\n")
-
-DEFSH (VTYSH_RIPNGD, ripng_redistribute_ripng_cmd_vtysh, 
-       "redistribute ripng", 
-       "Redistribute information from another routing protocol\n"
-       "RIPng route\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_advertise_interval_val_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X) " "advertisement-interval <0-600>", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nIPv6 address\n"
-       "Minimum interval between sending BGP routing updates\n"
-       "time in seconds\n")
-
-DEFSH (VTYSH_BGPD, no_match_aspath_cmd_vtysh, 
-       "no match as-path", 
-       "Negate a command or set its defaults\n"
-       "Match values from routing table\n"
-       "Match BGP AS path list\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_peer_soft_in_cmd_vtysh, 
-       "clear bgp (A.B.C.D|X:X::X:X) soft in", 
-       "Reset functions\n"
-       "BGP information\n"
-       "BGP neighbor address to clear\n"
-       "BGP IPv6 neighbor to clear\n"
-       "Soft reconfig\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_bgp_summary_cmd_vtysh, 
-       "show ipv6 bgp summary", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "BGP information\n"
-       "Summary of BGP neighbor status\n")
-
-DEFSH (VTYSH_BGPD, neighbor_capability_route_refresh_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "capability route-refresh", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Advertise capability to the peer\n"
-       "Advertise route-refresh capability to this neighbor\n")
-
-DEFSH (VTYSH_BGPD, bgp_damp_unset2_cmd_vtysh, 
-       "no bgp dampening <1-45> <1-20000> <1-20000> <1-255>", 
-       "Negate a command or set its defaults\n"
-       "BGP Specific commands\n"
-       "Enable route-flap dampening\n"
-       "Half-life time for the penalty\n"
-       "Value to start reusing a route\n"
-       "Value to start suppressing a route\n"
-       "Maximum duration to suppress a stable route\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_as_vpnv4_soft_in_cmd_vtysh, 
-       "clear ip bgp <1-65535> vpnv4 unicast soft in", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear peers with the AS number\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Soft reconfig\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_ospf6_metric_cmd_vtysh, 
-       "no redistribute ospf6 metric", 
+DEFSH (VTYSH_BGPD, no_bgp_redistribute_ipv6_rmap_metric_cmd_vtysh, 
+       "no redistribute (connected|kernel|ospf6|ripng|static) route-map WORD metric <0-4294967295>", 
        "Negate a command or set its defaults\n"
        "Redistribute information from another routing protocol\n"
-       "IPv6 Open Shortest Path First (OSPFv3)\n"
-       "Metric\n")
+       "Connected\n"
+       "Kernel routes\n"
+       "Open Shurtest Path First (OSPFv3)\n"
+       "Routing Information Protocol (RIPng)\n"
+       "Static routes\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n"
+       "Metric for redistributed routes\n"
+       "Default metric\n")
 
-DEFSH (VTYSH_BGPD, no_neighbor_prefix_list_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "prefix-list WORD (in|out)", 
-       "Negate a command or set its defaults\n"
+DEFSH (VTYSH_OSPF6D, ipv6_ospf6_advertise_prefix_list_cmd_vtysh, 
+       "ipv6 ospf6 advertise prefix-list WORD", 
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Advertising options\n"
+       "Filter prefix using prefix-list\n"
+       "Prefix list name\n"
+       )
+
+DEFSH (VTYSH_OSPF6D, ipv6_ospf6_transmitdelay_cmd_vtysh, 
+       "ipv6 ospf6 transmit-delay TRANSMITDELAY", 
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Link state transmit delay\n"
+       "<1-65535> Seconds\n"
+       )
+
+DEFSH (VTYSH_BGPD, neighbor_maximum_prefix_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "maximum-prefix <1-4294967295>", 
        "Specify neighbor router\n"
        "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Filter updates to/from this neighbor\n"
-       "Name of a prefix list\n"
-       "Filter incoming updates\n"
-       "Filter outgoing updates\n")
+       "Maximum number of prefix accept from this peer\n"
+       "maximum no. of prefix limit\n")
 
-DEFSH (VTYSH_BGPD, bgp_network_route_map_cmd_vtysh, 
-       "network A.B.C.D/M route-map WORD", 
+DEFSH (VTYSH_BGPD, vpnv4_network_cmd_vtysh, 
+       "network A.B.C.D/M rd ASN:nn_or_IP-address:nn tag WORD", 
        "Specify a network to announce via BGP\n"
        "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Route-map to modify the attributes\n"
-       "Name of the route map\n")
+       "Specify Route Distinguisher\n"
+       "VPN Route Distinguisher\n"
+       "BGP tag\n"
+       "tag value\n")
 
-DEFSH (VTYSH_OSPFD, area_vlink_authtype_authkey_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
-       "(authentication|) "
-       "(authentication-key|) AUTH_KEY", 
-       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
-       "Enable authentication on this virtual link\n" "dummy string \n"
-       "Authentication password (key)\n" "The OSPF password (key)")
+DEFSH (VTYSH_ZEBRA, show_ipv6_route_addr_cmd_vtysh, 
+       "show ipv6 route X:X::X:X", 
+       "Show running system information\n"
+       "IP information\n"
+       "IPv6 routing table\n"
+       "IPv6 Address\n")
 
-DEFSH (VTYSH_BGPD, show_ip_bgp_neighbor_damp_cmd_vtysh, 
-       "show ip bgp neighbors (A.B.C.D|X:X::X:X) dampened-routes", 
+DEFSH (VTYSH_BGPD, show_ip_bgp_neighbors_peer_cmd_vtysh, 
+       "show ip bgp neighbors (A.B.C.D|X:X::X:X)", 
        "Show running system information\n"
        "IP information\n"
        "BGP information\n"
        "Detailed information on TCP and BGP neighbor connections\n"
        "Neighbor to display information about\n"
-       "Neighbor to display information about\n"
-       "Display the dampened routes received from neighbor\n")
+       "Neighbor to display information about\n")
 
-DEFSH (VTYSH_OSPFD, no_ip_ospf_transmit_delay_addr_cmd_vtysh, 
-       "no ip ospf transmit-delay A.B.C.D", 
-       "Negate a command or set its defaults\n"
+DEFSH (VTYSH_OSPFD, debug_ospf_nsm_cmd_vtysh, 
+       "debug ospf nsm", 
+       "Debugging functions (see also 'undebug')\n"
+       "OSPF information\n"
+       "OSPF Neighbor State Machine\n")
+
+DEFSH (VTYSH_OSPFD, ip_ospf_message_digest_key_cmd_vtysh, 
+       "ip ospf message-digest-key <1-255> md5 KEY", 
        "IP Information\n"
        "OSPF interface commands\n"
-       "Link state transmit delay\n"
-       "Address of interface")
+       "Message digest authentication password (key)\n"
+       "Key ID\n"
+       "Use MD5 algorithm\n"
+       "The OSPF password (key)")
 
-DEFSH (VTYSH_BGPD, no_neighbor_attr_unchanged1_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged (as-path|next-hop|med)", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "BGP attribute is propagated unchanged to this neighbor\n"
-       "As-path attribute\n"
-       "Nexthop attribute\n"
-       "Med attribute\n")
-
-DEFSH (VTYSH_BGPD, bgp_network_cmd_vtysh, 
-       "network A.B.C.D/M", 
-       "Specify a network to announce via BGP\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_scan_cmd_vtysh, 
-       "show ip bgp scan", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP scan status\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_peer_in_prefix_filter_cmd_vtysh, 
-       "clear bgp (A.B.C.D|X:X::X:X) in prefix-filter", 
-       "Reset functions\n"
-       "BGP information\n"
-       "BGP neighbor address to clear\n"
-       "BGP IPv6 neighbor to clear\n"
-       "Soft reconfig inbound update\n"
-       "Push out the existing ORF prefix-list\n")
-
-DEFSH (VTYSH_RIPD, rip_offset_list_ifname_cmd_vtysh, 
-       "offset-list WORD (in|out) <0-16> IFNAME", 
-       "Modify RIP metric\n"
-       "Access-list name\n"
-       "For incoming updates\n"
-       "For outgoing updates\n"
-       "Metric value\n"
-       "Interface to match\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_rmap_onmatch_next_cmd_vtysh, 
-       "no on-match next", 
-       "Negate a command or set its defaults\n"
-       "Exit policy on matches\n"
-       "Next clause\n")
-
-DEFSH (VTYSH_OSPF6D, interface_area_cmd_vtysh, 
-       "interface IFNAME area A.B.C.D", 
-       "Enable routing on an IPv6 interface\n"
-       "Interface name(e.g. ep0)\n"
-       "Set the OSPF6 area ID\n"
-       "OSPF6 area ID in IPv4 address notation\n"
-      )
-
-DEFSH (VTYSH_RIPNGD, ripng_redistribute_kernel_routemap_cmd_vtysh, 
-       "redistribute kernel route-map WORD", 
+DEFSH (VTYSH_RIPNGD, ripng_redistribute_bgp_metric_routemap_cmd_vtysh, 
+       "redistribute bgp metric <0-16> route-map WORD", 
        "Redistribute information from another routing protocol\n"
-       "Kernel routes\n"
+       "Border Gateway Protocol (BGP)\n"
+       "Metric\n"
+       "Metric value\n"
        "Route map reference\n"
        "Pointer to route-map entries\n")
 
@@ -6349,148 +2551,24 @@
        "local preference (higher=more preferred)\n"
        "Configure default local preference value\n")
 
-DEFSH (VTYSH_BGPD, bgp_network_mask_natural_backdoor_cmd_vtysh, 
-       "network A.B.C.D backdoor", 
-       "Specify a network to announce via BGP\n"
-       "Network number\n"
-       "Specify a BGP backdoor route\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_community_all_cmd_vtysh, 
-       "show bgp community", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Display routes matching the communities\n")
-
-DEFSH (VTYSH_RIPNGD, ripng_redistribute_static_cmd_vtysh, 
-       "redistribute static", 
-       "Redistribute information from another routing protocol\n"
-       "Static routes\n")
-
-DEFSH (VTYSH_OSPFD, mpls_te_link_max_rsv_bw_cmd_vtysh, 
-       "mpls-te link max-rsv-bw BANDWIDTH", 
-       "MPLS-TE specific commands\n"
-       "Configure MPLS-TE link parameters\n"
-       "Maximum bandwidth that may be reserved\n"
-       "Bytes/second (IEEE floating point format)\n")
-
-DEFSH (VTYSH_BGPD, neighbor_prefix_list_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "prefix-list WORD (in|out)", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Filter updates to/from this neighbor\n"
-       "Name of a prefix list\n"
-       "Filter incoming updates\n"
-       "Filter outgoing updates\n")
-
-DEFSH (VTYSH_BGPD, undebug_bgp_fsm_cmd_vtysh, 
-       "undebug bgp fsm", 
-       "Disable debugging functions (see also 'debug')\n"
-       "Debugging functions (see also 'undebug')\n"
-       "BGP information\n"
-       "Finite State Machine\n")
-
-DEFSH (VTYSH_ZEBRA, show_zebra_client_cmd_vtysh, 
-       "show zebra client", 
-       "Show running system information\n"
-       "Zebra information"
-       "Client information")
-
-DEFSH (VTYSH_RIPD, rip_distance_source_access_list_cmd_vtysh, 
-       "distance <1-255> A.B.C.D/M WORD", 
+DEFSH (VTYSH_RIPD, rip_distance_source_cmd_vtysh, 
+       "distance <1-255> A.B.C.D/M", 
        "Administrative distance\n"
        "Distance value\n"
-       "IP source prefix\n"
-       "Access list name\n")
+       "IP source prefix\n")
 
-DEFSH (VTYSH_RIPNGD, ripng_passive_interface_cmd_vtysh, 
-       "passive-interface IFNAME", 
-       "Suppress routing updates on an interface\n"
-       "Interface name\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_neighbor_received_routes_cmd_vtysh, 
-       "show ip bgp neighbors (A.B.C.D|X:X::X:X) received-routes", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Neighbor to display information about\n"
-       "Display the received routes from neighbor\n")
-
-DEFSH (VTYSH_BGPD, dump_bgp_all_cmd_vtysh, 
-       "dump bgp all PATH", 
-       "Dump packet\n"
-       "BGP packet dump\n"
-       "Dump all BGP packets\n"
-       "Output filename\n")
-
-DEFSH (VTYSH_ZEBRA, no_debug_zebra_packet_cmd_vtysh, 
-       "no debug zebra packet", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "Zebra configuration\n"
-       "Debug option set for zebra packet\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_network_route_map_cmd_vtysh, 
-       "no network A.B.C.D/M route-map WORD", 
-       "Negate a command or set its defaults\n"
-       "Specify a network to announce via BGP\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Route-map to modify the attributes\n"
-       "Name of the route map\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_neighbor_received_routes_cmd_vtysh, 
-       "show ip bgp ipv4 (unicast|multicast) neighbors (A.B.C.D|X:X::X:X) received-routes", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Neighbor to display information about\n"
-       "Display the received routes from neighbor\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_peer_soft_out_cmd_vtysh, 
-       "clear bgp (A.B.C.D|X:X::X:X) soft out", 
-       "Reset functions\n"
-       "BGP information\n"
-       "BGP neighbor address to clear\n"
-       "BGP IPv6 neighbor to clear\n"
-       "Soft reconfig\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_BGPD, no_default_attr_localpref_cmd_vtysh, 
-       "no default-attr local-pref NUMBER", 
-       "Negate a command or set its defaults\n"
-       "Unset default local preference value\n"
-       "Unset default local preference value\n"
-       "Value\n")
-
-DEFSH (VTYSH_ZEBRA, ip_address_cmd_vtysh, 
-       "ip address A.B.C.D/M", 
-       "Interface Internet Protocol config commands\n"
-       "Set the IP address of an interface\n"
-       "IP address (e.g. 10.0.0.1/8)\n")
-
-DEFSH (VTYSH_ZEBRA, no_ipv6_route_pref_cmd_vtysh, 
-       "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) <1-255>", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Establish static routes\n"
-       "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
-       "IPv6 gateway address\n"
-       "IPv6 gateway interface name\n"
-       "Distance value for this prefix\n")
-
-DEFSH (VTYSH_ZEBRA, ipv6_route_ifname_cmd_vtysh, 
-       "ipv6 route X:X::X:X/M X:X::X:X INTERFACE", 
-       "IP information\n"
-       "Establish static routes\n"
-       "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
-       "IPv6 gateway address\n"
-       "IPv6 gateway interface name\n")
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, ipv6_prefix_list_seq_le_cmd_vtysh, 
+       "ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) X:X::X:X/M le <0-128>", 
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "sequence number of an entry\n"
+       "Sequence number\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
+       "Maximum prefix length to be matched\n"
+       "Maximum prefix length\n")
 
 DEFSH (VTYSH_BGPD, show_bgp_regexp_cmd_vtysh, 
        "show bgp regexp .LINE", 
@@ -6499,110 +2577,27 @@
        "Display routes matching the AS path regular expression\n"
        "A regular-expression to match the BGP AS paths\n")
 
-DEFSH (VTYSH_BGPD, show_debugging_bgp_cmd_vtysh, 
-       "show debugging bgp", 
+DEFSH (VTYSH_BGPD, show_ipv6_bgp_regexp_cmd_vtysh, 
+       "show ipv6 bgp regexp .LINE", 
        "Show running system information\n"
-       "Debugging functions (see also 'undebug')\n"
-       "BGP information\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_as_in_cmd_vtysh, 
-       "clear ip bgp <1-65535> in", 
-       "Reset functions\n"
        "IP information\n"
        "BGP information\n"
-       "Clear peers with the AS number\n"
-       "Soft reconfig inbound update\n")
+       "Display routes matching the AS path regular expression\n"
+       "A regular-expression to match the BGP AS paths\n")
 
-DEFSH (VTYSH_OSPF6D, interface_area_plist_cmd_vtysh, 
-       "interface IFNAME area A.B.C.D prefix-list WORD", 
-       "Enable routing on an IPv6 interface\n"
-       "Interface name(e.g. ep0)\n"
-       "Set the OSPF6 area ID\n"
-       "OSPF6 area ID in IPv4 address notation\n"
-       "Advertise I/F Address only match entries of prefix-list\n"
-       "IPv6 prefix-list name\n"
-      )
-
-DEFSH (VTYSH_OSPFD, capability_opaque_cmd_vtysh, 
-       "capability opaque", 
-       "Enable specific OSPF feature\n"
-       "Opaque LSA\n")
-
-DEFSH (VTYSH_OSPFD, no_ip_ospf_transmit_delay_cmd_vtysh, 
-       "no ip ospf transmit-delay", 
+DEFSH (VTYSH_OSPFD, no_ip_ospf_priority_cmd_vtysh, 
+       "no ip ospf priority", 
        "Negate a command or set its defaults\n"
        "IP Information\n"
        "OSPF interface commands\n"
-       "Link state transmit delay\n")
+       "Router priority\n")
 
-DEFSH (VTYSH_BGPD, clear_ip_bgp_external_ipv4_out_cmd_vtysh, 
-       "clear ip bgp external ipv4 (unicast|multicast) out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all external peers\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_OSPFD, ospf_default_information_originate_type_cmd_vtysh, 
-       "default-information originate metric-type (1|2)", 
-       "Control distribution of default information\n"
-       "Distribute a default route\n"
-       "OSPF metric type for default routes\n"
-       "Set OSPF External Type 1 metrics\n"
-       "Set OSPF External Type 2 metrics\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ipv6_prefix_list_name_seq_cmd_vtysh, 
-       "show ipv6 prefix-list WORD seq <1-4294967295>", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "sequence number of an entry\n"
-       "Sequence number\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_soft_cmd_vtysh, 
-       "clear ip bgp A.B.C.D soft", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP neighbor address to clear\n"
-       "Soft reconfig\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_route_cmd_vtysh, 
-       "show bgp X:X::X:X", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Network in the BGP routing table to display\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_attr_unchanged3_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged next-hop (as-path|med)", 
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_set_ip_nexthop_cmd_vtysh, 
+       "no set ip next-hop", 
        "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "BGP attribute is propagated unchanged to this neighbor\n"
-       "Nexthop attribute\n"
-       "As-path attribute\n"
-       "Med attribute\n")
-
-DEFSH (VTYSH_OSPFD, ospf_distance_ospf_intra_external_cmd_vtysh, 
-       "distance ospf intra-area <1-255> external <1-255>", 
-       "Define an administrative distance\n"
-       "OSPF Administrative distance\n"
-       "Intra-area routes\n"
-       "Distance for intra-area routes\n"
-       "External routes\n"
-       "Distance for external routes\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_in_cmd_vtysh, 
-       "clear ip bgp A.B.C.D in", 
-       "Reset functions\n"
+       "Set values in destination routing protocol\n"
        "IP information\n"
-       "BGP information\n"
-       "BGP neighbor address to clear\n"
-       "Soft reconfig inbound update\n")
+       "Next hop address\n")
 
 DEFSH (VTYSH_OSPFD, ip_ospf_dead_interval_addr_cmd_vtysh, 
        "ip ospf dead-interval <1-65535> A.B.C.D", 
@@ -6612,53 +2607,121 @@
        "Seconds\n"
        "Address of interface")
 
-DEFSH (VTYSH_OSPFD, ospf_default_information_originate_type_routemap_cmd_vtysh, 
-       "default-information originate metric-type (1|2) route-map WORD", 
-       "Control distribution of default information\n"
-       "Distribute a default route\n"
-       "OSPF metric type for default routes\n"
-       "Set OSPF External Type 1 metrics\n"
-       "Set OSPF External Type 2 metrics\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, show_ipv6_prefix_list_name_seq_cmd_vtysh, 
+       "show ipv6 prefix-list WORD seq <1-4294967295>", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "sequence number of an entry\n"
+       "Sequence number\n")
 
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_extended_host_any_cmd_vtysh, 
-       "no access-list (<100-199>|<2000-2699>) (deny|permit) ip host A.B.C.D any", 
-       "Negate a command or set its defaults\n"
+DEFSH (VTYSH_RIPNGD|VTYSH_OSPF6D|VTYSH_BGPD, ipv6_access_list_cmd_vtysh, 
+       "ipv6 access-list WORD (deny|permit) X:X::X:X/M", 
+       "IPv6 information\n"
        "Add an access list entry\n"
-       "IP extended access list\n"
-       "IP extended access list (expanded range)\n"
+       "IPv6 zebra access-list\n"
        "Specify packets to reject\n"
        "Specify packets to forward\n"
-       "Any Internet Protocol\n"
-       "A single source host\n"
-       "Source address\n"
-       "Any destination host\n")
+       "Prefix to match. e.g. 3ffe:506::/32\n")
 
-DEFSH (VTYSH_BGPD, neighbor_allowas_in_arg_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "allowas-in <1-10>", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Accept as-path with my AS present in it\n"
-       "Number of occurances of AS number\n")
-
-DEFSH (VTYSH_BGPD, neighbor_ebgp_multihop_ttl_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "ebgp-multihop <1-255>", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Allow EBGP neighbors not on directly connected networks\n"
-       "maximum hop count\n")
-
-DEFSH (VTYSH_BGPD, no_debug_bgp_keepalive_cmd_vtysh, 
-       "no debug bgp keepalives", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
+DEFSH (VTYSH_BGPD, clear_ip_bgp_external_cmd_vtysh, 
+       "clear ip bgp external", 
+       "Reset functions\n"
+       "IP information\n"
        "BGP information\n"
-       "BGP keepalives\n")
+       "Clear all external peers\n")
 
-DEFSH (VTYSH_BGPD, show_bgp_community2_cmd_vtysh, 
-       "show bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
+DEFSH (VTYSH_OSPFD, no_area_authentication_cmd_vtysh, 
+       "no area (A.B.C.D|<0-4294967295>) authentication", 
+       "Negate a command or set its defaults\n"
+       "OSPF area parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "Enable authentication\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, ip_prefix_list_seq_ge_le_cmd_vtysh, 
+       "ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M ge <0-32> le <0-32>", 
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "sequence number of an entry\n"
+       "Sequence number\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Minimum prefix length to be matched\n"
+       "Minimum prefix length\n"
+       "Maximum prefix length to be matched\n"
+       "Maximum prefix length\n")
+
+DEFSH (VTYSH_BGPD, no_set_aspath_prepend_val_cmd_vtysh, 
+       "no set as-path prepend .<1-65535>", 
+       "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "Prepend string for a BGP AS-path attribute\n"
+       "Prepend to the as-path\n"
+       "AS number\n")
+
+DEFSH (VTYSH_OSPFD, area_stub_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) stub", 
+       "OSPF area parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "Configure OSPF area as stub\n")
+
+DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_database_cmd_vtysh, 
+       "show ipv6 ospf6 database", 
        "Show running system information\n"
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "LSA Database\n"
+       )
+
+DEFSH (VTYSH_RIPD, no_rip_default_metric_val_cmd_vtysh, 
+       "no default-metric <1-16>", 
+       "Negate a command or set its defaults\n"
+       "Set a metric of redistribute routes\n"
+       "Default metric\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_prefix_cmd_vtysh, 
+       "show ip bgp A.B.C.D/M", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_external_in_cmd_vtysh, 
+       "clear bgp external in", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear all external peers\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, show_ip_access_list_name_cmd_vtysh, 
+       "show ip access-list (<1-99>|<100-199>|<1300-1999>|<2000-2699>|WORD)", 
+       "Show running system information\n"
+       "IP information\n"
+       "List IP access lists\n"
+       "IP standard access list\n"
+       "IP extended access list\n"
+       "IP standard access list (expanded range)\n"
+       "IP extended access list (expanded range)\n"
+       "IP zebra access-list\n")
+
+DEFSH (VTYSH_BGPD, set_community_delete_cmd_vtysh, 
+       "set comm-list (<1-99>|<100-199>|WORD) delete", 
+       "Set values in destination routing protocol\n"
+       "set BGP community list (for deletion)\n"
+       "Community-list number (standard)\n"
+       "Communitly-list number (expanded)\n"
+       "Community-list name\n"
+       "Delete matching communities\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_bgp_community3_exact_cmd_vtysh, 
+       "show ipv6 bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
+       "Show running system information\n"
+       "IPv6 information\n"
        "BGP information\n"
        "Display routes matching the communities\n"
        "community number\n"
@@ -6668,154 +2731,12 @@
        "community number\n"
        "Do not send outside local AS (well-known community)\n"
        "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n")
-
-DEFSH (VTYSH_OSPFD, no_ip_ospf_priority_addr_cmd_vtysh, 
-       "no ip ospf priority A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Router priority\n"
-       "Address of interface")
-
-DEFSH (VTYSH_RIPD, no_rip_default_metric_cmd_vtysh, 
-       "no default-metric", 
-       "Negate a command or set its defaults\n"
-       "Set a metric of redistribute routes\n"
-       "Default metric\n")
-
-DEFSH (VTYSH_ZEBRA, no_bandwidth_if_val_cmd_vtysh, 
-       "no bandwidth <1-10000000>", 
-       "Negate a command or set its defaults\n"
-       "Set bandwidth informational parameter\n"
-       "Bandwidth in kilobits\n")
-
-DEFSH (VTYSH_RIPD, send_lifetime_infinite_month_day_cmd_vtysh, 
-       "send-lifetime HH:MM:SS MONTH <1-31> <1993-2035> infinite", 
-       "Set send lifetime of the key\n"
-       "Time to start\n"
-       "Month of the year to start\n"
-       "Day of th month to start\n"
-       "Year to start\n"
-       "Never expires")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_bgp_routemap_cmd_vtysh, 
-       "no redistribute bgp route-map WORD", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Border Gateway Protocol (BGP)\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_BGPD, no_vpnv4_network_cmd_vtysh, 
-       "no network A.B.C.D/M rd ASN:nn_or_IP-address:nn tag WORD", 
-       "Negate a command or set its defaults\n"
-       "Specify a network to announce via BGP\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Specify Route Distinguisher\n"
-       "VPN Route Distinguisher\n"
-       "BGP tag\n"
-       "tag value\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_filter_list_cmd_vtysh, 
-       "show ip bgp filter-list WORD", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display routes conforming to the filter-list\n"
-       "Regular expression access list name\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_rd_route_cmd_vtysh, 
-       "show ip bgp vpnv4 rd ASN:nn_or_IP-address:nn A.B.C.D", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display VPNv4 NLRI specific information\n"
-       "Display information for a route distinguisher\n"
-       "VPN Route Distinguisher\n"
-       "Network in the BGP routing table to display\n")
-
-DEFSH (VTYSH_BGPD, undebug_bgp_keepalive_cmd_vtysh, 
-       "undebug bgp keepalives", 
-       "Disable debugging functions (see also 'debug')\n"
-       "BGP information\n"
-       "BGP keepalives\n")
-
-DEFSH (VTYSH_OSPFD, no_debug_ospf_ism_cmd_vtysh, 
-       "no debug ospf ism", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "OSPF information\n"
-       "OSPF Interface State Machine")
-
-DEFSH (VTYSH_RIPD, send_lifetime_duration_day_month_cmd_vtysh, 
-       "send-lifetime HH:MM:SS <1-31> MONTH <1993-2035> duration <1-2147483646>", 
-       "Set send lifetime of the key\n"
-       "Time to start\n"
-       "Day of th month to start\n"
-       "Month of the year to start\n"
-       "Year to start\n"
-       "Duration of the key\n"
-       "Duration seconds\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_attr_unchanged5_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged as-path next-hop med", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "BGP attribute is propagated unchanged to this neighbor\n"
-       "As-path attribute\n"
-       "Nexthop attribute\n"
-       "Med attribute\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_ipv4_soft_in_cmd_vtysh, 
-       "clear ip bgp A.B.C.D ipv4 (unicast|multicast) soft in", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP neighbor address to clear\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_RIPD, rip_default_information_originate_cmd_vtysh, 
-       "default-information originate", 
-       "Control distribution of default route\n"
-       "Distribute a default route\n")
-
-DEFSH (VTYSH_RIPD, rip_default_metric_cmd_vtysh, 
-       "default-metric <1-16>", 
-       "Set a metric of redistribute routes\n"
-       "Default metric\n")
-
-DEFSH (VTYSH_BGPD, bgp_confederation_identifier_cmd_vtysh, 
-       "bgp confederation identifier <1-65535>", 
-       "BGP specific commands\n"
-       "AS confederation parameters\n"
-       "AS number\n"
-       "Set routing domain confederation AS\n")
-
-DEFSH (VTYSH_RIPD, no_key_string_cmd_vtysh, 
-       "no key-string [LINE]", 
-       "Negate a command or set its defaults\n"
-       "Unset key string\n"
-       "The key\n")
-
-DEFSH (VTYSH_BGPD, debug_bgp_update_direct_cmd_vtysh, 
-       "debug bgp updates (in|out)", 
-       "Debugging functions (see also 'undebug')\n"
-       "BGP information\n"
-       "BGP updates\n"
-       "Inbound updates\n"
-       "Outbound updates\n")
-
-DEFSH (VTYSH_OSPFD, no_auto_cost_reference_bandwidth_cmd_vtysh, 
-       "no auto-cost reference-bandwidth", 
-       "Negate a command or set its defaults\n"
-       "Calculate OSPF interface cost according to bandwidth\n"
-       "Use reference bandwidth method to assign OSPF cost\n")
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "Exact match of the communities")
 
 DEFSH (VTYSH_BGPD, no_ip_community_list_all_cmd_vtysh, 
        "no ip community-list (WORD|<1-99>|<100-199>)", 
@@ -6826,138 +2747,58 @@
        "Community list number (standard)\n"
        "Community list number (expanded)\n")
 
-DEFSH (VTYSH_BGPD, show_ip_bgp_flap_filter_list_cmd_vtysh, 
-       "show ip bgp flap-statistics filter-list WORD", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display flap statistics of routes\n"
-       "Display routes conforming to the filter-list\n"
-       "Regular expression access list name\n")
+DEFSH (VTYSH_RIPD, rip_redistribute_rip_cmd_vtysh, 
+       "redistribute rip", 
+       "Redistribute information from another routing protocol\n"
+       "Routing Information Protocol (RIP)\n")
 
-DEFSH (VTYSH_ZEBRA, ip_irdp_maxadvertinterval_cmd_vtysh, 
-       "ip irdp maxadvertinterval (0|<4-1800>)", 
-       "IP information\n"
-       "ICMP Router discovery on this interface\n"
-       "Set maximum time between advertisement\n"
-       "Maximum advertisement interval in seconds\n")
+DEFSH (VTYSH_OSPF6D, ipv6_ospf6_hellointerval_cmd_vtysh, 
+       "ipv6 ospf6 hello-interval HELLO_INTERVAL", 
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Time between HELLO packets\n"
+       "<1-65535> Seconds\n"
+       )
 
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ipv6_prefix_list_summary_name_cmd_vtysh, 
-       "show ipv6 prefix-list summary WORD", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Summary of prefix lists\n"
-       "Name of a prefix list\n")
+DEFSH (VTYSH_RIPNGD, no_ripng_passive_interface_cmd_vtysh, 
+       "no passive-interface IFNAME", 
+       "Negate a command or set its defaults\n"
+       "Suppress routing updates on an interface\n"
+       "Interface name\n")
 
-DEFSH (VTYSH_OSPFD, area_vlink_authtype_args_authkey_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
-       "(authentication|) (message-digest|null) "
-       "(authentication-key|) AUTH_KEY", 
-       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
-       "Enable authentication on this virtual link\n" "dummy string \n" "Use null authentication\n" "Use message-digest authentication\n"
-       "Authentication password (key)\n" "The OSPF password (key)")
-
-DEFSH (VTYSH_BGPD, bgp_network_mask_natural_route_map_cmd_vtysh, 
-       "network A.B.C.D route-map WORD", 
+DEFSH (VTYSH_BGPD, no_bgp_network_mask_natural_backdoor_cmd_vtysh, 
+       "no network A.B.C.D backdoor", 
+       "Negate a command or set its defaults\n"
        "Specify a network to announce via BGP\n"
        "Network number\n"
-       "Route-map to modify the attributes\n"
-       "Name of the route map\n")
+       "Specify a BGP backdoor route\n")
 
-DEFSH (VTYSH_ZEBRA, show_interface_cmd_vtysh, 
-       "show interface [IFNAME]", 
-       "Show running system information\n"
-       "Interface status and configuration\n"
-       "Inteface name\n")
+DEFSH (VTYSH_ZEBRA, multicast_cmd_vtysh, 
+       "multicast", 
+       "Set multicast flag to interface\n")
 
-DEFSH (VTYSH_BGPD, show_bgp_ipv6_cmd_vtysh, 
-       "show bgp ipv6", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Address family\n")
+DEFSH (VTYSH_OSPFD, ospf_distance_ospf_external_inter_intra_cmd_vtysh, 
+       "distance ospf external <1-255> inter-area <1-255> intra-area <1-255>", 
+       "Define an administrative distance\n"
+       "OSPF Administrative distance\n"
+       "External routes\n"
+       "Distance for external routes\n"
+       "Inter-area routes\n"
+       "Distance for inter-area routes\n"
+       "Intra-area routes\n"
+       "Distance for intra-area routes\n")
 
-DEFSH (VTYSH_BGPD, match_community_exact_cmd_vtysh, 
-       "match community (<1-99>|<100-199>|WORD) exact-match", 
-       "Match values from routing table\n"
-       "Match BGP community list\n"
-       "Community-list number (standard)\n"
-       "Community-list number (expanded)\n"
-       "Community-list name\n"
-       "Do exact matching of communities\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_as_vpnv4_soft_out_cmd_vtysh, 
-       "clear ip bgp <1-65535> vpnv4 unicast soft out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear peers with the AS number\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Soft reconfig\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, ip_prefix_list_description_cmd_vtysh, 
-       "ip prefix-list WORD description .LINE", 
-       "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "Prefix-list specific description\n"
-       "Up to 80 characters describing this prefix-list\n")
-
-DEFSH (VTYSH_ZEBRA, ipv6_route_ifname_pref_cmd_vtysh, 
-       "ipv6 route X:X::X:X/M X:X::X:X INTERFACE <1-255>", 
-       "IP information\n"
-       "Establish static routes\n"
-       "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
-       "IPv6 gateway address\n"
-       "IPv6 gateway interface name\n"
-       "Distance value for this prefix\n")
-
-DEFSH (VTYSH_BGPD, bgp_redistribute_ipv6_metric_cmd_vtysh, 
-       "redistribute (connected|kernel|ospf6|ripng|static) metric <0-4294967295>", 
+DEFSH (VTYSH_RIPD, rip_redistribute_type_cmd_vtysh, 
+       "redistribute (kernel|connected|static|ospf|bgp)", 
        "Redistribute information from another routing protocol\n"
-       "Connected\n"
        "Kernel routes\n"
-       "Open Shurtest Path First (OSPFv3)\n"
-       "Routing Information Protocol (RIPng)\n"
+       "Connected\n"
        "Static routes\n"
-       "Metric for redistributed routes\n"
-       "Default metric\n")
+       "Open Shortest Path First (OSPF)\n"
+       "Border Gateway Protocol (BGP)\n")
 
-DEFSH (VTYSH_RIPD, rip_neighbor_cmd_vtysh, 
-       "neighbor A.B.C.D", 
-       "Specify a neighbor router\n"
-       "Neighbor address\n")
-
-DEFSH (VTYSH_RIPD, no_rip_default_metric_val_cmd_vtysh, 
-       "no default-metric <1-16>", 
-       "Negate a command or set its defaults\n"
-       "Set a metric of redistribute routes\n"
-       "Default metric\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_bgp_cmd_vtysh, 
-       "show ipv6 bgp", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n")
-
-DEFSH (VTYSH_BGPD, neighbor_route_reflector_client_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "route-reflector-client", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Configure a neighbor as Route Reflector client\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_all_soft_cmd_vtysh, 
-       "clear ip bgp * soft", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all peers\n"
-       "Soft reconfig\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_extended_host_mask_cmd_vtysh, 
-       "access-list (<100-199>|<2000-2699>) (deny|permit) ip host A.B.C.D A.B.C.D A.B.C.D", 
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_extended_host_host_cmd_vtysh, 
+       "access-list (<100-199>|<2000-2699>) (deny|permit) ip host A.B.C.D host A.B.C.D", 
        "Add an access list entry\n"
        "IP extended access list\n"
        "IP extended access list (expanded range)\n"
@@ -6966,68 +2807,18 @@
        "Any Internet Protocol\n"
        "A single source host\n"
        "Source address\n"
-       "Destination address\n"
-       "Destination Wildcard bits\n")
+       "A single destination host\n"
+       "Destination address\n")
 
-DEFSH (VTYSH_BGPD, ip_extcommunity_list_standard_cmd_vtysh, 
-       "ip extcommunity-list <1-99> (deny|permit) .AA:NN", 
-       "IP information\n"
-       "Add a extended community list entry\n"
-       "Extended Community list number (standard)\n"
-       "Specify community to reject\n"
-       "Specify community to accept\n"
-       "Extended community attribute in 'rt aa:nn_or_IPaddr:nn' OR 'soo aa:nn_or_IPaddr:nn' format\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_config_type_cmd_vtysh, 
-       "no bgp config-type", 
-       "Negate a command or set its defaults\n"
+DEFSH (VTYSH_BGPD, bgp_config_type_cmd_vtysh, 
+       "bgp config-type (cisco|zebra)", 
        "BGP information\n"
-       "Display configuration type\n")
+       "Configuration type\n"
+       "cisco\n"
+       "zebra\n")
 
-DEFSH (VTYSH_BGPD, no_neighbor_filter_list_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "filter-list WORD (in|out)", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Establish BGP filters\n"
-       "AS path access-list name\n"
-       "Filter incoming routes\n"
-       "Filter outgoing routes\n")
-
-DEFSH (VTYSH_RIPD, ip_rip_receive_version_1_cmd_vtysh, 
-       "ip rip receive version 1 2", 
-       "IP information\n"
-       "Routing Information Protocol\n"
-       "Advertisement reception\n"
-       "Version control\n"
-       "RIP version 1\n"
-       "RIP version 2\n")
-
-DEFSH (VTYSH_BGPD, no_debug_bgp_events_cmd_vtysh, 
-       "no debug bgp events", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "BGP information\n"
-       "BGP events\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_group_cmd_vtysh, 
-       "clear bgp ipv6 peer-group WORD", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "Clear all members of peer-group\n"
-       "BGP peer-group name\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_port_val_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X) " "port <0-65535>", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nIPv6 address\n"
-       "Neighbor's BGP port\n"
-       "TCP port number\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_community3_exact_cmd_vtysh, 
-       "show ip bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
+DEFSH (VTYSH_BGPD, show_ip_bgp_community2_exact_cmd_vtysh, 
+       "show ip bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
        "Show running system information\n"
        "IP information\n"
        "BGP information\n"
@@ -7040,594 +2831,8 @@
        "Do not send outside local AS (well-known community)\n"
        "Do not advertise to any peer (well-known community)\n"
        "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
        "Exact match of the communities")
 
-DEFSH (VTYSH_RIPD, no_key_cmd_vtysh, 
-       "no key <0-2147483647>", 
-       "Negate a command or set its defaults\n"
-       "Delete a key\n"
-       "Key identifier number\n")
-
-DEFSH (VTYSH_BGPD, ipv6_bgp_network_cmd_vtysh, 
-       "network X:X::X:X/M", 
-       "Specify a network to announce via BGP\n"
-       "IPv6 prefix <network>/<length>\n")
-
-DEFSH (VTYSH_OSPFD, show_mpls_te_router_cmd_vtysh, 
-       "show mpls-te router", 
-       "Show running system information\n"
-       "MPLS-TE information\n"
-       "Router information\n")
-
-DEFSH (VTYSH_BGPD, ipv6_bgp_neighbor_routes_cmd_vtysh, 
-       "show ipv6 bgp neighbors (A.B.C.D|X:X::X:X) routes", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "BGP information\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Neighbor to display information about\n"
-       "Display routes learned from neighbor\n")
-
-DEFSH (VTYSH_BGPD, ip_community_list_name_standard2_cmd_vtysh, 
-       "ip community-list standard WORD (deny|permit)", 
-       "IP information\n"
-       "Add a community list entry\n"
-       "Add a standard community-list entry\n"
-       "Community list name\n"
-       "Specify community to reject\n"
-       "Specify community to accept\n")
-
-DEFSH (VTYSH_OSPFD, no_refresh_timer_val_cmd_vtysh, 
-       "no refresh timer <10-1800>", 
-       "Adjust refresh parameters\n"
-       "Unset refresh timer\n"
-       "Timer value in seconds\n")
-
-DEFSH (VTYSH_BGPD, ip_extcommunity_list_name_expanded_cmd_vtysh, 
-       "ip extcommunity-list expanded WORD (deny|permit) .LINE", 
-       "IP information\n"
-       "Add a extended community list entry\n"
-       "Specify expanded extcommunity-list\n"
-       "Extended Community list name\n"
-       "Specify community to reject\n"
-       "Specify community to accept\n"
-       "An ordered list as a regular-expression\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_as_cmd_vtysh, 
-       "clear bgp <1-65535>", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear peers with the AS number\n")
-
-DEFSH (VTYSH_OSPF6D, no_redistribute_ospf6_cmd_vtysh, 
-       "no redistribute ospf6", 
-       "Negate a command or set its defaults\n"
-       "Redistribute control\n"
-       "OSPF6 route\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_community_cmd_vtysh, 
-       "show ip bgp community (AA:NN|local-AS|no-advertise|no-export)", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n")
-
-DEFSH (VTYSH_OSPFD, no_area_export_list_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) export-list NAME", 
-       "Negate a command or set its defaults\n"
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Unset the filter for networks announced to other areas\n"
-       "Name of the access-list\n")
-
-DEFSH (VTYSH_OSPFD, no_ospf_hello_interval_cmd_vtysh, 
-       "no ospf hello-interval", 
-       "Negate a command or set its defaults\n"
-       "OSPF interface commands\n"
-       "Time between HELLO packets\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_mbgp_filter_list_cmd_vtysh, 
-       "show ipv6 mbgp filter-list WORD", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "MBGP information\n"
-       "Display routes conforming to the filter-list\n"
-       "Regular expression access list name\n")
-
-DEFSH (VTYSH_RIPD, debug_rip_packet_direct_cmd_vtysh, 
-       "debug rip packet (recv|send)", 
-       "Debugging functions (see also 'undebug')\n"
-       "RIP information\n"
-       "RIP packet\n"
-       "RIP receive packet\n"
-       "RIP send packet\n")
-
-DEFSH (VTYSH_BGPD, no_set_ecommunity_rt_cmd_vtysh, 
-       "no set extcommunity rt", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "BGP extended community attribute\n"
-       "Route Target extened communityt\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_ipv6_community_list_cmd_vtysh, 
-       "show bgp ipv6 community-list WORD", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Display routes matching the community-list\n"
-       "community-list name\n")
-
-DEFSH (VTYSH_OSPFD, ospf_router_id_cmd_vtysh, 
-       "ospf router-id A.B.C.D", 
-       "OSPF specific commands\n"
-       "router-id for the OSPF process\n"
-       "OSPF router-id in IP address format\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_in_prefix_filter_cmd_vtysh, 
-       "clear bgp ipv6 (A.B.C.D|X:X::X:X) in prefix-filter", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "BGP neighbor address to clear\n"
-       "BGP IPv6 neighbor to clear\n"
-       "Soft reconfig inbound update\n"
-       "Push out the existing ORF prefix-list\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_all_cmd_vtysh, 
-       "clear bgp ipv6 *", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "Clear all peers\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD, no_match_interface_cmd_vtysh, 
-       "no match interface", 
-       "Negate a command or set its defaults\n"
-       "Match values from routing table\n"
-       "Match first hop interface of route\n")
-
-DEFSH (VTYSH_ZEBRA, bandwidth_if_cmd_vtysh, 
-       "bandwidth <1-10000000>", 
-       "Set bandwidth informational parameter\n"
-       "Bandwidth in kilobits\n")
-
-DEFSH (VTYSH_OSPF6D, no_debug_ospf6_damp_cmd_vtysh, 
-       "no debug ospf6 damp", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Flap-dampening information\n"
-      )
-
-DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_camp_config_cmd_vtysh, 
-       "show ipv6 ospf6 damp config", 
-       "Show running system information\n"
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Flap-dampening information\n"
-       "shows dampening configuration\n"
-      )
-
-DEFSH (VTYSH_OSPF6D, show_version_ospf6_cmd_vtysh, 
-       "show version ospf6", 
-       "Show running system information\n"
-       "Displays ospf6d version\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_route_server_client_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "route-server-client", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Configure a neighbor as Route Server client\n")
-
-DEFSH (VTYSH_ZEBRA, debug_zebra_packet_detail_cmd_vtysh, 
-       "debug zebra packet (recv|send) detail", 
-       "Debugging functions (see also 'undebug')\n"
-       "Zebra configuration\n"
-       "Debug option set for zebra packet\n"
-       "Debug option set for receive packet\n"
-       "Debug option set for send packet\n"
-       "Debug option set detaied information\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_ripng_cmd_vtysh, 
-       "no redistribute ripng", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "RIPng route\n")
-
-DEFSH (VTYSH_RIPD, no_rip_split_horizon_cmd_vtysh, 
-       "no ip split-horizon", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Perform split horizon\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_confederation_identifier_cmd_vtysh, 
-       "no bgp confederation identifier", 
-       "Negate a command or set its defaults\n"
-       "BGP specific commands\n"
-       "AS confederation parameters\n"
-       "AS number\n")
-
-DEFSH (VTYSH_OSPFD, ospf_distance_ospf_inter_external_intra_cmd_vtysh, 
-       "distance ospf inter-area <1-255> external <1-255> intra-area <1-255>", 
-       "Define an administrative distance\n"
-       "OSPF Administrative distance\n"
-       "Inter-area routes\n"
-       "Distance for inter-area routes\n"
-       "External routes\n"
-       "Distance for external routes\n"
-       "Intra-area routes\n"
-       "Distance for intra-area routes\n")
-
-DEFSH (VTYSH_BGPD, no_set_ecommunity_soo_cmd_vtysh, 
-       "no set extcommunity soo", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "BGP extended community attribute\n"
-       "Site-of-Origin extended community\n")
-
-DEFSH (VTYSH_ZEBRA, no_ip_address_label_cmd_vtysh, 
-       "no ip address A.B.C.D/M label LINE", 
-       "Negate a command or set its defaults\n"
-       "Interface Internet Protocol config commands\n"
-       "Set the IP address of an interface\n"
-       "IP address (e.g. 10.0.0.1/8)\n"
-       "Label of this address\n"
-       "Label\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_neighbors_cmd_vtysh, 
-       "show ip bgp ipv4 (unicast|multicast) neighbors", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Detailed information on TCP and BGP neighbor connections\n")
-
-DEFSH (VTYSH_OSPFD, no_ospf_transmit_delay_cmd_vtysh, 
-       "no ospf transmit-delay", 
-       "Negate a command or set its defaults\n"
-       "OSPF interface commands\n"
-       "Link state transmit delay\n")
-
-DEFSH (VTYSH_OSPFD|VTYSH_OSPF6D, ospf6_routemap_no_set_metric_type_cmd_vtysh, 
-       "no set metric-type (type-1|type-2)", 
-       "Negate a command or set its defaults\n"
-       "Set value\n"
-       "Type of metric\n"
-       "OSPF6 external type 1 metric\n"
-       "OSPF6 external type 2 metric\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_bgp_regexp_cmd_vtysh, 
-       "show ipv6 bgp regexp .LINE", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display routes matching the AS path regular expression\n"
-       "A regular-expression to match the BGP AS paths\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_all_out_cmd_vtysh, 
-       "clear ip bgp * out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all peers\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_bgp_filter_list_cmd_vtysh, 
-       "show ipv6 bgp filter-list WORD", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "BGP information\n"
-       "Display routes conforming to the filter-list\n"
-       "Regular expression access list name\n")
-
-DEFSH (VTYSH_BGPD, bgp_redistribute_ipv4_cmd_vtysh, 
-       "redistribute (connected|kernel|ospf|rip|static)", 
-       "Redistribute information from another routing protocol\n"
-       "Connected\n"
-       "Kernel routes\n"
-       "Open Shurtest Path First (OSPF)\n"
-       "Routing Information Protocol (RIP)\n"
-       "Static routes\n")
-
-DEFSH (VTYSH_OSPFD, no_ospf_message_digest_key_cmd_vtysh, 
-       "no ospf message-digest-key <1-255>", 
-       "Negate a command or set its defaults\n"
-       "OSPF interface commands\n"
-       "Message digest authentication password (key)\n"
-       "Key ID\n")
-
-DEFSH (VTYSH_OSPFD, ospf_message_digest_key_cmd_vtysh, 
-       "ospf message-digest-key <1-255> md5 KEY", 
-       "OSPF interface commands\n"
-       "Message digest authentication password (key)\n"
-       "Key ID\n"
-       "Use MD5 algorithm\n"
-       "The OSPF password (key)")
-
-DEFSH (VTYSH_OSPFD, neighbor_poll_interval_cmd_vtysh, 
-       "neighbor A.B.C.D poll-interval <1-65535>", 
-       "Specify neighbor router\n"
-       "Neighbor IP address\n"
-       "Dead Neighbor Polling interval\n"
-       "Seconds\n")
-
-DEFSH (VTYSH_BGPD, neighbor_peer_group_cmd_vtysh, 
-       "neighbor WORD peer-group", 
-       "Specify neighbor router\n"
-       "Neighbor tag\n"
-       "Configure peer-group\n")
-
-DEFSH (VTYSH_OSPFD, mpls_te_link_maxbw_cmd_vtysh, 
-       "mpls-te link max-bw BANDWIDTH", 
-       "MPLS-TE specific commands\n"
-       "Configure MPLS-TE link parameters\n"
-       "Maximum bandwidth that can be used\n"
-       "Bytes/second (IEEE floating point format)\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_ipv4_in_prefix_filter_cmd_vtysh, 
-       "clear ip bgp A.B.C.D ipv4 (unicast|multicast) in prefix-filter", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP neighbor address to clear\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig inbound update\n"
-       "Push out the existing ORF prefix-list\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_external_cmd_vtysh, 
-       "clear bgp external", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear all external peers\n")
-
-DEFSH (VTYSH_OSPFD, ip_ospf_authentication_cmd_vtysh, 
-       "ip ospf authentication", 
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Enable authentication on this interface\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_router_id_cmd_vtysh, 
-       "no bgp router-id", 
-       "Negate a command or set its defaults\n"
-       "BGP information\n"
-       "Override configured router identifier\n")
-
-DEFSH (VTYSH_OSPFD, no_ospf_abr_type_cmd_vtysh, 
-       "no ospf abr-type (cisco|ibm|shortcut)", 
-       "Negate a command or set its defaults\n"
-       "OSPF specific commands\n"
-       "Set OSPF ABR type\n"
-       "Alternative ABR,  cisco implementation\n"
-       "Alternative ABR,  IBM implementation\n"
-       "Shortcut ABR\n")
-
-DEFSH (VTYSH_OSPFD, show_ip_ospf_database_type_self_cmd_vtysh, 
-       "show ip ospf database (" "asbr-summary|external|network|router|summary" "|nssa-external" "|opaque-link|opaque-area|opaque-as" ") (self-originate|)", 
-       "Show running system information\n"
-       "IP information\n"
-       "OSPF information\n"
-       "Database summary\n"
-       "ASBR summary link states\n" "External link states\n" "Network link states\n" "Router link states\n" "Network summary link states\n" "NSSA external link state\n" "Link local Opaque-LSA\n" "Link area Opaque-LSA\n" "Link AS Opaque-LSA\n"
-       "Self-originated link states\n")
-
-DEFSH (VTYSH_OSPFD, show_ip_ospf_database_type_cmd_vtysh, 
-       "show ip ospf database (" "asbr-summary|external|network|router|summary" "|nssa-external" "|opaque-link|opaque-area|opaque-as" "|max-age|self-originate)", 
-       "Show running system information\n"
-       "IP information\n"
-       "OSPF information\n"
-       "Database summary\n"
-       "ASBR summary link states\n" "External link states\n" "Network link states\n" "Router link states\n" "Network summary link states\n" "NSSA external link state\n" "Link local Opaque-LSA\n" "Link area Opaque-LSA\n" "Link AS Opaque-LSA\n"
-       "LSAs in MaxAge list\n"
-       "Self-originated link states\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_attr_unchanged_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "BGP attribute is propagated unchanged to this neighbor\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ipv6_prefix_list_ge_le_cmd_vtysh, 
-       "no ipv6 prefix-list WORD (deny|permit) X:X::X:X/M ge <0-128> le <0-128>", 
-       "Negate a command or set its defaults\n"
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
-       "Minimum prefix length to be matched\n"
-       "Minimum prefix length\n"
-       "Maximum prefix length to be matched\n"
-       "Maximum prefix length\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_external_soft_in_cmd_vtysh, 
-       "clear ip bgp external soft in", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all external peers\n"
-       "Soft reconfig\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_OSPF6D, ipv6_ospf6_transmitdelay_cmd_vtysh, 
-       "ipv6 ospf6 transmit-delay TRANSMITDELAY", 
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Link state transmit delay\n"
-       "<1-65535> Seconds\n"
-       )
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_as_cmd_vtysh, 
-       "clear bgp ipv6 <1-65535>", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "Clear peers with the AS number\n")
-
-DEFSH (VTYSH_OSPFD, area_vlink_authkey_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
-       "(authentication-key|) AUTH_KEY", 
-       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
-       "Authentication password (key)\n" "The OSPF password (key)")
-
-DEFSH (VTYSH_BGPD, clear_bgp_peer_group_soft_out_cmd_vtysh, 
-       "clear bgp peer-group WORD soft out", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear all members of peer-group\n"
-       "BGP peer-group name\n"
-       "Soft reconfig\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_rd_neighbors_peer_cmd_vtysh, 
-       "show ip bgp vpnv4 rd ASN:nn_or_IP-address:nn neighbors A.B.C.D", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display VPNv4 NLRI specific information\n"
-       "Display information about all VPNv4 NLRIs\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_ebgp_multihop_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "ebgp-multihop", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Allow EBGP neighbors not on directly connected networks\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_ipv6_community_exact_cmd_vtysh, 
-       "show bgp ipv6 community (AA:NN|local-AS|no-advertise|no-export) exact-match", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "Exact match of the communities")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_instance_all_ipv4_soft_out_cmd_vtysh, 
-       "clear ip bgp view WORD * ipv4 (unicast|multicast) soft out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP view\n"
-       "view name\n"
-       "Clear all peers\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_mbgp_community4_exact_cmd_vtysh, 
-       "show ipv6 mbgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "MBGP information\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "Exact match of the communities")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_bgp_cmd_vtysh, 
-       "no redistribute bgp", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Border Gateway Protocol (BGP)\n")
-
-DEFSH (VTYSH_OSPF6D, ipv6_ospf6_retransmitinterval_cmd_vtysh, 
-       "ipv6 ospf6 retransmit-interval RXMTINTERVAL", 
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Time between retransmitting lost link state advertisements\n"
-       "<1-65535> Seconds\n"
-       )
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_as_soft_cmd_vtysh, 
-       "clear ip bgp <1-65535> soft", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear peers with the AS number\n"
-       "Soft reconfig\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_external_soft_cmd_vtysh, 
-       "clear ip bgp external soft", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all external peers\n"
-       "Soft reconfig\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_ipv6_access_list_all_cmd_vtysh, 
-       "no ipv6 access-list WORD", 
-       "Negate a command or set its defaults\n"
-       "IPv6 information\n"
-       "Add an access list entry\n"
-       "IPv6 zebra access-list\n")
-
-DEFSH (VTYSH_RIPD, show_debugging_rip_cmd_vtysh, 
-       "show debugging rip", 
-       "Show running system information\n"
-       "Debugging functions (see also 'undebug')\n"
-       "RIP information\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, rmap_onmatch_next_cmd_vtysh, 
-       "on-match next", 
-       "Exit policy on matches\n"
-       "Next clause\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_as_soft_out_cmd_vtysh, 
-       "clear ip bgp <1-65535> soft out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear peers with the AS number\n"
-       "Soft reconfig\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_RIPD, no_ip_rip_receive_version_num_cmd_vtysh, 
-       "no ip rip receive version (1|2)", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Routing Information Protocol\n"
-       "Advertisement reception\n"
-       "Version control\n"
-       "Version 1\n"
-       "Version 2\n")
-
 DEFSH (VTYSH_BGPD, show_ip_bgp_view_cmd_vtysh, 
        "show ip bgp view WORD", 
        "Show running system information\n"
@@ -7636,45 +2841,59 @@
        "BGP view\n"
        "BGP view name\n")
 
-DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_rd_neighbors_cmd_vtysh, 
-       "show ip bgp vpnv4 rd ASN:nn_or_IP-address:nn neighbors", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display VPNv4 NLRI specific information\n"
-       "Display information for a route distinguisher\n"
-       "VPN Route Distinguisher\n"
-       "Detailed information on TCP and BGP neighbor connections\n")
-
-DEFSH (VTYSH_OSPFD, ip_ospf_cost_addr_cmd_vtysh, 
-       "ip ospf cost <1-65535> A.B.C.D", 
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Interface cost\n"
-       "Cost\n"
-       "Address of interface")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_all_ipv4_in_prefix_filter_cmd_vtysh, 
-       "clear ip bgp * ipv4 (unicast|multicast) in prefix-filter", 
+DEFSH (VTYSH_BGPD, clear_ip_bgp_dampening_address_mask_cmd_vtysh, 
+       "clear ip bgp dampening A.B.C.D A.B.C.D", 
        "Reset functions\n"
        "IP information\n"
        "BGP information\n"
-       "Clear all peers\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig inbound update\n"
-       "Push out prefix-list ORF and do inbound soft reconfig\n")
+       "Clear route flap dampening information\n"
+       "Network to clear damping information\n"
+       "Network mask\n")
 
-DEFSH (VTYSH_BGPD, show_ip_bgp_neighbor_routes_cmd_vtysh, 
-       "show ip bgp neighbors (A.B.C.D|X:X::X:X) routes", 
+DEFSH (VTYSH_OSPFD, area_authentication_message_digest_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) authentication message-digest", 
+       "OSPF area parameters\n"
+       "Enable authentication\n"
+       "Use message-digest authentication\n")
+
+DEFSH (VTYSH_OSPFD, no_area_range_advertise_cost_cmd_vtysh, 
+       "no area (A.B.C.D|<0-4294967295>) range A.B.C.D/M advertise cost <0-16777215>", 
+       "Negate a command or set its defaults\n"
+       "OSPF area parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "Summarize routes matching address/mask (border routers only)\n"
+       "Area range prefix\n"
+       "Advertise this range (default)\n"
+       "User specified metric for this range\n"
+       "Advertised metric for this range\n")
+
+DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_route_flapping_cmd_vtysh, 
+       "show ipv6 ospf6 route flapping", 
        "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Neighbor to display information about\n"
-       "Display routes learned from neighbor\n")
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n")
+
+DEFSH (VTYSH_RIPD, no_rip_neighbor_cmd_vtysh, 
+       "no neighbor A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "Specify a neighbor router\n"
+       "Neighbor address\n")
+
+DEFSH (VTYSH_RIPNGD, ripng_redistribute_connected_metric_routemap_cmd_vtysh, 
+       "redistribute connected metric <0-16> route-map WORD", 
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Metric\n"
+       "Metric value\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_deterministic_med_cmd_vtysh, 
+       "no bgp deterministic-med", 
+       "Negate a command or set its defaults\n"
+       "BGP specific commands\n"
+       "Pick the best-MED path among paths advertised from the neighboring AS\n")
 
 DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_community4_exact_cmd_vtysh, 
        "show ip bgp ipv4 (unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
@@ -7703,101 +2922,453 @@
        "Do not export to next AS (well-known community)\n"
        "Exact match of the communities")
 
-DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_prefix_cmd_vtysh, 
-       "show ip bgp ipv4 (unicast|multicast) A.B.C.D/M", 
-       "Show running system information\n"
+DEFSH (VTYSH_BGPD, no_set_aggregator_as_cmd_vtysh, 
+       "no set aggregator as", 
+       "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "BGP aggregator attribute\n"
+       "AS number of aggregator\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_all_soft_cmd_vtysh, 
+       "clear bgp ipv6 * soft", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear all peers\n"
+       "Soft reconfig\n")
+
+DEFSH (VTYSH_OSPFD, area_vlink_param1_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
+       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535>", 
+       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
+       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_redistribute_ipv4_cmd_vtysh, 
+       "no redistribute (connected|kernel|ospf|rip|static)", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Kernel routes\n"
+       "Open Shurtest Path First (OSPF)\n"
+       "Routing Information Protocol (RIP)\n"
+       "Static routes\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_external_ipv4_soft_in_cmd_vtysh, 
+       "clear ip bgp external ipv4 (unicast|multicast) soft in", 
+       "Reset functions\n"
        "IP information\n"
        "BGP information\n"
+       "Clear all external peers\n"
        "Address family\n"
        "Address Family modifier\n"
        "Address Family modifier\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n")
+       "Soft reconfig\n"
+       "Soft reconfig inbound update\n")
 
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_standard_any_cmd_vtysh, 
-       "access-list (<1-99>|<1300-1999>) (deny|permit) any", 
-       "Add an access list entry\n"
-       "IP standard access list\n"
-       "IP standard access list (expanded range)\n"
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, ipv6_prefix_list_cmd_vtysh, 
+       "ipv6 prefix-list WORD (deny|permit) (X:X::X:X/M|any)", 
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
        "Specify packets to reject\n"
        "Specify packets to forward\n"
-       "Any source host\n")
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
+       "Any prefix match.  Same as \"::0/0 le 128\"\n")
 
-DEFSH (VTYSH_OSPFD, no_area_nssa_no_summary_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) nssa no-summary", 
+DEFSH (VTYSH_BGPD, clear_ip_bgp_all_vpnv4_soft_cmd_vtysh, 
+       "clear ip bgp * vpnv4 unicast soft", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all peers\n"
+       "Address family\n"
+       "Address Family Modifier\n"
+       "Soft reconfig\n")
+
+DEFSH (VTYSH_BGPD, debug_bgp_keepalive_cmd_vtysh, 
+       "debug bgp keepalives", 
+       "Debugging functions (see also 'undebug')\n"
+       "BGP information\n"
+       "BGP keepalives\n")
+
+DEFSH (VTYSH_BGPD, no_router_bgp_cmd_vtysh, 
+       "no router bgp <1-65535>", 
        "Negate a command or set its defaults\n"
+       "Enable a routing process\n"
+       "BGP information\n"
+       "AS number\n")
+
+DEFSH (VTYSH_ZEBRA, ipv6_route_ifname_pref_cmd_vtysh, 
+       "ipv6 route X:X::X:X/M X:X::X:X INTERFACE <1-255>", 
+       "IP information\n"
+       "Establish static routes\n"
+       "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
+       "IPv6 gateway address\n"
+       "IPv6 gateway interface name\n"
+       "Distance value for this prefix\n")
+
+DEFSH (VTYSH_OSPFD, no_ip_ospf_transmit_delay_addr_cmd_vtysh, 
+       "no ip ospf transmit-delay A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Link state transmit delay\n"
+       "Address of interface")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, ipv6_prefix_list_ge_cmd_vtysh, 
+       "ipv6 prefix-list WORD (deny|permit) X:X::X:X/M ge <0-128>", 
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
+       "Minimum prefix length to be matched\n"
+       "Minimum prefix length\n")
+
+DEFSH (VTYSH_OSPFD, ospf_distance_cmd_vtysh, 
+       "distance <1-255>", 
+       "Define an administrative distance\n"
+       "OSPF Administrative distance\n")
+
+DEFSH (VTYSH_OSPFD, area_range_advertise_cost_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) range A.B.C.D/M advertise cost <0-16777215>", 
        "OSPF area parameters\n"
        "OSPF area ID in IP address format\n"
        "OSPF area ID as a decimal value\n"
-       "Configure OSPF area as nssa\n"
-       "Do not inject inter-area routes into nssa\n")
+       "Summarize routes matching address/mask (border routers only)\n"
+       "Area range prefix\n"
+       "Advertise this range (default)\n"
+       "User specified metric for this range\n"
+       "Advertised metric for this range\n")
 
-DEFSH (VTYSH_BGPD, neighbor_override_capability_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "override-capability", 
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_remark_cmd_vtysh, 
+       "no access-list (<1-99>|<100-199>|<1300-1999>|<2000-2699>|WORD) remark", 
+       "Negate a command or set its defaults\n"
+       "Add an access list entry\n"
+       "IP standard access list\n"
+       "IP extended access list\n"
+       "IP standard access list (expanded range)\n"
+       "IP extended access list (expanded range)\n"
+       "IP zebra access-list\n"
+       "Access list entry comment\n")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_connected_routemap_cmd_vtysh, 
+       "no redistribute connected route-map WORD", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_attr_unchanged5_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged as-path next-hop med", 
+       "Negate a command or set its defaults\n"
        "Specify neighbor router\n"
        "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Override capability negotiation result\n")
+       "BGP attribute is propagated unchanged to this neighbor\n"
+       "As-path attribute\n"
+       "Nexthop attribute\n"
+       "Med attribute\n")
 
-DEFSH (VTYSH_BGPD, no_set_ipv6_nexthop_global_val_cmd_vtysh, 
-       "no set ipv6 next-hop global X:X::X:X", 
+DEFSH (VTYSH_OSPFD, no_ospf_distance_ospf_cmd_vtysh, 
+       "no distance ospf", 
        "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "IPv6 information\n"
-       "IPv6 next-hop address\n"
-       "IPv6 global address\n"
-       "IPv6 address of next hop\n")
-
-DEFSH (VTYSH_OSPFD, ospf_distance_ospf_intra_cmd_vtysh, 
-       "distance ospf intra-area <1-255>", 
        "Define an administrative distance\n"
        "OSPF Administrative distance\n"
-       "Intra-area routes\n"
-       "Distance for intra-area routes\n")
+       "OSPF Distance\n")
 
-DEFSH (VTYSH_BGPD, no_ip_as_path_cmd_vtysh, 
-       "no ip as-path access-list WORD (deny|permit) .LINE", 
+DEFSH (VTYSH_ZEBRA, no_ip_route_distance_cmd_vtysh, 
+       "no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) <1-255>", 
        "Negate a command or set its defaults\n"
        "IP information\n"
-       "BGP autonomous system path filter\n"
-       "Specify an access list name\n"
-       "Regular expression access list name\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "A regular-expression to match the BGP AS paths\n")
+       "Establish static routes\n"
+       "IP destination prefix (e.g. 10.0.0.0/8)\n"
+       "IP gateway address\n"
+       "IP gateway interface name\n"
+       "Null interface\n"
+       "Distance value for this route\n")
 
-DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_prefix_list_cmd_vtysh, 
-       "show ip bgp ipv4 (unicast|multicast) prefix-list WORD", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Display routes conforming to the prefix-list\n"
-       "IP prefix-list name\n")
-
-DEFSH (VTYSH_BGPD, neighbor_default_originate_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "default-originate", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Originate default route to this neighbor\n")
-
-DEFSH (VTYSH_RIPD, no_rip_redistribute_type_cmd_vtysh, 
-       "no redistribute (kernel|connected|static|ospf|bgp)", 
-       "Negate a command or set its defaults\n"
+DEFSH (VTYSH_OSPFD, ospf_redistribute_source_metric_cmd_vtysh, 
+       "redistribute (kernel|connected|static|rip|bgp) metric <0-16777214>", 
        "Redistribute information from another routing protocol\n"
        "Kernel routes\n"
        "Connected\n"
        "Static routes\n"
-       "Open Shortest Path First (OSPF)\n"
-       "Border Gateway Protocol (BGP)\n")
+       "Routing Information Protocol (RIP)\n"
+       "Border Gateway Protocol (BGP)\n"
+       "Metric for redistributed routes\n"
+       "OSPF default metric\n")
 
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_connected_metric_val_cmd_vtysh, 
-       "no redistribute connected metric <0-16>", 
+DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_neighbor_cmd_vtysh, 
+       "show ipv6 ospf6 neighbor", 
+       "Show running system information\n"
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Neighbor list\n"
+       )
+
+DEFSH (VTYSH_RIPD, key_string_cmd_vtysh, 
+       "key-string LINE", 
+       "Set key string\n"
+       "The key\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_enforce_multihop_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "enforce-multihop", 
        "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Enforce EBGP neighbors perform multihop\n")
+
+DEFSH (VTYSH_RIPNGD, debug_ripng_events_cmd_vtysh, 
+       "debug ripng events", 
+       "Debugging functions (see also 'undebug')\n"
+       "RIPng configuration\n"
+       "Debug option set for ripng events\n")
+
+DEFSH (VTYSH_OSPF6D, no_redistribute_ospf6_cmd_vtysh, 
+       "no redistribute ospf6", 
+       "Negate a command or set its defaults\n"
+       "Redistribute control\n"
+       "OSPF6 route\n")
+
+DEFSH (VTYSH_BGPD, neighbor_description_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "description .LINE", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Neighbor specific description\n"
+       "Up to 80 characters describing this neighbor\n")
+
+DEFSH (VTYSH_ZEBRA, no_ipv6_route_pref_cmd_vtysh, 
+       "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) <1-255>", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Establish static routes\n"
+       "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
+       "IPv6 gateway address\n"
+       "IPv6 gateway interface name\n"
+       "Distance value for this prefix\n")
+
+DEFSH (VTYSH_OSPF6D, flap_damping_route_cmd_vtysh, 
+       "flap-damping route <0-4294967295> <0-4294967295> "
+                          "<0-4294967295> <0-4294967295>", 
+       "enable flap dampening\n"
+       "enable route flap dampening\n"
+       "half-life in second\n"
+       "reuse value\n"
+       "suppress value\n"
+       "t-hold in second (maximum time that the target can be damped)\n"
+      )
+
+DEFSH (VTYSH_OSPFD, debug_ospf_packet_send_recv_cmd_vtysh, 
+       "debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv|detail)", 
+       "Debugging functions\n"
+       "OSPF information\n"
+       "OSPF packets\n"
+       "OSPF Hello\n"
+       "OSPF Database Description\n"
+       "OSPF Link State Request\n"
+       "OSPF Link State Update\n"
+       "OSPF Link State Acknowledgment\n"
+       "OSPF all packets\n"
+       "Packet sent\n"
+       "Packet received\n"
+       "Detail information\n")
+
+DEFSH (VTYSH_OSPFD, area_range_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) range A.B.C.D/M", 
+       "OSPF area parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "Summarize routes matching address/mask (border routers only)\n"
+       "Area range prefix\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, ipv6_prefix_list_seq_le_ge_cmd_vtysh, 
+       "ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) X:X::X:X/M le <0-128> ge <0-128>", 
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "sequence number of an entry\n"
+       "Sequence number\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
+       "Maximum prefix length to be matched\n"
+       "Maximum prefix length\n"
+       "Minimum prefix length to be matched\n"
+       "Minimum prefix length\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_external_ipv4_in_prefix_filter_cmd_vtysh, 
+       "clear ip bgp external ipv4 (unicast|multicast) in prefix-filter", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all external peers\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Soft reconfig inbound update\n"
+       "Push out prefix-list ORF and do inbound soft reconfig\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_extended_any_mask_cmd_vtysh, 
+       "no access-list (<100-199>|<2000-2699>) (deny|permit) ip any A.B.C.D A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "Add an access list entry\n"
+       "IP extended access list\n"
+       "IP extended access list (expanded range)\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Any Internet Protocol\n"
+       "Any source host\n"
+       "Destination address\n"
+       "Destination Wildcard bits\n")
+
+DEFSH (VTYSH_RIPD, no_ip_rip_authentication_key_chain2_cmd_vtysh, 
+       "no ip rip authentication key-chain LINE", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Routing Information Protocol\n"
+       "Authentication control\n"
+       "Authentication key-chain\n"
+       "name of key-chain\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_cidr_only_cmd_vtysh, 
+       "show ip bgp cidr-only", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display only routes with non-natural netmasks\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, no_ipv6_prefix_list_description_cmd_vtysh, 
+       "no ipv6 prefix-list WORD description", 
+       "Negate a command or set its defaults\n"
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "Prefix-list specific description\n")
+
+DEFSH (VTYSH_RIPD, no_ip_rip_send_version_num_cmd_vtysh, 
+       "no ip rip send version (1|2)", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Routing Information Protocol\n"
+       "Advertisement transmission\n"
+       "Version control\n"
+       "Version 1\n"
+       "Version 2\n")
+
+DEFSH (VTYSH_OSPFD, no_refresh_timer_cmd_vtysh, 
+       "no refresh timer", 
+       "Adjust refresh parameters\n"
+       "Unset refresh timer\n")
+
+DEFSH (VTYSH_RIPNGD, ripng_redistribute_ospf6_routemap_cmd_vtysh, 
+       "redistribute ospf6 route-map WORD", 
        "Redistribute information from another routing protocol\n"
-       "Connected\n"
-       "Metric\n"
-       "Metric value\n")
+       "IPv6 Open Shortest Path First (OSPFv3)\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_ZEBRA, no_shutdown_if_cmd_vtysh, 
+       "no shutdown", 
+       "Negate a command or set its defaults\n"
+       "Shutdown the selected interface\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_instance_all_soft_in_cmd_vtysh, 
+       "clear ip bgp view WORD * soft in", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "BGP view\n"
+       "view name\n"
+       "Clear all peers\n"
+       "Soft reconfig\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_BGPD, show_ip_extcommunity_list_arg_cmd_vtysh, 
+       "show ip extcommunity-list (<1-199>|WORD)", 
+       "Show running system information\n"
+       "IP information\n"
+       "List extended-community list\n"
+       "Extcommunity-list number\n"
+       "Extcommunity-list name\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_group_cmd_vtysh, 
+       "clear bgp ipv6 peer-group WORD", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear all members of peer-group\n"
+       "BGP peer-group name\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_exact_cmd_vtysh, 
+       "no access-list WORD (deny|permit) A.B.C.D/M exact-match", 
+       "Negate a command or set its defaults\n"
+       "Add an access list entry\n"
+       "IP zebra access-list name\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Prefix to match. e.g. 10.0.0.0/8\n"
+       "Exact match of the prefixes\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_soft_in_cmd_vtysh, 
+       "clear ip bgp A.B.C.D soft in", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "BGP neighbor address to clear\n"
+       "Soft reconfig\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_OSPFD, no_ip_ospf_cost_addr_cmd_vtysh, 
+       "no ip ospf cost A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Interface cost\n"
+       "Address of interface")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, rmap_onmatch_next_cmd_vtysh, 
+       "on-match next", 
+       "Exit policy on matches\n"
+       "Next clause\n")
+
+DEFSH (VTYSH_ZEBRA, ipv6_route_cmd_vtysh, 
+       "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE)", 
+       "IP information\n"
+       "Establish static routes\n"
+       "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
+       "IPv6 gateway address\n"
+       "IPv6 gateway interface name\n")
+
+DEFSH (VTYSH_BGPD, neighbor_enforce_multihop_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "enforce-multihop", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Enforce EBGP neighbors perform multihop\n")
+
+DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_topology_router_cmd_vtysh, 
+       "show ipv6 ospf6 topology (A.B.C.D|<0-4294967295>|detail)", 
+       "Show running system information\n"
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Inter Area topology information\n"
+       "Specify Router-ID\n"
+       "Specify Router-ID\n"
+       "Detailed information\n"
+       )
+
+DEFSH (VTYSH_OSPFD, debug_ospf_packet_all_cmd_vtysh, 
+       "debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all)", 
+       "Debugging functions (see also 'undebug')\n"
+       "OSPF information\n"
+       "OSPF packets\n"
+       "OSPF Hello\n"
+       "OSPF Database Description\n"
+       "OSPF Link State Request\n"
+       "OSPF Link State Update\n"
+       "OSPF Link State Acknowledgment\n"
+       "OSPF all packets\n")
 
 DEFSH (VTYSH_ZEBRA, no_ip_route_mask_distance_cmd_vtysh, 
        "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) <1-255>", 
@@ -7811,6 +3382,2858 @@
        "Null interface\n"
        "Distance value for this route\n")
 
+DEFSH (VTYSH_BGPD, clear_ip_bgp_as_in_prefix_filter_cmd_vtysh, 
+       "clear ip bgp <1-65535> in prefix-filter", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear peers with the AS number\n"
+       "Soft reconfig inbound update\n"
+       "Push out prefix-list ORF and do inbound soft reconfig\n")
+
+DEFSH (VTYSH_BGPD, no_match_aspath_cmd_vtysh, 
+       "no match as-path", 
+       "Negate a command or set its defaults\n"
+       "Match values from routing table\n"
+       "Match BGP AS path list\n")
+
+DEFSH (VTYSH_RIPD, no_debug_rip_events_cmd_vtysh, 
+       "no debug rip events", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
+       "RIP information\n"
+       "RIP events\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_network_mask_natural_cmd_vtysh, 
+       "no network A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "Specify a network to announce via BGP\n"
+       "Network number\n")
+
+DEFSH (VTYSH_BGPD, neighbor_attr_unchanged5_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged as-path next-hop med", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "BGP attribute is propagated unchanged to this neighbor\n"
+       "As-path attribute\n"
+       "Nexthop attribute\n"
+       "Med attribute\n")
+
+DEFSH (VTYSH_RIPD, rip_default_information_originate_cmd_vtysh, 
+       "default-information originate", 
+       "Control distribution of default route\n"
+       "Distribute a default route\n")
+
+DEFSH (VTYSH_OSPFD, no_ospf_abr_type_cmd_vtysh, 
+       "no ospf abr-type (cisco|ibm|shortcut)", 
+       "Negate a command or set its defaults\n"
+       "OSPF specific commands\n"
+       "Set OSPF ABR type\n"
+       "Alternative ABR,  cisco implementation\n"
+       "Alternative ABR,  IBM implementation\n"
+       "Shortcut ABR\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_redistribute_ipv6_rmap_cmd_vtysh, 
+       "no redistribute (connected|kernel|ospf6|ripng|static) route-map WORD", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Kernel routes\n"
+       "Open Shurtest Path First (OSPFv3)\n"
+       "Routing Information Protocol (RIPng)\n"
+       "Static routes\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_OSPFD, no_ospf_transmit_delay_cmd_vtysh, 
+       "no ospf transmit-delay", 
+       "Negate a command or set its defaults\n"
+       "OSPF interface commands\n"
+       "Link state transmit delay\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_OSPF6D|VTYSH_BGPD, ipv6_access_list_remark_cmd_vtysh, 
+       "ipv6 access-list WORD remark .LINE", 
+       "IPv6 information\n"
+       "Add an access list entry\n"
+       "IPv6 zebra access-list\n"
+       "Access list entry comment\n"
+       "Comment up to 100 characters\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, show_ipv6_prefix_list_detail_cmd_vtysh, 
+       "show ipv6 prefix-list detail", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Detail of prefix lists\n")
+
+DEFSH (VTYSH_BGPD, ip_extcommunity_list_standard_cmd_vtysh, 
+       "ip extcommunity-list <1-99> (deny|permit) .AA:NN", 
+       "IP information\n"
+       "Add a extended community list entry\n"
+       "Extended Community list number (standard)\n"
+       "Specify community to reject\n"
+       "Specify community to accept\n"
+       "Extended community attribute in 'rt aa:nn_or_IPaddr:nn' OR 'soo aa:nn_or_IPaddr:nn' format\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_mbgp_community3_exact_cmd_vtysh, 
+       "show ipv6 mbgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "MBGP information\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "Exact match of the communities")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, no_ipv6_prefix_list_ge_le_cmd_vtysh, 
+       "no ipv6 prefix-list WORD (deny|permit) X:X::X:X/M ge <0-128> le <0-128>", 
+       "Negate a command or set its defaults\n"
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
+       "Minimum prefix length to be matched\n"
+       "Minimum prefix length\n"
+       "Maximum prefix length to be matched\n"
+       "Maximum prefix length\n")
+
+DEFSH (VTYSH_OSPFD, no_ip_ospf_retransmit_interval_cmd_vtysh, 
+       "no ip ospf retransmit-interval", 
+       "Negate a command or set its defaults\n"
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Time between retransmitting lost link state advertisements\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_bgp_community2_cmd_vtysh, 
+       "show ipv6 bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "BGP information\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n")
+
+DEFSH (VTYSH_BGPD, aggregate_address_mask_as_set_summary_cmd_vtysh, 
+       "aggregate-address A.B.C.D A.B.C.D as-set summary-only", 
+       "Configure BGP aggregate entries\n"
+       "Aggregate address\n"
+       "Aggregate mask\n"
+       "Generate AS set path information\n"
+       "Filter more specific routes from updates\n")
+
+DEFSH (VTYSH_BGPD, no_aggregate_address_mask_cmd_vtysh, 
+       "no aggregate-address A.B.C.D A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "Configure BGP aggregate entries\n"
+       "Aggregate address\n"
+       "Aggregate mask\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_prefix_longer_cmd_vtysh, 
+       "show ip bgp A.B.C.D/M longer-prefixes", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Display route and more specific routes\n")
+
+DEFSH (VTYSH_BGPD, set_metric_cmd_vtysh, 
+       "set metric (<0-4294967295>|<+/-metric>)", 
+       "Set values in destination routing protocol\n"
+       "Metric value for destination routing protocol\n"
+       "Metric value\n"
+       "Add or subtract metric\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_bgp_community_cmd_vtysh, 
+       "show ipv6 bgp community (AA:NN|local-AS|no-advertise|no-export)", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "BGP information\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n")
+
+DEFSH (VTYSH_BGPD, ipv6_bgp_neighbor_routes_cmd_vtysh, 
+       "show ipv6 bgp neighbors (A.B.C.D|X:X::X:X) routes", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "BGP information\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n"
+       "Display routes learned from neighbor\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_description_arg_cmd_vtysh, 
+       "no ip prefix-list WORD description .LINE", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "Prefix-list specific description\n"
+       "Up to 80 characters describing this prefix-list\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_neighbors_cmd_vtysh, 
+       "show ip bgp neighbors", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Detailed information on TCP and BGP neighbor connections\n")
+
+DEFSH (VTYSH_BGPD, neighbor_advertise_interval_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X) " "advertisement-interval <0-600>", 
+       "Specify neighbor router\n"
+       "Neighbor address\nIPv6 address\n"
+       "Minimum interval between sending BGP routing updates\n"
+       "time in seconds\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_external_soft_cmd_vtysh, 
+       "clear ip bgp external soft", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all external peers\n"
+       "Soft reconfig\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_remove_private_as_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "remove-private-AS", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Remove private AS number from outbound updates\n")
+
+DEFSH (VTYSH_RIPD, no_ip_rip_send_version_cmd_vtysh, 
+       "no ip rip send version", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Routing Information Protocol\n"
+       "Advertisement transmission\n"
+       "Version control\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_external_in_prefix_filter_cmd_vtysh, 
+       "clear bgp external in prefix-filter", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear all external peers\n"
+       "Soft reconfig inbound update\n"
+       "Push out prefix-list ORF and do inbound soft reconfig\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_route_cmd_vtysh, 
+       "show ip bgp A.B.C.D", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Network in the BGP routing table to display\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, clear_ipv6_prefix_list_name_cmd_vtysh, 
+       "clear ipv6 prefix-list WORD", 
+       "Reset functions\n"
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_timers_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "timers", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "BGP per neighbor timers\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_soft_in_cmd_vtysh, 
+       "clear ip bgp peer-group WORD soft in", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all members of peer-group\n"
+       "BGP peer-group name\n"
+       "Soft reconfig\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_OSPFD, ospf_default_information_originate_always_type_routemap_cmd_vtysh, 
+       "default-information originate always metric-type (1|2) route-map WORD", 
+       "Control distribution of default information\n"
+       "Distribute a default route\n"
+       "Always advertise default route\n"
+       "OSPF metric type for default routes\n"
+       "Set OSPF External Type 1 metrics\n"
+       "Set OSPF External Type 2 metrics\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_BGPD, ip_extcommunity_list_expanded_cmd_vtysh, 
+       "ip extcommunity-list <100-199> (deny|permit) .LINE", 
+       "IP information\n"
+       "Add a extended community list entry\n"
+       "Extended Community list number (expanded)\n"
+       "Specify community to reject\n"
+       "Specify community to accept\n"
+       "An ordered list as a regular-expression\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_OSPF6D|VTYSH_BGPD, ipv6_access_list_exact_cmd_vtysh, 
+       "ipv6 access-list WORD (deny|permit) X:X::X:X/M exact-match", 
+       "IPv6 information\n"
+       "Add an access list entry\n"
+       "IPv6 zebra access-list\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Prefix to match. e.g. 3ffe:506::/32\n"
+       "Exact match of the prefixes\n")
+
+DEFSH (VTYSH_BGPD, show_ip_community_list_arg_cmd_vtysh, 
+       "show ip community-list (<1-199>|WORD)", 
+       "Show running system information\n"
+       "IP information\n"
+       "List community-list\n"
+       "Community-list number\n"
+       "Community-list name\n")
+
+DEFSH (VTYSH_BGPD, bgp_timers_cmd_vtysh, 
+       "timers bgp <0-65535> <0-65535>", 
+       "Adjust routing timers\n"
+       "BGP timers\n"
+       "Keepalive interval\n"
+       "Holdtime\n")
+
+DEFSH (VTYSH_RIPD, rip_neighbor_cmd_vtysh, 
+       "neighbor A.B.C.D", 
+       "Specify a neighbor router\n"
+       "Neighbor address\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, show_ipv6_prefix_list_prefix_first_match_cmd_vtysh, 
+       "show ipv6 prefix-list WORD X:X::X:X/M first-match", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
+       "First matched prefix\n")
+
+DEFSH (VTYSH_BGPD, neighbor_shutdown_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "shutdown", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Administratively shut down this neighbor\n")
+
+DEFSH (VTYSH_BGPD, no_debug_bgp_fsm_cmd_vtysh, 
+       "no debug bgp fsm", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
+       "BGP information\n"
+       "Finite State Machine\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_as_soft_in_cmd_vtysh, 
+       "clear bgp ipv6 <1-65535> soft in", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear peers with the AS number\n"
+       "Soft reconfig\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_BGPD, neighbor_weight_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "weight <0-65535>", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Set default weight for routes from this neighbor\n"
+       "default weight\n")
+
+DEFSH (VTYSH_BGPD, neighbor_transparent_nexthop_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X) " "transparent-nexthop", 
+       "Specify neighbor router\n"
+       "Neighbor address\nIPv6 address\n"
+       "Do not change nexthop even peer is EBGP peer\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_soft_cmd_vtysh, 
+       "clear ip bgp A.B.C.D soft", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "BGP neighbor address to clear\n"
+       "Soft reconfig\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_all_neighbors_peer_cmd_vtysh, 
+       "show ip bgp vpnv4 all neighbors A.B.C.D", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display VPNv4 NLRI specific information\n"
+       "Display information about all VPNv4 NLRIs\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_bgp_community_list_cmd_vtysh, 
+       "show ipv6 bgp community-list WORD", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "BGP information\n"
+       "Display routes matching the community-list\n"
+       "community-list name\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_vpnv4_soft_in_cmd_vtysh, 
+       "clear ip bgp A.B.C.D vpnv4 unicast soft in", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "BGP neighbor address to clear\n"
+       "Address family\n"
+       "Address Family Modifier\n"
+       "Soft reconfig\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_le_cmd_vtysh, 
+       "no ip prefix-list WORD (deny|permit) A.B.C.D/M le <0-32>", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Maximum prefix length to be matched\n"
+       "Maximum prefix length\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_bestpath_med2_cmd_vtysh, 
+       "no bgp bestpath med confed missing-as-worst", 
+       "Negate a command or set its defaults\n"
+       "BGP specific commands\n"
+       "Change the default bestpath selection\n"
+       "MED attribute\n"
+       "Compare MED among confederation paths\n"
+       "Treat missing MED as the least preferred one\n")
+
+DEFSH (VTYSH_OSPFD, no_ospf_priority_cmd_vtysh, 
+       "no ospf priority", 
+       "Negate a command or set its defaults\n"
+       "OSPF interface commands\n"
+       "Router priority\n")
+
+DEFSH (VTYSH_BGPD, bgp_network_mask_natural_cmd_vtysh, 
+       "network A.B.C.D", 
+       "Specify a network to announce via BGP\n"
+       "Network number\n")
+
+DEFSH (VTYSH_BGPD, no_synchronization_cmd_vtysh, 
+       "no synchronization", 
+       "Negate a command or set its defaults\n"
+       "Perform IGP synchronization\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, set_ip_nexthop_cmd_vtysh, 
+       "set ip next-hop A.B.C.D", 
+       "Set values in destination routing protocol\n"
+       "IP information\n"
+       "Next hop address\n"
+       "IP address of next hop\n")
+
+DEFSH (VTYSH_RIPD, no_rip_version_val_cmd_vtysh, 
+       "no version <1-2>", 
+       "Negate a command or set its defaults\n"
+       "Set routing protocol version\n"
+       "version\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_scan_time_cmd_vtysh, 
+       "no bgp scan-time", 
+       "Negate a command or set its defaults\n"
+       "BGP specific commands\n"
+       "Configure background scanner interval\n")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_connected_metric_cmd_vtysh, 
+       "no redistribute connected metric", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Metric\n")
+
+DEFSH (VTYSH_OSPF6D, debug_ospf6_all_cmd_vtysh, 
+       "debug ospf6 all", 
+       "Debugging functions (see also 'undebug')\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Turn on ALL OSPFv3 debugging\n")
+
+DEFSH (VTYSH_OSPFD, no_ip_ospf_authentication_key_addr_cmd_vtysh, 
+       "no ip ospf authentication-key A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Authentication password (key)\n"
+       "Address of interface")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_route_cmd_vtysh, 
+       "no route IPV6ADDR", 
+       "Negate a command or set its defaults\n"
+       "Static route setup\n"
+       "Delete static RIPng route announcement\n")
+
+DEFSH (VTYSH_OSPFD, no_area_range_substitute_cmd_vtysh, 
+       "no area (A.B.C.D|<0-4294967295>) range A.B.C.D/M substitute A.B.C.D/M", 
+       "Negate a command or set its defaults\n"
+       "OSPF area parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "Summarize routes matching address/mask (border routers only)\n"
+       "Area range prefix\n"
+       "Announce area range as another prefix\n"
+       "Network prefix to be announced instead of range\n")
+
+DEFSH (VTYSH_OSPFD, debug_ospf_nsm_sub_cmd_vtysh, 
+       "debug ospf nsm (status|events|timers)", 
+       "Debugging functions (see also 'undebug')\n"
+       "OSPF information\n"
+       "OSPF Neighbor State Machine\n"
+       "NSM Status Information\n"
+       "NSM Event Information\n"
+       "NSM Timer Information\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_as_vpnv4_soft_out_cmd_vtysh, 
+       "clear ip bgp <1-65535> vpnv4 unicast soft out", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear peers with the AS number\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Soft reconfig\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_BGPD, no_debug_bgp_all_cmd_vtysh, 
+       "no debug all bgp", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
+       "Enable all debugging\n"
+       "BGP information\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_all_vpnv4_soft_out_cmd_vtysh, 
+       "clear ip bgp * vpnv4 unicast soft out", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all peers\n"
+       "Address family\n"
+       "Address Family Modifier\n"
+       "Soft reconfig\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_distance_cmd_vtysh, 
+       "no distance bgp <1-255> <1-255> <1-255>", 
+       "Negate a command or set its defaults\n"
+       "Define an administrative distance\n"
+       "BGP distance\n"
+       "Distance for routes external to the AS\n"
+       "Distance for routes internal to the AS\n"
+       "Distance for local routes\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_ipv4_soft_out_cmd_vtysh, 
+       "clear ip bgp peer-group WORD ipv4 (unicast|multicast) soft out", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all members of peer-group\n"
+       "BGP peer-group name\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Soft reconfig\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_RIPD, no_rip_timers_cmd_vtysh, 
+       "no timers basic", 
+       "Negate a command or set its defaults\n"
+       "Adjust routing timers\n"
+       "Basic routing protocol update timers\n")
+
+DEFSH (VTYSH_OSPF6D, ipv6_ospf6_passive_cmd_vtysh, 
+       "ipv6 ospf6 passive", 
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "passive interface: No Adjacency will be formed on this I/F\n"
+       )
+
+DEFSH (VTYSH_OSPFD, ospf_distance_ospf_inter_external_intra_cmd_vtysh, 
+       "distance ospf inter-area <1-255> external <1-255> intra-area <1-255>", 
+       "Define an administrative distance\n"
+       "OSPF Administrative distance\n"
+       "Inter-area routes\n"
+       "Distance for inter-area routes\n"
+       "External routes\n"
+       "Distance for external routes\n"
+       "Intra-area routes\n"
+       "Distance for intra-area routes\n")
+
+DEFSH (VTYSH_OSPFD, ospf_default_information_originate_always_type_metric_routemap_cmd_vtysh, 
+       "default-information originate always metric-type (1|2) metric <0-16777214> route-map WORD", 
+       "Control distribution of default information\n"
+       "Distribute a default route\n"
+       "Always advertise default route\n"
+       "OSPF metric type for default routes\n"
+       "Set OSPF External Type 1 metrics\n"
+       "Set OSPF External Type 2 metrics\n"
+       "OSPF default metric\n"
+       "OSPF metric\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_RIPNGD, no_debug_ripng_events_cmd_vtysh, 
+       "no debug ripng events", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
+       "RIPng configuration\n"
+       "Debug option set for ripng events\n")
+
+DEFSH (VTYSH_RIPD, accept_lifetime_duration_month_day_cmd_vtysh, 
+       "accept-lifetime HH:MM:SS MONTH <1-31> <1993-2035> duration <1-2147483646>", 
+       "Set accept lifetime of the key\n"
+       "Time to start\n"
+       "Month of the year to start\n"
+       "Day of th month to start\n"
+       "Year to start\n"
+       "Duration of the key\n"
+       "Duration seconds\n")
+
+DEFSH (VTYSH_RIPNGD, ripng_redistribute_ospf6_metric_routemap_cmd_vtysh, 
+       "redistribute ospf6 metric <0-16> route-map WORD", 
+       "Redistribute information from another routing protocol\n"
+       "IPv6 Open Shortest Path First (OSPFv3)\n"
+       "Metric\n"
+       "Metric value\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_match_metric_cmd_vtysh, 
+       "no match metric", 
+       "Negate a command or set its defaults\n"
+       "Match values from routing table\n"
+       "Match metric of route\n")
+
+DEFSH (VTYSH_RIPD, match_ip_next_hop_cmd_vtysh, 
+       "match ip next-hop WORD", 
+       "Match values from routing table\n"
+       "IP information\n"
+       "Match next-hop address of route\n"
+       "IP access-list name\n")
+
+DEFSH (VTYSH_ZEBRA, ip_irdp_cmd_vtysh, 
+       "ip irdp", 
+       "IP information\n"
+       "ICMP Router discovery on this interface\n")
+
+DEFSH (VTYSH_BGPD, aggregate_address_summary_only_cmd_vtysh, 
+       "aggregate-address A.B.C.D/M summary-only", 
+       "Configure BGP aggregate entries\n"
+       "Aggregate prefix\n"
+       "Filter more specific routes from updates\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_as_in_prefix_filter_cmd_vtysh, 
+       "clear bgp ipv6 <1-65535> in prefix-filter", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear peers with the AS number\n"
+       "Soft reconfig inbound update\n"
+       "Push out prefix-list ORF and do inbound soft reconfig\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_network_route_map_cmd_vtysh, 
+       "no network A.B.C.D/M route-map WORD", 
+       "Negate a command or set its defaults\n"
+       "Specify a network to announce via BGP\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Route-map to modify the attributes\n"
+       "Name of the route map\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_instance_neighbors_peer_cmd_vtysh, 
+       "show ip bgp view WORD neighbors (A.B.C.D|X:X::X:X)", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "BGP view\n"
+       "View name\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_connected_cmd_vtysh, 
+       "no redistribute connected", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Connected\n")
+
+DEFSH (VTYSH_BGPD, aggregate_address_summary_as_set_cmd_vtysh, 
+       "aggregate-address A.B.C.D/M summary-only as-set", 
+       "Configure BGP aggregate entries\n"
+       "Aggregate prefix\n"
+       "Filter more specific routes from updates\n"
+       "Generate AS set path information\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_external_in_cmd_vtysh, 
+       "clear ip bgp external in", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all external peers\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_RIPD, no_debug_rip_packet_direct_cmd_vtysh, 
+       "no debug rip packet (recv|send)", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
+       "RIP information\n"
+       "RIP packet\n"
+       "RIP option set for receive packet\n"
+       "RIP option set for send packet\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_ipv6_community2_exact_cmd_vtysh, 
+       "show bgp ipv6 community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "Exact match of the communities")
+
+DEFSH (VTYSH_BGPD, no_neighbor_nexthop_self_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "next-hop-self", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Disable the next hop calculation for this neighbor\n")
+
+DEFSH (VTYSH_OSPFD, area_range_not_advertise_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) range A.B.C.D/M not-advertise", 
+       "OSPF area parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "Summarize routes matching address/mask (border routers only)\n"
+       "Area range prefix\n"
+       "DoNotAdvertise this range\n")
+
+DEFSH (VTYSH_RIPD, no_ip_rip_authentication_mode_type_cmd_vtysh, 
+       "no ip rip authentication mode (md5|text)", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Routing Information Protocol\n"
+       "Authentication control\n"
+       "Authentication mode\n"
+       "Keyed message digest\n"
+       "Clear text authentication\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, show_ipv6_prefix_list_summary_cmd_vtysh, 
+       "show ipv6 prefix-list summary", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Summary of prefix lists\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_any_cmd_vtysh, 
+       "no access-list WORD (deny|permit) any", 
+       "Negate a command or set its defaults\n"
+       "Add an access list entry\n"
+       "IP zebra access-list name\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Prefix to match. e.g. 10.0.0.0/8\n")
+
+DEFSH (VTYSH_BGPD, bgp_bestpath_med3_cmd_vtysh, 
+       "bgp bestpath med missing-as-worst confed", 
+       "BGP specific commands\n"
+       "Change the default bestpath selection\n"
+       "MED attribute\n"
+       "Treat missing MED as the least preferred one\n"
+       "Compare MED among confederation paths\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_ipv6_community4_cmd_vtysh, 
+       "show bgp ipv6 community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n")
+
+DEFSH (VTYSH_OSPFD, ip_ospf_retransmit_interval_addr_cmd_vtysh, 
+       "ip ospf retransmit-interval <3-65535> A.B.C.D", 
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Time between retransmitting lost link state advertisements\n"
+       "Seconds\n"
+       "Address of interface")
+
+DEFSH (VTYSH_RIPD, match_ip_address_cmd_vtysh, 
+       "match ip address WORD", 
+       "Match values from routing table\n"
+       "IP information\n"
+       "Match address of route\n"
+       "IP access-list name\n")
+
+DEFSH (VTYSH_OSPF6D, ipv6_ospf6_deadinterval_cmd_vtysh, 
+       "ipv6 ospf6 dead-interval ROUTER_DEAD_INTERVAL", 
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Interval after which a neighbor is declared dead\n"
+       "<1-65535> Seconds\n"
+       )
+
+DEFSH (VTYSH_OSPFD, debug_ospf_zebra_sub_cmd_vtysh, 
+       "debug ospf zebra (interface|redistribute)", 
+       "Debugging functions (see also 'undebug')\n"
+       "OSPF information\n"
+       "OSPF Zebra information\n"
+       "Zebra interface\n"
+       "Zebra redistribute\n")
+
+DEFSH (VTYSH_BGPD, match_aspath_cmd_vtysh, 
+       "match as-path WORD", 
+       "Match values from routing table\n"
+       "Match BGP AS path list\n"
+       "AS path access-list name\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_flap_cidr_only_cmd_vtysh, 
+       "show ip bgp flap-statistics cidr-only", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display flap statistics of routes\n"
+       "Display only routes with non-natural netmasks\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, no_ipv6_prefix_list_description_arg_cmd_vtysh, 
+       "no ipv6 prefix-list WORD description .LINE", 
+       "Negate a command or set its defaults\n"
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "Prefix-list specific description\n"
+       "Up to 80 characters describing this prefix-list\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_ipv4_in_prefix_filter_cmd_vtysh, 
+       "clear ip bgp peer-group WORD ipv4 (unicast|multicast) in prefix-filter", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all members of peer-group\n"
+       "BGP peer-group name\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Soft reconfig inbound update\n"
+       "Push out prefix-list ORF and do inbound soft reconfig\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_all_soft_cmd_vtysh, 
+       "clear ip bgp * soft", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all peers\n"
+       "Soft reconfig\n")
+
+DEFSH (VTYSH_RIPNGD, ripng_redistribute_static_metric_routemap_cmd_vtysh, 
+       "redistribute static metric <0-16> route-map WORD", 
+       "Redistribute information from another routing protocol\n"
+       "Static routes\n"
+       "Metric\n"
+       "Metric value\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_BGPD, bgp_redistribute_ipv6_rmap_metric_cmd_vtysh, 
+       "redistribute (connected|kernel|ospf6|ripng|static) route-map WORD metric <0-4294967295>", 
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Kernel routes\n"
+       "Open Shurtest Path First (OSPFv3)\n"
+       "Routing Information Protocol (RIPng)\n"
+       "Static routes\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n"
+       "Metric for redistributed routes\n"
+       "Default metric\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_ipv6_route_map_cmd_vtysh, 
+       "show bgp ipv6 route-map WORD", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Display routes matching the route-map\n"
+       "A route-map to match on\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_match_ip_next_hop_prefix_list_cmd_vtysh, 
+       "no match ip next-hop prefix-list", 
+       "Negate a command or set its defaults\n"
+       "Match values from routing table\n"
+       "IP information\n"
+       "Match next-hop address of route\n"
+       "Match entries of prefix-lists\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_set_peer_group_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X) " "peer-group WORD", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nIPv6 address\n"
+       "Member of the peer-group\n"
+       "peer-group name\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_neighbor_routes_cmd_vtysh, 
+       "show bgp neighbors (A.B.C.D|X:X::X:X) routes", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n"
+       "Display routes learned from neighbor\n")
+
+DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_route_prefix_cmd_vtysh, 
+       "show ipv6 ospf6 route (X::X|detail)", 
+       "Show running system information\n"
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Routing table\n"
+       "match IPv6 prefix\n"
+       )
+
+DEFSH (VTYSH_RIPNGD, ripng_redistribute_bgp_cmd_vtysh, 
+       "redistribute bgp", 
+       "Redistribute information from another routing protocol\n"
+       "Border Gateway Protocol (BGP)\n")
+
+DEFSH (VTYSH_ZEBRA, ip_irdp_multicast_cmd_vtysh, 
+       "ip irdp multicast", 
+       "IP information\n"
+       "ICMP Router discovery on this interface\n"
+       "Send IRDP advertisement to the multicast address\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_extended_host_mask_cmd_vtysh, 
+       "access-list (<100-199>|<2000-2699>) (deny|permit) ip host A.B.C.D A.B.C.D A.B.C.D", 
+       "Add an access list entry\n"
+       "IP extended access list\n"
+       "IP extended access list (expanded range)\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Any Internet Protocol\n"
+       "A single source host\n"
+       "Source address\n"
+       "Destination address\n"
+       "Destination Wildcard bits\n")
+
+DEFSH (VTYSH_OSPFD, no_area_vlink_authtype_authkey_cmd_vtysh, 
+       "no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
+       "(authentication|) "
+       "(authentication-key|)", 
+       "Negate a command or set its defaults\n"
+       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
+       "Enable authentication on this virtual link\n" "dummy string \n"
+       "Authentication password (key)\n" "The OSPF password (key)")
+
+DEFSH (VTYSH_BGPD, debug_bgp_events_cmd_vtysh, 
+       "debug bgp events", 
+       "Debugging functions (see also 'undebug')\n"
+       "BGP information\n"
+       "BGP events\n")
+
+DEFSH (VTYSH_OSPFD, no_area_vlink_param1_cmd_vtysh, 
+       "no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
+       "(hello-interval|retransmit-interval|transmit-delay|dead-interval)", 
+       "Negate a command or set its defaults\n"
+       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
+       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_seq_ge_cmd_vtysh, 
+       "no ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M ge <0-32>", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "sequence number of an entry\n"
+       "Sequence number\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Minimum prefix length to be matched\n"
+       "Minimum prefix length\n")
+
+DEFSH (VTYSH_RIPNGD, debug_ripng_packet_cmd_vtysh, 
+       "debug ripng packet", 
+       "Debugging functions (see also 'undebug')\n"
+       "RIPng configuration\n"
+       "Debug option set for ripng packet\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_as_out_cmd_vtysh, 
+       "clear ip bgp <1-65535> out", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear peers with the AS number\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_static_metric_cmd_vtysh, 
+       "no redistribute static metric", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Static routes\n"
+       "Metric\n")
+
+DEFSH (VTYSH_OSPFD, ospf_redistribute_source_routemap_cmd_vtysh, 
+       "redistribute (kernel|connected|static|rip|bgp) route-map WORD", 
+       "Redistribute information from another routing protocol\n"
+       "Kernel routes\n"
+       "Connected\n"
+       "Static routes\n"
+       "Routing Information Protocol (RIP)\n"
+       "Border Gateway Protocol (BGP)\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_community2_exact_cmd_vtysh, 
+       "show bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "Exact match of the communities")
+
+DEFSH (VTYSH_BGPD, clear_bgp_external_soft_cmd_vtysh, 
+       "clear bgp external soft", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear all external peers\n"
+       "Soft reconfig\n")
+
+DEFSH (VTYSH_BGPD, no_ipv6_aggregate_address_cmd_vtysh, 
+       "no aggregate-address X:X::X:X/M", 
+       "Negate a command or set its defaults\n"
+       "Configure BGP aggregate entries\n"
+       "Aggregate prefix\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_all_in_prefix_filter_cmd_vtysh, 
+       "clear bgp * in prefix-filter", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear all peers\n"
+       "Soft reconfig inbound update\n"
+       "Push out prefix-list ORF and do inbound soft reconfig\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_timers_connect_val_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X) " "timers connect <0-65535>", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nIPv6 address\n"
+       "BGP per neighbor timers\n"
+       "BGP connect timer\n"
+       "Connect timer\n")
+
+DEFSH (VTYSH_OSPFD, no_auto_cost_reference_bandwidth_cmd_vtysh, 
+       "no auto-cost reference-bandwidth", 
+       "Negate a command or set its defaults\n"
+       "Calculate OSPF interface cost according to bandwidth\n"
+       "Use reference bandwidth method to assign OSPF cost\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_cmd_vtysh, 
+       "show ip bgp", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n")
+
+DEFSH (VTYSH_OSPFD, ip_ospf_message_digest_key_addr_cmd_vtysh, 
+       "ip ospf message-digest-key <1-255> md5 KEY A.B.C.D", 
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Message digest authentication password (key)\n"
+       "Key ID\n"
+       "Use MD5 algorithm\n"
+       "The OSPF password (key)"
+       "Address of interface")
+
+DEFSH (VTYSH_BGPD, show_debugging_bgp_cmd_vtysh, 
+       "show debugging bgp", 
+       "Show running system information\n"
+       "Debugging functions (see also 'undebug')\n"
+       "BGP information\n")
+
+DEFSH (VTYSH_OSPFD|VTYSH_OSPF6D, ospf6_routemap_set_metric_type_cmd_vtysh, 
+       "set metric-type (type-1|type-2)", 
+       "Set value\n"
+       "Type of metric\n"
+       "OSPF6 external type 1 metric\n"
+       "OSPF6 external type 2 metric\n")
+
+DEFSH (VTYSH_BGPD, aggregate_address_mask_summary_only_cmd_vtysh, 
+       "aggregate-address A.B.C.D A.B.C.D summary-only", 
+       "Configure BGP aggregate entries\n"
+       "Aggregate address\n"
+       "Aggregate mask\n"
+       "Filter more specific routes from updates\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_passive_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "passive", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Don't send open messages to this neighbor\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_standard_cmd_vtysh, 
+       "access-list (<1-99>|<1300-1999>) (deny|permit) A.B.C.D A.B.C.D", 
+       "Add an access list entry\n"
+       "IP standard access list\n"
+       "IP standard access list (expanded range)\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Address to match\n"
+       "Wildcard bits\n")
+
+DEFSH (VTYSH_ZEBRA, no_zebra_interface_cmd_vtysh, 
+       "no interface IFNAME", 
+       "Delete a pseudo interface's configuration\n"
+       "Interface's name\n")
+
+DEFSH (VTYSH_RIPD, debug_rip_zebra_cmd_vtysh, 
+       "debug rip zebra", 
+       "Debugging functions (see also 'undebug')\n"
+       "RIP information\n"
+       "RIP and ZEBRA communication\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_extended_mask_any_cmd_vtysh, 
+       "no access-list (<100-199>|<2000-2699>) (deny|permit) ip A.B.C.D A.B.C.D any", 
+       "Negate a command or set its defaults\n"
+       "Add an access list entry\n"
+       "IP extended access list\n"
+       "IP extended access list (expanded range)\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Any Internet Protocol\n"
+       "Source address\n"
+       "Source wildcard bits\n"
+       "Any destination host\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_paths_cmd_vtysh, 
+       "show ip bgp ipv4 (unicast|multicast) paths", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Path information\n")
+
+DEFSH (VTYSH_OSPFD, ospf_redistribute_source_type_metric_routemap_cmd_vtysh, 
+       "redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) metric <0-16777214> route-map WORD", 
+       "Redistribute information from another routing protocol\n"
+       "Kernel routes\n"
+       "Connected\n"
+       "Static routes\n"
+       "Routing Information Protocol (RIP)\n"
+       "Border Gateway Protocol (BGP)\n"
+       "OSPF exterior metric type for redistributed routes\n"
+       "Set OSPF External Type 1 metrics\n"
+       "Set OSPF External Type 2 metrics\n"
+       "Metric for redistributed routes\n"
+       "OSPF default metric\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_peer_group_soft_out_cmd_vtysh, 
+       "clear bgp peer-group WORD soft out", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear all members of peer-group\n"
+       "BGP peer-group name\n"
+       "Soft reconfig\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_OSPFD, no_area_filter_list_cmd_vtysh, 
+       "no area (A.B.C.D|<0-4294967295>) filter-list prefix WORD (in|out)", 
+       "Negate a command or set its defaults\n"
+       "OSPF area parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "Filter networks between OSPF areas\n"
+       "Filter prefixes between OSPF areas\n"
+       "Name of an IP prefix-list\n"
+       "Filter networks sent to this area\n"
+       "Filter networks sent from this area\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_bgp_route_cmd_vtysh, 
+       "show ipv6 bgp X:X::X:X", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Network in the BGP routing table to display\n")
+
+DEFSH (VTYSH_BGPD, bgp_network_mask_natural_backdoor_cmd_vtysh, 
+       "network A.B.C.D backdoor", 
+       "Specify a network to announce via BGP\n"
+       "Network number\n"
+       "Specify a BGP backdoor route\n")
+
+DEFSH (VTYSH_RIPD, rip_route_cmd_vtysh, 
+       "route A.B.C.D/M", 
+       "RIP static route configuration\n"
+       "IP prefix <network>/<length>\n")
+
+DEFSH (VTYSH_OSPFD, no_ospf_cost_cmd_vtysh, 
+       "no ospf cost", 
+       "Negate a command or set its defaults\n"
+       "OSPF interface commands\n"
+       "Interface cost\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_all_soft_out_cmd_vtysh, 
+       "clear bgp * soft out", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear all peers\n"
+       "Soft reconfig\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, ipv6_prefix_list_sequence_number_cmd_vtysh, 
+       "ipv6 prefix-list sequence-number", 
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Include/exclude sequence numbers in NVGEN\n")
+
+DEFSH (VTYSH_RIPD, no_debug_rip_packet_cmd_vtysh, 
+       "no debug rip packet", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
+       "RIP information\n"
+       "RIP packet\n")
+
+DEFSH (VTYSH_ZEBRA, show_ip_route_prefix_longer_cmd_vtysh, 
+       "show ip route A.B.C.D/M longer-prefixes", 
+       "Show running system information\n"
+       "IP information\n"
+       "IP routing table\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Show route matching the specified Network/Mask pair only\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_OSPF6D|VTYSH_BGPD, show_ipv6_access_list_name_cmd_vtysh, 
+       "show ipv6 access-list WORD", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "List IPv6 access lists\n"
+       "IPv6 zebra access-list\n")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_ripng_cmd_vtysh, 
+       "no redistribute ripng", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "RIPng route\n")
+
+DEFSH (VTYSH_BGPD, no_set_community_val_cmd_vtysh, 
+       "no set community .AA:NN", 
+       "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "BGP community attribute\n"
+       "Community number in aa:nn format or local-AS|no-advertise|no-export|internet or additive\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_peer_group_out_cmd_vtysh, 
+       "clear bgp peer-group WORD out", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear all members of peer-group\n"
+       "BGP peer-group name\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, show_ipv6_prefix_list_prefix_longer_cmd_vtysh, 
+       "show ipv6 prefix-list WORD X:X::X:X/M longer", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
+       "Lookup longer prefix\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_redistribute_ipv4_metric_cmd_vtysh, 
+       "no redistribute (connected|kernel|ospf|rip|static) metric <0-4294967295>", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Kernel routes\n"
+       "Open Shurtest Path First (OSPF)\n"
+       "Routing Information Protocol (RIP)\n"
+       "Static routes\n"
+       "Metric for redistributed routes\n"
+       "Default metric\n")
+
+DEFSH (VTYSH_OSPFD, area_vlink_authkey_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
+       "(authentication-key|) AUTH_KEY", 
+       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
+       "Authentication password (key)\n" "The OSPF password (key)")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_flap_prefix_list_cmd_vtysh, 
+       "show ip bgp flap-statistics prefix-list WORD", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display flap statistics of routes\n"
+       "Display routes conforming to the prefix-list\n"
+       "IP prefix-list name\n")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_aggregate_address_cmd_vtysh, 
+       "no aggregate-address X:X::X:X/M", 
+       "Negate a command or set its defaults\n"
+       "Delete aggregate RIPng route announcement\n"
+       "Aggregate network")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_neighbor_routes_cmd_vtysh, 
+       "show ip bgp ipv4 (unicast|multicast) neighbors (A.B.C.D|X:X::X:X) routes", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n"
+       "Display routes learned from neighbor\n")
+
+DEFSH (VTYSH_OSPF6D, ipv6_ospf6_retransmitinterval_cmd_vtysh, 
+       "ipv6 ospf6 retransmit-interval RXMTINTERVAL", 
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Time between retransmitting lost link state advertisements\n"
+       "<1-65535> Seconds\n"
+       )
+
+DEFSH (VTYSH_RIPD, debug_rip_packet_detail_cmd_vtysh, 
+       "debug rip packet (recv|send) detail", 
+       "Debugging functions (see also 'undebug')\n"
+       "RIP information\n"
+       "RIP packet\n"
+       "RIP receive packet\n"
+       "RIP send packet\n"
+       "Detailed information display\n")
+
+DEFSH (VTYSH_ZEBRA, show_ip_route_protocol_cmd_vtysh, 
+       "show ip route (bgp|connected|kernel|ospf|rip|static)", 
+       "Show running system information\n"
+       "IP information\n"
+       "IP routing table\n"
+       "Border Gateway Protocol (BGP)\n"
+       "Connected\n"
+       "Kernel\n"
+       "Open Shortest Path First (OSPF)\n"
+       "Routing Information Protocol (RIP)\n"
+       "Static routes\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_client_to_client_reflection_cmd_vtysh, 
+       "no bgp client-to-client reflection", 
+       "Negate a command or set its defaults\n"
+       "BGP specific commands\n"
+       "Configure client to client route reflection\n"
+       "reflection of routes allowed\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_rmap_onmatch_next_cmd_vtysh, 
+       "no on-match next", 
+       "Negate a command or set its defaults\n"
+       "Exit policy on matches\n"
+       "Next clause\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_multiple_instance_cmd_vtysh, 
+       "no bgp multiple-instance", 
+       "Negate a command or set its defaults\n"
+       "BGP information\n"
+       "BGP multiple instance\n")
+
+DEFSH (VTYSH_OSPFD, no_debug_ospf_nsm_sub_cmd_vtysh, 
+       "no debug ospf nsm (status|events|timers)", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions\n"
+       "OSPF information\n"
+       "OSPF Interface State Machine\n"
+       "NSM Status Information\n"
+       "NSM Event Information\n"
+       "NSM Timer Information\n")
+
+DEFSH (VTYSH_OSPFD, area_vlink_param2_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
+       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535> "
+       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535>", 
+       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
+       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n"
+       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n")
+
+DEFSH (VTYSH_BGPD, bgp_distance_cmd_vtysh, 
+       "distance bgp <1-255> <1-255> <1-255>", 
+       "Define an administrative distance\n"
+       "BGP distance\n"
+       "Distance for routes external to the AS\n"
+       "Distance for routes internal to the AS\n"
+       "Distance for local routes\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_peer_group_soft_cmd_vtysh, 
+       "clear bgp peer-group WORD soft", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear all members of peer-group\n"
+       "BGP peer-group name\n"
+       "Soft reconfig\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_redistribute_ipv4_metric_rmap_cmd_vtysh, 
+       "no redistribute (connected|kernel|ospf|rip|static) metric <0-4294967295> route-map WORD", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Kernel routes\n"
+       "Open Shurtest Path First (OSPF)\n"
+       "Routing Information Protocol (RIP)\n"
+       "Static routes\n"
+       "Metric for redistributed routes\n"
+       "Default metric\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_extended_host_any_cmd_vtysh, 
+       "no access-list (<100-199>|<2000-2699>) (deny|permit) ip host A.B.C.D any", 
+       "Negate a command or set its defaults\n"
+       "Add an access list entry\n"
+       "IP extended access list\n"
+       "IP extended access list (expanded range)\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Any Internet Protocol\n"
+       "A single source host\n"
+       "Source address\n"
+       "Any destination host\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_attr_info_cmd_vtysh, 
+       "show ip bgp attribute-info", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "List all bgp attribute information\n")
+
+DEFSH (VTYSH_RIPNGD, no_default_information_originate_cmd_vtysh, 
+       "no default-information originate", 
+       "Negate a command or set its defaults\n"
+       "Default route information\n"
+       "Distribute default route\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_standard_host_cmd_vtysh, 
+       "no access-list (<1-99>|<1300-1999>) (deny|permit) host A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "Add an access list entry\n"
+       "IP standard access list\n"
+       "IP standard access list (expanded range)\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "A single host address\n"
+       "Address to match\n")
+
+DEFSH (VTYSH_RIPD, show_ip_protocols_rip_cmd_vtysh, 
+       "show ip protocols", 
+       "Show running system information\n"
+       "IP information\n"
+       "IP routing protocol process parameters and statistics\n")
+
+DEFSH (VTYSH_RIPD, send_lifetime_day_month_day_month_cmd_vtysh, 
+       "send-lifetime HH:MM:SS <1-31> MONTH <1993-2035> HH:MM:SS <1-31> MONTH <1993-2035>", 
+       "Set send lifetime of the key\n"
+       "Time to start\n"
+       "Day of th month to start\n"
+       "Month of the year to start\n"
+       "Year to start\n"
+       "Time to expire\n"
+       "Day of th month to expire\n"
+       "Month of the year to expire\n"
+       "Year to expire\n")
+
+DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_topology_cmd_vtysh, 
+       "show ipv6 ospf6 topology", 
+       "Show running system information\n"
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Inter Area topology information\n"
+       )
+
+DEFSH (VTYSH_OSPFD, no_area_stub_no_summary_cmd_vtysh, 
+       "no area (A.B.C.D|<0-4294967295>) stub no-summary", 
+       "Negate a command or set its defaults\n"
+       "OSPF area parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "Configure OSPF area as stub\n"
+       "Do not inject inter-area routes into area\n")
+
+DEFSH (VTYSH_OSPFD, no_ospf_redistribute_source_cmd_vtysh, 
+       "no redistribute (kernel|connected|static|rip|bgp)", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Kernel routes\n"
+       "Connected\n"
+       "Static routes\n"
+       "Routing Information Protocol (RIP)\n"
+       "Border Gateway Protocol (BGP)\n")
+
+DEFSH (VTYSH_RIPD, ip_rip_receive_version_cmd_vtysh, 
+       "ip rip receive version (1|2)", 
+       "IP information\n"
+       "Routing Information Protocol\n"
+       "Advertisement reception\n"
+       "Version control\n"
+       "RIP version 1\n"
+       "RIP version 2\n")
+
+DEFSH (VTYSH_OSPFD, ip_ospf_priority_addr_cmd_vtysh, 
+       "ip ospf priority <0-255> A.B.C.D", 
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Router priority\n"
+       "Priority\n"
+       "Address of interface")
+
+DEFSH (VTYSH_ZEBRA, debug_zebra_events_cmd_vtysh, 
+       "debug zebra events", 
+       "Debugging functions (see also 'undebug')\n"
+       "Zebra configuration\n"
+       "Debug option set for zebra events\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_ipv6_community_cmd_vtysh, 
+       "show bgp ipv6 community (AA:NN|local-AS|no-advertise|no-export)", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, match_metric_cmd_vtysh, 
+       "match metric <0-4294967295>", 
+       "Match values from routing table\n"
+       "Match metric of route\n"
+       "Metric value\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_ipv6_prefix_longer_cmd_vtysh, 
+       "show bgp ipv6 X:X::X:X/M longer-prefixes", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Address family\n"
+       "IPv6 prefix <network>/<length>\n"
+       "Display route and more specific routes\n")
+
+DEFSH (VTYSH_OSPF6D, no_ipv6_ospf6_passive_cmd_vtysh, 
+       "no ipv6 ospf6 passive", 
+       "Negate a command or set its defaults\n"
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "passive interface: No Adjacency will be formed on this I/F\n"
+       )
+
+DEFSH (VTYSH_RIPD, accept_lifetime_infinite_day_month_cmd_vtysh, 
+       "accept-lifetime HH:MM:SS <1-31> MONTH <1993-2035> infinite", 
+       "Set accept lifetime of the key\n"
+       "Time to start\n"
+       "Day of th month to start\n"
+       "Month of the year to start\n"
+       "Year to start\n"
+       "Never expires")
+
+DEFSH (VTYSH_BGPD, no_neighbor_attr_unchanged6_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged as-path med next-hop", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "BGP attribute is propagated unchanged to this neighbor\n"
+       "As-path attribute\n"
+       "Med attribute\n"
+       "Nexthop attribute\n")
+
+DEFSH (VTYSH_OSPFD, no_area_import_list_cmd_vtysh, 
+       "no area (A.B.C.D|<0-4294967295>) import-list NAME", 
+       "Negate a command or set its defaults\n"
+       "OSPF area parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "Unset the filter for networks announced to other areas\n"
+       "Name of the access-list\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, no_ipv6_prefix_list_seq_ge_cmd_vtysh, 
+       "no ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) X:X::X:X/M ge <0-128>", 
+       "Negate a command or set its defaults\n"
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "sequence number of an entry\n"
+       "Sequence number\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
+       "Minimum prefix length to be matched\n"
+       "Minimum prefix length\n")
+
+DEFSH (VTYSH_BGPD, neighbor_route_reflector_client_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "route-reflector-client", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Configure a neighbor as Route Reflector client\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_community_list_cmd_vtysh, 
+       "show bgp community-list WORD", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Display routes matching the community-list\n"
+       "community-list name\n")
+
+DEFSH (VTYSH_RIPNGD, ripng_redistribute_ripng_cmd_vtysh, 
+       "redistribute ripng", 
+       "Redistribute information from another routing protocol\n"
+       "RIPng route\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_standard_host_cmd_vtysh, 
+       "access-list (<1-99>|<1300-1999>) (deny|permit) host A.B.C.D", 
+       "Add an access list entry\n"
+       "IP standard access list\n"
+       "IP standard access list (expanded range)\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "A single host address\n"
+       "Address to match\n")
+
+DEFSH (VTYSH_RIPNGD, ripng_redistribute_bgp_metric_cmd_vtysh, 
+       "redistribute bgp metric <0-16>", 
+       "Redistribute information from another routing protocol\n"
+       "Border Gateway Protocol (BGP)\n"
+       "Metric\n"
+       "Metric value\n")
+
+DEFSH (VTYSH_OSPF6D|VTYSH_BGPD, match_ipv6_address_prefix_list_cmd_vtysh, 
+       "match ipv6 address prefix-list WORD", 
+       "Match values from routing table\n"
+       "IPv6 information\n"
+       "Match address of route\n"
+       "Match entries of prefix-lists\n"
+       "IP prefix-list name\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_neighbor_received_prefix_filter_cmd_vtysh, 
+       "show bgp neighbors (A.B.C.D|X:X::X:X) received prefix-filter", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n"
+       "Display information received from a BGP neighbor\n"
+       "Display the prefixlist filter\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_instance_neighbors_cmd_vtysh, 
+       "show ip bgp view WORD neighbors", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "BGP view\n"
+       "View name\n"
+       "Detailed information on TCP and BGP neighbor connections\n")
+
+DEFSH (VTYSH_OSPF6D, show_zebra_cmd_vtysh, 
+       "show zebra", 
+       "Show running system information\n"
+       "Zebra information\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_peer_out_cmd_vtysh, 
+       "clear bgp (A.B.C.D|X:X::X:X) out", 
+       "Reset functions\n"
+       "BGP information\n"
+       "BGP neighbor address to clear\n"
+       "BGP IPv6 neighbor to clear\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_description_cmd_vtysh, 
+       "no ip prefix-list WORD description", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "Prefix-list specific description\n")
+
+DEFSH (VTYSH_ZEBRA, no_ip_forwarding_cmd_vtysh, 
+       "no ip forwarding", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Turn off IP forwarding")
+
+DEFSH (VTYSH_RIPNGD, ripng_redistribute_bgp_routemap_cmd_vtysh, 
+       "redistribute bgp route-map WORD", 
+       "Redistribute information from another routing protocol\n"
+       "Border Gateway Protocol (BGP)\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_BGPD, no_debug_bgp_update_cmd_vtysh, 
+       "no debug bgp updates", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
+       "BGP information\n"
+       "BGP updates\n")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_ospf6_cmd_vtysh, 
+       "no redistribute ospf6", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "IPv6 Open Shortest Path First (OSPFv3)\n")
+
+DEFSH (VTYSH_ZEBRA, no_ip_address_cmd_vtysh, 
+       "no ip address A.B.C.D/M", 
+       "Negate a command or set its defaults\n"
+       "Interface Internet Protocol config commands\n"
+       "Set the IP address of an interface\n"
+       "IP Address (e.g. 10.0.0.1/8)")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_route_map_cmd_vtysh, 
+       "show ip bgp ipv4 (unicast|multicast) route-map WORD", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Display routes matching the route-map\n"
+       "A route-map to match on\n")
+
+DEFSH (VTYSH_ZEBRA, no_ipv6_address_cmd_vtysh, 
+       "no ipv6 address X:X::X:X/M", 
+       "Negate a command or set its defaults\n"
+       "Interface Internet Protocol config commands\n"
+       "Set the IP address of an interface\n"
+       "IPv6 address (e.g. 3ffe:506::1/48)\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_shutdown_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "shutdown", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Administratively shut down this neighbor\n")
+
+DEFSH (VTYSH_RIPD, no_ip_rip_authentication_string2_cmd_vtysh, 
+       "no ip rip authentication string LINE", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Routing Information Protocol\n"
+       "Authentication control\n"
+       "Authentication string\n"
+       "Authentication string\n")
+
+DEFSH (VTYSH_OSPFD, ip_ospf_network_cmd_vtysh, 
+       "ip ospf network (broadcast|non-broadcast|point-to-multipoint|point-to-point)", 
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Network type\n"
+       "Specify OSPF broadcast multi-access network\n"
+       "Specify OSPF NBMA network\n"
+       "Specify OSPF point-to-multipoint network\n"
+       "Specify OSPF point-to-point network\n")
+
+DEFSH (VTYSH_BGPD, neighbor_send_community_type_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "send-community (both|extended|standard)", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Send Community attribute to this neighbor\n"
+       "Send Standard and Extended Community attributes\n"
+       "Send Extended Community attributes\n"
+       "Send Standard Community attributes\n")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_kernel_metric_cmd_vtysh, 
+       "no redistribute kernel metric", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Kernel routes\n"
+       "Metric\n")
+
+DEFSH (VTYSH_BGPD, bgp_redistribute_ipv4_rmap_cmd_vtysh, 
+       "redistribute (connected|kernel|ospf|rip|static) route-map WORD", 
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Kernel routes\n"
+       "Open Shurtest Path First (OSPF)\n"
+       "Routing Information Protocol (RIP)\n"
+       "Static routes\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, ipv6_prefix_list_le_cmd_vtysh, 
+       "ipv6 prefix-list WORD (deny|permit) X:X::X:X/M le <0-128>", 
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
+       "Maximum prefix length to be matched\n"
+       "Maximum prefix length\n")
+
+DEFSH (VTYSH_OSPFD, ospf_redistribute_source_cmd_vtysh, 
+       "redistribute (kernel|connected|static|rip|bgp)", 
+       "Redistribute information from another routing protocol\n"
+       "Kernel routes\n"
+       "Connected\n"
+       "Static routes\n"
+       "Routing Information Protocol (RIP)\n"
+       "Border Gateway Protocol (BGP)\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_OSPF6D|VTYSH_BGPD, show_ipv6_access_list_cmd_vtysh, 
+       "show ipv6 access-list", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "List IPv6 access lists\n")
+
+DEFSH (VTYSH_BGPD, match_ecommunity_cmd_vtysh, 
+       "match extcommunity (<1-99>|<100-199>|WORD)", 
+       "Match values from routing table\n"
+       "Match BGP/VPN extended community list\n"
+       "Extended community-list number (standard)\n"
+       "Extended community-list number (expanded)\n"
+       "Extended community-list name\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_override_capability_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "override-capability", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Override capability negotiation result\n")
+
+DEFSH (VTYSH_ZEBRA, linkdetect_cmd_vtysh, 
+       "link-detect", 
+       "Enable link detection on interface\n")
+
+DEFSH (VTYSH_BGPD, undebug_bgp_update_cmd_vtysh, 
+       "undebug bgp updates", 
+       "Disable debugging functions (see also 'debug')\n"
+       "BGP information\n"
+       "BGP updates\n")
+
+DEFSH (VTYSH_RIPNGD, no_debug_ripng_packet_cmd_vtysh, 
+       "no debug ripng packet", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
+       "RIPng configuration\n"
+       "Debug option set for ripng packet\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_prefix_list_cmd_vtysh, 
+       "show ip bgp ipv4 (unicast|multicast) prefix-list WORD", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Display routes conforming to the prefix-list\n"
+       "IP prefix-list name\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_community2_cmd_vtysh, 
+       "show ip bgp ipv4 (unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n")
+
+DEFSH (VTYSH_BGPD, neighbor_attr_unchanged6_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged as-path med next-hop", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "BGP attribute is propagated unchanged to this neighbor\n"
+       "As-path attribute\n"
+       "Med attribute\n"
+       "Nexthop attribute\n")
+
+DEFSH (VTYSH_OSPFD, no_timers_spf_cmd_vtysh, 
+       "no timers spf", 
+       "Negate a command or set its defaults\n"
+       "Adjust routing timers\n"
+       "OSPF SPF timers\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_flap_filter_list_cmd_vtysh, 
+       "show ip bgp flap-statistics filter-list WORD", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display flap statistics of routes\n"
+       "Display routes conforming to the filter-list\n"
+       "Regular expression access list name\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_rd_neighbor_advertised_routes_cmd_vtysh, 
+       "show ip bgp vpnv4 rd ASN:nn_or_IP-address:nn neighbors A.B.C.D advertised-routes", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display VPNv4 NLRI specific information\n"
+       "Display information for a route distinguisher\n"
+       "VPN Route Distinguisher\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Display the routes advertised to a BGP neighbor\n")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_kernel_routemap_cmd_vtysh, 
+       "no redistribute kernel route-map WORD", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Kernel routes\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_all_route_cmd_vtysh, 
+       "show ip bgp vpnv4 all A.B.C.D", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display VPNv4 NLRI specific information\n"
+       "Display information about all VPNv4 NLRIs\n"
+       "Network in the BGP routing table to display\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_ipv6_regexp_cmd_vtysh, 
+       "show bgp ipv6 regexp .LINE", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Display routes matching the AS path regular expression\n"
+       "A regular-expression to match the BGP AS paths\n")
+
+DEFSH (VTYSH_OSPFD, no_passive_interface_addr_cmd_vtysh, 
+       "no passive-interface IFNAME A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "Allow routing updates on an interface\n"
+       "Interface's name\n")
+
+DEFSH (VTYSH_OSPFD, ospf_authentication_key_cmd_vtysh, 
+       "ospf authentication-key AUTH_KEY", 
+       "OSPF interface commands\n"
+       "Authentication password (key)\n"
+       "The OSPF password (key)")
+
+DEFSH (VTYSH_OSPF6D, ipv6_ospf6_priority_cmd_vtysh, 
+       "ipv6 ospf6 priority PRIORITY", 
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Router priority\n"
+       "<0-255> Priority\n"
+       )
+
+DEFSH (VTYSH_OSPFD, no_area_vlink_md5_cmd_vtysh, 
+       "no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
+       "(message-digest-key|) <1-255>", 
+       "Negate a command or set its defaults\n"
+       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
+       "Message digest authentication password (key)\n" "dummy string \n" "Key ID\n" "Use MD5 algorithm\n" "The OSPF password (key)")
+
+DEFSH (VTYSH_RIPD, no_rip_distance_source_access_list_cmd_vtysh, 
+       "no distance <1-255> A.B.C.D/M WORD", 
+       "Negate a command or set its defaults\n"
+       "Administrative distance\n"
+       "Distance value\n"
+       "IP source prefix\n"
+       "Access list name\n")
+
+DEFSH (VTYSH_OSPFD, no_ospf_router_id_cmd_vtysh, 
+       "no ospf router-id", 
+       "Negate a command or set its defaults\n"
+       "OSPF specific commands\n"
+       "router-id for the OSPF process\n")
+
+DEFSH (VTYSH_BGPD, bgp_bestpath_compare_router_id_cmd_vtysh, 
+       "bgp bestpath compare-routerid", 
+       "BGP specific commands\n"
+       "Change the default bestpath selection\n"
+       "Compare router-id for identical EBGP paths\n")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_bgp_metric_val_cmd_vtysh, 
+       "no redistribute bgp metric <0-16>", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Border Gateway Protocol (BGP)\n"
+       "Metric\n"
+       "Metric value\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_bgp_community3_cmd_vtysh, 
+       "show ipv6 bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "BGP information\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n")
+
+DEFSH (VTYSH_ZEBRA, debug_zebra_packet_direct_cmd_vtysh, 
+       "debug zebra packet (recv|send)", 
+       "Debugging functions (see also 'undebug')\n"
+       "Zebra configuration\n"
+       "Debug option set for zebra packet\n"
+       "Debug option set for receive packet\n"
+       "Debug option set for send packet\n")
+
+DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_area_topology_router_cmd_vtysh, 
+       "show ipv6 ospf6 area A.B.C.D topology (A.B.C.D|<0-4294967295>|detail)", 
+       "Show running system information\n"
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Area information\n"
+       "Area ID (as an IPv4 notation)\n"
+       "Shortest Path First tree information\n"
+       "Displays SPF topology table\n"
+       "Specify Router-ID\n"
+       "Specify Router-ID\n"
+       )
+
+DEFSH (VTYSH_OSPFD, no_router_id_cmd_vtysh, 
+       "no router-id", 
+       "Negate a command or set its defaults\n"
+       "router-id for the OSPF process\n")
+
+DEFSH (VTYSH_BGPD, set_ipv6_nexthop_global_cmd_vtysh, 
+       "set ipv6 next-hop global X:X::X:X", 
+       "Set values in destination routing protocol\n"
+       "IPv6 information\n"
+       "IPv6 next-hop address\n"
+       "IPv6 global address\n"
+       "IPv6 address of next hop\n")
+
+DEFSH (VTYSH_RIPNGD, no_debug_ripng_packet_direct_cmd_vtysh, 
+       "no debug ripng packet (recv|send)", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
+       "RIPng configuration\n"
+       "Debug option set for ripng packet\n"
+       "Debug option set for receive packet\n"
+       "Debug option set for send packet\n")
+
+DEFSH (VTYSH_RIPD, send_lifetime_infinite_month_day_cmd_vtysh, 
+       "send-lifetime HH:MM:SS MONTH <1-31> <1993-2035> infinite", 
+       "Set send lifetime of the key\n"
+       "Time to start\n"
+       "Month of the year to start\n"
+       "Day of th month to start\n"
+       "Year to start\n"
+       "Never expires")
+
+DEFSH (VTYSH_BGPD, no_set_local_pref_val_cmd_vtysh, 
+       "no set local-preference <0-4294967295>", 
+       "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "BGP local preference path attribute\n"
+       "Preference value\n")
+
+DEFSH (VTYSH_RIPNGD, ripng_redistribute_ospf6_cmd_vtysh, 
+       "redistribute ospf6", 
+       "Redistribute information from another routing protocol\n"
+       "IPv6 Open Shortest Path First (OSPFv3)\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_extended_any_any_cmd_vtysh, 
+       "access-list (<100-199>|<2000-2699>) (deny|permit) ip any any", 
+       "Add an access list entry\n"
+       "IP extended access list\n"
+       "IP extended access list (expanded range)\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Any Internet Protocol\n"
+       "Any source host\n"
+       "Any destination host\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_local_as_val_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "local-as <1-65535>", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Specify a local-as number\n"
+       "AS number used as local AS\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_extended_mask_host_cmd_vtysh, 
+       "access-list (<100-199>|<2000-2699>) (deny|permit) ip A.B.C.D A.B.C.D host A.B.C.D", 
+       "Add an access list entry\n"
+       "IP extended access list\n"
+       "IP extended access list (expanded range)\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Any Internet Protocol\n"
+       "Source address\n"
+       "Source wildcard bits\n"
+       "A single destination host\n"
+       "Destination address\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ip_prefix_list_name_cmd_vtysh, 
+       "show ip prefix-list WORD", 
+       "Show running system information\n"
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n")
+
+DEFSH (VTYSH_ZEBRA, show_ipv6_route_prefix_cmd_vtysh, 
+       "show ipv6 route X:X::X:X/M", 
+       "Show running system information\n"
+       "IP information\n"
+       "IPv6 routing table\n"
+       "IPv6 prefix\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_vpnv4_soft_cmd_vtysh, 
+       "clear ip bgp A.B.C.D vpnv4 unicast soft", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "BGP neighbor address to clear\n"
+       "Address family\n"
+       "Address Family Modifier\n"
+       "Soft reconfig\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_match_ip_next_hop_cmd_vtysh, 
+       "no match ip next-hop", 
+       "Negate a command or set its defaults\n"
+       "Match values from routing table\n"
+       "IP information\n"
+       "Match next-hop address of route\n")
+
+DEFSH (VTYSH_OSPFD, no_ip_ospf_authentication_addr_cmd_vtysh, 
+       "no ip ospf authentication A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Enable authentication on this interface\n"
+       "Address of interface")
+
+DEFSH (VTYSH_OSPF6D, ospf6_routemap_no_set_forwarding_cmd_vtysh, 
+       "no set forwarding-address X:X::X:X", 
+       "Negate a command or set its defaults\n"
+       "Set value\n"
+       "Forwarding Address\n"
+       "IPv6 Address\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_mbgp_community2_cmd_vtysh, 
+       "show ipv6 mbgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "MBGP information\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n")
+
+DEFSH (VTYSH_OSPFD, no_area_range_cost_cmd_vtysh, 
+       "no area (A.B.C.D|<0-4294967295>) range A.B.C.D/M cost <0-16777215>", 
+       "Negate a command or set its defaults\n"
+       "OSPF area parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "Summarize routes matching address/mask (border routers only)\n"
+       "Area range prefix\n"
+       "User specified metric for this range\n"
+       "Advertised metric for this range\n")
+
+DEFSH (VTYSH_RIPD, ip_rip_authentication_key_chain_cmd_vtysh, 
+       "ip rip authentication key-chain LINE", 
+       "IP information\n"
+       "Routing Information Protocol\n"
+       "Authentication control\n"
+       "Authentication key-chain\n"
+       "name of key-chain\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_distribute_list_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "distribute-list (<1-199>|<1300-2699>|WORD) (in|out)", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Filter updates to/from this neighbor\n"
+       "IP access-list number\n"
+       "IP access-list number (expanded range)\n"
+       "IP Access-list name\n"
+       "Filter incoming updates\n"
+       "Filter outgoing updates\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_redistribute_ipv6_metric_cmd_vtysh, 
+       "no redistribute (connected|kernel|ospf6|ripng|static) metric <0-4294967295>", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Kernel routes\n"
+       "Open Shurtest Path First (OSPFv3)\n"
+       "Routing Information Protocol (RIPng)\n"
+       "Static routes\n"
+       "Metric for redistributed routes\n"
+       "Default metric\n")
+
+DEFSH (VTYSH_OSPFD, no_area_vlink_authkey_cmd_vtysh, 
+       "no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
+       "(authentication-key|)", 
+       "Negate a command or set its defaults\n"
+       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
+       "Authentication password (key)\n" "The OSPF password (key)")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, show_ipv6_prefix_list_cmd_vtysh, 
+       "show ipv6 prefix-list", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "Build a prefix list\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ip_prefix_list_prefix_longer_cmd_vtysh, 
+       "show ip prefix-list WORD A.B.C.D/M longer", 
+       "Show running system information\n"
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Lookup longer prefix\n")
+
+DEFSH (VTYSH_OSPFD, ospf_distance_ospf_inter_intra_external_cmd_vtysh, 
+       "distance ospf inter-area <1-255> intra-area <1-255> external <1-255>", 
+       "Define an administrative distance\n"
+       "OSPF Administrative distance\n"
+       "Inter-area routes\n"
+       "Distance for inter-area routes\n"
+       "Intra-area routes\n"
+       "Distance for intra-area routes\n"
+       "External routes\n"
+       "Distance for external routes\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_bestpath_med3_cmd_vtysh, 
+       "no bgp bestpath med missing-as-worst confed", 
+       "Negate a command or set its defaults\n"
+       "BGP specific commands\n"
+       "Change the default bestpath selection\n"
+       "MED attribute\n"
+       "Treat missing MED as the least preferred one\n"
+       "Compare MED among confederation paths\n")
+
+DEFSH (VTYSH_RIPNGD, debug_ripng_packet_direct_cmd_vtysh, 
+       "debug ripng packet (recv|send)", 
+       "Debugging functions (see also 'undebug')\n"
+       "RIPng configuration\n"
+       "Debug option set for ripng packet\n"
+       "Debug option set for receive packet\n"
+       "Debug option set for send packet\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_ipv4_soft_in_cmd_vtysh, 
+       "clear ip bgp peer-group WORD ipv4 (unicast|multicast) soft in", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all members of peer-group\n"
+       "BGP peer-group name\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Soft reconfig\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_all_soft_out_cmd_vtysh, 
+       "clear ip bgp * soft out", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all peers\n"
+       "Soft reconfig\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_ipv6_neighbor_received_prefix_filter_cmd_vtysh, 
+       "show bgp ipv6 neighbors (A.B.C.D|X:X::X:X) received prefix-filter", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n"
+       "Display information received from a BGP neighbor\n"
+       "Display the prefixlist filter\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_all_ipv4_soft_cmd_vtysh, 
+       "clear ip bgp * ipv4 (unicast|multicast) soft", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all peers\n"
+       "Address family\n"
+       "Address Family Modifier\n"
+       "Address Family Modifier\n"
+       "Soft reconfig\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_all_ipv4_soft_out_cmd_vtysh, 
+       "clear ip bgp * ipv4 (unicast|multicast) soft out", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all peers\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Soft reconfig\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_RIPD, accept_lifetime_day_month_day_month_cmd_vtysh, 
+       "accept-lifetime HH:MM:SS <1-31> MONTH <1993-2035> HH:MM:SS <1-31> MONTH <1993-2035>", 
+       "Set accept lifetime of the key\n"
+       "Time to start\n"
+       "Day of th month to start\n"
+       "Month of the year to start\n"
+       "Year to start\n"
+       "Time to expire\n"
+       "Day of th month to expire\n"
+       "Month of the year to expire\n"
+       "Year to expire\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_cluster_id_cmd_vtysh, 
+       "no bgp cluster-id", 
+       "Negate a command or set its defaults\n"
+       "BGP information\n"
+       "Configure Route-Reflector Cluster-id\n")
+
+DEFSH (VTYSH_BGPD, neighbor_maximum_prefix_warning_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "maximum-prefix <1-4294967295> warning-only", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Maximum number of prefix accept from this peer\n"
+       "maximum no. of prefix limit\n"
+       "Only give warning message when limit is exceeded\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_community_cmd_vtysh, 
+       "show ip bgp ipv4 (unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export)", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n")
+
+DEFSH (VTYSH_OSPFD, no_area_stub_cmd_vtysh, 
+       "no area (A.B.C.D|<0-4294967295>) stub", 
+       "Negate a command or set its defaults\n"
+       "OSPF area parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "Configure OSPF area as stub\n")
+
+DEFSH (VTYSH_ZEBRA, no_debug_zebra_events_cmd_vtysh, 
+       "no debug zebra events", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
+       "Zebra configuration\n"
+       "Debug option set for zebra events\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_group_in_cmd_vtysh, 
+       "clear bgp ipv6 peer-group WORD in", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear all members of peer-group\n"
+       "BGP peer-group name\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_bgp_prefix_list_cmd_vtysh, 
+       "show ipv6 bgp prefix-list WORD", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "BGP information\n"
+       "Display routes matching the prefix-list\n"
+       "IPv6 prefix-list name\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_distance2_cmd_vtysh, 
+       "no distance bgp", 
+       "Negate a command or set its defaults\n"
+       "Define an administrative distance\n"
+       "BGP distance\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_external_in_cmd_vtysh, 
+       "clear bgp ipv6 external WORD in", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear all external peers\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_BGPD, no_set_aggregator_as_val_cmd_vtysh, 
+       "no set aggregator as <1-65535> A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "BGP aggregator attribute\n"
+       "AS number of aggregator\n"
+       "AS number\n"
+       "IP address of aggregator\n")
+
+DEFSH (VTYSH_OSPFD, ospf_default_information_originate_metric_type_routemap_cmd_vtysh, 
+       "default-information originate metric <0-16777214> metric-type (1|2) route-map WORD", 
+       "Control distribution of default information\n"
+       "Distribute a default route\n"
+       "OSPF default metric\n"
+       "OSPF metric\n"
+       "OSPF metric type for default routes\n"
+       "Set OSPF External Type 1 metrics\n"
+       "Set OSPF External Type 2 metrics\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_BGPD, ip_community_list_name_standard_cmd_vtysh, 
+       "ip community-list standard WORD (deny|permit) .AA:NN", 
+       "IP information\n"
+       "Add a community list entry\n"
+       "Add a standard community-list entry\n"
+       "Community list name\n"
+       "Specify community to reject\n"
+       "Specify community to accept\n"
+       "Community number in aa:nn format or internet|local-AS|no-advertise|no-export\n")
+
+DEFSH (VTYSH_OSPFD, show_ip_ospf_database_type_self_cmd_vtysh, 
+       "show ip ospf database (" "asbr-summary|external|network|router|summary" "" "" ") (self-originate|)", 
+       "Show running system information\n"
+       "IP information\n"
+       "OSPF information\n"
+       "Database summary\n"
+       "ASBR summary link states\n" "External link states\n" "Network link states\n" "Router link states\n" "Network summary link states\n" "" "" "" ""
+       "Self-originated link states\n")
+
+DEFSH (VTYSH_BGPD, bgp_router_id_cmd_vtysh, 
+       "bgp router-id A.B.C.D", 
+       "BGP information\n"
+       "Override configured router identifier\n"
+       "Manually configured router identifier\n")
+
+DEFSH (VTYSH_ZEBRA, show_ip_forwarding_cmd_vtysh, 
+       "show ip forwarding", 
+       "Show running system information\n"
+       "IP information\n"
+       "IP forwarding status\n")
+
+DEFSH (VTYSH_BGPD, ip_community_list_standard_cmd_vtysh, 
+       "ip community-list <1-99> (deny|permit) .AA:NN", 
+       "IP information\n"
+       "Add a community list entry\n"
+       "Community list number (standard)\n"
+       "Specify community to reject\n"
+       "Specify community to accept\n"
+       "Community number in aa:nn format or internet|local-AS|no-advertise|no-export\n")
+
+DEFSH (VTYSH_OSPF6D, debug_ospf6_damp_cmd_vtysh, 
+       "debug ospf6 damp", 
+       "Debugging functions (see also 'undebug')\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Flap-dampening information\n"
+      )
+
+DEFSH (VTYSH_ZEBRA, no_multicast_cmd_vtysh, 
+       "no multicast", 
+       "Negate a command or set its defaults\n"
+       "Unset multicast flag to interface\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_instance_ipv4_summary_cmd_vtysh, 
+       "show ip bgp view WORD ipv4 (unicast|multicast) summary", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "BGP view\n"
+       "View name\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Summary of BGP neighbor status\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_peer_soft_cmd_vtysh, 
+       "clear bgp (A.B.C.D|X:X::X:X) soft", 
+       "Reset functions\n"
+       "BGP information\n"
+       "BGP neighbor address to clear\n"
+       "BGP IPv6 neighbor to clear\n"
+       "Soft reconfig\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_extended_cmd_vtysh, 
+       "access-list (<100-199>|<2000-2699>) (deny|permit) ip A.B.C.D A.B.C.D A.B.C.D A.B.C.D", 
+       "Add an access list entry\n"
+       "IP extended access list\n"
+       "IP extended access list (expanded range)\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Any Internet Protocol\n"
+       "Source address\n"
+       "Source wildcard bits\n"
+       "Destination address\n"
+       "Destination Wildcard bits\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_filter_list_cmd_vtysh, 
+       "show ip bgp ipv4 (unicast|multicast) filter-list WORD", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Display routes conforming to the filter-list\n"
+       "Regular expression access list name\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_summary_cmd_vtysh, 
+       "show ip bgp ipv4 (unicast|multicast) summary", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Summary of BGP neighbor status\n")
+
+DEFSH (VTYSH_RIPD, no_rip_redistribute_type_metric_routemap_cmd_vtysh, 
+       "no redistribute (kernel|connected|static|ospf|bgp) metric <0-16> route-map WORD", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Kernel routes\n"
+       "Connected\n"
+       "Static routes\n"
+       "Open Shortest Path First (OSPF)\n"
+       "Border Gateway Protocol (BGP)\n"
+       "Metric\n"
+       "Metric value\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_external_ipv4_soft_cmd_vtysh, 
+       "clear ip bgp external ipv4 (unicast|multicast) soft", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all external peers\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Soft reconfig\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_soft_out_cmd_vtysh, 
+       "clear bgp ipv6 (A.B.C.D|X:X::X:X) soft out", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "BGP neighbor address to clear\n"
+       "BGP IPv6 neighbor to clear\n"
+       "Soft reconfig\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_OSPFD, show_ip_ospf_route_cmd_vtysh, 
+       "show ip ospf route", 
+       "Show running system information\n"
+       "IP information\n"
+       "OSPF information\n"
+       "OSPF routing table\n")
+
+DEFSH (VTYSH_OSPFD, area_vlink_authtype_args_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
+       "(authentication|) (message-digest|null)", 
+       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
+       "Enable authentication on this virtual link\n" "dummy string \n" "Use null authentication\n" "Use message-digest authentication\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_network_cmd_vtysh, 
+       "no network A.B.C.D/M", 
+       "Negate a command or set its defaults\n"
+       "Specify a network to announce via BGP\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n")
+
+DEFSH (VTYSH_BGPD, no_ip_as_path_cmd_vtysh, 
+       "no ip as-path access-list WORD (deny|permit) .LINE", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "BGP autonomous system path filter\n"
+       "Specify an access list name\n"
+       "Regular expression access list name\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "A regular-expression to match the BGP AS paths\n")
+
+DEFSH (VTYSH_BGPD, neighbor_distribute_list_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "distribute-list (<1-199>|<1300-2699>|WORD) (in|out)", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Filter updates to/from this neighbor\n"
+       "IP access-list number\n"
+       "IP access-list number (expanded range)\n"
+       "IP Access-list name\n"
+       "Filter incoming updates\n"
+       "Filter outgoing updates\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, ip_prefix_list_le_ge_cmd_vtysh, 
+       "ip prefix-list WORD (deny|permit) A.B.C.D/M le <0-32> ge <0-32>", 
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Maximum prefix length to be matched\n"
+       "Maximum prefix length\n"
+       "Minimum prefix length to be matched\n"
+       "Minimum prefix length\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_OSPF6D|VTYSH_BGPD, no_ipv6_access_list_all_cmd_vtysh, 
+       "no ipv6 access-list WORD", 
+       "Negate a command or set its defaults\n"
+       "IPv6 information\n"
+       "Add an access list entry\n"
+       "IPv6 zebra access-list\n")
+
+DEFSH (VTYSH_BGPD, ip_community_list_name_expanded_cmd_vtysh, 
+       "ip community-list expanded WORD (deny|permit) .LINE", 
+       "IP information\n"
+       "Add a community list entry\n"
+       "Add an expanded community-list entry\n"
+       "Community list name\n"
+       "Specify community to reject\n"
+       "Specify community to accept\n"
+       "An ordered list as a regular-expression\n")
+
+DEFSH (VTYSH_BGPD, neighbor_timers_connect_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X) " "timers connect <0-65535>", 
+       "Specify neighbor router\n"
+       "Neighbor address\nIPv6 address\n"
+       "BGP per neighbor timers\n"
+       "BGP connect timer\n"
+       "Connect timer\n")
+
+DEFSH (VTYSH_ZEBRA, ipv6_address_cmd_vtysh, 
+       "ipv6 address X:X::X:X/M", 
+       "Interface Internet Protocol config commands\n"
+       "Set the IP address of an interface\n"
+       "IPv6 address (e.g. 3ffe:506::1/48)\n")
+
+DEFSH (VTYSH_BGPD, ip_community_list_expanded_cmd_vtysh, 
+       "ip community-list <100-199> (deny|permit) .LINE", 
+       "IP information\n"
+       "Add a community list entry\n"
+       "Community list number (expanded)\n"
+       "Specify community to reject\n"
+       "Specify community to accept\n"
+       "An ordered list as a regular-expression\n")
+
+DEFSH (VTYSH_RIPD, rip_offset_list_ifname_cmd_vtysh, 
+       "offset-list WORD (in|out) <0-16> IFNAME", 
+       "Modify RIP metric\n"
+       "Access-list name\n"
+       "For incoming updates\n"
+       "For outgoing updates\n"
+       "Metric value\n"
+       "Interface to match\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_mbgp_prefix_longer_cmd_vtysh, 
+       "show ipv6 mbgp X:X::X:X/M longer-prefixes", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "MBGP information\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
+       "Display route and more specific routes\n")
+
+DEFSH (VTYSH_OSPFD, debug_ospf_ism_sub_cmd_vtysh, 
+       "debug ospf ism (status|events|timers)", 
+       "Debugging functions (see also 'undebug')\n"
+       "OSPF information\n"
+       "OSPF Interface State Machine\n"
+       "ISM Status Information\n"
+       "ISM Event Information\n"
+       "ISM TImer Information\n")
+
+DEFSH (VTYSH_BGPD, neighbor_send_community_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "send-community", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Send Community attribute to this neighbor\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_route_map_cmd_vtysh, 
+       "show bgp route-map WORD", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Display routes matching the route-map\n"
+       "A route-map to match on\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_rd_route_cmd_vtysh, 
+       "show ip bgp vpnv4 rd ASN:nn_or_IP-address:nn A.B.C.D", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display VPNv4 NLRI specific information\n"
+       "Display information for a route distinguisher\n"
+       "VPN Route Distinguisher\n"
+       "Network in the BGP routing table to display\n")
+
+DEFSH (VTYSH_ZEBRA, no_ipv6_route_ifname_pref_cmd_vtysh, 
+       "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE <1-255>", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Establish static routes\n"
+       "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
+       "IPv6 gateway address\n"
+       "IPv6 gateway interface name\n"
+       "Distance value for this prefix\n")
+
+DEFSH (VTYSH_BGPD, dump_bgp_updates_interval_cmd_vtysh, 
+       "dump bgp updates PATH INTERVAL", 
+       "Dump packet\n"
+       "BGP packet dump\n"
+       "Dump BGP updates only\n"
+       "Output filename\n"
+       "Interval of output\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_confederation_identifier_arg_cmd_vtysh, 
+       "no bgp confederation identifier <1-65535>", 
+       "Negate a command or set its defaults\n"
+       "BGP specific commands\n"
+       "AS confederation parameters\n"
+       "AS number\n"
+       "Set routing domain confederation AS\n")
+
+DEFSH (VTYSH_OSPFD, neighbor_priority_poll_interval_cmd_vtysh, 
+       "neighbor A.B.C.D priority <0-255> poll-interval <1-65535>", 
+       "Specify neighbor router\n"
+       "Neighbor IP address\n"
+       "Neighbor Priority\n"
+       "Priority\n"
+       "Dead Neighbor Polling interval\n"
+       "Seconds\n")
+
+DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_database_type_cmd_vtysh, 
+       "show ipv6 ospf6 database (router|network|as-external|intra-prefix|inter-prefix|inter-router|link|*|HEX|dump|detail)", 
+       "Show running system information\n"
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "LSA Database\n"
+       "Router-LSA\n"
+       "Network-LSA\n"
+       "AS-External-LSA\n"
+       "Intra-Area-Prefix-LSA\n"
+       "Inter-Area-Router-LSA\n"
+       "Inter-Area-Prefix-LSA\n"
+       "Link-LSA\n"
+       "All LS Type\n"
+       "Specify LS Type by Hex\n"
+       "Dump raw LSA data in Hex\n"
+       "show detail of LSAs\n"
+       )
+
+DEFSH (VTYSH_BGPD, no_neighbor_route_server_client_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "route-server-client", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Configure a neighbor as Route Server client\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_community_all_cmd_vtysh, 
+       "show ip bgp community", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display routes matching the communities\n")
+
+DEFSH (VTYSH_OSPFD, ospf_message_digest_key_cmd_vtysh, 
+       "ospf message-digest-key <1-255> md5 KEY", 
+       "OSPF interface commands\n"
+       "Message digest authentication password (key)\n"
+       "Key ID\n"
+       "Use MD5 algorithm\n"
+       "The OSPF password (key)")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_all_ipv4_soft_in_cmd_vtysh, 
+       "clear ip bgp * ipv4 (unicast|multicast) soft in", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all peers\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Soft reconfig\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_in_prefix_filter_cmd_vtysh, 
+       "clear bgp ipv6 (A.B.C.D|X:X::X:X) in prefix-filter", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "BGP neighbor address to clear\n"
+       "BGP IPv6 neighbor to clear\n"
+       "Soft reconfig inbound update\n"
+       "Push out the existing ORF prefix-list\n")
+
+DEFSH (VTYSH_BGPD, no_match_community_cmd_vtysh, 
+       "no match community", 
+       "Negate a command or set its defaults\n"
+       "Match values from routing table\n"
+       "Match BGP community list\n")
+
+DEFSH (VTYSH_RIPD, rip_redistribute_type_metric_cmd_vtysh, 
+       "redistribute (kernel|connected|static|ospf|bgp) metric <0-16>", 
+       "Redistribute information from another routing protocol\n"
+       "Kernel routes\n"
+       "Connected\n"
+       "Static routes\n"
+       "Open Shortest Path First (OSPF)\n"
+       "Border Gateway Protocol (BGP)\n"
+       "Metric\n"
+       "Metric value\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_all_summary_cmd_vtysh, 
+       "show ip bgp vpnv4 all summary", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display VPNv4 NLRI specific information\n"
+       "Display information about all VPNv4 NLRIs\n"
+       "Summary of BGP neighbor status\n")
+
 DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_community2_exact_cmd_vtysh, 
        "show ip bgp ipv4 (unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
        "Show running system information\n"
@@ -7830,56 +6253,555 @@
        "Do not export to next AS (well-known community)\n"
        "Exact match of the communities")
 
-DEFSH (VTYSH_RIPNGD, ripng_redistribute_kernel_cmd_vtysh, 
-       "redistribute kernel", 
-       "Redistribute information from another routing protocol\n"
-       "Kernel routes\n")
+DEFSH (VTYSH_BGPD, show_ipv6_mbgp_regexp_cmd_vtysh, 
+       "show ipv6 mbgp regexp .LINE", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display routes matching the AS path regular expression\n"
+       "A regular-expression to match the MBGP AS paths\n")
 
-DEFSH (VTYSH_OSPFD, no_debug_ospf_lsa_sub_cmd_vtysh, 
-       "no debug ospf lsa (generate|flooding|install|refresh)", 
+DEFSH (VTYSH_BGPD, no_set_community_delete_cmd_vtysh, 
+       "no set comm-list", 
+       "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "set BGP community list (for deletion)\n")
+
+DEFSH (VTYSH_OSPFD, no_debug_ospf_zebra_cmd_vtysh, 
+       "no debug ospf zebra", 
        "Negate a command or set its defaults\n"
        "Debugging functions (see also 'undebug')\n"
        "OSPF information\n"
-       "OSPF Link State Advertisement\n"
-       "LSA Generation\n"
-       "LSA Flooding\n"
-       "LSA Install/Delete\n"
-       "LSA Refres\n")
+       "OSPF Zebra information\n")
 
-DEFSH (VTYSH_BGPD, bgp_fast_external_failover_cmd_vtysh, 
-       "bgp fast-external-failover", 
-       "BGP information\n"
-       "Immediately reset session if a link to a directly connected external peer goes down\n")
+DEFSH (VTYSH_ZEBRA, debug_zebra_packet_cmd_vtysh, 
+       "debug zebra packet", 
+       "Debugging functions (see also 'undebug')\n"
+       "Zebra configuration\n"
+       "Debug option set for zebra packet\n")
 
-DEFSH (VTYSH_OSPFD, ip_ospf_message_digest_key_cmd_vtysh, 
-       "ip ospf message-digest-key <1-255> md5 KEY", 
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Message digest authentication password (key)\n"
-       "Key ID\n"
-       "Use MD5 algorithm\n"
-       "The OSPF password (key)")
+DEFSH (VTYSH_RIPD, no_rip_redistribute_rip_cmd_vtysh, 
+       "no redistribute rip", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Routing Information Protocol (RIP)\n")
 
-DEFSH (VTYSH_BGPD, show_ipv6_mbgp_prefix_list_cmd_vtysh, 
-       "show ipv6 mbgp prefix-list WORD", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "MBGP information\n"
-       "Display routes matching the prefix-list\n"
-       "IPv6 prefix-list name\n")
+DEFSH (VTYSH_OSPFD, ospf_default_information_originate_metric_type_cmd_vtysh, 
+       "default-information originate metric <0-16777214> metric-type (1|2)", 
+       "Control distribution of default information\n"
+       "Distribute a default route\n"
+       "OSPF default metric\n"
+       "OSPF metric\n"
+       "OSPF metric type for default routes\n"
+       "Set OSPF External Type 1 metrics\n"
+       "Set OSPF External Type 2 metrics\n")
 
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_ipv4_out_cmd_vtysh, 
-       "clear ip bgp peer-group WORD ipv4 (unicast|multicast) out", 
+DEFSH (VTYSH_BGPD, clear_ip_bgp_all_ipv4_out_cmd_vtysh, 
+       "clear ip bgp * ipv4 (unicast|multicast) out", 
        "Reset functions\n"
        "IP information\n"
        "BGP information\n"
-       "Clear all members of peer-group\n"
-       "BGP peer-group name\n"
+       "Clear all peers\n"
        "Address family\n"
        "Address Family modifier\n"
        "Address Family modifier\n"
        "Soft reconfig outbound update\n")
 
+DEFSH (VTYSH_RIPD, no_rip_version_cmd_vtysh, 
+       "no version", 
+       "Negate a command or set its defaults\n"
+       "Set routing protocol version\n")
+
+DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_area_topology_cmd_vtysh, 
+       "show ipv6 ospf6 area A.B.C.D topology", 
+       "Show running system information\n"
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Area information\n"
+       "Area ID (as an IPv4 notation)\n"
+       "Shortest Path First tree information\n"
+       "Displays SPF topology table\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_match_metric_val_cmd_vtysh, 
+       "no match metric <0-4294967295>", 
+       "Negate a command or set its defaults\n"
+       "Match values from routing table\n"
+       "Match metric of route\n"
+       "Metric value\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_flap_prefix_cmd_vtysh, 
+       "show ip bgp flap-statistics A.B.C.D/M", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display flap statistics of routes\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n")
+
+DEFSH (VTYSH_BGPD, bgp_always_compare_med_cmd_vtysh, 
+       "bgp always-compare-med", 
+       "BGP specific commands\n"
+       "Allow comparing MED from different neighbors\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_instance_all_soft_out_cmd_vtysh, 
+       "clear bgp view WORD * soft out", 
+       "Reset functions\n"
+       "BGP information\n"
+       "BGP view\n"
+       "view name\n"
+       "Clear all peers\n"
+       "Soft reconfig\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_OSPFD, no_area_vlink_param2_cmd_vtysh, 
+       "no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
+       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) "
+       "(hello-interval|retransmit-interval|transmit-delay|dead-interval)", 
+       "Negate a command or set its defaults\n"
+       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
+       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n"
+       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_neighbor_advertised_route_cmd_vtysh, 
+       "show ip bgp ipv4 (unicast|multicast) neighbors (A.B.C.D|X:X::X:X) advertised-routes", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n"
+       "Display the routes advertised to a BGP neighbor\n")
+
+DEFSH (VTYSH_RIPD, rip_offset_list_cmd_vtysh, 
+       "offset-list WORD (in|out) <0-16>", 
+       "Modify RIP metric\n"
+       "Access-list name\n"
+       "For incoming updates\n"
+       "For outgoing updates\n"
+       "Metric value\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_as_out_cmd_vtysh, 
+       "clear bgp ipv6 <1-65535> out", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear peers with the AS number\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_BGPD, dump_bgp_routes_cmd_vtysh, 
+       "dump bgp routes-mrt PATH", 
+       "Dump packet\n"
+       "BGP packet dump\n"
+       "Dump whole BGP routing table\n"
+       "Output filename\n")
+
+DEFSH (VTYSH_OSPFD, no_area_vlink_authtype_md5_cmd_vtysh, 
+       "no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
+       "(authentication|) "
+       "(message-digest-key|)", 
+       "Negate a command or set its defaults\n"
+       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
+       "Enable authentication on this virtual link\n" "dummy string \n"
+       "Message digest authentication password (key)\n" "dummy string \n" "Key ID\n" "Use MD5 algorithm\n" "The OSPF password (key)")
+
+DEFSH (VTYSH_OSPF6D, no_ipv6_ospf6_advertise_prefix_list_cmd_vtysh, 
+       "no ipv6 ospf6 advertise prefix-list", 
+       "Negate a command or set its defaults\n"
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Advertising options\n"
+       "Filter prefix using prefix-list\n"
+       )
+
+DEFSH (VTYSH_OSPF6D, show_ipv6_route_ospf6_external_cmd_vtysh, 
+       "show ipv6 ospf6 route redistribute", 
+       "Show running system information\n"
+       "IPv6 Information\n"
+       "Routing Table\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "redistributing External information\n"
+       )
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_all_neighbor_advertised_routes_cmd_vtysh, 
+       "show ip bgp vpnv4 all neighbors A.B.C.D advertised-routes", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display VPNv4 NLRI specific information\n"
+       "Display information about all VPNv4 NLRIs\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Display the routes advertised to a BGP neighbor\n")
+
+DEFSH (VTYSH_RIPD, rip_passive_interface_cmd_vtysh, 
+       "passive-interface IFNAME", 
+       "Suppress routing updates on an interface\n"
+       "Interface name\n")
+
+DEFSH (VTYSH_OSPFD, no_debug_ospf_lsa_cmd_vtysh, 
+       "no debug ospf lsa", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
+       "OSPF information\n"
+       "OSPF Link State Advertisement\n")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_network_cmd_vtysh, 
+       "no network IF_OR_ADDR", 
+       "Negate a command or set its defaults\n"
+       "RIPng enable on specified interface or network.\n"
+       "Interface or address")
+
+DEFSH (VTYSH_OSPFD, ospf_redistribute_source_metric_type_cmd_vtysh, 
+       "redistribute (kernel|connected|static|rip|bgp) metric <0-16777214> metric-type (1|2)", 
+       "Redistribute information from another routing protocol\n"
+       "Kernel routes\n"
+       "Connected\n"
+       "Static routes\n"
+       "Routing Information Protocol (RIP)\n"
+       "Border Gateway Protocol (BGP)\n"
+       "Metric for redistributed routes\n"
+       "OSPF default metric\n"
+       "OSPF exterior metric type for redistributed routes\n"
+       "Set OSPF External Type 1 metrics\n"
+       "Set OSPF External Type 2 metrics\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_external_soft_out_cmd_vtysh, 
+       "clear bgp external soft out", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear all external peers\n"
+       "Soft reconfig\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_BGPD, no_ip_extcommunity_list_name_standard_cmd_vtysh, 
+       "no ip extcommunity-list standard WORD (deny|permit) .AA:NN", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Add a extended community list entry\n"
+       "Specify standard extcommunity-list\n"
+       "Extended Community list name\n"
+       "Specify community to reject\n"
+       "Specify community to accept\n"
+       "Extended community attribute in 'rt aa:nn_or_IPaddr:nn' OR 'soo aa:nn_or_IPaddr:nn' format\n")
+
+DEFSH (VTYSH_OSPFD, no_ospf_default_metric_cmd_vtysh, 
+       "no default-metric", 
+       "Negate a command or set its defaults\n"
+       "Set metric of redistributed routes\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_paths_cmd_vtysh, 
+       "show ip bgp paths", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Path information\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_neighbor_advertised_route_cmd_vtysh, 
+       "show ip bgp neighbors (A.B.C.D|X:X::X:X) advertised-routes", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n"
+       "Display the routes advertised to a BGP neighbor\n")
+
+DEFSH (VTYSH_OSPFD, ospf_redistribute_source_type_cmd_vtysh, 
+       "redistribute (kernel|connected|static|rip|bgp) metric-type (1|2)", 
+       "Redistribute information from another routing protocol\n"
+       "Kernel routes\n"
+       "Connected\n"
+       "Static routes\n"
+       "Routing Information Protocol (RIP)\n"
+       "Border Gateway Protocol (BGP)\n"
+       "OSPF exterior metric type for redistributed routes\n"
+       "Set OSPF External Type 1 metrics\n"
+       "Set OSPF External Type 2 metrics\n")
+
+DEFSH (VTYSH_BGPD, match_ipv6_next_hop_cmd_vtysh, 
+       "match ipv6 next-hop X:X::X:X", 
+       "Match values from routing table\n"
+       "IPv6 information\n"
+       "Match IPv6 next-hop address of route\n"
+       "IPv6 address of next hop\n")
+
+DEFSH (VTYSH_OSPFD, ip_ospf_transmit_delay_cmd_vtysh, 
+       "ip ospf transmit-delay <1-65535>", 
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Link state transmit delay\n"
+       "Seconds\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_as_vpnv4_soft_in_cmd_vtysh, 
+       "clear ip bgp <1-65535> vpnv4 unicast soft in", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear peers with the AS number\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Soft reconfig\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_RIPD, rip_redistribute_type_routemap_cmd_vtysh, 
+       "redistribute (kernel|connected|static|ospf|bgp) route-map WORD", 
+       "Redistribute information from another routing protocol\n"
+       "Kernel routes\n"
+       "Connected\n"
+       "Static routes\n"
+       "Open Shortest Path First (OSPF)\n"
+       "Border Gateway Protocol (BGP)\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_bgp_filter_list_cmd_vtysh, 
+       "show ipv6 bgp filter-list WORD", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "BGP information\n"
+       "Display routes conforming to the filter-list\n"
+       "Regular expression access list name\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_instance_ipv6_summary_cmd_vtysh, 
+       "show bgp view WORD ipv6 summary", 
+       "Show running system information\n"
+       "BGP information\n"
+       "BGP view\n"
+       "View name\n"
+       "Address family\n"
+       "Summary of BGP neighbor status\n")
+
+DEFSH (VTYSH_OSPFD, no_area_export_list_cmd_vtysh, 
+       "no area (A.B.C.D|<0-4294967295>) export-list NAME", 
+       "Negate a command or set its defaults\n"
+       "OSPF area parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "Unset the filter for networks announced to other areas\n"
+       "Name of the access-list\n")
+
+DEFSH (VTYSH_BGPD, bgp_distance_source_cmd_vtysh, 
+       "distance <1-255> A.B.C.D/M", 
+       "Define an administrative distance\n"
+       "Administrative distance\n"
+       "IP source prefix\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_neighbor_received_prefix_filter_cmd_vtysh, 
+       "show ip bgp neighbors (A.B.C.D|X:X::X:X) received prefix-filter", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n"
+       "Display information received from a BGP neighbor\n"
+       "Display the prefixlist filter\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_neighbor_routes_cmd_vtysh, 
+       "show ip bgp neighbors (A.B.C.D|X:X::X:X) routes", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n"
+       "Display routes learned from neighbor\n")
+
+DEFSH (VTYSH_BGPD, no_set_origin_cmd_vtysh, 
+       "no set origin", 
+       "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "BGP origin code\n")
+
+DEFSH (VTYSH_BGPD, no_set_community_delete_val_cmd_vtysh, 
+       "no set comm-list (<1-99>|<100-199>|WORD) delete", 
+       "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "set BGP community list (for deletion)\n"
+       "Community-list number (standard)\n"
+       "Communitly-list number (expanded)\n"
+       "Community-list name\n"
+       "Delete matching communities\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_bestpath_aspath_ignore_cmd_vtysh, 
+       "no bgp bestpath as-path ignore", 
+       "Negate a command or set its defaults\n"
+       "BGP specific commands\n"
+       "Change the default bestpath selection\n"
+       "AS-path attribute\n"
+       "Ignore as-path length in selecting a route\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_mbgp_community_exact_cmd_vtysh, 
+       "show ipv6 mbgp community (AA:NN|local-AS|no-advertise|no-export) exact-match", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "MBGP information\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "Exact match of the communities")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_scan_cmd_vtysh, 
+       "show ip bgp scan", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "BGP scan status\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_cluster_id_arg_cmd_vtysh, 
+       "no bgp cluster-id A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "BGP information\n"
+       "Configure Route-Reflector Cluster-id\n"
+       "Route-Reflector Cluster-id in IP address format\n")
+
+DEFSH (VTYSH_OSPFD, no_area_shortcut_cmd_vtysh, 
+       "no area (A.B.C.D|<0-4294967295>) shortcut (enable|disable)", 
+       "Negate a command or set its defaults\n"
+       "OSPF area parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "Deconfigure the area's shortcutting mode\n"
+       "Deconfigure enabled shortcutting through the area\n"
+       "Deconfigure disabled shortcutting through the area\n")
+
+DEFSH (VTYSH_OSPF6D, interface_area_passive_cmd_vtysh, 
+       "interface IFNAME area A.B.C.D passive", 
+       "Enable routing on an IPv6 interface\n"
+       "Interface name(e.g. ep0)\n"
+       "Set the OSPF6 area ID\n"
+       "OSPF6 area ID in IPv4 address notation\n"
+       "Suppress routing updates on an interface\n"
+      )
+
+DEFSH (VTYSH_OSPFD, show_ip_ospf_database_type_id_cmd_vtysh, 
+       "show ip ospf database (" "asbr-summary|external|network|router|summary" "" "" ") A.B.C.D", 
+       "Show running system information\n"
+       "IP information\n"
+       "OSPF information\n"
+       "Database summary\n"
+       "ASBR summary link states\n" "External link states\n" "Network link states\n" "Router link states\n" "Network summary link states\n" "" "" "" ""
+       "Link State ID (as an IP address)\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_confederation_peers_cmd_vtysh, 
+       "no bgp confederation peers .<1-65535>", 
+       "Negate a command or set its defaults\n"
+       "BGP specific commands\n"
+       "AS confederation parameters\n"
+       "Peer ASs in BGP confederation\n"
+       "AS number\n")
+
+DEFSH (VTYSH_BGPD, no_ip_extcommunity_list_name_expanded_cmd_vtysh, 
+       "no ip extcommunity-list expanded WORD (deny|permit) .LINE", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Add a extended community list entry\n"
+       "Specify expanded extcommunity-list\n"
+       "Community list name\n"
+       "Specify community to reject\n"
+       "Specify community to accept\n"
+       "An ordered list as a regular-expression\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_community_list_exact_cmd_vtysh, 
+       "show bgp community-list WORD exact-match", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Display routes matching the community-list\n"
+       "community-list name\n"
+       "Exact match of the communities\n")
+
+DEFSH (VTYSH_BGPD, ipv6_bgp_neighbor_received_routes_cmd_vtysh, 
+       "show ipv6 bgp neighbors (A.B.C.D|X:X::X:X) received-routes", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "BGP information\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n"
+       "Display the received routes from neighbor\n")
+
+DEFSH (VTYSH_OSPFD, no_ospf_hello_interval_cmd_vtysh, 
+       "no ospf hello-interval", 
+       "Negate a command or set its defaults\n"
+       "OSPF interface commands\n"
+       "Time between HELLO packets\n")
+
+DEFSH (VTYSH_BGPD, no_set_weight_cmd_vtysh, 
+       "no set weight", 
+       "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "BGP weight for routing table\n")
+
+DEFSH (VTYSH_OSPFD, show_ip_ospf_neighbor_int_detail_cmd_vtysh, 
+       "show ip ospf neighbor A.B.C.D detail", 
+       "Show running system information\n"
+       "IP information\n"
+       "OSPF information\n"
+       "Neighbor list\n"
+       "Interface address\n"
+       "detail of all neighbors")
+
+DEFSH (VTYSH_BGPD, show_bgp_ipv6_community_list_cmd_vtysh, 
+       "show bgp ipv6 community-list WORD", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Display routes matching the community-list\n"
+       "community-list name\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_peer_group_in_prefix_filter_cmd_vtysh, 
+       "clear bgp peer-group WORD in prefix-filter", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear all members of peer-group\n"
+       "BGP peer-group name\n"
+       "Soft reconfig inbound update\n"
+       "Push out prefix-list ORF and do inbound soft reconfig\n")
+
+DEFSH (VTYSH_BGPD, set_ecommunity_rt_cmd_vtysh, 
+       "set extcommunity rt .ASN:nn_or_IP-address:nn", 
+       "Set values in destination routing protocol\n"
+       "BGP extended community attribute\n"
+       "Route Target extened communityt\n"
+       "VPN extended community\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_description_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "description", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Neighbor specific description\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_seq_le_cmd_vtysh, 
+       "no ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M le <0-32>", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "sequence number of an entry\n"
+       "Sequence number\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Maximum prefix length to be matched\n"
+       "Maximum prefix length\n")
+
+DEFSH (VTYSH_OSPFD, area_vlink_md5_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
+       "(message-digest-key|) <1-255> md5 KEY", 
+       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
+       "Message digest authentication password (key)\n" "dummy string \n" "Key ID\n" "Use MD5 algorithm\n" "The OSPF password (key)")
+
+DEFSH (VTYSH_ZEBRA, no_ipv6_forwarding_cmd_vtysh, 
+       "no ipv6 forwarding", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Doesn't forward IPv6 protocol packet")
+
 DEFSH (VTYSH_BGPD, show_bgp_community_cmd_vtysh, 
        "show bgp community (AA:NN|local-AS|no-advertise|no-export)", 
        "Show running system information\n"
@@ -7890,133 +6812,402 @@
        "Do not advertise to any peer (well-known community)\n"
        "Do not export to next AS (well-known community)\n")
 
-DEFSH (VTYSH_RIPD, no_rip_route_cmd_vtysh, 
-       "no route A.B.C.D/M", 
-       "Negate a command or set its defaults\n"
-       "RIP static route configuration\n"
-       "IP prefix <network>/<length>\n")
+DEFSH (VTYSH_OSPFD, ospf_router_id_cmd_vtysh, 
+       "ospf router-id A.B.C.D", 
+       "OSPF specific commands\n"
+       "router-id for the OSPF process\n"
+       "OSPF router-id in IP address format\n")
 
-DEFSH (VTYSH_RIPD|VTYSH_RIPNGD|VTYSH_OSPFD|VTYSH_OSPF6D|VTYSH_BGPD, no_set_metric_val_cmd_vtysh, 
-       "no set metric <0-4294967295>", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "Metric value for destination routing protocol\n"
-       "Metric value\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_peer_out_cmd_vtysh, 
-       "clear bgp (A.B.C.D|X:X::X:X) out", 
-       "Reset functions\n"
+DEFSH (VTYSH_BGPD, show_bgp_community_exact_cmd_vtysh, 
+       "show bgp community (AA:NN|local-AS|no-advertise|no-export) exact-match", 
+       "Show running system information\n"
        "BGP information\n"
-       "BGP neighbor address to clear\n"
-       "BGP IPv6 neighbor to clear\n"
-       "Soft reconfig outbound update\n")
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "Exact match of the communities")
 
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ipv6_prefix_list_le_ge_cmd_vtysh, 
-       "no ipv6 prefix-list WORD (deny|permit) X:X::X:X/M le <0-128> ge <0-128>", 
+DEFSH (VTYSH_BGPD, no_neighbor_capability_orf_prefix_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "capability orf prefix-list (both|send|receive)", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Advertise capability to the peer\n"
+       "Advertise ORF capability to the peer\n"
+       "Advertise prefixlist ORF capability to this neighbor\n"
+       "Capability to SEND and RECEIVE the ORF to/from this neighbor\n"
+       "Capability to RECEIVE the ORF from this neighbor\n"
+       "Capability to SEND the ORF to this neighbor\n")
+
+DEFSH (VTYSH_OSPFD, no_area_vlink_cmd_vtysh, 
+       "no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n")
+
+DEFSH (VTYSH_OSPFD, ip_ospf_hello_interval_addr_cmd_vtysh, 
+       "ip ospf hello-interval <1-65535> A.B.C.D", 
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Time between HELLO packets\n"
+       "Seconds\n"
+       "Address of interface")
+
+DEFSH (VTYSH_BGPD, no_aggregate_address_mask_summary_only_cmd_vtysh, 
+       "no aggregate-address A.B.C.D A.B.C.D summary-only", 
+       "Negate a command or set its defaults\n"
+       "Configure BGP aggregate entries\n"
+       "Aggregate address\n"
+       "Aggregate mask\n"
+       "Filter more specific routes from updates\n")
+
+DEFSH (VTYSH_OSPFD, ospf_distance_ospf_external_intra_cmd_vtysh, 
+       "distance ospf external <1-255> intra-area <1-255>", 
+       "Define an administrative distance\n"
+       "OSPF Administrative distance\n"
+       "External routes\n"
+       "Distance for external routes\n"
+       "Intra-area routes\n"
+       "Distance for intra-area routes\n")
+
+DEFSH (VTYSH_OSPFD, area_vlink_param3_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
+       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535> "
+       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535> "
+       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535>", 
+       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
+       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n"
+       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n"
+       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n")
+
+DEFSH (VTYSH_BGPD, neighbor_soft_reconfiguration_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "soft-reconfiguration inbound", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Per neighbor soft reconfiguration\n"
+       "Allow inbound soft reconfiguration for this neighbor\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_OSPF6D|VTYSH_BGPD, no_ipv6_access_list_exact_cmd_vtysh, 
+       "no ipv6 access-list WORD (deny|permit) X:X::X:X/M exact-match", 
        "Negate a command or set its defaults\n"
        "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
+       "Add an access list entry\n"
+       "IPv6 zebra access-list\n"
        "Specify packets to reject\n"
        "Specify packets to forward\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
-       "Maximum prefix length to be matched\n"
-       "Maximum prefix length\n"
-       "Minimum prefix length to be matched\n"
-       "Minimum prefix length\n")
+       "Prefix to match. e.g. 3ffe:506::/32\n"
+       "Exact match of the prefixes\n")
 
-DEFSH (VTYSH_BGPD, neighbor_activate_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "activate", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Enable the Address Family for this Neighbor\n")
+DEFSH (VTYSH_BGPD, bgp_redistribute_ipv4_metric_rmap_cmd_vtysh, 
+       "redistribute (connected|kernel|ospf|rip|static) metric <0-4294967295> route-map WORD", 
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Kernel routes\n"
+       "Open Shurtest Path First (OSPF)\n"
+       "Routing Information Protocol (RIP)\n"
+       "Static routes\n"
+       "Metric for redistributed routes\n"
+       "Default metric\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
 
-DEFSH (VTYSH_OSPFD, ospf_compatible_rfc1583_cmd_vtysh, 
-       "compatible rfc1583", 
-       "OSPF compatibility list\n"
-       "compatible with RFC 1583\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_network_mask_route_map_cmd_vtysh, 
-       "no network A.B.C.D mask A.B.C.D route-map WORD", 
-       "Negate a command or set its defaults\n"
-       "Specify a network to announce via BGP\n"
-       "Network number\n"
-       "Network mask\n"
-       "Network mask\n"
-       "Route-map to modify the attributes\n"
-       "Name of the route map\n")
-
-DEFSH (VTYSH_BGPD, neighbor_description_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "description .LINE", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Neighbor specific description\n"
-       "Up to 80 characters describing this neighbor\n")
-
-DEFSH (VTYSH_RIPD, ip_rip_send_version_2_cmd_vtysh, 
-       "ip rip send version 2 1", 
+DEFSH (VTYSH_BGPD, clear_ip_bgp_external_in_prefix_filter_cmd_vtysh, 
+       "clear ip bgp external in prefix-filter", 
+       "Reset functions\n"
        "IP information\n"
-       "Routing Information Protocol\n"
-       "Advertisement transmission\n"
-       "Version control\n"
-       "RIP version 2\n"
-       "RIP version 1\n")
+       "BGP information\n"
+       "Clear all external peers\n"
+       "Soft reconfig inbound update\n"
+       "Push out prefix-list ORF and do inbound soft reconfig\n")
 
-DEFSH (VTYSH_BGPD, no_neighbor_enforce_multihop_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "enforce-multihop", 
+DEFSH (VTYSH_BGPD, no_bgp_redistribute_ipv6_cmd_vtysh, 
+       "no redistribute (connected|kernel|ospf6|ripng|static)", 
        "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Enforce EBGP neighbors perform multihop\n")
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Kernel routes\n"
+       "Open Shurtest Path First (OSPFv3)\n"
+       "Routing Information Protocol (RIPng)\n"
+       "Static routes\n")
 
-DEFSH (VTYSH_BGPD, show_bgp_ipv6_route_map_cmd_vtysh, 
-       "show bgp ipv6 route-map WORD", 
+DEFSH (VTYSH_ZEBRA, show_ipv6_route_cmd_vtysh, 
+       "show ipv6 route", 
+       "Show running system information\n"
+       "IP information\n"
+       "IPv6 routing table\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_fast_external_failover_cmd_vtysh, 
+       "no bgp fast-external-failover", 
+       "Negate a command or set its defaults\n"
+       "BGP information\n"
+       "Immediately reset session if a link to a directly connected external peer goes down\n")
+
+DEFSH (VTYSH_BGPD, no_aggregate_address_mask_as_set_summary_cmd_vtysh, 
+       "no aggregate-address A.B.C.D A.B.C.D as-set summary-only", 
+       "Negate a command or set its defaults\n"
+       "Configure BGP aggregate entries\n"
+       "Aggregate address\n"
+       "Aggregate mask\n"
+       "Generate AS set path information\n"
+       "Filter more specific routes from updates\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_external_soft_out_cmd_vtysh, 
+       "clear ip bgp external soft out", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all external peers\n"
+       "Soft reconfig\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_ipv6_summary_cmd_vtysh, 
+       "show bgp ipv6 summary", 
        "Show running system information\n"
        "BGP information\n"
        "Address family\n"
-       "Display routes matching the route-map\n"
-       "A route-map to match on\n")
+       "Summary of BGP neighbor status\n")
 
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, clear_ip_prefix_list_cmd_vtysh, 
-       "clear ip prefix-list", 
+DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_regexp_cmd_vtysh, 
+       "show ip bgp ipv4 (unicast|multicast) regexp .LINE", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Display routes matching the AS path regular expression\n"
+       "A regular-expression to match the BGP AS paths\n")
+
+DEFSH (VTYSH_OSPFD, no_area_vlink_authtype_cmd_vtysh, 
+       "no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
+       "(authentication|)", 
+       "Negate a command or set its defaults\n"
+       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
+       "Enable authentication on this virtual link\n" "dummy string \n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_all_vpnv4_out_cmd_vtysh, 
+       "clear ip bgp * vpnv4 unicast out", 
        "Reset functions\n"
        "IP information\n"
-       "Build a prefix list\n")
+       "BGP information\n"
+       "Clear all peers\n"
+       "Address family\n"
+       "Address Family Modifier\n"
+       "Soft reconfig outbound update\n")
 
-DEFSH (VTYSH_OSPFD, ip_ospf_authentication_key_addr_cmd_vtysh, 
-       "ip ospf authentication-key AUTH_KEY A.B.C.D", 
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Authentication password (key)\n"
-       "The OSPF password (key)\n"
-       "Address of interface")
-
-DEFSH (VTYSH_OSPFD, ip_ospf_dead_interval_cmd_vtysh, 
-       "ip ospf dead-interval <1-65535>", 
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Interval after which a neighbor is declared dead\n"
-       "Seconds\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_port_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X) " "port", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nIPv6 address\n"
-       "Neighbor's BGP port\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_route_reflector_client_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "route-reflector-client", 
+DEFSH (VTYSH_BGPD, no_neighbor_attr_unchanged7_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged next-hop med as-path", 
        "Negate a command or set its defaults\n"
        "Specify neighbor router\n"
        "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Configure a neighbor as Route Reflector client\n")
+       "BGP attribute is propagated unchanged to this neighbor\n"
+       "Nexthop attribute\n"
+       "Med attribute\n"
+       "As-path attribute\n")
 
-DEFSH (VTYSH_BGPD, no_set_community_delete_cmd_vtysh, 
-       "no set comm-list", 
+DEFSH (VTYSH_BGPD, no_ipv6_bgp_network_route_map_cmd_vtysh, 
+       "no network X:X::X:X/M route-map WORD", 
+       "Negate a command or set its defaults\n"
+       "Specify a network to announce via BGP\n"
+       "IPv6 prefix <network>/<length>\n"
+       "Route-map to modify the attributes\n"
+       "Name of the route map\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_ipv4_soft_cmd_vtysh, 
+       "clear ip bgp A.B.C.D ipv4 (unicast|multicast) soft", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "BGP neighbor address to clear\n"
+       "Address family\n"
+       "Address Family Modifier\n"
+       "Address Family Modifier\n"
+       "Soft reconfig\n")
+
+DEFSH (VTYSH_BGPD, neighbor_ebgp_multihop_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "ebgp-multihop", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Allow EBGP neighbors not on directly connected networks\n")
+
+DEFSH (VTYSH_OSPFD, no_ip_ospf_authentication_key_cmd_vtysh, 
+       "no ip ospf authentication-key", 
+       "Negate a command or set its defaults\n"
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Authentication password (key)\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_rd_neighbor_routes_cmd_vtysh, 
+       "show ip bgp vpnv4 rd ASN:nn_or_IP-address:nn neighbors A.B.C.D routes", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display VPNv4 NLRI specific information\n"
+       "Display information for a route distinguisher\n"
+       "VPN Route Distinguisher\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Display routes learned from neighbor\n")
+
+DEFSH (VTYSH_OSPFD, no_debug_ospf_ism_sub_cmd_vtysh, 
+       "no debug ospf ism (status|events|timers)", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions\n"
+       "OSPF information\n"
+       "OSPF Interface State Machine\n"
+       "ISM Status Information\n"
+       "ISM Event Information\n"
+       "ISM Timer Information\n")
+
+DEFSH (VTYSH_OSPFD, refresh_timer_cmd_vtysh, 
+       "refresh timer <10-1800>", 
+       "Adjust refresh parameters\n"
+       "Set refresh timer\n"
+       "Timer value in seconds\n")
+
+DEFSH (VTYSH_OSPFD, ospf_distance_ospf_intra_inter_cmd_vtysh, 
+       "distance ospf intra-area <1-255> inter-area <1-255>", 
+       "Define an administrative distance\n"
+       "OSPF Administrative distance\n"
+       "Intra-area routes\n"
+       "Distance for intra-area routes\n"
+       "Inter-area routes\n"
+       "Distance for inter-area routes\n")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_ospf6_metric_val_cmd_vtysh, 
+       "no redistribute ospf6 metric <0-16>", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "IPv6 Open Shortest Path First (OSPFv3)\n"
+       "Metric\n"
+       "Metric value\n")
+
+DEFSH (VTYSH_BGPD, no_set_ipv6_nexthop_local_val_cmd_vtysh, 
+       "no set ipv6 next-hop local X:X::X:X", 
        "Negate a command or set its defaults\n"
        "Set values in destination routing protocol\n"
-       "set BGP community list (for deletion)\n")
+       "IPv6 information\n"
+       "IPv6 next-hop address\n"
+       "IPv6 local address\n"
+       "IPv6 address of next hop\n")
+
+DEFSH (VTYSH_BGPD, ip_community_list_name_standard2_cmd_vtysh, 
+       "ip community-list standard WORD (deny|permit)", 
+       "IP information\n"
+       "Add a community list entry\n"
+       "Add a standard community-list entry\n"
+       "Community list name\n"
+       "Specify community to reject\n"
+       "Specify community to accept\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_capability_route_refresh_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "capability route-refresh", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Advertise capability to the peer\n"
+       "Advertise route-refresh capability to this neighbor\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_cmd_vtysh, 
+       "no access-list WORD (deny|permit) A.B.C.D/M", 
+       "Negate a command or set its defaults\n"
+       "Add an access list entry\n"
+       "IP zebra access-list name\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Prefix to match. e.g. 10.0.0.0/8\n")
+
+DEFSH (VTYSH_ZEBRA, show_zebra_client_cmd_vtysh, 
+       "show zebra client", 
+       "Show running system information\n"
+       "Zebra information"
+       "Client information")
+
+DEFSH (VTYSH_BGPD, neighbor_allowas_in_arg_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "allowas-in <1-10>", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Accept as-path with my AS present in it\n"
+       "Number of occurances of AS number\n")
+
+DEFSH (VTYSH_BGPD, bgp_cluster_id_cmd_vtysh, 
+       "bgp cluster-id A.B.C.D", 
+       "BGP information\n"
+       "Configure Route-Reflector Cluster-id\n"
+       "Route-Reflector Cluster-id in IP address format\n")
+
+DEFSH (VTYSH_BGPD, no_router_bgp_view_cmd_vtysh, 
+       "no router bgp <1-65535> view WORD", 
+       "Negate a command or set its defaults\n"
+       "Enable a routing process\n"
+       "BGP information\n"
+       "AS number\n"
+       "BGP view\n"
+       "view name\n")
+
+DEFSH (VTYSH_OSPFD, no_debug_ospf_packet_send_recv_cmd_vtysh, 
+       "no debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv|detail)", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions\n"
+       "OSPF information\n"
+       "OSPF packets\n"
+       "OSPF Hello\n"
+       "OSPF Database Description\n"
+       "OSPF Link State Request\n"
+       "OSPF Link State Update\n"
+       "OSPF Link State Acknowledgment\n"
+       "OSPF all packets\n"
+       "Packet sent\n"
+       "Packet received\n"
+       "Detail Information\n")
+
+DEFSH (VTYSH_BGPD, no_set_community_cmd_vtysh, 
+       "no set community", 
+       "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "BGP community attribute\n")
+
+DEFSH (VTYSH_OSPFD|VTYSH_OSPF6D, ospf6_routemap_no_set_metric_type_cmd_vtysh, 
+       "no set metric-type (type-1|type-2)", 
+       "Negate a command or set its defaults\n"
+       "Set value\n"
+       "Type of metric\n"
+       "OSPF6 external type 1 metric\n"
+       "OSPF6 external type 2 metric\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ip_prefix_list_name_seq_cmd_vtysh, 
+       "show ip prefix-list WORD seq <1-4294967295>", 
+       "Show running system information\n"
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "sequence number of an entry\n"
+       "Sequence number\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_as_ipv4_soft_in_cmd_vtysh, 
+       "clear ip bgp <1-65535> ipv4 (unicast|multicast) soft in", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear peers with the AS number\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Soft reconfig\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_OSPFD, ospf_rfc1583_flag_cmd_vtysh, 
+       "ospf rfc1583compatibility", 
+       "OSPF specific commands\n"
+       "Enable the RFC1583Compatibility flag\n")
+
+DEFSH (VTYSH_ZEBRA, no_debug_zebra_packet_cmd_vtysh, 
+       "no debug zebra packet", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
+       "Zebra configuration\n"
+       "Debug option set for zebra packet\n")
 
 DEFSH (VTYSH_BGPD, show_ipv6_bgp_community4_exact_cmd_vtysh, 
        "show ipv6 bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
@@ -8042,52 +7233,182 @@
        "Do not export to next AS (well-known community)\n"
        "Exact match of the communities")
 
-DEFSH (VTYSH_BGPD, no_bgp_fast_external_failover_cmd_vtysh, 
-       "no bgp fast-external-failover", 
-       "Negate a command or set its defaults\n"
-       "BGP information\n"
-       "Immediately reset session if a link to a directly connected external peer goes down\n")
-
-DEFSH (VTYSH_RIPD, no_ip_rip_authentication_mode_cmd_vtysh, 
-       "no ip rip authentication mode", 
-       "Negate a command or set its defaults\n"
+DEFSH (VTYSH_RIPD, ip_rip_authentication_mode_cmd_vtysh, 
+       "ip rip authentication mode (md5|text)", 
        "IP information\n"
        "Routing Information Protocol\n"
        "Authentication control\n"
-       "Authentication mode\n")
+       "Authentication mode\n"
+       "Keyed message digest\n"
+       "Clear text authentication\n")
 
-DEFSH (VTYSH_OSPFD, area_vlink_authtype_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
-       "(authentication|)", 
-       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
-       "Enable authentication on this virtual link\n" "dummy string \n")
-
-DEFSH (VTYSH_OSPFD, area_vlink_param3_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
-       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535> "
-       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535> "
-       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535>", 
-       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
-       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n"
-       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n"
-       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_prefix_cmd_vtysh, 
-       "show bgp X:X::X:X/M", 
+DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_community_exact_cmd_vtysh, 
+       "show ip bgp ipv4 (unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export) exact-match", 
        "Show running system information\n"
+       "IP information\n"
        "BGP information\n"
-       "IPv6 prefix <network>/<length>\n")
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "Exact match of the communities")
 
-DEFSH (VTYSH_BGPD, neighbor_route_server_client_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "route-server-client", 
+DEFSH (VTYSH_BGPD, clear_ip_bgp_as_ipv4_soft_cmd_vtysh, 
+       "clear ip bgp <1-65535> ipv4 (unicast|multicast) soft", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear peers with the AS number\n"
+       "Address family\n"
+       "Address Family Modifier\n"
+       "Address Family Modifier\n"
+       "Soft reconfig\n")
+
+DEFSH (VTYSH_OSPFD, ospf_abr_type_cmd_vtysh, 
+       "ospf abr-type (cisco|ibm|shortcut|standard)", 
+       "OSPF specific commands\n"
+       "Set OSPF ABR type\n"
+       "Alternative ABR,  cisco implementation\n"
+       "Alternative ABR,  IBM implementation\n"
+       "Shortcut ABR\n"
+       "Standard behavior (RFC2328)\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_maximum_prefix_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "maximum-prefix", 
+       "Negate a command or set its defaults\n"
        "Specify neighbor router\n"
        "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Configure a neighbor as Route Server client\n")
+       "Maximum number of prefix accept from this peer\n")
 
-DEFSH (VTYSH_BGPD, show_bgp_community3_cmd_vtysh, 
-       "show bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
-       "Show running system information\n"
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_soft_cmd_vtysh, 
+       "clear bgp ipv6 (A.B.C.D|X:X::X:X) soft", 
+       "Reset functions\n"
        "BGP information\n"
+       "Address family\n"
+       "BGP neighbor address to clear\n"
+       "BGP IPv6 neighbor to clear\n"
+       "Soft reconfig\n")
+
+DEFSH (VTYSH_OSPFD, ospf_default_information_originate_always_metric_type_cmd_vtysh, 
+       "default-information originate always metric <0-16777214> metric-type (1|2)", 
+       "Control distribution of default information\n"
+       "Distribute a default route\n"
+       "Always advertise default route\n"
+       "OSPF default metric\n"
+       "OSPF metric\n"
+       "OSPF metric type for default routes\n"
+       "Set OSPF External Type 1 metrics\n"
+       "Set OSPF External Type 2 metrics\n")
+
+DEFSH (VTYSH_BGPD, neighbor_strict_capability_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X) " "strict-capability-match", 
+       "Specify neighbor router\n"
+       "Neighbor address\nIPv6 address\n"
+       "Strict capability negotiation match\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_community3_exact_cmd_vtysh, 
+       "show ip bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "Exact match of the communities")
+
+DEFSH (VTYSH_BGPD, clear_bgp_instance_all_soft_cmd_vtysh, 
+       "clear bgp view WORD * soft", 
+       "Reset functions\n"
+       "BGP information\n"
+       "BGP view\n"
+       "view name\n"
+       "Clear all peers\n"
+       "Soft reconfig\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_peer_in_cmd_vtysh, 
+       "clear bgp (A.B.C.D|X:X::X:X) in", 
+       "Reset functions\n"
+       "BGP information\n"
+       "BGP neighbor address to clear\n"
+       "BGP IPv6 neighbor to clear\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_version_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X) " "version", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nIPv6 address\n"
+       "Neighbor's BGP version\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, show_ipv6_prefix_list_prefix_cmd_vtysh, 
+       "show ipv6 prefix-list WORD X:X::X:X/M", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n")
+
+DEFSH (VTYSH_BGPD, ipv6_mbgp_neighbor_advertised_route_cmd_vtysh, 
+       "show ipv6 mbgp neighbors (A.B.C.D|X:X::X:X) advertised-routes", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "MBGP information\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n"
+       "Display the routes advertised to a BGP neighbor\n")
+
+DEFSH (VTYSH_ZEBRA, show_ip_route_addr_cmd_vtysh, 
+       "show ip route A.B.C.D", 
+       "Show running system information\n"
+       "IP information\n"
+       "IP routing table\n"
+       "Network in the IP routing table to display\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, no_ipv6_prefix_list_seq_le_cmd_vtysh, 
+       "no ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) X:X::X:X/M le <0-128>", 
+       "Negate a command or set its defaults\n"
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "sequence number of an entry\n"
+       "Sequence number\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
+       "Maximum prefix length to be matched\n"
+       "Maximum prefix length\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_mbgp_community_list_cmd_vtysh, 
+       "show ipv6 mbgp community-list WORD", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "MBGP information\n"
+       "Display routes matching the community-list\n"
+       "community-list name\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_community3_cmd_vtysh, 
+       "show ip bgp ipv4 (unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
        "Display routes matching the communities\n"
        "community number\n"
        "Do not send outside local AS (well-known community)\n"
@@ -8102,20 +7423,87 @@
        "Do not advertise to any peer (well-known community)\n"
        "Do not export to next AS (well-known community)\n")
 
-DEFSH (VTYSH_BGPD, clear_ip_bgp_as_ipv4_soft_in_cmd_vtysh, 
-       "clear ip bgp <1-65535> ipv4 (unicast|multicast) soft in", 
+DEFSH (VTYSH_BGPD, neighbor_attr_unchanged7_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged next-hop med as-path", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "BGP attribute is propagated unchanged to this neighbor\n"
+       "Nexthop attribute\n"
+       "Med attribute\n"
+       "As-path attribute\n")
+
+DEFSH (VTYSH_BGPD, neighbor_default_originate_rmap_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "default-originate route-map WORD", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Originate default route to this neighbor\n"
+       "Route-map to specify criteria to originate default\n"
+       "route-map name\n")
+
+DEFSH (VTYSH_OSPFD, ip_ospf_priority_cmd_vtysh, 
+       "ip ospf priority <0-255>", 
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Router priority\n"
+       "Priority\n")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_connected_metric_routemap_cmd_vtysh, 
+       "no redistribute connected metric <0-16> route-map WORD", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Metric\n"
+       "Metric value\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_BGPD, neighbor_allowas_in_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "allowas-in", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Accept as-path with my AS present in it\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_external_ipv4_out_cmd_vtysh, 
+       "clear ip bgp external ipv4 (unicast|multicast) out", 
        "Reset functions\n"
        "IP information\n"
        "BGP information\n"
-       "Clear peers with the AS number\n"
+       "Clear all external peers\n"
        "Address family\n"
        "Address Family modifier\n"
        "Address Family modifier\n"
-       "Soft reconfig\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_BGPD, bgp_distance_source_access_list_cmd_vtysh, 
+       "distance <1-255> A.B.C.D/M WORD", 
+       "Define an administrative distance\n"
+       "Administrative distance\n"
+       "IP source prefix\n"
+       "Access list name\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_regexp_cmd_vtysh, 
+       "show ip bgp regexp .LINE", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display routes matching the AS path regular expression\n"
+       "A regular-expression to match the BGP AS paths\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_all_in_cmd_vtysh, 
+       "clear bgp * in", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear all peers\n"
        "Soft reconfig inbound update\n")
 
-DEFSH (VTYSH_BGPD, show_ipv6_bgp_community_exact_cmd_vtysh, 
-       "show ipv6 bgp community (AA:NN|local-AS|no-advertise|no-export) exact-match", 
+DEFSH (VTYSH_OSPF6D, show_debug_ospf6_cmd_vtysh, 
+      "show debugging ospf6", 
+      "Show running system information\n"
+      "Debugging functions (see also 'undebug')\n"
+      "Open Shortest Path First (OSPF) for IPv6\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_bgp_community4_cmd_vtysh, 
+       "show ipv6 bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
        "Show running system information\n"
        "IPv6 information\n"
        "BGP information\n"
@@ -8124,118 +7512,311 @@
        "Do not send outside local AS (well-known community)\n"
        "Do not advertise to any peer (well-known community)\n"
        "Do not export to next AS (well-known community)\n"
-       "Exact match of the communities")
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n")
 
-DEFSH (VTYSH_BGPD, show_ip_bgp_neighbor_advertised_route_cmd_vtysh, 
-       "show ip bgp neighbors (A.B.C.D|X:X::X:X) advertised-routes", 
+DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_rd_summary_cmd_vtysh, 
+       "show ip bgp vpnv4 rd ASN:nn_or_IP-address:nn summary", 
        "Show running system information\n"
        "IP information\n"
        "BGP information\n"
+       "Display VPNv4 NLRI specific information\n"
+       "Display information for a route distinguisher\n"
+       "VPN Route Distinguisher\n"
+       "Summary of BGP neighbor status\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_in_cmd_vtysh, 
+       "clear ip bgp A.B.C.D in", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "BGP neighbor address to clear\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_BGPD, neighbor_attr_unchanged_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "BGP attribute is propagated unchanged to this neighbor\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_group_out_cmd_vtysh, 
+       "clear bgp ipv6 peer-group WORD out", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear all members of peer-group\n"
+       "BGP peer-group name\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_BGPD, debug_bgp_fsm_cmd_vtysh, 
+       "debug bgp fsm", 
+       "Debugging functions (see also 'undebug')\n"
+       "BGP information\n"
+       "BGP Finite State Machine\n")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_bgp_cmd_vtysh, 
+       "no redistribute bgp", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Border Gateway Protocol (BGP)\n")
+
+DEFSH (VTYSH_RIPD, rip_timers_cmd_vtysh, 
+       "timers basic <5-2147483647> <5-2147483647> <5-2147483647>", 
+       "Adjust routing timers\n"
+       "Basic routing protocol update timers\n"
+       "Routing table update timer value in second. Default is 30.\n"
+       "Routing information timeout timer. Default is 180.\n"
+       "Garbage collection timer. Default is 120.\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, ipv6_prefix_list_seq_ge_le_cmd_vtysh, 
+       "ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) X:X::X:X/M ge <0-128> le <0-128>", 
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "sequence number of an entry\n"
+       "Sequence number\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
+       "Minimum prefix length to be matched\n"
+       "Minimum prefix length\n"
+       "Maximum prefix length to be matched\n"
+       "Maximum prefix length\n")
+
+DEFSH (VTYSH_BGPD, old_ipv6_aggregate_address_cmd_vtysh, 
+       "ipv6 bgp aggregate-address X:X::X:X/M", 
+       "IPv6 information\n"
+       "BGP information\n"
+       "Configure BGP aggregate entries\n"
+       "Aggregate prefix\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_instance_all_ipv4_soft_in_cmd_vtysh, 
+       "clear ip bgp view WORD * ipv4 (unicast|multicast) soft in", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "BGP view\n"
+       "view name\n"
+       "Clear all peers\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Soft reconfig\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_attr_unchanged1_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged (as-path|next-hop|med)", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "BGP attribute is propagated unchanged to this neighbor\n"
+       "As-path attribute\n"
+       "Nexthop attribute\n"
+       "Med attribute\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD, no_match_interface_cmd_vtysh, 
+       "no match interface", 
+       "Negate a command or set its defaults\n"
+       "Match values from routing table\n"
+       "Match first hop interface of route\n")
+
+DEFSH (VTYSH_ZEBRA, show_ipv6_route_prefix_longer_cmd_vtysh, 
+       "show ipv6 route X:X::X:X/M longer-prefixes", 
+       "Show running system information\n"
+       "IP information\n"
+       "IPv6 routing table\n"
+       "IPv6 prefix\n"
+       "Show route matching the specified Network/Mask pair only\n")
+
+DEFSH (VTYSH_OSPFD, ospf_priority_cmd_vtysh, 
+       "ospf priority <0-255>", 
+       "OSPF interface commands\n"
+       "Router priority\n"
+       "Priority\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, ipv6_prefix_list_description_cmd_vtysh, 
+       "ipv6 prefix-list WORD description .LINE", 
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "Prefix-list specific description\n"
+       "Up to 80 characters describing this prefix-list\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_ipv6_community_all_cmd_vtysh, 
+       "show bgp ipv6 community", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Display routes matching the communities\n")
+
+DEFSH (VTYSH_BGPD, no_ip_extcommunity_list_name_all_cmd_vtysh, 
+       "no ip extcommunity-list (standard|expanded) WORD", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Add a extended community list entry\n"
+       "Specify standard extcommunity-list\n"
+       "Specify expanded extcommunity-list\n"
+       "Extended Community list name\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_advertise_interval_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X) " "advertisement-interval", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nIPv6 address\n"
+       "Minimum interval between sending BGP routing updates\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_mbgp_community3_cmd_vtysh, 
+       "show ipv6 mbgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "MBGP information\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n")
+
+DEFSH (VTYSH_RIPD, send_lifetime_duration_day_month_cmd_vtysh, 
+       "send-lifetime HH:MM:SS <1-31> MONTH <1993-2035> duration <1-2147483646>", 
+       "Set send lifetime of the key\n"
+       "Time to start\n"
+       "Day of th month to start\n"
+       "Month of the year to start\n"
+       "Year to start\n"
+       "Duration of the key\n"
+       "Duration seconds\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, ip_prefix_list_seq_cmd_vtysh, 
+       "ip prefix-list WORD seq <1-4294967295> (deny|permit) (A.B.C.D/M|any)", 
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "sequence number of an entry\n"
+       "Sequence number\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Any prefix match. Same as \"0.0.0.0/0 le 32\"\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_prefix_cmd_vtysh, 
+       "no ip prefix-list WORD (deny|permit) (A.B.C.D/M|any)", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Any prefix match.  Same as \"0.0.0.0/0 le 32\"\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_as_soft_cmd_vtysh, 
+       "clear bgp <1-65535> soft", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear peers with the AS number\n"
+       "Soft reconfig\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_ipv6_cmd_vtysh, 
+       "show bgp ipv6", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Address family\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_ebgp_multihop_ttl_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "ebgp-multihop <1-255>", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Allow EBGP neighbors not on directly connected networks\n"
+       "maximum hop count\n")
+
+DEFSH (VTYSH_BGPD, bgp_scan_time_cmd_vtysh, 
+       "bgp scan-time <5-60>", 
+       "BGP specific commands\n"
+       "Configure background scanner interval\n"
+       "Scanner interval (seconds)\n")
+
+DEFSH (VTYSH_OSPFD, no_ip_ospf_message_digest_key_addr_cmd_vtysh, 
+       "no ip ospf message-digest-key <1-255> A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Message digest authentication password (key)\n"
+       "Key ID\n"
+       "Address of interface")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, show_ipv6_prefix_list_name_cmd_vtysh, 
+       "show ipv6 prefix-list WORD", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n")
+
+DEFSH (VTYSH_RIPNGD, show_debugging_ripng_cmd_vtysh, 
+       "show debugging ripng", 
+       "Show running system information\n"
+       "RIPng configuration\n"
+       "Debugging information\n")
+
+DEFSH (VTYSH_BGPD, ip_community_list_standard2_cmd_vtysh, 
+       "ip community-list <1-99> (deny|permit)", 
+       "IP information\n"
+       "Add a community list entry\n"
+       "Community list number (standard)\n"
+       "Specify community to reject\n"
+       "Specify community to accept\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, show_ip_access_list_cmd_vtysh, 
+       "show ip access-list", 
+       "Show running system information\n"
+       "IP information\n"
+       "List IP access lists\n")
+
+DEFSH (VTYSH_BGPD, ipv6_bgp_neighbor_advertised_route_cmd_vtysh, 
+       "show ipv6 bgp neighbors (A.B.C.D|X:X::X:X) advertised-routes", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "BGP information\n"
        "Detailed information on TCP and BGP neighbor connections\n"
        "Neighbor to display information about\n"
        "Neighbor to display information about\n"
        "Display the routes advertised to a BGP neighbor\n")
 
-DEFSH (VTYSH_OSPFD, mpls_te_router_addr_cmd_vtysh, 
-       "mpls-te router-address A.B.C.D", 
-       "MPLS-TE specific commands\n"
-       "Stable IP address of the advertising router\n"
-       "MPLS-TE router address in IPv4 address format\n")
-
-DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_cmd_vtysh, 
-       "show ipv6 ospf6", 
-       "Show running system information\n"
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ipv6_prefix_list_cmd_vtysh, 
-       "show ipv6 prefix-list", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "Build a prefix list\n")
-
-DEFSH (VTYSH_ZEBRA, no_debug_zebra_kernel_cmd_vtysh, 
-       "no debug zebra kernel", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "Zebra configuration\n"
-       "Debug option set for zebra between kernel interface\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_as_in_prefix_filter_cmd_vtysh, 
-       "clear bgp <1-65535> in prefix-filter", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear peers with the AS number\n"
-       "Soft reconfig inbound update\n"
-       "Push out prefix-list ORF and do inbound soft reconfig\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_ipv6_neighbors_cmd_vtysh, 
-       "show bgp ipv6 neighbors", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Detailed information on TCP and BGP neighbor connections\n")
-
-DEFSH (VTYSH_ZEBRA, ip_irdp_preference_cmd_vtysh, 
-
-       "ip irdp preference <0-2147483647>", 
-       "IP information\n"
-       "ICMP Router discovery on this interface\n"
-       "Set default preference level for this interface\n"
-       "Preference level\n")
-
-DEFSH (VTYSH_OSPFD, ospf_distance_ospf_external_intra_cmd_vtysh, 
-       "distance ospf external <1-255> intra-area <1-255>", 
-       "Define an administrative distance\n"
-       "OSPF Administrative distance\n"
-       "External routes\n"
-       "Distance for external routes\n"
-       "Intra-area routes\n"
-       "Distance for intra-area routes\n")
-
-DEFSH (VTYSH_BGPD, no_set_vpnv4_nexthop_cmd_vtysh, 
-       "no set vpnv4 next-hop", 
+DEFSH (VTYSH_BGPD, no_set_origin_val_cmd_vtysh, 
+       "no set origin (egp|igp|incomplete)", 
        "Negate a command or set its defaults\n"
        "Set values in destination routing protocol\n"
-       "VPNv4 information\n"
-       "VPNv4 next-hop address\n")
+       "BGP origin code\n"
+       "remote EGP\n"
+       "local IGP\n"
+       "unknown heritage\n")
 
-DEFSH (VTYSH_OSPFD, no_debug_ospf_lsa_cmd_vtysh, 
-       "no debug ospf lsa", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "OSPF information\n"
-       "OSPF Link State Advertisement\n")
-
-DEFSH (VTYSH_BGPD, no_match_community_exact_cmd_vtysh, 
-       "no match community (<1-99>|<100-199>|WORD) exact-match", 
-       "Negate a command or set its defaults\n"
-       "Match values from routing table\n"
-       "Match BGP community list\n"
-       "Community-list number (standard)\n"
-       "Community-list number (expanded)\n"
-       "Community-list name\n"
-       "Do exact matching of communities\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_kernel_metric_routemap_cmd_vtysh, 
-       "no redistribute kernel metric <0-16> route-map WORD", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Kernel routes\n"
-       "Metric\n"
-       "Metric value\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_topology_router_cmd_vtysh, 
-       "show ipv6 ospf6 topology (A.B.C.D|<0-4294967295>|detail)", 
+DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_area_route_cmd_vtysh, 
+       "show ipv6 ospf6 area A.B.C.D route", 
        "Show running system information\n"
        "IPv6 Information\n"
        "Open Shortest Path First (OSPF) for IPv6\n"
-       "Inter Area topology information\n"
-       "Specify Router-ID\n"
-       "Specify Router-ID\n"
-       "Detailed information\n"
+       "Area information\n"
+       "Area ID (as an IPv4 notation)\n"
+       "Routing Table\n"
        )
 
 DEFSH (VTYSH_BGPD, show_bgp_ipv6_neighbor_routes_cmd_vtysh, 
@@ -8248,69 +7829,144 @@
        "Neighbor to display information about\n"
        "Display routes learned from neighbor\n")
 
-DEFSH (VTYSH_BGPD, ip_community_list_standard2_cmd_vtysh, 
-       "ip community-list <1-99> (deny|permit)", 
-       "IP information\n"
-       "Add a community list entry\n"
-       "Community list number (standard)\n"
-       "Specify community to reject\n"
-       "Specify community to accept\n")
+DEFSH (VTYSH_OSPFD, debug_ospf_lsa_cmd_vtysh, 
+       "debug ospf lsa", 
+       "Debugging functions (see also 'undebug')\n"
+       "OSPF information\n"
+       "OSPF Link State Advertisement\n")
 
-DEFSH (VTYSH_BGPD, show_ip_bgp_instance_ipv4_summary_cmd_vtysh, 
-       "show ip bgp view WORD ipv4 (unicast|multicast) summary", 
-       "Show running system information\n"
+DEFSH (VTYSH_BGPD, no_neighbor_dont_capability_negotiate_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "dont-capability-negotiate", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Do not perform capability negotiation\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_instance_all_soft_cmd_vtysh, 
+       "clear ip bgp view WORD * soft", 
+       "Reset functions\n"
        "IP information\n"
        "BGP information\n"
        "BGP view\n"
-       "View name\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Summary of BGP neighbor status\n")
+       "view name\n"
+       "Clear all peers\n"
+       "Soft reconfig\n")
 
-DEFSH (VTYSH_BGPD, no_bgp_network_mask_natural_route_map_cmd_vtysh, 
-       "no network A.B.C.D route-map WORD", 
+DEFSH (VTYSH_OSPFD, ip_ospf_dead_interval_cmd_vtysh, 
+       "ip ospf dead-interval <1-65535>", 
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Interval after which a neighbor is declared dead\n"
+       "Seconds\n")
+
+DEFSH (VTYSH_OSPFD, ospf_distance_ospf_inter_cmd_vtysh, 
+       "distance ospf inter-area <1-255>", 
+       "Define an administrative distance\n"
+       "OSPF Administrative distance\n"
+       "Inter-area routes\n"
+       "Distance for inter-area routes\n")
+
+DEFSH (VTYSH_OSPFD, no_ip_ospf_message_digest_key_cmd_vtysh, 
+       "no ip ospf message-digest-key <1-255>", 
        "Negate a command or set its defaults\n"
-       "Specify a network to announce via BGP\n"
-       "Network number\n"
-       "Route-map to modify the attributes\n"
-       "Name of the route map\n")
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Message digest authentication password (key)\n"
+       "Key ID\n")
 
-DEFSH (VTYSH_OSPFD, no_area_range_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) range A.B.C.D/M", 
-       "Negate a command or set its defaults\n"
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Summarize routes matching address/mask (border routers only)\n"
-       "Area range prefix\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_redistribute_ipv4_metric_cmd_vtysh, 
-       "no redistribute (connected|kernel|ospf|rip|static) metric <0-4294967295>", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Connected\n"
-       "Kernel routes\n"
-       "Open Shurtest Path First (OSPF)\n"
-       "Routing Information Protocol (RIP)\n"
-       "Static routes\n"
-       "Metric for redistributed routes\n"
-       "Default metric\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_community2_cmd_vtysh, 
-       "show ip bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
-       "Show running system information\n"
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_soft_cmd_vtysh, 
+       "clear ip bgp peer-group WORD soft", 
+       "Reset functions\n"
        "IP information\n"
        "BGP information\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n")
+       "Clear all members of peer-group\n"
+       "BGP peer-group name\n"
+       "Soft reconfig\n")
+
+DEFSH (VTYSH_RIPNGD, ripng_redistribute_ospf6_metric_cmd_vtysh, 
+       "redistribute ospf6 metric <0-16>", 
+       "Redistribute information from another routing protocol\n"
+       "IPv6 Open Shortest Path First (OSPFv3)\n"
+       "Metric\n"
+       "Metric value\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_as_soft_cmd_vtysh, 
+       "clear ip bgp <1-65535> soft", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear peers with the AS number\n"
+       "Soft reconfig\n")
+
+DEFSH (VTYSH_OSPFD, no_debug_ospf_zebra_sub_cmd_vtysh, 
+       "no debug ospf zebra (interface|redistribute)", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
+       "OSPF information\n"
+       "OSPF Zebra information\n"
+       "Zebra interface\n"
+       "Zebra redistribute\n")
+
+DEFSH (VTYSH_OSPFD, show_ip_ospf_database_type_cmd_vtysh, 
+       "show ip ospf database (" "asbr-summary|external|network|router|summary" "" "" "|max-age|self-originate)", 
+       "Show running system information\n"
+       "IP information\n"
+       "OSPF information\n"
+       "Database summary\n"
+       "ASBR summary link states\n" "External link states\n" "Network link states\n" "Router link states\n" "Network summary link states\n" "" "" "" ""
+       "LSAs in MaxAge list\n"
+       "Self-originated link states\n")
+
+DEFSH (VTYSH_BGPD, neighbor_prefix_list_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "prefix-list WORD (in|out)", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Filter updates to/from this neighbor\n"
+       "Name of a prefix list\n"
+       "Filter incoming updates\n"
+       "Filter outgoing updates\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_cmd_vtysh, 
+       "no ip prefix-list WORD", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_standard_nomask_cmd_vtysh, 
+       "access-list (<1-99>|<1300-1999>) (deny|permit) A.B.C.D", 
+       "Add an access list entry\n"
+       "IP standard access list\n"
+       "IP standard access list (expanded range)\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Address to match\n")
+
+DEFSH (VTYSH_BGPD, neighbor_default_originate_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "default-originate", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Originate default route to this neighbor\n")
+
+DEFSH (VTYSH_OSPFD, ospf_default_information_originate_always_metric_cmd_vtysh, 
+       "default-information originate always metric <0-16777214>", 
+       "Control distribution of default information\n"
+       "Distribute a default route\n"
+       "Always advertise default route\n"
+       "OSPF default metric\n"
+       "OSPF metric\n"
+       "OSPF metric type for default routes\n")
+
+DEFSH (VTYSH_RIPD, no_rip_route_cmd_vtysh, 
+       "no route A.B.C.D/M", 
+       "Negate a command or set its defaults\n"
+       "RIP static route configuration\n"
+       "IP prefix <network>/<length>\n")
+
+DEFSH (VTYSH_RIPD, rip_default_metric_cmd_vtysh, 
+       "default-metric <1-16>", 
+       "Set a metric of redistribute routes\n"
+       "Default metric\n")
 
 DEFSH (VTYSH_OSPFD, no_ip_ospf_dead_interval_addr_cmd_vtysh, 
        "no ip ospf dead-interval A.B.C.D", 
@@ -8320,11 +7976,62 @@
        "Interval after which a neighbor is declared dead\n"
        "Address of interface")
 
-DEFSH (VTYSH_BGPD, show_ipv6_bgp_community2_cmd_vtysh, 
-       "show ipv6 bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
+DEFSH (VTYSH_RIPNGD, show_ipv6_ripng_cmd_vtysh, 
+       "show ipv6 ripng", 
+       "Show running system information\n"
+       "IP information\n"
+       "Show RIPng routes\n")
+
+DEFSH (VTYSH_OSPFD, ospf_compatible_rfc1583_cmd_vtysh, 
+       "compatible rfc1583", 
+       "OSPF compatibility list\n"
+       "compatible with RFC 1583\n")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_static_routemap_cmd_vtysh, 
+       "no redistribute static route-map WORD", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Static routes\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_BGPD, neighbor_attr_unchanged1_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged (as-path|next-hop|med)", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "BGP attribute is propagated unchanged to this neighbor\n"
+       "As-path attribute\n"
+       "Nexthop attribute\n"
+       "Med attribute\n")
+
+DEFSH (VTYSH_BGPD, dump_bgp_routes_interval_cmd_vtysh, 
+       "dump bgp routes-mrt PATH INTERVAL", 
+       "Dump packet\n"
+       "BGP packet dump\n"
+       "Dump whole BGP routing table\n"
+       "Output filename\n"
+       "Interval of output\n")
+
+DEFSH (VTYSH_RIPNGD, ripng_redistribute_kernel_routemap_cmd_vtysh, 
+       "redistribute kernel route-map WORD", 
+       "Redistribute information from another routing protocol\n"
+       "Kernel routes\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_OSPFD, ip_ospf_authentication_args_cmd_vtysh, 
+       "ip ospf authentication (null|message-digest)", 
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Enable authentication on this interface\n"
+       "Use null authentication\n"
+       "Use message-digest authentication\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_mbgp_community4_exact_cmd_vtysh, 
+       "show ipv6 mbgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
        "Show running system information\n"
        "IPv6 information\n"
-       "BGP information\n"
+       "MBGP information\n"
        "Display routes matching the communities\n"
        "community number\n"
        "Do not send outside local AS (well-known community)\n"
@@ -8333,334 +8040,280 @@
        "community number\n"
        "Do not send outside local AS (well-known community)\n"
        "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_rd_cmd_vtysh, 
-       "show ip bgp vpnv4 rd ASN:nn_or_IP-address:nn", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display VPNv4 NLRI specific information\n"
-       "Display information for a route distinguisher\n"
-       "VPN Route Distinguisher\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_community_exact_cmd_vtysh, 
-       "show ip bgp community (AA:NN|local-AS|no-advertise|no-export) exact-match", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display routes matching the communities\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
        "community number\n"
        "Do not send outside local AS (well-known community)\n"
        "Do not advertise to any peer (well-known community)\n"
        "Do not export to next AS (well-known community)\n"
        "Exact match of the communities")
 
-DEFSH (VTYSH_OSPFD, no_ip_ospf_hello_interval_cmd_vtysh, 
-       "no ip ospf hello-interval", 
-       "Negate a command or set its defaults\n"
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Time between HELLO packets\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_ipv6_community4_cmd_vtysh, 
-       "show bgp ipv6 community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_ipv6_access_list_remark_cmd_vtysh, 
-       "no ipv6 access-list WORD remark", 
-       "Negate a command or set its defaults\n"
-       "IPv6 information\n"
-       "Add an access list entry\n"
-       "IPv6 zebra access-list\n"
-       "Access list entry comment\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_soft_cmd_vtysh, 
-       "clear bgp ipv6 (A.B.C.D|X:X::X:X) soft", 
+DEFSH (VTYSH_BGPD, clear_bgp_as_soft_out_cmd_vtysh, 
+       "clear bgp <1-65535> soft out", 
        "Reset functions\n"
        "BGP information\n"
-       "Address family\n"
-       "BGP neighbor address to clear\n"
-       "BGP IPv6 neighbor to clear\n"
-       "Soft reconfig\n")
-
-DEFSH (VTYSH_BGPD, no_match_origin_cmd_vtysh, 
-       "no match origin", 
-       "Negate a command or set its defaults\n"
-       "Match values from routing table\n"
-       "BGP origin code\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_all_soft_out_cmd_vtysh, 
-       "clear ip bgp * soft out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all peers\n"
+       "Clear peers with the AS number\n"
        "Soft reconfig\n"
        "Soft reconfig outbound update\n")
 
-DEFSH (VTYSH_BGPD, show_bgp_neighbor_routes_cmd_vtysh, 
-       "show bgp neighbors (A.B.C.D|X:X::X:X) routes", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Neighbor to display information about\n"
-       "Display routes learned from neighbor\n")
-
-DEFSH (VTYSH_BGPD, aggregate_address_cmd_vtysh, 
-       "aggregate-address A.B.C.D/M", 
-       "Configure BGP aggregate entries\n"
-       "Aggregate prefix\n")
-
-DEFSH (VTYSH_RIPNGD, ripng_redistribute_bgp_metric_routemap_cmd_vtysh, 
-       "redistribute bgp metric <0-16> route-map WORD", 
-       "Redistribute information from another routing protocol\n"
-       "Border Gateway Protocol (BGP)\n"
-       "Metric\n"
-       "Metric value\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_area_topology_router_cmd_vtysh, 
-       "show ipv6 ospf6 area A.B.C.D topology (A.B.C.D|<0-4294967295>|detail)", 
-       "Show running system information\n"
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Area information\n"
-       "Area ID (as an IPv4 notation)\n"
-       "Shortest Path First tree information\n"
-       "Displays SPF topology table\n"
-       "Specify Router-ID\n"
-       "Specify Router-ID\n"
-       )
-
-DEFSH (VTYSH_BGPD, old_ipv6_aggregate_address_summary_only_cmd_vtysh, 
-       "ipv6 bgp aggregate-address X:X::X:X/M summary-only", 
-       "IPv6 information\n"
-       "BGP information\n"
-       "Configure BGP aggregate entries\n"
-       "Aggregate prefix\n"
-       "Filter more specific routes from updates\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_extended_mask_any_cmd_vtysh, 
-       "no access-list (<100-199>|<2000-2699>) (deny|permit) ip A.B.C.D A.B.C.D any", 
-       "Negate a command or set its defaults\n"
-       "Add an access list entry\n"
-       "IP extended access list\n"
-       "IP extended access list (expanded range)\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Any Internet Protocol\n"
-       "Source address\n"
-       "Source wildcard bits\n"
-       "Any destination host\n")
-
-DEFSH (VTYSH_OSPFD, passive_interface_cmd_vtysh, 
-       "passive-interface IFNAME", 
-       "Suppress routing updates on an interface\n"
-       "Interface's name\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_network_cmd_vtysh, 
-       "no network PREFIX", 
-       "Negate a command or set its defaults\n"
-       "Announce network setup\n"
-       "Delete static network for bgp announcement\n")
-
-DEFSH (VTYSH_OSPFD, no_timers_spf_cmd_vtysh, 
-       "no timers spf", 
-       "Negate a command or set its defaults\n"
-       "Adjust routing timers\n"
-       "OSPF SPF timers\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_network_cmd_vtysh, 
-       "no network IF_OR_ADDR", 
-       "Negate a command or set its defaults\n"
-       "RIPng enable on specified interface or network.\n"
-       "Interface or address")
-
-DEFSH (VTYSH_BGPD, bgp_multiple_instance_cmd_vtysh, 
-       "bgp multiple-instance", 
-       "BGP information\n"
-       "Enable bgp multiple instance\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_external_out_cmd_vtysh, 
-       "clear ip bgp external out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all external peers\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_RIPD, no_rip_neighbor_cmd_vtysh, 
-       "no neighbor A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "Specify a neighbor router\n"
-       "Neighbor address\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_all_cmd_vtysh, 
-       "show ip bgp vpnv4 all", 
+DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_rd_neighbors_cmd_vtysh, 
+       "show ip bgp vpnv4 rd ASN:nn_or_IP-address:nn neighbors", 
        "Show running system information\n"
        "IP information\n"
        "BGP information\n"
        "Display VPNv4 NLRI specific information\n"
-       "Display information about all VPNv4 NLRIs\n")
+       "Display information for a route distinguisher\n"
+       "VPN Route Distinguisher\n"
+       "Detailed information on TCP and BGP neighbor connections\n")
 
-DEFSH (VTYSH_BGPD, clear_bgp_instance_all_soft_out_cmd_vtysh, 
-       "clear bgp view WORD * soft out", 
+DEFSH (VTYSH_OSPFD, neighbor_poll_interval_cmd_vtysh, 
+       "neighbor A.B.C.D poll-interval <1-65535>", 
+       "Specify neighbor router\n"
+       "Neighbor IP address\n"
+       "Dead Neighbor Polling interval\n"
+       "Seconds\n")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_timers_cmd_vtysh, 
+       "no timers basic", 
+       "Negate a command or set its defaults\n"
+       "RIPng timers setup\n"
+       "Basic timer\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ip_prefix_list_cmd_vtysh, 
+       "show ip prefix-list", 
+       "Show running system information\n"
+       "IP information\n"
+       "Build a prefix list\n")
+
+DEFSH (VTYSH_BGPD, no_match_community_val_cmd_vtysh, 
+       "no match community (<1-99>|<100-199>|WORD)", 
+       "Negate a command or set its defaults\n"
+       "Match values from routing table\n"
+       "Match BGP community list\n"
+       "Community-list number (standard)\n"
+       "Community-list number (expanded)\n"
+       "Community-list name\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_set_ip_nexthop_val_cmd_vtysh, 
+       "no set ip next-hop A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "IP information\n"
+       "Next hop address\n"
+       "IP address of next hop\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_sequence_number_cmd_vtysh, 
+       "no ip prefix-list sequence-number", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Build a prefix list\n"
+       "Include/exclude sequence numbers in NVGEN\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_as_in_cmd_vtysh, 
+       "clear bgp ipv6 <1-65535> in", 
        "Reset functions\n"
        "BGP information\n"
+       "Address family\n"
+       "Clear peers with the AS number\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_RIPD, no_ip_rip_receive_version_cmd_vtysh, 
+       "no ip rip receive version", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Routing Information Protocol\n"
+       "Advertisement reception\n"
+       "Version control\n")
+
+DEFSH (VTYSH_OSPFD, ospf_default_information_originate_always_cmd_vtysh, 
+       "default-information originate always", 
+       "Control distribution of default information\n"
+       "Distribute a default route\n"
+       "Always advertise default route\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_all_vpnv4_in_cmd_vtysh, 
+       "clear ip bgp * vpnv4 unicast in", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all peers\n"
+       "Address family\n"
+       "Address Family Modifier\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_OSPF6D, no_ipv6_ospf6_advertise_force_prefix_cmd_vtysh, 
+       "no ipv6 ospf6 advertise force-prefix", 
+       "Negate a command or set its defaults\n"
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Advertising options\n"
+       "Force to advertise prefix,  applicable if Loopback or P-to-P\n"
+       )
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_neighbor_received_routes_cmd_vtysh, 
+       "show ip bgp ipv4 (unicast|multicast) neighbors (A.B.C.D|X:X::X:X) received-routes", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n"
+       "Display the received routes from neighbor\n")
+
+DEFSH (VTYSH_BGPD, no_debug_bgp_normal_cmd_vtysh, 
+       "no debug bgp", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
+       "BGP information\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_vpnv4_out_cmd_vtysh, 
+       "clear ip bgp A.B.C.D vpnv4 unicast out", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "BGP neighbor address to clear\n"
+       "Address family\n"
+       "Address Family Modifier\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_OSPFD, ospf_default_information_originate_always_metric_routemap_cmd_vtysh, 
+       "default-information originate always metric <0-16777214> route-map WORD", 
+       "Control distribution of default information\n"
+       "Distribute a default route\n"
+       "Always advertise default route\n"
+       "OSPF default metric\n"
+       "OSPF metric\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_OSPFD, ospf_default_information_originate_metric_cmd_vtysh, 
+       "default-information originate metric <0-16777214>", 
+       "Control distribution of default information\n"
+       "Distribute a default route\n"
+       "OSPF default metric\n"
+       "OSPF metric\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_mbgp_summary_cmd_vtysh, 
+       "show ipv6 mbgp summary", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "MBGP information\n"
+       "Summary of BGP neighbor status\n")
+
+DEFSH (VTYSH_OSPFD, no_refresh_timer_val_cmd_vtysh, 
+       "no refresh timer <10-1800>", 
+       "Adjust refresh parameters\n"
+       "Unset refresh timer\n"
+       "Timer value in seconds\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_standard_cmd_vtysh, 
+       "no access-list (<1-99>|<1300-1999>) (deny|permit) A.B.C.D A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "Add an access list entry\n"
+       "IP standard access list\n"
+       "IP standard access list (expanded range)\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Address to match\n"
+       "Wildcard bits\n")
+
+DEFSH (VTYSH_ZEBRA, shutdown_if_cmd_vtysh, 
+       "shutdown", 
+       "Shutdown the selected interface\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_redistribute_ipv6_metric_rmap_cmd_vtysh, 
+       "no redistribute (connected|kernel|ospf6|ripng|static) metric <0-4294967295> route-map WORD", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Kernel routes\n"
+       "Open Shurtest Path First (OSPFv3)\n"
+       "Routing Information Protocol (RIPng)\n"
+       "Static routes\n"
+       "Metric for redistributed routes\n"
+       "Default metric\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_route_reflector_client_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "route-reflector-client", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Configure a neighbor as Route Reflector client\n")
+
+DEFSH (VTYSH_RIPD, no_rip_distance_source_cmd_vtysh, 
+       "no distance <1-255> A.B.C.D/M", 
+       "Negate a command or set its defaults\n"
+       "Administrative distance\n"
+       "Distance value\n"
+       "IP source prefix\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_instance_all_soft_out_cmd_vtysh, 
+       "clear ip bgp view WORD * soft out", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
        "BGP view\n"
        "view name\n"
        "Clear all peers\n"
        "Soft reconfig\n"
        "Soft reconfig outbound update\n")
 
-DEFSH (VTYSH_ZEBRA, debug_zebra_events_cmd_vtysh, 
-       "debug zebra events", 
+DEFSH (VTYSH_OSPFD, no_debug_ospf_event_cmd_vtysh, 
+       "no debug ospf event", 
+       "Negate a command or set its defaults\n"
        "Debugging functions (see also 'undebug')\n"
-       "Zebra configuration\n"
-       "Debug option set for zebra events\n")
+       "OSPF information\n"
+       "OSPF event information\n")
 
-DEFSH (VTYSH_ZEBRA, ip_route_mask_distance_cmd_vtysh, 
-       "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) <1-255>", 
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_cmd_vtysh, 
+       "clear ip bgp (A.B.C.D|X:X::X:X)", 
+       "Reset functions\n"
        "IP information\n"
-       "Establish static routes\n"
-       "IP destination prefix\n"
-       "IP destination prefix mask\n"
-       "IP gateway address\n"
-       "IP gateway interface name\n"
-       "Null interface\n"
-       "Distance value for this route\n")
+       "BGP information\n"
+       "BGP neighbor IP address to clear\n"
+       "BGP IPv6 neighbor to clear\n")
 
-DEFSH (VTYSH_ZEBRA, show_ipv6_route_protocol_cmd_vtysh, 
-       "show ipv6 route (bgp|connected|kernel|ospf6|ripng|static)", 
-       "Show running system information\n"
-       "IP information\n"
-       "IP routing table\n"
-       "Border Gateway Protocol (BGP)\n"
-       "Connected\n"
-       "Kernel\n"
-       "Open Shortest Path First (OSPFv3)\n"
-       "Routing Information Protocol (RIPng)\n"
-       "Static routes\n")
-
-DEFSH (VTYSH_BGPD, bgp_client_to_client_reflection_cmd_vtysh, 
-       "bgp client-to-client reflection", 
-       "BGP specific commands\n"
-       "Configure client to client route reflection\n"
-       "reflection of routes allowed\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_exact_cmd_vtysh, 
-       "access-list WORD (deny|permit) A.B.C.D/M exact-match", 
-       "Add an access list entry\n"
-       "IP zebra access-list name\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Prefix to match. e.g. 10.0.0.0/8\n"
-       "Exact match of the prefixes\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_ipv6_access_list_cmd_vtysh, 
-       "no ipv6 access-list WORD (deny|permit) X:X::X:X/M", 
-       "Negate a command or set its defaults\n"
-       "IPv6 information\n"
-       "Add an access list entry\n"
-       "IPv6 zebra access-list\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Prefix to match. e.g. 3ffe:506::/32\n")
-
-DEFSH (VTYSH_BGPD, set_atomic_aggregate_cmd_vtysh, 
-       "set atomic-aggregate", 
-       "Set values in destination routing protocol\n"
-       "BGP atomic aggregate attribute\n" )
-
-DEFSH (VTYSH_BGPD, no_neighbor_soft_reconfiguration_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "soft-reconfiguration inbound", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Per neighbor soft reconfiguration\n"
-       "Allow inbound soft reconfiguration for this neighbor\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, show_ipv6_access_list_cmd_vtysh, 
-       "show ipv6 access-list", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "List IPv6 access lists\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_distance_cmd_vtysh, 
-       "no distance bgp <1-255> <1-255> <1-255>", 
-       "Negate a command or set its defaults\n"
-       "Define an administrative distance\n"
-       "BGP distance\n"
-       "Distance for routes external to the AS\n"
-       "Distance for routes internal to the AS\n"
-       "Distance for local routes\n")
-
-DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_area_route_cmd_vtysh, 
-       "show ipv6 ospf6 area A.B.C.D route", 
-       "Show running system information\n"
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Area information\n"
-       "Area ID (as an IPv4 notation)\n"
-       "Routing Table\n"
-       )
-
-DEFSH (VTYSH_BGPD, no_bgp_bestpath_compare_router_id_cmd_vtysh, 
-       "no bgp bestpath compare-routerid", 
-       "Negate a command or set its defaults\n"
-       "BGP specific commands\n"
-       "Change the default bestpath selection\n"
-       "Compare router-id for identical EBGP paths\n")
-
-DEFSH (VTYSH_BGPD, match_community_cmd_vtysh, 
-       "match community (<1-99>|<100-199>|WORD)", 
-       "Match values from routing table\n"
-       "Match BGP community list\n"
-       "Community-list number (standard)\n"
-       "Community-list number (expanded)\n"
-       "Community-list name\n")
-
-DEFSH (VTYSH_ZEBRA, no_bandwidth_if_cmd_vtysh, 
-       "no bandwidth", 
-       "Negate a command or set its defaults\n"
-       "Set bandwidth informational parameter\n")
-
-DEFSH (VTYSH_BGPD, no_set_originator_id_cmd_vtysh, 
-       "no set originator-id", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "BGP originator ID attribute\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_all_prefix_cmd_vtysh, 
-       "show ip bgp vpnv4 all A.B.C.D/M", 
+DEFSH (VTYSH_BGPD, show_ip_bgp_dampened_paths_cmd_vtysh, 
+       "show ip bgp dampened-paths", 
        "Show running system information\n"
        "IP information\n"
        "BGP information\n"
-       "Display VPNv4 NLRI specific information\n"
-       "Display information about all VPNv4 NLRIs\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n")
+       "Display paths suppressed due to dampening\n")
+
+DEFSH (VTYSH_BGPD, no_debug_bgp_filter_cmd_vtysh, 
+       "no debug bgp filters", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
+       "BGP information\n"
+       "BGP filters\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, clear_ip_prefix_list_cmd_vtysh, 
+       "clear ip prefix-list", 
+       "Reset functions\n"
+       "IP information\n"
+       "Build a prefix list\n")
+
+DEFSH (VTYSH_BGPD, no_aggregate_address_summary_as_set_cmd_vtysh, 
+       "no aggregate-address A.B.C.D/M summary-only as-set", 
+       "Negate a command or set its defaults\n"
+       "Configure BGP aggregate entries\n"
+       "Aggregate prefix\n"
+       "Filter more specific routes from updates\n"
+       "Generate AS set path information\n")
+
+DEFSH (VTYSH_RIPD, debug_rip_events_cmd_vtysh, 
+       "debug rip events", 
+       "Debugging functions (see also 'undebug')\n"
+       "RIP information\n"
+       "RIP events\n")
 
 DEFSH (VTYSH_OSPFD, no_ospf_distribute_list_out_cmd_vtysh, 
        "no distribute-list WORD out (kernel|connected|static|rip|bgp)", 
@@ -8674,51 +8327,409 @@
        "Routing Information Protocol (RIP)\n"
        "Border Gateway Protocol (BGP)\n")
 
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_extended_host_host_cmd_vtysh, 
-       "access-list (<100-199>|<2000-2699>) (deny|permit) ip host A.B.C.D host A.B.C.D", 
-       "Add an access list entry\n"
-       "IP extended access list\n"
-       "IP extended access list (expanded range)\n"
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, no_ipv6_prefix_list_prefix_cmd_vtysh, 
+       "no ipv6 prefix-list WORD (deny|permit) (X:X::X:X/M|any)", 
+       "Negate a command or set its defaults\n"
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
        "Specify packets to reject\n"
        "Specify packets to forward\n"
-       "Any Internet Protocol\n"
-       "A single source host\n"
-       "Source address\n"
-       "A single destination host\n"
-       "Destination address\n")
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
+       "Any prefix match.  Same as \"::0/0 le 128\"\n")
 
-DEFSH (VTYSH_OSPFD, no_ip_ospf_retransmit_interval_cmd_vtysh, 
-       "no ip ospf retransmit-interval", 
+DEFSH (VTYSH_BGPD, no_set_ecommunity_rt_cmd_vtysh, 
+       "no set extcommunity rt", 
        "Negate a command or set its defaults\n"
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Time between retransmitting lost link state advertisements\n")
+       "Set values in destination routing protocol\n"
+       "BGP extended community attribute\n"
+       "Route Target extened communityt\n")
 
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_cmd_vtysh, 
-       "clear ip bgp (A.B.C.D|X:X::X:X)", 
+DEFSH (VTYSH_BGPD, no_neighbor_attr_unchanged10_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged med as-path next-hop", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "BGP attribute is propagated unchanged to this neighbor\n"
+       "Med attribute\n"
+       "As-path attribute\n"
+       "Nexthop attribute\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_ipv4_soft_cmd_vtysh, 
+       "clear ip bgp peer-group WORD ipv4 (unicast|multicast) soft", 
        "Reset functions\n"
        "IP information\n"
        "BGP information\n"
-       "BGP neighbor IP address to clear\n"
-       "BGP IPv6 neighbor to clear\n")
+       "Clear all members of peer-group\n"
+       "BGP peer-group name\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Soft reconfig\n")
 
-DEFSH (VTYSH_BGPD, no_bgp_distance2_cmd_vtysh, 
-       "no distance bgp", 
+DEFSH (VTYSH_BGPD, undebug_bgp_normal_cmd_vtysh, 
+       "undebug bgp", 
+       "Disable debugging functions (see also 'debug')\n"
+       "BGP information\n")
+
+DEFSH (VTYSH_OSPFD, no_ip_ospf_retransmit_interval_addr_cmd_vtysh, 
+       "no ip ospf retransmit-interval A.B.C.D", 
        "Negate a command or set its defaults\n"
-       "Define an administrative distance\n"
-       "BGP distance\n")
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Time between retransmitting lost link state advertisements\n"
+       "Address of interface")
 
-DEFSH (VTYSH_RIPD, accept_lifetime_month_day_day_month_cmd_vtysh, 
-       "accept-lifetime HH:MM:SS MONTH <1-31> <1993-2035> HH:MM:SS <1-31> MONTH <1993-2035>", 
-       "Set accept lifetime of the key\n"
-       "Time to start\n"
-       "Month of the year to start\n"
-       "Day of th month to start\n"
-       "Year to start\n"
-       "Time to expire\n"
-       "Day of th month to expire\n"
-       "Month of the year to expire\n"
-       "Year to expire\n")
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_bgp_routemap_cmd_vtysh, 
+       "no redistribute bgp route-map WORD", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Border Gateway Protocol (BGP)\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_all_in_prefix_filter_cmd_vtysh, 
+       "clear ip bgp * in prefix-filter", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all peers\n"
+       "Soft reconfig inbound update\n"
+       "Push out prefix-list ORF and do inbound soft reconfig\n")
+
+DEFSH (VTYSH_BGPD, neighbor_transparent_as_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X) " "transparent-as", 
+       "Specify neighbor router\n"
+       "Neighbor address\nIPv6 address\n"
+       "Do not append my AS number even peer is EBGP peer\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_OSPF6D|VTYSH_BGPD, no_ipv6_access_list_remark_cmd_vtysh, 
+       "no ipv6 access-list WORD remark", 
+       "Negate a command or set its defaults\n"
+       "IPv6 information\n"
+       "Add an access list entry\n"
+       "IPv6 zebra access-list\n"
+       "Access list entry comment\n")
+
+DEFSH (VTYSH_BGPD, no_match_community_exact_cmd_vtysh, 
+       "no match community (<1-99>|<100-199>|WORD) exact-match", 
+       "Negate a command or set its defaults\n"
+       "Match values from routing table\n"
+       "Match BGP community list\n"
+       "Community-list number (standard)\n"
+       "Community-list number (expanded)\n"
+       "Community-list name\n"
+       "Do exact matching of communities\n")
+
+DEFSH (VTYSH_OSPFD, no_area_vlink_param3_cmd_vtysh, 
+       "no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
+       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) "
+       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) "
+       "(hello-interval|retransmit-interval|transmit-delay|dead-interval)", 
+       "Negate a command or set its defaults\n"
+       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
+       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n"
+       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n"
+       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_as_ipv4_in_prefix_filter_cmd_vtysh, 
+       "clear ip bgp <1-65535> ipv4 (unicast|multicast) in prefix-filter", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear peers with the AS number\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Soft reconfig inbound update\n"
+       "Push out prefix-list ORF and do inbound soft reconfig\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_external_out_cmd_vtysh, 
+       "clear bgp ipv6 external WORD out", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear all external peers\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_OSPFD, ip_ospf_authentication_cmd_vtysh, 
+       "ip ospf authentication", 
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Enable authentication on this interface\n")
+
+DEFSH (VTYSH_OSPFD, ospf_distance_ospf_inter_intra_cmd_vtysh, 
+       "distance ospf inter-area <1-255> intra-area <1-255>", 
+       "Define an administrative distance\n"
+       "OSPF Administrative distance\n"
+       "Inter-area routes\n"
+       "Distance for inter-area routes\n"
+       "Intra-area routes\n"
+       "Distance for intra-area routes\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_as_vpnv4_out_cmd_vtysh, 
+       "clear ip bgp <1-65535> vpnv4 unicast out", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear peers with the AS number\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_summary_cmd_vtysh, 
+       "show bgp summary", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Summary of BGP neighbor status\n")
+
+DEFSH (VTYSH_BGPD, bgp_deterministic_med_cmd_vtysh, 
+       "bgp deterministic-med", 
+       "BGP specific commands\n"
+       "Pick the best-MED path among paths advertised from the neighboring AS\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, ipv6_prefix_list_le_ge_cmd_vtysh, 
+       "ipv6 prefix-list WORD (deny|permit) X:X::X:X/M le <0-128> ge <0-128>", 
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
+       "Maximum prefix length to be matched\n"
+       "Maximum prefix length\n"
+       "Minimum prefix length to be matched\n"
+       "Minimum prefix length\n")
+
+DEFSH (VTYSH_BGPD, undebug_bgp_filter_cmd_vtysh, 
+       "undebug bgp filters", 
+       "Disable debugging functions (see also 'debug')\n"
+       "BGP information\n"
+       "BGP filters\n")
+
+DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_cmd_vtysh, 
+       "show ipv6 ospf6", 
+       "Show running system information\n"
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_external_in_prefix_filter_cmd_vtysh, 
+       "clear bgp ipv6 external in prefix-filter", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear all external peers\n"
+       "Soft reconfig inbound update\n"
+       "Push out prefix-list ORF and do inbound soft reconfig\n")
+
+DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_area_spf_node_cmd_vtysh, 
+       "show ipv6 ospf6 area A.B.C.D spf node", 
+       "Show running system information\n"
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Area information\n"
+       "Area ID (as an IPv4 notation)\n"
+       "Shortest Path First caculation\n"
+       "vertex infomation\n"
+       )
+
+DEFSH (VTYSH_BGPD, bgp_redistribute_ipv4_cmd_vtysh, 
+       "redistribute (connected|kernel|ospf|rip|static)", 
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Kernel routes\n"
+       "Open Shurtest Path First (OSPF)\n"
+       "Routing Information Protocol (RIP)\n"
+       "Static routes\n")
+
+DEFSH (VTYSH_BGPD, neighbor_filter_list_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "filter-list WORD (in|out)", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Establish BGP filters\n"
+       "AS path access-list name\n"
+       "Filter incoming routes\n"
+       "Filter outgoing routes\n")
+
+DEFSH (VTYSH_BGPD, neighbor_attr_unchanged10_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged med as-path next-hop", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "BGP attribute is propagated unchanged to this neighbor\n"
+       "Med attribute\n"
+       "As-path attribute\n"
+       "Nexthop attribute\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, clear_ip_prefix_list_name_cmd_vtysh, 
+       "clear ip prefix-list WORD", 
+       "Reset functions\n"
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n")
+
+DEFSH (VTYSH_ZEBRA, show_ip_route_cmd_vtysh, 
+       "show ip route", 
+       "Show running system information\n"
+       "IP information\n"
+       "IP routing table\n")
+
+DEFSH (VTYSH_RIPNGD, ripng_redistribute_connected_cmd_vtysh, 
+       "redistribute connected", 
+       "Redistribute information from another routing protocol\n"
+       "Connected\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_mbgp_community_cmd_vtysh, 
+       "show ipv6 mbgp community (AA:NN|local-AS|no-advertise|no-export)", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "MBGP information\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n")
+
+DEFSH (VTYSH_BGPD, ip_community_list_cmd_vtysh, 
+       "ip community-list WORD (deny|permit) .AA:NN", 
+       "IP information\n"
+       "Add a community list entry\n"
+       "Community list name\n"
+       "Specify community to reject\n"
+       "Specify community to accept\n"
+       "Community number in aa:nn format or internet|local-AS|no-advertise|no-export\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_peer_in_prefix_filter_cmd_vtysh, 
+       "clear bgp (A.B.C.D|X:X::X:X) in prefix-filter", 
+       "Reset functions\n"
+       "BGP information\n"
+       "BGP neighbor address to clear\n"
+       "BGP IPv6 neighbor to clear\n"
+       "Soft reconfig inbound update\n"
+       "Push out the existing ORF prefix-list\n")
+
+DEFSH (VTYSH_OSPFD, ospf_distance_ospf_intra_external_cmd_vtysh, 
+       "distance ospf intra-area <1-255> external <1-255>", 
+       "Define an administrative distance\n"
+       "OSPF Administrative distance\n"
+       "Intra-area routes\n"
+       "Distance for intra-area routes\n"
+       "External routes\n"
+       "Distance for external routes\n")
+
+DEFSH (VTYSH_BGPD, ipv6_mbgp_neighbor_received_routes_cmd_vtysh, 
+       "show ipv6 mbgp neighbors (A.B.C.D|X:X::X:X) received-routes", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "MBGP information\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n"
+       "Display the received routes from neighbor\n")
+
+DEFSH (VTYSH_OSPFD, ospf_default_information_originate_always_metric_type_routemap_cmd_vtysh, 
+       "default-information originate always metric <0-16777214> metric-type (1|2) route-map WORD", 
+       "Control distribution of default information\n"
+       "Distribute a default route\n"
+       "Always advertise default route\n"
+       "OSPF default metric\n"
+       "OSPF metric\n"
+       "OSPF metric type for default routes\n"
+       "Set OSPF External Type 1 metrics\n"
+       "Set OSPF External Type 2 metrics\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_seq_cmd_vtysh, 
+       "no ip prefix-list WORD seq <1-4294967295> (deny|permit) (A.B.C.D/M|any)", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "sequence number of an entry\n"
+       "Sequence number\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Any prefix match.  Same as \"0.0.0.0/0 le 32\"\n")
+
+DEFSH (VTYSH_OSPF6D, interface_area_plist_passive_cmd_vtysh, 
+       "interface IFNAME area A.B.C.D prefix-list WORD passive", 
+       "Enable routing on an IPv6 interface\n"
+       "Interface name(e.g. ep0)\n"
+       "Set the OSPF6 area ID\n"
+       "OSPF6 area ID in IPv4 address notation\n"
+       "Advertise I/F Address only match entries of prefix-list\n"
+       "IPv6 prefix-list name\n"
+       "IPv6 prefix-list name\n"
+       "Suppress routing updates on an interface\n"
+      )
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, no_ipv6_prefix_list_seq_le_ge_cmd_vtysh, 
+       "no ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) X:X::X:X/M le <0-128> ge <0-128>", 
+       "Negate a command or set its defaults\n"
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "sequence number of an entry\n"
+       "Sequence number\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
+       "Maximum prefix length to be matched\n"
+       "Maximum prefix length\n"
+       "Minimum prefix length to be matched\n"
+       "Minimum prefix length\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_all_in_prefix_filter_cmd_vtysh, 
+       "clear bgp ipv6 * in prefix-filter", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear all peers\n"
+       "Soft reconfig inbound update\n"
+       "Push out prefix-list ORF and do inbound soft reconfig\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_all_neighbors_cmd_vtysh, 
+       "show ip bgp vpnv4 all neighbors", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display VPNv4 NLRI specific information\n"
+       "Display information about all VPNv4 NLRIs\n"
+       "Detailed information on TCP and BGP neighbor connections\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_ipv6_neighbors_cmd_vtysh, 
+       "show bgp ipv6 neighbors", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Detailed information on TCP and BGP neighbor connections\n")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_kernel_metric_routemap_cmd_vtysh, 
+       "no redistribute kernel metric <0-16> route-map WORD", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Kernel routes\n"
+       "Metric\n"
+       "Metric value\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_BGPD, old_no_ipv6_aggregate_address_summary_only_cmd_vtysh, 
+       "no ipv6 bgp aggregate-address X:X::X:X/M summary-only", 
+       "Negate a command or set its defaults\n"
+       "IPv6 information\n"
+       "BGP information\n"
+       "Configure BGP aggregate entries\n"
+       "Aggregate prefix\n"
+       "Filter more specific routes from updates\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_bgp_summary_cmd_vtysh, 
+       "show ipv6 bgp summary", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "BGP information\n"
+       "Summary of BGP neighbor status\n")
 
 DEFSH (VTYSH_BGPD, clear_ip_bgp_instance_all_in_prefix_filter_cmd_vtysh, 
        "clear ip bgp view WORD * in prefix-filter", 
@@ -8731,52 +8742,42 @@
        "Soft reconfig inbound update\n"
        "Push out prefix-list ORF and do inbound soft reconfig\n")
 
-DEFSH (VTYSH_OSPFD, area_authentication_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) authentication", 
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Enable authentication\n")
-
-DEFSH (VTYSH_OSPFD, area_vlink_authtype_md5_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
-       "(authentication|) "
-       "(message-digest-key|) <1-255> md5 KEY", 
-       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
-       "Enable authentication on this virtual link\n" "dummy string \n"
-       "Message digest authentication password (key)\n" "dummy string \n" "Key ID\n" "Use MD5 algorithm\n" "The OSPF password (key)")
-
-DEFSH (VTYSH_OSPFD, debug_ospf_packet_all_cmd_vtysh, 
-       "debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all)", 
-       "Debugging functions (see also 'undebug')\n"
-       "OSPF information\n"
-       "OSPF packets\n"
-       "OSPF Hello\n"
-       "OSPF Database Description\n"
-       "OSPF Link State Request\n"
-       "OSPF Link State Update\n"
-       "OSPF Link State Acknowledgment\n"
-       "OSPF all packets\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_mbgp_community_all_cmd_vtysh, 
-       "show ipv6 mbgp community", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "MBGP information\n"
-       "Display routes matching the communities\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_connected_cmd_vtysh, 
-       "no redistribute connected", 
+DEFSH (VTYSH_BGPD, no_ip_extcommunity_list_standard_cmd_vtysh, 
+       "no ip extcommunity-list <1-99> (deny|permit) .AA:NN", 
        "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Connected\n")
+       "IP information\n"
+       "Add a extended community list entry\n"
+       "Extended Community list number (standard)\n"
+       "Specify community to reject\n"
+       "Specify community to accept\n"
+       "Extended community attribute in 'rt aa:nn_or_IPaddr:nn' OR 'soo aa:nn_or_IPaddr:nn' format\n")
 
-DEFSH (VTYSH_BGPD, aggregate_address_as_set_summary_cmd_vtysh, 
-       "aggregate-address A.B.C.D/M as-set summary-only", 
-       "Configure BGP aggregate entries\n"
-       "Aggregate prefix\n"
-       "Generate AS set path information\n"
-       "Filter more specific routes from updates\n")
+DEFSH (VTYSH_OSPFD, ospf_distribute_list_out_cmd_vtysh, 
+       "distribute-list WORD out (kernel|connected|static|rip|bgp)", 
+       "Filter networks in routing updates\n"
+       "Access-list name\n"
+       "Filter outgoing routing updates\n"
+       "Kernel routes\n"
+       "Connected\n"
+       "Static routes\n"
+       "Routing Information Protocol (RIP)\n"
+       "Border Gateway Protocol (BGP)\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_OSPF6D|VTYSH_BGPD, no_ipv6_access_list_remark_arg_cmd_vtysh, 
+       "no ipv6 access-list WORD remark .LINE", 
+       "Negate a command or set its defaults\n"
+       "IPv6 information\n"
+       "Add an access list entry\n"
+       "IPv6 zebra access-list\n"
+       "Access list entry comment\n"
+       "Comment up to 100 characters\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_flap_statistics_cmd_vtysh, 
+       "show ip bgp flap-statistics", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display flap statistics of routes\n")
 
 DEFSH (VTYSH_ZEBRA, show_ip_route_supernets_cmd_vtysh, 
        "show ip route supernets-only", 
@@ -8785,164 +8786,43 @@
        "IP routing table\n"
        "Show supernet entries only\n")
 
-DEFSH (VTYSH_BGPD, bgp_redistribute_ipv6_cmd_vtysh, 
-       "redistribute (connected|kernel|ospf6|ripng|static)", 
-       "Redistribute information from another routing protocol\n"
-       "Connected\n"
-       "Kernel routes\n"
-       "Open Shurtest Path First (OSPFv3)\n"
-       "Routing Information Protocol (RIPng)\n"
-       "Static routes\n")
-
-DEFSH (VTYSH_RIPD, no_ip_rip_authentication_string2_cmd_vtysh, 
-       "no ip rip authentication string LINE", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Routing Information Protocol\n"
-       "Authentication control\n"
-       "Authentication string\n"
-       "Authentication string\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_ge_le_cmd_vtysh, 
-       "no ip prefix-list WORD (deny|permit) A.B.C.D/M ge <0-32> le <0-32>", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Minimum prefix length to be matched\n"
-       "Minimum prefix length\n"
-       "Maximum prefix length to be matched\n"
-       "Maximum prefix length\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_all_ipv4_soft_cmd_vtysh, 
-       "clear ip bgp * ipv4 (unicast|multicast) soft", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all peers\n"
-       "Address family\n"
-       "Address Family Modifier\n"
-       "Address Family Modifier\n"
-       "Soft reconfig\n")
-
-DEFSH (VTYSH_BGPD, no_router_bgp_view_cmd_vtysh, 
-       "no router bgp <1-65535> view WORD", 
-       "Negate a command or set its defaults\n"
-       "Enable a routing process\n"
-       "BGP information\n"
-       "AS number\n"
-       "BGP view\n"
-       "view name\n")
-
-DEFSH (VTYSH_BGPD, old_ipv6_bgp_network_cmd_vtysh, 
-       "ipv6 bgp network X:X::X:X/M", 
+DEFSH (VTYSH_BGPD, set_ipv6_nexthop_local_cmd_vtysh, 
+       "set ipv6 next-hop local X:X::X:X", 
+       "Set values in destination routing protocol\n"
        "IPv6 information\n"
+       "IPv6 next-hop address\n"
+       "IPv6 local address\n"
+       "IPv6 address of next hop\n")
+
+DEFSH (VTYSH_OSPFD, no_ospf_rfc1583_flag_cmd_vtysh, 
+       "no ospf rfc1583compatibility", 
+       "Negate a command or set its defaults\n"
+       "OSPF specific commands\n"
+       "Disable the RFC1583Compatibility flag\n")
+
+DEFSH (VTYSH_BGPD, neighbor_route_map_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "route-map WORD (in|out)", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Apply route map to neighbor\n"
+       "Name of route map\n"
+       "Apply map to incoming routes\n"
+       "Apply map to outbound routes\n")
+
+DEFSH (VTYSH_BGPD, no_debug_bgp_keepalive_cmd_vtysh, 
+       "no debug bgp keepalives", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
        "BGP information\n"
-       "Specify a network to announce via BGP\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n")
+       "BGP keepalives\n")
 
-DEFSH (VTYSH_OSPFD, ospf_default_information_originate_type_metric_routemap_cmd_vtysh, 
-       "default-information originate metric-type (1|2) metric <0-16777214> route-map WORD", 
-       "Control distribution of default information\n"
-       "Distribute a default route\n"
-       "OSPF metric type for default routes\n"
-       "Set OSPF External Type 1 metrics\n"
-       "Set OSPF External Type 2 metrics\n"
-       "OSPF default metric\n"
-       "OSPF metric\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_mbgp_prefix_cmd_vtysh, 
-       "show ipv6 mbgp X:X::X:X/M", 
+DEFSH (VTYSH_OSPF6D, show_debug_ospf6_damp_cmd_vtysh, 
+       "show debugging ospf6 damp", 
        "Show running system information\n"
-       "IP information\n"
-       "MBGP information\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n")
-
-DEFSH (VTYSH_BGPD, no_ip_community_list_name_expanded_cmd_vtysh, 
-       "no ip community-list expanded WORD (deny|permit) .LINE", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Add a community list entry\n"
-       "Specify an expanded community-list\n"
-       "Community list name\n"
-       "Specify community to reject\n"
-       "Specify community to accept\n"
-       "An ordered list as a regular-expression\n")
-
-DEFSH (VTYSH_OSPFD, no_area_shortcut_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) shortcut (enable|disable)", 
-       "Negate a command or set its defaults\n"
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Deconfigure the area's shortcutting mode\n"
-       "Deconfigure enabled shortcutting through the area\n"
-       "Deconfigure disabled shortcutting through the area\n")
-
-DEFSH (VTYSH_OSPFD, ospf_dead_interval_cmd_vtysh, 
-       "ospf dead-interval <1-65535>", 
-       "OSPF interface commands\n"
-       "Interval after which a neighbor is declared dead\n"
-       "Seconds\n")
-
-DEFSH (VTYSH_ZEBRA, multicast_cmd_vtysh, 
-       "multicast", 
-       "Set multicast flag to interface\n")
-
-DEFSH (VTYSH_OSPF6D, no_ipv6_ospf6_advertise_prefix_list_cmd_vtysh, 
-       "no ipv6 ospf6 advertise prefix-list", 
-       "Negate a command or set its defaults\n"
-       "IPv6 Information\n"
+       "Debugging functions (see also 'undebug')\n"
        "Open Shortest Path First (OSPF) for IPv6\n"
-       "Advertising options\n"
-       "Filter prefix using prefix-list\n"
-       )
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_ipv4_soft_in_cmd_vtysh, 
-       "clear ip bgp peer-group WORD ipv4 (unicast|multicast) soft in", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all members of peer-group\n"
-       "BGP peer-group name\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, ipv6_prefix_list_sequence_number_cmd_vtysh, 
-       "ipv6 prefix-list sequence-number", 
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Include/exclude sequence numbers in NVGEN\n")
-
-DEFSH (VTYSH_BGPD, bgp_default_ipv4_unicast_cmd_vtysh, 
-       "bgp default ipv4-unicast", 
-       "BGP specific commands\n"
-       "Configure BGP defaults\n"
-       "Activate ipv4-unicast for a peer by default\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ipv6_prefix_list_seq_ge_le_cmd_vtysh, 
-       "no ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) X:X::X:X/M ge <0-128> le <0-128>", 
-       "Negate a command or set its defaults\n"
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "sequence number of an entry\n"
-       "Sequence number\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
-       "Minimum prefix length to be matched\n"
-       "Minimum prefix length\n"
-       "Maximum prefix length to be matched\n"
-       "Maximum prefix length\n")
+       "Flap-dampening information\n"
+      )
 
 DEFSH (VTYSH_BGPD, show_bgp_ipv6_community3_exact_cmd_vtysh, 
        "show bgp ipv6 community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
@@ -8964,838 +8844,32 @@
        "Do not export to next AS (well-known community)\n"
        "Exact match of the communities")
 
-DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_rd_prefix_cmd_vtysh, 
-       "show ip bgp vpnv4 rd ASN:nn_or_IP-address:nn A.B.C.D/M", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display VPNv4 NLRI specific information\n"
-       "Display information for a route distinguisher\n"
-       "VPN Route Distinguisher\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_vpnv4_soft_out_cmd_vtysh, 
-       "clear ip bgp A.B.C.D vpnv4 unicast soft out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP neighbor address to clear\n"
-       "Address family\n"
-       "Address Family Modifier\n"
-       "Soft reconfig\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_ZEBRA, ip_irdp_minadvertinterval_cmd_vtysh, 
-       "ip irdp minadvertinterval <3-1800>", 
-       "IP information\n"
-       "ICMP Router discovery on this interface\n"
-       "Set minimum time between advertisement\n"
-       "Minimum advertisement interval in seconds\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_attr_unchanged6_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged as-path med next-hop", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "BGP attribute is propagated unchanged to this neighbor\n"
-       "As-path attribute\n"
-       "Med attribute\n"
-       "Nexthop attribute\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_match_ip_next_hop_cmd_vtysh, 
-       "no match ip next-hop", 
-       "Negate a command or set its defaults\n"
-       "Match values from routing table\n"
-       "IP information\n"
-       "Match next-hop address of route\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_external_in_cmd_vtysh, 
-       "clear ip bgp external in", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all external peers\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ip_prefix_list_cmd_vtysh, 
-       "show ip prefix-list", 
-       "Show running system information\n"
-       "IP information\n"
-       "Build a prefix list\n")
-
-DEFSH (VTYSH_OSPFD, ospf_default_information_originate_cmd_vtysh, 
-       "default-information originate", 
-       "Control distribution of default information\n"
-       "Distribute a default route\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, ipv6_access_list_exact_cmd_vtysh, 
-       "ipv6 access-list WORD (deny|permit) X:X::X:X/M exact-match", 
-       "IPv6 information\n"
-       "Add an access list entry\n"
-       "IPv6 zebra access-list\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Prefix to match. e.g. 3ffe:506::/32\n"
-       "Exact match of the prefixes\n")
-
-DEFSH (VTYSH_BGPD, no_dump_bgp_updates_cmd_vtysh, 
-       "no dump bgp updates [PATH] [INTERVAL]", 
-       "Negate a command or set its defaults\n"
-       "Dump packet\n"
-       "BGP packet dump\n"
-       "Dump BGP updates only\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_local_as_val2_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "local-as <1-65535> no-prepend", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Specify a local-as number\n"
-       "AS number used as local AS\n"
-       "Do not prepend local-as to updates from ebgp peers\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_match_ip_next_hop_prefix_list_cmd_vtysh, 
-       "no match ip next-hop prefix-list", 
-       "Negate a command or set its defaults\n"
-       "Match values from routing table\n"
-       "IP information\n"
-       "Match next-hop address of route\n"
-       "Match entries of prefix-lists\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_neighbor_advertised_route_cmd_vtysh, 
-       "show ip bgp ipv4 (unicast|multicast) neighbors (A.B.C.D|X:X::X:X) advertised-routes", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Neighbor to display information about\n"
-       "Display the routes advertised to a BGP neighbor\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_extended_any_mask_cmd_vtysh, 
-       "access-list (<100-199>|<2000-2699>) (deny|permit) ip any A.B.C.D A.B.C.D", 
-       "Add an access list entry\n"
-       "IP extended access list\n"
-       "IP extended access list (expanded range)\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Any Internet Protocol\n"
-       "Any source host\n"
-       "Destination address\n"
-       "Destination Wildcard bits\n")
-
-DEFSH (VTYSH_OSPFD, ospf_redistribute_source_routemap_cmd_vtysh, 
-       "redistribute (kernel|connected|static|rip|bgp) route-map WORD", 
-       "Redistribute information from another routing protocol\n"
-       "Kernel routes\n"
-       "Connected\n"
-       "Static routes\n"
-       "Routing Information Protocol (RIP)\n"
-       "Border Gateway Protocol (BGP)\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_BGPD, no_set_local_pref_val_cmd_vtysh, 
-       "no set local-preference <0-4294967295>", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "BGP local preference path attribute\n"
-       "Preference value\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_standard_cmd_vtysh, 
-       "access-list (<1-99>|<1300-1999>) (deny|permit) A.B.C.D A.B.C.D", 
-       "Add an access list entry\n"
-       "IP standard access list\n"
-       "IP standard access list (expanded range)\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Address to match\n"
-       "Wildcard bits\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_redistribute_ipv6_rmap_metric_cmd_vtysh, 
-       "no redistribute (connected|kernel|ospf6|ripng|static) route-map WORD metric <0-4294967295>", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Connected\n"
-       "Kernel routes\n"
-       "Open Shurtest Path First (OSPFv3)\n"
-       "Routing Information Protocol (RIPng)\n"
-       "Static routes\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n"
-       "Metric for redistributed routes\n"
-       "Default metric\n")
-
-DEFSH (VTYSH_ZEBRA, no_ipv6_route_ifname_pref_cmd_vtysh, 
-       "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE <1-255>", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Establish static routes\n"
-       "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
-       "IPv6 gateway address\n"
-       "IPv6 gateway interface name\n"
-       "Distance value for this prefix\n")
-
-DEFSH (VTYSH_RIPNGD, ripng_network_cmd_vtysh, 
-       "network IF_OR_ADDR", 
-       "RIPng enable on specified interface or network.\n"
-       "Interface or address")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_extended_mask_host_cmd_vtysh, 
-       "access-list (<100-199>|<2000-2699>) (deny|permit) ip A.B.C.D A.B.C.D host A.B.C.D", 
-       "Add an access list entry\n"
-       "IP extended access list\n"
-       "IP extended access list (expanded range)\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Any Internet Protocol\n"
-       "Source address\n"
-       "Source wildcard bits\n"
-       "A single destination host\n"
-       "Destination address\n")
-
-DEFSH (VTYSH_BGPD, neighbor_attr_unchanged1_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged (as-path|next-hop|med)", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "BGP attribute is propagated unchanged to this neighbor\n"
-       "As-path attribute\n"
-       "Nexthop attribute\n"
-       "Med attribute\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, show_ip_access_list_name_cmd_vtysh, 
-       "show ip access-list (<1-99>|<100-199>|<1300-1999>|<2000-2699>|WORD)", 
-       "Show running system information\n"
-       "IP information\n"
-       "List IP access lists\n"
-       "IP standard access list\n"
-       "IP extended access list\n"
-       "IP standard access list (expanded range)\n"
-       "IP extended access list (expanded range)\n"
-       "IP zebra access-list\n")
-
-DEFSH (VTYSH_BGPD, vpnv4_network_cmd_vtysh, 
-       "network A.B.C.D/M rd ASN:nn_or_IP-address:nn tag WORD", 
-       "Specify a network to announce via BGP\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Specify Route Distinguisher\n"
-       "VPN Route Distinguisher\n"
-       "BGP tag\n"
-       "tag value\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, ipv6_prefix_list_ge_le_cmd_vtysh, 
-       "ipv6 prefix-list WORD (deny|permit) X:X::X:X/M ge <0-128> le <0-128>", 
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
-       "Minimum prefix length to be matched\n"
-       "Minimum prefix length\n"
-       "Maximum prefix length to be matched\n"
-       "Maximum prefix length\n")
-
-DEFSH (VTYSH_RIPD, no_ip_rip_receive_version_cmd_vtysh, 
-       "no ip rip receive version", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Routing Information Protocol\n"
-       "Advertisement reception\n"
-       "Version control\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_extended_host_host_cmd_vtysh, 
-       "no access-list (<100-199>|<2000-2699>) (deny|permit) ip host A.B.C.D host A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "Add an access list entry\n"
-       "IP extended access list\n"
-       "IP extended access list (expanded range)\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Any Internet Protocol\n"
-       "A single source host\n"
-       "Source address\n"
-       "A single destination host\n"
-       "Destination address\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_group_soft_cmd_vtysh, 
-       "clear bgp ipv6 peer-group WORD soft", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "Clear all members of peer-group\n"
-       "BGP peer-group name\n"
-       "Soft reconfig\n")
-
-DEFSH (VTYSH_BGPD, dump_bgp_all_interval_cmd_vtysh, 
-       "dump bgp all PATH INTERVAL", 
-       "Dump packet\n"
-       "BGP packet dump\n"
-       "Dump all BGP packets\n"
-       "Output filename\n"
-       "Interval of output\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_peer_group_in_cmd_vtysh, 
-       "clear bgp peer-group WORD in", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear all members of peer-group\n"
-       "BGP peer-group name\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_OSPFD, ip_ospf_authentication_args_addr_cmd_vtysh, 
-       "ip ospf authentication (null|message-digest) A.B.C.D", 
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Enable authentication on this interface\n"
-       "Use null authentication\n"
-       "Use message-digest authentication\n"
-       "Address of interface")
-
-DEFSH (VTYSH_OSPFD, ospf_redistribute_source_type_metric_routemap_cmd_vtysh, 
-       "redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) metric <0-16777214> route-map WORD", 
-       "Redistribute information from another routing protocol\n"
-       "Kernel routes\n"
-       "Connected\n"
-       "Static routes\n"
-       "Routing Information Protocol (RIP)\n"
-       "Border Gateway Protocol (BGP)\n"
-       "OSPF exterior metric type for redistributed routes\n"
-       "Set OSPF External Type 1 metrics\n"
-       "Set OSPF External Type 2 metrics\n"
-       "Metric for redistributed routes\n"
-       "OSPF default metric\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_BGPD, bgp_enforce_first_as_cmd_vtysh, 
-       "bgp enforce-first-as", 
-       "BGP information\n"
-       "Enforce the first AS for EBGP routes\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_ipv4_in_prefix_filter_cmd_vtysh, 
-       "clear ip bgp peer-group WORD ipv4 (unicast|multicast) in prefix-filter", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all members of peer-group\n"
-       "BGP peer-group name\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig inbound update\n"
-       "Push out prefix-list ORF and do inbound soft reconfig\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_route_map_cmd_vtysh, 
-       "show ip bgp ipv4 (unicast|multicast) route-map WORD", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Display routes matching the route-map\n"
-       "A route-map to match on\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_ipv6_access_list_remark_arg_cmd_vtysh, 
-       "no ipv6 access-list WORD remark .LINE", 
-       "Negate a command or set its defaults\n"
-       "IPv6 information\n"
-       "Add an access list entry\n"
-       "IPv6 zebra access-list\n"
-       "Access list entry comment\n"
-       "Comment up to 100 characters\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_community_list_exact_cmd_vtysh, 
-       "show bgp community-list WORD exact-match", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Display routes matching the community-list\n"
-       "community-list name\n"
-       "Exact match of the communities\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_peer_group_cmd_vtysh, 
-       "no neighbor WORD peer-group", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor tag\n"
-       "Configure peer-group\n")
-
-DEFSH (VTYSH_ZEBRA, ip_irdp_address_preference_cmd_vtysh, 
-       "ip irdp address A.B.C.D <0-2147483647>", 
-       "IP information\n"
-       "ICMP Router discovery on this interface\n"
-       "Specify IRDP address and preference to proxy-advertise\n"
-       "Set IRDP address for proxy-advertise\n"
-       "Preference level\n")
-
-DEFSH (VTYSH_RIPD, rip_timers_cmd_vtysh, 
-       "timers basic <5-2147483647> <5-2147483647> <5-2147483647>", 
-       "Adjust routing timers\n"
-       "Basic routing protocol update timers\n"
-       "Routing table update timer value in second. Default is 30.\n"
-       "Routing information timeout timer. Default is 180.\n"
-       "Garbage collection timer. Default is 120.\n")
-
-DEFSH (VTYSH_OSPFD, ospf_default_information_originate_always_metric_routemap_cmd_vtysh, 
-       "default-information originate always metric <0-16777214> route-map WORD", 
-       "Control distribution of default information\n"
-       "Distribute a default route\n"
-       "Always advertise default route\n"
-       "OSPF default metric\n"
-       "OSPF metric\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_timers_arg_cmd_vtysh, 
-       "no timers bgp <0-65535> <0-65535>", 
-       "Negate a command or set its defaults\n"
-       "Adjust routing timers\n"
-       "BGP timers\n"
-       "Keepalive interval\n"
-       "Holdtime\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_network_import_check_cmd_vtysh, 
-       "no bgp network import-check", 
-       "Negate a command or set its defaults\n"
-       "BGP specific commands\n"
-       "BGP network command\n"
-       "Check BGP network route exists in IGP\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_as_soft_in_cmd_vtysh, 
-       "clear bgp ipv6 <1-65535> soft in", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "Clear peers with the AS number\n"
-       "Soft reconfig\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_OSPFD, show_ip_ospf_database_type_id_cmd_vtysh, 
-       "show ip ospf database (" "asbr-summary|external|network|router|summary" "|nssa-external" "|opaque-link|opaque-area|opaque-as" ") A.B.C.D", 
-       "Show running system information\n"
-       "IP information\n"
-       "OSPF information\n"
-       "Database summary\n"
-       "ASBR summary link states\n" "External link states\n" "Network link states\n" "Router link states\n" "Network summary link states\n" "NSSA external link state\n" "Link local Opaque-LSA\n" "Link area Opaque-LSA\n" "Link AS Opaque-LSA\n"
-       "Link State ID (as an IP address)\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_rmap_onmatch_goto_cmd_vtysh, 
-       "no on-match goto", 
-       "Negate a command or set its defaults\n"
-       "Exit policy on matches\n"
-       "Next clause\n")
-
-DEFSH (VTYSH_OSPFD, passive_interface_addr_cmd_vtysh, 
-       "passive-interface IFNAME A.B.C.D", 
-       "Suppress routing updates on an interface\n"
-       "Interface's name\n")
-
-DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_area_spf_tree_cmd_vtysh, 
-       "show ipv6 ospf6 area A.B.C.D spf tree", 
+DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_topology_router_lsid_cmd_vtysh, 
+       "show ipv6 ospf6 topology (A.B.C.D|<0-4294967295>) (A.B.C.D|<0-4294967295>)", 
        "Show running system information\n"
        "IPv6 Information\n"
        "Open Shortest Path First (OSPF) for IPv6\n"
-       "Area information\n"
-       "Area ID (as an IPv4 notation)\n"
-       "Shortest Path First caculation\n"
-       "Displays spf tree\n")
-
-DEFSH (VTYSH_OSPFD, no_area_vlink_param3_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
-       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) "
-       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) "
-       "(hello-interval|retransmit-interval|transmit-delay|dead-interval)", 
-       "Negate a command or set its defaults\n"
-       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
-       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n"
-       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n"
-       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_bgp_prefix_cmd_vtysh, 
-       "show ipv6 bgp X:X::X:X/M", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_redistribute_ipv6_rmap_cmd_vtysh, 
-       "no redistribute (connected|kernel|ospf6|ripng|static) route-map WORD", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Connected\n"
-       "Kernel routes\n"
-       "Open Shurtest Path First (OSPFv3)\n"
-       "Routing Information Protocol (RIPng)\n"
-       "Static routes\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_community4_cmd_vtysh, 
-       "show ip bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n")
-
-DEFSH (VTYSH_RIPD, debug_rip_packet_detail_cmd_vtysh, 
-       "debug rip packet (recv|send) detail", 
-       "Debugging functions (see also 'undebug')\n"
-       "RIP information\n"
-       "RIP packet\n"
-       "RIP receive packet\n"
-       "RIP send packet\n"
-       "Detailed information display\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_aggregate_address_cmd_vtysh, 
-       "no aggregate-address X:X::X:X/M", 
-       "Negate a command or set its defaults\n"
-       "Delete aggregate RIPng route announcement\n"
-       "Aggregate network")
-
-DEFSH (VTYSH_OSPF6D, ipv6_ospf6_priority_cmd_vtysh, 
-       "ipv6 ospf6 priority PRIORITY", 
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Router priority\n"
-       "<0-255> Priority\n"
+       "Inter Area topology information\n"
+       "Specify Router-ID\n"
+       "Specify Router-ID\n"
+       "Specify Link State ID\n"
+       "Specify Link State ID\n"
        )
 
-DEFSH (VTYSH_OSPFD, area_vlink_param1_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
-       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535>", 
-       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
-       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_seq_le_ge_cmd_vtysh, 
-       "no ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M le <0-32> ge <0-32>", 
+DEFSH (VTYSH_BGPD, no_bgp_network_mask_natural_route_map_cmd_vtysh, 
+       "no network A.B.C.D route-map WORD", 
        "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "sequence number of an entry\n"
-       "Sequence number\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Maximum prefix length to be matched\n"
-       "Maximum prefix length\n"
-       "Minimum prefix length to be matched\n"
-       "Minimum prefix length\n")
+       "Specify a network to announce via BGP\n"
+       "Network number\n"
+       "Route-map to modify the attributes\n"
+       "Name of the route map\n")
 
-DEFSH (VTYSH_RIPD, no_ip_rip_send_version_cmd_vtysh, 
-       "no ip rip send version", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Routing Information Protocol\n"
-       "Advertisement transmission\n"
-       "Version control\n")
-
-DEFSH (VTYSH_BGPD, ip_as_path_cmd_vtysh, 
-       "ip as-path access-list WORD (deny|permit) .LINE", 
-       "IP information\n"
-       "BGP autonomous system path filter\n"
-       "Specify an access list name\n"
-       "Regular expression access list name\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "A regular-expression to match the BGP AS paths\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_bestpath_med_cmd_vtysh, 
-       "no bgp bestpath med (confed|missing-as-worst)", 
-       "Negate a command or set its defaults\n"
-       "BGP specific commands\n"
-       "Change the default bestpath selection\n"
-       "MED attribute\n"
-       "Compare MED among confederation paths\n"
-       "Treat missing MED as the least preferred one\n")
-
-DEFSH (VTYSH_BGPD, neighbor_timers_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "timers <0-65535> <0-65535>", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "BGP per neighbor timers\n"
-       "Keepalive interval\n"
-       "Holdtime\n")
-
-DEFSH (VTYSH_ZEBRA, show_ipv6_forwarding_cmd_vtysh, 
-       "show ipv6 forwarding", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "Forwarding status\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ip_prefix_list_summary_name_cmd_vtysh, 
-       "show ip prefix-list summary WORD", 
-       "Show running system information\n"
-       "IP information\n"
-       "Build a prefix list\n"
-       "Summary of prefix lists\n"
-       "Name of a prefix list\n")
-
-DEFSH (VTYSH_BGPD, debug_bgp_normal_cmd_vtysh, 
-       "debug bgp", 
-       "Debugging functions (see also 'undebug')\n"
-       "BGP information\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_all_in_prefix_filter_cmd_vtysh, 
-       "clear bgp ipv6 * in prefix-filter", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "Clear all peers\n"
-       "Soft reconfig inbound update\n"
-       "Push out prefix-list ORF and do inbound soft reconfig\n")
-
-DEFSH (VTYSH_OSPFD, no_area_vlink_authkey_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
-       "(authentication-key|)", 
-       "Negate a command or set its defaults\n"
-       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
-       "Authentication password (key)\n" "The OSPF password (key)")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_external_out_cmd_vtysh, 
-       "clear bgp ipv6 external WORD out", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "Clear all external peers\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_RIPNGD, no_debug_ripng_packet_cmd_vtysh, 
-       "no debug ripng packet", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "RIPng configuration\n"
-       "Debug option set for ripng packet\n")
-
-DEFSH (VTYSH_ZEBRA, no_multicast_cmd_vtysh, 
-       "no multicast", 
-       "Negate a command or set its defaults\n"
-       "Unset multicast flag to interface\n")
-
-DEFSH (VTYSH_RIPD, ip_rip_send_version_cmd_vtysh, 
-       "ip rip send version (1|2)", 
-       "IP information\n"
-       "Routing Information Protocol\n"
-       "Advertisement transmission\n"
-       "Version control\n"
-       "RIP version 1\n"
-       "RIP version 2\n")
-
-DEFSH (VTYSH_RIPD, no_rip_distance_source_cmd_vtysh, 
-       "no distance <1-255> A.B.C.D/M", 
-       "Negate a command or set its defaults\n"
-       "Administrative distance\n"
-       "Distance value\n"
-       "IP source prefix\n")
-
-DEFSH (VTYSH_OSPFD, no_ip_ospf_retransmit_interval_addr_cmd_vtysh, 
-       "no ip ospf retransmit-interval A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Time between retransmitting lost link state advertisements\n"
-       "Address of interface")
-
-DEFSH (VTYSH_BGPD, no_neighbor_weight_val_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "weight <0-65535>", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Set default weight for routes from this neighbor\n"
-       "default weight\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_paths_cmd_vtysh, 
-       "show ip bgp ipv4 (unicast|multicast) paths", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Path information\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_distance_source_cmd_vtysh, 
-       "no distance <1-255> A.B.C.D/M", 
-       "Negate a command or set its defaults\n"
-       "Define an administrative distance\n"
-       "Administrative distance\n"
-       "IP source prefix\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_mbgp_community2_cmd_vtysh, 
-       "show ipv6 mbgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
+DEFSH (VTYSH_BGPD, show_ipv6_mbgp_community_all_cmd_vtysh, 
+       "show ipv6 mbgp community", 
        "Show running system information\n"
        "IPv6 information\n"
        "MBGP information\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n")
-
-DEFSH (VTYSH_BGPD, neighbor_set_peer_group_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X) " "peer-group WORD", 
-       "Specify neighbor router\n"
-       "Neighbor address\nIPv6 address\n"
-       "Member of the peer-group\n"
-       "peer-group name\n")
-
-DEFSH (VTYSH_OSPFD, ospf_default_information_originate_metric_type_cmd_vtysh, 
-       "default-information originate metric <0-16777214> metric-type (1|2)", 
-       "Control distribution of default information\n"
-       "Distribute a default route\n"
-       "OSPF default metric\n"
-       "OSPF metric\n"
-       "OSPF metric type for default routes\n"
-       "Set OSPF External Type 1 metrics\n"
-       "Set OSPF External Type 2 metrics\n")
-
-DEFSH (VTYSH_OSPF6D, ipv6_ospf6_cost_cmd_vtysh, 
-       "ipv6 ospf6 cost COST", 
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Interface cost\n"
-       "<1-65535> Cost\n"
-       )
-
-DEFSH (VTYSH_OSPFD, ospf_default_information_originate_type_metric_cmd_vtysh, 
-       "default-information originate metric-type (1|2) metric <0-16777214>", 
-       "Control distribution of default information\n"
-       "Distribute a default route\n"
-       "OSPF metric type for default routes\n"
-       "Set OSPF External Type 1 metrics\n"
-       "Set OSPF External Type 2 metrics\n"
-       "OSPF default metric\n"
-       "OSPF metric\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_ipv4_out_cmd_vtysh, 
-       "clear ip bgp A.B.C.D ipv4 (unicast|multicast) out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP neighbor address to clear\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_area_route_prefix_cmd_vtysh, 
-       "show ipv6 ospf6 area A.B.C.D route (X::X|detail)", 
-       "Show running system information\n"
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Area information\n"
-       "Area ID (as an IPv4 notation)\n"
-       "Routing Table\n"
-       "Specify IPv6 address\n"
-       "Detailed information\n"
-       )
-
-DEFSH (VTYSH_OSPFD, no_area_stub_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) stub", 
-       "Negate a command or set its defaults\n"
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Configure OSPF area as stub\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_regexp_cmd_vtysh, 
-       "show ip bgp ipv4 (unicast|multicast) regexp .LINE", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Display routes matching the AS path regular expression\n"
-       "A regular-expression to match the BGP AS paths\n")
-
-DEFSH (VTYSH_BGPD, match_ecommunity_cmd_vtysh, 
-       "match extcommunity (<1-99>|<100-199>|WORD)", 
-       "Match values from routing table\n"
-       "Match BGP/VPN extended community list\n"
-       "Extended community-list number (standard)\n"
-       "Extended community-list number (expanded)\n"
-       "Extended community-list name\n")
-
-DEFSH (VTYSH_BGPD, no_ip_community_list_name_standard_cmd_vtysh, 
-       "no ip community-list standard WORD (deny|permit) .AA:NN", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Add a community list entry\n"
-       "Specify a standard community-list\n"
-       "Community list name\n"
-       "Specify community to reject\n"
-       "Specify community to accept\n"
-       "Community number in aa:nn format or internet|local-AS|no-advertise|no-export\n")
-
-DEFSH (VTYSH_ZEBRA, no_ipv6_route_ifname_cmd_vtysh, 
-       "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Establish static routes\n"
-       "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
-       "IPv6 gateway address\n"
-       "IPv6 gateway interface name\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_instance_summary_cmd_vtysh, 
-       "show ip bgp view WORD summary", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP view\n"
-       "View name\n"
-       "Summary of BGP neighbor status\n")
-
-DEFSH (VTYSH_OSPFD, ospf_authentication_key_cmd_vtysh, 
-       "ospf authentication-key AUTH_KEY", 
-       "OSPF interface commands\n"
-       "Authentication password (key)\n"
-       "The OSPF password (key)")
-
-DEFSH (VTYSH_OSPFD, no_debug_ospf_packet_all_cmd_vtysh, 
-       "no debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all)", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "OSPF information\n"
-       "OSPF packets\n"
-       "OSPF Hello\n"
-       "OSPF Database Description\n"
-       "OSPF Link State Request\n"
-       "OSPF Link State Update\n"
-       "OSPF Link State Acknowledgment\n"
-       "OSPF all packets\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_as_soft_out_cmd_vtysh, 
-       "clear bgp <1-65535> soft out", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear peers with the AS number\n"
-       "Soft reconfig\n"
-       "Soft reconfig outbound update\n")
+       "Display routes matching the communities\n")
 
 DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_route_map_cmd_vtysh, 
        "no route-map WORD (deny|permit) <1-65535>", 
@@ -9806,580 +8880,39 @@
        "Route map permits set operations\n"
        "Sequence to insert to/delete from existing route-map entry\n")
 
-DEFSH (VTYSH_BGPD, neighbor_send_community_type_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "send-community (both|extended|standard)", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Send Community attribute to this neighbor\n"
-       "Send Standard and Extended Community attributes\n"
-       "Send Extended Community attributes\n"
-       "Send Standard Community attributes\n")
-
-DEFSH (VTYSH_ZEBRA, no_ip_address_cmd_vtysh, 
-       "no ip address A.B.C.D/M", 
-       "Negate a command or set its defaults\n"
+DEFSH (VTYSH_ZEBRA, ip_address_cmd_vtysh, 
+       "ip address A.B.C.D/M", 
        "Interface Internet Protocol config commands\n"
        "Set the IP address of an interface\n"
-       "IP Address (e.g. 10.0.0.1/8)")
+       "IP address (e.g. 10.0.0.1/8)\n")
 
-DEFSH (VTYSH_BGPD, neighbor_interface_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X) " "interface WORD", 
-       "Specify neighbor router\n"
-       "Neighbor address\nIPv6 address\n"
-       "Interface\n"
-       "Interface name\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_neighbor_flap_cmd_vtysh, 
-       "show ip bgp neighbors (A.B.C.D|X:X::X:X) flap-statistics", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Neighbor to display information about\n"
-       "Display flap statistics of the routes learned from neighbor\n")
-
-DEFSH (VTYSH_OSPFD, ip_ospf_network_cmd_vtysh, 
-       "ip ospf network (broadcast|non-broadcast|point-to-multipoint|point-to-point)", 
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Network type\n"
-       "Specify OSPF broadcast multi-access network\n"
-       "Specify OSPF NBMA network\n"
-       "Specify OSPF point-to-multipoint network\n"
-       "Specify OSPF point-to-point network\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_send_community_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "send-community", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Send Community attribute to this neighbor\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_strict_capability_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X) " "strict-capability-match", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nIPv6 address\n"
-       "Strict capability negotiation match\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_update_source_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "update-source", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Source of routing updates\n"
-       "Interface name\n")
-
-DEFSH (VTYSH_OSPFD, no_area_filter_list_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) filter-list prefix WORD (in|out)", 
-       "Negate a command or set its defaults\n"
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Filter networks between OSPF areas\n"
-       "Filter prefixes between OSPF areas\n"
-       "Name of an IP prefix-list\n"
-       "Filter networks sent to this area\n"
-       "Filter networks sent from this area\n")
-
-DEFSH (VTYSH_ZEBRA, show_debugging_zebra_cmd_vtysh, 
-       "show debugging zebra", 
-       "Show running system information\n"
-       "Zebra configuration\n"
-       "Debugging information\n")
-
-DEFSH (VTYSH_BGPD, ip_community_list_name_standard_cmd_vtysh, 
-       "ip community-list standard WORD (deny|permit) .AA:NN", 
-       "IP information\n"
-       "Add a community list entry\n"
-       "Add a standard community-list entry\n"
-       "Community list name\n"
-       "Specify community to reject\n"
-       "Specify community to accept\n"
-       "Community number in aa:nn format or internet|local-AS|no-advertise|no-export\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_as_out_cmd_vtysh, 
-       "clear bgp <1-65535> out", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear peers with the AS number\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_OSPF6D, show_zebra_cmd_vtysh, 
-       "show zebra", 
-       "Show running system information\n"
-       "Zebra information\n")
-
-DEFSH (VTYSH_BGPD, no_aggregate_address_as_set_summary_cmd_vtysh, 
-       "no aggregate-address A.B.C.D/M as-set summary-only", 
-       "Negate a command or set its defaults\n"
-       "Configure BGP aggregate entries\n"
-       "Aggregate prefix\n"
-       "Generate AS set path information\n"
-       "Filter more specific routes from updates\n")
-
-DEFSH (VTYSH_OSPFD, area_nssa_translate_no_summary_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) nssa (translate-candidate|translate-never|translate-always) (no-summary|)", 
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Configure OSPF area as nssa\n"
-       "Configure NSSA-ABR for translate election (default)\n"
-       "Configure NSSA-ABR to never translate\n"
-       "Configure NSSA-ABR to always translate\n"
-       "Do not inject inter-area routes into nssa\n"
-       "dummy\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_mbgp_summary_cmd_vtysh, 
-       "show ipv6 mbgp summary", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "MBGP information\n"
-       "Summary of BGP neighbor status\n")
-
-DEFSH (VTYSH_OSPF6D, no_ospf6_redistribute_cmd_vtysh, 
-       "no redistribute (static|kernel|connected|ripng|bgp)", 
-       "Negate a command or set its defaults\n"
-       "Redistribute\n"
-       "Static route\n"
-       "Kernel route\n"
-       "Connected route\n"
-       "RIPng route\n"
-       "BGP route\n"
-      )
-
-DEFSH (VTYSH_RIPD, show_ip_protocols_rip_cmd_vtysh, 
-       "show ip protocols", 
-       "Show running system information\n"
-       "IP information\n"
-       "IP routing protocol process parameters and statistics\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_ipv6_community_list_exact_cmd_vtysh, 
-       "show bgp ipv6 community-list WORD exact-match", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Display routes matching the community-list\n"
-       "community-list name\n"
-       "Exact match of the communities\n")
-
-DEFSH (VTYSH_RIPNGD, ripng_redistribute_ospf6_cmd_vtysh, 
-       "redistribute ospf6", 
-       "Redistribute information from another routing protocol\n"
-       "IPv6 Open Shortest Path First (OSPFv3)\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_external_in_cmd_vtysh, 
-       "clear bgp ipv6 external WORD in", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "Clear all external peers\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_OSPFD, area_vlink_authtype_args_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
-       "(authentication|) (message-digest|null)", 
-       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
-       "Enable authentication on this virtual link\n" "dummy string \n" "Use null authentication\n" "Use message-digest authentication\n")
-
-DEFSH (VTYSH_OSPFD, no_area_range_substitute_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) range A.B.C.D/M substitute A.B.C.D/M", 
-       "Negate a command or set its defaults\n"
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Summarize routes matching address/mask (border routers only)\n"
-       "Area range prefix\n"
-       "Announce area range as another prefix\n"
-       "Network prefix to be announced instead of range\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_neighbor_routes_cmd_vtysh, 
-       "show ip bgp ipv4 (unicast|multicast) neighbors (A.B.C.D|X:X::X:X) routes", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Neighbor to display information about\n"
-       "Display routes learned from neighbor\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_cmd_vtysh, 
-       "clear bgp ipv6 (A.B.C.D|X:X::X:X)", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "BGP neighbor address to clear\n"
-       "BGP IPv6 neighbor to clear\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_mbgp_community4_cmd_vtysh, 
-       "show ipv6 mbgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "MBGP information\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n")
-
-DEFSH (VTYSH_BGPD, ip_community_list_cmd_vtysh, 
-       "ip community-list WORD (deny|permit) .AA:NN", 
-       "IP information\n"
-       "Add a community list entry\n"
-       "Community list name\n"
-       "Specify community to reject\n"
-       "Specify community to accept\n"
-       "Community number in aa:nn format or internet|local-AS|no-advertise|no-export\n")
-
-DEFSH (VTYSH_OSPFD, no_router_id_cmd_vtysh, 
-       "no router-id", 
-       "Negate a command or set its defaults\n"
-       "router-id for the OSPF process\n")
-
-DEFSH (VTYSH_RIPD, no_match_ip_address_val_cmd_vtysh, 
-       "no match ip address WORD", 
-       "Negate a command or set its defaults\n"
-       "Match values from routing table\n"
-       "IP information\n"
-       "Match address of route\n"
-       "IP access-list name\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_attr_unchanged10_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged med as-path next-hop", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "BGP attribute is propagated unchanged to this neighbor\n"
-       "Med attribute\n"
-       "As-path attribute\n"
-       "Nexthop attribute\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_as_vpnv4_out_cmd_vtysh, 
-       "clear ip bgp <1-65535> vpnv4 unicast out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear peers with the AS number\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_as_in_prefix_filter_cmd_vtysh, 
-       "clear bgp ipv6 <1-65535> in prefix-filter", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "Clear peers with the AS number\n"
-       "Soft reconfig inbound update\n"
-       "Push out prefix-list ORF and do inbound soft reconfig\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_external_soft_cmd_vtysh, 
-       "clear bgp ipv6 external soft", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "Clear all external peers\n"
-       "Soft reconfig\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ipv6_prefix_list_seq_cmd_vtysh, 
-       "no ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) (X:X::X:X/M|any)", 
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, no_ipv6_prefix_list_ge_cmd_vtysh, 
+       "no ipv6 prefix-list WORD (deny|permit) X:X::X:X/M ge <0-128>", 
        "Negate a command or set its defaults\n"
        "IPv6 information\n"
        "Build a prefix list\n"
        "Name of a prefix list\n"
-       "sequence number of an entry\n"
-       "Sequence number\n"
        "Specify packets to reject\n"
        "Specify packets to forward\n"
        "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
-       "Any prefix match.  Same as \"::0/0 le 128\"\n")
+       "Minimum prefix length to be matched\n"
+       "Minimum prefix length\n")
 
-DEFSH (VTYSH_BGPD, no_debug_bgp_update_cmd_vtysh, 
-       "no debug bgp updates", 
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, no_ipv6_prefix_list_sequence_number_cmd_vtysh, 
+       "no ipv6 prefix-list sequence-number", 
        "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "BGP information\n"
-       "BGP updates\n")
-
-DEFSH (VTYSH_OSPFD|VTYSH_OSPF6D, ospf6_routemap_set_metric_type_cmd_vtysh, 
-       "set metric-type (type-1|type-2)", 
-       "Set value\n"
-       "Type of metric\n"
-       "OSPF6 external type 1 metric\n"
-       "OSPF6 external type 2 metric\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_confederation_identifier_arg_cmd_vtysh, 
-       "no bgp confederation identifier <1-65535>", 
-       "Negate a command or set its defaults\n"
-       "BGP specific commands\n"
-       "AS confederation parameters\n"
-       "AS number\n"
-       "Set routing domain confederation AS\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_as_cmd_vtysh, 
-       "clear ip bgp <1-65535>", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear peers with the AS number\n")
-
-DEFSH (VTYSH_BGPD, neighbor_attr_unchanged_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "BGP attribute is propagated unchanged to this neighbor\n")
-
-DEFSH (VTYSH_OSPF6D, ipv6_ospf6_deadinterval_cmd_vtysh, 
-       "ipv6 ospf6 dead-interval ROUTER_DEAD_INTERVAL", 
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Interval after which a neighbor is declared dead\n"
-       "<1-65535> Seconds\n"
-       )
-
-DEFSH (VTYSH_OSPFD, area_vlink_param4_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
-       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535> "
-       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535> "
-       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535> "
-       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535>", 
-       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
-       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n"
-       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n"
-       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n"
-       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n")
-
-DEFSH (VTYSH_RIPD, send_lifetime_infinite_day_month_cmd_vtysh, 
-       "send-lifetime HH:MM:SS <1-31> MONTH <1993-2035> infinite", 
-       "Set send lifetime of the key\n"
-       "Time to start\n"
-       "Day of th month to start\n"
-       "Month of the year to start\n"
-       "Year to start\n"
-       "Never expires")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_extended_cmd_vtysh, 
-       "access-list (<100-199>|<2000-2699>) (deny|permit) ip A.B.C.D A.B.C.D A.B.C.D A.B.C.D", 
-       "Add an access list entry\n"
-       "IP extended access list\n"
-       "IP extended access list (expanded range)\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Any Internet Protocol\n"
-       "Source address\n"
-       "Source wildcard bits\n"
-       "Destination address\n"
-       "Destination Wildcard bits\n")
-
-DEFSH (VTYSH_OSPFD, ip_ospf_retransmit_interval_addr_cmd_vtysh, 
-       "ip ospf retransmit-interval <3-65535> A.B.C.D", 
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Time between retransmitting lost link state advertisements\n"
-       "Seconds\n"
-       "Address of interface")
-
-DEFSH (VTYSH_OSPFD, show_ip_ospf_neighbor_detail_cmd_vtysh, 
-       "show ip ospf neighbor detail", 
-       "Show running system information\n"
-       "IP information\n"
-       "OSPF information\n"
-       "Neighbor list\n"
-       "detail of all neighbors\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_as_in_prefix_filter_cmd_vtysh, 
-       "clear ip bgp <1-65535> in prefix-filter", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear peers with the AS number\n"
-       "Soft reconfig inbound update\n"
-       "Push out prefix-list ORF and do inbound soft reconfig\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ip_prefix_list_name_seq_cmd_vtysh, 
-       "show ip prefix-list WORD seq <1-4294967295>", 
-       "Show running system information\n"
-       "IP information\n"
+       "IPv6 information\n"
        "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "sequence number of an entry\n"
-       "Sequence number\n")
+       "Include/exclude sequence numbers in NVGEN\n")
 
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_description_arg_cmd_vtysh, 
-       "no ip prefix-list WORD description .LINE", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "Prefix-list specific description\n"
-       "Up to 80 characters describing this prefix-list\n")
-
-DEFSH (VTYSH_BGPD, bgp_redistribute_ipv6_rmap_cmd_vtysh, 
-       "redistribute (connected|kernel|ospf6|ripng|static) route-map WORD", 
-       "Redistribute information from another routing protocol\n"
-       "Connected\n"
-       "Kernel routes\n"
-       "Open Shurtest Path First (OSPFv3)\n"
-       "Routing Information Protocol (RIPng)\n"
-       "Static routes\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_RIPD, rip_redistribute_rip_cmd_vtysh, 
-       "redistribute rip", 
-       "Redistribute information from another routing protocol\n"
-       "Routing Information Protocol (RIP)\n")
-
-DEFSH (VTYSH_BGPD, show_ip_extcommunity_list_cmd_vtysh, 
-       "show ip extcommunity-list", 
-       "Show running system information\n"
-       "IP information\n"
-       "List extended-community list\n")
-
-DEFSH (VTYSH_OSPFD, no_ospf_cost_cmd_vtysh, 
-       "no ospf cost", 
-       "Negate a command or set its defaults\n"
-       "OSPF interface commands\n"
-       "Interface cost\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_filter_list_cmd_vtysh, 
-       "show ip bgp ipv4 (unicast|multicast) filter-list WORD", 
+DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_cmd_vtysh, 
+       "show ip bgp ipv4 (unicast|multicast)", 
        "Show running system information\n"
        "IP information\n"
        "BGP information\n"
        "Address family\n"
        "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Display routes conforming to the filter-list\n"
-       "Regular expression access list name\n")
-
-DEFSH (VTYSH_BGPD, ipv6_bgp_neighbor_advertised_route_cmd_vtysh, 
-       "show ipv6 bgp neighbors (A.B.C.D|X:X::X:X) advertised-routes", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "BGP information\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Neighbor to display information about\n"
-       "Display the routes advertised to a BGP neighbor\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_external_soft_in_cmd_vtysh, 
-       "clear bgp ipv6 external soft in", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "Clear all external peers\n"
-       "Soft reconfig\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_OSPFD, debug_ospf_nssa_cmd_vtysh, 
-       "debug ospf nssa", 
-       "Debugging functions (see also 'undebug')\n"
-       "OSPF information\n"
-       "OSPF nssa information\n")
-
-DEFSH (VTYSH_OSPFD, area_vlink_md5_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
-       "(message-digest-key|) <1-255> md5 KEY", 
-       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
-       "Message digest authentication password (key)\n" "dummy string \n" "Key ID\n" "Use MD5 algorithm\n" "The OSPF password (key)")
-
-DEFSH (VTYSH_BGPD, neighbor_passive_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "passive", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Don't send open messages to this neighbor\n")
-
-DEFSH (VTYSH_BGPD, neighbor_timers_connect_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X) " "timers connect <0-65535>", 
-       "Specify neighbor router\n"
-       "Neighbor address\nIPv6 address\n"
-       "BGP per neighbor timers\n"
-       "BGP connect timer\n"
-       "Connect timer\n")
-
-DEFSH (VTYSH_RIPD, no_ip_rip_authentication_key_chain_cmd_vtysh, 
-       "no ip rip authentication key-chain", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Routing Information Protocol\n"
-       "Authentication control\n"
-       "Authentication key-chain\n")
-
-DEFSH (VTYSH_OSPFD, debug_ospf_event_cmd_vtysh, 
-       "debug ospf event", 
-       "Debugging functions (see also 'undebug')\n"
-       "OSPF information\n"
-       "OSPF event information\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_soft_out_cmd_vtysh, 
-       "clear ip bgp peer-group WORD soft out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all members of peer-group\n"
-       "BGP peer-group name\n"
-       "Soft reconfig\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_bgp_community_all_cmd_vtysh, 
-       "show ipv6 bgp community", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "BGP information\n"
-       "Display routes matching the communities\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_external_ipv4_soft_out_cmd_vtysh, 
-       "clear ip bgp external ipv4 (unicast|multicast) soft out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all external peers\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_BGPD, old_ipv6_aggregate_address_cmd_vtysh, 
-       "ipv6 bgp aggregate-address X:X::X:X/M", 
-       "IPv6 information\n"
-       "BGP information\n"
-       "Configure BGP aggregate entries\n"
-       "Aggregate prefix\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_soft_cmd_vtysh, 
-       "clear ip bgp peer-group WORD soft", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all members of peer-group\n"
-       "BGP peer-group name\n"
-       "Soft reconfig\n")
-
-DEFSH (VTYSH_OSPFD, no_ip_ospf_hello_interval_addr_cmd_vtysh, 
-       "no ip ospf hello-interval A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Time between HELLO packets\n"
-       "Address of interface")
+       "Address Family modifier\n")
 
 DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_extended_any_host_cmd_vtysh, 
        "access-list (<100-199>|<2000-2699>) (deny|permit) ip any host A.B.C.D", 
@@ -10393,136 +8926,132 @@
        "A single destination host\n"
        "Destination address\n")
 
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_ipv4_soft_cmd_vtysh, 
-       "clear ip bgp A.B.C.D ipv4 (unicast|multicast) soft", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP neighbor address to clear\n"
-       "Address family\n"
-       "Address Family Modifier\n"
-       "Address Family Modifier\n"
-       "Soft reconfig\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_description_cmd_vtysh, 
-       "no ip prefix-list WORD description", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "Prefix-list specific description\n")
-
-DEFSH (VTYSH_BGPD, old_no_ipv6_bgp_network_cmd_vtysh, 
-       "no ipv6 bgp network X:X::X:X/M", 
-       "Negate a command or set its defaults\n"
-       "IPv6 information\n"
-       "BGP information\n"
-       "Specify a network to announce via BGP\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_kernel_metric_cmd_vtysh, 
-       "no redistribute kernel metric", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Kernel routes\n"
-       "Metric\n")
-
-DEFSH (VTYSH_OSPFD, no_network_area_cmd_vtysh, 
-       "no network A.B.C.D/M area (A.B.C.D|<0-4294967295>)", 
-       "Negate a command or set its defaults\n"
-       "Enable routing on an IP network\n"
-       "OSPF network prefix\n"
-       "Set the OSPF area ID\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n")
-
-DEFSH (VTYSH_OSPFD, area_range_advertise_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) range A.B.C.D/M advertise", 
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "OSPF area range for route advertise (default)\n"
-       "Area range prefix\n"
-       "Advertise this range (default)\n")
-
-DEFSH (VTYSH_OSPFD, area_range_substitute_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) range A.B.C.D/M substitute A.B.C.D/M", 
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Summarize routes matching address/mask (border routers only)\n"
-       "Area range prefix\n"
-       "Announce area range as another prefix\n"
-       "Network prefix to be announced instead of range\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_external_cmd_vtysh, 
-       "clear bgp ipv6 external", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "Clear all external peers\n")
-
-DEFSH (VTYSH_RIPD, no_rip_version_cmd_vtysh, 
-       "no version", 
-       "Negate a command or set its defaults\n"
-       "Set routing protocol version\n")
-
-DEFSH (VTYSH_BGPD, match_ipv6_next_hop_cmd_vtysh, 
-       "match ipv6 next-hop X:X::X:X", 
-       "Match values from routing table\n"
-       "IPv6 information\n"
-       "Match IPv6 next-hop address of route\n"
-       "IPv6 address of next hop\n")
-
-DEFSH (VTYSH_BGPD, bgp_confederation_peers_cmd_vtysh, 
-       "bgp confederation peers .<1-65535>", 
-       "BGP specific commands\n"
-       "AS confederation parameters\n"
-       "Peer ASs in BGP confederation\n"
-       "AS number\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_bgp_community3_exact_cmd_vtysh, 
-       "show ipv6 bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
+DEFSH (VTYSH_BGPD, ipv6_mbgp_neighbor_routes_cmd_vtysh, 
+       "show ipv6 mbgp neighbors (A.B.C.D|X:X::X:X) routes", 
        "Show running system information\n"
        "IPv6 information\n"
-       "BGP information\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "Exact match of the communities")
+       "MBGP information\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n"
+       "Display routes learned from neighbor\n")
 
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, clear_ipv6_prefix_list_cmd_vtysh, 
-       "clear ipv6 prefix-list", 
-       "Reset functions\n"
-       "IPv6 information\n"
-       "Build a prefix list\n")
+DEFSH (VTYSH_OSPFD, area_vlink_param4_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
+       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535> "
+       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535> "
+       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535> "
+       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535>", 
+       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
+       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n"
+       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n"
+       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n"
+       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n")
 
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, clear_ip_prefix_list_name_prefix_cmd_vtysh, 
-       "clear ip prefix-list WORD A.B.C.D/M", 
-       "Reset functions\n"
+DEFSH (VTYSH_BGPD, no_ip_extcommunity_list_expanded_cmd_vtysh, 
+       "no ip extcommunity-list <100-199> (deny|permit) .LINE", 
+       "Negate a command or set its defaults\n"
        "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n")
+       "Add a extended community list entry\n"
+       "Extended Community list number (expanded)\n"
+       "Specify community to reject\n"
+       "Specify community to accept\n"
+       "An ordered list as a regular-expression\n")
 
-DEFSH (VTYSH_BGPD, show_ip_bgp_neighbors_peer_cmd_vtysh, 
-       "show ip bgp neighbors (A.B.C.D|X:X::X:X)", 
+DEFSH (VTYSH_RIPD, no_ip_rip_authentication_key_chain_cmd_vtysh, 
+       "no ip rip authentication key-chain", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Routing Information Protocol\n"
+       "Authentication control\n"
+       "Authentication key-chain\n")
+
+DEFSH (VTYSH_OSPFD, no_ospf_default_information_originate_cmd_vtysh, 
+       "no default-information originate", 
+       "Negate a command or set its defaults\n"
+       "Control distribution of default information\n"
+       "Distribute a default route\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_bestpath_med_cmd_vtysh, 
+       "no bgp bestpath med (confed|missing-as-worst)", 
+       "Negate a command or set its defaults\n"
+       "BGP specific commands\n"
+       "Change the default bestpath selection\n"
+       "MED attribute\n"
+       "Compare MED among confederation paths\n"
+       "Treat missing MED as the least preferred one\n")
+
+DEFSH (VTYSH_ZEBRA, ip_route_cmd_vtysh, 
+       "ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0)", 
+       "IP information\n"
+       "Establish static routes\n"
+       "IP destination prefix (e.g. 10.0.0.0/8)\n"
+       "IP gateway address\n"
+       "IP gateway interface name\n"
+       "Null interface\n")
+
+DEFSH (VTYSH_BGPD, neighbor_unsuppress_map_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "unsuppress-map WORD", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Route-map to selectively unsuppress suppressed routes\n"
+       "Name of route map\n")
+
+DEFSH (VTYSH_RIPNGD, ripng_route_cmd_vtysh, 
+       "route IPV6ADDR", 
+       "Static route setup\n"
+       "Set static RIPng route announcement\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_neighbor_damp_cmd_vtysh, 
+       "show ip bgp neighbors (A.B.C.D|X:X::X:X) dampened-routes", 
        "Show running system information\n"
        "IP information\n"
        "BGP information\n"
        "Detailed information on TCP and BGP neighbor connections\n"
        "Neighbor to display information about\n"
-       "Neighbor to display information about\n")
+       "Neighbor to display information about\n"
+       "Display the dampened routes received from neighbor\n")
+
+DEFSH (VTYSH_RIPD, send_lifetime_month_day_day_month_cmd_vtysh, 
+       "send-lifetime HH:MM:SS MONTH <1-31> <1993-2035> HH:MM:SS <1-31> MONTH <1993-2035>", 
+       "Set send lifetime of the key\n"
+       "Time to start\n"
+       "Month of the year to start\n"
+       "Day of th month to start\n"
+       "Year to start\n"
+       "Time to expire\n"
+       "Day of th month to expire\n"
+       "Month of the year to expire\n"
+       "Year to expire\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_route_map_all_cmd_vtysh, 
+       "no route-map WORD", 
+       "Negate a command or set its defaults\n"
+       "Create route-map or enter route-map command mode\n"
+       "Route map tag\n")
+
+DEFSH (VTYSH_RIPD, no_rip_network_cmd_vtysh, 
+       "no network (A.B.C.D/M|WORD)", 
+       "Negate a command or set its defaults\n"
+       "Enable routing on an IP network\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Interface name\n")
+
+DEFSH (VTYSH_BGPD, bgp_network_mask_route_map_cmd_vtysh, 
+       "network A.B.C.D mask A.B.C.D route-map WORD", 
+       "Specify a network to announce via BGP\n"
+       "Network number\n"
+       "Network mask\n"
+       "Network mask\n"
+       "Route-map to modify the attributes\n"
+       "Name of the route map\n")
+
+DEFSH (VTYSH_BGPD, set_vpnv4_nexthop_cmd_vtysh, 
+       "set vpnv4 next-hop A.B.C.D", 
+       "Set values in destination routing protocol\n"
+       "VPNv4 information\n"
+       "VPNv4 next-hop address\n"
+       "IP address of next hop\n")
 
 DEFSH (VTYSH_OSPFD, no_debug_ospf_packet_send_recv_detail_cmd_vtysh, 
        "no debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) (detail|)", 
@@ -10540,642 +9069,340 @@
        "Packet received\n"
        "Detail Information\n")
 
-DEFSH (VTYSH_OSPFD, no_area_vlink_authtype_md5_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
-       "(authentication|) "
-       "(message-digest-key|)", 
+DEFSH (VTYSH_RIPD, no_rip_default_metric_cmd_vtysh, 
+       "no default-metric", 
        "Negate a command or set its defaults\n"
-       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
-       "Enable authentication on this virtual link\n" "dummy string \n"
-       "Message digest authentication password (key)\n" "dummy string \n" "Key ID\n" "Use MD5 algorithm\n" "The OSPF password (key)")
-
-DEFSH (VTYSH_OSPFD, debug_ospf_ism_sub_cmd_vtysh, 
-       "debug ospf ism (status|events|timers)", 
-       "Debugging functions (see also 'undebug')\n"
-       "OSPF information\n"
-       "OSPF Interface State Machine\n"
-       "ISM Status Information\n"
-       "ISM Event Information\n"
-       "ISM TImer Information\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_ipv6_access_list_exact_cmd_vtysh, 
-       "no ipv6 access-list WORD (deny|permit) X:X::X:X/M exact-match", 
-       "Negate a command or set its defaults\n"
-       "IPv6 information\n"
-       "Add an access list entry\n"
-       "IPv6 zebra access-list\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Prefix to match. e.g. 3ffe:506::/32\n"
-       "Exact match of the prefixes\n")
-
-DEFSH (VTYSH_BGPD, bgp_distance_cmd_vtysh, 
-       "distance bgp <1-255> <1-255> <1-255>", 
-       "Define an administrative distance\n"
-       "BGP distance\n"
-       "Distance for routes external to the AS\n"
-       "Distance for routes internal to the AS\n"
-       "Distance for local routes\n")
-
-DEFSH (VTYSH_BGPD, neighbor_shutdown_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "shutdown", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Administratively shut down this neighbor\n")
-
-DEFSH (VTYSH_OSPFD, ip_ospf_retransmit_interval_cmd_vtysh, 
-       "ip ospf retransmit-interval <3-65535>", 
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Time between retransmitting lost link state advertisements\n"
-       "Seconds\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_kernel_routemap_cmd_vtysh, 
-       "no redistribute kernel route-map WORD", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Kernel routes\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_OSPFD, mpls_te_link_unrsv_bw_cmd_vtysh, 
-       "mpls-te link unrsv-bw <0-7> BANDWIDTH", 
-       "MPLS-TE specific commands\n"
-       "Configure MPLS-TE link parameters\n"
-       "Unreserved bandwidth at each priority level\n"
-       "Priority\n"
-       "Bytes/second (IEEE floating point format)\n")
-
-DEFSH (VTYSH_OSPFD, no_passive_interface_addr_cmd_vtysh, 
-       "no passive-interface IFNAME A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "Allow routing updates on an interface\n"
-       "Interface's name\n")
-
-DEFSH (VTYSH_BGPD, no_debug_bgp_normal_cmd_vtysh, 
-       "no debug bgp", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "BGP information\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_override_capability_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "override-capability", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Override capability negotiation result\n")
-
-DEFSH (VTYSH_OSPFD, ip_ospf_authentication_key_cmd_vtysh, 
-       "ip ospf authentication-key AUTH_KEY", 
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Authentication password (key)\n"
-       "The OSPF password (key)")
-
-DEFSH (VTYSH_OSPFD, no_ospf_dead_interval_cmd_vtysh, 
-       "no ospf dead-interval", 
-       "Negate a command or set its defaults\n"
-       "OSPF interface commands\n"
-       "Interval after which a neighbor is declared dead\n")
-
-DEFSH (VTYSH_BGPD, debug_bgp_filter_cmd_vtysh, 
-       "debug bgp filters", 
-       "Debugging functions (see also 'undebug')\n"
-       "BGP information\n"
-       "BGP filters\n")
-
-DEFSH (VTYSH_RIPD, rip_offset_list_cmd_vtysh, 
-       "offset-list WORD (in|out) <0-16>", 
-       "Modify RIP metric\n"
-       "Access-list name\n"
-       "For incoming updates\n"
-       "For outgoing updates\n"
-       "Metric value\n")
-
-DEFSH (VTYSH_BGPD, neighbor_enforce_multihop_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "enforce-multihop", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Enforce EBGP neighbors perform multihop\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_dont_capability_negotiate_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "dont-capability-negotiate", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Do not perform capability negotiation\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_community_exact_cmd_vtysh, 
-       "show ip bgp ipv4 (unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export) exact-match", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "Exact match of the communities")
-
-DEFSH (VTYSH_BGPD, no_bgp_router_id_val_cmd_vtysh, 
-       "no bgp router-id A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "BGP information\n"
-       "Override configured router identifier\n"
-       "Manually configured router identifier\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_soft_in_cmd_vtysh, 
-       "clear ip bgp A.B.C.D soft in", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP neighbor address to clear\n"
-       "Soft reconfig\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_flap_prefix_list_cmd_vtysh, 
-       "show ip bgp flap-statistics prefix-list WORD", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display flap statistics of routes\n"
-       "Display routes conforming to the prefix-list\n"
-       "IP prefix-list name\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_mbgp_community2_exact_cmd_vtysh, 
-       "show ipv6 mbgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "MBGP information\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "Exact match of the communities")
-
-DEFSH (VTYSH_ZEBRA, shutdown_if_cmd_vtysh, 
-       "shutdown", 
-       "Shutdown the selected interface\n")
-
-DEFSH (VTYSH_BGPD, no_set_atomic_aggregate_cmd_vtysh, 
-       "no set atomic-aggregate", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "BGP atomic aggregate attribute\n" )
-
-DEFSH (VTYSH_OSPFD, area_nssa_translate_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) nssa (translate-candidate|translate-never|translate-always)", 
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Configure OSPF area as nssa\n"
-       "Configure NSSA-ABR for translate election (default)\n"
-       "Configure NSSA-ABR to never translate\n"
-       "Configure NSSA-ABR to always translate\n")
-
-DEFSH (VTYSH_RIPD, show_ip_rip_cmd_vtysh, 
-       "show ip rip", 
-       "Show running system information\n"
-       "IP information\n"
-       "Show RIP routes\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_default_originate_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "default-originate", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Originate default route to this neighbor\n")
-
-DEFSH (VTYSH_OSPFD, ospf_default_information_originate_always_metric_type_routemap_cmd_vtysh, 
-       "default-information originate always metric <0-16777214> metric-type (1|2) route-map WORD", 
-       "Control distribution of default information\n"
-       "Distribute a default route\n"
-       "Always advertise default route\n"
-       "OSPF default metric\n"
-       "OSPF metric\n"
-       "OSPF metric type for default routes\n"
-       "Set OSPF External Type 1 metrics\n"
-       "Set OSPF External Type 2 metrics\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_dampening_address_cmd_vtysh, 
-       "clear ip bgp dampening A.B.C.D", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear route flap dampening information\n"
-       "Network to clear damping information\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_community_list_cmd_vtysh, 
-       "show bgp community-list WORD", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Display routes matching the community-list\n"
-       "community-list name\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_as_soft_cmd_vtysh, 
-       "clear bgp ipv6 <1-65535> soft", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "Clear peers with the AS number\n"
-       "Soft reconfig\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_set_ip_nexthop_cmd_vtysh, 
-       "no set ip next-hop", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "IP information\n"
-       "Next hop address\n")
-
-DEFSH (VTYSH_RIPD, rip_distance_source_cmd_vtysh, 
-       "distance <1-255> A.B.C.D/M", 
-       "Administrative distance\n"
-       "Distance value\n"
-       "IP source prefix\n")
-
-DEFSH (VTYSH_RIPNGD, ripng_redistribute_ospf6_metric_routemap_cmd_vtysh, 
-       "redistribute ospf6 metric <0-16> route-map WORD", 
-       "Redistribute information from another routing protocol\n"
-       "IPv6 Open Shortest Path First (OSPFv3)\n"
-       "Metric\n"
-       "Metric value\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_ZEBRA, ip_route_cmd_vtysh, 
-       "ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0)", 
-       "IP information\n"
-       "Establish static routes\n"
-       "IP destination prefix (e.g. 10.0.0.0/8)\n"
-       "IP gateway address\n"
-       "IP gateway interface name\n"
-       "Null interface\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_external_cmd_vtysh, 
-       "clear ip bgp external", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all external peers\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_extended_any_any_cmd_vtysh, 
-       "no access-list (<100-199>|<2000-2699>) (deny|permit) ip any any", 
-       "Negate a command or set its defaults\n"
-       "Add an access list entry\n"
-       "IP extended access list\n"
-       "IP extended access list (expanded range)\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Any Internet Protocol\n"
-       "Any source host\n"
-       "Any destination host\n")
-
-DEFSH (VTYSH_BGPD, bgp_redistribute_ipv6_rmap_metric_cmd_vtysh, 
-       "redistribute (connected|kernel|ospf6|ripng|static) route-map WORD metric <0-4294967295>", 
-       "Redistribute information from another routing protocol\n"
-       "Connected\n"
-       "Kernel routes\n"
-       "Open Shurtest Path First (OSPFv3)\n"
-       "Routing Information Protocol (RIPng)\n"
-       "Static routes\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n"
-       "Metric for redistributed routes\n"
+       "Set a metric of redistribute routes\n"
        "Default metric\n")
 
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, ipv6_prefix_list_seq_cmd_vtysh, 
-       "ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) (X:X::X:X/M|any)", 
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "sequence number of an entry\n"
-       "Sequence number\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
-       "Any prefix match.  Same as \"::0/0 le 128\"\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_route_map_cmd_vtysh, 
-       "show ip bgp route-map WORD", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display routes matching the route-map\n"
-       "A route-map to match on\n")
-
-DEFSH (VTYSH_OSPFD, no_debug_ospf_ism_sub_cmd_vtysh, 
-       "no debug ospf ism (status|events|timers)", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions\n"
-       "OSPF information\n"
-       "OSPF Interface State Machine\n"
-       "ISM Status Information\n"
-       "ISM Event Information\n"
-       "ISM Timer Information\n")
-
-DEFSH (VTYSH_RIPD, ip_rip_authentication_mode_cmd_vtysh, 
-       "ip rip authentication mode (md5|text)", 
-       "IP information\n"
-       "Routing Information Protocol\n"
-       "Authentication control\n"
-       "Authentication mode\n"
-       "Keyed message digest\n"
-       "Clear text authentication\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, ipv6_prefix_list_le_cmd_vtysh, 
-       "ipv6 prefix-list WORD (deny|permit) X:X::X:X/M le <0-128>", 
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
-       "Maximum prefix length to be matched\n"
-       "Maximum prefix length\n")
-
-DEFSH (VTYSH_OSPFD, debug_ospf_nsm_cmd_vtysh, 
-       "debug ospf nsm", 
-       "Debugging functions (see also 'undebug')\n"
-       "OSPF information\n"
-       "OSPF Neighbor State Machine\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_dampening_cmd_vtysh, 
-       "clear ip bgp dampening", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear route flap dampening information\n")
-
-DEFSH (VTYSH_OSPFD, area_range_not_advertise_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) range A.B.C.D/M not-advertise", 
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Summarize routes matching address/mask (border routers only)\n"
-       "Area range prefix\n"
-       "DoNotAdvertise this range\n")
-
-DEFSH (VTYSH_BGPD, no_match_community_val_cmd_vtysh, 
-       "no match community (<1-99>|<100-199>|WORD)", 
-       "Negate a command or set its defaults\n"
-       "Match values from routing table\n"
-       "Match BGP community list\n"
-       "Community-list number (standard)\n"
-       "Community-list number (expanded)\n"
-       "Community-list name\n")
-
-DEFSH (VTYSH_OSPFD|VTYSH_OSPFD, show_ip_ospf_neighbor_id_cmd_vtysh, 
-       "show ip ospf neighbor A.B.C.D", 
-       "Show running system information\n"
-       "IP information\n"
-       "OSPF information\n"
-       "Neighbor list\n"
-       "Neighbor ID\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_seq_ge_le_cmd_vtysh, 
-       "no ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M ge <0-32> le <0-32>", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "sequence number of an entry\n"
-       "Sequence number\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Minimum prefix length to be matched\n"
-       "Minimum prefix length\n"
-       "Maximum prefix length to be matched\n"
-       "Maximum prefix length\n")
-
-DEFSH (VTYSH_OSPFD, mpls_te_link_metric_cmd_vtysh, 
-       "mpls-te link metric <0-4294967295>", 
-       "MPLS-TE specific commands\n"
-       "Configure MPLS-TE link parameters\n"
-       "Link metric for MPLS-TE purpose\n"
-       "Metric\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_external_soft_in_cmd_vtysh, 
-       "clear bgp external soft in", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear all external peers\n"
-       "Soft reconfig\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_OSPF6D, area_range_cmd_vtysh, 
-       "area A.B.C.D range X:X::X:X/M", 
-       "OSPFv3 area parameters\n"
-       "OSPFv3 area ID in IPv4 address format\n"
-       "Summarize routes matching address/mask (border routers only)\n"
-       "IPv6 address range\n")
-
-DEFSH (VTYSH_OSPFD, no_area_stub_no_summary_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) stub no-summary", 
-       "Negate a command or set its defaults\n"
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Configure OSPF area as stub\n"
-       "Do not inject inter-area routes into area\n")
-
-DEFSH (VTYSH_OSPFD, ospf_distance_ospf_external_inter_cmd_vtysh, 
-       "distance ospf external <1-255> inter-area <1-255>", 
-       "Define an administrative distance\n"
-       "OSPF Administrative distance\n"
-       "External routes\n"
-       "Distance for external routes\n"
-       "Inter-area routes\n"
-       "Distance for inter-area routes\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) ", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n")
-
-DEFSH (VTYSH_OSPFD, area_export_list_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) export-list NAME", 
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Set the filter for networks announced to other areas\n"
-       "Name of the access-list\n")
-
-DEFSH (VTYSH_OSPFD, no_ospf_compatible_rfc1583_cmd_vtysh, 
-       "no compatible rfc1583", 
-       "Negate a command or set its defaults\n"
-       "OSPF compatibility list\n"
-       "compatible with RFC 1583\n")
-
-DEFSH (VTYSH_BGPD, no_match_ecommunity_cmd_vtysh, 
-       "no match extcommunity", 
-       "Negate a command or set its defaults\n"
-       "Match values from routing table\n"
-       "Match BGP/VPN extended community list\n")
-
-DEFSH (VTYSH_BGPD, set_ipv6_nexthop_local_cmd_vtysh, 
-       "set ipv6 next-hop local X:X::X:X", 
-       "Set values in destination routing protocol\n"
-       "IPv6 information\n"
-       "IPv6 next-hop address\n"
-       "IPv6 local address\n"
-       "IPv6 address of next hop\n")
-
-DEFSH (VTYSH_OSPFD, area_import_list_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) import-list NAME", 
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Set the filter for networks from other areas announced to the specified one\n"
-       "Name of the access-list\n")
-
-DEFSH (VTYSH_BGPD, debug_bgp_keepalive_cmd_vtysh, 
-       "debug bgp keepalives", 
-       "Debugging functions (see also 'undebug')\n"
-       "BGP information\n"
-       "BGP keepalives\n")
-
-DEFSH (VTYSH_BGPD, dump_bgp_routes_cmd_vtysh, 
-       "dump bgp routes-mrt PATH", 
-       "Dump packet\n"
-       "BGP packet dump\n"
-       "Dump whole BGP routing table\n"
-       "Output filename\n")
-
-DEFSH (VTYSH_BGPD, no_match_aspath_val_cmd_vtysh, 
-       "no match as-path WORD", 
-       "Negate a command or set its defaults\n"
-       "Match values from routing table\n"
-       "Match BGP AS path list\n"
-       "AS path access-list name\n")
-
-DEFSH (VTYSH_BGPD, no_synchronization_cmd_vtysh, 
-       "no synchronization", 
-       "Negate a command or set its defaults\n"
-       "Perform IGP synchronization\n")
-
-DEFSH (VTYSH_BGPD, neighbor_capability_dynamic_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "capability dynamic", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Advertise capability to the peer\n"
-       "Advertise dynamic capability to this neighbor\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_soft_in_cmd_vtysh, 
-       "clear ip bgp peer-group WORD soft in", 
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_soft_out_cmd_vtysh, 
+       "clear ip bgp peer-group WORD soft out", 
        "Reset functions\n"
        "IP information\n"
        "BGP information\n"
        "Clear all members of peer-group\n"
        "BGP peer-group name\n"
        "Soft reconfig\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_mbgp_route_cmd_vtysh, 
+       "show ipv6 mbgp X:X::X:X", 
+       "Show running system information\n"
+       "IP information\n"
+       "MBGP information\n"
+       "Network in the MBGP routing table to display\n")
+
+DEFSH (VTYSH_OSPFD, neighbor_cmd_vtysh, 
+       "neighbor A.B.C.D", 
+       "Specify neighbor router\n"
+       "Neighbor IP address\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_external_ipv4_in_cmd_vtysh, 
+       "clear ip bgp external ipv4 (unicast|multicast) in", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all external peers\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
        "Soft reconfig inbound update\n")
 
-DEFSH (VTYSH_BGPD, clear_bgp_instance_all_soft_cmd_vtysh, 
-       "clear bgp view WORD * soft", 
+DEFSH (VTYSH_OSPFD, area_range_advertise_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) range A.B.C.D/M advertise", 
+       "OSPF area parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "OSPF area range for route advertise (default)\n"
+       "Area range prefix\n"
+       "Advertise this range (default)\n")
+
+DEFSH (VTYSH_OSPFD, timers_spf_cmd_vtysh, 
+       "timers spf <0-4294967295> <0-4294967295>", 
+       "Adjust routing timers\n"
+       "OSPF SPF timers\n"
+       "Delay between receiving a change to SPF calculation\n"
+       "Hold time between consecutive SPF calculations\n")
+
+DEFSH (VTYSH_ZEBRA, ipv6_route_pref_cmd_vtysh, 
+       "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) <1-255>", 
+       "IP information\n"
+       "Establish static routes\n"
+       "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
+       "IPv6 gateway address\n"
+       "IPv6 gateway interface name\n"
+       "Distance value for this prefix\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_default_local_preference_val_cmd_vtysh, 
+       "no bgp default local-preference <0-4294967295>", 
+       "Negate a command or set its defaults\n"
+       "BGP specific commands\n"
+       "Configure BGP defaults\n"
+       "local preference (higher=more preferred)\n"
+       "Configure default local preference value\n")
+
+DEFSH (VTYSH_RIPNGD, ripng_timers_cmd_vtysh, 
+       "timers basic <0-65535> <0-65535> <0-65535>", 
+       "RIPng timers setup\n"
+       "Basic timer\n"
+       "Routing table update timer value in second. Default is 30.\n"
+       "Routing information timeout timer. Default is 180.\n"
+       "Garbage collection timer. Default is 120.\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_attr_unchanged8_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged next-hop as-path med", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "BGP attribute is propagated unchanged to this neighbor\n"
+       "Nexthop attribute\n"
+       "As-path attribute\n"
+       "Med attribute\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_community2_cmd_vtysh, 
+       "show ip bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n")
+
+DEFSH (VTYSH_OSPFD, no_set_metric_type_cmd_vtysh, 
+       "no set metric-type", 
+       "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "Type of metric for destination routing protocol\n")
+
+DEFSH (VTYSH_BGPD, neighbor_peer_group_cmd_vtysh, 
+       "neighbor WORD peer-group", 
+       "Specify neighbor router\n"
+       "Neighbor tag\n"
+       "Configure peer-group\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_community_exact_cmd_vtysh, 
+       "show ip bgp community (AA:NN|local-AS|no-advertise|no-export) exact-match", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "Exact match of the communities")
+
+DEFSH (VTYSH_BGPD, bgp_enforce_first_as_cmd_vtysh, 
+       "bgp enforce-first-as", 
+       "BGP information\n"
+       "Enforce the first AS for EBGP routes\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_community3_exact_cmd_vtysh, 
+       "show bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "Exact match of the communities")
+
+DEFSH (VTYSH_OSPFD, ospf_dead_interval_cmd_vtysh, 
+       "ospf dead-interval <1-65535>", 
+       "OSPF interface commands\n"
+       "Interval after which a neighbor is declared dead\n"
+       "Seconds\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_group_soft_cmd_vtysh, 
+       "clear bgp ipv6 peer-group WORD soft", 
        "Reset functions\n"
        "BGP information\n"
-       "BGP view\n"
-       "view name\n"
-       "Clear all peers\n"
+       "Address family\n"
+       "Clear all members of peer-group\n"
+       "BGP peer-group name\n"
        "Soft reconfig\n")
 
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_cmd_vtysh, 
-       "clear ip bgp peer-group WORD", 
+DEFSH (VTYSH_OSPFD, area_vlink_authtype_args_md5_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
+       "(authentication|) (message-digest|null) "
+       "(message-digest-key|) <1-255> md5 KEY", 
+       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
+       "Enable authentication on this virtual link\n" "dummy string \n" "Use null authentication\n" "Use message-digest authentication\n"
+       "Message digest authentication password (key)\n" "dummy string \n" "Key ID\n" "Use MD5 algorithm\n" "The OSPF password (key)")
+
+DEFSH (VTYSH_BGPD, clear_bgp_external_cmd_vtysh, 
+       "clear bgp external", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear all external peers\n")
+
+DEFSH (VTYSH_BGPD, no_ip_community_list_name_standard_cmd_vtysh, 
+       "no ip community-list standard WORD (deny|permit) .AA:NN", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Add a community list entry\n"
+       "Specify a standard community-list\n"
+       "Community list name\n"
+       "Specify community to reject\n"
+       "Specify community to accept\n"
+       "Community number in aa:nn format or internet|local-AS|no-advertise|no-export\n")
+
+DEFSH (VTYSH_BGPD, neighbor_update_source_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "update-source WORD", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Source of routing updates\n"
+       "Interface name\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_in_cmd_vtysh, 
+       "clear ip bgp peer-group WORD in", 
        "Reset functions\n"
        "IP information\n"
        "BGP information\n"
        "Clear all members of peer-group\n"
-       "BGP peer-group name\n")
+       "BGP peer-group name\n"
+       "Soft reconfig inbound update\n")
 
-DEFSH (VTYSH_BGPD, no_aggregate_address_mask_summary_as_set_cmd_vtysh, 
-       "no aggregate-address A.B.C.D A.B.C.D summary-only as-set", 
-       "Negate a command or set its defaults\n"
-       "Configure BGP aggregate entries\n"
-       "Aggregate address\n"
-       "Aggregate mask\n"
-       "Filter more specific routes from updates\n"
-       "Generate AS set path information\n")
+DEFSH (VTYSH_OSPFD, neighbor_priority_cmd_vtysh, 
+       "neighbor A.B.C.D priority <0-255>", 
+       "Specify neighbor router\n"
+       "Neighbor IP address\n"
+       "Neighbor Priority\n"
+       "Seconds\n")
 
-DEFSH (VTYSH_RIPD, no_rip_redistribute_type_routemap_cmd_vtysh, 
-       "no redistribute (kernel|connected|static|ospf|bgp) route-map WORD", 
+DEFSH (VTYSH_BGPD, ip_extcommunity_list_name_standard_cmd_vtysh, 
+       "ip extcommunity-list standard WORD (deny|permit) .AA:NN", 
+       "IP information\n"
+       "Add a extended community list entry\n"
+       "Specify standard extcommunity-list\n"
+       "Extended Community list name\n"
+       "Specify community to reject\n"
+       "Specify community to accept\n"
+       "Extended community attribute in 'rt aa:nn_or_IPaddr:nn' OR 'soo aa:nn_or_IPaddr:nn' format\n")
+
+DEFSH (VTYSH_BGPD, neighbor_capability_route_refresh_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "capability route-refresh", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Advertise capability to the peer\n"
+       "Advertise route-refresh capability to this neighbor\n")
+
+DEFSH (VTYSH_BGPD, no_ipv6_bgp_network_cmd_vtysh, 
+       "no network X:X::X:X/M", 
        "Negate a command or set its defaults\n"
+       "Specify a network to announce via BGP\n"
+       "IPv6 prefix <network>/<length>\n")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_connected_metric_val_cmd_vtysh, 
+       "no redistribute connected metric <0-16>", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Metric\n"
+       "Metric value\n")
+
+DEFSH (VTYSH_RIPD, ip_rip_receive_version_1_cmd_vtysh, 
+       "ip rip receive version 1 2", 
+       "IP information\n"
+       "Routing Information Protocol\n"
+       "Advertisement reception\n"
+       "Version control\n"
+       "RIP version 1\n"
+       "RIP version 2\n")
+
+DEFSH (VTYSH_BGPD, no_match_ecommunity_val_cmd_vtysh, 
+       "no match extcommunity (<1-99>|<100-199>|WORD)", 
+       "Negate a command or set its defaults\n"
+       "Match values from routing table\n"
+       "Match BGP/VPN extended community list\n"
+       "Extended community-list number (standard)\n"
+       "Extended community-list number (expanded)\n"
+       "Extended community-list name\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_network_mask_cmd_vtysh, 
+       "no network A.B.C.D mask A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "Specify a network to announce via BGP\n"
+       "Network number\n"
+       "Network mask\n"
+       "Network mask\n")
+
+DEFSH (VTYSH_ZEBRA, show_interface_cmd_vtysh, 
+       "show interface [IFNAME]", 
+       "Show running system information\n"
+       "Interface status and configuration\n"
+       "Inteface name\n")
+
+DEFSH (VTYSH_OSPFD, no_router_ospf_cmd_vtysh, 
+       "no router ospf", 
+       "Negate a command or set its defaults\n"
+       "Enable a routing process\n"
+       "Start OSPF configuration\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_confederation_identifier_cmd_vtysh, 
+       "no bgp confederation identifier", 
+       "Negate a command or set its defaults\n"
+       "BGP specific commands\n"
+       "AS confederation parameters\n"
+       "AS number\n")
+
+DEFSH (VTYSH_OSPFD, ospf_redistribute_source_metric_type_routemap_cmd_vtysh, 
+       "redistribute (kernel|connected|static|rip|bgp) metric <0-16777214> metric-type (1|2) route-map WORD", 
        "Redistribute information from another routing protocol\n"
        "Kernel routes\n"
        "Connected\n"
        "Static routes\n"
-       "Open Shortest Path First (OSPF)\n"
+       "Routing Information Protocol (RIP)\n"
        "Border Gateway Protocol (BGP)\n"
+       "Metric for redistributed routes\n"
+       "OSPF default metric\n"
+       "OSPF exterior metric type for redistributed routes\n"
+       "Set OSPF External Type 1 metrics\n"
+       "Set OSPF External Type 2 metrics\n"
        "Route map reference\n"
        "Pointer to route-map entries\n")
 
-DEFSH (VTYSH_OSPFD, ospf_default_information_originate_always_metric_cmd_vtysh, 
-       "default-information originate always metric <0-16777214>", 
-       "Control distribution of default information\n"
-       "Distribute a default route\n"
-       "Always advertise default route\n"
-       "OSPF default metric\n"
-       "OSPF metric\n"
-       "OSPF metric type for default routes\n")
-
-DEFSH (VTYSH_OSPFD, no_area_vlink_param4_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
-       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) "
-       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) "
-       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) "
-       "(hello-interval|retransmit-interval|transmit-delay|dead-interval)", 
+DEFSH (VTYSH_BGPD, no_neighbor_local_as_val2_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "local-as <1-65535> no-prepend", 
        "Negate a command or set its defaults\n"
-       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
-       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n"
-       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n"
-       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n"
-       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n")
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Specify a local-as number\n"
+       "AS number used as local AS\n"
+       "Do not prepend local-as to updates from ebgp peers\n")
 
-DEFSH (VTYSH_BGPD, no_set_originator_id_val_cmd_vtysh, 
-       "no set originator-id A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "BGP originator ID attribute\n"
-       "IP address of originator\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, ipv6_prefix_list_cmd_vtysh, 
-       "ipv6 prefix-list WORD (deny|permit) (X:X::X:X/M|any)", 
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
-       "Any prefix match.  Same as \"::0/0 le 128\"\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, ip_prefix_list_ge_cmd_vtysh, 
-       "ip prefix-list WORD (deny|permit) A.B.C.D/M ge <0-32>", 
+DEFSH (VTYSH_BGPD, show_ip_bgp_community_info_cmd_vtysh, 
+       "show ip bgp community-info", 
+       "Show running system information\n"
        "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Minimum prefix length to be matched\n"
-       "Minimum prefix length\n")
+       "BGP information\n"
+       "List all bgp community information\n")
 
-DEFSH (VTYSH_RIPD, no_debug_rip_zebra_cmd_vtysh, 
-       "no debug rip zebra", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "RIP information\n"
-       "RIP and ZEBRA communication\n")
+DEFSH (VTYSH_BGPD, bgp_redistribute_ipv4_metric_cmd_vtysh, 
+       "redistribute (connected|kernel|ospf|rip|static) metric <0-4294967295>", 
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Kernel routes\n"
+       "Open Shurtest Path First (OSPF)\n"
+       "Routing Information Protocol (RIP)\n"
+       "Static routes\n"
+       "Metric for redistributed routes\n"
+       "Default metric\n")
 
 DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_cidr_only_cmd_vtysh, 
        "show ip bgp ipv4 (unicast|multicast) cidr-only", 
@@ -11187,723 +9414,164 @@
        "Address Family modifier\n"
        "Display only routes with non-natural netmasks\n")
 
-DEFSH (VTYSH_BGPD, set_local_pref_cmd_vtysh, 
-       "set local-preference <0-4294967295>", 
-       "Set values in destination routing protocol\n"
-       "BGP local preference path attribute\n"
-       "Preference value\n")
-
-DEFSH (VTYSH_BGPD, bgp_bestpath_med_cmd_vtysh, 
-       "bgp bestpath med (confed|missing-as-worst)", 
-       "BGP specific commands\n"
-       "Change the default bestpath selection\n"
-       "MED attribute\n"
-       "Compare MED among confederation paths\n"
-       "Treat missing MED as the least preferred one\n")
-
-DEFSH (VTYSH_OSPFD, ip_ospf_authentication_addr_cmd_vtysh, 
-       "ip ospf authentication A.B.C.D", 
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Enable authentication on this interface\n"
-       "Address of interface")
-
-DEFSH (VTYSH_BGPD, no_neighbor_local_as_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "local-as", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Specify a local-as number\n")
-
-DEFSH (VTYSH_RIPNGD, no_debug_ripng_packet_direct_cmd_vtysh, 
-       "no debug ripng packet (recv|send)", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "RIPng configuration\n"
-       "Debug option set for ripng packet\n"
-       "Debug option set for receive packet\n"
-       "Debug option set for send packet\n")
-
-DEFSH (VTYSH_OSPFD, neighbor_priority_cmd_vtysh, 
-       "neighbor A.B.C.D priority <0-255>", 
-       "Specify neighbor router\n"
-       "Neighbor IP address\n"
-       "Neighbor Priority\n"
-       "Seconds\n")
-
-DEFSH (VTYSH_BGPD, neighbor_attr_unchanged7_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged next-hop med as-path", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "BGP attribute is propagated unchanged to this neighbor\n"
-       "Nexthop attribute\n"
-       "Med attribute\n"
-       "As-path attribute\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_extended_mask_host_cmd_vtysh, 
-       "no access-list (<100-199>|<2000-2699>) (deny|permit) ip A.B.C.D A.B.C.D host A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "Add an access list entry\n"
-       "IP extended access list\n"
-       "IP extended access list (expanded range)\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Any Internet Protocol\n"
-       "Source address\n"
-       "Source wildcard bits\n"
-       "A single destination host\n"
-       "Destination address\n")
-
-DEFSH (VTYSH_RIPD, debug_rip_packet_cmd_vtysh, 
-       "debug rip packet", 
-       "Debugging functions (see also 'undebug')\n"
-       "RIP information\n"
-       "RIP packet\n")
-
-DEFSH (VTYSH_RIPNGD, ripng_redistribute_connected_metric_routemap_cmd_vtysh, 
-       "redistribute connected metric <0-16> route-map WORD", 
-       "Redistribute information from another routing protocol\n"
-       "Connected\n"
-       "Metric\n"
-       "Metric value\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_OSPFD, ip_ospf_authentication_args_cmd_vtysh, 
-       "ip ospf authentication (null|message-digest)", 
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Enable authentication on this interface\n"
-       "Use null authentication\n"
-       "Use message-digest authentication\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_mbgp_route_cmd_vtysh, 
-       "show ipv6 mbgp X:X::X:X", 
-       "Show running system information\n"
-       "IP information\n"
-       "MBGP information\n"
-       "Network in the MBGP routing table to display\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_as_vpnv4_in_cmd_vtysh, 
-       "clear ip bgp <1-65535> vpnv4 unicast in", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear peers with the AS number\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, ipv6_access_list_cmd_vtysh, 
-       "ipv6 access-list WORD (deny|permit) X:X::X:X/M", 
+DEFSH (VTYSH_RIPNGD|VTYSH_OSPF6D|VTYSH_BGPD, ipv6_access_list_any_cmd_vtysh, 
+       "ipv6 access-list WORD (deny|permit) any", 
        "IPv6 information\n"
        "Add an access list entry\n"
        "IPv6 zebra access-list\n"
        "Specify packets to reject\n"
        "Specify packets to forward\n"
-       "Prefix to match. e.g. 3ffe:506::/32\n")
+       "Any prefixi to match\n")
 
-DEFSH (VTYSH_BGPD, show_bgp_community4_cmd_vtysh, 
-       "show bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n")
-
-DEFSH (VTYSH_OSPFD, no_area_range_advertise_cmd_vtysh, 
-       "no area (A.B.C.D|<0-4294967295>) range A.B.C.D/M (advertise|not-advertise)", 
-       "Negate a command or set its defaults\n"
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Summarize routes matching address/mask (border routers only)\n"
-       "Area range prefix\n"
-       "Advertise this range (default)\n"
-       "DoNotAdvertise this range\n")
-
-DEFSH (VTYSH_RIPNGD, debug_ripng_packet_direct_cmd_vtysh, 
-       "debug ripng packet (recv|send)", 
+DEFSH (VTYSH_BGPD, undebug_bgp_fsm_cmd_vtysh, 
+       "undebug bgp fsm", 
+       "Disable debugging functions (see also 'debug')\n"
        "Debugging functions (see also 'undebug')\n"
-       "RIPng configuration\n"
-       "Debug option set for ripng packet\n"
-       "Debug option set for receive packet\n"
-       "Debug option set for send packet\n")
-
-DEFSH (VTYSH_OSPFD, no_debug_ospf_nssa_cmd_vtysh, 
-       "no debug ospf nssa", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "OSPF information\n"
-       "OSPF nssa information\n")
-
-DEFSH (VTYSH_BGPD, no_auto_summary_cmd_vtysh, 
-       "no auto-summary", 
-       "Negate a command or set its defaults\n"
-       "Enable automatic network number summarization\n")
-
-DEFSH (VTYSH_BGPD, neighbor_allowas_in_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "allowas-in", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Accept as-path with my AS present in it\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_capability_dynamic_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "capability dynamic", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Advertise capability to the peer\n"
-       "Advertise dynamic capability to this neighbor\n")
-
-DEFSH (VTYSH_OSPF6D|VTYSH_BGPD, no_match_ipv6_address_prefix_list_cmd_vtysh, 
-       "no match ipv6 address prefix-list WORD", 
-       "Negate a command or set its defaults\n"
-       "Match values from routing table\n"
-       "IPv6 information\n"
-       "Match address of route\n"
-       "Match entries of prefix-lists\n"
-       "IP prefix-list name\n")
-
-DEFSH (VTYSH_OSPFD, no_ip_ospf_network_cmd_vtysh, 
-       "no ip ospf network", 
-       "Negate a command or set its defaults\n"
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Network type\n")
-
-DEFSH (VTYSH_BGPD, bgp_bestpath_aspath_ignore_cmd_vtysh, 
-       "bgp bestpath as-path ignore", 
-       "BGP specific commands\n"
-       "Change the default bestpath selection\n"
-       "AS-path attribute\n"
-       "Ignore as-path length in selecting a route\n")
-
-DEFSH (VTYSH_BGPD, show_ip_extcommunity_list_arg_cmd_vtysh, 
-       "show ip extcommunity-list (<1-199>|WORD)", 
-       "Show running system information\n"
-       "IP information\n"
-       "List extended-community list\n"
-       "Extcommunity-list number\n"
-       "Extcommunity-list name\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_all_neighbors_peer_cmd_vtysh, 
-       "show ip bgp vpnv4 all neighbors A.B.C.D", 
-       "Show running system information\n"
-       "IP information\n"
        "BGP information\n"
-       "Display VPNv4 NLRI specific information\n"
-       "Display information about all VPNv4 NLRIs\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n")
+       "Finite State Machine\n")
 
-DEFSH (VTYSH_BGPD, ip_community_list_name_expanded_cmd_vtysh, 
-       "ip community-list expanded WORD (deny|permit) .LINE", 
-       "IP information\n"
-       "Add a community list entry\n"
-       "Add an expanded community-list entry\n"
-       "Community list name\n"
-       "Specify community to reject\n"
-       "Specify community to accept\n"
-       "An ordered list as a regular-expression\n")
-
-DEFSH (VTYSH_RIPNGD, ripng_redistribute_ospf6_routemap_cmd_vtysh, 
-       "redistribute ospf6 route-map WORD", 
-       "Redistribute information from another routing protocol\n"
-       "IPv6 Open Shortest Path First (OSPFv3)\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_all_vpnv4_out_cmd_vtysh, 
-       "clear ip bgp * vpnv4 unicast out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all peers\n"
-       "Address family\n"
-       "Address Family Modifier\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_as_ipv4_out_cmd_vtysh, 
-       "clear ip bgp <1-65535> ipv4 (unicast|multicast) out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear peers with the AS number\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_RIPD, ip_rip_receive_version_2_cmd_vtysh, 
-       "ip rip receive version 2 1", 
-       "IP information\n"
-       "Routing Information Protocol\n"
-       "Advertisement reception\n"
-       "Version control\n"
-       "RIP version 2\n"
-       "RIP version 1\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_remark_arg_cmd_vtysh, 
-       "no access-list (<1-99>|<100-199>|<1300-1999>|<2000-2699>|WORD) remark .LINE", 
-       "Negate a command or set its defaults\n"
-       "Add an access list entry\n"
-       "IP standard access list\n"
-       "IP extended access list\n"
-       "IP standard access list (expanded range)\n"
-       "IP extended access list (expanded range)\n"
-       "IP zebra access-list\n"
-       "Access list entry comment\n"
-       "Comment up to 100 characters\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_community_cmd_vtysh, 
-       "show ip bgp ipv4 (unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export)", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_ipv6_prefix_list_cmd_vtysh, 
-       "show bgp ipv6 prefix-list WORD", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Display routes conforming to the prefix-list\n"
-       "IPv6 prefix-list name\n")
-
-DEFSH (VTYSH_RIPD, no_debug_rip_packet_direct_cmd_vtysh, 
-       "no debug rip packet (recv|send)", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "RIP information\n"
-       "RIP packet\n"
-       "RIP option set for receive packet\n"
-       "RIP option set for send packet\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_le_ge_cmd_vtysh, 
-       "no ip prefix-list WORD (deny|permit) A.B.C.D/M le <0-32> ge <0-32>", 
-       "Negate a command or set its defaults\n"
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, ip_prefix_list_cmd_vtysh, 
+       "ip prefix-list WORD (deny|permit) (A.B.C.D/M|any)", 
        "IP information\n"
        "Build a prefix list\n"
        "Name of a prefix list\n"
        "Specify packets to reject\n"
        "Specify packets to forward\n"
        "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Maximum prefix length to be matched\n"
-       "Maximum prefix length\n"
-       "Minimum prefix length to be matched\n"
-       "Minimum prefix length\n")
+       "Any prefix match. Same as \"0.0.0.0/0 le 32\"\n")
 
-DEFSH (VTYSH_BGPD, show_ip_bgp_community2_exact_cmd_vtysh, 
-       "show ip bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "Exact match of the communities")
-
-DEFSH (VTYSH_OSPFD, no_ospf_default_metric_cmd_vtysh, 
-       "no default-metric", 
+DEFSH (VTYSH_BGPD, no_bgp_network_import_check_cmd_vtysh, 
+       "no bgp network import-check", 
        "Negate a command or set its defaults\n"
-       "Set metric of redistributed routes\n")
+       "BGP specific commands\n"
+       "BGP network command\n"
+       "Check BGP network route exists in IGP\n")
 
-DEFSH (VTYSH_BGPD, no_set_community_none_cmd_vtysh, 
-       "no set community none", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "BGP community attribute\n"
-       "No community attribute\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_flap_regexp_cmd_vtysh, 
-       "show ip bgp flap-statistics regexp .LINE", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Display flap statistics of routes\n"
-       "Display routes matching the AS path regular expression\n"
-       "A regular-expression to match the BGP AS paths\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_RIPNGD|VTYSH_OSPF6D, router_zebra_cmd_vtysh, 
-       "router zebra", 
-       "Enable a routing process\n"
-       "Make connection to zebra daemon\n")
-
-DEFSH (VTYSH_BGPD, bgp_redistribute_ipv4_rmap_metric_cmd_vtysh, 
-       "redistribute (connected|kernel|ospf|rip|static) route-map WORD metric <0-4294967295>", 
-       "Redistribute information from another routing protocol\n"
-       "Connected\n"
-       "Kernel routes\n"
-       "Open Shurtest Path First (OSPF)\n"
-       "Routing Information Protocol (RIP)\n"
-       "Static routes\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n"
-       "Metric for redistributed routes\n"
-       "Default metric\n")
-
-DEFSH (VTYSH_BGPD, no_set_aggregator_as_val_cmd_vtysh, 
-       "no set aggregator as <1-65535> A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "BGP aggregator attribute\n"
-       "AS number of aggregator\n"
-       "AS number\n"
-       "IP address of aggregator\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_out_cmd_vtysh, 
-       "clear bgp ipv6 (A.B.C.D|X:X::X:X) out", 
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_soft_out_cmd_vtysh, 
+       "clear ip bgp A.B.C.D soft out", 
        "Reset functions\n"
+       "IP information\n"
        "BGP information\n"
-       "Address family\n"
        "BGP neighbor address to clear\n"
-       "BGP IPv6 neighbor to clear\n"
+       "Soft reconfig\n"
        "Soft reconfig outbound update\n")
 
-DEFSH (VTYSH_OSPFD, ospf_distance_ospf_inter_external_cmd_vtysh, 
-       "distance ospf inter-area <1-255> external <1-255>", 
-       "Define an administrative distance\n"
-       "OSPF Administrative distance\n"
-       "Inter-area routes\n"
-       "Distance for inter-area routes\n"
-       "External routes\n"
-       "Distance for external routes\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_static_metric_routemap_cmd_vtysh, 
-       "no redistribute static metric <0-16> route-map WORD", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Static routes\n"
-       "Metric\n"
-       "Metric value\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_OSPFD, no_ospf_priority_cmd_vtysh, 
-       "no ospf priority", 
-       "Negate a command or set its defaults\n"
-       "OSPF interface commands\n"
-       "Router priority\n")
-
-DEFSH (VTYSH_BGPD, set_origin_cmd_vtysh, 
-       "set origin (egp|igp|incomplete)", 
-       "Set values in destination routing protocol\n"
-       "BGP origin code\n"
-       "remote EGP\n"
-       "local IGP\n"
-       "unknown heritage\n")
-
-DEFSH (VTYSH_OSPFD, no_debug_ospf_nsm_sub_cmd_vtysh, 
-       "no debug ospf nsm (status|events|timers)", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions\n"
-       "OSPF information\n"
-       "OSPF Interface State Machine\n"
-       "NSM Status Information\n"
-       "NSM Event Information\n"
-       "NSM Timer Information\n")
-
-DEFSH (VTYSH_OSPFD, ospf_redistribute_source_cmd_vtysh, 
-       "redistribute (kernel|connected|static|rip|bgp)", 
-       "Redistribute information from another routing protocol\n"
-       "Kernel routes\n"
-       "Connected\n"
-       "Static routes\n"
-       "Routing Information Protocol (RIP)\n"
-       "Border Gateway Protocol (BGP)\n")
-
-DEFSH (VTYSH_RIPD, debug_rip_events_cmd_vtysh, 
-       "debug rip events", 
-       "Debugging functions (see also 'undebug')\n"
-       "RIP information\n"
-       "RIP events\n")
-
-DEFSH (VTYSH_ZEBRA, no_ip_route_mask_cmd_vtysh, 
-       "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0)", 
+DEFSH (VTYSH_BGPD, no_ip_community_list_name_expanded_cmd_vtysh, 
+       "no ip community-list expanded WORD (deny|permit) .LINE", 
        "Negate a command or set its defaults\n"
        "IP information\n"
-       "Establish static routes\n"
-       "IP destination prefix\n"
-       "IP destination prefix mask\n"
-       "IP gateway address\n"
-       "IP gateway interface name\n"
-       "Null interface\n")
+       "Add a community list entry\n"
+       "Specify an expanded community-list\n"
+       "Community list name\n"
+       "Specify community to reject\n"
+       "Specify community to accept\n"
+       "An ordered list as a regular-expression\n")
 
-DEFSH (VTYSH_BGPD, clear_ip_bgp_all_cmd_vtysh, 
-       "clear ip bgp *", 
-       "Reset functions\n"
+DEFSH (VTYSH_BGPD, ip_extcommunity_list_name_expanded_cmd_vtysh, 
+       "ip extcommunity-list expanded WORD (deny|permit) .LINE", 
        "IP information\n"
-       "BGP information\n"
-       "Clear all peers\n")
+       "Add a extended community list entry\n"
+       "Specify expanded extcommunity-list\n"
+       "Extended Community list name\n"
+       "Specify community to reject\n"
+       "Specify community to accept\n"
+       "An ordered list as a regular-expression\n")
 
-DEFSH (VTYSH_OSPFD, show_mpls_te_link_cmd_vtysh, 
-       "show mpls-te interface [INTERFACE]", 
+DEFSH (VTYSH_RIPD, no_rip_distance_cmd_vtysh, 
+       "no distance <1-255>", 
+       "Negate a command or set its defaults\n"
+       "Administrative distance\n"
+       "Distance value\n")
+
+DEFSH (VTYSH_ZEBRA, show_debugging_zebra_cmd_vtysh, 
+       "show debugging zebra", 
        "Show running system information\n"
-       "MPLS-TE information\n"
-       "Interface information\n"
-       "Interface name\n")
+       "Zebra configuration\n"
+       "Debugging information\n")
 
-DEFSH (VTYSH_OSPFD, ip_ospf_priority_addr_cmd_vtysh, 
-       "ip ospf priority <0-255> A.B.C.D", 
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Router priority\n"
-       "Priority\n"
-       "Address of interface")
-
-DEFSH (VTYSH_OSPFD, ospf_default_information_originate_always_type_metric_cmd_vtysh, 
-       "default-information originate always metric-type (1|2) metric <0-16777214>", 
-       "Control distribution of default information\n"
-       "Distribute a default route\n"
-       "Always advertise default route\n"
-       "OSPF metric type for default routes\n"
-       "Set OSPF External Type 1 metrics\n"
-       "Set OSPF External Type 2 metrics\n"
-       "OSPF default metric\n"
-       "OSPF metric\n")
-
-DEFSH (VTYSH_BGPD, neighbor_route_map_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "route-map WORD (in|out)", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Apply route map to neighbor\n"
-       "Name of route map\n"
-       "Apply map to incoming routes\n"
-       "Apply map to outbound routes\n")
-
-DEFSH (VTYSH_RIPNGD, debug_ripng_events_cmd_vtysh, 
-       "debug ripng events", 
-       "Debugging functions (see also 'undebug')\n"
-       "RIPng configuration\n"
-       "Debug option set for ripng events\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, clear_ip_prefix_list_name_cmd_vtysh, 
-       "clear ip prefix-list WORD", 
-       "Reset functions\n"
-       "IP information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n")
-
-DEFSH (VTYSH_OSPFD, no_debug_ospf_zebra_cmd_vtysh, 
-       "no debug ospf zebra", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "OSPF information\n"
-       "OSPF Zebra information\n")
-
-DEFSH (VTYSH_OSPFD, ospf_distance_ospf_inter_intra_cmd_vtysh, 
-       "distance ospf inter-area <1-255> intra-area <1-255>", 
-       "Define an administrative distance\n"
-       "OSPF Administrative distance\n"
-       "Inter-area routes\n"
-       "Distance for inter-area routes\n"
-       "Intra-area routes\n"
-       "Distance for intra-area routes\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_external_ipv4_in_prefix_filter_cmd_vtysh, 
-       "clear ip bgp external ipv4 (unicast|multicast) in prefix-filter", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all external peers\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig inbound update\n"
-       "Push out prefix-list ORF and do inbound soft reconfig\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_mbgp_community_exact_cmd_vtysh, 
-       "show ipv6 mbgp community (AA:NN|local-AS|no-advertise|no-export) exact-match", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "MBGP information\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "Exact match of the communities")
-
-DEFSH (VTYSH_OSPF6D, no_passive_interface_cmd_vtysh, 
-       "no passive-interface IFNAME", 
-       "Negate a command or set its defaults\n"
-       "Suppress routing updates on an interface\n"
-       "Interface name(e.g. ep0)\n")
-
-DEFSH (VTYSH_ZEBRA, ip_address_label_cmd_vtysh, 
-       "ip address A.B.C.D/M label LINE", 
-       "Interface Internet Protocol config commands\n"
-       "Set the IP address of an interface\n"
-       "IP address (e.g. 10.0.0.1/8)\n"
-       "Label of this address\n"
-       "Label\n")
-
-DEFSH (VTYSH_BGPD, bgp_damp_unset_cmd_vtysh, 
-       "no bgp dampening", 
-       "Negate a command or set its defaults\n"
-       "BGP Specific commands\n"
-       "Enable route-flap dampening\n")
-
-DEFSH (VTYSH_OSPF6D, no_debug_ospf6_all_cmd_vtysh, 
-       "no debug ospf6 all", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Turn off ALL OSPFv3 debugging\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_standard_cmd_vtysh, 
-       "no access-list (<1-99>|<1300-1999>) (deny|permit) A.B.C.D A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "Add an access list entry\n"
-       "IP standard access list\n"
-       "IP standard access list (expanded range)\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Address to match\n"
-       "Wildcard bits\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_neighbor_received_prefix_filter_cmd_vtysh, 
-       "show ip bgp neighbors (A.B.C.D|X:X::X:X) received prefix-filter", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Detailed information on TCP and BGP neighbor connections\n"
-       "Neighbor to display information about\n"
-       "Neighbor to display information about\n"
-       "Display information received from a BGP neighbor\n"
-       "Display the prefixlist filter\n")
-
-DEFSH (VTYSH_OSPFD, area_default_cost_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) default-cost <0-16777215>", 
+DEFSH (VTYSH_OSPFD, area_authentication_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) authentication", 
        "OSPF area parameters\n"
        "OSPF area ID in IP address format\n"
        "OSPF area ID as a decimal value\n"
-       "Set the summary-default cost of a NSSA or stub area\n"
-       "Stub's advertised default summary cost\n")
+       "Enable authentication\n")
 
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_group_in_cmd_vtysh, 
-       "clear bgp ipv6 peer-group WORD in", 
-       "Reset functions\n"
+DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_community_list_cmd_vtysh, 
+       "show ip bgp ipv4 (unicast|multicast) community-list WORD", 
+       "Show running system information\n"
+       "IP information\n"
        "BGP information\n"
        "Address family\n"
-       "Clear all members of peer-group\n"
-       "BGP peer-group name\n"
-       "Soft reconfig inbound update\n")
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Display routes matching the community-list\n"
+       "community-list name\n")
 
-DEFSH (VTYSH_BGPD, clear_bgp_all_in_cmd_vtysh, 
-       "clear bgp * in", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear all peers\n"
-       "Soft reconfig inbound update\n")
+DEFSH (VTYSH_RIPD, no_rip_offset_list_ifname_cmd_vtysh, 
+       "no offset-list WORD (in|out) <0-16> IFNAME", 
+       "Negate a command or set its defaults\n"
+       "Modify RIP metric\n"
+       "Access-list name\n"
+       "For incoming updates\n"
+       "For outgoing updates\n"
+       "Metric value\n"
+       "Interface to match\n")
 
-DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_area_topology_router_lsid_cmd_vtysh, 
-       "show ipv6 ospf6 area A.B.C.D topology (A.B.C.D|<0-4294967295>) (A.B.C.D|<0-4294967295>)", 
+DEFSH (VTYSH_ZEBRA, show_ip_route_prefix_cmd_vtysh, 
+       "show ip route A.B.C.D/M", 
        "Show running system information\n"
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Area information\n"
-       "Area ID (as an IPv4 notation)\n"
-       "Shortest Path First tree information\n"
-       "Displays SPF topology table\n"
-       "Specify Router-ID\n"
-       "Specify Router-ID\n"
-       "Specify Link State ID\n"
-       "Specify Link State ID\n"
-       )
+       "IP information\n"
+       "IP routing table\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n")
 
-DEFSH (VTYSH_BGPD, show_ipv6_mbgp_community3_cmd_vtysh, 
-       "show ipv6 mbgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "MBGP information\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n")
+DEFSH (VTYSH_OSPF6D, interface_area_plist_cmd_vtysh, 
+       "interface IFNAME area A.B.C.D prefix-list WORD", 
+       "Enable routing on an IPv6 interface\n"
+       "Interface name(e.g. ep0)\n"
+       "Set the OSPF6 area ID\n"
+       "OSPF6 area ID in IPv4 address notation\n"
+       "Advertise I/F Address only match entries of prefix-list\n"
+       "IPv6 prefix-list name\n"
+      )
 
-DEFSH (VTYSH_BGPD, bgp_damp_set_cmd_vtysh, 
-       "bgp dampening <1-45> <1-20000> <1-20000> <1-255>", 
-       "BGP Specific commands\n"
-       "Enable route-flap dampening\n"
-       "Half-life time for the penalty\n"
-       "Value to start reusing a route\n"
-       "Value to start suppressing a route\n"
-       "Maximum duration to suppress a stable route\n")
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, rmap_onmatch_goto_cmd_vtysh, 
+       "on-match goto <1-65535>", 
+       "Exit policy on matches\n"
+       "Goto Clause number\n"
+       "Number\n")
 
-DEFSH (VTYSH_OSPF6D, ipv6_ospf6_instance_cmd_vtysh, 
-       "ipv6 ospf6 instance-id INSTANCE", 
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Instance ID\n"
-       "<0-255> Instance ID\n"
-       )
-
-DEFSH (VTYSH_BGPD, no_dump_bgp_routes_cmd_vtysh, 
-       "no dump bgp routes-mrt [PATH] [INTERVAL]", 
+DEFSH (VTYSH_BGPD, no_neighbor_peer_group_remote_as_cmd_vtysh, 
+       "no neighbor WORD remote-as <1-65535>", 
        "Negate a command or set its defaults\n"
-       "Dump packet\n"
-       "BGP packet dump\n"
-       "Dump whole BGP routing table\n")
+       "Specify neighbor router\n"
+       "Neighbor tag\n"
+       "Specify a BGP neighbor\n"
+       "AS number\n")
 
-DEFSH (VTYSH_RIPNGD, no_ripng_route_cmd_vtysh, 
-       "no route IPV6ADDR", 
-       "Negate a command or set its defaults\n"
-       "Static route setup\n"
-       "Delete static RIPng route announcement\n")
-
-DEFSH (VTYSH_BGPD, no_aggregate_address_mask_as_set_cmd_vtysh, 
-       "no aggregate-address A.B.C.D A.B.C.D as-set", 
-       "Negate a command or set its defaults\n"
+DEFSH (VTYSH_BGPD, aggregate_address_mask_as_set_cmd_vtysh, 
+       "aggregate-address A.B.C.D A.B.C.D as-set", 
        "Configure BGP aggregate entries\n"
        "Aggregate address\n"
        "Aggregate mask\n"
        "Generate AS set path information\n")
 
-DEFSH (VTYSH_BGPD, no_bgp_confederation_peers_cmd_vtysh, 
-       "no bgp confederation peers .<1-65535>", 
+DEFSH (VTYSH_OSPFD, show_ip_ospf_database_type_id_adv_router_cmd_vtysh, 
+       "show ip ospf database (" "asbr-summary|external|network|router|summary" "" "" ") A.B.C.D adv-router A.B.C.D", 
+       "Show running system information\n"
+       "IP information\n"
+       "OSPF information\n"
+       "Database summary\n"
+       "ASBR summary link states\n" "External link states\n" "Network link states\n" "Router link states\n" "Network summary link states\n" "" "" "" ""
+       "Link State ID (as an IP address)\n"
+       "Advertising Router link states\n"
+       "Advertising Router (as an IP address)\n")
+
+DEFSH (VTYSH_BGPD, no_dump_bgp_all_cmd_vtysh, 
+       "no dump bgp all [PATH] [INTERVAL]", 
        "Negate a command or set its defaults\n"
-       "BGP specific commands\n"
-       "AS confederation parameters\n"
-       "Peer ASs in BGP confederation\n"
-       "AS number\n")
+       "Dump packet\n"
+       "BGP packet dump\n"
+       "Dump all BGP packets\n")
 
 DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_community4_cmd_vtysh, 
        "show ip bgp ipv4 (unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
@@ -11931,6 +9599,899 @@
        "Do not advertise to any peer (well-known community)\n"
        "Do not export to next AS (well-known community)\n")
 
+DEFSH (VTYSH_BGPD, neighbor_attr_unchanged8_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged next-hop as-path med", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "BGP attribute is propagated unchanged to this neighbor\n"
+       "Nexthop attribute\n"
+       "As-path attribute\n"
+       "Med attribute\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_config_type_cmd_vtysh, 
+       "no bgp config-type", 
+       "Negate a command or set its defaults\n"
+       "BGP information\n"
+       "Display configuration type\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_view_prefix_cmd_vtysh, 
+       "show ip bgp view WORD A.B.C.D/M", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "BGP view\n"
+       "BGP view name\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n")
+
+DEFSH (VTYSH_BGPD, aggregate_address_as_set_summary_cmd_vtysh, 
+       "aggregate-address A.B.C.D/M as-set summary-only", 
+       "Configure BGP aggregate entries\n"
+       "Aggregate prefix\n"
+       "Generate AS set path information\n"
+       "Filter more specific routes from updates\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_bgp_cmd_vtysh, 
+       "show ipv6 bgp", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_ipv4_out_cmd_vtysh, 
+       "clear ip bgp peer-group WORD ipv4 (unicast|multicast) out", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all members of peer-group\n"
+       "BGP peer-group name\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_external_ipv4_soft_out_cmd_vtysh, 
+       "clear ip bgp external ipv4 (unicast|multicast) soft out", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all external peers\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Soft reconfig\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_instance_all_cmd_vtysh, 
+       "clear bgp view WORD *", 
+       "Reset functions\n"
+       "BGP information\n"
+       "BGP view\n"
+       "view name\n"
+       "Clear all peers\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_port_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X) " "port", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nIPv6 address\n"
+       "Neighbor's BGP port\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_match_ip_address_prefix_list_cmd_vtysh, 
+       "no match ip address prefix-list", 
+       "Negate a command or set its defaults\n"
+       "Match values from routing table\n"
+       "IP information\n"
+       "Match address of route\n"
+       "Match entries of prefix-lists\n")
+
+DEFSH (VTYSH_BGPD, neighbor_passive_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "passive", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Don't send open messages to this neighbor\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_all_out_cmd_vtysh, 
+       "clear bgp * out", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear all peers\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_BGPD, bgp_damp_set2_cmd_vtysh, 
+       "bgp dampening <1-45>", 
+       "BGP Specific commands\n"
+       "Enable route-flap dampening\n"
+       "Half-life time for the penalty\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ip_prefix_list_detail_cmd_vtysh, 
+       "show ip prefix-list detail", 
+       "Show running system information\n"
+       "IP information\n"
+       "Build a prefix list\n"
+       "Detail of prefix lists\n")
+
+DEFSH (VTYSH_BGPD, neighbor_capability_dynamic_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "capability dynamic", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Advertise capability to the peer\n"
+       "Advertise dynamic capability to this neighbor\n")
+
+DEFSH (VTYSH_BGPD, neighbor_timers_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "timers <0-65535> <0-65535>", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "BGP per neighbor timers\n"
+       "Keepalive interval\n"
+       "Holdtime\n")
+
+DEFSH (VTYSH_BGPD, undebug_bgp_all_cmd_vtysh, 
+       "undebug all bgp", 
+       "Disable debugging functions (see also 'debug')\n"
+       "Enable all debugging\n"
+       "BGP information\n")
+
+DEFSH (VTYSH_OSPFD, area_range_substitute_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) range A.B.C.D/M substitute A.B.C.D/M", 
+       "OSPF area parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "Summarize routes matching address/mask (border routers only)\n"
+       "Area range prefix\n"
+       "Announce area range as another prefix\n"
+       "Network prefix to be announced instead of range\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_rd_cmd_vtysh, 
+       "show ip bgp vpnv4 rd ASN:nn_or_IP-address:nn", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display VPNv4 NLRI specific information\n"
+       "Display information for a route distinguisher\n"
+       "VPN Route Distinguisher\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_prefix_list_cmd_vtysh, 
+       "show bgp prefix-list WORD", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Display routes conforming to the prefix-list\n"
+       "IPv6 prefix-list name\n")
+
+DEFSH (VTYSH_BGPD, no_set_vpnv4_nexthop_val_cmd_vtysh, 
+       "no set vpnv4 next-hop A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "VPNv4 information\n"
+       "VPNv4 next-hop address\n"
+       "IP address of next hop\n")
+
+DEFSH (VTYSH_OSPFD, area_filter_list_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) filter-list prefix WORD (in|out)", 
+       "OSPF area parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "Filter networks between OSPF areas\n"
+       "Filter prefixes between OSPF areas\n"
+       "Name of an IP prefix-list\n"
+       "Filter networks sent to this area\n"
+       "Filter networks sent from this area\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_external_soft_out_cmd_vtysh, 
+       "clear bgp ipv6 external soft out", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear all external peers\n"
+       "Soft reconfig\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_OSPFD, show_ip_ospf_interface_cmd_vtysh, 
+       "show ip ospf interface [INTERFACE]", 
+       "Show running system information\n"
+       "IP information\n"
+       "OSPF information\n"
+       "Interface information\n"
+       "Interface name\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_neighbors_cmd_vtysh, 
+       "show ip bgp ipv4 (unicast|multicast) neighbors", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Detailed information on TCP and BGP neighbor connections\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_always_compare_med_cmd_vtysh, 
+       "no bgp always-compare-med", 
+       "Negate a command or set its defaults\n"
+       "BGP specific commands\n"
+       "Allow comparing MED from different neighbors\n")
+
+DEFSH (VTYSH_BGPD, old_no_ipv6_aggregate_address_cmd_vtysh, 
+       "no ipv6 bgp aggregate-address X:X::X:X/M", 
+       "Negate a command or set its defaults\n"
+       "IPv6 information\n"
+       "BGP information\n"
+       "Configure BGP aggregate entries\n"
+       "Aggregate prefix\n")
+
+DEFSH (VTYSH_OSPFD, ospf_default_information_originate_type_metric_cmd_vtysh, 
+       "default-information originate metric-type (1|2) metric <0-16777214>", 
+       "Control distribution of default information\n"
+       "Distribute a default route\n"
+       "OSPF metric type for default routes\n"
+       "Set OSPF External Type 1 metrics\n"
+       "Set OSPF External Type 2 metrics\n"
+       "OSPF default metric\n"
+       "OSPF metric\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_attr_unchanged2_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged as-path (next-hop|med)", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "BGP attribute is propagated unchanged to this neighbor\n"
+       "As-path attribute\n"
+       "Nexthop attribute\n"
+       "Med attribute\n")
+
+DEFSH (VTYSH_OSPF6D, ospf6_area_range_cmd_vtysh, 
+       "area A.B.C.D range X:X::X:X/M", 
+       "OSPFv3 area parameters\n"
+       "OSPFv3 area ID in IPv4 address format\n"
+       "Summarize routes matching address/mask (border routers only)\n"
+       "IPv6 address range\n")
+
+DEFSH (VTYSH_RIPD, debug_rip_packet_cmd_vtysh, 
+       "debug rip packet", 
+       "Debugging functions (see also 'undebug')\n"
+       "RIP information\n"
+       "RIP packet\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_ipv6_neighbor_advertised_route_cmd_vtysh, 
+       "show bgp ipv6 neighbors (A.B.C.D|X:X::X:X) advertised-routes", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n"
+       "Display the routes advertised to a BGP neighbor\n")
+
+DEFSH (VTYSH_RIPNGD, ripng_default_metric_cmd_vtysh, 
+       "default-metric <1-16>", 
+       "Set a metric of redistribute routes\n"
+       "Default metric\n")
+
+DEFSH (VTYSH_RIPD, no_rip_redistribute_type_cmd_vtysh, 
+       "no redistribute (kernel|connected|static|ospf|bgp)", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Kernel routes\n"
+       "Connected\n"
+       "Static routes\n"
+       "Open Shortest Path First (OSPF)\n"
+       "Border Gateway Protocol (BGP)\n")
+
+DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_camp_config_cmd_vtysh, 
+       "show ipv6 ospf6 damp config", 
+       "Show running system information\n"
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Flap-dampening information\n"
+       "shows dampening configuration\n"
+      )
+
+DEFSH (VTYSH_BGPD, undebug_bgp_keepalive_cmd_vtysh, 
+       "undebug bgp keepalives", 
+       "Disable debugging functions (see also 'debug')\n"
+       "BGP information\n"
+       "BGP keepalives\n")
+
+DEFSH (VTYSH_BGPD, bgp_network_import_check_cmd_vtysh, 
+       "bgp network import-check", 
+       "BGP specific commands\n"
+       "BGP network command\n"
+       "Check BGP network route exists in IGP\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_as_soft_out_cmd_vtysh, 
+       "clear ip bgp <1-65535> soft out", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear peers with the AS number\n"
+       "Soft reconfig\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_extended_cmd_vtysh, 
+       "no access-list (<100-199>|<2000-2699>) (deny|permit) ip A.B.C.D A.B.C.D A.B.C.D A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "Add an access list entry\n"
+       "IP extended access list\n"
+       "IP extended access list (expanded range)\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Any Internet Protocol\n"
+       "Source address\n"
+       "Source wildcard bits\n"
+       "Destination address\n"
+       "Destination Wildcard bits\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_mbgp_community4_cmd_vtysh, 
+       "show ipv6 mbgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "MBGP information\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n")
+
+DEFSH (VTYSH_BGPD, ip_as_path_cmd_vtysh, 
+       "ip as-path access-list WORD (deny|permit) .LINE", 
+       "IP information\n"
+       "BGP autonomous system path filter\n"
+       "Specify an access list name\n"
+       "Regular expression access list name\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "A regular-expression to match the BGP AS paths\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_all_out_cmd_vtysh, 
+       "clear ip bgp * out", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all peers\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_RIPD, send_lifetime_day_month_month_day_cmd_vtysh, 
+       "send-lifetime HH:MM:SS <1-31> MONTH <1993-2035> HH:MM:SS MONTH <1-31> <1993-2035>", 
+       "Set send lifetime of the key\n"
+       "Time to start\n"
+       "Day of th month to start\n"
+       "Month of the year to start\n"
+       "Year to start\n"
+       "Time to expire\n"
+       "Month of the year to expire\n"
+       "Day of th month to expire\n"
+       "Year to expire\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_RIPNGD|VTYSH_OSPF6D, no_router_zebra_cmd_vtysh, 
+       "no router zebra", 
+       "Negate a command or set its defaults\n"
+       "Configure routing process\n"
+       "Disable connection to zebra daemon\n")
+
+DEFSH (VTYSH_RIPD, no_ip_rip_authentication_string_cmd_vtysh, 
+       "no ip rip authentication string", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Routing Information Protocol\n"
+       "Authentication control\n"
+       "Authentication string\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_group_soft_out_cmd_vtysh, 
+       "clear bgp ipv6 peer-group WORD soft out", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear all members of peer-group\n"
+       "BGP peer-group name\n"
+       "Soft reconfig\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_route_map_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "route-map WORD (in|out)", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Apply route map to neighbor\n"
+       "Name of route map\n"
+       "Apply map to incoming routes\n"
+       "Apply map to outbound routes\n")
+
+DEFSH (VTYSH_BGPD, ipv6_aggregate_address_summary_only_cmd_vtysh, 
+       "aggregate-address X:X::X:X/M summary-only", 
+       "Configure BGP aggregate entries\n"
+       "Aggregate prefix\n"
+       "Filter more specific routes from updates\n")
+
+DEFSH (VTYSH_OSPFD, no_ip_ospf_transmit_delay_cmd_vtysh, 
+       "no ip ospf transmit-delay", 
+       "Negate a command or set its defaults\n"
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Link state transmit delay\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_le_ge_cmd_vtysh, 
+       "no ip prefix-list WORD (deny|permit) A.B.C.D/M le <0-32> ge <0-32>", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Maximum prefix length to be matched\n"
+       "Maximum prefix length\n"
+       "Minimum prefix length to be matched\n"
+       "Minimum prefix length\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_rd_prefix_cmd_vtysh, 
+       "show ip bgp vpnv4 rd ASN:nn_or_IP-address:nn A.B.C.D/M", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display VPNv4 NLRI specific information\n"
+       "Display information for a route distinguisher\n"
+       "VPN Route Distinguisher\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n")
+
+DEFSH (VTYSH_BGPD, bgp_network_route_map_cmd_vtysh, 
+       "network A.B.C.D/M route-map WORD", 
+       "Specify a network to announce via BGP\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Route-map to modify the attributes\n"
+       "Name of the route map\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_community_list_cmd_vtysh, 
+       "show ip bgp community-list WORD", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display routes matching the community-list\n"
+       "community-list name\n")
+
+DEFSH (VTYSH_RIPD, accept_lifetime_infinite_month_day_cmd_vtysh, 
+       "accept-lifetime HH:MM:SS MONTH <1-31> <1993-2035> infinite", 
+       "Set accept lifetime of the key\n"
+       "Time to start\n"
+       "Month of the year to start\n"
+       "Day of th month to start\n"
+       "Year to start\n"
+       "Never expires")
+
+DEFSH (VTYSH_OSPFD, ospf_redistribute_source_type_metric_cmd_vtysh, 
+       "redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) metric <0-16777214>", 
+       "Redistribute information from another routing protocol\n"
+       "Kernel routes\n"
+       "Connected\n"
+       "Static routes\n"
+       "Routing Information Protocol (RIP)\n"
+       "Border Gateway Protocol (BGP)\n"
+       "OSPF exterior metric type for redistributed routes\n"
+       "Set OSPF External Type 1 metrics\n"
+       "Set OSPF External Type 2 metrics\n"
+       "Metric for redistributed routes\n"
+       "OSPF default metric\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_ipv4_out_cmd_vtysh, 
+       "clear ip bgp A.B.C.D ipv4 (unicast|multicast) out", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "BGP neighbor address to clear\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_ZEBRA, no_ip_route_mask_cmd_vtysh, 
+       "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0)", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Establish static routes\n"
+       "IP destination prefix\n"
+       "IP destination prefix mask\n"
+       "IP gateway address\n"
+       "IP gateway interface name\n"
+       "Null interface\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_in_cmd_vtysh, 
+       "clear bgp ipv6 (A.B.C.D|X:X::X:X) in", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "BGP neighbor address to clear\n"
+       "BGP IPv6 neighbor to clear\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_out_cmd_vtysh, 
+       "clear bgp ipv6 (A.B.C.D|X:X::X:X) out", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "BGP neighbor address to clear\n"
+       "BGP IPv6 neighbor to clear\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_BGPD, neighbor_override_capability_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "override-capability", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Override capability negotiation result\n")
+
+DEFSH (VTYSH_BGPD, no_dump_bgp_updates_cmd_vtysh, 
+       "no dump bgp updates [PATH] [INTERVAL]", 
+       "Negate a command or set its defaults\n"
+       "Dump packet\n"
+       "BGP packet dump\n"
+       "Dump BGP updates only\n")
+
+DEFSH (VTYSH_OSPFD, debug_ospf_lsa_sub_cmd_vtysh, 
+       "debug ospf lsa (generate|flooding|install|refresh)", 
+       "Debugging functions (see also 'undebug')\n"
+       "OSPF information\n"
+       "OSPF Link State Advertisement\n"
+       "LSA Generation\n"
+       "LSA Flooding\n"
+       "LSA Install/Delete\n"
+       "LSA Refresh\n")
+
+DEFSH (VTYSH_OSPFD, ip_ospf_hello_interval_cmd_vtysh, 
+       "ip ospf hello-interval <1-65535>", 
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Time between HELLO packets\n"
+       "Seconds\n")
+
+DEFSH (VTYSH_OSPF6D, passive_interface_cmd_vtysh, 
+       "passive-interface IFNAME", 
+       "Suppress routing updates on an interface\n"
+       "Interface name(e.g. ep0)\n")
+
+DEFSH (VTYSH_BGPD, neighbor_nexthop_self_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "next-hop-self", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Disable the next hop calculation for this neighbor\n")
+
+DEFSH (VTYSH_RIPD, accept_lifetime_month_day_day_month_cmd_vtysh, 
+       "accept-lifetime HH:MM:SS MONTH <1-31> <1993-2035> HH:MM:SS <1-31> MONTH <1993-2035>", 
+       "Set accept lifetime of the key\n"
+       "Time to start\n"
+       "Month of the year to start\n"
+       "Day of th month to start\n"
+       "Year to start\n"
+       "Time to expire\n"
+       "Day of th month to expire\n"
+       "Month of the year to expire\n"
+       "Year to expire\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_bgp_prefix_longer_cmd_vtysh, 
+       "show ipv6 bgp X:X::X:X/M longer-prefixes", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "BGP information\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
+       "Display route and more specific routes\n")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_static_metric_val_cmd_vtysh, 
+       "no redistribute static metric <0-16>", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Static routes\n"
+       "Metric\n"
+       "Metric value\n")
+
+DEFSH (VTYSH_BGPD, no_match_aspath_val_cmd_vtysh, 
+       "no match as-path WORD", 
+       "Negate a command or set its defaults\n"
+       "Match values from routing table\n"
+       "Match BGP AS path list\n"
+       "AS path access-list name\n")
+
+DEFSH (VTYSH_RIPD, no_key_chain_cmd_vtysh, 
+       "no key chain WORD", 
+       "Negate a command or set its defaults\n"
+       "Authentication key management\n"
+       "Key-chain management\n"
+       "Key-chain name\n")
+
+DEFSH (VTYSH_OSPF6D, show_version_ospf6_cmd_vtysh, 
+       "show version ospf6", 
+       "Show running system information\n"
+       "Displays ospf6d version\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_peer_cmd_vtysh, 
+       "clear bgp (A.B.C.D|X:X::X:X)", 
+       "Reset functions\n"
+       "BGP information\n"
+       "BGP neighbor address to clear\n"
+       "BGP IPv6 neighbor to clear\n")
+
+DEFSH (VTYSH_BGPD, bgp_damp_unset_cmd_vtysh, 
+       "no bgp dampening", 
+       "Negate a command or set its defaults\n"
+       "BGP Specific commands\n"
+       "Enable route-flap dampening\n")
+
+DEFSH (VTYSH_OSPFD, area_import_list_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) import-list NAME", 
+       "OSPF area parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "Set the filter for networks from other areas announced to the specified one\n"
+       "Name of the access-list\n")
+
+DEFSH (VTYSH_OSPFD, ospf_default_information_originate_metric_routemap_cmd_vtysh, 
+       "default-information originate metric <0-16777214> route-map WORD", 
+       "Control distribution of default information\n"
+       "Distribute a default route\n"
+       "OSPF default metric\n"
+       "OSPF metric\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_BGPD, neighbor_attr_unchanged2_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged as-path (next-hop|med)", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "BGP attribute is propagated unchanged to this neighbor\n"
+       "As-path attribute\n"
+       "Nexthop attribute\n"
+       "Med attribute\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_peer_group_in_cmd_vtysh, 
+       "clear bgp peer-group WORD in", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear all members of peer-group\n"
+       "BGP peer-group name\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_OSPFD, no_ospf_dead_interval_cmd_vtysh, 
+       "no ospf dead-interval", 
+       "Negate a command or set its defaults\n"
+       "OSPF interface commands\n"
+       "Interval after which a neighbor is declared dead\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_all_cmd_vtysh, 
+       "no access-list (<1-99>|<100-199>|<1300-1999>|<2000-2699>|WORD)", 
+       "Negate a command or set its defaults\n"
+       "Add an access list entry\n"
+       "IP standard access list\n"
+       "IP extended access list\n"
+       "IP standard access list (expanded range)\n"
+       "IP extended access list (expanded range)\n"
+       "IP zebra access-list name\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, ip_prefix_list_seq_ge_cmd_vtysh, 
+       "ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M ge <0-32>", 
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "sequence number of an entry\n"
+       "Sequence number\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Minimum prefix length to be matched\n"
+       "Minimum prefix length\n")
+
+DEFSH (VTYSH_BGPD, no_set_ecommunity_rt_val_cmd_vtysh, 
+       "no set extcommunity rt .ASN:nn_or_IP-address:nn", 
+       "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "BGP extended community attribute\n"
+       "Route Target extened communityt\n"
+       "VPN extended community\n")
+
+DEFSH (VTYSH_BGPD, set_atomic_aggregate_cmd_vtysh, 
+       "set atomic-aggregate", 
+       "Set values in destination routing protocol\n"
+       "BGP atomic aggregate attribute\n" )
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_any_cmd_vtysh, 
+       "access-list WORD (deny|permit) any", 
+       "Add an access list entry\n"
+       "IP zebra access-list name\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Prefix to match. e.g. 10.0.0.0/8\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_as_soft_cmd_vtysh, 
+       "clear bgp ipv6 <1-65535> soft", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear peers with the AS number\n"
+       "Soft reconfig\n")
+
+DEFSH (VTYSH_BGPD, debug_bgp_update_cmd_vtysh, 
+       "debug bgp updates", 
+       "Debugging functions (see also 'undebug')\n"
+       "BGP information\n"
+       "BGP updates\n")
+
+DEFSH (VTYSH_BGPD, no_ip_community_list_cmd_vtysh, 
+       "no ip community-list WORD (deny|permit) .AA:NN", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Add a community list entry\n"
+       "Community list name\n"
+       "Specify community to reject\n"
+       "Specify community to accept\n"
+       "Community number in aa:nn format or internet|local-AS|no-advertise|no-export\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_advertise_interval_val_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X) " "advertisement-interval <0-600>", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nIPv6 address\n"
+       "Minimum interval between sending BGP routing updates\n"
+       "time in seconds\n")
+
+DEFSH (VTYSH_BGPD, bgp_redistribute_ipv6_metric_cmd_vtysh, 
+       "redistribute (connected|kernel|ospf6|ripng|static) metric <0-4294967295>", 
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Kernel routes\n"
+       "Open Shurtest Path First (OSPFv3)\n"
+       "Routing Information Protocol (RIPng)\n"
+       "Static routes\n"
+       "Metric for redistributed routes\n"
+       "Default metric\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_prefix_cmd_vtysh, 
+       "show bgp X:X::X:X/M", 
+       "Show running system information\n"
+       "BGP information\n"
+       "IPv6 prefix <network>/<length>\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_bgp_prefix_cmd_vtysh, 
+       "show ipv6 bgp X:X::X:X/M", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_as_ipv4_out_cmd_vtysh, 
+       "clear ip bgp <1-65535> ipv4 (unicast|multicast) out", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear peers with the AS number\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_OSPF6D, ipv6_ospf6_advertise_force_prefix_cmd_vtysh, 
+       "ipv6 ospf6 advertise force-prefix", 
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Advertising options\n"
+       "Force advertising prefix,  applicable if Loopback or P-to-P\n"
+       )
+
+DEFSH (VTYSH_BGPD, show_bgp_filter_list_cmd_vtysh, 
+       "show bgp filter-list WORD", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Display routes conforming to the filter-list\n"
+       "Regular expression access list name\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_as_ipv4_in_cmd_vtysh, 
+       "clear ip bgp <1-65535> ipv4 (unicast|multicast) in", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear peers with the AS number\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_peer_soft_out_cmd_vtysh, 
+       "clear bgp (A.B.C.D|X:X::X:X) soft out", 
+       "Reset functions\n"
+       "BGP information\n"
+       "BGP neighbor address to clear\n"
+       "BGP IPv6 neighbor to clear\n"
+       "Soft reconfig\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_RIPD, rip_distance_cmd_vtysh, 
+       "distance <1-255>", 
+       "Administrative distance\n"
+       "Distance value\n")
+
+DEFSH (VTYSH_BGPD, set_origin_cmd_vtysh, 
+       "set origin (egp|igp|incomplete)", 
+       "Set values in destination routing protocol\n"
+       "BGP origin code\n"
+       "remote EGP\n"
+       "local IGP\n"
+       "unknown heritage\n")
+
+DEFSH (VTYSH_OSPFD, ospf_transmit_delay_cmd_vtysh, 
+       "ospf transmit-delay <1-65535>", 
+       "OSPF interface commands\n"
+       "Link state transmit delay\n"
+       "Seconds\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_port_val_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X) " "port <0-65535>", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nIPv6 address\n"
+       "Neighbor's BGP port\n"
+       "TCP port number\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_OSPF6D|VTYSH_BGPD, no_ipv6_access_list_cmd_vtysh, 
+       "no ipv6 access-list WORD (deny|permit) X:X::X:X/M", 
+       "Negate a command or set its defaults\n"
+       "IPv6 information\n"
+       "Add an access list entry\n"
+       "IPv6 zebra access-list\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Prefix to match. e.g. 3ffe:506::/32\n")
+
+DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_database_type_id_adv_router_cmd_vtysh, 
+       "show ipv6 ospf6 database (router|network|as-external|intra-prefix|inter-prefix|inter-router|link|*|HEX) (A.B.C.D|*) (A.B.C.D|*|dump|detail)", 
+       "Show running system information\n"
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "LSA Database\n"
+       "Router-LSA\n"
+       "Network-LSA\n"
+       "AS-External-LSA\n"
+       "Intra-Area-Prefix-LSA\n"
+       "Inter-Area-Router-LSA\n"
+       "Inter-Area-Prefix-LSA\n"
+       "Link-LSA\n"
+       "All LS Type\n"
+       "Specify LS Type by Hex\n"
+       "Link State ID\n"
+       "All Link State ID\n"
+       "Advertising Router\n"
+       "All Advertising Router\n"
+       "Dump raw LSA data in Hex\n"
+       "show detail of LSAs\n"
+       )
+
+DEFSH (VTYSH_BGPD, bgp_redistribute_ipv6_metric_rmap_cmd_vtysh, 
+       "redistribute (connected|kernel|ospf6|ripng|static) metric <0-4294967295> route-map WORD", 
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Kernel routes\n"
+       "Open Shurtest Path First (OSPFv3)\n"
+       "Routing Information Protocol (RIPng)\n"
+       "Static routes\n"
+       "Metric for redistributed routes\n"
+       "Default metric\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_ipv6_community_exact_cmd_vtysh, 
+       "show bgp ipv6 community (AA:NN|local-AS|no-advertise|no-export) exact-match", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "Exact match of the communities")
+
 DEFSH (VTYSH_BGPD, no_set_weight_val_cmd_vtysh, 
        "no set weight <0-4294967295>", 
        "Negate a command or set its defaults\n"
@@ -11938,24 +10499,670 @@
        "BGP weight for routing table\n"
        "Weight value\n")
 
-DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_community_list_exact_cmd_vtysh, 
-       "show ip bgp ipv4 (unicast|multicast) community-list WORD exact-match", 
-       "Show running system information\n"
+DEFSH (VTYSH_BGPD, no_neighbor_ebgp_multihop_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "ebgp-multihop", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Allow EBGP neighbors not on directly connected networks\n")
+
+DEFSH (VTYSH_BGPD, dump_bgp_all_cmd_vtysh, 
+       "dump bgp all PATH", 
+       "Dump packet\n"
+       "BGP packet dump\n"
+       "Dump all BGP packets\n"
+       "Output filename\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_ipv4_soft_out_cmd_vtysh, 
+       "clear ip bgp A.B.C.D ipv4 (unicast|multicast) soft out", 
+       "Reset functions\n"
        "IP information\n"
        "BGP information\n"
+       "BGP neighbor address to clear\n"
        "Address family\n"
        "Address Family modifier\n"
        "Address Family modifier\n"
-       "Display routes matching the community-list\n"
-       "community-list name\n"
-       "Exact match of the communities\n")
+       "Soft reconfig\n"
+       "Soft reconfig outbound update\n")
 
-DEFSH (VTYSH_BGPD, bgp_scan_time_cmd_vtysh, 
-       "bgp scan-time <5-60>", 
+DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_area_route_prefix_cmd_vtysh, 
+       "show ipv6 ospf6 area A.B.C.D route (X::X|detail)", 
+       "Show running system information\n"
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Area information\n"
+       "Area ID (as an IPv4 notation)\n"
+       "Routing Table\n"
+       "Specify IPv6 address\n"
+       "Detailed information\n"
+       )
+
+DEFSH (VTYSH_RIPNGD, ripng_passive_interface_cmd_vtysh, 
+       "passive-interface IFNAME", 
+       "Suppress routing updates on an interface\n"
+       "Interface name\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_neighbors_peer_cmd_vtysh, 
+       "show bgp neighbors (A.B.C.D|X:X::X:X)", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n")
+
+DEFSH (VTYSH_OSPFD, no_debug_ospf_packet_all_cmd_vtysh, 
+       "no debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all)", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
+       "OSPF information\n"
+       "OSPF packets\n"
+       "OSPF Hello\n"
+       "OSPF Database Description\n"
+       "OSPF Link State Request\n"
+       "OSPF Link State Update\n"
+       "OSPF Link State Acknowledgment\n"
+       "OSPF all packets\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, ipv6_prefix_list_seq_cmd_vtysh, 
+       "ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) (X:X::X:X/M|any)", 
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "sequence number of an entry\n"
+       "Sequence number\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
+       "Any prefix match.  Same as \"::0/0 le 128\"\n")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_kernel_cmd_vtysh, 
+       "no redistribute kernel", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Kernel routes\n")
+
+DEFSH (VTYSH_BGPD, set_weight_cmd_vtysh, 
+       "set weight <0-4294967295>", 
+       "Set values in destination routing protocol\n"
+       "BGP weight for routing table\n"
+       "Weight value\n")
+
+DEFSH (VTYSH_OSPFD, ospf_default_information_originate_type_routemap_cmd_vtysh, 
+       "default-information originate metric-type (1|2) route-map WORD", 
+       "Control distribution of default information\n"
+       "Distribute a default route\n"
+       "OSPF metric type for default routes\n"
+       "Set OSPF External Type 1 metrics\n"
+       "Set OSPF External Type 2 metrics\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_bgp_metric_cmd_vtysh, 
+       "no redistribute bgp metric", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Border Gateway Protocol (BGP)\n"
+       "Metric\n")
+
+DEFSH (VTYSH_RIPNGD, ripng_network_cmd_vtysh, 
+       "network IF_OR_ADDR", 
+       "RIPng enable on specified interface or network.\n"
+       "Interface or address")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_seq_le_ge_cmd_vtysh, 
+       "no ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M le <0-32> ge <0-32>", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "sequence number of an entry\n"
+       "Sequence number\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Maximum prefix length to be matched\n"
+       "Maximum prefix length\n"
+       "Minimum prefix length to be matched\n"
+       "Minimum prefix length\n")
+
+DEFSH (VTYSH_OSPFD, no_ospf_default_metric_val_cmd_vtysh, 
+       "no default-metric <0-16777214>", 
+       "Negate a command or set its defaults\n"
+       "Set metric of redistributed routes\n"
+       "Default metric\n")
+
+DEFSH (VTYSH_OSPFD, ospf_distance_ospf_external_cmd_vtysh, 
+       "distance ospf external <1-255>", 
+       "Define an administrative distance\n"
+       "OSPF Administrative distance\n"
+       "External routes\n"
+       "Distance for external routes\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_scan_time_val_cmd_vtysh, 
+       "no bgp scan-time <5-60>", 
+       "Negate a command or set its defaults\n"
        "BGP specific commands\n"
        "Configure background scanner interval\n"
        "Scanner interval (seconds)\n")
 
+DEFSH (VTYSH_BGPD, old_ipv6_aggregate_address_summary_only_cmd_vtysh, 
+       "ipv6 bgp aggregate-address X:X::X:X/M summary-only", 
+       "IPv6 information\n"
+       "BGP information\n"
+       "Configure BGP aggregate entries\n"
+       "Aggregate prefix\n"
+       "Filter more specific routes from updates\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_route_cmd_vtysh, 
+       "show bgp X:X::X:X", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Network in the BGP routing table to display\n")
+
+DEFSH (VTYSH_OSPFD, show_ip_ospf_database_type_adv_router_cmd_vtysh, 
+       "show ip ospf database (" "asbr-summary|external|network|router|summary" "" "" ") adv-router A.B.C.D", 
+       "Show running system information\n"
+       "IP information\n"
+       "OSPF information\n"
+       "Database summary\n"
+       "ASBR summary link states\n" "External link states\n" "Network link states\n" "Router link states\n" "Network summary link states\n" "" "" "" ""
+       "Advertising Router link states\n"
+       "Advertising Router (as an IP address)\n")
+
+DEFSH (VTYSH_BGPD, no_ip_community_list_name_all_cmd_vtysh, 
+       "no ip community-list (standard|expanded) WORD", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Add a community list entry\n"
+       "Add a standard community-list entry\n"
+       "Add an expanded community-list entry\n"
+       "Community list name\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_rd_neighbors_peer_cmd_vtysh, 
+       "show ip bgp vpnv4 rd ASN:nn_or_IP-address:nn neighbors A.B.C.D", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display VPNv4 NLRI specific information\n"
+       "Display information about all VPNv4 NLRIs\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_as_in_cmd_vtysh, 
+       "clear ip bgp <1-65535> in", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear peers with the AS number\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_RIPD, ip_rip_send_version_cmd_vtysh, 
+       "ip rip send version (1|2)", 
+       "IP information\n"
+       "Routing Information Protocol\n"
+       "Advertisement transmission\n"
+       "Version control\n"
+       "RIP version 1\n"
+       "RIP version 2\n")
+
+DEFSH (VTYSH_OSPFD, no_ospf_authentication_key_cmd_vtysh, 
+       "no ospf authentication-key", 
+       "Negate a command or set its defaults\n"
+       "OSPF interface commands\n"
+       "Authentication password (key)\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_extended_host_host_cmd_vtysh, 
+       "no access-list (<100-199>|<2000-2699>) (deny|permit) ip host A.B.C.D host A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "Add an access list entry\n"
+       "IP extended access list\n"
+       "IP extended access list (expanded range)\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Any Internet Protocol\n"
+       "A single source host\n"
+       "Source address\n"
+       "A single destination host\n"
+       "Destination address\n")
+
+DEFSH (VTYSH_BGPD, neighbor_dont_capability_negotiate_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "dont-capability-negotiate", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Do not perform capability negotiation\n")
+
+DEFSH (VTYSH_OSPFD, no_area_vlink_param4_cmd_vtysh, 
+       "no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
+       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) "
+       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) "
+       "(hello-interval|retransmit-interval|transmit-delay|dead-interval) "
+       "(hello-interval|retransmit-interval|transmit-delay|dead-interval)", 
+       "Negate a command or set its defaults\n"
+       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
+       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n"
+       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n"
+       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n"
+       "Time between HELLO packets\n" "Time between retransmitting lost link state advertisements\n" "Link state transmit delay\n" "Interval after which a neighbor is declared dead\n" "Seconds\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_in_prefix_filter_cmd_vtysh, 
+       "clear ip bgp A.B.C.D in prefix-filter", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "BGP neighbor address to clear\n"
+       "Soft reconfig inbound update\n"
+       "Push out the existing ORF prefix-list\n")
+
+DEFSH (VTYSH_OSPFD, area_vlink_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D", 
+       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_weight_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "weight", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Set default weight for routes from this neighbor\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, clear_ipv6_prefix_list_name_prefix_cmd_vtysh, 
+       "clear ipv6 prefix-list WORD X:X::X:X/M", 
+       "Reset functions\n"
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n")
+
+DEFSH (VTYSH_ZEBRA, ip_irdp_address_preference_cmd_vtysh, 
+       "ip irdp address A.B.C.D <0-2147483647>", 
+       "IP information\n"
+       "ICMP Router discovery on this interface\n"
+       "Specify IRDP address and preference to proxy-advertise\n"
+       "Set IRDP address for proxy-advertise\n"
+       "Preference level\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_external_soft_in_cmd_vtysh, 
+       "clear ip bgp external soft in", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all external peers\n"
+       "Soft reconfig\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_BGPD, no_set_vpnv4_nexthop_cmd_vtysh, 
+       "no set vpnv4 next-hop", 
+       "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "VPNv4 information\n"
+       "VPNv4 next-hop address\n")
+
+DEFSH (VTYSH_BGPD, bgp_multiple_instance_cmd_vtysh, 
+       "bgp multiple-instance", 
+       "BGP information\n"
+       "Enable bgp multiple instance\n")
+
+DEFSH (VTYSH_BGPD, no_set_ipv6_nexthop_global_cmd_vtysh, 
+       "no set ipv6 next-hop global", 
+       "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "IPv6 information\n"
+       "IPv6 next-hop address\n"
+       "IPv6 global address\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_neighbors_cmd_vtysh, 
+       "show bgp neighbors", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Detailed information on TCP and BGP neighbor connections\n")
+
+DEFSH (VTYSH_RIPD, no_match_ip_next_hop_val_cmd_vtysh, 
+       "no match ip next-hop WORD", 
+       "Negate a command or set its defaults\n"
+       "Match values from routing table\n"
+       "IP information\n"
+       "Match next-hop address of route\n"
+       "IP access-list name\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_community2_cmd_vtysh, 
+       "show bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_ipv6_prefix_list_cmd_vtysh, 
+       "show bgp ipv6 prefix-list WORD", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Display routes conforming to the prefix-list\n"
+       "IPv6 prefix-list name\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_cmd_vtysh, 
+       "clear bgp ipv6 (A.B.C.D|X:X::X:X)", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "BGP neighbor address to clear\n"
+       "BGP IPv6 neighbor to clear\n")
+
+DEFSH (VTYSH_OSPFD, area_shortcut_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) shortcut (default|enable|disable)", 
+       "OSPF area parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "Configure the area's shortcutting mode\n"
+       "Set default shortcutting behavior\n"
+       "Enable shortcutting through the area\n"
+       "Disable shortcutting through the area\n")
+
+DEFSH (VTYSH_RIPNGD, ripng_redistribute_kernel_cmd_vtysh, 
+       "redistribute kernel", 
+       "Redistribute information from another routing protocol\n"
+       "Kernel routes\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, ip_prefix_list_ge_le_cmd_vtysh, 
+       "ip prefix-list WORD (deny|permit) A.B.C.D/M ge <0-32> le <0-32>", 
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Minimum prefix length to be matched\n"
+       "Minimum prefix length\n"
+       "Maximum prefix length to be matched\n"
+       "Maximum prefix length\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_default_local_preference_cmd_vtysh, 
+       "no bgp default local-preference", 
+       "Negate a command or set its defaults\n"
+       "BGP specific commands\n"
+       "Configure BGP defaults\n"
+       "local preference (higher=more preferred)\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_ipv4_soft_in_cmd_vtysh, 
+       "clear ip bgp A.B.C.D ipv4 (unicast|multicast) soft in", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "BGP neighbor address to clear\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Soft reconfig\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_BGPD, bgp_redistribute_ipv6_rmap_cmd_vtysh, 
+       "redistribute (connected|kernel|ospf6|ripng|static) route-map WORD", 
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Kernel routes\n"
+       "Open Shurtest Path First (OSPFv3)\n"
+       "Routing Information Protocol (RIPng)\n"
+       "Static routes\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_route_cmd_vtysh, 
+       "show ipv6 ospf6 route", 
+       "Show running system information\n"
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Routing table\n"
+       )
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_extended_any_mask_cmd_vtysh, 
+       "access-list (<100-199>|<2000-2699>) (deny|permit) ip any A.B.C.D A.B.C.D", 
+       "Add an access list entry\n"
+       "IP extended access list\n"
+       "IP extended access list (expanded range)\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Any Internet Protocol\n"
+       "Any source host\n"
+       "Destination address\n"
+       "Destination Wildcard bits\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_RIPNGD|VTYSH_OSPF6D, router_zebra_cmd_vtysh, 
+       "router zebra", 
+       "Enable a routing process\n"
+       "Make connection to zebra daemon\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_instance_all_cmd_vtysh, 
+       "clear ip bgp view WORD *", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "BGP view\n"
+       "view name\n"
+       "Clear all peers\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_default_originate_rmap_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "default-originate route-map WORD", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Originate default route to this neighbor\n"
+       "Route-map to specify criteria to originate default\n"
+       "route-map name\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, no_ipv6_prefix_list_cmd_vtysh, 
+       "no ipv6 prefix-list WORD", 
+       "Negate a command or set its defaults\n"
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n")
+
+DEFSH (VTYSH_OSPFD, area_vlink_authtype_args_authkey_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
+       "(authentication|) (message-digest|null) "
+       "(authentication-key|) AUTH_KEY", 
+       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n"
+       "Enable authentication on this virtual link\n" "dummy string \n" "Use null authentication\n" "Use message-digest authentication\n"
+       "Authentication password (key)\n" "The OSPF password (key)")
+
+DEFSH (VTYSH_RIPNGD, ripng_redistribute_static_routemap_cmd_vtysh, 
+       "redistribute static route-map WORD", 
+       "Redistribute information from another routing protocol\n"
+       "Static routes\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_RIPD, accept_lifetime_day_month_month_day_cmd_vtysh, 
+       "accept-lifetime HH:MM:SS <1-31> MONTH <1993-2035> HH:MM:SS MONTH <1-31> <1993-2035>", 
+       "Set accept lifetime of the key\n"
+       "Time to start\n"
+       "Day of th month to start\n"
+       "Month of the year to start\n"
+       "Year to start\n"
+       "Time to expire\n"
+       "Month of the year to expire\n"
+       "Day of th month to expire\n"
+       "Year to expire\n")
+
+DEFSH (VTYSH_OSPF6D, no_debug_ospf6_all_cmd_vtysh, 
+       "no debug ospf6 all", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Turn off ALL OSPFv3 debugging\n")
+
+DEFSH (VTYSH_OSPFD, ospf_default_information_originate_always_type_metric_cmd_vtysh, 
+       "default-information originate always metric-type (1|2) metric <0-16777214>", 
+       "Control distribution of default information\n"
+       "Distribute a default route\n"
+       "Always advertise default route\n"
+       "OSPF metric type for default routes\n"
+       "Set OSPF External Type 1 metrics\n"
+       "Set OSPF External Type 2 metrics\n"
+       "OSPF default metric\n"
+       "OSPF metric\n")
+
+DEFSH (VTYSH_BGPD, neighbor_route_server_client_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "route-server-client", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Configure a neighbor as Route Server client\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_bgp_community2_exact_cmd_vtysh, 
+       "show ipv6 bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "BGP information\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "Exact match of the communities")
+
+DEFSH (VTYSH_BGPD, show_bgp_prefix_longer_cmd_vtysh, 
+       "show bgp X:X::X:X/M longer-prefixes", 
+       "Show running system information\n"
+       "BGP information\n"
+       "IPv6 prefix <network>/<length>\n"
+       "Display route and more specific routes\n")
+
+DEFSH (VTYSH_OSPFD, ospf_default_information_originate_type_cmd_vtysh, 
+       "default-information originate metric-type (1|2)", 
+       "Control distribution of default information\n"
+       "Distribute a default route\n"
+       "OSPF metric type for default routes\n"
+       "Set OSPF External Type 1 metrics\n"
+       "Set OSPF External Type 2 metrics\n")
+
+DEFSH (VTYSH_OSPFD, no_neighbor_priority_cmd_vtysh, 
+       "no neighbor A.B.C.D priority <0-255>", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor IP address\n"
+       "Neighbor Priority\n"
+       "Priority\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_distance_source_access_list_cmd_vtysh, 
+       "no distance <1-255> A.B.C.D/M WORD", 
+       "Negate a command or set its defaults\n"
+       "Define an administrative distance\n"
+       "Administrative distance\n"
+       "IP source prefix\n"
+       "Access list name\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, ip_prefix_list_seq_le_ge_cmd_vtysh, 
+       "ip prefix-list WORD seq <1-4294967295> (deny|permit) A.B.C.D/M le <0-32> ge <0-32>", 
+       "IP information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "sequence number of an entry\n"
+       "Sequence number\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Maximum prefix length to be matched\n"
+       "Maximum prefix length\n"
+       "Minimum prefix length to be matched\n"
+       "Minimum prefix length\n")
+
+DEFSH (VTYSH_BGPD, neighbor_remote_as_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "remote-as <1-65535>", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Specify a BGP neighbor\n"
+       "AS number\n")
+
+DEFSH (VTYSH_OSPFD, no_debug_ospf_lsa_sub_cmd_vtysh, 
+       "no debug ospf lsa (generate|flooding|install|refresh)", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
+       "OSPF information\n"
+       "OSPF Link State Advertisement\n"
+       "LSA Generation\n"
+       "LSA Flooding\n"
+       "LSA Install/Delete\n"
+       "LSA Refres\n")
+
+DEFSH (VTYSH_BGPD, no_match_origin_cmd_vtysh, 
+       "no match origin", 
+       "Negate a command or set its defaults\n"
+       "Match values from routing table\n"
+       "BGP origin code\n")
+
+DEFSH (VTYSH_BGPD, neighbor_remove_private_as_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "remove-private-AS", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Remove private AS number from outbound updates\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, show_ipv6_prefix_list_detail_name_cmd_vtysh, 
+       "show ipv6 prefix-list detail WORD", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Detail of prefix lists\n"
+       "Name of a prefix list\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_flap_address_cmd_vtysh, 
+       "show ip bgp flap-statistics A.B.C.D", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display flap statistics of routes\n"
+       "Network in the BGP routing table to display\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_redistribute_ipv4_rmap_cmd_vtysh, 
+       "no redistribute (connected|kernel|ospf|rip|static) route-map WORD", 
+       "Negate a command or set its defaults\n"
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Kernel routes\n"
+       "Open Shurtest Path First (OSPF)\n"
+       "Routing Information Protocol (RIP)\n"
+       "Static routes\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_peer_group_cmd_vtysh, 
+       "clear bgp peer-group WORD", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear all members of peer-group\n"
+       "BGP peer-group name\n")
+
+DEFSH (VTYSH_BGPD, neighbor_interface_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X) " "interface WORD", 
+       "Specify neighbor router\n"
+       "Neighbor address\nIPv6 address\n"
+       "Interface\n"
+       "Interface name\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_peer_soft_in_cmd_vtysh, 
+       "clear bgp ipv6 (A.B.C.D|X:X::X:X) soft in", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "BGP neighbor address to clear\n"
+       "BGP IPv6 neighbor to clear\n"
+       "Soft reconfig\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_all_soft_cmd_vtysh, 
+       "clear bgp * soft", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear all peers\n"
+       "Soft reconfig\n")
+
 DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_community3_exact_cmd_vtysh, 
        "show ip bgp ipv4 (unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
        "Show running system information\n"
@@ -11979,305 +11186,15 @@
        "Do not export to next AS (well-known community)\n"
        "Exact match of the communities")
 
-DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_vpnv4_in_cmd_vtysh, 
-       "clear ip bgp A.B.C.D vpnv4 unicast in", 
-       "Reset functions\n"
+DEFSH (VTYSH_BGPD, show_ip_bgp_neighbor_received_routes_cmd_vtysh, 
+       "show ip bgp neighbors (A.B.C.D|X:X::X:X) received-routes", 
+       "Show running system information\n"
        "IP information\n"
        "BGP information\n"
-       "BGP neighbor address to clear\n"
-       "Address family\n"
-       "Address Family Modifier\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_OSPFD, no_ip_ospf_authentication_key_addr_cmd_vtysh, 
-       "no ip ospf authentication-key A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Authentication password (key)\n"
-       "Address of interface")
-
-DEFSH (VTYSH_BGPD, ipv6_aggregate_address_summary_only_cmd_vtysh, 
-       "aggregate-address X:X::X:X/M summary-only", 
-       "Configure BGP aggregate entries\n"
-       "Aggregate prefix\n"
-       "Filter more specific routes from updates\n")
-
-DEFSH (VTYSH_BGPD, ipv6_mbgp_neighbor_routes_cmd_vtysh, 
-       "show ipv6 mbgp neighbors (A.B.C.D|X:X::X:X) routes", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "MBGP information\n"
        "Detailed information on TCP and BGP neighbor connections\n"
        "Neighbor to display information about\n"
        "Neighbor to display information about\n"
-       "Display routes learned from neighbor\n")
-
-DEFSH (VTYSH_RIPD, accept_lifetime_infinite_month_day_cmd_vtysh, 
-       "accept-lifetime HH:MM:SS MONTH <1-31> <1993-2035> infinite", 
-       "Set accept lifetime of the key\n"
-       "Time to start\n"
-       "Month of the year to start\n"
-       "Day of th month to start\n"
-       "Year to start\n"
-       "Never expires")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, ipv6_prefix_list_seq_le_ge_cmd_vtysh, 
-       "ipv6 prefix-list WORD seq <1-4294967295> (deny|permit) X:X::X:X/M le <0-128> ge <0-128>", 
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "sequence number of an entry\n"
-       "Sequence number\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
-       "Maximum prefix length to be matched\n"
-       "Maximum prefix length\n"
-       "Minimum prefix length to be matched\n"
-       "Minimum prefix length\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_external_soft_out_cmd_vtysh, 
-       "clear bgp ipv6 external soft out", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "Clear all external peers\n"
-       "Soft reconfig\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_as_ipv4_in_prefix_filter_cmd_vtysh, 
-       "clear ip bgp <1-65535> ipv4 (unicast|multicast) in prefix-filter", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear peers with the AS number\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig inbound update\n"
-       "Push out prefix-list ORF and do inbound soft reconfig\n")
-
-DEFSH (VTYSH_BGPD, neighbor_attr_unchanged5_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged as-path next-hop med", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "BGP attribute is propagated unchanged to this neighbor\n"
-       "As-path attribute\n"
-       "Nexthop attribute\n"
-       "Med attribute\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_instance_neighbors_cmd_vtysh, 
-       "show ip bgp view WORD neighbors", 
-       "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "BGP view\n"
-       "View name\n"
-       "Detailed information on TCP and BGP neighbor connections\n")
-
-DEFSH (VTYSH_OSPF6D, no_ipv6_ospf6_passive_cmd_vtysh, 
-       "no ipv6 ospf6 passive", 
-       "Negate a command or set its defaults\n"
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "passive interface: No Adjacency will be formed on this I/F\n"
-       )
-
-DEFSH (VTYSH_OSPF6D, ipv6_ospf6_passive_cmd_vtysh, 
-       "ipv6 ospf6 passive", 
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "passive interface: No Adjacency will be formed on this I/F\n"
-       )
-
-DEFSH (VTYSH_OSPFD, no_ip_ospf_authentication_key_cmd_vtysh, 
-       "no ip ospf authentication-key", 
-       "Negate a command or set its defaults\n"
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Authentication password (key)\n")
-
-DEFSH (VTYSH_RIPNGD, ripng_redistribute_connected_metric_cmd_vtysh, 
-       "redistribute connected metric <0-16>", 
-       "Redistribute information from another routing protocol\n"
-       "Connected\n"
-       "Metric\n"
-       "Metric value\n")
-
-DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_area_spf_node_cmd_vtysh, 
-       "show ipv6 ospf6 area A.B.C.D spf node", 
-       "Show running system information\n"
-       "IPv6 Information\n"
-       "Open Shortest Path First (OSPF) for IPv6\n"
-       "Area information\n"
-       "Area ID (as an IPv4 notation)\n"
-       "Shortest Path First caculation\n"
-       "vertex infomation\n"
-       )
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, ipv6_prefix_list_le_ge_cmd_vtysh, 
-       "ipv6 prefix-list WORD (deny|permit) X:X::X:X/M le <0-128> ge <0-128>", 
-       "IPv6 information\n"
-       "Build a prefix list\n"
-       "Name of a prefix list\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
-       "Maximum prefix length to be matched\n"
-       "Maximum prefix length\n"
-       "Minimum prefix length to be matched\n"
-       "Minimum prefix length\n")
-
-DEFSH (VTYSH_BGPD, bgp_cluster_id_cmd_vtysh, 
-       "bgp cluster-id A.B.C.D", 
-       "BGP information\n"
-       "Configure Route-Reflector Cluster-id\n"
-       "Route-Reflector Cluster-id in IP address format\n")
-
-DEFSH (VTYSH_OSPF6D, ospf6_redistribute_cmd_vtysh, 
-       "redistribute (static|kernel|connected|ripng|bgp)", 
-       "Redistribute\n"
-       "Static route\n"
-       "Kernel route\n"
-       "Connected route\n"
-       "RIPng route\n"
-       "BGP route\n"
-      )
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_all_ipv4_soft_out_cmd_vtysh, 
-       "clear ip bgp * ipv4 (unicast|multicast) soft out", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all peers\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Soft reconfig\n"
-       "Soft reconfig outbound update\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_standard_any_cmd_vtysh, 
-       "no access-list (<1-99>|<1300-1999>) (deny|permit) any", 
-       "Negate a command or set its defaults\n"
-       "Add an access list entry\n"
-       "IP standard access list\n"
-       "IP standard access list (expanded range)\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Any source host\n")
-
-DEFSH (VTYSH_BGPD, set_ecommunity_soo_cmd_vtysh, 
-       "set extcommunity soo .ASN:nn_or_IP-address:nn", 
-       "Set values in destination routing protocol\n"
-       "BGP extended community attribute\n"
-       "Site-of-Origin extended community\n"
-       "VPN extended community\n")
-
-DEFSH (VTYSH_BGPD, bgp_redistribute_ipv4_metric_cmd_vtysh, 
-       "redistribute (connected|kernel|ospf|rip|static) metric <0-4294967295>", 
-       "Redistribute information from another routing protocol\n"
-       "Connected\n"
-       "Kernel routes\n"
-       "Open Shurtest Path First (OSPF)\n"
-       "Routing Information Protocol (RIP)\n"
-       "Static routes\n"
-       "Metric for redistributed routes\n"
-       "Default metric\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_instance_all_cmd_vtysh, 
-       "clear bgp view WORD *", 
-       "Reset functions\n"
-       "BGP information\n"
-       "BGP view\n"
-       "view name\n"
-       "Clear all peers\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_ipv6_prefix_longer_cmd_vtysh, 
-       "show bgp ipv6 X:X::X:X/M longer-prefixes", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Address family\n"
-       "IPv6 prefix <network>/<length>\n"
-       "Display route and more specific routes\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_as_soft_in_cmd_vtysh, 
-       "clear bgp <1-65535> soft in", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear peers with the AS number\n"
-       "Soft reconfig\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, ipv6_access_list_any_cmd_vtysh, 
-       "ipv6 access-list WORD (deny|permit) any", 
-       "IPv6 information\n"
-       "Add an access list entry\n"
-       "IPv6 zebra access-list\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
-       "Any prefixi to match\n")
-
-DEFSH (VTYSH_OSPFD, no_ospf_retransmit_interval_cmd_vtysh, 
-       "no ospf retransmit-interval", 
-       "Negate a command or set its defaults\n"
-       "OSPF interface commands\n"
-       "Time between retransmitting lost link state advertisements\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_timers_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "timers", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "BGP per neighbor timers\n")
-
-DEFSH (VTYSH_BGPD, bgp_cluster_id32_cmd_vtysh, 
-       "bgp cluster-id <1-4294967295>", 
-       "BGP information\n"
-       "Configure Route-Reflector Cluster-id\n"
-       "Route-Reflector Cluster-id as 32 bit quantity\n")
-
-DEFSH (VTYSH_BGPD, old_no_ipv6_aggregate_address_summary_only_cmd_vtysh, 
-       "no ipv6 bgp aggregate-address X:X::X:X/M summary-only", 
-       "Negate a command or set its defaults\n"
-       "IPv6 information\n"
-       "BGP information\n"
-       "Configure BGP aggregate entries\n"
-       "Aggregate prefix\n"
-       "Filter more specific routes from updates\n")
-
-DEFSH (VTYSH_BGPD, set_ipv6_nexthop_global_cmd_vtysh, 
-       "set ipv6 next-hop global X:X::X:X", 
-       "Set values in destination routing protocol\n"
-       "IPv6 information\n"
-       "IPv6 next-hop address\n"
-       "IPv6 global address\n"
-       "IPv6 address of next hop\n")
-
-DEFSH (VTYSH_BGPD, no_set_ipv6_nexthop_local_val_cmd_vtysh, 
-       "no set ipv6 next-hop local X:X::X:X", 
-       "Negate a command or set its defaults\n"
-       "Set values in destination routing protocol\n"
-       "IPv6 information\n"
-       "IPv6 next-hop address\n"
-       "IPv6 local address\n"
-       "IPv6 address of next hop\n")
-
-DEFSH (VTYSH_ZEBRA, ip_address_secondary_cmd_vtysh, 
-       "ip address A.B.C.D/M secondary", 
-       "Interface Internet Protocol config commands\n"
-       "Set the IP address of an interface\n"
-       "IP address (e.g. 10.0.0.1/8)\n"
-       "Secondary IP address\n")
-
-DEFSH (VTYSH_OSPFD, no_ip_ospf_message_digest_key_addr_cmd_vtysh, 
-       "no ip ospf message-digest-key <1-255> A.B.C.D", 
-       "Negate a command or set its defaults\n"
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Message digest authentication password (key)\n"
-       "Key ID\n"
-       "Address of interface")
+       "Display the received routes from neighbor\n")
 
 DEFSH (VTYSH_BGPD, aggregate_address_mask_summary_as_set_cmd_vtysh, 
        "aggregate-address A.B.C.D A.B.C.D summary-only as-set", 
@@ -12287,41 +11204,230 @@
        "Filter more specific routes from updates\n"
        "Generate AS set path information\n")
 
-DEFSH (VTYSH_BGPD, no_bgp_redistribute_ipv6_cmd_vtysh, 
-       "no redistribute (connected|kernel|ospf6|ripng|static)", 
+DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_neighbor_routerid_cmd_vtysh, 
+       "show ipv6 ospf6 neighbor A.B.C.D", 
+       "Show running system information\n"
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Neighbor list\n"
+       "OSPF6 neighbor Router ID in IP address format\n"
+       )
+
+DEFSH (VTYSH_BGPD, bgp_cluster_id32_cmd_vtysh, 
+       "bgp cluster-id <1-4294967295>", 
+       "BGP information\n"
+       "Configure Route-Reflector Cluster-id\n"
+       "Route-Reflector Cluster-id as 32 bit quantity\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_as_cmd_vtysh, 
+       "clear bgp ipv6 <1-65535>", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear peers with the AS number\n")
+
+DEFSH (VTYSH_OSPFD|VTYSH_OSPFD, show_ip_ospf_neighbor_id_cmd_vtysh, 
+       "show ip ospf neighbor A.B.C.D", 
+       "Show running system information\n"
+       "IP information\n"
+       "OSPF information\n"
+       "Neighbor list\n"
+       "Neighbor ID\n")
+
+DEFSH (VTYSH_OSPFD, no_ip_ospf_hello_interval_addr_cmd_vtysh, 
+       "no ip ospf hello-interval A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Time between HELLO packets\n"
+       "Address of interface")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_kernel_metric_val_cmd_vtysh, 
+       "no redistribute kernel metric <0-16>", 
        "Negate a command or set its defaults\n"
        "Redistribute information from another routing protocol\n"
-       "Connected\n"
        "Kernel routes\n"
-       "Open Shurtest Path First (OSPFv3)\n"
-       "Routing Information Protocol (RIPng)\n"
-       "Static routes\n")
+       "Metric\n"
+       "Metric value\n")
 
-DEFSH (VTYSH_ZEBRA, no_ip_route_cmd_vtysh, 
-       "no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0)", 
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_rmap_onmatch_goto_cmd_vtysh, 
+       "no on-match goto", 
        "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Establish static routes\n"
-       "IP destination prefix (e.g. 10.0.0.0/8)\n"
-       "IP gateway address\n"
-       "IP gateway interface name\n"
-       "Null interface\n")
+       "Exit policy on matches\n"
+       "Next clause\n")
 
-DEFSH (VTYSH_BGPD, neighbor_attr_unchanged2_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged as-path (next-hop|med)", 
+DEFSH (VTYSH_OSPF6D, ospf6_redistribute_routemap_cmd_vtysh, 
+       "redistribute (static|kernel|connected|ripng|bgp) route-map WORD", 
+       "Redistribute\n"
+       "Static routes\n"
+       "Kernel route\n"
+       "Connected route\n"
+       "RIPng route\n"
+       "BGP route\n"
+       "Route map reference\n"
+       "Route map name\n"
+      )
+
+DEFSH (VTYSH_BGPD, neighbor_local_as_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "local-as <1-65535>", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Specify a local-as number\n"
+       "AS number used as local AS\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_instance_all_ipv4_in_prefix_filter_cmd_vtysh, 
+       "clear ip bgp view WORD * ipv4 (unicast|multicast) in prefix-filter", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all peers\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Soft reconfig inbound update\n"
+       "Push out prefix-list ORF and do inbound soft reconfig\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_match_ip_address_prefix_list_val_cmd_vtysh, 
+       "no match ip address prefix-list WORD", 
+       "Negate a command or set its defaults\n"
+       "Match values from routing table\n"
+       "IP information\n"
+       "Match address of route\n"
+       "Match entries of prefix-lists\n"
+       "IP prefix-list name\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_attr_unchanged9_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged med next-hop as-path", 
+       "Negate a command or set its defaults\n"
        "Specify neighbor router\n"
        "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
        "BGP attribute is propagated unchanged to this neighbor\n"
-       "As-path attribute\n"
+       "Med attribute\n"
        "Nexthop attribute\n"
-       "Med attribute\n")
+       "As-path attribute\n")
 
-DEFSH (VTYSH_BGPD, no_ipv6_aggregate_address_summary_only_cmd_vtysh, 
-       "no aggregate-address X:X::X:X/M summary-only", 
+DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_ospf6_metric_cmd_vtysh, 
+       "no redistribute ospf6 metric", 
        "Negate a command or set its defaults\n"
-       "Configure BGP aggregate entries\n"
-       "Aggregate prefix\n"
-       "Filter more specific routes from updates\n")
+       "Redistribute information from another routing protocol\n"
+       "IPv6 Open Shortest Path First (OSPFv3)\n"
+       "Metric\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_community3_cmd_vtysh, 
+       "show ip bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_timers_connect_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X) " "timers connect", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nIPv6 address\n"
+       "BGP per neighbor timers\n"
+       "BGP connect timer\n")
+
+DEFSH (VTYSH_BGPD, set_community_cmd_vtysh, 
+       "set community .AA:NN", 
+       "Set values in destination routing protocol\n"
+       "BGP community attribute\n"
+       "Community number in aa:nn format or local-AS|no-advertise|no-export|internet or additive\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_community_list_exact_cmd_vtysh, 
+       "show ip bgp community-list WORD exact-match", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display routes matching the community-list\n"
+       "community-list name\n"
+       "Exact match of the communities\n")
+
+DEFSH (VTYSH_BGPD, bgp_network_cmd_vtysh, 
+       "network A.B.C.D/M", 
+       "Specify a network to announce via BGP\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_summary_cmd_vtysh, 
+       "show ip bgp summary", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Summary of BGP neighbor status\n")
+
+DEFSH (VTYSH_BGPD, no_vpnv4_network_cmd_vtysh, 
+       "no network A.B.C.D/M rd ASN:nn_or_IP-address:nn tag WORD", 
+       "Negate a command or set its defaults\n"
+       "Specify a network to announce via BGP\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Specify Route Distinguisher\n"
+       "VPN Route Distinguisher\n"
+       "BGP tag\n"
+       "tag value\n")
+
+DEFSH (VTYSH_BGPD, bgp_network_backdoor_cmd_vtysh, 
+       "network A.B.C.D/M backdoor", 
+       "Specify a network to announce via BGP\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
+       "Specify a BGP backdoor route\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_send_community_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "send-community", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Send Community attribute to this neighbor\n")
+
+DEFSH (VTYSH_ZEBRA, debug_zebra_packet_detail_cmd_vtysh, 
+       "debug zebra packet (recv|send) detail", 
+       "Debugging functions (see also 'undebug')\n"
+       "Zebra configuration\n"
+       "Debug option set for zebra packet\n"
+       "Debug option set for receive packet\n"
+       "Debug option set for send packet\n"
+       "Debug option set detaied information\n")
+
+DEFSH (VTYSH_OSPFD, show_ip_ospf_cmd_vtysh, 
+       "show ip ospf", 
+       "Show running system information\n"
+       "IP information\n"
+       "OSPF information\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_ipv6_filter_list_cmd_vtysh, 
+       "show bgp ipv6 filter-list WORD", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Display routes conforming to the filter-list\n"
+       "Regular expression access list name\n")
+
+DEFSH (VTYSH_RIPD, ip_rip_receive_version_2_cmd_vtysh, 
+       "ip rip receive version 2 1", 
+       "IP information\n"
+       "Routing Information Protocol\n"
+       "Advertisement reception\n"
+       "Version control\n"
+       "RIP version 2\n"
+       "RIP version 1\n")
+
+DEFSH (VTYSH_ZEBRA, ip_irdp_maxadvertinterval_cmd_vtysh, 
+       "ip irdp maxadvertinterval (0|<4-1800>)", 
+       "IP information\n"
+       "ICMP Router discovery on this interface\n"
+       "Set maximum time between advertisement\n"
+       "Maximum advertisement interval in seconds\n")
 
 DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_prefix_longer_cmd_vtysh, 
        "show ip bgp ipv4 (unicast|multicast) A.B.C.D/M longer-prefixes", 
@@ -12334,353 +11440,217 @@
        "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
        "Display route and more specific routes\n")
 
-DEFSH (VTYSH_BGPD, no_bgp_deterministic_med_cmd_vtysh, 
-       "no bgp deterministic-med", 
+DEFSH (VTYSH_BGPD, clear_bgp_all_soft_in_cmd_vtysh, 
+       "clear bgp * soft in", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear all peers\n"
+       "Soft reconfig\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_default_ipv4_unicast_cmd_vtysh, 
+       "no bgp default ipv4-unicast", 
        "Negate a command or set its defaults\n"
        "BGP specific commands\n"
-       "Pick the best-MED path among paths advertised from the neighboring AS\n")
+       "Configure BGP defaults\n"
+       "Activate ipv4-unicast for a peer by default\n")
 
-DEFSH (VTYSH_OSPFD, area_vlink_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D", 
-       "OSPF area parameters\n" "OSPF area ID in IP address format\n" "OSPF area ID as a decimal value\n" "Configure a virtual link\n" "Router ID of the remote ABR\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_community2_cmd_vtysh, 
-       "show ip bgp ipv4 (unicast|multicast) community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export)", 
+DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_area_topology_router_lsid_cmd_vtysh, 
+       "show ipv6 ospf6 area A.B.C.D topology (A.B.C.D|<0-4294967295>) (A.B.C.D|<0-4294967295>)", 
        "Show running system information\n"
-       "IP information\n"
-       "BGP information\n"
-       "Address family\n"
-       "Address Family modifier\n"
-       "Address Family modifier\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n")
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Area information\n"
+       "Area ID (as an IPv4 notation)\n"
+       "Shortest Path First tree information\n"
+       "Displays SPF topology table\n"
+       "Specify Router-ID\n"
+       "Specify Router-ID\n"
+       "Specify Link State ID\n"
+       "Specify Link State ID\n"
+       )
 
-DEFSH (VTYSH_OSPFD, debug_ospf_packet_send_recv_cmd_vtysh, 
-       "debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv|detail)", 
-       "Debugging functions\n"
-       "OSPF information\n"
-       "OSPF packets\n"
-       "OSPF Hello\n"
-       "OSPF Database Description\n"
-       "OSPF Link State Request\n"
-       "OSPF Link State Update\n"
-       "OSPF Link State Acknowledgment\n"
-       "OSPF all packets\n"
-       "Packet sent\n"
-       "Packet received\n"
-       "Detail information\n")
-
-DEFSH (VTYSH_BGPD, show_ipv6_bgp_community2_exact_cmd_vtysh, 
-       "show ipv6 bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
-       "Show running system information\n"
-       "IPv6 information\n"
-       "BGP information\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "Exact match of the communities")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, ipv6_access_list_remark_cmd_vtysh, 
-       "ipv6 access-list WORD remark .LINE", 
-       "IPv6 information\n"
-       "Add an access list entry\n"
-       "IPv6 zebra access-list\n"
-       "Access list entry comment\n"
-       "Comment up to 100 characters\n")
-
-DEFSH (VTYSH_OSPFD, no_ip_ospf_cost_addr_cmd_vtysh, 
-       "no ip ospf cost A.B.C.D", 
+DEFSH (VTYSH_OSPFD, no_ospf_message_digest_key_cmd_vtysh, 
+       "no ospf message-digest-key <1-255>", 
        "Negate a command or set its defaults\n"
-       "IP Information\n"
        "OSPF interface commands\n"
-       "Interface cost\n"
-       "Address of interface")
+       "Message digest authentication password (key)\n"
+       "Key ID\n")
 
-DEFSH (VTYSH_OSPFD, area_stub_cmd_vtysh, 
-       "area (A.B.C.D|<0-4294967295>) stub", 
-       "OSPF area parameters\n"
-       "OSPF area ID in IP address format\n"
-       "OSPF area ID as a decimal value\n"
-       "Configure OSPF area as stub\n")
-
-DEFSH (VTYSH_ZEBRA, show_table_cmd_vtysh, 
-       "show table", 
-       "Show running system information\n"
-       "default routing table to use for all clients\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_redistribute_ipv4_metric_rmap_cmd_vtysh, 
-       "no redistribute (connected|kernel|ospf|rip|static) metric <0-4294967295> route-map WORD", 
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, no_ipv6_prefix_list_le_cmd_vtysh, 
+       "no ipv6 prefix-list WORD (deny|permit) X:X::X:X/M le <0-128>", 
        "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Connected\n"
-       "Kernel routes\n"
-       "Open Shurtest Path First (OSPF)\n"
-       "Routing Information Protocol (RIP)\n"
-       "Static routes\n"
-       "Metric for redistributed routes\n"
-       "Default metric\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
+       "Maximum prefix length to be matched\n"
+       "Maximum prefix length\n")
 
-DEFSH (VTYSH_ZEBRA, show_ip_forwarding_cmd_vtysh, 
-       "show ip forwarding", 
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ip_prefix_list_prefix_first_match_cmd_vtysh, 
+       "show ip prefix-list WORD A.B.C.D/M first-match", 
        "Show running system information\n"
        "IP information\n"
-       "IP forwarding status\n")
-
-DEFSH (VTYSH_RIPNGD, ripng_redistribute_static_routemap_cmd_vtysh, 
-       "redistribute static route-map WORD", 
-       "Redistribute information from another routing protocol\n"
-       "Static routes\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_community_exact_cmd_vtysh, 
-       "show bgp community (AA:NN|local-AS|no-advertise|no-export) exact-match", 
-       "Show running system information\n"
-       "BGP information\n"
-       "Display routes matching the communities\n"
-       "community number\n"
-       "Do not send outside local AS (well-known community)\n"
-       "Do not advertise to any peer (well-known community)\n"
-       "Do not export to next AS (well-known community)\n"
-       "Exact match of the communities")
-
-DEFSH (VTYSH_OSPFD, no_debug_ospf_event_cmd_vtysh, 
-       "no debug ospf event", 
-       "Negate a command or set its defaults\n"
-       "Debugging functions (see also 'undebug')\n"
-       "OSPF information\n"
-       "OSPF event information\n")
-
-DEFSH (VTYSH_ZEBRA, show_ip_route_protocol_cmd_vtysh, 
-       "show ip route (bgp|connected|kernel|ospf|rip|static)", 
-       "Show running system information\n"
-       "IP information\n"
-       "IP routing table\n"
-       "Border Gateway Protocol (BGP)\n"
-       "Connected\n"
-       "Kernel\n"
-       "Open Shortest Path First (OSPF)\n"
-       "Routing Information Protocol (RIP)\n"
-       "Static routes\n")
-
-DEFSH (VTYSH_BGPD, ip_extcommunity_list_name_standard_cmd_vtysh, 
-       "ip extcommunity-list standard WORD (deny|permit) .AA:NN", 
-       "IP information\n"
-       "Add a extended community list entry\n"
-       "Specify standard extcommunity-list\n"
-       "Extended Community list name\n"
-       "Specify community to reject\n"
-       "Specify community to accept\n"
-       "Extended community attribute in 'rt aa:nn_or_IPaddr:nn' OR 'soo aa:nn_or_IPaddr:nn' format\n")
-
-DEFSH (VTYSH_BGPD, no_bgp_cluster_id_cmd_vtysh, 
-       "no bgp cluster-id", 
-       "Negate a command or set its defaults\n"
-       "BGP information\n"
-       "Configure Route-Reflector Cluster-id\n")
-
-DEFSH (VTYSH_RIPD, no_ip_rip_authentication_mode_type_cmd_vtysh, 
-       "no ip rip authentication mode (md5|text)", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
-       "Routing Information Protocol\n"
-       "Authentication control\n"
-       "Authentication mode\n"
-       "Keyed message digest\n"
-       "Clear text authentication\n")
-
-DEFSH (VTYSH_OSPFD, ospf_default_information_originate_metric_cmd_vtysh, 
-       "default-information originate metric <0-16777214>", 
-       "Control distribution of default information\n"
-       "Distribute a default route\n"
-       "OSPF default metric\n"
-       "OSPF metric\n")
-
-DEFSH (VTYSH_RIPNGD, show_debugging_ripng_cmd_vtysh, 
-       "show debugging ripng", 
-       "Show running system information\n"
-       "RIPng configuration\n"
-       "Debugging information\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_peer_group_soft_in_cmd_vtysh, 
-       "clear bgp peer-group WORD soft in", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Clear all members of peer-group\n"
-       "BGP peer-group name\n"
-       "Soft reconfig\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_BGPD, neighbor_ebgp_multihop_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "ebgp-multihop", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Allow EBGP neighbors not on directly connected networks\n")
-
-DEFSH (VTYSH_BGPD, match_aspath_cmd_vtysh, 
-       "match as-path WORD", 
-       "Match values from routing table\n"
-       "Match BGP AS path list\n"
-       "AS path access-list name\n")
-
-DEFSH (VTYSH_OSPFD, ospf_default_information_originate_metric_routemap_cmd_vtysh, 
-       "default-information originate metric <0-16777214> route-map WORD", 
-       "Control distribution of default information\n"
-       "Distribute a default route\n"
-       "OSPF default metric\n"
-       "OSPF metric\n"
-       "Route map reference\n"
-       "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_BGPD, clear_ip_bgp_all_soft_in_cmd_vtysh, 
-       "clear ip bgp * soft in", 
-       "Reset functions\n"
-       "IP information\n"
-       "BGP information\n"
-       "Clear all peers\n"
-       "Soft reconfig\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_ipv6_all_in_cmd_vtysh, 
-       "clear bgp ipv6 * in", 
-       "Reset functions\n"
-       "BGP information\n"
-       "Address family\n"
-       "Clear all peers\n"
-       "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_ZEBRA, show_ip_route_addr_cmd_vtysh, 
-       "show ip route A.B.C.D", 
-       "Show running system information\n"
-       "IP information\n"
-       "IP routing table\n"
-       "Network in the IP routing table to display\n")
-
-DEFSH (VTYSH_RIPNGD, no_ripng_redistribute_bgp_metric_val_cmd_vtysh, 
-       "no redistribute bgp metric <0-16>", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Border Gateway Protocol (BGP)\n"
-       "Metric\n"
-       "Metric value\n")
-
-DEFSH (VTYSH_RIPD|VTYSH_BGPD, no_ip_prefix_list_seq_cmd_vtysh, 
-       "no ip prefix-list WORD seq <1-4294967295> (deny|permit) (A.B.C.D/M|any)", 
-       "Negate a command or set its defaults\n"
-       "IP information\n"
        "Build a prefix list\n"
        "Name of a prefix list\n"
-       "sequence number of an entry\n"
-       "Sequence number\n"
-       "Specify packets to reject\n"
-       "Specify packets to forward\n"
        "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n"
-       "Any prefix match.  Same as \"0.0.0.0/0 le 32\"\n")
+       "First matched prefix\n")
 
-DEFSH (VTYSH_RIPD, no_rip_redistribute_type_metric_cmd_vtysh, 
-       "no redistribute (kernel|connected|static|ospf|bgp) metric <0-16>", 
-       "Negate a command or set its defaults\n"
-       "Redistribute information from another routing protocol\n"
-       "Kernel routes\n"
-       "Connected\n"
-       "Static routes\n"
-       "Open Shortest Path First (OSPF)\n"
-       "Border Gateway Protocol (BGP)\n"
-       "Metric\n"
-       "Metric value\n")
+DEFSH (VTYSH_OSPFD, debug_ospf_zebra_cmd_vtysh, 
+       "debug ospf zebra", 
+       "Debugging functions (see also 'undebug')\n"
+       "OSPF information\n"
+       "OSPF Zebra information\n")
 
-DEFSH (VTYSH_ZEBRA, show_ipv6_route_prefix_longer_cmd_vtysh, 
-       "show ipv6 route X:X::X:X/M longer-prefixes", 
+DEFSH (VTYSH_OSPFD, show_ip_ospf_database_type_id_self_cmd_vtysh, 
+       "show ip ospf database (" "asbr-summary|external|network|router|summary" "" "" ") A.B.C.D (self-originate|)", 
        "Show running system information\n"
        "IP information\n"
-       "IPv6 routing table\n"
-       "IPv6 prefix\n"
-       "Show route matching the specified Network/Mask pair only\n")
+       "OSPF information\n"
+       "Database summary\n"
+       "ASBR summary link states\n" "External link states\n" "Network link states\n" "Router link states\n" "Network summary link states\n" "" "" "" ""
+       "Link State ID (as an IP address)\n"
+       "Self-originated link states\n"
+       "\n")
 
-DEFSH (VTYSH_BGPD, neighbor_weight_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "weight <0-65535>", 
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Set default weight for routes from this neighbor\n"
-       "default weight\n")
-
-DEFSH (VTYSH_BGPD, clear_bgp_peer_group_in_prefix_filter_cmd_vtysh, 
-       "clear bgp peer-group WORD in prefix-filter", 
-       "Reset functions\n"
+DEFSH (VTYSH_BGPD, show_ip_bgp_neighbor_flap_cmd_vtysh, 
+       "show ip bgp neighbors (A.B.C.D|X:X::X:X) flap-statistics", 
+       "Show running system information\n"
+       "IP information\n"
        "BGP information\n"
-       "Clear all members of peer-group\n"
-       "BGP peer-group name\n"
-       "Soft reconfig inbound update\n"
-       "Push out prefix-list ORF and do inbound soft reconfig\n")
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n"
+       "Display flap statistics of the routes learned from neighbor\n")
 
-DEFSH (VTYSH_BGPD, bgp_distance_source_cmd_vtysh, 
-       "distance <1-255> A.B.C.D/M", 
-       "Define an administrative distance\n"
-       "Administrative distance\n"
-       "IP source prefix\n")
-
-DEFSH (VTYSH_BGPD, no_neighbor_local_as_val_cmd_vtysh, 
-       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "local-as <1-65535>", 
-       "Negate a command or set its defaults\n"
-       "Specify neighbor router\n"
-       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Specify a local-as number\n"
-       "AS number used as local AS\n")
-
-DEFSH (VTYSH_BGPD, no_ip_extcommunity_list_name_standard_cmd_vtysh, 
-       "no ip extcommunity-list standard WORD (deny|permit) .AA:NN", 
+DEFSH (VTYSH_BGPD, no_ip_as_path_all_cmd_vtysh, 
+       "no ip as-path access-list WORD", 
        "Negate a command or set its defaults\n"
        "IP information\n"
-       "Add a extended community list entry\n"
-       "Specify standard extcommunity-list\n"
-       "Extended Community list name\n"
-       "Specify community to reject\n"
-       "Specify community to accept\n"
-       "Extended community attribute in 'rt aa:nn_or_IPaddr:nn' OR 'soo aa:nn_or_IPaddr:nn' format\n")
+       "BGP autonomous system path filter\n"
+       "Specify an access list name\n"
+       "Regular expression access list name\n")
 
-DEFSH (VTYSH_OSPFD, timers_spf_cmd_vtysh, 
-       "timers spf <0-4294967295> <0-4294967295>", 
-       "Adjust routing timers\n"
-       "OSPF SPF timers\n"
-       "Delay between receiving a change to SPF calculation\n"
-       "Hold time between consecutive SPF calculations\n")
+DEFSH (VTYSH_BGPD, clear_ip_bgp_all_ipv4_in_cmd_vtysh, 
+       "clear ip bgp * ipv4 (unicast|multicast) in", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all peers\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Soft reconfig inbound update\n")
 
-DEFSH (VTYSH_OSPFD, ip_ospf_message_digest_key_addr_cmd_vtysh, 
-       "ip ospf message-digest-key <1-255> md5 KEY A.B.C.D", 
-       "IP Information\n"
-       "OSPF interface commands\n"
-       "Message digest authentication password (key)\n"
-       "Key ID\n"
-       "Use MD5 algorithm\n"
-       "The OSPF password (key)"
-       "Address of interface")
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_out_cmd_vtysh, 
+       "clear ip bgp A.B.C.D out", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "BGP neighbor address to clear\n"
+       "Soft reconfig outbound update\n")
 
-DEFSH (VTYSH_RIPNGD, no_ripng_passive_interface_cmd_vtysh, 
-       "no passive-interface IFNAME", 
+DEFSH (VTYSH_OSPFD, show_ip_ospf_database_cmd_vtysh, 
+       "show ip ospf database", 
+       "Show running system information\n"
+       "IP information\n"
+       "OSPF information\n"
+       "Database summary\n")
+
+DEFSH (VTYSH_OSPF6D, show_ipv6_ospf6_interface_ifname_cmd_vtysh, 
+       "show ipv6 ospf6 interface IFNAME", 
+       "Show running system information\n"
+       "IPv6 Information\n"
+       "Open Shortest Path First (OSPF) for IPv6\n"
+       "Interface infomation\n"
+       "Interface name(e.g. ep0)\n"
+       )
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_group_cmd_vtysh, 
+       "clear ip bgp peer-group WORD", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all members of peer-group\n"
+       "BGP peer-group name\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_maximum_prefix_val2_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "maximum-prefix <1-4294967295> warning-only", 
        "Negate a command or set its defaults\n"
-       "Suppress routing updates on an interface\n"
-       "Interface name\n")
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Maximum number of prefix accept from this peer\n"
+       "maximum no. of prefix limit\n"
+       "Only give warning message when limit is exceeded\n")
 
-DEFSH (VTYSH_BGPD, no_bgp_timers_cmd_vtysh, 
-       "no timers bgp", 
+DEFSH (VTYSH_BGPD, show_ip_bgp_flap_regexp_cmd_vtysh, 
+       "show ip bgp flap-statistics regexp .LINE", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display flap statistics of routes\n"
+       "Display routes matching the AS path regular expression\n"
+       "A regular-expression to match the BGP AS paths\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_as_soft_in_cmd_vtysh, 
+       "clear bgp <1-65535> soft in", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear peers with the AS number\n"
+       "Soft reconfig\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_ipv4_neighbor_received_prefix_filter_cmd_vtysh, 
+       "show ip bgp ipv4 (unicast|multicast) neighbors (A.B.C.D|X:X::X:X) received prefix-filter", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n"
+       "Display information received from a BGP neighbor\n"
+       "Display the prefixlist filter\n")
+
+DEFSH (VTYSH_RIPD, rip_version_cmd_vtysh, 
+       "version <1-2>", 
+       "Set routing protocol version\n"
+       "version\n")
+
+DEFSH (VTYSH_OSPFD, no_neighbor_poll_interval_cmd_vtysh, 
+       "no neighbor A.B.C.D poll-interval <1-65535>", 
        "Negate a command or set its defaults\n"
-       "Adjust routing timers\n"
-       "BGP timers\n")
+       "Specify neighbor router\n"
+       "Neighbor IP address\n"
+       "Dead Neighbor Polling interval\n"
+       "Seconds\n")
+
+DEFSH (VTYSH_RIPD, ip_rip_send_version_1_cmd_vtysh, 
+       "ip rip send version 1 2", 
+       "IP information\n"
+       "Routing Information Protocol\n"
+       "Advertisement transmission\n"
+       "Version control\n"
+       "RIP version 1\n"
+       "RIP version 2\n")
+
+DEFSH (VTYSH_RIPD, no_debug_rip_zebra_cmd_vtysh, 
+       "no debug rip zebra", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
+       "RIP information\n"
+       "RIP and ZEBRA communication\n")
+
+DEFSH (VTYSH_BGPD, set_aspath_prepend_cmd_vtysh, 
+       "set as-path prepend .<1-65535>", 
+       "Set values in destination routing protocol\n"
+       "Prepend string for a BGP AS-path attribute\n"
+       "Prepend to the as-path\n"
+       "AS number\n")
 
 DEFSH (VTYSH_BGPD, show_bgp_ipv6_neighbor_received_routes_cmd_vtysh, 
        "show bgp ipv6 neighbors (A.B.C.D|X:X::X:X) received-routes", 
@@ -12692,2177 +11662,2968 @@
        "Neighbor to display information about\n"
        "Display the received routes from neighbor\n")
 
-DEFSH (VTYSH_BGPD, bgp_redistribute_ipv4_metric_rmap_cmd_vtysh, 
-       "redistribute (connected|kernel|ospf|rip|static) metric <0-4294967295> route-map WORD", 
+DEFSH (VTYSH_RIPNGD, debug_ripng_packet_detail_cmd_vtysh, 
+       "debug ripng packet (recv|send) detail", 
+       "Debugging functions (see also 'undebug')\n"
+       "RIPng configuration\n"
+       "Debug option set for ripng packet\n"
+       "Debug option set for receive packet\n"
+       "Debug option set for send packet\n"
+       "Debug option set detaied information\n")
+
+DEFSH (VTYSH_ZEBRA, ip_irdp_minadvertinterval_cmd_vtysh, 
+       "ip irdp minadvertinterval <3-1800>", 
+       "IP information\n"
+       "ICMP Router discovery on this interface\n"
+       "Set minimum time between advertisement\n"
+       "Minimum advertisement interval in seconds\n")
+
+DEFSH (VTYSH_OSPF6D, no_passive_interface_cmd_vtysh, 
+       "no passive-interface IFNAME", 
+       "Negate a command or set its defaults\n"
+       "Suppress routing updates on an interface\n"
+       "Interface name(e.g. ep0)\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD, no_match_interface_val_cmd_vtysh, 
+       "no match interface WORD", 
+       "Negate a command or set its defaults\n"
+       "Match values from routing table\n"
+       "Match first hop interface of route\n"
+       "Interface name\n")
+
+DEFSH (VTYSH_BGPD, bgp_network_mask_natural_route_map_cmd_vtysh, 
+       "network A.B.C.D route-map WORD", 
+       "Specify a network to announce via BGP\n"
+       "Network number\n"
+       "Route-map to modify the attributes\n"
+       "Name of the route map\n")
+
+DEFSH (VTYSH_BGPD, default_attr_localpref_cmd_vtysh, 
+       "default-attr local-pref NUMBER", 
+       "Set default local preference value\n"
+       "Set default local preference value\n"
+       "Value\n")
+
+DEFSH (VTYSH_BGPD, neighbor_attr_unchanged9_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged med next-hop as-path", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "BGP attribute is propagated unchanged to this neighbor\n"
+       "Med attribute\n"
+       "Nexthop attribute\n"
+       "As-path attribute\n")
+
+DEFSH (VTYSH_BGPD, ip_extcommunity_list_name_standard2_cmd_vtysh, 
+       "ip extcommunity-list standard WORD (deny|permit)", 
+       "IP information\n"
+       "Add a extended community list entry\n"
+       "Specify standard extcommunity-list\n"
+       "Extended Community list name\n"
+       "Specify community to reject\n"
+       "Specify community to accept\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_as_soft_out_cmd_vtysh, 
+       "clear bgp ipv6 <1-65535> soft out", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear peers with the AS number\n"
+       "Soft reconfig\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_BGPD, no_ip_community_list_standard_cmd_vtysh, 
+       "no ip community-list <1-99> (deny|permit) .AA:NN", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Add a community list entry\n"
+       "Community list number (standard)\n"
+       "Specify community to reject\n"
+       "Specify community to accept\n"
+       "Community number in aa:nn format or internet|local-AS|no-advertise|no-export\n")
+
+DEFSH (VTYSH_BGPD, debug_bgp_update_direct_cmd_vtysh, 
+       "debug bgp updates (in|out)", 
+       "Debugging functions (see also 'undebug')\n"
+       "BGP information\n"
+       "BGP updates\n"
+       "Inbound updates\n"
+       "Outbound updates\n")
+
+DEFSH (VTYSH_OSPFD, show_debugging_ospf_cmd_vtysh, 
+       "show debugging ospf", 
+       "Show running system information\n"
+       "Debugging functions (see also 'undebug')\n"
+       "OSPF information\n")
+
+DEFSH (VTYSH_OSPFD, ospf_default_information_originate_cmd_vtysh, 
+       "default-information originate", 
+       "Control distribution of default information\n"
+       "Distribute a default route\n")
+
+DEFSH (VTYSH_OSPF6D, ospf6_redistribute_cmd_vtysh, 
+       "redistribute (static|kernel|connected|ripng|bgp)", 
+       "Redistribute\n"
+       "Static route\n"
+       "Kernel route\n"
+       "Connected route\n"
+       "RIPng route\n"
+       "BGP route\n"
+      )
+
+DEFSH (VTYSH_OSPFD, ip_ospf_transmit_delay_addr_cmd_vtysh, 
+       "ip ospf transmit-delay <1-65535> A.B.C.D", 
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Link state transmit delay\n"
+       "Seconds\n"
+       "Address of interface")
+
+DEFSH (VTYSH_BGPD, show_ipv6_mbgp_community2_exact_cmd_vtysh, 
+       "show ipv6 mbgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "MBGP information\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "Exact match of the communities")
+
+DEFSH (VTYSH_OSPFD, area_export_list_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) export-list NAME", 
+       "OSPF area parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "Set the filter for networks announced to other areas\n"
+       "Name of the access-list\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_BGPD, show_ip_prefix_list_detail_name_cmd_vtysh, 
+       "show ip prefix-list detail WORD", 
+       "Show running system information\n"
+       "IP information\n"
+       "Build a prefix list\n"
+       "Detail of prefix lists\n"
+       "Name of a prefix list\n")
+
+DEFSH (VTYSH_BGPD, bgp_damp_set3_cmd_vtysh, 
+       "bgp dampening", 
+       "BGP Specific commands\n"
+       "Enable route-flap dampening\n")
+
+DEFSH (VTYSH_OSPFD, debug_ospf_packet_send_recv_detail_cmd_vtysh, 
+       "debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) (detail|)", 
+       "Debugging functions\n"
+       "OSPF information\n"
+       "OSPF packets\n"
+       "OSPF Hello\n"
+       "OSPF Database Description\n"
+       "OSPF Link State Request\n"
+       "OSPF Link State Update\n"
+       "OSPF Link State Acknowledgment\n"
+       "OSPF all packets\n"
+       "Packet sent\n"
+       "Packet received\n"
+       "Detail Information\n")
+
+DEFSH (VTYSH_BGPD, bgp_default_ipv4_unicast_cmd_vtysh, 
+       "bgp default ipv4-unicast", 
+       "BGP specific commands\n"
+       "Configure BGP defaults\n"
+       "Activate ipv4-unicast for a peer by default\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_prefix_list_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "prefix-list WORD (in|out)", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Filter updates to/from this neighbor\n"
+       "Name of a prefix list\n"
+       "Filter incoming updates\n"
+       "Filter outgoing updates\n")
+
+DEFSH (VTYSH_BGPD, no_bgp_redistribute_ipv4_rmap_metric_cmd_vtysh, 
+       "no redistribute (connected|kernel|ospf|rip|static) route-map WORD metric <0-4294967295>", 
+       "Negate a command or set its defaults\n"
        "Redistribute information from another routing protocol\n"
        "Connected\n"
        "Kernel routes\n"
        "Open Shurtest Path First (OSPF)\n"
        "Routing Information Protocol (RIP)\n"
        "Static routes\n"
-       "Metric for redistributed routes\n"
-       "Default metric\n"
        "Route map reference\n"
-       "Pointer to route-map entries\n")
+       "Pointer to route-map entries\n"
+       "Metric for redistributed routes\n"
+       "Default metric\n")
 
-DEFSH (VTYSH_BGPD, show_bgp_route_map_cmd_vtysh, 
-       "show bgp route-map WORD", 
+DEFSH (VTYSH_BGPD, clear_ip_bgp_instance_all_ipv4_soft_cmd_vtysh, 
+       "clear ip bgp view WORD * ipv4 (unicast|multicast) soft", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "BGP view\n"
+       "view name\n"
+       "Clear all peers\n"
+       "Address family\n"
+       "Address Family Modifier\n"
+       "Address Family Modifier\n"
+       "Soft reconfig\n")
+
+DEFSH (VTYSH_OSPFD, area_range_cost_cmd_vtysh, 
+       "area (A.B.C.D|<0-4294967295>) range A.B.C.D/M cost <0-16777215>", 
+       "OSPF area parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "Summarize routes matching address/mask (border routers only)\n"
+       "Area range prefix\n"
+       "User specified metric for this range\n"
+       "Advertised metric for this range\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_all_cmd_vtysh, 
+       "clear ip bgp *", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all peers\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_as_cmd_vtysh, 
+       "clear ip bgp <1-65535>", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear peers with the AS number\n")
+
+DEFSH (VTYSH_BGPD, no_ip_community_list_expanded_cmd_vtysh, 
+       "no ip community-list <100-199> (deny|permit) .LINE", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Add a community list entry\n"
+       "Community list number (expanded)\n"
+       "Specify community to reject\n"
+       "Specify community to accept\n"
+       "An ordered list as a regular-expression\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_all_tags_cmd_vtysh, 
+       "show ip bgp vpnv4 all tags", 
        "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display VPNv4 NLRI specific information\n"
+       "Display information about all VPNv4 NLRIs\n"
+       "Display BGP tags for prefixes\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_attr_unchanged3_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged next-hop (as-path|med)", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "BGP attribute is propagated unchanged to this neighbor\n"
+       "Nexthop attribute\n"
+       "As-path attribute\n"
+       "Med attribute\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_all_prefix_cmd_vtysh, 
+       "show ip bgp vpnv4 all A.B.C.D/M", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display VPNv4 NLRI specific information\n"
+       "Display information about all VPNv4 NLRIs\n"
+       "IP prefix <network>/<length>,  e.g.,  35.0.0.0/8\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_as_in_prefix_filter_cmd_vtysh, 
+       "clear bgp <1-65535> in prefix-filter", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear peers with the AS number\n"
+       "Soft reconfig inbound update\n"
+       "Push out prefix-list ORF and do inbound soft reconfig\n")
+
+DEFSH (VTYSH_OSPFD, no_ip_ospf_authentication_cmd_vtysh, 
+       "no ip ospf authentication", 
+       "Negate a command or set its defaults\n"
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Enable authentication on this interface\n")
+
+DEFSH (VTYSH_BGPD, match_origin_cmd_vtysh, 
+       "match origin (egp|igp|incomplete)", 
+       "Match values from routing table\n"
+       "BGP origin code\n"
+       "remote EGP\n"
+       "local IGP\n"
+       "unknown heritage\n")
+
+DEFSH (VTYSH_OSPFD, no_debug_ospf_ism_cmd_vtysh, 
+       "no debug ospf ism", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
+       "OSPF information\n"
+       "OSPF Interface State Machine")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_peer_vpnv4_in_cmd_vtysh, 
+       "clear ip bgp A.B.C.D vpnv4 unicast in", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "BGP neighbor address to clear\n"
+       "Address family\n"
+       "Address Family Modifier\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_all_ipv4_in_prefix_filter_cmd_vtysh, 
+       "clear ip bgp * ipv4 (unicast|multicast) in prefix-filter", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all peers\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Address Family modifier\n"
+       "Soft reconfig inbound update\n"
+       "Push out prefix-list ORF and do inbound soft reconfig\n")
+
+DEFSH (VTYSH_OSPFD, no_ospf_network_cmd_vtysh, 
+       "no ospf network", 
+       "Negate a command or set its defaults\n"
+       "OSPF interface commands\n"
+       "Network type\n")
+
+DEFSH (VTYSH_RIPNGD|VTYSH_BGPD, no_ipv6_prefix_list_le_ge_cmd_vtysh, 
+       "no ipv6 prefix-list WORD (deny|permit) X:X::X:X/M le <0-128> ge <0-128>", 
+       "Negate a command or set its defaults\n"
+       "IPv6 information\n"
+       "Build a prefix list\n"
+       "Name of a prefix list\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n"
+       "Maximum prefix length to be matched\n"
+       "Maximum prefix length\n"
+       "Minimum prefix length to be matched\n"
+       "Minimum prefix length\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_remote_as_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X) " "remote-as <1-65535>", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nIPv6 address\n"
+       "Specify a BGP neighbor\n"
+       "AS number\n")
+
+DEFSH (VTYSH_OSPFD, show_ip_ospf_neighbor_cmd_vtysh, 
+       "show ip ospf neighbor", 
+       "Show running system information\n"
+       "IP information\n"
+       "OSPF information\n"
+       "Neighbor list\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_as_soft_in_cmd_vtysh, 
+       "clear ip bgp <1-65535> soft in", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear peers with the AS number\n"
+       "Soft reconfig\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_BGPD, neighbor_capability_orf_prefix_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "capability orf prefix-list (both|send|receive)", 
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Advertise capability to the peer\n"
+       "Advertise ORF capability to the peer\n"
+       "Advertise prefixlist ORF capability to this neighbor\n"
+       "Capability to SEND and RECEIVE the ORF to/from this neighbor\n"
+       "Capability to RECEIVE the ORF from this neighbor\n"
+       "Capability to SEND the ORF to this neighbor\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_as_out_cmd_vtysh, 
+       "clear bgp <1-65535> out", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Clear peers with the AS number\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_OSPFD, show_ip_ospf_neighbor_detail_cmd_vtysh, 
+       "show ip ospf neighbor detail", 
+       "Show running system information\n"
+       "IP information\n"
+       "OSPF information\n"
+       "Neighbor list\n"
+       "detail of all neighbors\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, match_ip_next_hop_prefix_list_cmd_vtysh, 
+       "match ip next-hop prefix-list WORD", 
+       "Match values from routing table\n"
+       "IP information\n"
+       "Match next-hop address of route\n"
+       "Match entries of prefix-lists\n"
+       "IP prefix-list name\n")
+
+DEFSH (VTYSH_OSPFD, no_ospf_distance_cmd_vtysh, 
+       "no distance <1-255>", 
+       "Negate a command or set its defaults\n"
+       "Define an administrative distance\n"
+       "OSPF Administrative distance\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_interface_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X) " "interface WORD", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nIPv6 address\n"
+       "Interface\n"
+       "Interface name\n")
+
+DEFSH (VTYSH_OSPFD, ospf_default_information_originate_always_type_cmd_vtysh, 
+       "default-information originate always metric-type (1|2)", 
+       "Control distribution of default information\n"
+       "Distribute a default route\n"
+       "Always advertise default route\n"
+       "OSPF metric type for default routes\n"
+       "Set OSPF External Type 1 metrics\n"
+       "Set OSPF External Type 2 metrics\n")
+
+DEFSH (VTYSH_RIPNGD, no_ripng_default_metric_val_cmd_vtysh, 
+       "no default-metric <1-16>", 
+       "Negate a command or set its defaults\n"
+       "Set a metric of redistribute routes\n"
+       "Default metric\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_route_map_cmd_vtysh, 
+       "show ip bgp route-map WORD", 
+       "Show running system information\n"
+       "IP information\n"
        "BGP information\n"
        "Display routes matching the route-map\n"
        "A route-map to match on\n")
 
-DEFSH (VTYSH_BGPD, neighbor_nexthop_self_cmd_vtysh, 
-       "neighbor (A.B.C.D|X:X::X:X|WORD) " "next-hop-self", 
+DEFSH (VTYSH_BGPD, set_originator_id_cmd_vtysh, 
+       "set originator-id A.B.C.D", 
+       "Set values in destination routing protocol\n"
+       "BGP originator ID attribute\n"
+       "IP address of originator\n")
+
+DEFSH (VTYSH_RIPD, debug_rip_packet_direct_cmd_vtysh, 
+       "debug rip packet (recv|send)", 
+       "Debugging functions (see also 'undebug')\n"
+       "RIP information\n"
+       "RIP packet\n"
+       "RIP receive packet\n"
+       "RIP send packet\n")
+
+DEFSH (VTYSH_BGPD, no_aggregate_address_summary_only_cmd_vtysh, 
+       "no aggregate-address A.B.C.D/M summary-only", 
+       "Negate a command or set its defaults\n"
+       "Configure BGP aggregate entries\n"
+       "Aggregate prefix\n"
+       "Filter more specific routes from updates\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_view_route_cmd_vtysh, 
+       "show ip bgp view WORD A.B.C.D", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "BGP view\n"
+       "BGP view name\n"
+       "Network in the BGP routing table to display\n")
+
+DEFSH (VTYSH_RIPD, no_ip_rip_receive_version_num_cmd_vtysh, 
+       "no ip rip receive version (1|2)", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Routing Information Protocol\n"
+       "Advertisement reception\n"
+       "Version control\n"
+       "Version 1\n"
+       "Version 2\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_all_vpnv4_soft_in_cmd_vtysh, 
+       "clear ip bgp * vpnv4 unicast soft in", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear all peers\n"
+       "Address family\n"
+       "Address Family Modifier\n"
+       "Soft reconfig\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_RIPD, accept_lifetime_duration_day_month_cmd_vtysh, 
+       "accept-lifetime HH:MM:SS <1-31> MONTH <1993-2035> duration <1-2147483646>", 
+       "Set accept lifetime of the key\n"
+       "Time to start\n"
+       "Day of th month to start\n"
+       "Month of the year to start\n"
+       "Year to start\n"
+       "Duration of the key\n"
+       "Duration seconds\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_match_ip_address_cmd_vtysh, 
+       "no match ip address", 
+       "Negate a command or set its defaults\n"
+       "Match values from routing table\n"
+       "IP information\n"
+       "Match address of route\n")
+
+DEFSH (VTYSH_ZEBRA, show_ipv6_route_protocol_cmd_vtysh, 
+       "show ipv6 route (bgp|connected|kernel|ospf6|ripng|static)", 
+       "Show running system information\n"
+       "IP information\n"
+       "IP routing table\n"
+       "Border Gateway Protocol (BGP)\n"
+       "Connected\n"
+       "Kernel\n"
+       "Open Shortest Path First (OSPFv3)\n"
+       "Routing Information Protocol (RIPng)\n"
+       "Static routes\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_community4_exact_cmd_vtysh, 
+       "show ip bgp community (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) (AA:NN|local-AS|no-advertise|no-export) exact-match", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "Exact match of the communities")
+
+DEFSH (VTYSH_OSPFD, no_ip_ospf_priority_addr_cmd_vtysh, 
+       "no ip ospf priority A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Router priority\n"
+       "Address of interface")
+
+DEFSH (VTYSH_BGPD, show_bgp_ipv6_neighbors_peer_cmd_vtysh, 
+       "show bgp ipv6 neighbors (A.B.C.D|X:X::X:X)", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Detailed information on TCP and BGP neighbor connections\n"
+       "Neighbor to display information about\n"
+       "Neighbor to display information about\n")
+
+DEFSH (VTYSH_OSPFD, auto_cost_reference_bandwidth_cmd_vtysh, 
+       "auto-cost reference-bandwidth <1-4294967>", 
+       "Calculate OSPF interface cost according to bandwidth\n"
+       "Use reference bandwidth method to assign OSPF cost\n"
+       "The reference bandwidth in terms of Mbits per second\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_ipv6_all_out_cmd_vtysh, 
+       "clear bgp ipv6 * out", 
+       "Reset functions\n"
+       "BGP information\n"
+       "Address family\n"
+       "Clear all peers\n"
+       "Soft reconfig outbound update\n")
+
+DEFSH (VTYSH_BGPD, aggregate_address_cmd_vtysh, 
+       "aggregate-address A.B.C.D/M", 
+       "Configure BGP aggregate entries\n"
+       "Aggregate prefix\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_bgp_community_exact_cmd_vtysh, 
+       "show ipv6 bgp community (AA:NN|local-AS|no-advertise|no-export) exact-match", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "BGP information\n"
+       "Display routes matching the communities\n"
+       "community number\n"
+       "Do not send outside local AS (well-known community)\n"
+       "Do not advertise to any peer (well-known community)\n"
+       "Do not export to next AS (well-known community)\n"
+       "Exact match of the communities")
+
+DEFSH (VTYSH_BGPD, no_set_ipv6_nexthop_local_cmd_vtysh, 
+       "no set ipv6 next-hop local", 
+       "Negate a command or set its defaults\n"
+       "Set values in destination routing protocol\n"
+       "IPv6 information\n"
+       "IPv6 next-hop address\n"
+       "IPv6 local address\n")
+
+DEFSH (VTYSH_BGPD, clear_bgp_instance_all_soft_in_cmd_vtysh, 
+       "clear bgp view WORD * soft in", 
+       "Reset functions\n"
+       "BGP information\n"
+       "BGP view\n"
+       "view name\n"
+       "Clear all peers\n"
+       "Soft reconfig\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_prefix_list_cmd_vtysh, 
+       "show ip bgp prefix-list WORD", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display routes conforming to the prefix-list\n"
+       "IP prefix-list name\n")
+
+DEFSH (VTYSH_BGPD, neighbor_set_peer_group_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X) " "peer-group WORD", 
+       "Specify neighbor router\n"
+       "Neighbor address\nIPv6 address\n"
+       "Member of the peer-group\n"
+       "peer-group name\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_standard_any_cmd_vtysh, 
+       "no access-list (<1-99>|<1300-1999>) (deny|permit) any", 
+       "Negate a command or set its defaults\n"
+       "Add an access list entry\n"
+       "IP standard access list\n"
+       "IP standard access list (expanded range)\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Any source host\n")
+
+DEFSH (VTYSH_BGPD, no_auto_summary_cmd_vtysh, 
+       "no auto-summary", 
+       "Negate a command or set its defaults\n"
+       "Enable automatic network number summarization\n")
+
+DEFSH (VTYSH_OSPFD, no_ip_ospf_network_cmd_vtysh, 
+       "no ip ospf network", 
+       "Negate a command or set its defaults\n"
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Network type\n")
+
+DEFSH (VTYSH_BGPD, neighbor_attr_unchanged3_cmd_vtysh, 
+       "neighbor (A.B.C.D|X:X::X:X|WORD) " "attribute-unchanged next-hop (as-path|med)", 
        "Specify neighbor router\n"
        "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
-       "Disable the next hop calculation for this neighbor\n")
+       "BGP attribute is propagated unchanged to this neighbor\n"
+       "Nexthop attribute\n"
+       "As-path attribute\n"
+       "Med attribute\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_extended_mask_any_cmd_vtysh, 
+       "access-list (<100-199>|<2000-2699>) (deny|permit) ip A.B.C.D A.B.C.D any", 
+       "Add an access list entry\n"
+       "IP extended access list\n"
+       "IP extended access list (expanded range)\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Any Internet Protocol\n"
+       "Source address\n"
+       "Source wildcard bits\n"
+       "Any destination host\n")
+
+DEFSH (VTYSH_BGPD, no_ipv6_aggregate_address_summary_only_cmd_vtysh, 
+       "no aggregate-address X:X::X:X/M summary-only", 
+       "Negate a command or set its defaults\n"
+       "Configure BGP aggregate entries\n"
+       "Aggregate prefix\n"
+       "Filter more specific routes from updates\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_standard_nomask_cmd_vtysh, 
+       "no access-list (<1-99>|<1300-1999>) (deny|permit) A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "Add an access list entry\n"
+       "IP standard access list\n"
+       "IP standard access list (expanded range)\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Address to match\n")
+
+DEFSH (VTYSH_BGPD, show_bgp_ipv6_community_list_exact_cmd_vtysh, 
+       "show bgp ipv6 community-list WORD exact-match", 
+       "Show running system information\n"
+       "BGP information\n"
+       "Address family\n"
+       "Display routes matching the community-list\n"
+       "community-list name\n"
+       "Exact match of the communities\n")
+
+DEFSH (VTYSH_BGPD, clear_ip_bgp_as_vpnv4_in_cmd_vtysh, 
+       "clear ip bgp <1-65535> vpnv4 unicast in", 
+       "Reset functions\n"
+       "IP information\n"
+       "BGP information\n"
+       "Clear peers with the AS number\n"
+       "Address family\n"
+       "Address Family modifier\n"
+       "Soft reconfig inbound update\n")
+
+DEFSH (VTYSH_OSPFD, ip_ospf_retransmit_interval_cmd_vtysh, 
+       "ip ospf retransmit-interval <3-65535>", 
+       "IP Information\n"
+       "OSPF interface commands\n"
+       "Time between retransmitting lost link state advertisements\n"
+       "Seconds\n")
+
+DEFSH (VTYSH_ZEBRA, no_ip_route_cmd_vtysh, 
+       "no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0)", 
+       "Negate a command or set its defaults\n"
+       "IP information\n"
+       "Establish static routes\n"
+       "IP destination prefix (e.g. 10.0.0.0/8)\n"
+       "IP gateway address\n"
+       "IP gateway interface name\n"
+       "Null interface\n")
+
+DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_all_cmd_vtysh, 
+       "show ip bgp vpnv4 all", 
+       "Show running system information\n"
+       "IP information\n"
+       "BGP information\n"
+       "Display VPNv4 NLRI specific information\n"
+       "Display information about all VPNv4 NLRIs\n")
+
+DEFSH (VTYSH_RIPD, no_key_string_cmd_vtysh, 
+       "no key-string [LINE]", 
+       "Negate a command or set its defaults\n"
+       "Unset key string\n"
+       "The key\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_soft_reconfiguration_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "soft-reconfiguration inbound", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Per neighbor soft reconfiguration\n"
+       "Allow inbound soft reconfiguration for this neighbor\n")
+
+DEFSH (VTYSH_BGPD, no_debug_bgp_events_cmd_vtysh, 
+       "no debug bgp events", 
+       "Negate a command or set its defaults\n"
+       "Debugging functions (see also 'undebug')\n"
+       "BGP information\n"
+       "BGP events\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) ", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n")
+
+DEFSH (VTYSH_ZEBRA, ip_irdp_holdtime_cmd_vtysh, 
+       "ip irdp holdtime <0-9000>", 
+       "IP information\n"
+       "ICMP Router discovery on this interface\n"
+       "Set holdtime value\n"
+       "Holdtime value in seconds. Default is 1800 seconds\n")
+
+DEFSH (VTYSH_BGPD, match_community_cmd_vtysh, 
+       "match community (<1-99>|<100-199>|WORD)", 
+       "Match values from routing table\n"
+       "Match BGP community list\n"
+       "Community-list number (standard)\n"
+       "Community-list number (expanded)\n"
+       "Community-list name\n")
+
+DEFSH (VTYSH_BGPD, show_ip_extcommunity_list_cmd_vtysh, 
+       "show ip extcommunity-list", 
+       "Show running system information\n"
+       "IP information\n"
+       "List extended-community list\n")
+
+DEFSH (VTYSH_OSPF6D, no_interface_area_cmd_vtysh, 
+       "no interface IFNAME area A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "Disable routing on an IPv6 interface\n"
+       "Interface name(e.g. ep0)\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_access_list_extended_host_mask_cmd_vtysh, 
+       "no access-list (<100-199>|<2000-2699>) (deny|permit) ip host A.B.C.D A.B.C.D A.B.C.D", 
+       "Negate a command or set its defaults\n"
+       "Add an access list entry\n"
+       "IP extended access list\n"
+       "IP extended access list (expanded range)\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Any Internet Protocol\n"
+       "A single source host\n"
+       "Source address\n"
+       "Destination address\n"
+       "Destination Wildcard bits\n")
+
+DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, access_list_cmd_vtysh, 
+       "access-list WORD (deny|permit) A.B.C.D/M", 
+       "Add an access list entry\n"
+       "IP zebra access-list name\n"
+       "Specify packets to reject\n"
+       "Specify packets to forward\n"
+       "Prefix to match. e.g. 10.0.0.0/8\n")
+
+DEFSH (VTYSH_OSPFD, no_area_range_cmd_vtysh, 
+       "no area (A.B.C.D|<0-4294967295>) range A.B.C.D/M", 
+       "Negate a command or set its defaults\n"
+       "OSPF area parameters\n"
+       "OSPF area ID in IP address format\n"
+       "OSPF area ID as a decimal value\n"
+       "Summarize routes matching address/mask (border routers only)\n"
+       "Area range prefix\n")
+
+DEFSH (VTYSH_BGPD, old_ipv6_bgp_network_cmd_vtysh, 
+       "ipv6 bgp network X:X::X:X/M", 
+       "IPv6 information\n"
+       "BGP information\n"
+       "Specify a network to announce via BGP\n"
+       "IPv6 prefix <network>/<length>,  e.g.,  3ffe::/16\n")
+
+DEFSH (VTYSH_BGPD, no_neighbor_filter_list_cmd_vtysh, 
+       "no neighbor (A.B.C.D|X:X::X:X|WORD) " "filter-list WORD (in|out)", 
+       "Negate a command or set its defaults\n"
+       "Specify neighbor router\n"
+       "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n"
+       "Establish BGP filters\n"
+       "AS path access-list name\n"
+       "Filter incoming routes\n"
+       "Filter outgoing routes\n")
+
+DEFSH (VTYSH_BGPD, show_ipv6_bgp_community_list_exact_cmd_vtysh, 
+       "show ipv6 bgp community-list WORD exact-match", 
+       "Show running system information\n"
+       "IPv6 information\n"
+       "BGP information\n"
+       "Display routes matching the community-list\n"
+       "community-list name\n"
+       "Exact match of the communities\n")
+
+DEFSH (VTYSH_RIPNGD, ripng_redistribute_connected_routemap_cmd_vtysh, 
+       "redistribute connected route-map WORD", 
+       "Redistribute information from another routing protocol\n"
+       "Connected\n"
+       "Route map reference\n"
+       "Pointer to route-map entries\n")
+
+DEFSH (VTYSH_BGPD, undebug_bgp_events_cmd_vtysh, 
+       "undebug bgp events", 
+       "Disable debugging functions (see also 'debug')\n"
+       "BGP information\n"
+       "BGP events\n")
 
 void
 vtysh_init_cmd ()
 {
-  install_element (BGP_NODE, &no_neighbor_activate_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_ecommunity_val_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_rip_authentication_string_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_attr_unchanged4_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_damp_unset2_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &bgp_damp_unset_cmd_vtysh);
-  install_element (CONFIG_NODE, &ipv6_prefix_list_seq_ge_le_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_prefix_list_sequence_number_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &ipv6_aggregate_address_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_extcommunity_list_standard_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_access_list_all_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_prefix_list_prefix_longer_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_bgp_community_all_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_all_out_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_set_peer_group_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_all_route_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_transparent_as_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_community_val_cmd_vtysh);
-  install_element (OSPF_NODE, &area_vlink_authkey_cmd_vtysh);
-  install_element (ZEBRA_NODE, &ripng_redistribute_ripng_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_community3_exact_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ospf6_neighbor_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_community_list_exact_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_rd_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_vlink_md5_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_prefix_list_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_passive_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_prefix_list_sequence_number_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_aggregate_address_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_ripng_events_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_route_map_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_redistribute_kernel_metric_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_set_peer_group_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_mbgp_community2_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_all_ipv4_out_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_strict_capability_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_default_metric_val_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_in_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_paths_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_prefix_list_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_override_capability_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_network_mask_natural_route_map_cmd_vtysh);
-  install_element (OSPF_NODE, &area_range_substitute_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_in_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_bgp_route_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_interface_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_database_type_id_adv_router_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_cluster_id32_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_regexp_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_connected_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_ripng_packet_cmd_vtysh);
-  install_element (OSPF_NODE, &area_shortcut_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_ospf_priority_addr_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &bgp_network_mask_natural_route_map_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_neighbor_received_prefix_filter_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_ospf_database_type_id_self_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_vpnv4_soft_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_maximum_prefix_val_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_send_community_type_cmd_vtysh);
-  install_element (CONFIG_NODE, &access_list_any_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_community_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_filter_list_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_community_exact_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_aggregate_address_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_cluster_id_cmd_vtysh);
-  install_element (KEYCHAIN_KEY_NODE, &no_key_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_prefix_list_cmd_vtysh);
-  install_element (RIP_NODE, &no_rip_distance_source_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_camp_config_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_dont_capability_negotiate_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_network_import_check_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ospf6_topology_router_cmd_vtysh);
-  install_element (BGP_NODE, &aggregate_address_as_set_cmd_vtysh);
-  install_element (OSPF_NODE, &capability_opaque_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_attr_unchanged6_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_origin_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_forwarding_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_bgp_prefix_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_network_mask_natural_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ospf6_database_type_id_adv_router_dump_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_ip_next_hop_val_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_address_label_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_mbgp_community2_exact_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_shutdown_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_bgp_redistribute_ipv6_rmap_metric_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_cmd_vtysh);
-  install_element (OSPF_NODE, &area_filter_list_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_bgp_update_direct_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_debugging_rip_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_instance_all_soft_out_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_route_prefix_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_prefix_list_name_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_maximum_prefix_warning_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ipv6_ospf6_advertise_force_prefix_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_debug_ospf6_damp_cmd_vtysh);
-  install_element (OSPF6_NODE, &interface_area_passive_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_bgp_network_mask_natural_route_map_cmd_vtysh);
-  install_element (CONFIG_NODE, &dump_bgp_routes_interval_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_bgp_summary_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_rip_zebra_cmd_vtysh);
-  install_element (OSPF_NODE, &no_router_id_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_view_cmd_vtysh);
-  install_element (CONFIG_NODE, &access_list_extended_host_mask_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_zebra_packet_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_prefix_list_ge_le_cmd_vtysh);
-  install_element (CONFIG_NODE, &access_list_extended_host_any_cmd_vtysh);
-  install_element (BGP_NODE, &default_attr_localpref_cmd_vtysh);
-  install_element (BGP_NODE, &no_aggregate_address_mask_as_set_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_deterministic_med_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_route_map_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_instance_ipv6_summary_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_capability_dynamic_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_external_in_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_neighbors_peer_cmd_vtysh);
-  install_element (RMAP_NODE, &no_rmap_onmatch_goto_cmd_vtysh);
-  install_element (BGP_NODE, &old_no_ipv6_aggregate_address_cmd_vtysh);
-  install_element (OSPF_NODE, &area_vlink_param4_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_extcommunity_list_name_standard_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_neighbors_peer_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_topology_router_lsid_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_mbgp_community2_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_ospf_nsm_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_route_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ospf6_database_type_cmd_vtysh);
-  install_element (RIP_NODE, &rip_redistribute_type_metric_cmd_vtysh);
-  install_element (ENABLE_NODE, &reload_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_prefix_list_le_ge_cmd_vtysh);
-  install_element (CONFIG_NODE, &dump_bgp_updates_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_route_map_cmd_vtysh);
-  install_element (RMAP_NODE, &match_interface_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_ospf_hello_interval_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_regexp_cmd_vtysh);
-  install_element (CONFIG_NODE, &ipv6_prefix_list_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_ebgp_multihop_ttl_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_network_mask_natural_route_map_cmd_vtysh);
-  install_element (KEYCHAIN_KEY_NODE, &accept_lifetime_month_day_day_month_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_community3_exact_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_ecommunity_soo_val_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_confederation_identifier_arg_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_community_all_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ospf6_area_topology_router_lsid_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_network_mask_backdoor_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_attr_unchanged3_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_multicast_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_attr_unchanged4_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_ospf_zebra_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_external_out_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_community2_exact_cmd_vtysh);
-  install_element (OSPF6_NODE, &no_interface_area_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_rip_events_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_metric_val_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_instance_summary_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_static_metric_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_dump_bgp_all_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_vlink_authtype_md5_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_attr_unchanged1_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ospf6_area_topology_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_attr_unchanged4_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_nexthop_self_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_maximum_prefix_warning_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_default_information_originate_metric_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_rip_packet_direct_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_weight_cmd_vtysh);
-  install_element (OSPF_NODE, &neighbor_priority_cmd_vtysh);
-  install_element (OSPF_NODE, &no_capability_opaque_cmd_vtysh);
-  install_element (KEYCHAIN_KEY_NODE, &key_string_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_redistribute_static_routemap_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_prefix_list_description_arg_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_ospf_ism_sub_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_topology_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &aggregate_address_summary_as_set_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_all_ipv4_soft_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_attr_unchanged10_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_irdp_address_preference_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_passive_interface_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_community2_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_community_list_standard_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_route_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_bgp_normal_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_bgp_community3_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_attr_unchanged_cmd_vtysh);
-  install_element (RMAP_NODE, &set_metric_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_route_map_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_maximum_prefix_val2_cmd_vtysh);
-  install_element (RMAP_NODE, &set_community_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_route_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ipv6_ospf6_retransmitinterval_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_distance_ospf_intra_inter_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_prefix_list_seq_le_ge_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_distance2_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_distribute_list_cmd_vtysh);
-  install_element (INTERFACE_NODE, &linkdetect_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_attr_unchanged5_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_confederation_peers_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_aggregate_address_summary_as_set_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_soft_reconfiguration_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_filter_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_bgp_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_all_summary_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_prefix_list_seq_ge_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_neighbor_routerid_cmd_vtysh);
-  install_element (OSPF_NODE, &no_ospf_distribute_list_out_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_mbgp_community_exact_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_export_list_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ospf_cost_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_attr_unchanged6_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_community_list_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_route_distance_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &bgp_redistribute_ipv6_metric_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_peer_group_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &aggregate_address_mask_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_ospf_retransmit_interval_addr_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_rd_neighbors_cmd_vtysh);
-  install_element (RMAP_NODE, &match_aspath_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_all_vpnv4_soft_in_cmd_vtysh);
-  install_element (BGP_NODE, &aggregate_address_mask_summary_only_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_community2_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ospf6_neighbor_routerid_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_ospf_lsa_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_weight_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_soft_in_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_route_map_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_fast_external_failover_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_route_map_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_attr_unchanged9_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_route_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_all_ipv4_in_prefix_filter_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_ripng_events_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_neighbors_peer_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_prefix_list_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_remove_private_as_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_remote_as_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_default_information_originate_cmd_vtysh);
-  install_element (RMAP_NODE, &match_ip_address_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_redistribute_ospf6_metric_routemap_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_ospf_zebra_sub_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_peer_group_soft_out_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_prefix_list_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_nexthop_self_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_bgp_network_mask_natural_cmd_vtysh);
-  install_element (BGP_NODE, &aggregate_address_mask_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_prefix_list_summary_name_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_maximum_prefix_val2_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_ospf_database_type_adv_router_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_community_exact_cmd_vtysh);
-  install_element (RMAP_NODE, &set_community_delete_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_default_cost_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_vlink_param2_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_ripng_packet_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_neighbor_received_prefix_filter_cmd_vtysh);
-  install_element (KEYCHAIN_KEY_NODE, &send_lifetime_infinite_day_month_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_community_exact_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_route_map_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_attr_unchanged2_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_send_community_cmd_vtysh);
-  install_element (BGP_NODE, &old_no_ipv6_aggregate_address_summary_only_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_address_secondary_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_route_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_filter_list_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_route_protocol_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_route_map_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_attr_unchanged9_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_timers_arg_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ospf_transmit_delay_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_nexthop_self_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_neighbor_advertised_route_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_ip_nexthop_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_all_vpnv4_soft_out_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_bgp_network_mask_natural_route_map_cmd_vtysh);
-  install_element (OSPF6_NODE, &ospf6_redistribute_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_mbgp_filter_list_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_confederation_identifier_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_instance_all_ipv4_soft_in_cmd_vtysh);
-  install_element (VIEW_NODE, &ipv6_bgp_neighbor_routes_cmd_vtysh);
-  install_element (ENABLE_NODE, &ipv6_bgp_neighbor_received_routes_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_prefix_list_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_send_community_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_neighbors_peer_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_external_ipv4_out_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_community_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_redistribute_kernel_routemap_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_zebra_events_cmd_vtysh);
-  install_element (RIP_NODE, &rip_redistribute_type_routemap_cmd_vtysh);
-  install_element (CONFIG_NODE, &ipv6_prefix_list_seq_ge_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_network_backdoor_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_ebgp_multihop_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_route_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_community2_cmd_vtysh);
-  install_element (OSPF_NODE, &area_nssa_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_community4_exact_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_ospf_ism_sub_cmd_vtysh);
-  install_element (CONFIG_NODE, &ipv6_prefix_list_le_ge_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_community_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_ospf_packet_send_recv_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_aspath_prepend_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_remove_private_as_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_update_source_cmd_vtysh);
-  install_element (BGP_NODE, &old_no_ipv6_bgp_network_cmd_vtysh);
-  install_element (OSPF_NODE, &area_range_cost_cmd_vtysh);
-  install_element (OSPF_NODE, &auto_cost_reference_bandwidth_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_attr_unchanged10_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_route_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_access_list_extended_mask_host_cmd_vtysh);
-  install_element (KEYCHAIN_NODE, &no_key_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_remote_as_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_area_spf_node_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_ospf_network_cmd_vtysh);
-  install_element (ENABLE_NODE, &ipv6_bgp_neighbor_routes_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_nexthop_self_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_default_originate_cmd_vtysh);
-  install_element (INTERFACE_NODE, &mpls_te_link_metric_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_attr_unchanged9_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_bgp_community3_exact_cmd_vtysh);
-  install_element (OSPF_NODE, &no_ospf_default_metric_cmd_vtysh);
-  install_element (OSPF_NODE, &area_stub_no_summary_cmd_vtysh);
-  install_element (RMAP_NODE, &rmap_onmatch_next_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_area_topology_router_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_port_val_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ospf6_database_type_id_adv_router_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_ospf_interface_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_ebgp_multihop_ttl_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_send_community_type_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_address_label_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_ripng_events_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_router_ospf_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_regexp_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ipv6_ospf6_passive_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_peer_group_in_prefix_filter_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_neighbors_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_activate_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_rip_packet_detail_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_mbgp_regexp_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_timers_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_filter_list_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_zebra_events_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_neighbor_routes_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_distance_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_attr_unchanged9_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_bestpath_compare_router_id_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_unsuppress_map_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_attr_unchanged9_cmd_vtysh);
-  install_element (OSPF_NODE, &neighbor_priority_poll_interval_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_local_as_val_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_ospf_authentication_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_attr_unchanged9_cmd_vtysh);
-  install_element (OSPF_NODE, &area_vlink_authtype_args_authkey_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_description_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_neighbor_received_routes_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_route_prefix_longer_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_confederation_identifier_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_ospf6_damp_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_static_metric_val_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_redistribute_source_metric_type_routemap_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_bestpath_med2_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_neighbors_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_range_cmd_vtysh);
-  install_element (RMAP_NODE, &rmap_onmatch_goto_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_community_exact_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_ospf_database_type_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_flap_address_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_default_originate_rmap_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_prefix_list_name_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_connected_routemap_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_ipv4_soft_out_cmd_vtysh);
-  install_element (RIP_NODE, &no_rip_redistribute_type_routemap_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_prefix_list_name_prefix_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_maximum_prefix_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_attr_unchanged4_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_bgp_metric_val_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_neighbors_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_metric_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_remove_private_as_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_access_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_ospf_packet_send_recv_detail_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_opaque_capable_cmd_vtysh);
-  install_element (OSPF_NODE, &no_auto_cost_reference_bandwidth_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_summary_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_community_all_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_community4_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_range_cost_cmd_vtysh);
-  install_element (KEYCHAIN_KEY_NODE, &send_lifetime_month_day_day_month_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_dampened_paths_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_ospf_nssa_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_in_prefix_filter_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_community_list_exact_cmd_vtysh);
-  install_element (CONFIG_NODE, &ipv6_access_list_exact_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_filter_list_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_bgp_update_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_neighbors_peer_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_flap_filter_list_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_summary_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_redistribute_connected_routemap_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_all_in_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_confederation_peers_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_bgp_filter_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_distance_ospf_external_inter_intra_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_prefix_list_le_ge_cmd_vtysh);
-  install_element (RMAP_NODE, &match_ip_next_hop_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_community_all_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_attr_unchanged4_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_remove_private_as_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_route_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_distance_ospf_inter_intra_external_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_peer_group_in_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ospf6_area_spf_node_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_ospf_zebra_sub_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_ip_address_val_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_prefix_list_name_seq_cmd_vtysh);
-  install_element (CONFIG_NODE, &bgp_config_type_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_ospf_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_route_reflector_client_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_mbgp_community_all_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ipv6_ospf6_passive_cmd_vtysh);
-  install_element (CONFIG_NODE, &access_list_extended_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &aggregate_address_mask_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_community2_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_all_soft_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_activate_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_all_vpnv4_in_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_flap_regexp_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_kernel_metric_val_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_as_path_all_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_route_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ospf6_area_route_prefix_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_ospf_database_type_id_adv_router_cmd_vtysh);
-  install_element (CONFIG_NODE, &access_list_remark_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_attr_unchanged6_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_network_mask_backdoor_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_prefix_list_ge_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_static_metric_routemap_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_prefix_list_le_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_distance_cmd_vtysh);
-  install_element (BGP_NODE, &aggregate_address_summary_as_set_cmd_vtysh);
-  install_element (OSPF_NODE, &no_ospf_redistribute_source_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_kernel_metric_routemap_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ospf6_route_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_compatible_rfc1583_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_bestpath_med3_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_router_id_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_bgp_community_exact_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_community2_exact_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_bgp_filter_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_aggregate_address_as_set_summary_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_community_list_name_standard2_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_default_information_originate_type_routemap_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_ripng_packet_direct_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_enforce_multihop_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_route_mask_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &aggregate_address_summary_only_cmd_vtysh);
-  install_element (OSPF6_NODE, &interface_area_plist_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_prefix_list_sequence_number_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_redistribute_source_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_bgp_events_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_route_ifname_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_community3_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_kernel_routemap_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_all_in_prefix_filter_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_community_list_exact_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_bgp_keepalive_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_allowas_in_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_ospf_cost_addr_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_community_list_all_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_network_mask_route_map_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_prefix_list_seq_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_community_list_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_distance_source_access_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_route_prefix_longer_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_distance_ospf_intra_external_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_ospf_dead_interval_addr_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_maximum_prefix_val_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_redistribute_source_metric_routemap_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_bgp_redistribute_ipv6_rmap_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_network_cmd_vtysh);
-  install_element (CONFIG_NODE, &ipv6_access_list_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_route_reflector_client_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_bgp_community3_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_prefix_list_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_access_list_all_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_neighbors_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_network_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &bgp_network_mask_route_map_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_capability_orf_prefix_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_route_map_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_route_server_client_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_external_soft_in_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_forwarding_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_default_originate_rmap_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_access_list_extended_host_any_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_as_in_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_address_cmd_vtysh);
-  install_element (INTERFACE_NODE, &multicast_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_as_out_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_access_list_name_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_ospf_authentication_key_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_prefix_list_detail_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_mbgp_community_list_exact_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_neighbor_advertised_route_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_bgp_network_mask_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_community_cmd_vtysh);
-  install_element (RIP_NODE, &no_rip_neighbor_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_instance_all_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_filter_list_cmd_vtysh);
-  install_element (OSPF_NODE, &no_refresh_timer_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &bgp_network_mask_natural_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_ripng_packet_detail_cmd_vtysh);
-  install_element (BGP_NODE, &aggregate_address_as_set_summary_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_route_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_timers_connect_val_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_default_ipv4_unicast_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_as_in_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_scan_time_val_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_local_as_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_neighbor_advertised_route_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_extcommunity_list_all_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_all_in_prefix_filter_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_route_addr_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_instance_summary_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_group_in_prefix_filter_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_as_soft_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_ripng_packet_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_network_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &bgp_damp_set3_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_area_spf_tree_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_external_soft_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_as_path_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_neighbor_routes_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_ospf_nsm_sub_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_network_route_map_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_access_list_remark_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_zebra_interface_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_extcommunity_list_name_all_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_distance_ospf_external_intra_inter_cmd_vtysh);
-  install_element (OSPF_NODE, &area_nssa_no_summary_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_maximum_prefix_val2_cmd_vtysh);
-  install_element (CONFIG_NODE, &ipv6_prefix_list_seq_le_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_redistribute_static_metric_routemap_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_ospf_message_digest_key_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ipv6_prefix_list_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_rip_authentication_mode_type_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_abr_type_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_cmd_vtysh);
-  install_element (RIP_NODE, &rip_default_information_originate_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_prefix_list_seq_le_ge_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_maximum_prefix_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_prefix_list_seq_ge_le_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_soft_out_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_zebra_packet_direct_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_distance_ospf_external_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_maximum_prefix_warning_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &aggregate_address_mask_summary_only_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &ipv6_bgp_network_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_mbgp_community3_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_mbgp_prefix_longer_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ospf6_interface_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_interface_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_redistribute_ipv4_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_capability_orf_prefix_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_neighbor_damp_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_ipv6_nexthop_global_val_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_attr_unchanged4_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_debug_ospf6_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_rip_packet_detail_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_bgp_community_all_cmd_vtysh);
-  install_element (OSPF_NODE, &area_nssa_translate_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_vlink_param4_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_neighbor_received_prefix_filter_cmd_vtysh);
-  install_element (OSPF_NODE, &no_passive_interface_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &aggregate_address_mask_as_set_summary_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_passive_cmd_vtysh);
   install_element (VIEW_NODE, &show_ip_bgp_vpnv4_all_tags_cmd_vtysh);
-  install_element (OSPF_NODE, &area_range_advertise_cmd_vtysh);
-  install_element (VIEW_NODE, &ipv6_bgp_neighbor_advertised_route_cmd_vtysh);
-  install_element (OSPF_NODE, &passive_interface_addr_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_route_server_client_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_rd_neighbor_advertised_routes_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ospf_message_digest_key_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_bgp_community4_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_default_information_originate_always_type_metric_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_bgp_metric_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_community2_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_group_in_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_external_cmd_vtysh);
-  install_element (OSPF_NODE, &area_range_cmd_vtysh);
-  install_element (CONFIG_NODE, &dump_bgp_routes_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_ipv4_in_prefix_filter_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_shortcut_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_instance_all_ipv4_soft_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ospf6_route_prefix_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_attr_unchanged5_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_maximum_prefix_val2_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_community2_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_as_soft_in_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_community_list_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_attr_unchanged2_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_ospf_hello_interval_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_ospf_neighbor_int_detail_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_distance_ospf_inter_external_intra_cmd_vtysh);
-  install_element (VIEW_NODE, &show_zebra_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_flap_statistics_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_route_server_client_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_flap_prefix_list_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ospf_retransmit_interval_cmd_vtysh);
-  install_element (OSPF_NODE, &no_ospf_rfc1583_flag_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_community_list_name_standard_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_attr_unchanged2_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_bgp_all_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_timers_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_redistribute_bgp_metric_routemap_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_community3_exact_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_zebra_events_cmd_vtysh);
-  install_element (OSPF_NODE, &no_ospf_distance_ospf_cmd_vtysh);
-  install_element (KEYCHAIN_KEY_NODE, &accept_lifetime_duration_day_month_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_protocols_rip_cmd_vtysh);
-  install_element (RIP_NODE, &rip_network_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_prefix_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_community2_exact_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_allowas_in_arg_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_filter_list_cmd_vtysh);
-  install_element (RMAP_NODE, &set_vpnv4_nexthop_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_prefix_list_name_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_paths_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_route_mask_distance_cmd_vtysh);
-  install_element (OSPF_NODE, &area_stub_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_maximum_prefix_val2_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_route_server_client_cmd_vtysh);
-  install_element (KEYCHAIN_KEY_NODE, &send_lifetime_month_day_month_day_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_bgp_network_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_activate_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_bgp_summary_cmd_vtysh);
-  install_element (ENABLE_NODE, &ipv6_mbgp_neighbor_advertised_route_cmd_vtysh);
-  install_element (VIEW_NODE, &ipv6_mbgp_neighbor_advertised_route_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_zebra_packet_detail_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_ip_nexthop_val_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_as_in_prefix_filter_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_attr_unchanged5_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_bgp_filter_cmd_vtysh);
-  install_element (RIP_NODE, &rip_timers_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_rip_authentication_key_chain_cmd_vtysh);
-  install_element (BGP_NODE, &aggregate_address_mask_as_set_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_ospf_hello_interval_addr_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_database_cmd_vtysh);
-  install_element (BGP_NODE, &no_auto_summary_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_ipv6_address_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_community_list_cmd_vtysh);
-  install_element (INTERFACE_NODE, &rip_split_horizon_cmd_vtysh);
-  install_element (INTERFACE_NODE, &mpls_te_link_rsc_clsclr_cmd_vtysh);
-  install_element (OSPF6_NODE, &no_ospf6_redistribute_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_mbgp_community_exact_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_remove_private_as_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_bgp_update_direct_cmd_vtysh);
-  install_element (RMAP_NODE, &set_aggregator_as_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_default_originate_rmap_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_community_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_debugging_ospf_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_redistribute_ospf6_routemap_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_prefix_list_summary_name_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_paths_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_route_reflector_client_cmd_vtysh);
-  install_element (RMAP_NODE, &match_ip_address_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ospf6_database_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_ip_address_val_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_redistribute_ipv4_metric_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_external_soft_cmd_vtysh);
-  install_element (RMAP_NODE, &match_ipv6_address_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_maximum_prefix_val_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_allowas_in_arg_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_attr_unchanged3_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_bgp_normal_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &bgp_damp_set_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_timers_cmd_vtysh);
-  install_element (RMAP_NODE, &match_community_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_community_none_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_default_metric_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_aggregate_address_mask_summary_as_set_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_bgp_community4_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_redistribute_connected_metric_routemap_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_set_peer_group_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_ospf_neighbor_int_detail_cmd_vtysh);
-  install_element (RIP_NODE, &no_rip_timers_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_default_information_originate_type_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_distance_ospf_external_inter_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_timers_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_route_addr_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_zebra_packet_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_instance_neighbors_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_aggregate_address_mask_as_set_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_ospf_nsm_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_access_list_extended_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_damp_set3_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_zebra_packet_direct_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ospf6_topology_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_route_reflector_client_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_attr_unchanged2_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_vpnv4_nexthop_val_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_ipv4_in_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_rip_events_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_address_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_neighbor_received_prefix_filter_cmd_vtysh);
-  install_element (CONFIG_NODE, &ipv6_prefix_list_ge_cmd_vtysh);
-  install_element (RIP_NODE, &no_rip_version_val_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_timers_connect_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_mbgp_community3_exact_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_aggregate_address_mask_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_ospf_event_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_attr_unchanged6_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_redistribute_source_routemap_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_attr_unchanged5_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_aggregate_address_as_set_summary_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_ospf_nsm_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_ospf_packet_send_recv_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_bgp_community_list_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_prefix_list_summary_name_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_table_cmd_vtysh);
-  install_element (RIP_NODE, &rip_route_cmd_vtysh);
-  install_element (OSPF_NODE, &area_default_cost_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_ospf_event_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_rd_tags_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_route_map_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_attr_unchanged9_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &bgp_network_route_map_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_route_cmd_vtysh);
-  install_element (ZEBRA_NODE, &no_ripng_redistribute_ripng_cmd_vtysh);
-  install_element (INTERFACE_NODE, &bandwidth_if_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_as_ipv4_in_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_allowas_in_arg_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_redistribute_bgp_metric_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_redistribute_ipv4_metric_rmap_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_attr_unchanged3_cmd_vtysh);
-  install_element (BGP_NODE, &no_aggregate_address_as_set_summary_cmd_vtysh);
-  install_element (INTERFACE_NODE, &shutdown_if_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_prefix_list_prefix_longer_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_redistribute_static_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_attr_unchanged5_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_prefix_list_description_cmd_vtysh);
-  install_element (ENABLE_NODE, &undebug_bgp_filter_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_prefix_list_detail_name_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_rd_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_irdp_minadvertinterval_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_prefix_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_prefix_list_name_seq_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_peer_in_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_attr_unchanged1_cmd_vtysh);
-  install_element (VIEW_NODE, &ipv6_mbgp_neighbor_routes_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_ospf_lsa_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_filter_list_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_aspath_val_cmd_vtysh);
-  install_element (RIP_NODE, &no_rip_offset_list_ifname_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_ospf_lsa_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_ospf6_all_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_ospf_zebra_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_bgp_network_route_map_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_attr_info_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_instance_ipv4_summary_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_soft_reconfiguration_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_bgp_filter_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_all_vpnv4_out_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_ospf_ism_sub_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_ospf_transmit_delay_addr_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_route_ifname_pref_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_community4_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_route_server_client_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_ripng_zebra_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_attr_unchanged4_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_rip_receive_version_1_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_mbgp_community2_exact_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_distribute_list_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_allowas_in_arg_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_ospf_transmit_delay_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_zebra_kernel_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ospf6_area_route_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_network_mask_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_out_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_route_server_client_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_router_id_val_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_rip_send_version_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_bgp_community4_exact_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_zebra_packet_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_view_route_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_attr_unchanged_cmd_vtysh);
-  install_element (RIP_NODE, &rip_default_metric_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_as_soft_in_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_distribute_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_external_ipv4_soft_out_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_all_soft_in_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_default_local_preference_val_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_ospf_nsm_sub_cmd_vtysh);
-  install_element (OSPF_NODE, &area_authentication_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_neighbor_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_allowas_in_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_prefix_list_detail_name_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_network_import_check_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_aspath_prepend_val_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_prefix_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_instance_neighbors_peer_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_forwarding_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_access_list_remark_arg_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_activate_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_rd_prefix_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_prefix_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_external_ipv4_soft_in_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_attr_unchanged6_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_community4_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_rd_prefix_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_prefix_list_prefix_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_ecommunity_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_mbgp_community4_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_ospf_retransmit_interval_addr_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_nexthop_self_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_dampening_address_mask_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_send_community_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_mbgp_prefix_list_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_attr_unchanged3_cmd_vtysh);
-  install_element (ENABLE_NODE, &undebug_bgp_update_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_send_community_type_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_filter_list_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_distance_source_access_list_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_attr_unchanged5_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_prefix_list_detail_name_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_prefix_list_cmd_vtysh);
-  install_element (OSPF_NODE, &area_vlink_param3_cmd_vtysh);
-  install_element (OSPF_NODE, &no_neighbor_priority_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_aggregate_address_summary_only_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_group_soft_in_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_default_information_originate_always_type_metric_routemap_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ospf_hello_interval_cmd_vtysh);
-  install_element (VIEW_NODE, &ipv6_mbgp_neighbor_received_routes_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_community2_exact_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_filter_list_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_rip_send_version_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_router_rip_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ipv6_address_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &ipv6_aggregate_address_summary_only_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_irdp_holdtime_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_as_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_community_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_unsuppress_map_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_ospf_ism_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_zebra_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &bgp_network_mask_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_vlink_param1_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_ip_address_prefix_list_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_prefix_list_description_arg_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_version_cmd_vtysh);
-  install_element (ZEBRA_NODE, &redistribute_ospf6_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_ospf_nssa_cmd_vtysh);
-  install_element (RMAP_NODE, &set_ipv6_nexthop_local_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_community_list_exact_cmd_vtysh);
-  install_element (RIP_NODE, &no_rip_default_metric_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_attr_unchanged1_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_attr_unchanged6_cmd_vtysh);
-  install_element (CONFIG_NODE, &ipv6_prefix_list_le_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_ipv6_bgp_network_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_default_information_originate_type_metric_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_origin_val_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_aggregate_address_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_route_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_bgp_network_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_unsuppress_map_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_attr_unchanged8_cmd_vtysh);
-  install_element (VIEW_NODE, &show_mpls_te_link_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_attr_unchanged8_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_aggregate_address_mask_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_peer_soft_out_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_send_community_type_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ospf6_neighborlist_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_instance_all_soft_in_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_ospf_packet_send_recv_detail_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_community_list_cmd_vtysh);
-  install_element (OSPF6_NODE, &passive_interface_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_remove_private_as_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_unsuppress_map_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_community3_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_group_soft_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_kernel_metric_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_default_local_preference_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_redistribute_ipv4_metric_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_ripng_packet_direct_cmd_vtysh);
-  install_element (CONFIG_NODE, &access_list_extended_any_mask_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_rip_zebra_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_capability_orf_prefix_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_network_route_map_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_attr_unchanged1_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_group_out_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_all_out_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_bgp_prefix_list_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_scan_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_irdp_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ospf_authentication_key_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_attr_unchanged3_cmd_vtysh);
-  install_element (VIEW_NODE, &show_debugging_zebra_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ipv6_ospf6_advertise_prefix_list_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ospf_transmit_delay_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_send_community_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_prefix_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_vpnv4_soft_in_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_originator_id_val_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_activate_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_distance_ospf_inter_intra_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_route_map_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_database_type_id_adv_router_dump_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_prefix_list_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_neighbor_routes_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_attr_unchanged10_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_ip_address_prefix_list_val_cmd_vtysh);
-  install_element (OSPF_NODE, &area_authentication_message_digest_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_redistribute_ipv4_rmap_metric_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_ospf_authentication_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_all_soft_out_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_ospf_neighbor_id_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &aggregate_address_as_set_summary_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_rip_receive_version_num_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_route_reflector_client_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_route_reflector_client_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_route_reflector_client_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_default_information_originate_metric_routemap_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_access_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_mbgp_route_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_neighbors_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_mbgp_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_capability_orf_prefix_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_rip_zebra_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_unsuppress_map_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_redistribute_ipv4_rmap_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_allowas_in_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_attr_unchanged5_cmd_vtysh);
-  install_element (RMAP_NODE, &set_weight_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ospf_retransmit_interval_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_bgp_fsm_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_interface_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_prefix_list_prefix_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_ospf_packet_all_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_prefix_longer_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_all_vpnv4_soft_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_ospf_lsa_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_ripng_packet_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_authentication_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_external_in_prefix_filter_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_rip_packet_direct_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_attr_unchanged3_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_mbgp_community_all_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_prefix_list_detail_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_attr_unchanged3_cmd_vtysh);
-  install_element (INTERFACE_NODE, &mpls_te_link_unrsv_bw_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_bgp_normal_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_redistribute_ipv4_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_origin_val_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_bgp_community2_exact_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_extcommunity_list_standard_cmd_vtysh);
-  install_element (RMAP_NODE, &set_community_none_cmd_vtysh);
-  install_element (RMAP_NODE, &set_metric_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_advertise_interval_cmd_vtysh);
-  install_element (RIP_NODE, &rip_distance_source_access_list_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_local_as_no_prepend_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_damp_set_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_community_list_standard_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_attr_unchanged_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_route_map_all_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_forwarding_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_peer_group_out_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_allowas_in_cmd_vtysh);
-  install_element (RMAP_NODE, &match_ipv6_next_hop_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_route_map_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_cluster_id_arg_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_zebra_kernel_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_route_supernets_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_bgp_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_ipv6_address_prefix_list_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ipv6_ospf6_priority_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_peer_in_prefix_filter_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_static_cmd_vtysh);
-  install_element (OSPF_NODE, &area_nssa_translate_no_summary_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &aggregate_address_mask_summary_only_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_mbgp_community_list_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_ecommunity_rt_cmd_vtysh);
-  install_element (OSPF_NODE, &no_ospf_router_id_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_ospf_neighbor_all_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_mbgp_community4_exact_cmd_vtysh);
-  install_element (OSPF_NODE, &area_vlink_authtype_args_md5_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_as_path_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_router_zebra_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_prefix_list_detail_name_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_community_exact_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_attr_unchanged_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_default_information_originate_always_metric_type_cmd_vtysh);
-  install_element (RMAP_NODE, &match_ip_next_hop_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_bgp_community2_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_client_to_client_reflection_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_scan_time_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_cidr_only_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_attr_unchanged8_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_attr_unchanged9_cmd_vtysh);
-  install_element (ENABLE_NODE, &ipv6_mbgp_neighbor_routes_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_prefix_list_ge_le_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_send_community_type_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_neighbor_advertised_route_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_maximum_prefix_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_rd_neighbors_peer_cmd_vtysh);
-  install_element (RMAP_NODE, &match_metric_cmd_vtysh);
-  install_element (KEYCHAIN_KEY_NODE, &send_lifetime_day_month_day_month_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_route_reflector_client_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_bgp_config_type_cmd_vtysh);
-  install_element (OSPF_NODE, &no_passive_interface_addr_cmd_vtysh);
-  install_element (BGP_NODE, &old_ipv6_aggregate_address_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_forwarding_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_bgp_redistribute_ipv6_metric_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_attr_unchanged5_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_as_soft_out_cmd_vtysh);
-  install_element (RIP_NODE, &no_rip_distance_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_prefix_list_name_seq_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ospf6_route_flapping_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_attr_unchanged2_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_prefix_list_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_attr_unchanged7_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_instance_all_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_redistribute_ipv4_rmap_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_community_list_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_ospf_packet_send_recv_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_ospf_message_digest_key_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_bgp_network_mask_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ipv6_ospf6_advertise_force_prefix_cmd_vtysh);
-  install_element (OSPF6_NODE, &no_passive_interface_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_neighbors_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_redistribute_ospf6_metric_cmd_vtysh);
-  install_element (RIP_NODE, &rip_offset_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_route_flapping_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_community3_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_rip_events_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_mbgp_community_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_cluster_id_cmd_vtysh);
-  install_element (OSPF_NODE, &router_id_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_route_ospf6_external_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_attr_unchanged4_cmd_vtysh);
-  install_element (KEYCHAIN_KEY_NODE, &accept_lifetime_duration_month_day_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_deterministic_med_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_port_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_all_in_prefix_filter_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_area_topology_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_prefix_list_detail_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_unsuppress_map_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_ospf_network_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_prefix_list_le_cmd_vtysh);
-  install_element (RMAP_NODE, &ospf6_routemap_set_forwarding_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_access_list_extended_any_host_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_ipv4_soft_in_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_send_community_type_cmd_vtysh);
-  install_element (CONFIG_NODE, &access_list_extended_mask_any_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_bgp_community_list_exact_cmd_vtysh);
-  install_element (RMAP_NODE, &ospf6_routemap_set_metric_type_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_network_mask_natural_backdoor_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_route_prefix_longer_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_nexthop_self_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_local_pref_val_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_filter_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_neighbor_received_routes_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ospf_network_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_interface_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_prefix_list_le_ge_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_community3_exact_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_distribute_list_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_fast_external_failover_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_community3_exact_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_distribute_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_access_list_name_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_allowas_in_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_extcommunity_list_standard2_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_ospf_neighbor_detail_all_cmd_vtysh);
-  install_element (BGP_NODE, &no_default_attr_localpref_cmd_vtysh);
-  install_element (ENABLE_NODE, &undebug_bgp_keepalive_cmd_vtysh);
-  install_element (OSPF_NODE, &no_ospf_compatible_rfc1583_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_aggregate_address_mask_summary_as_set_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_prefix_list_prefix_first_match_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_maximum_prefix_val_cmd_vtysh);
-  install_element (OSPF6_NODE, &flap_damping_route_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_redistribute_source_metric_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_strict_capability_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_ospf_route_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_ecommunity_rt_val_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_bgp_community_list_cmd_vtysh);
-  install_element (RMAP_NODE, &ospf6_routemap_no_set_metric_type_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_neighbors_peer_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_prefix_list_prefix_longer_cmd_vtysh);
-  install_element (CONFIG_NODE, &access_list_extended_any_host_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_redistribute_ipv4_metric_rmap_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &aggregate_address_summary_as_set_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_bgp_community_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_route_mask_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_rip_packet_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_redistribute_connected_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_as_soft_in_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &bgp_network_mask_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_view_prefix_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_damp_set2_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_route_server_client_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_rd_route_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &aggregate_address_as_set_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_mbgp_community_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_external_soft_in_cmd_vtysh);
-  install_element (OSPF_NODE, &no_refresh_timer_val_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_community4_exact_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_route_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_external_soft_out_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_bgp_community3_exact_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_remove_private_as_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_community_list_exact_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_redistribute_connected_metric_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ospf6_area_spf_tree_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_prefix_list_seq_ge_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_import_list_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_redistribute_kernel_metric_routemap_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_distance_ospf_intra_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &bgp_network_mask_natural_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_distance_source_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_view_route_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_maximum_prefix_warning_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_external_soft_out_cmd_vtysh);
-  install_element (VIEW_NODE, &show_table_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_bgp_update_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_soft_reconfiguration_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_shutdown_if_cmd_vtysh);
-  install_element (ENABLE_NODE, &undebug_bgp_fsm_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_route_map_cmd_vtysh);
-  install_element (ENABLE_NODE, &undebug_bgp_normal_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_access_list_extended_any_mask_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_prefix_longer_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_attr_unchanged4_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_as_vpnv4_in_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_bgp_update_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_default_metric_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_router_id_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_ospf6_metric_routemap_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_origin_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_prefix_list_prefix_cmd_vtysh);
-  install_element (RMAP_NODE, &set_atomic_aggregate_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_default_local_preference_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_update_source_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_attr_unchanged1_cmd_vtysh);
-  install_element (OSPF_NODE, &no_ospf_abr_type_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_neighbor_received_prefix_filter_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_peer_out_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_attr_unchanged8_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_external_soft_in_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_community_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &aggregate_address_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_distribute_list_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_send_community_type_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_default_originate_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_in_prefix_filter_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_maximum_prefix_warning_cmd_vtysh);
-  install_element (BGP_NODE, &no_synchronization_cmd_vtysh);
-  install_element (OSPF_NODE, &neighbor_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_community2_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_community_list_name_standard_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_attr_unchanged10_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_as_vpnv4_soft_out_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_as_in_prefix_filter_cmd_vtysh);
-  install_element (BGP_NODE, &no_aggregate_address_mask_as_set_summary_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_send_community_type_cmd_vtysh);
-  install_element (OSPF_NODE, &no_ospf_distance_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_out_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_vlink_authtype_authkey_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_all_cmd_vtysh);
-  install_element (OSPF_NODE, &area_range_not_advertise_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_ip_next_hop_prefix_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_bgp_fsm_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_default_originate_cmd_vtysh);
-  install_element (ENABLE_NODE, &undebug_bgp_all_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_always_compare_med_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_community4_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_prefix_list_description_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_vpnv4_in_cmd_vtysh);
-  install_element (VIEW_NODE, &show_debug_ospf6_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_aggregate_address_mask_as_set_summary_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_redistribute_source_metric_type_cmd_vtysh);
-  install_element (CONFIG_NODE, &dump_bgp_all_interval_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_attr_unchanged5_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_capability_orf_prefix_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ospf_dead_interval_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_default_information_originate_always_metric_type_routemap_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_external_soft_out_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_ospf_authentication_key_addr_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_flap_prefix_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_prefix_list_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_send_community_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_community_list_exact_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_ospf_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_shutdown_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_attr_unchanged2_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_bgp_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_route_protocol_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_timers_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_rip_authentication_key_chain2_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_all_neighbor_routes_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_zebra_events_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_nexthop_self_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_ospf_nssa_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_aspath_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_all_in_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_as_soft_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_attr_unchanged6_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_capability_route_refresh_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_community_list_expanded_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_debugging_ripng_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_kernel_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_maximum_prefix_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_bgp_redistribute_ipv6_metric_rmap_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_group_soft_out_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_route_protocol_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_remove_private_as_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_prefix_list_description_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_soft_in_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ospf_hello_interval_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_rip_packet_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_bgp_redistribute_ipv6_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_attr_unchanged7_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_rip_send_version_2_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_allowas_in_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_capability_orf_prefix_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_access_list_standard_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_ospf_database_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_all_neighbors_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_bgp_prefix_longer_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_access_list_any_cmd_vtysh);
-  install_element (CONFIG_NODE, &access_list_exact_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_attr_unchanged10_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_filter_list_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_ospf_event_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_as_soft_out_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_as_soft_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_ospf_priority_addr_cmd_vtysh);
-  install_element (CONFIG_NODE, &access_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_ipv4_soft_out_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_prefix_list_seq_le_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_instance_neighbors_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_attr_unchanged7_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_ospf_lsa_sub_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_all_ipv4_in_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ipv6_ospf6_hellointerval_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &bgp_damp_unset2_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_attr_unchanged7_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &bgp_network_mask_natural_route_map_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_prefix_list_prefix_first_match_cmd_vtysh);
-  install_element (CONFIG_NODE, &ipv6_prefix_list_description_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_neighbor_received_prefix_filter_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_version_ospf6_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_topology_router_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_rip_send_version_num_cmd_vtysh);
-  install_element (RMAP_NODE, &match_ecommunity_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_prefix_list_le_cmd_vtysh);
-  install_element (RIP_NODE, &no_rip_redistribute_type_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_ospf_priority_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_all_prefix_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_prefix_list_prefix_first_match_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_prefix_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_attr_unchanged2_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_as_vpnv4_out_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_ipv6_bgp_network_route_map_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_neighbor_routes_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_ospf_dead_interval_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_vlink_authkey_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_atomic_aggregate_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &ipv6_bgp_network_route_map_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_aggregate_address_summary_as_set_cmd_vtysh);
-  install_element (RMAP_NODE, &no_rmap_onmatch_next_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_all_soft_in_cmd_vtysh);
-  install_element (RMAP_NODE, &match_ipv6_address_prefix_list_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_prefix_list_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_neighbor_received_routes_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_ospf_ism_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ipv6_ospf6_instance_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_community4_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_attr_unchanged8_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_route_server_client_cmd_vtysh);
-  install_element (KEYCHAIN_KEY_NODE, &send_lifetime_duration_day_month_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_ospf6_metric_val_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_community_list_name_all_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_community4_cmd_vtysh);
-  install_element (OSPF_NODE, &area_range_advertise_cost_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_capability_orf_prefix_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_ip_next_hop_prefix_list_val_cmd_vtysh);
-  install_element (OSPF_NODE, &no_timers_spf_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_send_community_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_community2_cmd_vtysh);
-  install_element (OSPF_NODE, &refresh_timer_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_bgp_keepalive_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_nexthop_self_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_mbgp_route_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_interface_ifname_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_community_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_rip_packet_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_ipv6_next_hop_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_redistribute_bgp_cmd_vtysh);
-  install_element (OSPF_NODE, &no_network_area_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_external_in_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_range_advertise_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_extcommunity_list_arg_cmd_vtysh);
-  install_element (CONFIG_NODE, &dump_bgp_all_cmd_vtysh);
-  install_element (OSPF_NODE, &no_neighbor_cmd_vtysh);
-  install_element (CONFIG_NODE, &router_zebra_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_community_exact_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_prefix_list_detail_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_summary_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_as_soft_out_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_route_prefix_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_mbgp_prefix_list_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_route_map_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_attr_unchanged1_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_instance_all_soft_in_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_extcommunity_list_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_interface_val_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_stub_no_summary_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_stub_cmd_vtysh);
-  install_element (OSPF_NODE, &area_import_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_all_tags_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_unsuppress_map_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_allowas_in_cmd_vtysh);
-  install_element (OSPF6_NODE, &interface_area_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_bgp_update_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_irdp_maxadvertinterval_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_community4_exact_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &aggregate_address_mask_summary_as_set_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_community2_exact_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_dampening_prefix_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_view_prefix_cmd_vtysh);
-  install_element (OSPF_NODE, &area_vlink_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_debugging_zebra_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_prefix_cmd_vtysh);
-  install_element (RIP_NODE, &rip_version_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_default_originate_rmap_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ospf_cost_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_external_ipv4_in_prefix_filter_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_enforce_first_as_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_rip_send_version_1_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_mbgp_community3_exact_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_ospf_route_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_mbgp_prefix_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_neighbor_routes_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_prefix_list_summary_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_rd_neighbor_routes_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_ospf_transmit_delay_addr_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_vlink_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_ospf_database_type_id_adv_router_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_community_val_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_attr_unchanged8_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_rip_receive_version_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_aggregate_address_mask_summary_only_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_weight_val_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_zebra_packet_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_soft_reconfiguration_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_route_map_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_maximum_prefix_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_route_mask_distance_cmd_vtysh);
-  install_element (BGP_NODE, &aggregate_address_mask_summary_as_set_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_zebra_kernel_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_prefix_list_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ospf_message_digest_key_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_bgp_filter_list_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_ospf_retransmit_interval_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_community_list_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ipv6_ospf6_cost_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_ospf_message_digest_key_addr_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_ospf_nsm_sub_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_route_reflector_client_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_default_originate_rmap_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_connected_metric_routemap_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_access_list_any_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_prefix_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_remove_private_as_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_soft_out_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_neighbor_received_routes_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_nssa_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_attr_unchanged10_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ipv6_ospf6_deadinterval_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_prefix_longer_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_route_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_attr_unchanged8_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_route_server_client_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_local_as_val2_cmd_vtysh);
-  install_element (CONFIG_NODE, &ipv6_prefix_list_ge_le_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_send_community_type_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_ospf_transmit_delay_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_allowas_in_cmd_vtysh);
-  install_element (ZEBRA_NODE, &no_rip_redistribute_rip_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_vpnv4_network_cmd_vtysh);
-  install_element (CONFIG_NODE, &config_table_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_mpls_te_link_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_description_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &aggregate_address_summary_only_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_cidr_only_cmd_vtysh);
-  install_element (RIP_NODE, &rip_distance_source_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_external_out_cmd_vtysh);
-  install_element (VIEW_NODE, &show_interface_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_bgp_community4_exact_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_vpnv4_soft_out_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_extcommunity_list_name_standard2_cmd_vtysh);
-  install_element (VIEW_NODE, &show_mpls_te_router_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_prefix_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_aggregate_address_mask_summary_only_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_regexp_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_always_compare_med_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_ospf_border_routers_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_interface_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_ospf_database_type_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_default_information_originate_always_metric_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_prefix_list_name_seq_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_community3_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_default_originate_rmap_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_ipv6_nexthop_local_val_cmd_vtysh);
-  install_element (CONFIG_NODE, &access_list_extended_host_host_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_community3_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_aggregator_as_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_prefix_list_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_distance_ospf_intra_inter_external_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_peer_group_soft_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &aggregate_address_mask_as_set_summary_cmd_vtysh);
-  install_element (BGP_NODE, &old_ipv6_aggregate_address_summary_only_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_community_cmd_vtysh);
-  install_element (BGP_NODE, &no_aggregate_address_summary_as_set_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_zebra_packet_detail_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_all_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_neighbor_received_prefix_filter_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_ripng_packet_detail_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_ospf_neighbor_detail_all_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_ospf_database_type_self_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_soft_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_distribute_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_regexp_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_ipv6_nexthop_local_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_community3_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_default_originate_cmd_vtysh);
-  install_element (RIPNG_NODE, &default_information_originate_cmd_vtysh);
-  install_element (KEYCHAIN_KEY_NODE, &accept_lifetime_month_day_month_day_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_mbgp_prefix_longer_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_community2_exact_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_activate_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ospf6_database_type_id_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_all_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_ospf_ism_cmd_vtysh);
-  install_element (OSPF_NODE, &no_neighbor_poll_interval_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_debugging_bgp_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_flap_cidr_only_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_rd_summary_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_description_val_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_protocols_rip_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_summary_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_rfc1583_flag_cmd_vtysh);
-  install_element (KEYCHAIN_KEY_NODE, &accept_lifetime_infinite_day_month_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ipv6_prefix_list_name_prefix_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_route_prefix_longer_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_prefix_list_prefix_first_match_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_default_information_originate_metric_type_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_distance_source_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_ospf_lsa_sub_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &bgp_network_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_as_cmd_vtysh);
-  install_element (OSPF_NODE, &mpls_te_router_addr_cmd_vtysh);
-  install_element (RMAP_NODE, &match_ip_next_hop_prefix_list_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &aggregate_address_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_prefix_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_ripng_zebra_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_prefix_list_seq_ge_le_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_bestpath_compare_router_id_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_mbgp_regexp_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_allowas_in_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_attr_unchanged8_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_access_list_extended_host_host_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_soft_reconfiguration_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_ospf_zebra_sub_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_ospf_ism_sub_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_range_advertise_cost_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_maximum_prefix_val_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_prefix_list_summary_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_ospf_retransmit_interval_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_neighbor_flap_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_prefix_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_access_list_extended_any_any_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_default_information_originate_always_type_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_all_neighbor_routes_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_attr_unchanged10_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_all_out_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_aggregate_address_summary_only_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_community_list_name_expanded_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_prefix_list_name_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_default_information_originate_always_cmd_vtysh);
-  install_element (RMAP_NODE, &set_ecommunity_soo_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_ospf6_routemap_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &bgp_damp_set2_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_redistribute_bgp_routemap_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_ecommunity_soo_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_attr_unchanged_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_ospf_neighbor_all_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_summary_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_prefix_list_prefix_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_bgp_fsm_cmd_vtysh);
-  install_element (CONFIG_NODE, &bgp_multiple_instance_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_router_bgp_view_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_prefix_list_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_prefix_list_seq_le_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_summary_cmd_vtysh);
-  install_element (RIP_NODE, &no_rip_default_metric_val_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_paths_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_community_list_arg_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_access_list_standard_host_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_ospf_nssa_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_ospf_cost_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_redistribute_kernel_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_ospf_database_type_adv_router_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_default_metric_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_flap_filter_list_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_prefix_list_seq_le_ge_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_set_peer_group_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ospf6_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_neighbor_received_prefix_filter_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_flap_prefix_longer_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_as_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_ospf_authentication_addr_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_local_as_cmd_vtysh);
-  install_element (CONFIG_NODE, &dump_bgp_updates_interval_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_community4_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_attr_unchanged4_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_community3_exact_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_scan_time_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_rip_authentication_string2_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_redistribute_ipv4_rmap_metric_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_instance_all_ipv4_in_prefix_filter_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_neighbor_received_routes_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_ospf_authentication_args_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_rip_authentication_key_chain_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_rd_tags_cmd_vtysh);
-  install_element (CONFIG_NODE, &access_list_extended_any_any_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_ipv4_soft_in_cmd_vtysh);
-  install_element (OSPF_NODE, &no_ospf_default_metric_val_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_extcommunity_list_name_expanded_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_ospf_neighbor_detail_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_community_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_send_community_type_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_neighbors_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_community4_exact_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_attr_unchanged10_cmd_vtysh);
-  install_element (KEYCHAIN_KEY_NODE, &send_lifetime_day_month_month_day_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_nssa_no_summary_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_flap_cidr_only_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_flap_address_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_summary_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_bestpath_med3_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_flap_route_map_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_rd_route_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_ipv4_soft_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_activate_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_instance_ipv6_summary_cmd_vtysh);
-  install_element (KEYCHAIN_KEY_NODE, &accept_lifetime_day_month_day_month_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_instance_all_soft_out_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_area_topology_router_lsid_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_bgp_normal_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_external_soft_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_ospf_border_routers_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_prefix_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_ospf_packet_send_recv_detail_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_metric_type_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_ospf6_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_ospf_message_digest_key_addr_cmd_vtysh);
-  install_element (VIEW_NODE, &ipv6_bgp_neighbor_received_routes_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_ospf6_all_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_remove_private_as_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_community_all_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_attr_unchanged1_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_ospf_database_type_self_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_ospf_cost_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ipv6_ospf6_transmitdelay_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_summary_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_rip_receive_version_2_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_nexthop_self_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_vlink_param3_cmd_vtysh);
-  install_element (OSPF_NODE, &area_export_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_prefix_list_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_rip_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_aggregate_address_mask_as_set_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_aggregate_address_as_set_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_zebra_kernel_cmd_vtysh);
-  install_element (KEYCHAIN_KEY_NODE, &send_lifetime_duration_month_day_cmd_vtysh);
-  install_element (RIP_NODE, &no_rip_redistribute_type_metric_routemap_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_community_list_standard2_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_route_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_community3_exact_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_bestpath_med2_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_regexp_cmd_vtysh);
-  install_element (OSPF_NODE, &no_ospf_default_information_originate_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_ospf_authentication_key_addr_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_aggregator_as_val_cmd_vtysh);
-  install_element (CONFIG_NODE, &ipv6_prefix_list_seq_le_ge_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_rd_neighbors_peer_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_ip_address_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_default_information_originate_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_attr_unchanged3_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_as_out_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_community_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_ospf_packet_all_cmd_vtysh);
-  install_element (CONFIG_NODE, &ipv6_route_pref_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_default_originate_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_all_neighbors_peer_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_prefix_list_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_address_secondary_cmd_vtysh);
-  install_element (INTERFACE_NODE, &mpls_te_link_max_rsv_bw_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_scan_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_bgp_keepalive_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_regexp_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_attr_unchanged2_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_rip_packet_direct_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_attr_unchanged7_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_bgp_filter_list_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_enforce_multihop_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_default_information_originate_always_routemap_cmd_vtysh);
-  install_element (CONFIG_NODE, &access_list_extended_mask_host_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_neighbor_advertised_route_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_bestpath_med_cmd_vtysh);
-  install_element (OSPF_NODE, &area_vlink_authtype_authkey_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_rip_zebra_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_network_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_attr_unchanged8_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_community3_exact_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_database_type_id_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_redistribute_source_type_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_community_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_as_ipv4_soft_in_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_distance_ospf_external_intra_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_route_prefix_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_flap_statistics_cmd_vtysh);
-  install_element (RMAP_NODE, &set_ipv6_nexthop_global_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_external_in_prefix_filter_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_neighbor_received_routes_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_attr_unchanged9_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_default_originate_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_neighbor_routes_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_prefix_longer_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_ospf_zebra_sub_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_attr_unchanged_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_soft_out_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &aggregate_address_as_set_summary_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_instance_ipv4_summary_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_soft_in_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ripng_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_damp_unset_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_distribute_list_out_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_dump_bgp_updates_cmd_vtysh);
-  install_element (CONFIG_NODE, &access_list_standard_host_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &bgp_network_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_bgp_events_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_community4_exact_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_area_route_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_ospf_dead_interval_addr_cmd_vtysh);
-  install_element (CONFIG_NODE, &ipv6_access_list_remark_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_route_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_attr_unchanged7_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_ospf_lsa_sub_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_rip_split_horizon_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_set_peer_group_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ipv6_prefix_list_name_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_external_ipv4_soft_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_all_route_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_set_peer_group_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_attr_unchanged1_cmd_vtysh);
-  install_element (BGP_NODE, &aggregate_address_summary_only_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_access_list_extended_host_mask_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_soft_reconfiguration_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_all_soft_cmd_vtysh);
-  install_element (KEYCHAIN_NODE, &no_key_chain_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_community_info_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_ospf_event_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_attr_unchanged10_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_community_all_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_filter_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_soft_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_rip_authentication_mode_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_port_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_redistribute_source_type_routemap_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_peer_group_soft_in_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_network_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_prefix_list_seq_le_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_community3_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_distance_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_ripng_zebra_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_neighbor_advertised_route_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_default_information_originate_metric_type_routemap_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_ipv6_aggregate_address_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_attr_unchanged3_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_enforce_first_as_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_prefix_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_database_type_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_prefix_list_summary_cmd_vtysh);
-  install_element (RIP_NODE, &no_rip_passive_interface_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_area_route_prefix_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_route_distance_cmd_vtysh);
-  install_element (BGP_NODE, &old_ipv6_bgp_network_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_network_backdoor_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_bestpath_med_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_default_originate_rmap_cmd_vtysh);
-  install_element (CONFIG_NODE, &access_list_standard_cmd_vtysh);
-  install_element (ZEBRA_NODE, &no_redistribute_ospf6_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_bgp_keepalive_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_neighbor_damp_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_dampening_address_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_filter_list_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_community_list_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_bestpath_aspath_ignore_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_external_in_prefix_filter_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_rip_authentication_string_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_community_list_expanded_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_all_neighbor_advertised_routes_cmd_vtysh);
-  install_element (VIEW_NODE, &show_debugging_ripng_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_ospf_database_type_id_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_network_mask_natural_backdoor_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_prefix_list_seq_ge_le_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_attr_unchanged2_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_community_exact_cmd_vtysh);
-  install_element (KEYCHAIN_KEY_NODE, &accept_lifetime_infinite_month_day_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_originator_id_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_neighbor_flap_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_attr_unchanged1_cmd_vtysh);
-  install_element (VIEW_NODE, &show_version_ospf6_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_aggregate_address_mask_as_set_summary_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_distance_ospf_inter_external_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &aggregate_address_mask_as_set_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_access_list_remark_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_ipv6_nexthop_global_cmd_vtysh);
-  install_element (CONFIG_NODE, &access_list_standard_nomask_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_passive_interface_cmd_vtysh);
-  install_element (ENABLE_NODE, &ipv6_bgp_neighbor_advertised_route_cmd_vtysh);
-  install_element (RIP_NODE, &rip_redistribute_type_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_ospf_zebra_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_metric_val_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &bgp_network_mask_route_map_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_redistribute_source_type_metric_routemap_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_community4_exact_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ospf6_interface_ifname_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_attr_info_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_ospf_packet_send_recv_detail_cmd_vtysh);
   install_element (VIEW_NODE, &show_ip_bgp_ipv4_neighbors_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_neighbor_routes_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_flap_prefix_list_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_attr_unchanged8_cmd_vtysh);
-  install_element (OSPF_NODE, &mpls_te_on_cmd_vtysh);
-  install_element (RIP_NODE, &rip_offset_list_ifname_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &aggregate_address_mask_as_set_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_default_ipv4_unicast_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_rip_events_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_allowas_in_arg_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_attr_unchanged6_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_bgp_network_route_map_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &aggregate_address_mask_summary_as_set_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_dont_capability_negotiate_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_community4_exact_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_static_routemap_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_prefix_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_in_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_mbgp_community_list_exact_cmd_vtysh);
-  install_element (KEYCHAIN_KEY_NODE, &send_lifetime_infinite_month_day_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_advertise_interval_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_linkdetect_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_send_community_cmd_vtysh);
-  install_element (KEYCHAIN_KEY_NODE, &no_key_string_cmd_vtysh);
-  install_element (OSPF_NODE, &timers_spf_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_instance_all_ipv4_soft_out_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_mbgp_summary_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_flap_prefix_longer_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_maximum_prefix_cmd_vtysh);
-  install_element (RMAP_NODE, &set_origin_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_network_mask_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_network_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_distance_ospf_inter_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_ripng_zebra_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_timers_connect_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_ip_next_hop_val_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_ospf_priority_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_ospf_nsm_sub_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_attr_unchanged10_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_prefix_list_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_access_list_exact_cmd_vtysh);
-  install_element (RIP_NODE, &no_rip_redistribute_type_metric_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ospf_priority_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_ospf6_metric_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_bandwidth_if_val_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &aggregate_address_as_set_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_ospf_authentication_key_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_bgp_multiple_instance_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_send_community_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_peer_group_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_extcommunity_list_expanded_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_ospf_zebra_cmd_vtysh);
-  install_element (RMAP_NODE, &ospf6_routemap_no_set_forwarding_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ospf6_area_topology_router_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_mbgp_summary_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_ospf_interface_cmd_vtysh);
-  install_element (RIP_NODE, &no_rip_route_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_irdp_multicast_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_network_mask_route_map_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_prefix_longer_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_view_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_attr_unchanged_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_route_map_cmd_vtysh);
-  install_element (BGP_NODE, &aggregate_address_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_soft_cmd_vtysh);
-  install_element (CONFIG_NODE, &ipv6_prefix_list_seq_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_ip_next_hop_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_external_out_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ospf6_topology_router_lsid_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_default_information_originate_routemap_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ospf_authentication_key_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_connected_metric_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_peer_soft_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_ospf_hello_interval_addr_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_mbgp_community4_exact_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_all_summary_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_forwarding_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_default_originate_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_attr_unchanged7_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_dump_bgp_routes_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_access_list_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_prefix_list_ge_le_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_ospf_ism_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_neighbors_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_extcommunity_list_name_all_cmd_vtysh);
   install_element (VIEW_NODE, &show_bgp_instance_summary_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_community4_cmd_vtysh);
-  install_element (OSPF_NODE, &area_vlink_param1_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_attr_unchanged6_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_default_information_originate_always_metric_routemap_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_group_cmd_vtysh);
-  install_element (CONFIG_NODE, &ipv6_prefix_list_sequence_number_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_prefix_list_ge_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_redistribute_static_metric_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_attr_unchanged7_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_mbgp_community_cmd_vtysh);
-  install_element (BGP_NODE, &aggregate_address_mask_as_set_summary_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_ospf_cost_addr_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_default_originate_rmap_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_instance_all_soft_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_attr_unchanged5_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_bgp_regexp_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_prefix_list_prefix_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_prefix_list_summary_name_cmd_vtysh);
-  install_element (INTERFACE_NODE, &mpls_te_link_maxbw_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_ospf_authentication_args_addr_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_network_mask_natural_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_rip_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_instance_all_in_prefix_filter_cmd_vtysh);
-  install_element (BGP_NODE, &no_bgp_client_to_client_reflection_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_ripng_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ospf_dead_interval_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_neighbor_received_routes_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_weight_val_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_ospf_authentication_addr_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_rip_receive_version_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_as_ipv4_in_prefix_filter_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_as_ipv4_soft_out_cmd_vtysh);
-  install_element (CONFIG_NODE, &access_list_standard_any_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ospf_priority_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_community3_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_set_peer_group_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_ipv4_soft_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_bgp_network_mask_natural_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_ospf6_neighborlist_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_ospf_neighbor_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_instance_all_soft_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_external_in_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_route_server_client_cmd_vtysh);
-  install_element (RMAP_NODE, &match_community_exact_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_community_list_exact_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_all_neighbors_peer_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_transparent_nexthop_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_peer_group_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_ospf_packet_all_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_peer_group_remote_as_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_prefix_list_seq_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_all_prefix_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_all_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_attr_unchanged1_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_all_in_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_activate_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_attr_unchanged_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_set_peer_group_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_aggregate_address_as_set_cmd_vtysh);
-  install_element (BGP_NODE, &no_aggregate_address_mask_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_route_prefix_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_ospf_packet_all_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_attr_unchanged_cmd_vtysh);
-  install_element (RIP_NODE, &no_rip_default_information_originate_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_router_bgp_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_community_all_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_ospf_database_type_id_self_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_prefix_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_neighbors_peer_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_bgp_prefix_list_cmd_vtysh);
-  install_element (RIP_NODE, &rip_neighbor_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_extcommunity_list_arg_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_rd_neighbor_routes_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_flap_regexp_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_attr_unchanged6_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_all_soft_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_prefix_list_ge_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_soft_reconfiguration_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &bgp_redistribute_ipv6_rmap_metric_cmd_vtysh);
-  install_element (OSPF_NODE, &area_vlink_authtype_args_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_neighbor_advertised_route_cmd_vtysh);
-  install_element (RMAP_NODE, &match_ip_address_prefix_list_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_ospf6_damp_cmd_vtysh);
-  install_element (CONFIG_NODE, &ipv6_route_ifname_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_route_pref_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_ospf_database_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_zebra_client_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_ripng_events_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ipv6_address_cmd_vtysh);
-  install_element (RIPNG_NODE, &ripng_redistribute_ospf6_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_filter_list_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_attr_unchanged7_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_community_delete_val_cmd_vtysh);
-  install_element (CONFIG_NODE, &ipv6_route_ifname_pref_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_community_list_exact_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_all_soft_in_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_ospf_neighbor_detail_cmd_vtysh);
-  install_element (OSPF6_NODE, &router_id_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_flap_prefix_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_ripng_packet_direct_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_out_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &bgp_redistribute_ipv6_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_external_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_aggregate_address_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_prefix_list_name_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_community_all_cmd_vtysh);
-  install_element (CONFIG_NODE, &ipv6_route_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_ipv4_in_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_bgp_metric_routemap_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_ipv4_out_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_weight_cmd_vtysh);
-  install_element (RIP_NODE, &rip_passive_interface_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_filter_list_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_attr_unchanged3_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_prefix_longer_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_route_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_debug_ospf_packet_send_recv_detail_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_route_map_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_route_reflector_client_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_nexthop_self_cmd_vtysh);
-  install_element (BGP_NODE, &no_aggregate_address_summary_only_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_bgp_community_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_cidr_only_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_all_neighbors_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_ipv6_aggregate_address_summary_only_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_in_prefix_filter_cmd_vtysh);
-  install_element (CONFIG_NODE, &ipv6_access_list_any_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &vpnv4_network_cmd_vtysh);
-  install_element (RIP_NODE, &no_rip_network_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_maximum_prefix_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_ripng_packet_direct_cmd_vtysh);
-  install_element (OSPF_NODE, &neighbor_poll_interval_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_access_list_standard_any_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_bestpath_aspath_ignore_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_as_in_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_route_addr_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_advertise_interval_val_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_rd_neighbor_advertised_routes_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_prefix_list_prefix_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_peer_in_prefix_filter_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_attr_unchanged1_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_attr_unchanged9_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_ospf_nsm_sub_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_ospf_message_digest_key_addr_cmd_vtysh);
+  install_element (BGP_NODE, &no_default_attr_localpref_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_redistribute_static_metric_routemap_cmd_vtysh);
+  install_element (OSPF_NODE, &no_network_area_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_version_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_prefix_list_name_seq_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_route_server_client_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_community_list_name_all_cmd_vtysh);
   install_element (OSPF_NODE, &ospf_default_information_originate_always_type_routemap_cmd_vtysh);
-  install_element (BGP_NODE, &bgp_router_id_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_mbgp_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_extcommunity_list_name_expanded_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_activate_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_extcommunity_list_name_standard_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_route_map_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_ipv4_in_prefix_filter_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_capability_orf_prefix_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_community_exact_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &bgp_network_route_map_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_community_info_cmd_vtysh);
-  install_element (ZEBRA_NODE, &rip_redistribute_rip_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_external_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_instance_summary_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_community_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_as_ipv4_soft_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_filter_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_ipv4_out_cmd_vtysh);
-  install_element (RMAP_NODE, &match_origin_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_route_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_ospf_packet_send_recv_cmd_vtysh);
-  install_element (RIP_NODE, &no_rip_distance_source_access_list_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_attr_unchanged_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_as_ipv4_out_cmd_vtysh);
-  install_element (OSPF_NODE, &passive_interface_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_redistribute_source_type_metric_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_attr_unchanged7_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &neighbor_distribute_list_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_bgp_routemap_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_mbgp_community4_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_peer_soft_in_cmd_vtysh);
-  install_element (OSPF6_NODE, &interface_area_plist_passive_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_community_delete_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_ospf_neighbor_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_as_vpnv4_soft_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_bgp_community_list_exact_cmd_vtysh);
-  install_element (RIP_NODE, &no_rip_version_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_mbgp_filter_list_cmd_vtysh);
-  install_element (OSPF_NODE, &area_vlink_authtype_md5_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_access_list_cmd_vtysh);
-  install_element (RMAP_NODE, &set_ecommunity_rt_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_prefix_longer_cmd_vtysh);
-  install_element (BGP_NODE, &no_aggregate_address_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_extcommunity_list_expanded_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_default_originate_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_ospf_dead_interval_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_bgp_community2_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_maximum_prefix_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_bandwidth_if_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_all_neighbor_advertised_routes_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_local_pref_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_bgp_community2_exact_cmd_vtysh);
-  install_element (CONFIG_NODE, &ip_prefix_list_seq_ge_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_community2_exact_cmd_vtysh);
-  install_element (BGP_NODE, &no_aggregate_address_mask_summary_only_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ospf_network_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_filter_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_all_soft_out_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_community_exact_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_bgp_network_mask_route_map_cmd_vtysh);
-  install_element (INTERFACE_NODE, &no_ip_rip_authentication_mode_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &no_neighbor_distribute_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_as_in_prefix_filter_cmd_vtysh);
-  install_element (RIPNG_NODE, &no_ripng_redistribute_connected_metric_val_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_ospf_nsm_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ip_irdp_preference_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_attr_unchanged9_cmd_vtysh);
-  install_element (RIP_NODE, &no_rip_offset_list_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_range_substitute_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &bgp_redistribute_ipv6_rmap_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_community_list_name_expanded_cmd_vtysh);
-  install_element (OSPF_NODE, &no_ospf_opaque_capable_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_neighbor_received_routes_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &no_neighbor_allowas_in_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_prefix_list_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_distance_ospf_intra_external_inter_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_prefix_longer_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_mbgp_community3_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_timers_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_peer_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_route_addr_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_prefix_list_summary_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_ipv6_all_soft_out_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_ospf_lsa_sub_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ip_prefix_list_seq_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_override_capability_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_neighbor_routes_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_mpls_te_router_cmd_vtysh);
-  install_element (ENABLE_NODE, &undebug_bgp_events_cmd_vtysh);
-  install_element (BGP_NODE, &no_aggregate_address_as_set_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_send_community_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_access_list_exact_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_bgp_prefix_longer_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_external_ipv4_in_cmd_vtysh);
-  install_element (OSPF_NODE, &network_area_cmd_vtysh);
-  install_element (ENABLE_NODE, &ipv6_mbgp_neighbor_received_routes_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_version_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_route_protocol_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_ebgp_multihop_cmd_vtysh);
-  install_element (KEYCHAIN_KEY_NODE, &no_key_chain_cmd_vtysh);
-  install_element (KEYCHAIN_KEY_NODE, &accept_lifetime_day_month_month_day_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_route_map_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_community4_exact_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_neighbor_unsuppress_map_cmd_vtysh);
-  install_element (BGP_IPV4_NODE, &no_bgp_network_mask_route_map_cmd_vtysh);
+  install_element (OSPF6_NODE, &interface_area_passive_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_ospf_packet_all_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_bgp_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_route_map_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_all_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_distance_ospf_external_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_ospf_ism_sub_cmd_vtysh);
+  install_element (CONFIG_NODE, &access_list_standard_nomask_cmd_vtysh);
+  install_element (RMAP_NODE, &match_aspath_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_peer_in_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_external_ipv4_out_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_ospf_nsm_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_metric_type_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_redistribute_connected_metric_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_community_list_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_ipv6_bgp_network_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_ospf_lsa_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_activate_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_route_server_client_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_area_route_cmd_vtysh);
+  install_element (CONFIG_NODE, &access_list_extended_any_host_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_instance_all_soft_in_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_external_soft_in_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_prefix_list_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_default_information_originate_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_rip_authentication_string_cmd_vtysh);
+  install_element (CONFIG_NODE, &ipv6_prefix_list_seq_ge_le_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_ospf_neighbor_int_detail_cmd_vtysh);
+  install_element (RMAP_NODE, &set_vpnv4_nexthop_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_ipv6_aggregate_address_summary_only_cmd_vtysh);
   install_element (VIEW_NODE, &show_ipv6_bgp_route_cmd_vtysh);
-  install_element (RMAP_NODE, &no_set_vpnv4_nexthop_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_dampened_paths_cmd_vtysh);
-  install_element (OSPF_NODE, &mpls_te_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_as_vpnv4_soft_in_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_community2_exact_cmd_vtysh);
-  install_element (OSPF_NODE, &ospf_default_information_originate_type_metric_routemap_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_bgp_prefix_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_bgp_community_exact_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_capability_dynamic_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_regexp_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_all_cmd_vtysh);
-  install_element (OSPF_NODE, &area_vlink_md5_cmd_vtysh);
-  install_element (OSPF_NODE, &area_vlink_authtype_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_prefix_longer_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_ecommunity_rt_val_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_soft_in_cmd_vtysh);
+  install_element (VIEW_NODE, &ipv6_mbgp_neighbor_advertised_route_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_timers_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_neighborlist_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_database_type_id_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_prefix_list_prefix_cmd_vtysh);
+  install_element (CONFIG_NODE, &dump_bgp_routes_interval_cmd_vtysh);
+  install_element (OSPF6_NODE, &interface_area_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_redistribute_source_metric_type_routemap_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_all_out_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_prefix_longer_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_zebra_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_attr_unchanged9_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_regexp_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_ospf_neighbor_detail_all_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_origin_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_route_prefix_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_ospf_route_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_soft_cmd_vtysh);
+  install_element (RMAP_NODE, &match_ip_address_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_paths_cmd_vtysh);
+  install_element (ZEBRA_NODE, &no_redistribute_ospf6_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_ecommunity_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_timers_connect_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_aspath_prepend_val_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_prefix_list_prefix_longer_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &aggregate_address_as_set_summary_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_redistribute_static_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_route_mask_distance_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_rip_send_version_cmd_vtysh);
+  install_element (RIPNG_NODE, &default_information_originate_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_attr_unchanged2_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_filter_list_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_kernel_metric_cmd_vtysh);
+  install_element (RMAP_NODE, &set_ipv6_nexthop_local_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_instance_all_ipv4_soft_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_ospf_database_type_id_self_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_as_path_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_bgp_normal_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_community4_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_bgp_network_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_unsuppress_map_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_out_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_prefix_list_name_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_neighbor_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_flap_cidr_only_cmd_vtysh);
+  install_element (RMAP_NODE, &match_metric_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_prefix_list_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_allowas_in_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_route_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_ipv4_soft_in_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_route_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_route_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_ospf_retransmit_interval_addr_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_ip_nexthop_val_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_bgp_community3_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_attr_info_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_route_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_external_ipv4_soft_in_cmd_vtysh);
+  install_element (KEYCHAIN_NODE, &no_key_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_view_prefix_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_cmd_vtysh);
+  install_element (CONFIG_NODE, &access_list_extended_host_mask_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_mbgp_community_exact_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_community2_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_all_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_ripng_zebra_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_route_map_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_attr_unchanged1_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_ospf_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_prefix_list_name_seq_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_area_topology_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_peer_group_in_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ospf_cost_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_prefix_list_prefix_longer_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_atomic_aggregate_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_community_list_exact_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_as_out_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_attr_unchanged_cmd_vtysh);
+  install_element (BGP_NODE, &no_aggregate_address_mask_as_set_cmd_vtysh);
+  install_element (CONFIG_NODE, &router_zebra_cmd_vtysh);
+  install_element (RMAP_NODE, &match_ipv6_next_hop_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_neighbor_received_prefix_filter_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_router_zebra_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_summary_cmd_vtysh);
+  install_element (OSPF_NODE, &neighbor_poll_interval_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_all_soft_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_prefix_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_community_exact_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_ospf_packet_send_recv_cmd_vtysh);
+  install_element (INTERFACE_NODE, &linkdetect_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_as_ipv4_in_prefix_filter_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_community4_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_zebra_packet_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_local_as_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_as_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_ospf_packet_send_recv_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_flap_prefix_list_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_prefix_list_detail_name_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_neighbor_routes_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_attr_unchanged4_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_instance_all_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_maximum_prefix_val2_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_send_community_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_vpnv4_nexthop_val_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_damp_set3_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &ipv6_aggregate_address_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_attr_unchanged7_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_attr_unchanged5_cmd_vtysh);
+  install_element (CONFIG_NODE, &access_list_extended_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_soft_reconfiguration_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_community_all_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ospf_retransmit_interval_cmd_vtysh);
   install_element (ENABLE_NODE, &show_ip_ospf_neighbor_id_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_access_list_extended_mask_any_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_prefix_list_prefix_longer_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_bgp_ipv4_community_list_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_capability_route_refresh_cmd_vtysh);
-  install_element (OSPF_NODE, &no_area_vlink_authtype_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_rip_packet_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_neighbors_peer_cmd_vtysh);
-  install_element (BGP_NODE, &no_neighbor_filter_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_peer_vpnv4_out_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_bgp_regexp_cmd_vtysh);
-  install_element (OSPF6_NODE, &area_range_cmd_vtysh);
-  install_element (OSPF6_NODE, &ospf6_redistribute_routemap_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_bgp_ipv6_neighbor_advertised_route_cmd_vtysh);
-  install_element (RIP_NODE, &rip_distance_cmd_vtysh);
-  install_element (BGP_VPNV4_NODE, &neighbor_maximum_prefix_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_rd_summary_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_bgp_as_out_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_all_ipv4_soft_out_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_access_list_standard_nomask_cmd_vtysh);
-  install_element (ENABLE_NODE, &no_debug_bgp_fsm_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &no_neighbor_attr_unchanged2_cmd_vtysh);
-  install_element (VIEW_NODE, &show_bgp_ipv6_community_all_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_all_ipv4_soft_in_cmd_vtysh);
-  install_element (INTERFACE_NODE, &ipv6_ospf6_advertise_prefix_list_cmd_vtysh);
-  install_element (RMAP_NODE, &no_match_metric_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_community_list_arg_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_flap_route_map_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_key_chain_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_instance_neighbors_peer_cmd_vtysh);
-  install_element (CONFIG_NODE, &no_ipv6_access_list_remark_arg_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &neighbor_soft_reconfiguration_cmd_vtysh);
-  install_element (BGP_IPV4M_NODE, &neighbor_maximum_prefix_cmd_vtysh);
-  install_element (CONFIG_NODE, &debug_bgp_events_cmd_vtysh);
-  install_element (BGP_NODE, &neighbor_distribute_list_cmd_vtysh);
-  install_element (ENABLE_NODE, &clear_ip_bgp_dampening_cmd_vtysh);
-  install_element (RMAP_NODE, &set_ip_nexthop_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_route_supernets_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_bgp_events_cmd_vtysh);
-  install_element (RMAP_NODE, &set_originator_id_cmd_vtysh);
-  install_element (RMAP_NODE, &set_local_pref_cmd_vtysh);
-  install_element (BGP_NODE, &no_aggregate_address_mask_summary_as_set_cmd_vtysh);
-  install_element (ENABLE_NODE, &debug_rip_packet_direct_cmd_vtysh);
-  install_element (OSPF_NODE, &neighbor_poll_interval_priority_cmd_vtysh);
-  install_element (OSPF_NODE, &no_mpls_te_cmd_vtysh);
-  install_element (BGP_IPV6_NODE, &bgp_redistribute_ipv6_metric_rmap_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_default_ipv4_unicast_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_attr_unchanged_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_ripng_packet_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_prefix_list_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_maximum_prefix_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_flap_prefix_longer_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_always_compare_med_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_filter_list_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_prefix_list_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_maximum_prefix_val2_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_all_summary_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_soft_out_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_community3_exact_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_bgp_multiple_instance_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_neighbor_received_prefix_filter_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_external_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_as_vpnv4_out_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_instance_all_ipv4_soft_out_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_attr_unchanged2_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_attr_unchanged3_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_bgp_community2_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_default_originate_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_linkdetect_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_attr_unchanged3_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_route_server_client_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_group_soft_in_cmd_vtysh);
+  install_element (ENABLE_NODE, &undebug_bgp_events_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_default_information_originate_type_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_access_list_all_cmd_vtysh);
+  install_element (OSPF_NODE, &no_ospf_distance_ospf_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &bgp_network_mask_cmd_vtysh);
+  install_element (RMAP_NODE, &match_community_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_kernel_metric_routemap_cmd_vtysh);
+  install_element (CONFIG_NODE, &bgp_config_type_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_attr_unchanged3_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_all_in_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_attr_unchanged1_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_extcommunity_list_all_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_attr_unchanged10_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_aggregate_address_mask_summary_as_set_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_access_list_remark_cmd_vtysh);
   install_element (VIEW_NODE, &show_ip_bgp_ipv4_cidr_only_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_rd_neighbors_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ip_ospf_database_type_id_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ipv6_route_ospf6_external_cmd_vtysh);
-  install_element (ENABLE_NODE, &show_ip_extcommunity_list_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_confederation_peers_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_distribute_list_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_cidr_only_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_prefix_list_summary_name_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_prefix_list_seq_ge_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_distance_ospf_inter_external_intra_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_community2_exact_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_neighbor_advertised_route_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_bgp_network_mask_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_all_in_prefix_filter_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_in_prefix_filter_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_attr_unchanged_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_route_flapping_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_bestpath_med3_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_ipv6_nexthop_local_val_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_aggregate_address_as_set_summary_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_instance_all_in_prefix_filter_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_default_originate_rmap_cmd_vtysh);
+  install_element (OSPF_NODE, &no_area_range_advertise_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_neighbor_advertised_route_cmd_vtysh);
+  install_element (OSPF_NODE, &area_authentication_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_redistribute_source_type_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_timers_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_address_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_ospf_event_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_external_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_zebra_packet_detail_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_attr_unchanged7_cmd_vtysh);
+  install_element (RMAP_NODE, &match_ip_address_prefix_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_community_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_community2_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_ospf_database_type_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_external_soft_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_access_list_standard_nomask_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_ipv4_soft_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_mbgp_community_list_exact_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_route_map_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_community_val_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_topology_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_area_spf_tree_cmd_vtysh);
+  install_element (OSPF6_NODE, &interface_area_plist_passive_cmd_vtysh);
+  install_element (BGP_NODE, &default_attr_localpref_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_community3_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &aggregate_address_as_set_summary_cmd_vtysh);
+  install_element (OSPF_NODE, &neighbor_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_attr_unchanged4_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_distance_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_dampened_paths_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_route_ifname_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_attr_unchanged5_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_prefix_list_seq_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &bgp_network_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_network_mask_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_bgp_fsm_cmd_vtysh);
+  install_element (OSPF_NODE, &no_passive_interface_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_ospf_lsa_sub_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_irdp_maxadvertinterval_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_rip_receive_version_num_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_community_all_cmd_vtysh);
+  install_element (CONFIG_NODE, &ipv6_route_ifname_cmd_vtysh);
+  install_element (KEYCHAIN_NODE, &no_key_chain_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_bgp_filter_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_ospf_neighbor_detail_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_prefix_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_view_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_community4_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_community_all_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_client_to_client_reflection_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_topology_router_lsid_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_redistribute_source_type_routemap_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_attr_unchanged2_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ipv6_address_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_allowas_in_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_prefix_list_seq_ge_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ipv6_ospf6_retransmitinterval_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_bgp_community_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_extcommunity_list_arg_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_filter_list_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_route_reflector_client_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_cluster_id_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_bgp_normal_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_neighbor_routes_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_prefix_list_name_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_neighbors_peer_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_all_vpnv4_soft_out_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_confederation_peers_cmd_vtysh);
+  install_element (RMAP_NODE, &set_local_pref_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_peer_group_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_ospf_message_digest_key_addr_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_bgp_update_direct_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_ospf_neighbor_detail_cmd_vtysh);
+  install_element (ENABLE_NODE, &undebug_bgp_fsm_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_neighbors_peer_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_attr_unchanged10_cmd_vtysh);
+  install_element (OSPF_NODE, &no_area_import_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_peer_soft_out_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_default_originate_rmap_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_ebgp_multihop_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_interface_ifname_cmd_vtysh);
+  install_element (BGP_NODE, &aggregate_address_mask_cmd_vtysh);
+  install_element (BGP_NODE, &old_no_ipv6_aggregate_address_summary_only_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_forwarding_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_ospf_retransmit_interval_cmd_vtysh);
+  install_element (RMAP_NODE, &no_rmap_onmatch_next_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_local_as_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_prefix_list_detail_name_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_instance_neighbors_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_redistribute_source_metric_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_distance_ospf_inter_intra_cmd_vtysh);
+  install_element (RMAP_NODE, &set_community_none_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_bgp_update_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_network_route_map_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_database_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_external_ipv4_in_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_default_local_preference_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_zebra_packet_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_transparent_nexthop_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_ipv4_soft_out_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_ospf_dead_interval_addr_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_distribute_list_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_ospf_neighbor_detail_all_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_nexthop_self_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_passive_interface_cmd_vtysh);
+  install_element (CONFIG_NODE, &access_list_extended_any_mask_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_database_type_id_adv_router_dump_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_as_soft_in_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_extcommunity_list_name_expanded_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_attr_unchanged4_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_prefix_list_seq_le_ge_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_area_topology_router_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_access_list_all_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_external_out_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_as_in_cmd_vtysh);
+  install_element (KEYCHAIN_KEY_NODE, &accept_lifetime_infinite_day_month_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_aggregate_address_summary_as_set_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_ripng_zebra_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_bgp_events_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_vpnv4_soft_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_ripng_packet_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_network_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_vpnv4_soft_in_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_distribute_list_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_default_originate_rmap_cmd_vtysh);
+  install_element (OSPF_NODE, &no_area_vlink_param4_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_nexthop_self_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_prefix_list_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_neighbor_advertised_route_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_maximum_prefix_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_rip_authentication_string2_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_external_soft_out_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_bgp_keepalive_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_rd_prefix_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_peer_group_soft_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_interface_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_ospf_network_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_attr_unchanged_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_in_prefix_filter_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_damp_set_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_prefix_list_summary_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_attr_unchanged9_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_database_type_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_neighbor_advertised_route_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_as_soft_in_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_prefix_list_prefix_longer_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_bgp_events_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_maximum_prefix_val_cmd_vtysh);
+  install_element (RMAP_NODE, &set_origin_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_debug_ospf6_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_external_out_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_attr_unchanged_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_community2_cmd_vtysh);
+  install_element (CONFIG_NODE, &ipv6_prefix_list_ge_le_cmd_vtysh);
+  install_element (RMAP_NODE, &set_community_delete_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_bgp_prefix_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_as_in_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_capability_dynamic_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_rip_send_version_num_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_rip_zebra_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_fast_external_failover_cmd_vtysh);
+  install_element (KEYCHAIN_KEY_NODE, &no_key_chain_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_default_originate_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_prefix_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_mbgp_filter_list_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_neighbor_received_routes_cmd_vtysh);
+  install_element (BGP_NODE, &aggregate_address_mask_as_set_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_prefix_list_description_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_route_pref_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_attr_unchanged6_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_weight_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_default_information_originate_type_metric_routemap_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_flap_statistics_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_flap_statistics_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_bgp_routemap_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_community2_exact_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_external_soft_out_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_route_ospf6_external_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ospf_authentication_key_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_as_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_ospf_authentication_cmd_vtysh);
+  install_element (ZEBRA_NODE, &no_ripng_redistribute_ripng_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_community_exact_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_unsuppress_map_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_ospf_neighbor_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_bgp_summary_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_neighbors_peer_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_attr_unchanged3_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_group_in_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_rip_packet_direct_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_ospf_priority_addr_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_update_source_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_attr_unchanged9_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_zebra_packet_direct_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_nexthop_self_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_set_peer_group_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_attr_unchanged1_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_debug_ospf6_damp_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_confederation_identifier_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_route_protocol_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_route_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_view_route_cmd_vtysh);
+  install_element (CONFIG_NODE, &access_list_extended_host_any_cmd_vtysh);
+  install_element (RIP_NODE, &rip_default_information_originate_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_distance_source_access_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_community_list_exact_cmd_vtysh);
+  install_element (OSPF6_NODE, &ospf6_redistribute_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_capability_orf_prefix_cmd_vtysh);
+  install_element (RMAP_NODE, &match_ipv6_address_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_mbgp_community_list_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_irdp_holdtime_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_bgp_community3_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_neighbor_routes_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_route_map_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_route_ifname_pref_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_debugging_bgp_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_ipv6_next_hop_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_route_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_all_prefix_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_as_ipv4_soft_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_ospf_nsm_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_prefix_list_prefix_first_match_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_community_list_standard_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_as_soft_out_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_community2_exact_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_ip_next_hop_val_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_attr_unchanged1_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_send_community_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_network_mask_natural_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_as_in_prefix_filter_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_bgp_community_list_exact_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &aggregate_address_mask_as_set_summary_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_ospf_zebra_sub_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &bgp_network_route_map_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_peer_soft_in_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_community_list_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_ip_nexthop_cmd_vtysh);
+  install_element (RIP_NODE, &no_rip_version_val_cmd_vtysh);
+  install_element (OSPF_NODE, &network_area_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_external_in_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_flap_regexp_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_ip_next_hop_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_damp_set2_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_area_spf_node_cmd_vtysh);
+  install_element (VIEW_NODE, &ipv6_bgp_neighbor_received_routes_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_community_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_route_prefix_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_neighbor_received_routes_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_prefix_list_prefix_first_match_cmd_vtysh);
+  install_element (BGP_NODE, &aggregate_address_mask_as_set_summary_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_summary_cmd_vtysh);
+  install_element (CONFIG_NODE, &ipv6_prefix_list_le_cmd_vtysh);
+  install_element (OSPF_NODE, &area_vlink_param3_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_rip_zebra_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_enforce_first_as_cmd_vtysh);
+  install_element (OSPF_NODE, &no_area_export_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_community_list_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_router_id_val_cmd_vtysh);
+  install_element (ENABLE_NODE, &ipv6_mbgp_neighbor_routes_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &aggregate_address_mask_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_bgp_filter_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_database_type_id_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_rd_prefix_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_attr_unchanged2_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_route_prefix_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_attr_unchanged6_cmd_vtysh);
+  install_element (RMAP_NODE, &ospf6_routemap_set_metric_type_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_database_type_id_adv_router_cmd_vtysh);
+  install_element (ENABLE_NODE, &undebug_bgp_update_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &aggregate_address_mask_summary_only_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ripng_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_ip_address_prefix_list_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_capability_route_refresh_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_route_reflector_client_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_route_addr_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_network_import_check_cmd_vtysh);
+  install_element (KEYCHAIN_KEY_NODE, &send_lifetime_infinite_month_day_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_external_soft_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ipv6_prefix_list_name_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_all_in_prefix_filter_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_nexthop_self_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_mbgp_community_all_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_redistribute_source_type_metric_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_ebgp_multihop_ttl_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_redistribute_source_routemap_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_prefix_list_seq_le_cmd_vtysh);
+  install_element (RIP_NODE, &rip_network_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &bgp_redistribute_ipv6_metric_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_attr_unchanged2_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_community2_exact_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_attr_unchanged3_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_bgp_metric_cmd_vtysh);
+  install_element (OSPF_NODE, &no_ospf_router_id_cmd_vtysh);
+  install_element (RIP_NODE, &no_rip_default_metric_val_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_route_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &bgp_network_mask_route_map_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_topology_router_cmd_vtysh);
+  install_element (RIP_NODE, &no_rip_distance_source_access_list_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_redistribute_source_metric_type_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_ipv4_in_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_mbgp_community2_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &aggregate_address_as_set_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_attr_unchanged_cmd_vtysh);
+  install_element (OSPF6_NODE, &interface_area_plist_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_neighbor_received_routes_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_neighbor_damp_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_route_prefix_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_community_list_arg_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_neighbor_routes_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ipv6_prefix_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_as_out_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_filter_list_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ospf_hello_interval_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_as_ipv4_in_cmd_vtysh);
+  install_element (CONFIG_NODE, &ipv6_route_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_dampening_prefix_cmd_vtysh);
+  install_element (RIP_NODE, &rip_timers_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_dump_bgp_routes_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_distance_ospf_intra_external_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_bgp_update_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_all_ipv4_out_cmd_vtysh);
+  install_element (OSPF6_NODE, &no_ospf6_redistribute_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_extcommunity_list_name_expanded_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_ospf_database_type_adv_router_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_community3_exact_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_prefix_list_name_seq_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_attr_unchanged7_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_activate_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_access_list_standard_host_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_attr_unchanged5_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_neighbor_flap_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ipv6_ospf6_advertise_force_prefix_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_ospf_cost_addr_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_bgp_community3_exact_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_attr_unchanged4_cmd_vtysh);
+  install_element (INTERFACE_NODE, &multicast_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_prefix_longer_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_deterministic_med_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_ospf_neighbor_all_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_bgp_redistribute_ipv6_metric_rmap_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ospf_message_digest_key_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_redistribute_source_type_metric_routemap_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_aggregate_address_cmd_vtysh);
+  install_element (RMAP_NODE, &set_community_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_interface_ifname_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_attr_unchanged5_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_ospf_nsm_sub_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_ospf_interface_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_community4_exact_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_default_local_preference_val_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &bgp_network_mask_natural_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_neighbors_peer_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_activate_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ospf_priority_cmd_vtysh);
+  install_element (CONFIG_NODE, &dump_bgp_routes_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_community3_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_metric_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_distribute_list_out_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_camp_config_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_cluster_id_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_ospf_packet_all_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_summary_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_ospf_ism_sub_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_redistribute_bgp_metric_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_rip_packet_direct_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_attr_unchanged4_cmd_vtysh);
+  install_element (OSPF_NODE, &no_auto_cost_reference_bandwidth_cmd_vtysh);
+  install_element (RIP_NODE, &no_rip_timers_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_all_soft_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_neighbors_peer_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_ospf_neighbor_int_detail_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_bgp_keepalive_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_community4_cmd_vtysh);
+  install_element (RIP_NODE, &rip_offset_list_ifname_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_redistribute_bgp_metric_routemap_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_attr_unchanged10_cmd_vtysh);
+  install_element (RMAP_NODE, &rmap_onmatch_next_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_instance_all_ipv4_in_prefix_filter_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_default_originate_rmap_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_ospf6_metric_routemap_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_attr_unchanged7_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_attr_unchanged3_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_neighbors_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_all_neighbors_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_route_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_in_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_access_list_name_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_capability_orf_prefix_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_filter_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_as_ipv4_soft_in_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_attr_unchanged10_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_route_addr_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_attr_unchanged8_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_distance_source_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &bgp_redistribute_ipv6_rmap_metric_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_access_list_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_access_list_any_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_default_originate_rmap_cmd_vtysh);
+  install_element (BGP_NODE, &no_aggregate_address_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_zebra_kernel_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_rd_route_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_neighbor_received_routes_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_extcommunity_list_standard_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_bgp_community_exact_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_allowas_in_arg_cmd_vtysh);
+  install_element (BGP_NODE, &no_aggregate_address_as_set_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_regexp_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_zebra_interface_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &aggregate_address_mask_summary_as_set_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_ospf_database_type_self_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_external_in_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_send_community_type_cmd_vtysh);
+  install_element (VIEW_NODE, &ipv6_mbgp_neighbor_routes_cmd_vtysh);
+  install_element (OSPF_NODE, &no_area_vlink_authtype_md5_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_filter_list_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_route_protocol_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_origin_val_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_ospf_database_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_ipv6_nexthop_local_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_unsuppress_map_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_ospf_event_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_ipv4_out_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_bgp_community2_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_peer_group_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_static_metric_routemap_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_neighbor_routes_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_all_soft_out_cmd_vtysh);
+  install_element (INTERFACE_NODE, &bandwidth_if_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_distance_ospf_intra_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_as_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_community2_exact_cmd_vtysh);
+  install_element (OSPF_NODE, &area_vlink_authtype_authkey_cmd_vtysh);
+  install_element (OSPF_NODE, &area_range_advertise_cost_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_capability_orf_prefix_cmd_vtysh);
+  install_element (OSPF_NODE, &no_neighbor_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_rip_packet_detail_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_aspath_prepend_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_all_neighbor_routes_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_prefix_list_seq_ge_le_cmd_vtysh);
+  install_element (BGP_NODE, &no_aggregate_address_summary_only_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_rd_neighbors_peer_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_allowas_in_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_prefix_list_summary_name_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_prefix_longer_cmd_vtysh);
+  install_element (OSPF_NODE, &area_stub_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_maximum_prefix_cmd_vtysh);
+  install_element (OSPF_NODE, &area_authentication_message_digest_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_prefix_list_detail_name_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ipv6_ospf6_cost_cmd_vtysh);
+  install_element (ENABLE_NODE, &undebug_bgp_filter_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_bgp_network_mask_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_ospf_ism_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_passive_interface_cmd_vtysh);
   install_element (ENABLE_NODE, &show_ipv6_mbgp_prefix_cmd_vtysh);
-  install_element (RMAP_NODE, &set_aspath_prepend_cmd_vtysh);
-  install_element (VIEW_NODE, &show_ipv6_route_prefix_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_set_peer_group_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &bgp_network_mask_route_map_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_group_in_prefix_filter_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_remove_private_as_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ospf_cost_cmd_vtysh);
+  install_element (KEYCHAIN_KEY_NODE, &send_lifetime_day_month_month_day_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_maximum_prefix_val_cmd_vtysh);
+  install_element (RMAP_NODE, &set_ip_nexthop_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_ospf_event_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_community_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_activate_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_redistribute_ipv4_rmap_metric_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_rd_neighbor_advertised_routes_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_bgp_fsm_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_override_capability_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_default_information_originate_always_metric_routemap_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_set_peer_group_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_ospf_cost_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_all_soft_out_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &bgp_damp_set_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_kernel_metric_val_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_community2_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_mbgp_community3_exact_cmd_vtysh);
+  install_element (CONFIG_NODE, &dump_bgp_all_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_ripng_packet_detail_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_ospf_database_type_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ospf_transmit_delay_cmd_vtysh);
+  install_element (BGP_NODE, &aggregate_address_as_set_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_distance2_cmd_vtysh);
+  install_element (OSPF_NODE, &no_area_vlink_param2_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_filter_list_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_attr_unchanged8_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_community_exact_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_all_vpnv4_soft_in_cmd_vtysh);
+  install_element (OSPF_NODE, &auto_cost_reference_bandwidth_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_ospf6_damp_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ipv6_ospf6_priority_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_prefix_list_description_arg_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_flap_address_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_neighbor_routes_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_bgp_filter_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_prefix_list_le_ge_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_route_map_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_debugging_ripng_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &aggregate_address_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_bgp_community4_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_community_list_exact_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_filter_list_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_ospf_message_digest_key_cmd_vtysh);
+  install_element (CONFIG_NODE, &ipv6_prefix_list_sequence_number_cmd_vtysh);
+  install_element (VIEW_NODE, &ipv6_mbgp_neighbor_received_routes_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_prefix_list_prefix_first_match_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_prefix_list_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_scan_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_ospf_packet_send_recv_cmd_vtysh);
+  install_element (OSPF_NODE, &no_refresh_timer_val_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_ospf_transmit_delay_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ipv6_ospf6_instance_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_local_pref_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_ip_address_prefix_list_val_cmd_vtysh);
+  install_element (RIP_NODE, &no_rip_distance_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_access_list_extended_any_host_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_prefix_list_prefix_cmd_vtysh);
+  install_element (KEYCHAIN_KEY_NODE, &accept_lifetime_month_day_month_day_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_weight_val_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_ospf_dead_interval_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_default_information_originate_always_metric_type_routemap_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_maximum_prefix_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_debugging_zebra_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_network_backdoor_cmd_vtysh);
+  install_element (KEYCHAIN_KEY_NODE, &send_lifetime_month_day_day_month_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_distribute_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_instance_all_soft_out_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_redistribute_source_cmd_vtysh);
+  install_element (OSPF_NODE, &area_range_cost_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_neighbor_routerid_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_mbgp_community4_exact_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_remove_private_as_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_ospf_zebra_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_ospf_authentication_key_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_ospf6_damp_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_mbgp_prefix_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_flap_prefix_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_ospf_ism_cmd_vtysh);
+  install_element (RMAP_NODE, &ospf6_routemap_no_set_metric_type_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_route_flapping_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_maximum_prefix_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_maximum_prefix_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_redistribute_bgp_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_route_server_client_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ospf_priority_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_ospf_lsa_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_rip_packet_direct_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_access_list_extended_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_rip_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_flap_regexp_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_remove_private_as_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_remove_private_as_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_access_list_standard_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_redistribute_static_metric_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_community_list_exact_cmd_vtysh);
+  install_element (ZEBRA_NODE, &rip_redistribute_rip_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_rip_authentication_key_chain_cmd_vtysh);
   install_element (BGP_IPV4_NODE, &neighbor_send_community_cmd_vtysh);
+  install_element (OSPF_NODE, &area_vlink_authkey_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_aggregate_address_mask_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_access_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_soft_cmd_vtysh);
+  install_element (CONFIG_NODE, &access_list_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_router_bgp_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_timers_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_as_in_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ospf_dead_interval_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_ospf_database_type_id_self_cmd_vtysh);
+  install_element (OSPF_NODE, &area_shortcut_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_rip_authentication_key_chain_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_prefix_list_sequence_number_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_attr_unchanged6_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_bgp_config_type_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_network_mask_route_map_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_neighborlist_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_bgp_network_mask_natural_route_map_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_external_ipv4_soft_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_summary_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_instance_summary_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_peer_out_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_regexp_cmd_vtysh);
+  install_element (RMAP_NODE, &match_origin_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_flap_filter_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_cidr_only_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_as_out_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_attr_unchanged6_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_nexthop_self_cmd_vtysh);
+  install_element (RIP_NODE, &rip_default_metric_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_attr_unchanged5_cmd_vtysh);
+  install_element (OSPF_NODE, &no_area_vlink_param3_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_mbgp_regexp_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_mbgp_regexp_cmd_vtysh);
+  install_element (OSPF_NODE, &area_vlink_md5_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_ospf_priority_addr_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_regexp_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_default_originate_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_set_peer_group_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_community_list_exact_cmd_vtysh);
+  install_element (BGP_NODE, &old_ipv6_bgp_network_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_community_list_cmd_vtysh);
+  install_element (CONFIG_NODE, &ipv6_prefix_list_seq_ge_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_aggregate_address_mask_as_set_summary_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_community_list_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_local_pref_val_cmd_vtysh);
+  install_element (OSPF_NODE, &no_neighbor_poll_interval_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_soft_reconfiguration_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_area_route_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_attr_unchanged3_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_filter_list_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_bgp_keepalive_cmd_vtysh);
+  install_element (RIP_NODE, &rip_distance_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_weight_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_rip_events_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_rd_neighbor_routes_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_ospf_lsa_cmd_vtysh);
+  install_element (BGP_NODE, &old_no_ipv6_aggregate_address_cmd_vtysh);
+  install_element (CONFIG_NODE, &ipv6_access_list_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_connected_metric_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &aggregate_address_mask_as_set_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_community2_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_bestpath_aspath_ignore_cmd_vtysh);
+  install_element (OSPF_NODE, &no_area_vlink_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_as_in_prefix_filter_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_ospf_authentication_key_addr_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_network_cmd_vtysh);
+  install_element (OSPF_NODE, &no_router_id_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_local_as_no_prepend_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_neighbor_advertised_route_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_attr_unchanged10_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_attr_unchanged3_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_set_peer_group_cmd_vtysh);
+  install_element (BGP_NODE, &no_synchronization_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_update_source_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ipv6_address_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_prefix_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_community_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_extcommunity_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_community_all_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_bgp_network_route_map_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_prefix_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_rip_cmd_vtysh);
+  install_element (CONFIG_NODE, &access_list_standard_host_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_prefix_list_sequence_number_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_prefix_longer_cmd_vtysh);
+  install_element (BGP_NODE, &no_aggregate_address_as_set_summary_cmd_vtysh);
+  install_element (RMAP_NODE, &ospf6_routemap_set_forwarding_cmd_vtysh);
+  install_element (OSPF_NODE, &no_area_range_advertise_cost_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_community_exact_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_prefix_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_prefix_list_le_ge_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &bgp_redistribute_ipv6_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_database_type_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_ospf_dead_interval_addr_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_mbgp_community_exact_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_access_list_remark_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ospf_dead_interval_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_irdp_preference_cmd_vtysh);
+  install_element (BGP_NODE, &aggregate_address_as_set_summary_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_regexp_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_nexthop_self_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_route_prefix_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_redistribute_ospf6_metric_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_ospf_packet_send_recv_detail_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_passive_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_community4_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_attr_unchanged5_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_area_route_prefix_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_bgp_redistribute_ipv6_metric_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_originator_id_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_static_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_capability_route_refresh_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_redistribute_ospf6_metric_routemap_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_send_community_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_forwarding_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_prefix_longer_cmd_vtysh);
+  install_element (RMAP_NODE, &no_rmap_onmatch_goto_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_kernel_routemap_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_connected_metric_val_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_rip_receive_version_1_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_scan_time_val_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_ripng_packet_direct_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_ospf6_metric_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_attr_unchanged7_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_distance_ospf_external_inter_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_rip_authentication_mode_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_prefix_list_le_ge_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_bgp_community_exact_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &vpnv4_network_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_rfc1583_flag_cmd_vtysh);
   install_element (OSPF_NODE, &area_vlink_param2_cmd_vtysh);
+  install_element (ENABLE_NODE, &ipv6_mbgp_neighbor_received_routes_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_extcommunity_list_standard2_cmd_vtysh);
+  install_element (BGP_NODE, &aggregate_address_summary_only_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_prefix_list_summary_name_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_attr_info_cmd_vtysh);
+  install_element (RMAP_NODE, &set_originator_id_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_ripng_packet_direct_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_prefix_list_name_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_ipv4_out_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_cluster_id32_cmd_vtysh);
+  install_element (RIP_NODE, &no_rip_redistribute_type_routemap_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_client_to_client_reflection_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_ip_address_val_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ipv6_ospf6_advertise_prefix_list_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_maximum_prefix_val2_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_distance_ospf_inter_intra_external_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_filter_list_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &ipv6_bgp_network_route_map_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &bgp_network_mask_natural_route_map_cmd_vtysh);
+  install_element (CONFIG_NODE, &ipv6_access_list_any_cmd_vtysh);
+  install_element (OSPF_NODE, &no_area_range_cost_cmd_vtysh);
+  install_element (OSPF_NODE, &area_vlink_param4_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_attr_unchanged10_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_maximum_prefix_val2_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_forwarding_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_community_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_send_community_type_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_community_cmd_vtysh);
+  install_element (RMAP_NODE, &set_ecommunity_rt_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_flap_cidr_only_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_all_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_rip_authentication_string_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_instance_all_soft_cmd_vtysh);
+  install_element (OSPF_NODE, &timers_spf_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_prefix_list_seq_le_ge_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_port_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_community_val_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_vpnv4_soft_out_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_zebra_events_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_instance_all_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_as_soft_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_ospf6_all_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_maximum_prefix_val_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_attr_unchanged7_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_bgp_network_mask_route_map_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_external_soft_in_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_prefix_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_rd_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_zebra_kernel_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_ospf_neighbor_all_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_irdp_multicast_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_metric_cmd_vtysh);
+  install_element (CONFIG_NODE, &dump_bgp_updates_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_redistribute_ospf6_routemap_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_always_compare_med_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_address_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_redistribute_kernel_cmd_vtysh);
+  install_element (VIEW_NODE, &show_debug_ospf6_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_ripng_events_cmd_vtysh);
+  install_element (OSPF_NODE, &no_area_vlink_authtype_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_route_reflector_client_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_remote_as_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_community_exact_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_set_peer_group_cmd_vtysh);
+  install_element (ENABLE_NODE, &reload_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_all_route_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_access_list_extended_host_host_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_dampening_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_rd_summary_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_dont_capability_negotiate_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_rip_receive_version_2_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_area_topology_router_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_prefix_list_seq_ge_cmd_vtysh);
+  install_element (RMAP_NODE, &set_metric_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_default_information_originate_always_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_bestpath_compare_router_id_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_neighbor_received_prefix_filter_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_route_map_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_ripng_packet_direct_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_prefix_list_seq_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_ospf_authentication_key_addr_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_rd_neighbors_peer_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_route_reflector_client_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_distance_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &aggregate_address_summary_as_set_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_prefix_longer_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_filter_list_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_irdp_minadvertinterval_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_community_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_attr_unchanged8_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_ospf_transmit_delay_addr_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_neighbor_routerid_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_community2_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_route_reflector_client_cmd_vtysh);
+  install_element (RIP_NODE, &no_rip_distance_source_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_all_ipv4_in_prefix_filter_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_filter_list_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_route_map_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_extcommunity_list_name_standard2_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_prefix_list_ge_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_in_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_redistribute_kernel_routemap_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_attr_unchanged8_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_rd_route_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ipv6_prefix_list_name_prefix_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_network_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_ipv4_soft_out_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_ip_next_hop_val_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_protocols_rip_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_neighbor_received_prefix_filter_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_as_ipv4_out_cmd_vtysh);
+  install_element (CONFIG_NODE, &ipv6_prefix_list_description_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_access_list_standard_any_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_instance_ipv6_summary_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_ospf_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_ospf_cost_addr_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_bgp_fsm_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_all_soft_out_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_mbgp_community4_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_prefix_list_detail_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_attr_unchanged9_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_rip_zebra_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_mbgp_prefix_longer_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_ecommunity_soo_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_default_information_originate_always_type_metric_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_attr_unchanged6_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_prefix_list_seq_cmd_vtysh);
+  install_element (BGP_NODE, &old_ipv6_aggregate_address_cmd_vtysh);
+  install_element (CONFIG_NODE, &ipv6_route_pref_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_prefix_list_sequence_number_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_prefix_longer_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_advertise_interval_val_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_access_list_extended_any_mask_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_bgp_community_all_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_ospf_neighbor_id_cmd_vtysh);
+  install_element (KEYCHAIN_KEY_NODE, &accept_lifetime_day_month_day_month_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_all_ipv4_soft_in_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_rip_authentication_mode_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_prefix_list_seq_le_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_zebra_packet_detail_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_as_path_all_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_bgp_community2_exact_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_default_information_originate_always_metric_type_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_interface_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_out_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_regexp_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_redistribute_source_metric_routemap_cmd_vtysh);
+  install_element (OSPF_NODE, &neighbor_poll_interval_priority_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_mbgp_prefix_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_all_in_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_access_list_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_route_server_client_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_filter_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_soft_in_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_scan_time_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_bgp_community_all_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_route_reflector_client_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_send_community_type_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_community3_exact_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_route_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_prefix_list_seq_ge_le_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_ospf_priority_cmd_vtysh);
+  install_element (OSPF_NODE, &no_area_vlink_authkey_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_bgp_community_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_distance_source_access_list_cmd_vtysh);
+  install_element (OSPF_NODE, &area_vlink_param1_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_debugging_rip_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_route_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_area_spf_tree_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_static_routemap_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_access_list_extended_mask_host_cmd_vtysh);
+  install_element (RIP_NODE, &no_rip_default_metric_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_bandwidth_if_cmd_vtysh);
+  install_element (VIEW_NODE, &ipv6_bgp_neighbor_advertised_route_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_bgp_fsm_cmd_vtysh);
+  install_element (CONFIG_NODE, &ipv6_prefix_list_seq_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_interface_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_attr_unchanged_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_default_metric_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_default_metric_val_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_default_originate_rmap_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_ospf_lsa_sub_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_bgp_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_all_in_prefix_filter_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_redistribute_ipv4_metric_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_community2_exact_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_flap_prefix_list_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_remove_private_as_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_all_vpnv4_in_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_network_mask_natural_backdoor_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_rip_authentication_key_chain2_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_timers_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_group_out_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_ospf_database_type_id_adv_router_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_access_list_extended_host_any_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_distance_ospf_inter_external_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_community_list_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_ip_next_hop_prefix_list_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_connected_metric_routemap_cmd_vtysh);
+  install_element (RMAP_NODE, &ospf6_routemap_no_set_forwarding_cmd_vtysh);
+  install_element (RMAP_NODE, &set_ipv6_nexthop_global_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_prefix_list_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_bestpath_compare_router_id_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_attr_unchanged6_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_aggregate_address_as_set_cmd_vtysh);
+  install_element (INTERFACE_NODE, &shutdown_if_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_redistribute_connected_metric_routemap_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_attr_unchanged9_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_neighbors_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_ospf_zebra_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_mbgp_community3_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_out_cmd_vtysh);
+  install_element (RIP_NODE, &rip_distance_source_cmd_vtysh);
+  install_element (OSPF_NODE, &router_id_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_bgp_all_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_community_delete_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_ipv4_in_prefix_filter_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_route_map_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_bgp_prefix_list_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_route_reflector_client_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_capability_orf_prefix_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_ospf_authentication_addr_cmd_vtysh);
+  install_element (BGP_NODE, &no_aggregate_address_mask_as_set_summary_cmd_vtysh);
+  install_element (RMAP_NODE, &match_ip_address_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_aggregate_address_summary_as_set_cmd_vtysh);
+  install_element (CONFIG_NODE, &access_list_standard_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_ospf_database_type_adv_router_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_set_peer_group_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_community_list_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_rip_send_version_1_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_neighbors_peer_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_all_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_distance_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_instance_all_soft_out_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_ospf_transmit_delay_addr_cmd_vtysh);
+  install_element (KEYCHAIN_KEY_NODE, &no_key_cmd_vtysh);
+  install_element (CONFIG_NODE, &ipv6_access_list_remark_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_topology_router_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_prefix_list_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_ospf_nsm_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_neighbor_damp_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_community_list_name_expanded_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_view_prefix_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_community3_exact_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_route_map_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ipv6_ospf6_advertise_prefix_list_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &aggregate_address_summary_as_set_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_allowas_in_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_redistribute_ipv4_rmap_metric_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_key_chain_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_mbgp_community4_cmd_vtysh);
+  install_element (ENABLE_NODE, &undebug_bgp_all_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_community_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_aggregator_as_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_maximum_prefix_val_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_aggregate_address_mask_as_set_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_soft_in_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_maximum_prefix_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_as_soft_in_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_aggregate_address_mask_summary_only_cmd_vtysh);
+  install_element (OSPF_NODE, &no_refresh_timer_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_prefix_list_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_network_mask_natural_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_neighbor_received_prefix_filter_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_route_ospf6_external_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_unsuppress_map_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_remove_private_as_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_ipv4_soft_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_send_community_cmd_vtysh);
+  install_element (RIP_NODE, &no_rip_route_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_forwarding_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_rip_packet_cmd_vtysh);
+  install_element (RIP_NODE, &rip_route_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_attr_unchanged1_cmd_vtysh);
+  install_element (OSPF_NODE, &neighbor_priority_poll_interval_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_bgp_redistribute_ipv6_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_port_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_attr_unchanged5_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_prefix_list_detail_name_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_redistribute_static_routemap_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_paths_cmd_vtysh);
+  install_element (BGP_NODE, &no_aggregate_address_mask_summary_only_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_default_originate_rmap_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_attr_unchanged1_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_ripng_zebra_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_route_map_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_community4_exact_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_damp_unset_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_route_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_route_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_external_soft_out_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_static_metric_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_bgp_network_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_bgp_prefix_cmd_vtysh);
+  install_element (OSPF6_NODE, &flap_damping_route_cmd_vtysh);
+  install_element (BGP_NODE, &no_auto_summary_cmd_vtysh);
+  install_element (ENABLE_NODE, &ipv6_bgp_neighbor_routes_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_route_mask_cmd_vtysh);
+  install_element (RMAP_NODE, &match_ipv6_address_prefix_list_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_send_community_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_send_community_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_filter_list_cmd_vtysh);
+  install_element (OSPF_NODE, &area_range_advertise_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_default_information_originate_always_metric_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_community2_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_all_soft_in_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_ospf_hello_interval_addr_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_ospf_transmit_delay_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_as_ipv4_soft_out_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_mbgp_community2_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_external_ipv4_soft_out_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_community_list_expanded_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_all_neighbors_peer_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_prefix_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_rip_events_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_prefix_list_summary_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_ospf_authentication_args_addr_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_ospf_packet_send_recv_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_default_metric_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_prefix_list_summary_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_prefix_list_prefix_longer_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_rip_send_version_2_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_mbgp_community2_exact_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_community_info_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_default_information_originate_always_type_metric_routemap_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_bgp_regexp_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_extcommunity_list_name_standard_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_ospf_nsm_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_confederation_identifier_arg_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_mbgp_community2_exact_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_version_ospf6_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_attr_unchanged10_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_ipv6_bgp_network_route_map_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_all_in_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_bgp_community_list_exact_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_all_ipv4_soft_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_rip_packet_direct_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_prefix_list_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_default_information_originate_metric_routemap_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_route_map_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_bgp_prefix_longer_cmd_vtysh);
+  install_element (RIP_NODE, &no_rip_passive_interface_cmd_vtysh);
+  install_element (CONFIG_NODE, &access_list_extended_mask_any_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_all_tags_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_all_neighbor_routes_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_attr_unchanged5_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_neighbor_received_routes_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_as_in_prefix_filter_cmd_vtysh);
+  install_element (OSPF_NODE, &no_ospf_distribute_list_out_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_interface_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_attr_unchanged8_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_extcommunity_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &ipv6_bgp_neighbor_advertised_route_cmd_vtysh);
+  install_element (OSPF_NODE, &area_vlink_authtype_args_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_instance_ipv4_summary_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_instance_summary_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_prefix_list_prefix_cmd_vtysh);
+  install_element (OSPF_NODE, &area_vlink_authtype_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_attr_unchanged2_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_community2_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_instance_all_ipv4_soft_in_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_as_vpnv4_in_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_community_list_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_community4_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_ospf_retransmit_interval_addr_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_prefix_list_description_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_rip_receive_version_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_ebgp_multihop_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_attr_unchanged2_cmd_vtysh);
+  install_element (OSPF_NODE, &area_filter_list_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_timers_connect_val_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_unsuppress_map_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_community_list_exact_cmd_vtysh);
+  install_element (VIEW_NODE, &show_interface_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_distance_ospf_external_intra_inter_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_description_cmd_vtysh);
+  install_element (CONFIG_NODE, &access_list_remark_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ipv6_ospf6_hellointerval_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_soft_reconfiguration_cmd_vtysh);
+  install_element (CONFIG_NODE, &dump_bgp_all_interval_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_flap_route_map_cmd_vtysh);
+  install_element (OSPF_NODE, &no_area_range_substitute_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_attr_unchanged10_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_ospf_network_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_all_neighbors_peer_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_zebra_events_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_origin_val_cmd_vtysh);
+  install_element (OSPF_NODE, &area_default_cost_cmd_vtysh);
+  install_element (KEYCHAIN_KEY_NODE, &key_string_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_mbgp_community4_exact_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_capability_orf_prefix_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_route_server_client_cmd_vtysh);
+  install_element (BGP_NODE, &old_ipv6_aggregate_address_summary_only_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_area_spf_node_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_enforce_multihop_cmd_vtysh);
+  install_element (RMAP_NODE, &set_weight_cmd_vtysh);
+  install_element (VIEW_NODE, &show_debugging_ripng_cmd_vtysh);
+  install_element (OSPF_NODE, &area_import_list_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_zebra_packet_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_default_information_originate_cmd_vtysh);
+  install_element (OSPF_NODE, &no_area_stub_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_extcommunity_list_expanded_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_send_community_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_cmd_vtysh);
+  install_element (RMAP_NODE, &match_ecommunity_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_redistribute_bgp_routemap_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_nexthop_self_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_network_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_ripng_events_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_network_mask_natural_route_map_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_prefix_list_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_instance_neighbors_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_default_local_preference_cmd_vtysh);
+  install_element (RMAP_NODE, &match_ip_next_hop_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_aggregate_address_mask_as_set_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_peer_soft_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_community_list_cmd_vtysh);
+  install_element (VIEW_NODE, &show_debugging_zebra_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_community4_exact_cmd_vtysh);
+  install_element (BGP_NODE, &aggregate_address_mask_summary_only_cmd_vtysh);
+  install_element (OSPF_NODE, &area_vlink_authtype_args_md5_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_attr_unchanged4_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_bgp_community3_exact_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_neighbor_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_cidr_only_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_access_list_name_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_route_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_attr_unchanged8_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_ripng_packet_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_default_information_originate_routemap_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_attr_unchanged4_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_area_topology_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_mbgp_prefix_longer_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_community3_exact_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_default_ipv4_unicast_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_prefix_list_prefix_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_all_summary_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_aggregate_address_mask_as_set_summary_cmd_vtysh);
+  install_element (CONFIG_NODE, &bgp_multiple_instance_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_network_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_bgp_summary_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_route_map_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_prefix_list_detail_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_router_rip_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_metric_val_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_originator_id_val_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_bestpath_med_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_distance_ospf_intra_external_inter_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_neighbor_received_routes_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &aggregate_address_summary_only_cmd_vtysh);
+  install_element (CONFIG_NODE, &ipv6_prefix_list_seq_le_ge_cmd_vtysh);
+  install_element (OSPF_NODE, &no_area_vlink_md5_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_allowas_in_arg_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_prefix_list_le_cmd_vtysh);
+  install_element (CONFIG_NODE, &dump_bgp_updates_interval_cmd_vtysh);
+  install_element (OSPF_NODE, &passive_interface_addr_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_bgp_network_mask_natural_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &aggregate_address_mask_as_set_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &aggregate_address_mask_summary_as_set_cmd_vtysh);
+  install_element (OSPF_NODE, &no_ospf_default_metric_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_external_in_prefix_filter_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &bgp_network_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_community_list_arg_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_as_path_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_rd_summary_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_ospf_database_type_id_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_prefix_list_detail_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_prefix_list_ge_le_cmd_vtysh);
+  install_element (CONFIG_NODE, &ipv6_prefix_list_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_ospf6_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_bestpath_med_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_view_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_community_all_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_allowas_in_arg_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_allowas_in_arg_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_neighbor_received_prefix_filter_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_community_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_instance_ipv4_summary_cmd_vtysh);
+  install_element (RIP_NODE, &no_rip_offset_list_ifname_cmd_vtysh);
+  install_element (BGP_NODE, &aggregate_address_mask_summary_as_set_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_ospf_nsm_sub_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_community3_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_access_list_extended_host_mask_cmd_vtysh);
+  install_element (OSPF_NODE, &no_area_vlink_authtype_authkey_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_route_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_allowas_in_cmd_vtysh);
+  install_element (ENABLE_NODE, &undebug_bgp_normal_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_scan_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_abr_type_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_mbgp_filter_list_cmd_vtysh);
+  install_element (RIP_NODE, &rip_redistribute_type_metric_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ospf_network_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_prefix_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_ospf_ism_sub_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_all_neighbor_advertised_routes_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_route_map_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_transparent_as_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_network_route_map_cmd_vtysh);
+  install_element (CONFIG_NODE, &access_list_any_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_bgp_update_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_rip_send_version_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_attr_unchanged_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_dont_capability_negotiate_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_mbgp_community_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_route_map_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_unsuppress_map_cmd_vtysh);
+  install_element (ENABLE_NODE, &ipv6_mbgp_neighbor_advertised_route_cmd_vtysh);
+  install_element (KEYCHAIN_KEY_NODE, &no_key_string_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_ip_address_val_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_metric_val_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_attr_unchanged9_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_community2_exact_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ospf_authentication_key_cmd_vtysh);
+  install_element (RMAP_NODE, &set_aggregator_as_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_remove_private_as_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_as_vpnv4_soft_out_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_prefix_list_le_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_ospf_priority_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_all_vpnv4_out_cmd_vtysh);
+  install_element (KEYCHAIN_KEY_NODE, &send_lifetime_infinite_day_month_cmd_vtysh);
+  install_element (RIP_NODE, &rip_version_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_remote_as_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_route_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_debugging_ospf_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_attr_unchanged6_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_mbgp_community3_exact_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_attr_unchanged9_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_unsuppress_map_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_route_addr_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_capability_orf_prefix_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_nexthop_self_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_peer_group_soft_in_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_prefix_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_prefix_list_name_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_route_distance_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_route_map_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_prefix_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_distribute_list_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_all_prefix_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_access_list_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_community_list_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_strict_capability_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ripng_cmd_vtysh);
+  install_element (KEYCHAIN_KEY_NODE, &send_lifetime_duration_month_day_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_neighbors_peer_cmd_vtysh);
+  install_element (VIEW_NODE, &ipv6_bgp_neighbor_routes_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_default_metric_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_ospf_packet_send_recv_detail_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_protocols_rip_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_community3_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_peer_group_cmd_vtysh);
+  install_element (KEYCHAIN_KEY_NODE, &accept_lifetime_infinite_month_day_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_as_soft_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_rip_split_horizon_cmd_vtysh);
+  install_element (OSPF_NODE, &area_vlink_authtype_md5_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_all_soft_in_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_filter_list_cmd_vtysh);
+  install_element (OSPF_NODE, &passive_interface_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_route_reflector_client_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_topology_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_aggregate_address_as_set_summary_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_rd_neighbor_routes_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_flap_prefix_longer_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_advertise_interval_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_dump_bgp_all_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_prefix_list_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_default_originate_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_as_vpnv4_soft_in_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_prefix_list_prefix_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_community_list_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_prefix_list_summary_name_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_mbgp_community_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_attr_unchanged6_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &aggregate_address_mask_summary_only_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_ospf_cost_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_route_protocol_cmd_vtysh);
+  install_element (OSPF_NODE, &area_export_list_cmd_vtysh);
+  install_element (OSPF6_NODE, &router_id_cmd_vtysh);
+  install_element (CONFIG_NODE, &ipv6_access_list_exact_cmd_vtysh);
+  install_element (OSPF_NODE, &no_ospf_abr_type_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_aspath_val_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_group_ipv4_in_prefix_filter_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &bgp_network_mask_natural_route_map_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_dampened_paths_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_prefix_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_peer_group_remote_as_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_maximum_prefix_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &bgp_redistribute_ipv6_metric_rmap_cmd_vtysh);
+  install_element (OSPF_NODE, &no_area_shortcut_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_bgp_network_mask_natural_route_map_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_ospf_hello_interval_addr_cmd_vtysh);
+  install_element (RIP_NODE, &no_rip_redistribute_type_metric_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_route_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_all_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_database_type_id_adv_router_dump_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_zebra_kernel_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_ospf_nsm_sub_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_distance_source_cmd_vtysh);
+  install_element (CONFIG_NODE, &access_list_extended_host_host_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_ospf6_all_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_neighbors_peer_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_ospf_authentication_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_as_vpnv4_soft_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_paths_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_summary_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_ripng_packet_detail_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_ospf_database_type_self_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_summary_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_ospf_ism_sub_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_all_ipv4_in_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_all_ipv4_soft_out_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_community_list_name_standard2_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_route_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_bestpath_med2_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_mbgp_summary_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_prefix_list_name_cmd_vtysh);
+  install_element (ZEBRA_NODE, &redistribute_ospf6_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_ospf_neighbor_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_forwarding_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_deterministic_med_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_neighbor_routes_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_prefix_list_summary_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_prefix_list_ge_le_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_zebra_packet_direct_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_network_mask_route_map_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_rip_packet_detail_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_cluster_id_arg_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_description_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_ospf_zebra_cmd_vtysh);
+  install_element (RMAP_NODE, &match_community_exact_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_neighbor_received_prefix_filter_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_fast_external_failover_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_group_soft_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_prefix_list_description_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_bgp_network_mask_natural_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_network_mask_natural_route_map_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ospf_retransmit_interval_cmd_vtysh);
+  install_element (BGP_NODE, &no_aggregate_address_mask_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_community_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_community4_exact_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_bgp_prefix_longer_cmd_vtysh);
+  install_element (OSPF_NODE, &no_ospf_distance_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_attr_unchanged5_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_default_originate_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_database_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_soft_out_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_bgp_community2_exact_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_route_supernets_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &bgp_redistribute_ipv6_rmap_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_route_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_router_id_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_community_delete_val_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_redistribute_ipv4_metric_rmap_cmd_vtysh);
+  install_element (OSPF_NODE, &no_area_vlink_param1_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_attr_unchanged7_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_mbgp_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_maximum_prefix_warning_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_redistribute_connected_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_summary_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_route_distance_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_send_community_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_rd_neighbors_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_maximum_prefix_warning_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_all_out_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_prefix_list_prefix_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_distance_ospf_intra_inter_external_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_bgp_redistribute_ipv6_rmap_cmd_vtysh);
+  install_element (OSPF_NODE, &refresh_timer_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_capability_orf_prefix_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_prefix_list_cmd_vtysh);
+  install_element (KEYCHAIN_KEY_NODE, &send_lifetime_month_day_month_day_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_default_originate_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_ospf_zebra_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_community_exact_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_bgp_filter_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_ospf_message_digest_key_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_maximum_prefix_warning_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_rip_zebra_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_rip_packet_cmd_vtysh);
+  install_element (VIEW_NODE, &show_version_ospf6_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_flap_prefix_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_unsuppress_map_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_route_supernets_cmd_vtysh);
+  install_element (RIP_NODE, &rip_redistribute_type_routemap_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_dampening_address_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_ip_next_hop_prefix_list_val_cmd_vtysh);
+  install_element (RMAP_NODE, &rmap_onmatch_goto_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_rip_authentication_mode_type_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_mbgp_summary_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_attr_unchanged3_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_attr_unchanged10_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_view_route_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_ospf_database_type_id_adv_router_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_connected_routemap_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_ospf_ism_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_bgp_events_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_flap_route_map_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_attr_unchanged3_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_ripng_zebra_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_attr_unchanged5_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_allowas_in_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_community3_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_prefix_list_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_community4_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_send_community_type_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &aggregate_address_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_all_neighbor_advertised_routes_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_send_community_type_cmd_vtysh);
+  install_element (KEYCHAIN_KEY_NODE, &accept_lifetime_duration_month_day_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_route_server_client_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_prefix_list_seq_ge_le_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_route_prefix_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_ipv6_nexthop_global_val_cmd_vtysh);
+  install_element (OSPF_NODE, &no_area_range_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_route_prefix_longer_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_local_as_val_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_route_map_all_cmd_vtysh);
+  install_element (OSPF_NODE, &no_passive_interface_addr_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_as_soft_out_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_redistribute_ipv4_metric_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_send_community_type_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_neighbors_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_peer_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_external_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_neighbor_routes_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_activate_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_enforce_first_as_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_rip_events_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_redistribute_kernel_metric_routemap_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_passive_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_community4_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_static_metric_val_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_ecommunity_rt_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_send_community_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_remove_private_as_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_network_backdoor_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_enforce_multihop_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_prefix_list_name_prefix_cmd_vtysh);
+  install_element (OSPF6_NODE, &ospf6_redistribute_routemap_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_send_community_type_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &bgp_network_mask_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_attr_unchanged_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_capability_orf_prefix_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ospf_message_digest_key_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_rd_tags_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_access_list_exact_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_soft_reconfiguration_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_attr_unchanged10_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_neighbor_advertised_route_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_community3_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_network_mask_backdoor_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_irdp_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_aggregate_address_as_set_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_attr_unchanged8_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_area_topology_router_lsid_cmd_vtysh);
+  install_element (OSPF_NODE, &no_area_filter_list_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_prefix_list_ge_le_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_bgp_community_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_instance_all_soft_in_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_zebra_packet_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_all_neighbors_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_aggregate_address_mask_summary_only_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_default_information_originate_always_type_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_ospf6_metric_val_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_route_map_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_attr_unchanged7_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_bgp_prefix_list_cmd_vtysh);
+  install_element (OSPF6_NODE, &ospf6_area_range_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_rip_events_cmd_vtysh);
+  install_element (CONFIG_NODE, &ipv6_prefix_list_seq_le_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_community_cmd_vtysh);
+  install_element (RMAP_NODE, &match_interface_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_community_exact_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_version_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_in_prefix_filter_cmd_vtysh);
+  install_element (CONFIG_NODE, &access_list_standard_any_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_ospf_lsa_sub_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_distance_ospf_intra_inter_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_bgp_keepalive_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_instance_neighbors_peer_cmd_vtysh);
+  install_element (CONFIG_NODE, &access_list_extended_any_any_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_ripng_packet_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_attr_unchanged9_cmd_vtysh);
+  install_element (RIP_NODE, &rip_offset_list_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_network_import_check_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_vpnv4_in_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_prefix_list_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_bgp_cmd_vtysh);
+  install_element (OSPF_NODE, &no_area_default_cost_cmd_vtysh);
+  install_element (CONFIG_NODE, &ipv6_prefix_list_ge_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_paths_cmd_vtysh);
+  install_element (RIP_NODE, &no_rip_offset_list_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_access_list_remark_arg_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_zebra_kernel_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_aggregate_address_mask_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_ospf_lsa_cmd_vtysh);
+  install_element (OSPF_NODE, &no_ospf_default_metric_val_cmd_vtysh);
+  install_element (OSPF_NODE, &area_range_not_advertise_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_default_information_originate_type_metric_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_zebra_client_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_attr_unchanged8_cmd_vtysh);
+  install_element (CONFIG_NODE, &ipv6_prefix_list_le_ge_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_aggregate_address_summary_only_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_rd_neighbors_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_ipv4_soft_in_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_vpnv4_nexthop_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_vpnv4_out_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_nexthop_self_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_peer_group_out_cmd_vtysh);
+  install_element (OSPF_NODE, &area_range_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_mbgp_community_list_exact_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_default_information_originate_metric_type_cmd_vtysh);
+  install_element (RIP_NODE, &rip_distance_source_access_list_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_router_bgp_view_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_mbgp_community_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_all_soft_in_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_shutdown_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_distance_ospf_inter_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_community_list_name_standard_cmd_vtysh);
+  install_element (RIP_NODE, &no_rip_redistribute_type_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_neighbor_advertised_route_cmd_vtysh);
+  install_element (OSPF_NODE, &no_neighbor_priority_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_external_in_prefix_filter_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_bgp_community4_exact_cmd_vtysh);
+  install_element (BGP_NODE, &aggregate_address_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_rip_receive_version_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_compatible_rfc1583_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_soft_out_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ipv6_ospf6_passive_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_soft_reconfiguration_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_bgp_redistribute_ipv6_rmap_metric_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_access_list_extended_any_any_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_shutdown_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_regexp_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_aggregate_address_mask_summary_as_set_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_vpnv4_rd_neighbor_advertised_routes_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_route_prefix_longer_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_bgp_community4_exact_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_distribute_list_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_route_map_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_origin_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &bgp_damp_unset2_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_mbgp_community_all_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_dump_bgp_updates_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_network_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_weight_val_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_ipv6_address_prefix_list_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_multicast_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_mbgp_community3_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_community_list_standard_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_prefix_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_area_route_prefix_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_ospf_lsa_sub_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_bandwidth_if_val_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_prefix_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_neighbor_received_prefix_filter_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_ospf_database_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_distribute_list_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_attr_unchanged9_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_all_vpnv4_soft_cmd_vtysh);
+  install_element (OSPF_NODE, &area_vlink_authtype_args_authkey_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_flap_filter_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_community4_exact_cmd_vtysh);
+  install_element (OSPF_NODE, &neighbor_priority_cmd_vtysh);
+  install_element (BGP_NODE, &old_no_ipv6_bgp_network_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_neighbors_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_external_ipv4_in_prefix_filter_cmd_vtysh);
+  install_element (CONFIG_NODE, &access_list_exact_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &aggregate_address_mask_as_set_summary_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_filter_list_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_weight_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_route_reflector_client_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_timers_connect_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_distribute_list_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_ecommunity_val_cmd_vtysh);
+  install_element (BGP_NODE, &no_aggregate_address_summary_as_set_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_kernel_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_community_none_cmd_vtysh);
+  install_element (RIP_NODE, &no_rip_version_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_community3_exact_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_ospf_dead_interval_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_ospf_authentication_addr_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_ipv6_aggregate_address_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_ospf_route_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_local_as_val2_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_aspath_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_bgp_normal_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_bestpath_med2_cmd_vtysh);
+  install_element (OSPF_NODE, &no_ospf_redistribute_source_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_shutdown_if_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_flap_address_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_ospf_zebra_sub_cmd_vtysh);
+  install_element (RMAP_NODE, &set_metric_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_neighbors_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_bgp_filter_list_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_attr_unchanged6_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &bgp_damp_set3_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_bgp_update_direct_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_default_information_originate_always_routemap_cmd_vtysh);
+  install_element (BGP_NODE, &aggregate_address_summary_as_set_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_external_in_prefix_filter_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_access_list_exact_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_mbgp_prefix_list_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_soft_reconfiguration_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_remove_private_as_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_maximum_prefix_warning_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_route_map_cmd_vtysh);
+  install_element (RMAP_NODE, &set_atomic_aggregate_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_peer_group_in_prefix_filter_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_ipv6_nexthop_global_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_scan_time_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_interface_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_bgp_update_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_route_prefix_longer_cmd_vtysh);
+  install_element (CONFIG_NODE, &ipv6_route_ifname_pref_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_allowas_in_arg_cmd_vtysh);
+  install_element (RIP_NODE, &rip_passive_interface_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_filter_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_neighbor_advertised_route_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_prefix_list_name_seq_cmd_vtysh);
+  install_element (RMAP_NODE, &set_aspath_prepend_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_ospf_database_type_id_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_topology_router_lsid_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_community_list_all_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_neighbor_received_routes_cmd_vtysh);
+  install_element (RMAP_NODE, &match_ip_next_hop_prefix_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_mbgp_route_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_activate_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_timers_arg_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_instance_neighbors_peer_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_advertise_interval_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_activate_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_external_soft_in_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_connected_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_route_mask_distance_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_send_community_type_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &aggregate_address_mask_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_bgp_community4_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_ospf6_routemap_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_community_list_name_standard_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_prefix_list_ge_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_filter_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_zebra_events_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_attr_unchanged6_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_route_addr_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_attr_unchanged1_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_prefix_list_detail_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_aggregate_address_summary_only_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_ospf_interface_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_community_list_standard2_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_attr_unchanged1_cmd_vtysh);
+  install_element (OSPF6_NODE, &no_interface_area_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_prefix_list_cmd_vtysh);
+  install_element (OSPF_NODE, &no_ospf_rfc1583_flag_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_mbgp_route_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_community3_exact_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_route_server_client_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_all_soft_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_allowas_in_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_instance_all_soft_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_network_mask_backdoor_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_aggregate_address_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_community4_exact_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_attr_unchanged1_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_prefix_list_seq_le_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_prefix_list_le_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_redistribute_ospf6_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_capability_dynamic_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_regexp_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_route_mask_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_redistribute_connected_routemap_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ospf_transmit_delay_cmd_vtysh);
+  install_element (RIP_NODE, &no_rip_redistribute_type_metric_routemap_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_ripng_events_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_soft_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_all_route_cmd_vtysh);
+  install_element (ZEBRA_NODE, &ripng_redistribute_ripng_cmd_vtysh);
+  install_element (CONFIG_NODE, &access_list_extended_mask_host_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_neighbor_received_routes_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &ipv6_aggregate_address_summary_only_cmd_vtysh);
+  install_element (ZEBRA_NODE, &no_rip_redistribute_rip_cmd_vtysh);
+  install_element (RIP_NODE, &no_rip_default_information_originate_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_group_soft_out_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_ipv4_community3_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &aggregate_address_as_set_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_ospf_packet_all_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_community4_exact_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_allowas_in_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_summary_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ospf_hello_interval_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_community_all_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_timers_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_override_capability_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_database_type_id_adv_router_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_redistribute_kernel_metric_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_network_mask_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_route_server_client_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_bgp_network_route_map_cmd_vtysh);
+  install_element (RIP_NODE, &no_rip_neighbor_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_route_protocol_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_dampening_address_mask_cmd_vtysh);
+  install_element (KEYCHAIN_KEY_NODE, &accept_lifetime_day_month_month_day_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_external_in_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &aggregate_address_summary_only_cmd_vtysh);
+  install_element (OSPF_NODE, &area_vlink_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_external_soft_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_distance_ospf_external_intra_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_prefix_list_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &bgp_network_mask_natural_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_ospf_retransmit_interval_cmd_vtysh);
+  install_element (KEYCHAIN_KEY_NODE, &send_lifetime_day_month_day_month_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_rd_tags_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_ospf_event_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_maximum_prefix_warning_cmd_vtysh);
+  install_element (KEYCHAIN_KEY_NODE, &send_lifetime_duration_day_month_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_ospf_hello_interval_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_prefix_list_description_arg_cmd_vtysh);
+  install_element (ENABLE_NODE, &ipv6_bgp_neighbor_received_routes_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ipv6_ospf6_passive_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_prefix_list_ge_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_default_information_originate_type_routemap_cmd_vtysh);
+  install_element (OSPF_NODE, &no_ospf_default_information_originate_cmd_vtysh);
+  install_element (RMAP_NODE, &match_ip_next_hop_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_prefix_list_prefix_first_match_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_community_exact_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_attr_unchanged2_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_as_soft_out_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_attr_unchanged2_cmd_vtysh);
+  install_element (ENABLE_NODE, &undebug_bgp_keepalive_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_ospf_zebra_sub_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_vpnv4_rd_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_ipv6_address_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_attr_unchanged2_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_redistribute_ipv4_rmap_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_default_originate_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_route_prefix_longer_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_bgp_metric_routemap_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_router_id_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_ospf_packet_all_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_confederation_identifier_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_soft_reconfiguration_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_nexthop_self_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_ripng_packet_direct_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_ospf_authentication_args_cmd_vtysh);
+  install_element (OSPF6_NODE, &passive_interface_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_route_server_client_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_access_list_any_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_send_community_type_cmd_vtysh);
+  install_element (RIPNG_NODE, &ripng_aggregate_address_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_port_val_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_vpnv4_network_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_redistribute_ipv4_rmap_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_ip_address_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_prefix_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ip_ospf_hello_interval_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_redistribute_ipv4_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_ecommunity_soo_val_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_description_val_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_bestpath_aspath_ignore_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_attr_unchanged_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_as_soft_cmd_vtysh);
+  install_element (KEYCHAIN_KEY_NODE, &accept_lifetime_month_day_day_month_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_community_exact_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_damp_unset2_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_attr_unchanged7_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_default_information_originate_metric_type_routemap_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_extcommunity_list_expanded_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_send_community_type_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ospf_network_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_redistribute_ipv4_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_community2_exact_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_instance_summary_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_access_list_extended_mask_any_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_neighbors_cmd_vtysh);
+  install_element (OSPF_NODE, &no_area_stub_no_summary_cmd_vtysh);
+  install_element (RMAP_NODE, &no_set_aggregator_as_val_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_peer_ipv4_in_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_default_originate_rmap_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &bgp_network_route_map_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_mbgp_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_attr_unchanged7_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_community3_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_distance_ospf_external_inter_intra_cmd_vtysh);
+  install_element (OSPF_NODE, &area_range_substitute_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_attr_unchanged4_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_prefix_cmd_vtysh);
+  install_element (ENABLE_NODE, &debug_bgp_filter_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_attr_unchanged4_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_route_map_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_neighbor_flap_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &bgp_damp_set2_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &ipv6_bgp_network_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_maximum_prefix_val2_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_ospf_packet_send_recv_detail_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_maximum_prefix_cmd_vtysh);
+  install_element (RIP_NODE, &rip_neighbor_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_distribute_list_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_extcommunity_list_standard_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_attr_unchanged4_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_community_list_expanded_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_debug_rip_packet_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_network_mask_natural_backdoor_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_bgp_events_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_soft_reconfiguration_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_activate_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_allowas_in_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_ospf_authentication_key_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_access_list_remark_arg_cmd_vtysh);
+  install_element (OSPF_NODE, &ospf_default_information_originate_metric_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_external_out_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_activate_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &neighbor_default_originate_cmd_vtysh);
+  install_element (VIEW_NODE, &show_zebra_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &no_neighbor_attr_unchanged8_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_bgp_community_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ip_bgp_ipv4_community_list_exact_cmd_vtysh);
+  install_element (RIP_NODE, &no_rip_network_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_group_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_prefix_list_cmd_vtysh);
+  install_element (OSPF_NODE, &no_ospf_compatible_rfc1583_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_ospf_ism_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_area_topology_router_lsid_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &bgp_damp_unset_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_community4_exact_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_activate_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_bgp_normal_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_bestpath_med3_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_bgp_network_mask_route_map_cmd_vtysh);
+  install_element (OSPF6_NODE, &no_passive_interface_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_community_all_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_zebra_events_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_interface_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_route_reflector_client_cmd_vtysh);
+  install_element (RMAP_NODE, &set_ecommunity_soo_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_ip_bgp_all_out_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ipv6_ospf6_transmitdelay_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_route_cmd_vtysh);
+  install_element (RIP_NODE, &rip_redistribute_type_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_rip_packet_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_instance_ipv6_summary_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_extcommunity_list_arg_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ip_irdp_address_preference_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_ipv6_community_list_exact_cmd_vtysh);
+  install_element (INTERFACE_NODE, &no_ipv6_ospf6_advertise_force_prefix_cmd_vtysh);
+  install_element (BGP_IPV6_NODE, &no_neighbor_allowas_in_cmd_vtysh);
+  install_element (BGP_NODE, &no_bgp_router_id_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ipv6_forwarding_cmd_vtysh);
+  install_element (OSPF_NODE, &no_area_authentication_cmd_vtysh);
+  install_element (CONFIG_NODE, &ip_community_list_name_expanded_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_ipv6_peer_in_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_strict_capability_cmd_vtysh);
+  install_element (BGP_NODE, &no_neighbor_ebgp_multihop_ttl_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &neighbor_set_peer_group_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ip_bgp_community_info_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_router_ospf_cmd_vtysh);
+  install_element (VIEW_NODE, &show_bgp_ipv6_community_all_cmd_vtysh);
+  install_element (ENABLE_NODE, &no_debug_ripng_events_cmd_vtysh);
+  install_element (OSPF_NODE, &no_timers_spf_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_aggregate_address_cmd_vtysh);
+  install_element (VIEW_NODE, &show_ipv6_bgp_regexp_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_prefix_list_seq_le_ge_cmd_vtysh);
+  install_element (INTERFACE_NODE, &rip_split_horizon_cmd_vtysh);
+  install_element (BGP_IPV4M_NODE, &no_neighbor_maximum_prefix_val_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_bgp_community3_exact_cmd_vtysh);
+  install_element (RIPNG_NODE, &no_ripng_redistribute_bgp_metric_val_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &no_neighbor_maximum_prefix_cmd_vtysh);
+  install_element (RMAP_NODE, &no_match_interface_val_cmd_vtysh);
+  install_element (BGP_VPNV4_NODE, &neighbor_distribute_list_cmd_vtysh);
+  install_element (ENABLE_NODE, &show_ipv6_bgp_route_cmd_vtysh);
+  install_element (BGP_NODE, &neighbor_attr_unchanged8_cmd_vtysh);
+  install_element (CONFIG_NODE, &debug_ospf_zebra_sub_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_redistribute_ipv4_metric_rmap_cmd_vtysh);
+  install_element (BGP_NODE, &bgp_timers_cmd_vtysh);
+  install_element (BGP_NODE, &no_aggregate_address_mask_summary_as_set_cmd_vtysh);
+  install_element (ENABLE_NODE, &clear_bgp_peer_group_soft_out_cmd_vtysh);
+  install_element (BGP_IPV4_NODE, &neighbor_remove_private_as_cmd_vtysh);
+  install_element (OSPF_NODE, &area_stub_no_summary_cmd_vtysh);
+  install_element (CONFIG_NODE, &no_ip_extcommunity_list_name_standard_cmd_vtysh);
+  install_element (KEYCHAIN_KEY_NODE, &accept_lifetime_duration_day_month_cmd_vtysh);
+  install_element (INTERFACE_NODE, &ipv6_ospf6_deadinterval_cmd_vtysh);
 }
diff --git a/zebra/Makefile.in b/zebra/Makefile.in
index f44d1a6..f3f7bc3 100644
--- a/zebra/Makefile.in
+++ b/zebra/Makefile.in
@@ -1,6 +1,7 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.5 from Makefile.am.
 
-# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# 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.
@@ -10,6 +11,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+@SET_MAKE@
 
 SHELL = @SHELL@
 
@@ -31,13 +33,9 @@
 mandir = @mandir@
 includedir = @includedir@
 oldincludedir = /usr/include
-
-DESTDIR =
-
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
-
 top_builddir = ..
 
 ACLOCAL = @ACLOCAL@
@@ -46,11 +44,11 @@
 AUTOHEADER = @AUTOHEADER@
 
 INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
 transform = @program_transform_name@
-
 NORMAL_INSTALL = :
 PRE_INSTALL = :
 POST_INSTALL = :
@@ -59,20 +57,26 @@
 POST_UNINSTALL = :
 host_alias = @host_alias@
 host_triplet = @host@
+AMTAR = @AMTAR@
 AR = @AR@
+AWK = @AWK@
 BGPD = @BGPD@
 CC = @CC@
 CPP = @CPP@
 CURSES = @CURSES@
+DEPDIR = @DEPDIR@
+EXEEXT = @EXEEXT@
 IF_METHOD = @IF_METHOD@
 IF_PROC = @IF_PROC@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 IPFORWARD = @IPFORWARD@
 KERNEL_METHOD = @KERNEL_METHOD@
 LIBPAM = @LIBPAM@
 LIB_REGEX = @LIB_REGEX@
-MAKEINFO = @MAKEINFO@
 MULTIPATH_NUM = @MULTIPATH_NUM@
+OBJEXT = @OBJEXT@
 OSPF6D = @OSPF6D@
+OSPFAPI = @OSPFAPI@
 OSPFCLIENT = @OSPFCLIENT@
 OSPFD = @OSPFD@
 OTHER_METHOD = @OTHER_METHOD@
@@ -85,12 +89,15 @@
 VERSION = @VERSION@
 VTYSH = @VTYSH@
 ZEBRA = @ZEBRA@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
 
 INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
-DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\" -DMULTIPATH_NUM=@MULTIPATH_NUM@
-INSTALL_SDATA = @INSTALL@ -m 600
 
 LIB_IPV6 = @LIB_IPV6@
+DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\" -DMULTIPATH_NUM=@MULTIPATH_NUM@
+INSTALL_SDATA = @INSTALL@ -m 600
 
 ipforward = @IPFORWARD@
 if_method = @IF_METHOD@
@@ -129,253 +136,256 @@
 	rtread_getmsg.c kernel_socket.c kernel_netlink.c mtu_kvm.c \
 	GNOME-SMI GNOME-PRODUCT-ZEBRA-MIB
 
+subdir = zebra
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../config.h
-CONFIG_CLEAN_FILES = 
-PROGRAMS =  $(sbin_PROGRAMS)
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+sbin_PROGRAMS = zebra$(EXEEXT)
+PROGRAMS = $(sbin_PROGRAMS)
 
+am_zebra_OBJECTS = zserv.$(OBJEXT) main.$(OBJEXT) interface.$(OBJEXT) \
+	connected.$(OBJEXT) ioctl.$(OBJEXT) zebra_rib.$(OBJEXT) \
+	redistribute.$(OBJEXT) debug.$(OBJEXT) rtadv.$(OBJEXT) \
+	zebra_snmp.$(OBJEXT) zebra_vty.$(OBJEXT)
+zebra_OBJECTS = $(am_zebra_OBJECTS)
+zebra_LDFLAGS =
+DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
 CPPFLAGS = @CPPFLAGS@
 LDFLAGS = @LDFLAGS@
 LIBS = @LIBS@
-zebra_OBJECTS =  zserv.o main.o interface.o connected.o ioctl.o \
-zebra_rib.o redistribute.o debug.o rtadv.o zebra_snmp.o zebra_vty.o
-zebra_LDFLAGS = 
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/connected.Po $(DEPDIR)/debug.Po \
+@AMDEP_TRUE@	$(DEPDIR)/interface.Po $(DEPDIR)/ioctl.Po \
+@AMDEP_TRUE@	$(DEPDIR)/main.Po $(DEPDIR)/redistribute.Po \
+@AMDEP_TRUE@	$(DEPDIR)/rtadv.Po $(DEPDIR)/zebra_rib.Po \
+@AMDEP_TRUE@	$(DEPDIR)/zebra_snmp.Po $(DEPDIR)/zebra_vty.Po \
+@AMDEP_TRUE@	$(DEPDIR)/zserv.Po
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-DATA =  $(sysconf_DATA)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+CFLAGS = @CFLAGS@
+DIST_SOURCES = $(zebra_SOURCES)
+DATA = $(sysconf_DATA)
 
-HEADERS =  $(noinst_HEADERS)
+HEADERS = $(noinst_HEADERS)
 
-DIST_COMMON =  ChangeLog Makefile.am Makefile.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = gtar
-GZIP_ENV = --best
-DEP_FILES =  .deps/connected.P .deps/debug.P .deps/interface.P \
-.deps/ioctl.P .deps/main.P .deps/redistribute.P .deps/rtadv.P \
-.deps/zebra_rib.P .deps/zebra_snmp.P .deps/zebra_vty.P .deps/zserv.P
+DIST_COMMON = $(noinst_HEADERS) ChangeLog Makefile.am Makefile.in
 SOURCES = $(zebra_SOURCES)
-OBJECTS = $(zebra_OBJECTS)
 
-all: all-redirect
+all: all-am
+
 .SUFFIXES:
-.SUFFIXES: .S .c .o .s
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --foreign zebra/Makefile
-
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
-	cd $(top_builddir) \
-	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-
-mostlyclean-sbinPROGRAMS:
-
-clean-sbinPROGRAMS:
-	-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
-
-distclean-sbinPROGRAMS:
-
-maintainer-clean-sbinPROGRAMS:
-
+.SUFFIXES: .c .o .obj
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign  zebra/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) && \
+	  CONFIG_HEADERS= CONFIG_LINKS= \
+	  CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
 install-sbinPROGRAMS: $(sbin_PROGRAMS)
 	@$(NORMAL_INSTALL)
 	$(mkinstalldirs) $(DESTDIR)$(sbindir)
 	@list='$(sbin_PROGRAMS)'; for p in $$list; do \
-	  if test -f $$p; then \
-	    echo "  $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
-	     $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  if test -f $$p \
+	  ; then \
+	    f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f"; \
+	   $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/$$f; \
 	  else :; fi; \
 	done
 
 uninstall-sbinPROGRAMS:
 	@$(NORMAL_UNINSTALL)
-	list='$(sbin_PROGRAMS)'; for p in $$list; do \
-	  rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+	@list='$(sbin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+	  echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
+	  rm -f $(DESTDIR)$(sbindir)/$$f; \
 	done
 
-.s.o:
-	$(COMPILE) -c $<
-
-.S.o:
-	$(COMPILE) -c $<
+clean-sbinPROGRAMS:
+	-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
+zebra$(EXEEXT): $(zebra_OBJECTS) $(zebra_DEPENDENCIES) 
+	@rm -f zebra$(EXEEXT)
+	$(LINK) $(zebra_LDFLAGS) $(zebra_OBJECTS) $(zebra_LDADD) $(LIBS)
 
 mostlyclean-compile:
-	-rm -f *.o core *.core
-
-clean-compile:
+	-rm -f *.$(OBJEXT) core *.core
 
 distclean-compile:
 	-rm -f *.tab.c
 
-maintainer-clean-compile:
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/connected.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/debug.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/interface.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ioctl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/redistribute.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/rtadv.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/zebra_rib.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/zebra_snmp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/zebra_vty.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/zserv.Po@am__quote@
 
-zebra: $(zebra_OBJECTS) $(zebra_DEPENDENCIES)
-	@rm -f zebra
-	$(LINK) $(zebra_LDFLAGS) $(zebra_OBJECTS) $(zebra_LDADD) $(LIBS)
+distclean-depend:
+	-rm -rf $(DEPDIR)
+
+.c.o:
+@AMDEP_TRUE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+	$(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
+
+.c.obj:
+@AMDEP_TRUE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@	$(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+	$(COMPILE) -c `cygpath -w $<`
+CCDEPMODE = @CCDEPMODE@
+uninstall-info-am:
 
 uninstall-sysconfDATA:
 	@$(NORMAL_UNINSTALL)
-	list='$(sysconf_DATA)'; for p in $$list; do \
-	  rm -f $(DESTDIR)$(sysconfdir)/$$p; \
+	@list='$(sysconf_DATA)'; for p in $$list; do \
+	  f="`echo $$p | sed -e 's|^.*/||'`"; \
+	  echo " rm -f $(DESTDIR)$(sysconfdir)/$$f"; \
+	  rm -f $(DESTDIR)$(sysconfdir)/$$f; \
 	done
 
 tags: TAGS
 
-ID: $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
-	here=`pwd` && cd $(srcdir) \
-	  && mkid -f$$here/ID $$unique $(LISP)
+	mkid -fID $$unique $(LISP)
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
 	tags=; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)'; \
-	unique=`for i in $$list; do echo $$i; done | \
-	  awk '    { files[$$0] = 1; } \
+	list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
 	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
-	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+	  || etags $(ETAGS_ARGS) $$tags  $$unique $(LISP)
 
-mostlyclean-tags:
-
-clean-tags:
+GTAGS:
+	here=`CDPATH=: && cd $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
 
 distclean-tags:
-	-rm -f TAGS ID
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
 
-maintainer-clean-tags:
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = zebra
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
 
 distdir: $(DISTFILES)
-	here=`cd $(top_builddir) && pwd`; \
-	top_distdir=`cd $(top_distdir) && pwd`; \
-	distdir=`cd $(distdir) && pwd`; \
-	cd $(top_srcdir) \
-	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign zebra/Makefile
 	@for file in $(DISTFILES); do \
-	  d=$(srcdir); \
+	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    $(mkinstalldirs) "$(distdir)/$$dir"; \
+	  fi; \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$d/$$file $(distdir)/$$file; \
+	    cp -pR $$d/$$file $(distdir) \
+	    || exit 1; \
 	  else \
 	    test -f $(distdir)/$$file \
-	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
 	  fi; \
 	done
-
-DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-
--include $(DEP_FILES)
-
-mostlyclean-depend:
-
-clean-depend:
-
-distclean-depend:
-	-rm -rf .deps
-
-maintainer-clean-depend:
-
-%.o: %.c
-	@echo '$(COMPILE) -c $<'; \
-	$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-	@-cp .deps/$(*F).pp .deps/$(*F).P; \
-	tr ' ' '\012' < .deps/$(*F).pp \
-	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-	    >> .deps/$(*F).P; \
-	rm .deps/$(*F).pp
-
-%.lo: %.c
-	@echo '$(LTCOMPILE) -c $<'; \
-	$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
-	@-sed -e 's/^\([^:]*\)\.o[ 	]*:/\1.lo \1.o :/' \
-	  < .deps/$(*F).pp > .deps/$(*F).P; \
-	tr ' ' '\012' < .deps/$(*F).pp \
-	  | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
-	    >> .deps/$(*F).P; \
-	rm -f .deps/$(*F).pp
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
 check-am: all-am
 check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am: install-sbinPROGRAMS install-sysconfDATA
-install-exec: install-exec-am
+all-am: Makefile $(PROGRAMS) $(DATA) $(HEADERS)
 
-install-data-am:
+installdirs:
+	$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
+
+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
-install: install-am
-uninstall-am: uninstall-sbinPROGRAMS uninstall-sysconfDATA
-uninstall: uninstall-am
-all-am: Makefile $(PROGRAMS) $(DATA) $(HEADERS)
-all-redirect: all-am
+
+installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-	$(mkinstalldirs)  $(DESTDIR)$(sbindir) $(DESTDIR)$(sysconfdir)
-
-
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
 mostlyclean-generic:
 
 clean-generic:
 
 distclean-generic:
-	-rm -f Makefile $(CONFIG_CLEAN_FILES)
-	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+	-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
 
 maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-sbinPROGRAMS mostlyclean-compile \
-		mostlyclean-tags mostlyclean-depend mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am:  clean-sbinPROGRAMS clean-compile clean-tags clean-depend \
-		clean-generic mostlyclean-am
-
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
 clean: clean-am
 
-distclean-am:  distclean-sbinPROGRAMS distclean-compile distclean-tags \
-		distclean-depend distclean-generic clean-am
+clean-am: clean-generic clean-sbinPROGRAMS mostlyclean-am
 
 distclean: distclean-am
 
-maintainer-clean-am:  maintainer-clean-sbinPROGRAMS \
-		maintainer-clean-compile maintainer-clean-tags \
-		maintainer-clean-depend maintainer-clean-generic \
-		distclean-am
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
+distclean-am: clean-am distclean-compile distclean-depend \
+	distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am: install-sbinPROGRAMS install-sysconfDATA
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
 
 maintainer-clean: maintainer-clean-am
 
-.PHONY: mostlyclean-sbinPROGRAMS distclean-sbinPROGRAMS \
-clean-sbinPROGRAMS maintainer-clean-sbinPROGRAMS uninstall-sbinPROGRAMS \
-install-sbinPROGRAMS mostlyclean-compile distclean-compile \
-clean-compile maintainer-clean-compile uninstall-sysconfDATA \
-install-sysconfDATA tags mostlyclean-tags distclean-tags clean-tags \
-maintainer-clean-tags distdir mostlyclean-depend distclean-depend \
-clean-depend maintainer-clean-depend info-am info dvi-am dvi check \
-check-am installcheck-am installcheck install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+uninstall-am: uninstall-info-am uninstall-sbinPROGRAMS \
+	uninstall-sysconfDATA
+
+.PHONY: GTAGS all all-am check check-am clean clean-generic \
+	clean-sbinPROGRAMS distclean distclean-compile distclean-depend \
+	distclean-generic distclean-tags 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-sbinPROGRAMS install-strip \
+	install-sysconfDATA installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic tags uninstall \
+	uninstall-am uninstall-info-am uninstall-sbinPROGRAMS \
+	uninstall-sysconfDATA
 
 
 #client : client_main.o ../lib/libzebra.a
@@ -393,7 +403,6 @@
 	    $(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p; \
 	  fi; fi; \
 	done
-
 # 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:
