summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog70
-rw-r--r--Makefile.am4
-rw-r--r--Makefile.in460
-rw-r--r--aclocal.m4836
-rw-r--r--bgpd/.cvsignore1
-rw-r--r--bgpd/ChangeLog5
-rw-r--r--bgpd/Makefile.am2
-rw-r--r--bgpd/Makefile.in463
-rw-r--r--bgpd/bgp_advertise.h33
-rw-r--r--bgpd/bgp_aspath.c2
-rw-r--r--bgpd/bgp_clist.c48
-rw-r--r--bgpd/bgp_clist.h1
-rw-r--r--bgpd/bgp_dump.c33
-rw-r--r--bgpd/bgp_ecommunity.c39
-rw-r--r--bgpd/bgp_ecommunity.h2
-rw-r--r--bgpd/bgp_main.c26
-rw-r--r--bgpd/bgp_network.c25
-rw-r--r--bgpd/bgp_nexthop.c8
-rw-r--r--bgpd/bgp_packet.c1
-rw-r--r--bgpd/bgp_route.c21
-rw-r--r--bgpd/bgp_routemap.c13
-rw-r--r--bgpd/bgp_snmp.c3
-rw-r--r--bgpd/bgp_zebra.c4
-rw-r--r--bgpd/bgpd.c16
-rw-r--r--bgpd/bgpd.h1
-rw-r--r--config.h.in339
-rwxr-xr-xconfigure8472
-rwxr-xr-xconfigure.ac62
-rwxr-xr-xconfigure.in1026
-rw-r--r--doc/.cvsignore1
-rw-r--r--doc/ChangeLog4
-rw-r--r--doc/Makefile.in431
-rw-r--r--doc/mpls/ChangeLog.opaque.txt179
-rw-r--r--doc/mpls/cli_summary.txt90
-rw-r--r--doc/mpls/opaque_lsa.txt365
-rw-r--r--doc/mpls/ospfd.conf75
-rw-r--r--doc/ospfd.texi7
-rw-r--r--doc/zebra.info272
-rw-r--r--doc/zebra.texi6
-rw-r--r--guile/.cvsignore1
-rw-r--r--init/ChangeLog39
-rw-r--r--init/redhat/zebra.logrotate47
-rw-r--r--init/redhat/zebra.spec.in128
-rw-r--r--lib/.cvsignore1
-rw-r--r--lib/ChangeLog13
-rw-r--r--lib/Makefile.am7
-rw-r--r--lib/Makefile.in399
-rw-r--r--lib/distribute.c103
-rw-r--r--lib/if.c139
-rw-r--r--lib/if.h5
-rw-r--r--lib/linklist.c5
-rw-r--r--lib/memory.h2
-rw-r--r--lib/privs.c106
-rw-r--r--lib/privs.h14
-rw-r--r--lib/routemap.c117
-rw-r--r--lib/smux.c4
-rw-r--r--lib/smux.h2
-rw-r--r--lib/thread.c230
-rw-r--r--lib/thread.h39
-rw-r--r--lib/version.h2
-rw-r--r--lib/vty.c16
-rw-r--r--lib/zebra.h6
-rw-r--r--ospf6d/.cvsignore1
-rw-r--r--ospf6d/ChangeLog15
-rw-r--r--ospf6d/Makefile.am2
-rw-r--r--ospf6d/Makefile.in478
-rw-r--r--ospf6d/ospf6_damp.c6
-rw-r--r--ospf6d/ospf6_dump.c3
-rw-r--r--ospf6d/ospf6_interface.c8
-rw-r--r--ospf6d/ospf6_main.c29
-rw-r--r--ospf6d/ospf6_network.c9
-rw-r--r--ospf6d/ospf6_routemap.c92
-rw-r--r--ospf6d/ospf6_zebra.c1
-rw-r--r--ospf6d/ospf6d.c50
-rw-r--r--ospf6d/ospf6d.h1
-rw-r--r--ospfclient/.cvsignore7
-rw-r--r--ospfclient/AUTHORS1
-rw-r--r--ospfclient/COPYING339
-rw-r--r--ospfclient/ChangeLog57
-rw-r--r--ospfclient/INSTALL182
-rw-r--r--ospfclient/Makefile.am2
-rw-r--r--ospfclient/NEWS1
-rw-r--r--ospfclient/README4
-rw-r--r--ospfclient/ospf_apiclient.c747
-rw-r--r--ospfclient/ospf_apiclient.h135
-rw-r--r--ospfclient/ospfclient.c15
-rw-r--r--ospfd/.cvsignore1
-rw-r--r--ospfd/ChangeLog47
-rw-r--r--ospfd/Makefile.am2
-rw-r--r--ospfd/Makefile.in461
-rw-r--r--ospfd/ospf_abr.c6
-rw-r--r--ospfd/ospf_abr.h8
-rw-r--r--ospfd/ospf_api.c647
-rw-r--r--ospfd/ospf_api.h357
-rw-r--r--ospfd/ospf_apiserver.c2700
-rw-r--r--ospfd/ospf_apiserver.h201
-rw-r--r--ospfd/ospf_asbr.c44
-rw-r--r--ospfd/ospf_asbr.h13
-rw-r--r--ospfd/ospf_ase.c6
-rw-r--r--ospfd/ospf_ase.h10
-rw-r--r--ospfd/ospf_dump.c2
-rw-r--r--ospfd/ospf_flood.c1
-rw-r--r--ospfd/ospf_flood.h24
-rw-r--r--ospfd/ospf_ia.c151
-rw-r--r--ospfd/ospf_ia.h3
-rw-r--r--ospfd/ospf_interface.c8
-rw-r--r--ospfd/ospf_interface.h36
-rw-r--r--ospfd/ospf_ism.c658
-rw-r--r--ospfd/ospf_ism.h10
-rw-r--r--ospfd/ospf_lsa.c106
-rw-r--r--ospfd/ospf_lsa.h5
-rw-r--r--ospfd/ospf_lsdb.c15
-rw-r--r--ospfd/ospf_lsdb.h7
-rw-r--r--ospfd/ospf_main.c38
-rw-r--r--ospfd/ospf_neighbor.c319
-rw-r--r--ospfd/ospf_neighbor.h4
-rw-r--r--ospfd/ospf_network.c43
-rw-r--r--ospfd/ospf_nsm.c877
-rw-r--r--ospfd/ospf_nsm.h27
-rw-r--r--ospfd/ospf_opaque.c14
-rw-r--r--ospfd/ospf_route.c51
-rw-r--r--ospfd/ospf_route.h12
-rw-r--r--ospfd/ospf_routemap.c8
-rw-r--r--ospfd/ospf_snmp.c5
-rw-r--r--ospfd/ospf_spf.c1
-rw-r--r--ospfd/ospf_spf.h2
-rw-r--r--ospfd/ospf_te.c16
-rw-r--r--ospfd/ospf_vty.c491
-rw-r--r--ospfd/ospf_zebra.c5
-rw-r--r--ospfd/ospf_zebra.h30
-rw-r--r--ospfd/ospfd.c1
-rw-r--r--redhat/bgpd.init (renamed from init/redhat/bgpd.init)29
-rw-r--r--redhat/ospf6d.init (renamed from init/redhat/ospf6d.init)29
-rw-r--r--redhat/ospfd.init (renamed from init/redhat/ospfd.init)28
-rw-r--r--redhat/ripd.init (renamed from init/redhat/ripd.init)29
-rw-r--r--redhat/ripngd.init (renamed from init/redhat/ripngd.init)29
-rw-r--r--redhat/zebra.init (renamed from init/redhat/zebra.init)28
-rw-r--r--redhat/zebra.logrotate59
-rw-r--r--redhat/zebra.pam18
-rw-r--r--redhat/zebra.spec.in51
-rw-r--r--ripd/.cvsignore1
-rw-r--r--ripd/Makefile.am2
-rw-r--r--ripd/Makefile.in418
-rw-r--r--ripd/rip_interface.c9
-rw-r--r--ripd/rip_main.c29
-rw-r--r--ripd/rip_snmp.c3
-rw-r--r--ripd/ripd.c9
-rw-r--r--ripngd/.cvsignore1
-rw-r--r--ripngd/Makefile.am2
-rw-r--r--ripngd/Makefile.in416
-rw-r--r--ripngd/ripng_main.c30
-rw-r--r--ripngd/ripngd.c12
-rw-r--r--vtysh/.cvsignore2
-rw-r--r--vtysh/ChangeLog17
-rw-r--r--vtysh/Makefile.am2
-rw-r--r--vtysh/Makefile.in382
-rw-r--r--vtysh/vtysh.h10
-rw-r--r--vtysh/vtysh_cmd.c14734
-rw-r--r--vtysh/vtysh_config.c2
-rw-r--r--vtysh/vtysh_user.c7
-rw-r--r--zebra/.cvsignore1
-rw-r--r--zebra/Makefile.am7
-rw-r--r--zebra/Makefile.in423
-rw-r--r--zebra/if_ioctl.c35
-rw-r--r--zebra/interface.c152
-rw-r--r--zebra/ioctl.c17
-rw-r--r--zebra/ipforward_proc.c32
-rw-r--r--zebra/ipforward_solaris.c58
-rw-r--r--zebra/ipforward_sysctl.c43
-rw-r--r--zebra/kernel_socket.c10
-rw-r--r--zebra/main.c35
-rw-r--r--zebra/rt_netlink.c41
-rw-r--r--zebra/rt_socket.c53
-rw-r--r--zebra/rtadv.c13
-rw-r--r--zebra/zebra_snmp.c3
-rw-r--r--zebra/zserv.c9
176 files changed, 10015 insertions, 31834 deletions
diff --git a/ChangeLog b/ChangeLog
index 7448bfe1..ecee45f1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,73 @@
+2003-04-13 Paul Jakma <paul@dishone.st>
+
+ * Amir: Opaque LSA bug fix for deletion of Type11's
+ * configure.ac: use --localstatedir for Unix sockets
+ * Hasso Tepper: When flushing as-ext LSAs flush associated NSSA
+ LSAs.
+
+2003-04-04 Paul Jakma <paul@dishone.st>
+
+ * Sync to Zebra CVS
+ * Fix lib/thread.h leak
+ * Fix small Opaque LSA leak
+ * Do not configure OSPF interfaces for secondary addresses
+ * vtysh fixes from Hasso
+ * Dave Watson's missing ntohs fix
+
+2003-03-25 Paul Jakma <paul@dishone.st>
+
+ * Sync to Zebra CVS
+
+2003-03-17 Amir Guindehi <amir@datacore.ch>
+
+ * Extended SNMP checks in configure.ac so that net-snmp works
+
+2003-03-17 Amir Guindehi <amir@datacore.ch>
+ Ralph Keller <keller@tik.ee.ethz.ch>
+ * merge OSPF-API
+
+2003-02-07 Paul Jakma <paul@dishone.st>
+
+ * Sync to zebra CVS
+
+2003-02-03 Paul Jakma <paul@dishone.st>
+
+ * Sync to zebra CVS
+
+2003-01-19 Paul Jakma <paul@dishone.st>
+
+ * Temporary fix for Generic PtP wrt to IPv6
+
+2003-01-17 Paul Jakma <paul@dishone.st>
+
+ * Sync up to latest zebra.org CVS
+ * [zebra 16823] Bugfix and new feature in Opaque-LSA handling
+ Masahiko Endo <endo@suri.co.jp>
+ * [zebra 16824] [PATCH] nsm_kill_neighbor
+ Masahiko Endo <endo@suri.co.jp>
+ * [zebra 17217] [PATCH] show thread CPU
+ Yon Uriarte <havanna_moon@gmx.net>
+ * [zebra 17218] Re: [PATCH] CLI extensions.
+ Yon Uriarte <havanna_moon@gmx.net>
+
+2002-12-13 Paul Jakma <paul@dishone.st>
+
+ * added support for vtysh 'write file' command to
+ write either per-daamon and/or integrated file
+ * ospfd md5 buffer copying fix (Greg Troxel)
+ * ospfd md5 sequence number derived from time()
+ * RIPv1 fixes and improvements (John Hay)
+ * link state detection (linux) ([zebra 12269])
+ * Generic PtP and RFC3021 interface addressing support
+ (Frank van Maarseveen)
+ * Michal Ludvig <michal@logix.cz>:
+ [zebra 16525] PATCH: Bugfixes for KAME systems
+ * Kevin C Miller <kevinm@andrew.cmu.edu>
+ [zebra 16681] OSPF NSSA Patches
+ * Yon Uriarte <havanna_moon@gmx.net>
+ [zebra 16671] [PATCH] CLI extensions
+ * Masahiko Endo: [zebra 15475] - MPLS-TE docs
+
2002-07-07 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
* zebra-0.93 released.
diff --git a/Makefile.am b/Makefile.am
index 0c7b1fbf..6d9d864c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,10 +1,10 @@
## Process this file with automake to produce Makefile.in.
SUBDIRS = lib @ZEBRA@ @BGPD@ @RIPD@ @RIPNGD@ @OSPFD@ @OSPF6D@ \
- @VTYSH@ @OSPFCLIENT@ doc
+ @VTYSH@ @OSPFCLIENT@ doc
DIST_SUBDIRS = lib zebra bgpd ripd ripngd ospfd ospf6d vtysh \
- ospfclient doc
+ ospfclient doc
EXTRA_DIST = aclocal.m4 SERVICES TODO REPORTING-BUGS vtysh/Makefile.in \
vtysh/Makefile.am update-autotools doc/mpls
diff --git a/Makefile.in b/Makefile.in
deleted file mode 100644
index d39fb51f..00000000
--- a/Makefile.in
+++ /dev/null
@@ -1,460 +0,0 @@
-# Makefile.in generated by automake 1.6.3 from Makefile.am.
-# @configure_input@
-
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = .
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = @program_transform_name@
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_alias = @host_alias@
-host_triplet = @host@
-
-EXEEXT = @EXEEXT@
-OBJEXT = @OBJEXT@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-AMTAR = @AMTAR@
-AR = @AR@
-AWK = @AWK@
-BGPD = @BGPD@
-CC = @CC@
-CPP = @CPP@
-CURSES = @CURSES@
-DEPDIR = @DEPDIR@
-IF_METHOD = @IF_METHOD@
-IF_PROC = @IF_PROC@
-INCLUDES = @INCLUDES@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-IPFORWARD = @IPFORWARD@
-KERNEL_METHOD = @KERNEL_METHOD@
-LIBPAM = @LIBPAM@
-LIB_IPV6 = @LIB_IPV6@
-LIB_REGEX = @LIB_REGEX@
-MULTIPATH_NUM = @MULTIPATH_NUM@
-OSPF6D = @OSPF6D@
-OSPFD = @OSPFD@
-OTHER_METHOD = @OTHER_METHOD@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-RIPD = @RIPD@
-RIPNGD = @RIPNGD@
-RTREAD_METHOD = @RTREAD_METHOD@
-RT_METHOD = @RT_METHOD@
-STRIP = @STRIP@
-VERSION = @VERSION@
-VTYSH = @VTYSH@
-ZEBRA = @ZEBRA@
-am__include = @am__include@
-am__quote = @am__quote@
-install_sh = @install_sh@
-
-SUBDIRS = lib @ZEBRA@ @BGPD@ @RIPD@ @RIPNGD@ @OSPFD@ @OSPF6D@ @VTYSH@ 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_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 AUTHORS COPYING COPYING.LIB ChangeLog INSTALL \
- Makefile.am Makefile.in NEWS TODO aclocal.m4 config.guess \
- config.h.in config.sub configure configure.ac depcomp \
- install-sh missing mkinstalldirs
-DIST_SUBDIRS = $(SUBDIRS)
-all: config.h
- $(MAKE) $(AM_MAKEFLAGS) all-recursive
-
-.SUFFIXES:
-
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno
-$(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) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
-
-$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- $(SHELL) ./config.status --recheck
-$(srcdir)/configure: $(srcdir)/configure.ac $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
- cd $(srcdir) && $(AUTOCONF)
-
-$(ACLOCAL_M4): configure.ac
- cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-
-config.h: stamp-h1
- @if test ! -f $@; then \
- rm -f stamp-h1; \
- $(MAKE) stamp-h1; \
- else :; fi
-
-stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
- @rm -f stamp-h1
- cd $(top_builddir) && $(SHELL) ./config.status config.h
-
-$(srcdir)/config.h.in: $(top_srcdir)/configure.ac $(ACLOCAL_M4)
- cd $(top_srcdir) && $(AUTOHEADER)
- touch $(srcdir)/config.h.in
-
-distclean-hdr:
- -rm -f config.h stamp-h1
-uninstall-info-am:
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (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.
-$(RECURSIVE_TARGETS):
- @set fnord $$MAKEFLAGS; amf=$$2; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-mostlyclean-recursive clean-recursive distclean-recursive \
-maintainer-clean-recursive:
- @set fnord $$MAKEFLAGS; amf=$$2; \
- dot_seen=no; \
- 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; \
- rev="$$rev ."; \
- target=`echo $@ | sed s/-recursive//`; \
- for subdir in $$rev; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
- done && test -z "$$fail"
-tags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
- done
-
-ETAGS = etags
-ETAGSFLAGS =
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(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; }'`; \
- mkid -fID $$unique
-
-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 \
- test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
- fi; \
- done; \
- list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(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)$$tags$$unique" \
- || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = .
-distdir = $(PACKAGE)-$(VERSION)
-
-am__remove_distdir = \
- { test ! -d $(distdir) \
- || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -fr $(distdir); }; }
-
-GZIP_ENV = --best
-distcleancheck_listfiles = find . -type f -print
-
-distdir: $(DISTFILES)
- $(am__remove_distdir)
- mkdir $(distdir)
- $(mkinstalldirs) $(distdir)/vtysh
- @list='$(DISTFILES)'; for file in $$list; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
- list='$(SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test -d $(distdir)/$$subdir \
- || mkdir $(distdir)/$$subdir \
- || exit 1; \
- (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
- -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-gzip: distdir
- $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(am__remove_distdir)
-
-dist dist-all: distdir
- $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(am__remove_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
- $(am__remove_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=`$(am__cd) $(distdir)/=inst && pwd` \
- && cd $(distdir)/=build \
- && ../configure --srcdir=.. --prefix=$$dc_install_base \
- $(DISTCHECK_CONFIGURE_FLAGS) \
- && $(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:" ; \
- find $$dc_install_base -type f -print ; \
- exit 1; } >&2 ) \
- && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
- && rm -f $(distdir).tar.gz \
- && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
- $(am__remove_distdir)
- @echo "$(distdir).tar.gz is ready for distribution" | \
- sed 'h;s/./=/g;p;x;p;x'
-distcleancheck: distclean
- if test '$(srcdir)' = . ; then \
- echo "ERROR: distcleancheck can only run from a VPATH build" ; \
- exit 1 ; \
- fi
- test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left after distclean:" ; \
- $(distcleancheck_listfiles) ; \
- exit 1; } >&2
-check-am: all-am
-check: check-recursive
-all-am: Makefile config.h
-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)" \
- INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
-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
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf autom4te.cache
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-generic
-
-uninstall-am: uninstall-info-am
-
-uninstall-info: uninstall-info-recursive
-
-.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
- clean-generic clean-recursive dist dist-all dist-gzip distcheck \
- distclean distclean-generic distclean-hdr distclean-recursive \
- distclean-tags distcleancheck 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:
- mkdir $(distdir)/tools
- cp -p $(srcdir)/tools/*.pl $(distdir)/tools
- cp -p $(srcdir)/tools/*.el $(distdir)/tools
- cp -p $(srcdir)/tools/*.cgi $(distdir)/tools
- mkdir $(distdir)/init
- 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
deleted file mode 100644
index d78e9d03..00000000
--- a/aclocal.m4
+++ /dev/null
@@ -1,836 +0,0 @@
-# aclocal.m4 generated automatically by aclocal 1.6.3 -*- Autoconf -*-
-
-# Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# 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.
-
-# 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. -*- Autoconf -*-
-
-# 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.
-
-# Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 8
-
-# 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...
-
-
-AC_PREREQ([2.52])
-
-# Autoconf 2.50 wants to disallow AM_ names. We explicitly allow
-# the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
-
-# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
-# AM_INIT_AUTOMAKE([OPTIONS])
-# -----------------------------------------------
-# The call with PACKAGE and VERSION arguments is the old style
-# call (pre autoconf-2.50), which is being phased out. PACKAGE
-# and VERSION should now be passed to AC_INIT and removed from
-# the call to AM_INIT_AUTOMAKE.
-# We support both call styles for the transition. After
-# the next Automake release, Autoconf can make the AC_INIT
-# arguments mandatory, and then we can depend on a new Autoconf
-# release and drop the old call support.
-AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
- AC_REQUIRE([AC_PROG_INSTALL])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])
-fi
-
-# Define the identity of the package.
-dnl Distinguish between old-style and new-style calls.
-m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
- AC_SUBST([PACKAGE], [$1])dnl
- AC_SUBST([VERSION], [$2])],
-[_AM_SET_OPTIONS([$1])dnl
- AC_SUBST([PACKAGE], [AC_PACKAGE_TARNAME])dnl
- AC_SUBST([VERSION], [AC_PACKAGE_VERSION])])dnl
-
-_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
-
-# Some tools Automake needs.
-AC_REQUIRE([AM_SANITY_CHECK])dnl
-AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
-AM_MISSING_PROG(AUTOCONF, autoconf)
-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
-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
-
-_AM_IF_OPTION([no-dependencies],,
-[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
-])
-])
-
-# Copyright 2002 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-
-# AM_AUTOMAKE_VERSION(VERSION)
-# ----------------------------
-# Automake X.Y traces this macro to ensure aclocal.m4 has been
-# generated from the m4 files accompanying Automake X.Y.
-AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.6"])
-
-# AM_SET_CURRENT_AUTOMAKE_VERSION
-# -------------------------------
-# Call AM_AUTOMAKE_VERSION so it can be traced.
-# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
-AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
- [AM_AUTOMAKE_VERSION([1.6.3])])
-
-# Helper functions for option handling. -*- Autoconf -*-
-
-# Copyright 2001, 2002 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 2
-
-# _AM_MANGLE_OPTION(NAME)
-# -----------------------
-AC_DEFUN([_AM_MANGLE_OPTION],
-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
-
-# _AM_SET_OPTION(NAME)
-# ------------------------------
-# Set option NAME. Presently that only means defining a flag for this option.
-AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
-
-# _AM_SET_OPTIONS(OPTIONS)
-# ----------------------------------
-# OPTIONS is a space-separated list of Automake options.
-AC_DEFUN([_AM_SET_OPTIONS],
-[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
-
-# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
-# -------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-AC_DEFUN([_AM_IF_OPTION],
-[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-
-#
-# Check to make sure that the build environment is sane.
-#
-
-# Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# 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 > 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 conftest.file 2> /dev/null`
- if test "$[*]" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftest.file`
- fi
- 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".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
-alias in your environment])
- fi
-
- test "$[2]" = conftest.file
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-AC_MSG_RESULT(yes)])
-
-# -*- Autoconf -*-
-
-
-# Copyright 1997, 1999, 2000, 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 3
-
-# AM_MISSING_PROG(NAME, PROGRAM)
-# ------------------------------
-AC_DEFUN([AM_MISSING_PROG],
-[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=
- AC_MSG_WARN([`missing' script is too old or missing])
-fi
-])
-
-# AM_AUX_DIR_EXPAND
-
-# Copyright 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# 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.
-
-# Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])
-
-AC_DEFUN([AM_AUX_DIR_EXPAND], [
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-])
-
-# AM_PROG_INSTALL_SH
-# ------------------
-# Define $install_sh.
-
-# Copyright 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-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)])
-
-# AM_PROG_INSTALL_STRIP
-
-# Copyright 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# 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
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'. However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
-if test "$cross_compiling" != no; then
- AC_CHECK_TOOL([STRIP], [strip], :)
-fi
-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
-AC_SUBST([INSTALL_STRIP_PROGRAM])])
-
-# serial 4 -*- Autoconf -*-
-
-# Copyright 1999, 2000, 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-
-# 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", "GCJ", 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
-])
-AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
-])
-
-
-# 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])
-AC_SUBST([AMDEPBACKSLASH])
-])
-
-# Generate code to set up dependency tracking. -*- Autoconf -*-
-
-# Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-#serial 2
-
-# _AM_OUTPUT_DEPENDENCY_COMMANDS
-# ------------------------------
-AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-[for mf in $CONFIG_FILES; do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # So let's grep whole file.
- if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
- dirpart=`AS_DIRNAME("$mf")`
- else
- continue
- fi
- 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=`AS_DIRNAME(["$file"])`
- AS_MKDIR_P([$dirpart/$fdir])
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
-done
-])# _AM_OUTPUT_DEPENDENCY_COMMANDS
-
-
-# AM_OUTPUT_DEPENDENCY_COMMANDS
-# -----------------------------
-# This macro should only be invoked once -- use via AC_REQUIRE.
-#
-# 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_CONFIG_COMMANDS([depfiles],
- [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
- [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
-])
-
-# Copyright 2001 Free Software Foundation, Inc. -*- Autoconf -*-
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 2
-
-# 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
-])
-
-# AM_CONDITIONAL -*- Autoconf -*-
-
-# Copyright 1997, 2000, 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 5
-
-AC_PREREQ(2.52)
-
-# AM_CONDITIONAL(NAME, SHELL-CONDITION)
-# -------------------------------------
-# Define a conditional.
-AC_DEFUN([AM_CONDITIONAL],
-[ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
- [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])
-AC_SUBST([$1_FALSE])
-if $2; then
- $1_TRUE=
- $1_FALSE='#'
-else
- $1_TRUE='#'
- $1_FALSE=
-fi
-AC_CONFIG_COMMANDS_PRE(
-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
- AC_MSG_ERROR([conditional \"$1\" was never defined.
-Usually this means the macro was only invoked conditionally.])
-fi])])
-
-# Like AC_CONFIG_HEADER, but automatically create stamp file. -*- Autoconf -*-
-
-# Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-AC_PREREQ([2.52])
-
-# serial 6
-
-# 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 "/".
-
-# _AM_DIRNAME(PATH)
-# -----------------
-# Like AS_DIRNAME, only do it during macro expansion
-AC_DEFUN([_AM_DIRNAME],
- [m4_if(regexp([$1], [^.*[^/]//*[^/][^/]*/*$]), -1,
- m4_if(regexp([$1], [^//\([^/]\|$\)]), -1,
- m4_if(regexp([$1], [^/.*]), -1,
- [.],
- patsubst([$1], [^\(/\).*], [\1])),
- patsubst([$1], [^\(//\)\([^/].*\|$\)], [\1])),
- patsubst([$1], [^\(.*[^/]\)//*[^/][^/]*/*$], [\1]))[]dnl
-])# _AM_DIRNAME
-
-
-# The stamp files are numbered to have different names.
-# We could number them on a directory basis, but that's additional
-# complications, let's have a unique counter.
-m4_define([_AM_STAMP_Count], [0])
-
-
-# _AM_STAMP(HEADER)
-# -----------------
-# The name of the stamp file for HEADER.
-AC_DEFUN([_AM_STAMP],
-[m4_define([_AM_STAMP_Count], m4_incr(_AM_STAMP_Count))dnl
-AS_ESCAPE(_AM_DIRNAME(patsubst([$1],
- [:.*])))/stamp-h[]_AM_STAMP_Count])
-
-
-# _AM_CONFIG_HEADER(HEADER[:SOURCES], COMMANDS, INIT-COMMANDS)
-# ------------------------------------------------------------
-# We used to try to get a real timestamp in stamp-h. But the fear is that
-# that will cause unnecessary cvs conflicts.
-AC_DEFUN([_AM_CONFIG_HEADER],
-[# Add the stamp file to the list of files AC keeps track of,
-# along with our hook.
-AC_CONFIG_HEADERS([$1],
- [# update the timestamp
-echo 'timestamp for $1' >"_AM_STAMP([$1])"
-$2],
- [$3])
-])# _AM_CONFIG_HEADER
-
-
-# AM_CONFIG_HEADER(HEADER[:SOURCES]..., COMMANDS, INIT-COMMANDS)
-# --------------------------------------------------------------
-AC_DEFUN([AM_CONFIG_HEADER],
-[AC_FOREACH([_AM_File], [$1], [_AM_CONFIG_HEADER(_AM_File, [$2], [$3])])
-])# AM_CONFIG_HEADER
-
diff --git a/bgpd/.cvsignore b/bgpd/.cvsignore
index 8edffb6e..838b5a47 100644
--- a/bgpd/.cvsignore
+++ b/bgpd/.cvsignore
@@ -1,4 +1,5 @@
Makefile
+Makefile.in
*.o
bgpd
bgp_btoa
diff --git a/bgpd/ChangeLog b/bgpd/ChangeLog
index 39e6185e..9a201ed4 100644
--- a/bgpd/ChangeLog
+++ b/bgpd/ChangeLog
@@ -1,3 +1,8 @@
+2003-04-19 Hasso Tepper <hasso@estpak.ee>
+
+ * rip_routemap.c: sync daemon's route-map commands to have same
+ syntax
+
2003-01-09 Akihiro Mizutani <mizutani@net-chef.net>
* bgp_routemap.c: Add match extcommunity command.
diff --git a/bgpd/Makefile.am b/bgpd/Makefile.am
index 0e549cc0..7f739f6e 100644
--- a/bgpd/Makefile.am
+++ b/bgpd/Makefile.am
@@ -24,7 +24,7 @@ noinst_HEADERS = \
bgpd_SOURCES = \
bgp_main.c $(libbgp_a_SOURCES)
-bgpd_LDADD = ../lib/libzebra.a @LIBCAP@
+bgpd_LDADD = ../lib/libzebra.a
sysconf_DATA = bgpd.conf.sample bgpd.conf.sample2
diff --git a/bgpd/Makefile.in b/bgpd/Makefile.in
deleted file mode 100644
index f6cceec4..00000000
--- a/bgpd/Makefile.in
+++ /dev/null
@@ -1,463 +0,0 @@
-# Makefile.in generated by automake 1.6.3 from Makefile.am.
-# @configure_input@
-
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = @program_transform_name@
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_alias = @host_alias@
-host_triplet = @host@
-
-EXEEXT = @EXEEXT@
-OBJEXT = @OBJEXT@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-AMTAR = @AMTAR@
-AR = @AR@
-AWK = @AWK@
-BGPD = @BGPD@
-CC = @CC@
-CPP = @CPP@
-CURSES = @CURSES@
-DEPDIR = @DEPDIR@
-IF_METHOD = @IF_METHOD@
-IF_PROC = @IF_PROC@
-
-INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-IPFORWARD = @IPFORWARD@
-KERNEL_METHOD = @KERNEL_METHOD@
-LIBPAM = @LIBPAM@
-LIB_IPV6 = @LIB_IPV6@
-LIB_REGEX = @LIB_REGEX@
-MULTIPATH_NUM = @MULTIPATH_NUM@
-OSPF6D = @OSPF6D@
-OSPFD = @OSPFD@
-OTHER_METHOD = @OTHER_METHOD@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-RIPD = @RIPD@
-RIPNGD = @RIPNGD@
-RTREAD_METHOD = @RTREAD_METHOD@
-RT_METHOD = @RT_METHOD@
-STRIP = @STRIP@
-VERSION = @VERSION@
-VTYSH = @VTYSH@
-ZEBRA = @ZEBRA@
-am__include = @am__include@
-am__quote = @am__quote@
-install_sh = @install_sh@
-DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
-INSTALL_SDATA = @INSTALL@ -m 600
-
-noinst_LIBRARIES = libbgp.a
-sbin_PROGRAMS = bgpd
-
-libbgp_a_SOURCES = \
- bgpd.c bgp_fsm.c bgp_aspath.c bgp_community.c bgp_attr.c \
- bgp_debug.c bgp_route.c bgp_zebra.c bgp_open.c bgp_routemap.c \
- bgp_packet.c bgp_network.c bgp_filter.c bgp_regex.c bgp_clist.c \
- bgp_dump.c bgp_snmp.c bgp_ecommunity.c bgp_mplsvpn.c bgp_nexthop.c \
- bgp_damp.c bgp_table.c bgp_advertise.c bgp_vty.c
-
-
-noinst_HEADERS = \
- bgp_aspath.h bgp_attr.h bgp_community.h bgp_debug.h bgp_fsm.h \
- bgp_network.h bgp_open.h bgp_packet.h bgp_regex.h bgp_route.h \
- bgpd.h bgp_filter.h bgp_clist.h bgp_dump.h bgp_zebra.h \
- bgp_ecommunity.h bgp_mplsvpn.h bgp_nexthop.h bgp_damp.h bgp_table.h \
- bgp_advertise.h bgp_snmp.h bgp_vty.h
-
-
-bgpd_SOURCES = \
- bgp_main.c $(libbgp_a_SOURCES)
-
-
-bgpd_LDADD = ../lib/libzebra.a
-
-sysconf_DATA = bgpd.conf.sample bgpd.conf.sample2
-
-EXTRA_DIST = $(sysconf_DATA) BGP4-MIB.txt
-subdir = bgpd
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-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__objects_1 = 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)
-am_bgpd_OBJECTS = bgp_main.$(OBJEXT) $(am__objects_1)
-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@
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/bgp_advertise.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/bgp_aspath.Po ./$(DEPDIR)/bgp_attr.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/bgp_clist.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/bgp_community.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/bgp_damp.Po ./$(DEPDIR)/bgp_debug.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/bgp_dump.Po \
-@AMDEP_TRUE@ ./$(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 \
-@AMDEP_TRUE@ ./$(DEPDIR)/bgp_nexthop.Po ./$(DEPDIR)/bgp_open.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/bgp_packet.Po ./$(DEPDIR)/bgp_regex.Po \
-@AMDEP_TRUE@ ./$(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) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-CFLAGS = @CFLAGS@
-DIST_SOURCES = $(libbgp_a_SOURCES) $(bgpd_SOURCES)
-DATA = $(sysconf_DATA)
-
-HEADERS = $(noinst_HEADERS)
-
-DIST_COMMON = $(noinst_HEADERS) ChangeLog Makefile.am Makefile.in
-SOURCES = $(libbgp_a_SOURCES) $(bgpd_SOURCES)
-
-all: all-am
-
-.SUFFIXES:
-.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) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libbgp.a: $(libbgp_a_OBJECTS) $(libbgp_a_DEPENDENCIES)
- -rm -f libbgp.a
- $(libbgp_a_AR) libbgp.a $(libbgp_a_OBJECTS) $(libbgp_a_LIBADD)
- $(RANLIB) libbgp.a
-sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-install-sbinPROGRAMS: $(sbin_PROGRAMS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(sbindir)
- @list='$(sbin_PROGRAMS)'; for p in $$list; do \
- p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
- if test -f $$p \
- ; then \
- f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) $$p $(DESTDIR)$(sbindir)/$$f"; \
- $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) $$p $(DESTDIR)$(sbindir)/$$f; \
- else :; fi; \
- done
-
-uninstall-sbinPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(sbin_PROGRAMS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
- rm -f $(DESTDIR)$(sbindir)/$$f; \
- done
-
-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:
-sysconfDATA_INSTALL = $(INSTALL_DATA)
-
-uninstall-sysconfDATA:
- @$(NORMAL_UNINSTALL)
- @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
-
-ETAGS = etags
-ETAGSFLAGS =
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(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; }'`; \
- mkid -fID $$unique
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(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)$$tags$$unique" \
- || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
-
-distdir: $(DISTFILES)
- @list='$(DISTFILES)'; for file in $$list; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
-
-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
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-noinstLIBRARIES clean-sbinPROGRAMS \
- mostlyclean-am
-
-distclean: distclean-am
-
-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
-
-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)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(sysconfdir)
- @list='$(sysconf_DATA)'; for p in $$list; do \
- if test -f $(srcdir)/$$p; then \
- echo " $(INSTALL_SDATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p"; \
- $(INSTALL_SDATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p; \
- else if test -f $$p; then \
- echo " $(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p"; \
- $(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/bgpd/bgp_advertise.h b/bgpd/bgp_advertise.h
index 798cf0fd..e2ae0104 100644
--- a/bgpd/bgp_advertise.h
+++ b/bgpd/bgp_advertise.h
@@ -99,6 +99,39 @@ struct bgp_synchronize
struct bgp_advertise_fifo withdraw_low;
};
+/* FIFO -- first in first out structure and macros. */
+struct fifo
+{
+ struct fifo *next;
+ struct fifo *prev;
+};
+
+#define FIFO_INIT(F) \
+ do { \
+ struct fifo *Xfifo = (struct fifo *)(F); \
+ Xfifo->next = Xfifo->prev = Xfifo; \
+ } while (0)
+
+#define FIFO_ADD(F,N) \
+ do { \
+ struct fifo *Xfifo = (struct fifo *)(F); \
+ struct fifo *Xnode = (struct fifo *)(N); \
+ Xnode->next = Xfifo; \
+ Xnode->prev = Xfifo->prev; \
+ Xfifo->prev = Xfifo->prev->next = Xnode; \
+ } while (0)
+
+#define FIFO_DEL(N) \
+ do { \
+ struct fifo *Xnode = (struct fifo *)(N); \
+ Xnode->prev->next = Xnode->next; \
+ Xnode->next->prev = Xnode->prev; \
+ } while (0)
+
+#define FIFO_HEAD(F) \
+ ((((struct fifo *)(F))->next == (struct fifo *)(F)) \
+ ? NULL : (F)->next)
+
/* BGP adjacency linked list. */
#define BGP_INFO_ADD(N,A,TYPE) \
do { \
diff --git a/bgpd/bgp_aspath.c b/bgpd/bgp_aspath.c
index fc5efb19..d30ef4cc 100644
--- a/bgpd/bgp_aspath.c
+++ b/bgpd/bgp_aspath.c
@@ -1170,7 +1170,7 @@ aspath_show_all_iterator (struct hash_backet *backet, struct vty *vty)
as = (struct aspath *) backet->data;
- vty_out (vty, "[%p:%d] (%ld) ", backet, backet->key, as->refcnt);
+ vty_out (vty, "[%p:%u] (%ld) ", backet, backet->key, as->refcnt);
vty_out (vty, "%s%s", as->str, VTY_NEWLINE);
}
diff --git a/bgpd/bgp_clist.c b/bgpd/bgp_clist.c
index 2e03f48d..0b6a2e8c 100644
--- a/bgpd/bgp_clist.c
+++ b/bgpd/bgp_clist.c
@@ -269,7 +269,7 @@ community_list_delete (struct community_list *list)
community_list_free (list);
}
-int
+int
community_list_empty_p (struct community_list *list)
{
return (list->head == NULL && list->tail == NULL) ? 1 : 0;
@@ -364,26 +364,6 @@ community_regexp_match (struct community *com, regex_t *reg)
return 0;
}
-static int
-ecommunity_regexp_match (struct ecommunity *ecom, regex_t *reg)
-{
- char *str;
-
- /* When there is no communities attribute it is treated as empty
- string. */
- if (ecom == NULL || ecom->size == 0)
- str = "";
- else
- str = ecommunity_str (ecom);
-
- /* Regular expression match. */
- if (regexec (reg, str, 0, NULL, 0) == 0)
- return 1;
-
- /* No match. */
- return 0;
-}
-
/* Delete community attribute using regular expression match. Return
modified communites attribute. */
static struct community *
@@ -461,30 +441,6 @@ community_list_match (struct community *com, struct community_list *list)
return 0;
}
-int
-ecommunity_list_match (struct ecommunity *ecom, struct community_list *list)
-{
- struct community_entry *entry;
-
- for (entry = list->head; entry; entry = entry->next)
- {
- if (entry->any)
- return entry->direct == COMMUNITY_PERMIT ? 1 : 0;
-
- if (entry->style == EXTCOMMUNITY_LIST_STANDARD)
- {
- if (ecommunity_match (ecom, entry->u.ecom))
- return entry->direct == COMMUNITY_PERMIT ? 1 : 0;
- }
- else if (entry->style == EXTCOMMUNITY_LIST_EXPANDED)
- {
- if (ecommunity_regexp_match (ecom, entry->reg))
- return entry->direct == COMMUNITY_PERMIT ? 1 : 0;
- }
- }
- return 0;
-}
-
/* Perform exact matching. In case of expanded community-list, do
same thing as community_list_match(). */
int
@@ -514,7 +470,7 @@ community_list_exact_match (struct community *com, struct community_list *list)
return 0;
}
-/* Delete all permitted communities in the list from com. */
+/* Delete all permitted communities in the list from com1 */
struct community *
community_list_match_delete (struct community *com,
struct community_list *list)
diff --git a/bgpd/bgp_clist.h b/bgpd/bgp_clist.h
index 50b43ab4..ffc707c2 100644
--- a/bgpd/bgp_clist.h
+++ b/bgpd/bgp_clist.h
@@ -137,7 +137,6 @@ struct community_list *
community_list_lookup (struct community_list_handler *, char *, int);
int community_list_match (struct community *, struct community_list *);
-int ecommunity_list_match (struct ecommunity *, struct community_list *);
int community_list_exact_match (struct community *, struct community_list *);
struct community *
community_list_match_delete (struct community *,
diff --git a/bgpd/bgp_dump.c b/bgpd/bgp_dump.c
index fca51edc..8ee367be 100644
--- a/bgpd/bgp_dump.c
+++ b/bgpd/bgp_dump.c
@@ -130,8 +130,13 @@ bgp_dump_interval_add (struct bgp_dump *bgp_dump, int interval)
{
int bgp_dump_interval_func (struct thread *);
- bgp_dump->t_interval = thread_add_timer (master, bgp_dump_interval_func,
- bgp_dump, interval);
+ if (interval > 0 )
+ bgp_dump->t_interval = thread_add_timer (master, bgp_dump_interval_func,
+ bgp_dump, interval);
+ else
+ bgp_dump->t_interval = thread_add_event (master, bgp_dump_interval_func,
+ bgp_dump, 0);
+
return 0;
}
@@ -296,7 +301,6 @@ int
bgp_dump_interval_func (struct thread *t)
{
struct bgp_dump *bgp_dump;
-
bgp_dump = THREAD_ARG (t);
bgp_dump->t_interval = NULL;
@@ -310,8 +314,11 @@ bgp_dump_interval_func (struct thread *t)
bgp_dump_routes_func (AFI_IP6);
}
- bgp_dump_interval_add (bgp_dump, bgp_dump->interval);
-
+ /* if interval is set reschedule */
+ if (bgp_dump->interval > 0)
+ bgp_dump_interval_add (bgp_dump, bgp_dump->interval);
+
+
return 0;
}
@@ -475,10 +482,11 @@ int
bgp_dump_set (struct vty *vty, struct bgp_dump *bgp_dump, int type,
char *path, char *interval_str)
{
+ unsigned int interval;
+
if (interval_str)
{
- unsigned int interval;
-
+
/* Check interval string. */
interval = bgp_dump_parse_time (interval_str);
if (interval == 0)
@@ -491,10 +499,15 @@ bgp_dump_set (struct vty *vty, struct bgp_dump *bgp_dump, int type,
if (bgp_dump->interval_str)
free (bgp_dump->interval_str);
bgp_dump->interval_str = strdup (interval_str);
-
- /* Create interval thread. */
- bgp_dump_interval_add (bgp_dump, interval);
+
}
+ else
+ {
+ interval = 0;
+ }
+
+ /* Create interval thread. */
+ bgp_dump_interval_add (bgp_dump, interval);
/* Set type. */
bgp_dump->type = type;
diff --git a/bgpd/bgp_ecommunity.c b/bgpd/bgp_ecommunity.c
index aa0f1176..2f9cc945 100644
--- a/bgpd/bgp_ecommunity.c
+++ b/bgpd/bgp_ecommunity.c
@@ -158,15 +158,6 @@ ecommunity_dup (struct ecommunity *ecom)
return new;
}
-/* Retrun string representation of communities attribute. */
-char *
-ecommunity_str (struct ecommunity *ecom)
-{
- if (! ecom->str)
- ecom->str = ecommunity_ecom2str (ecom, ECOMMUNITY_FORMAT_DISPLAY);
- return ecom->str;
-}
-
/* Merge two Extended Communities Attribute structure. */
struct ecommunity *
ecommunity_merge (struct ecommunity *ecom1, struct ecommunity *ecom2)
@@ -648,33 +639,3 @@ ecommunity_ecom2str (struct ecommunity *ecom, int format)
}
return str_buf;
}
-
-int
-ecommunity_match (struct ecommunity *ecom1, struct ecommunity *ecom2)
-{
- int i = 0;
- int j = 0;
-
- if (ecom1 == NULL && ecom2 == NULL)
- return 1;
-
- if (ecom1 == NULL || ecom2 == NULL)
- return 0;
-
- if (ecom1->size < ecom2->size)
- return 0;
-
- /* Every community on com2 needs to be on com1 for this to match */
- while (i < ecom1->size && j < ecom2->size)
- {
- if (memcmp (ecom1->val + i, ecom2->val + j, ECOMMUNITY_SIZE) == 0)
- j++;
- i++;
- }
-
- if (j == ecom2->size)
- return 1;
- else
- return 0;
-}
-
diff --git a/bgpd/bgp_ecommunity.h b/bgpd/bgp_ecommunity.h
index 7bc59a69..678d1308 100644
--- a/bgpd/bgp_ecommunity.h
+++ b/bgpd/bgp_ecommunity.h
@@ -70,5 +70,3 @@ void ecommunity_unintern (struct ecommunity *);
unsigned int ecommunity_hash_make (struct ecommunity *);
struct ecommunity *ecommunity_str2com (char *, int, int);
char *ecommunity_ecom2str (struct ecommunity *, int);
-int ecommunity_match (struct ecommunity *, struct ecommunity *);
-char *ecommunity_str (struct ecommunity *);
diff --git a/bgpd/bgp_main.c b/bgpd/bgp_main.c
index 3e1d80f6..70377914 100644
--- a/bgpd/bgp_main.c
+++ b/bgpd/bgp_main.c
@@ -29,7 +29,6 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
#include "memory.h"
#include "prefix.h"
#include "log.h"
-#include "privs.h"
#include "bgpd/bgpd.h"
#include "bgpd/bgp_attr.h"
@@ -46,7 +45,6 @@ struct option longopts[] =
{ "vty_port", required_argument, NULL, 'P'},
{ "retain", no_argument, NULL, 'r'},
{ "no_kernel", no_argument, NULL, 'n'},
- { "user", required_argument, NULL, 'u'},
{ "version", no_argument, NULL, 'v'},
{ "help", no_argument, NULL, 'h'},
{ 0 }
@@ -72,23 +70,6 @@ char *pid_file = PATH_BGPD_PID;
int vty_port = BGP_VTY_PORT;
char *vty_addr = NULL;
-/* privileges */
-zebra_capabilities_t _caps_p [] =
-{
- ZCAP_BIND,
-};
-
-struct zebra_privs_t bgpd_privs =
-{
-#if defined(ZEBRA_USER) && defined(ZEBRA_GROUP)
- .user = ZEBRA_USER,
- .group = ZEBRA_GROUP,
-#endif
- .caps_p = _caps_p,
- .cap_num_p = sizeof(_caps_p)/sizeof(_caps_p[0]),
- .cap_num_i = 0,
-};
-
/* Help information display. */
static void
usage (char *progname, int status)
@@ -108,7 +89,6 @@ redistribution between different routing protocols.\n\n\
-P, --vty_port Set vty's port number\n\
-r, --retain When program terminates, retain added route by bgpd.\n\
-n, --no_kernel Do not install route to kernel.\n\
--u, --user User and group to run as\n\
-v, --version Print program version\n\
-h, --help Display this help and exit\n\
\n\
@@ -217,7 +197,7 @@ main (int argc, char **argv)
/* Command line argument treatment. */
while (1)
{
- opt = getopt_long (argc, argv, "df:hp:A:P:rnu:v", longopts, 0);
+ opt = getopt_long (argc, argv, "df:hp:A:P:rnv", longopts, 0);
if (opt == EOF)
break;
@@ -258,9 +238,6 @@ main (int argc, char **argv)
case 'n':
bgp_option_set (BGP_OPT_NO_FIB);
break;
- case 'u':
- bgpd_privs.user = bgpd_privs.group = optarg;
- break;
case 'v':
print_version (progname);
exit (0);
@@ -280,7 +257,6 @@ main (int argc, char **argv)
/* Initializations. */
srand (time (NULL));
signal_init ();
- zprivs_init (&bgpd_privs);
cmd_init (1);
vty_init ();
memory_init ();
diff --git a/bgpd/bgp_network.c b/bgpd/bgp_network.c
index 019b78b7..40e9cdb3 100644
--- a/bgpd/bgp_network.c
+++ b/bgpd/bgp_network.c
@@ -27,16 +27,12 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
#include "if.h"
#include "prefix.h"
#include "command.h"
-#include "privs.h"
#include "bgpd/bgpd.h"
#include "bgpd/bgp_fsm.h"
#include "bgpd/bgp_attr.h"
#include "bgpd/bgp_debug.h"
#include "bgpd/bgp_network.h"
-
-extern struct zebra_privs_t bgpd_privs;
-
/* Accept bgp connection. */
static int
@@ -157,16 +153,9 @@ bgp_bind_address (int sock, struct in_addr *addr)
#endif /* HAVE_SIN_LEN */
memcpy (&local.sin_addr, addr, sizeof (struct in_addr));
- if ( bgpd_privs.change (ZPRIVS_RAISE) )
- zlog_err ("bgp_bind_address: could not raise privs");
-
ret = bind (sock, (struct sockaddr *)&local, sizeof (struct sockaddr_in));
if (ret < 0)
;
-
- if (bgpd_privs.change (ZPRIVS_LOWER) )
- zlog_err ("bgp_bind_address: could not lower privs");
-
return 0;
}
@@ -317,9 +306,6 @@ bgp_socket (struct bgp *bgp, unsigned short port)
sockopt_reuseaddr (sock);
sockopt_reuseport (sock);
-
- if (bgpd_privs.change (ZPRIVS_RAISE) )
- zlog_err ("bgp_socket: could not raise privs");
ret = bind (sock, ainfo->ai_addr, ainfo->ai_addrlen);
if (ret < 0)
@@ -328,10 +314,6 @@ bgp_socket (struct bgp *bgp, unsigned short port)
close (sock);
continue;
}
-
- if (bgpd_privs.change (ZPRIVS_LOWER) )
- zlog_err ("bgp_bind_address: could not lower privs");
-
ret = listen (sock, 3);
if (ret < 0)
{
@@ -377,9 +359,6 @@ bgp_socket (struct bgp *bgp, unsigned short port)
sin.sin_len = socklen;
#endif /* HAVE_SIN_LEN */
- if ( bgpd_privs.change (ZPRIVS_RAISE) )
- zlog_err ("bgp_socket: could not raise privs");
-
ret = bind (sock, (struct sockaddr *) &sin, socklen);
if (ret < 0)
{
@@ -387,10 +366,6 @@ bgp_socket (struct bgp *bgp, unsigned short port)
close (sock);
return ret;
}
-
- if (bgpd_privs.change (ZPRIVS_LOWER) )
- zlog_err ("bgp_socket: could not lower privs");
-
ret = listen (sock, 3);
if (ret < 0)
{
diff --git a/bgpd/bgp_nexthop.c b/bgpd/bgp_nexthop.c
index 3b91373b..77b024e5 100644
--- a/bgpd/bgp_nexthop.c
+++ b/bgpd/bgp_nexthop.c
@@ -663,7 +663,7 @@ bgp_connected_add (struct connected *ifc)
p.family = AF_INET;
p.prefixlen = addr->prefixlen;
- if (if_is_pointopoint (ifp))
+ if (ifc_pointopoint (ifc))
p.u.prefix4 = dest->u.prefix4;
else
p.u.prefix4 = addr->u.prefix4;
@@ -694,7 +694,7 @@ bgp_connected_add (struct connected *ifc)
p.family = AF_INET6;
p.prefixlen = addr->prefixlen;
- if (if_is_pointopoint (ifp))
+ if (ifc_pointopoint (ifc))
p.u.prefix6 = dest->u.prefix6;
else
p.u.prefix6 = addr->u.prefix6;
@@ -748,7 +748,7 @@ bgp_connected_delete (struct connected *ifc)
p.family = AF_INET;
p.prefixlen = addr->prefixlen;
- if (if_is_pointopoint (ifp))
+ if (ifc_pointopoint (ifc))
p.u.prefix4 = dest->u.prefix4;
else
p.u.prefix4 = addr->u.prefix4;
@@ -779,7 +779,7 @@ bgp_connected_delete (struct connected *ifc)
p.family = AF_INET6;
p.prefixlen = addr->prefixlen;
- if (if_is_pointopoint (ifp))
+ if (ifc_pointopoint (ifc))
p.u.prefix6 = dest->u.prefix6;
else
p.u.prefix6 = addr->u.prefix6;
diff --git a/bgpd/bgp_packet.c b/bgpd/bgp_packet.c
index e33137bc..48879f35 100644
--- a/bgpd/bgp_packet.c
+++ b/bgpd/bgp_packet.c
@@ -238,6 +238,7 @@ bgp_update_packet (struct peer *peer, afi_t afi, safi_t safi)
bgp_packet_set_size (s);
packet = bgp_packet_dup (s);
bgp_packet_add (peer, packet);
+ BGP_WRITE_ON (peer->t_write, bgp_write, peer->fd);
stream_reset (s);
return packet;
}
diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c
index aab85eb3..87d305cb 100644
--- a/bgpd/bgp_route.c
+++ b/bgpd/bgp_route.c
@@ -620,10 +620,7 @@ bgp_announce_check (struct bgp_info *ri, struct peer *peer, struct prefix *p,
if (transparent || reflect
|| (CHECK_FLAG (peer->af_flags[afi][safi], PEER_FLAG_NEXTHOP_UNCHANGED)
&& ((p->family == AF_INET && attr->nexthop.s_addr)
-#ifdef HAVE_IPV6
- || (p->family == AF_INET6 && ri->peer != bgp->peer_self)
-#endif /* HAVE_IPV6 */
- )))
+ || (p->family == AF_INET6 && ri->peer != bgp->peer_self))))
{
/* NEXT-HOP Unchanged. */
}
@@ -1780,7 +1777,6 @@ bgp_static_update (struct bgp *bgp, struct prefix *p,
struct bgp_info *new;
struct bgp_info info;
struct attr attr;
- struct attr attr_tmp;
struct attr *attr_new;
int ret;
@@ -1797,26 +1793,23 @@ bgp_static_update (struct bgp *bgp, struct prefix *p,
/* Apply route-map. */
if (bgp_static->rmap.name)
{
- attr_tmp = attr;
info.peer = bgp->peer_self;
- info.attr = &attr_tmp;
+ info.attr = &attr;
ret = route_map_apply (bgp_static->rmap.map, p, RMAP_BGP, &info);
-
if (ret == RMAP_DENYMATCH)
{
/* Free uninterned attribute. */
- bgp_attr_flush (&attr_tmp);
+ bgp_attr_flush (&attr);
/* Unintern original. */
aspath_unintern (attr.aspath);
bgp_static_withdraw (bgp, p, afi, safi);
return;
}
- attr_new = bgp_attr_intern (&attr_tmp);
}
- else
- attr_new = bgp_attr_intern (&attr);
+
+ attr_new = bgp_attr_intern (&attr);
for (ri = rn->info; ri; ri = ri->next)
if (ri->peer == bgp->peer_self && ri->type == ZEBRA_ROUTE_BGP
@@ -2866,7 +2859,7 @@ bgp_aggregate_increment (struct bgp *bgp, struct prefix *p,
if ((aggregate = rn->info) != NULL && rn->p.prefixlen < p->prefixlen)
{
bgp_aggregate_delete (bgp, &rn->p, afi, safi, aggregate);
- bgp_aggregate_route (bgp, &rn->p, ri, afi, safi, NULL, aggregate);
+ bgp_aggregate_route (bgp, &rn->p, ri, safi, safi, NULL, aggregate);
}
bgp_unlock_node (child);
}
@@ -2893,7 +2886,7 @@ bgp_aggregate_decrement (struct bgp *bgp, struct prefix *p,
if ((aggregate = rn->info) != NULL && rn->p.prefixlen < p->prefixlen)
{
bgp_aggregate_delete (bgp, &rn->p, afi, safi, aggregate);
- bgp_aggregate_route (bgp, &rn->p, NULL, afi, safi, del, aggregate);
+ bgp_aggregate_route (bgp, &rn->p, NULL, safi, safi, del, aggregate);
}
bgp_unlock_node (child);
}
diff --git a/bgpd/bgp_routemap.c b/bgpd/bgp_routemap.c
index b5494d52..5cfb5c8c 100644
--- a/bgpd/bgp_routemap.c
+++ b/bgpd/bgp_routemap.c
@@ -2413,15 +2413,21 @@ ALIAS (no_set_ip_nexthop,
DEFUN (set_metric,
set_metric_cmd,
- "set metric (<0-4294967295>|<+/-metric>)",
+ "set metric <0-4294967295>",
SET_STR
"Metric value for destination routing protocol\n"
- "Metric value\n"
- "Add or subtract metric\n")
+ "Metric value\n")
{
return bgp_route_set_add (vty, vty->index, "metric", argv[0]);
}
+ALIAS (set_metric,
+ set_metric_addsub_cmd,
+ "set metric <+/-metric>",
+ SET_STR
+ "Metric value for destination routing protocol\n"
+ "Add or subtract BGP metric\n")
+
DEFUN (no_set_metric,
no_set_metric_cmd,
"no set metric",
@@ -3232,6 +3238,7 @@ bgp_route_map_init ()
install_element (RMAP_NODE, &no_set_weight_cmd);
install_element (RMAP_NODE, &no_set_weight_val_cmd);
install_element (RMAP_NODE, &set_metric_cmd);
+ install_element (RMAP_NODE, &set_metric_addsub_cmd);
install_element (RMAP_NODE, &no_set_metric_cmd);
install_element (RMAP_NODE, &no_set_metric_val_cmd);
install_element (RMAP_NODE, &set_aspath_prepend_cmd);
diff --git a/bgpd/bgp_snmp.c b/bgpd/bgp_snmp.c
index 6a33bae6..598fc3cd 100644
--- a/bgpd/bgp_snmp.c
+++ b/bgpd/bgp_snmp.c
@@ -21,6 +21,9 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
#include <zebra.h>
#ifdef HAVE_SNMP
+#ifdef HAVE_NETSNMP
+#include <net-snmp/net-snmp-config.h>
+#endif
#include <asn1.h>
#include <snmp.h>
#include <snmp_impl.h>
diff --git a/bgpd/bgp_zebra.c b/bgpd/bgp_zebra.c
index 3e5cdd2a..aef888be 100644
--- a/bgpd/bgp_zebra.c
+++ b/bgpd/bgp_zebra.c
@@ -208,7 +208,7 @@ bgp_interface_address_add (int command, struct zclient *zclient,
bgp_if_update (ifc->ifp);
- if (if_is_up (ifc->ifp))
+ if (if_is_operative (ifc->ifp))
bgp_connected_add (ifc);
return 0;
@@ -227,7 +227,7 @@ bgp_interface_address_delete (int command, struct zclient *zclient,
bgp_if_update (ifc->ifp);
- if (if_is_up (ifc->ifp))
+ if (if_is_operative (ifc->ifp))
bgp_connected_delete (ifc);
connected_free (ifc);
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c
index bd00c965..f116a0cf 100644
--- a/bgpd/bgpd.c
+++ b/bgpd/bgpd.c
@@ -797,13 +797,6 @@ peer_as_change (struct peer *peer, as_t as)
type = peer_sort (peer);
peer->as = as;
- if (bgp_config_check (peer->bgp, BGP_CONFIG_CONFEDERATION)
- && ! bgp_confederation_peers_check (peer->bgp, as)
- && peer->bgp->as != as)
- peer->local_as = peer->bgp->confed_id;
- else
- peer->local_as = peer->bgp->as;
-
/* Advertisement-interval reset */
if (peer_sort (peer) == BGP_PEER_IBGP)
peer->v_routeadv = BGP_DEFAULT_IBGP_ROUTEADV;
@@ -1641,15 +1634,6 @@ bgp_create (as_t *as, char *name)
return bgp;
}
-/* Return master of BGP. */
-struct bgp_master *
-bgp_get_master ()
-{
- if (bm)
- return bm;
- return NULL;
-}
-
/* Return first entry of BGP. */
struct bgp *
bgp_get_default ()
diff --git a/bgpd/bgpd.h b/bgpd/bgpd.h
index c9a263bd..933516d0 100644
--- a/bgpd/bgpd.h
+++ b/bgpd/bgpd.h
@@ -611,7 +611,6 @@ struct bgp_nlri
/* Default configuration settings for bgpd. */
#define BGP_VTY_PORT 2605
-#define BGP_VTYSH_PATH "/tmp/.bgpd"
#define BGP_DEFAULT_CONFIG "bgpd.conf"
/* Check AS path loop when we send NLRI. */
diff --git a/config.h.in b/config.h.in
deleted file mode 100644
index da6f5300..00000000
--- a/config.h.in
+++ /dev/null
@@ -1,339 +0,0 @@
-/* config.h.in. Generated from configure.ac by autoheader. */
-
-/* BSDI */
-#undef BSDI_NRL
-
-/* Disable BGP installation to zebra */
-#undef DISABLE_BGP_ANNOUNCE
-
-/* FreeBSD 3.2 */
-#undef FREEBSD_32
-
-/* GNU Linux */
-#undef GNU_LINUX
-
-/* Define to 1 if you have the <asm/types.h> header file. */
-#undef HAVE_ASM_TYPES_H
-
-/* Define to 1 if you have the `bcopy' function. */
-#undef HAVE_BCOPY
-
-/* Broken Alias */
-#undef HAVE_BROKEN_ALIASES
-
-/* Define to 1 if you have the `bzero' function. */
-#undef HAVE_BZERO
-
-/* Define to 1 if you have the `daemon' function. */
-#undef HAVE_DAEMON
-
-/* Define to 1 if you have the `getaddrinfo' function. */
-#undef HAVE_GETADDRINFO
-
-/* Define to 1 if you have the `getifaddrs' function. */
-#undef HAVE_GETIFADDRS
-
-/* GNU regexp library */
-#undef HAVE_GNU_REGEX
-
-/* ifaliasreq */
-#undef HAVE_IFALIASREQ
-
-/* Define to 1 if you have the `if_indextoname' function. */
-#undef HAVE_IF_INDEXTONAME
-
-/* Define to 1 if you have the `if_nametoindex' function. */
-#undef HAVE_IF_NAMETOINDEX
-
-/* in6_aliasreq */
-#undef HAVE_IN6_ALIASREQ
-
-/* Define to 1 if you have the `inet_aton' function. */
-#undef HAVE_INET_ATON
-
-/* Define to 1 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
-
-/* in_pktinfo */
-#undef HAVE_INPKTINFO
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* IPv6 */
-#undef HAVE_IPV6
-
-/* Define to 1 if you have the <kvm.h> header file. */
-#undef HAVE_KVM_H
-
-/* Define to 1 if you have the `crypt' library (-lcrypt). */
-#undef HAVE_LIBCRYPT
-
-/* Define to 1 if you have the `kvm' library (-lkvm). */
-#undef HAVE_LIBKVM
-
-/* Define to 1 if you have the `m' library (-lm). */
-#undef HAVE_LIBM
-
-/* Define to 1 if you have the `ncurses' library (-lncurses). */
-#undef HAVE_LIBNCURSES
-
-/* Define to 1 if you have the `nsl' library (-lnsl). */
-#undef HAVE_LIBNSL
-
-/* Define to 1 if you have the `readline' library (-lreadline). */
-#undef HAVE_LIBREADLINE
-
-/* Define to 1 if you have the `resolv' library (-lresolv). */
-#undef HAVE_LIBRESOLV
-
-/* Define to 1 if you have the `socket' library (-lsocket). */
-#undef HAVE_LIBSOCKET
-
-/* Define to 1 if you have the `tinfo' library (-ltinfo). */
-#undef HAVE_LIBTINFO
-
-/* Define to 1 if you have the <libutil.h> header file. */
-#undef HAVE_LIBUTIL_H
-
-/* Define to 1 if you have the `xnet' library (-lxnet). */
-#undef HAVE_LIBXNET
-
-/* Define to 1 if you have the <linux/version.h> header file. */
-#undef HAVE_LINUX_VERSION_H
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the <netdb.h> header file. */
-#undef HAVE_NETDB_H
-
-/* Define to 1 if you have the <netinet6/nd6.h> header file. */
-#undef HAVE_NETINET6_ND6_H
-
-/* Define to 1 if you have the <netinet/icmp6.h> header file. */
-#undef HAVE_NETINET_ICMP6_H
-
-/* Define to 1 if you have the <netinet/in6.h> header file. */
-#undef HAVE_NETINET_IN6_H
-
-/* Define to 1 if you have the <netinet/in6_var.h> header file. */
-#undef HAVE_NETINET_IN6_VAR_H
-
-/* Define to 1 if you have the <netinet/in.h> header file. */
-#undef HAVE_NETINET_IN_H
-
-/* Define to 1 if you have the <netinet/in_var.h> header file. */
-#undef HAVE_NETINET_IN_VAR_H
-
-/* netlink */
-#undef HAVE_NETLINK
-
-/* Define to 1 if you have the <net/if_dl.h> header file. */
-#undef HAVE_NET_IF_DL_H
-
-/* Define to 1 if you have the <net/if_var.h> header file. */
-#undef HAVE_NET_IF_VAR_H
-
-/* Define to 1 if you have the <net/netopt.h> header file. */
-#undef HAVE_NET_NETOPT_H
-
-/* NET_RT_IFLIST */
-#undef HAVE_NET_RT_IFLIST
-
-/* OSPF NSSA */
-#undef HAVE_NSSA
-
-/* OSPF Opaque LSA */
-#undef HAVE_OPAQUE_LSA
-
-/* OSPF TE */
-#undef HAVE_OSPF_TE
-
-/* /proc/net/dev */
-#undef HAVE_PROC_NET_DEV
-
-/* /proc/net/if_inet6 */
-#undef HAVE_PROC_NET_IF_INET6
-
-/* rt_addrinfo */
-#undef HAVE_RT_ADDRINFO
-
-/* rusage */
-#undef HAVE_RUSAGE
-
-/* sa_len */
-#undef HAVE_SA_LEN
-
-/* Define to 1 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 to 1 if you have the `snprintf' function. */
-#undef HAVE_SNPRINTF
-
-/* sockaddr_dl */
-#undef HAVE_SOCKADDR_DL
-
-/* socklen_t */
-#undef HAVE_SOCKLEN_T
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the `strerror' function. */
-#undef HAVE_STRERROR
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the `strlcat' function. */
-#undef HAVE_STRLCAT
-
-/* Define to 1 if you have the `strlcpy' function. */
-#undef HAVE_STRLCPY
-
-/* Define to 1 if you have the <stropts.h> header file. */
-#undef HAVE_STROPTS_H
-
-/* sun_len */
-#undef HAVE_SUN_LEN
-
-/* Define to 1 if you have the <sys/conf.h> header file. */
-#undef HAVE_SYS_CONF_H
-
-/* Define to 1 if you have the <sys/ksym.h> header file. */
-#undef HAVE_SYS_KSYM_H
-
-/* Define to 1 if you have the <sys/select.h> header file. */
-#undef HAVE_SYS_SELECT_H
-
-/* Define to 1 if you have the <sys/sockio.h> header file. */
-#undef HAVE_SYS_SOCKIO_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/sysctl.h> header file. */
-#undef HAVE_SYS_SYSCTL_H
-
-/* Define to 1 if you have the <sys/times.h> header file. */
-#undef HAVE_SYS_TIMES_H
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#undef HAVE_SYS_TIME_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Use TCP for zebra communication */
-#undef HAVE_TCP_ZEBRA
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to 1 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
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* bgpd PID */
-#undef PATH_BGPD_PID
-
-/* ospf6d PID */
-#undef PATH_OSPF6D_PID
-
-/* ospfd PID */
-#undef PATH_OSPFD_PID
-
-/* ripd PID */
-#undef PATH_RIPD_PID
-
-/* ripngd PID */
-#undef PATH_RIPNGD_PID
-
-/* zebra PID */
-#undef PATH_ZEBRA_PID
-
-/* Define as the return type of signal handlers (`int' or `void'). */
-#undef RETSIGTYPE
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* SunOS 5 */
-#undef SUNOS_5
-
-/* Use PAM for authentication */
-#undef USE_PAM
-
-/* Version number of package */
-#undef VERSION
-
-/* VTY shell */
-#undef VTYSH
-
-/* Define to 1 if your processor stores words with the most significant byte
- first (like Motorola and SPARC, unlike Intel and VAX). */
-#undef WORDS_BIGENDIAN
-
-/* Define to 1 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
deleted file mode 100755
index 9b60c8f4..00000000
--- a/configure
+++ /dev/null
@@ -1,8472 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.53.
-#
-# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-
-## --------------------- ##
-## 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
-
-# NLS nuisances.
-# Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-(set +x; test -n "`(LANG=C; export LANG) 2>&1`") &&
- { $as_unset LANG || test "${LANG+set}" != set; } ||
- { LANG=C; export LANG; }
-(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") &&
- { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } ||
- { LC_ALL=C; export LC_ALL; }
-(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") &&
- { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } ||
- { LC_TIME=C; export LC_TIME; }
-(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") &&
- { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } ||
- { LC_CTYPE=C; export LC_CTYPE; }
-(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") &&
- { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } ||
- { LANGUAGE=C; export LANGUAGE; }
-(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") &&
- { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } ||
- { LC_COLLATE=C; export LC_COLLATE; }
-(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") &&
- { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } ||
- { LC_NUMERIC=C; export LC_NUMERIC; }
-(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") &&
- { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } ||
- { LC_MESSAGES=C; export LC_MESSAGES; }
-
-
-# Name of the executable.
-as_me=`(basename "$0") 2>/dev/null ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)$' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
- /^X\/\(\/\/\)$/{ s//\1/; q; }
- /^X\/\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# 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
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conftest.sh
- echo "exit 0" >>conftest.sh
- chmod +x conftest.sh
- if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conftest.sh
-fi
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" || {
- # Find who we are. Look in the path if we contain no path at all
- # relative or not.
- case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
- ;;
- esac
- # We did not find ourselves, most probably we were run as `sh COMMAND'
- # in which case we are not to be found in the path.
- if test "x$as_myself" = x; then
- as_myself=$0
- fi
- if test ! -f "$as_myself"; then
- { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
- { (exit 1); exit 1; }; }
- fi
- case $CONFIG_SHELL in
- '')
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for as_base in sh bash ksh sh5; do
- case $as_dir in
- /*)
- if ("$as_dir/$as_base" -c '
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
- CONFIG_SHELL=$as_dir/$as_base
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
- fi;;
- esac
- done
-done
-;;
- esac
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line before each line; the second 'sed' does the real
- # work. The second script uses 'N' to pair each line-number line
- # with the numbered line, and appends trailing '-' during
- # substitution so that $LINENO is not a special case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
- sed '=' <$as_myself |
- sed '
- N
- s,$,-,
- : loop
- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
- t loop
- s,-$,,
- s,^['$as_cr_digits']*\n,,
- ' >$as_me.lineno &&
- chmod +x $as_me.lineno ||
- { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensible to this).
- . ./$as_me.lineno
- # Exit status is that of the last command.
- exit
-}
-
-
-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
-
-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"
-
-# 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"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
-
-
-# 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=$PATH_SEPARATOR; 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
-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}
-
-# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-
-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.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-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'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-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"
- ac_prev=
- continue
- fi
-
- ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_option in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- 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 ;;
-
- --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 ;;
-
- -disable-* | --disable-*)
- ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- 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=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- 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'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -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_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- 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 ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- 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 ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- 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-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-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- 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 ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- 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
- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
- *) ac_optarg=yes ;;
- esac
- eval "with_$ac_package='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- 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.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- 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-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 ;;
-
- -*) { 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 ;;
-
- *)
- # 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
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- { echo "$as_me: error: missing argument to $ac_option" >&2
- { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
-do
- eval ac_val=$`echo $ac_var`
- case $ac_val in
- [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# 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 directory name for --$ac_var: $ac_val" >&2
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-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_confdir=`(dirname "$0") 2>/dev/null ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$0" : 'X\(//\)[^/]' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$0" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
- { (exit 1); exit 1; }; }
- else
- { 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%'`
-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 cross-compile to 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 support (RFC2370)
- --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
- test -d $ac_dir || continue
- ac_builddir=.
-
-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
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
-
- cd $ac_dir
- # 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, 2002
-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.53. 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`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- echo "PATH: $as_dir"
-done
-
-} >&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 | -n ) continue ;;
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- continue ;;
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
- ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) 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 -f core core.* *.core &&
- rm -rf conftest* confdefs* 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
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-
-# 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
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- { echo "$as_me:$LINENO: 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
- # 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:$LINENO: 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 "$as_me:$LINENO: 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:$LINENO: 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:$LINENO: 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:$LINENO: 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:$LINENO: former value: $ac_old_val" >&5
-echo "$as_me: former value: $ac_old_val" >&2;}
- { echo "$as_me:$LINENO: 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.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
- ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { echo "$as_me:$LINENO: 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:$LINENO: 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
-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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-am__api_version="1.6"
-ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- 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 "$as_me:$LINENO: 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="$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
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# 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 "$as_me:$LINENO: 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 test "${ac_cv_path_install+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_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
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- done
- done
- ;;
-esac
-done
-
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- 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
- fi
-fi
-echo "$as_me:$LINENO: 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}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-echo "$as_me:$LINENO: 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 > 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 conftest.file 2> /dev/null`
- if test "$*" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftest.file`
- fi
- 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 "$as_me:$LINENO: 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" = conftest.file
- )
-then
- # Ok.
- :
-else
- { { echo "$as_me:$LINENO: 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
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-test "$program_prefix" != NONE &&
- 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"
-# 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
-
-
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-
-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=
- { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
-echo "$as_me: WARNING: \`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:$LINENO: 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
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AWK="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
- echo "$as_me:$LINENO: result: $AWK" >&5
-echo "${ECHO_T}$AWK" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$AWK" && break
-done
-
-echo "$as_me:$LINENO: 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}"'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-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 conftest.make
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- SET_MAKE=
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
- # test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" &&
- test -f $srcdir/config.status; then
- { { echo "$as_me:$LINENO: 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
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
-_ACEOF
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-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"}
-
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'. However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_STRIP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- echo "$as_me:$LINENO: result: $STRIP" >&5
-echo "${ECHO_T}$STRIP" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_STRIP="strip"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-echo "${ECHO_T}$ac_ct_STRIP" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- STRIP=$ac_ct_STRIP
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
-
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-
-
-
-# Add the stamp file to the list of files AC keeps track of,
-# along with our hook.
-ac_config_headers="$ac_config_headers config.h"
-
-
-
-
-# Make sure we can run config.sub.
-$ac_config_sub sun4 >/dev/null 2>&1 ||
- { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
-echo "$as_me: error: cannot run $ac_config_sub" >&2;}
- { (exit 1); exit 1; }; }
-
-echo "$as_me:$LINENO: 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:$LINENO: 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:$LINENO: 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:$LINENO: 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 "$as_me:$LINENO: 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:$LINENO: 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; }; }
-
-fi
-echo "$as_me:$LINENO: 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;
-if test "x$with_cflags" != "x" ; then
- CFLAGS="$with_cflags" ; cflags_specified=yes ;
-elif test -n "$CFLAGS" ; then
- cflags_specified=yes ;
-fi
-
-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:$LINENO: 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
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: 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:$LINENO: 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
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: 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
- 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:$LINENO: 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
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: 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:$LINENO: 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
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: 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:$LINENO: 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
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-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 $# != 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 "$as_dir/$ac_word" ${1+"$@"}
- shift
- ac_cv_prog_CC="$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-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:$LINENO: 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
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- 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:$LINENO: 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
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$ac_ct_CC" && break
-done
-
- CC=$ac_ct_CC
-fi
-
-fi
-
-
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH" >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH" >&2;}
- { (exit 1); exit 1; }; }
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
- "checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
- (eval $ac_compiler --version </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
- (eval $ac_compiler -v </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
- (eval $ac_compiler -V </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "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
-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:$LINENO: 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:$LINENO: \"$ac_link_default\"") >&5
- (eval $ac_link_default) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $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.
-
-# Be careful to initialize this variable, since it used to be cached.
-# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
-ac_cv_exeext=
-for ac_file in `ls a_out.exe 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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables" >&5
-echo "$as_me: error: C compiler cannot create executables" >&2;}
- { (exit 77); exit 77; }; }
-fi
-
-ac_exeext=$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6
-
-# Check the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: 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:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { echo "$as_me:$LINENO: 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:$LINENO: 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:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6
-
-echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $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
- { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link" >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest$ac_cv_exeext
-echo "$as_me:$LINENO: 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:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
-if test "${ac_cv_objext+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "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:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $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:$LINENO: error: cannot compute suffix of object files: cannot compile" >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-echo "$as_me:$LINENO: 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 $LINENO "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:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $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:$LINENO: 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:$LINENO: 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 $LINENO "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:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cc_g=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_prog_cc_g=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: 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
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- 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:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $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 $LINENO "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:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $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 $LINENO "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:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $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
-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_config_commands="$ac_config_commands depfiles"
-
-
-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:$LINENO: 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:$LINENO: result: $_am_result" >&5
-echo "${ECHO_T}$_am_result" >&6
-rm -f confinc confmf
-
-# 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
-
-
-
-
-depcc="$CC" am_compiler_list=
-
-echo "$as_me:$LINENO: 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:$LINENO: 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
-
-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:$LINENO: 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 test "${ac_cv_prog_CPP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # 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. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <assert.h>
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$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:$LINENO: \$? = $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 "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- # 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 $LINENO "configure"
-#include "confdefs.h"
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$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:$LINENO: \$? = $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:$LINENO: 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 $LINENO "configure"
-#include "confdefs.h"
-#include <assert.h>
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$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:$LINENO: \$? = $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 "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- # 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 $LINENO "configure"
-#include "confdefs.h"
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$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:$LINENO: \$? = $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 "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check" >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-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
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# 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 "$as_me:$LINENO: 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 test "${ac_cv_path_install+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_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
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- done
- done
- ;;
-esac
-done
-
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- 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
- fi
-fi
-echo "$as_me:$LINENO: 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}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-echo "$as_me:$LINENO: 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}"'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-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 conftest.make
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- SET_MAKE=
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-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 "$as_me:$LINENO: 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
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AR="${ac_tool_prefix}ar"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
- echo "$as_me:$LINENO: result: $AR" >&5
-echo "${ECHO_T}$AR" >&6
-else
- echo "$as_me:$LINENO: 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:$LINENO: 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
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_AR="ar"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
- echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
-echo "${ECHO_T}$ac_ct_AR" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- 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 "$as_me:$LINENO: 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
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; 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 "$as_me:$LINENO: 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 "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_RANLIB="ranlib"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- RANLIB=$ac_ct_RANLIB
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-
-
-
-
-echo "$as_me:$LINENO: checking for AIX" >&5
-echo $ECHO_N "checking for AIX... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#ifdef _AIX
- yes
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "yes" >/dev/null 2>&1; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-cat >>confdefs.h <<\_ACEOF
-#define _ALL_SOURCE 1
-_ACEOF
-
-else
- echo "$as_me:$LINENO: 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;
-# Check whether --enable-ipv6 or --disable-ipv6 was given.
-if test "${enable_ipv6+set}" = set; then
- enableval="$enable_ipv6"
-
-fi;
-# Check whether --enable-zebra or --disable-zebra was given.
-if test "${enable_zebra+set}" = set; then
- enableval="$enable_zebra"
-
-fi;
-# Check whether --enable-bgpd or --disable-bgpd was given.
-if test "${enable_bgpd+set}" = set; then
- enableval="$enable_bgpd"
-
-fi;
-# Check whether --enable-ripd or --disable-ripd was given.
-if test "${enable_ripd+set}" = set; then
- enableval="$enable_ripd"
-
-fi;
-# Check whether --enable-ripngd or --disable-ripngd was given.
-if test "${enable_ripngd+set}" = set; then
- enableval="$enable_ripngd"
-
-fi;
-# Check whether --enable-ospfd or --disable-ospfd was given.
-if test "${enable_ospfd+set}" = set; then
- enableval="$enable_ospfd"
-
-fi;
-# Check whether --enable-ospf6d or --disable-ospf6d was given.
-if test "${enable_ospf6d+set}" = set; then
- enableval="$enable_ospf6d"
-
-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;
-# Check whether --enable-netlink or --disable-netlink was given.
-if test "${enable_netlink+set}" = set; then
- enableval="$enable_netlink"
-
-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;
-# Check whether --enable-snmp or --disable-snmp was given.
-if test "${enable_snmp+set}" = set; then
- enableval="$enable_snmp"
-
-fi;
-
-# Check whether --with-libpam or --without-libpam was given.
-if test "${with_libpam+set}" = set; then
- withval="$with_libpam"
-
-fi;
-# Check whether --enable-tcpsock or --disable-tcpsock was given.
-if test "${enable_tcpsock+set}" = set; then
- enableval="$enable_tcpsock"
-
-fi;
-# Check whether --enable-nssa or --disable-nssa was given.
-if test "${enable_nssa+set}" = set; then
- enableval="$enable_nssa"
-
-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;
-# Check whether --enable-ospf-te or --disable-ospf-te was given.
-if test "${enable_ospf_te+set}" = set; then
- enableval="$enable_ospf_te"
-
-fi;
-# Check whether --enable-multipath or --disable-multipath was given.
-if test "${enable_multipath+set}" = set; then
- enableval="$enable_multipath"
-
-fi;
-
-
-if test "${enable_broken_aliases}" = "yes"; then
- if test "${enable_netlink}" = "yes"
- then
- echo "Sorry, you can't use netlink with broken aliases"
- exit 1
- fi
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_BROKEN_ALIASES
-_ACEOF
-
- enable_netlink=no
-fi
-
-if test "${enable_tcp_zebra}" = "yes"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_TCP_ZEBRA
-_ACEOF
-
-fi
-
-if test "${enable_nssa}" = "yes"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_NSSA
-_ACEOF
-
-fi
-
-if test "${enable_opaque_lsa}" = "yes"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_OPAQUE_LSA
-_ACEOF
-
-fi
-
-if test "${enable_ospf_te}" = "yes"; then
-
-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
- [0-9]|[1-9][0-9])
- MULTIPATH_NUM="${enable_multipath}"
- ;;
- "")
- ;;
- *)
- echo "Please specify digit to --enable-multipath ARG."
- exit 1
- ;;
-esac
-
-
-
-
-echo "$as_me:$LINENO: 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 <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$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:$LINENO: \$? = $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 "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_header_stdc=no
-fi
-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 <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "memchr" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-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 <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "free" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-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
- :
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <ctype.h>
-#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
-
-#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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-fi
-echo "$as_me:$LINENO: 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 <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
-
-fi
-
-# 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
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:$LINENO: 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 <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_Header=no"
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: 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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-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:$LINENO: 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:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $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:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$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:$LINENO: \$? = $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:$LINENO: 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:$LINENO: 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:$LINENO: 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:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: 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:$LINENO: 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:$LINENO: 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:$LINENO: 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 $LINENO "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:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $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:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
- *)
- echo "$as_me:$LINENO: 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:$LINENO: 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 $LINENO "configure"
-#include "confdefs.h"
-
-#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;
-
- *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
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_c_const=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_c_const=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: 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 <<\_ACEOF
-#define const
-_ACEOF
-
-fi
-
-echo "$as_me:$LINENO: 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 <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <signal.h>
-#ifdef signal
-# undef signal
-#endif
-#ifdef __cplusplus
-extern "C" void (*signal (int, void (*)(int)))(int);
-#else
-void (*signal ()) ();
-#endif
-
-#ifdef F77_DUMMY_MAIN
-# ifdef __cplusplus
- extern "C"
-# endif
- int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-int i;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_type_signal=void
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_type_signal=int
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5
-echo "${ECHO_T}$ac_cv_type_signal" >&6
-
-cat >>confdefs.h <<_ACEOF
-#define RETSIGTYPE $ac_cv_type_signal
-_ACEOF
-
-
-
-case "$host" in
- *-sunos5.6* | *-solaris2.6*)
- opsys=sol2-6
-
-cat >>confdefs.h <<\_ACEOF
-#define SUNOS_5
-_ACEOF
-
-
-echo "$as_me:$LINENO: 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_check_lib_save_LIBS=$LIBS
-LIBS="-lxnet $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_xnet_main=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_xnet_main=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: 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"
-
-fi
-
- CURSES=-lcurses
- ;;
- *-sunos5* | *-solaris2*)
-
-cat >>confdefs.h <<\_ACEOF
-#define SUNOS_5
-_ACEOF
-
-
-echo "$as_me:$LINENO: 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_check_lib_save_LIBS=$LIBS
-LIBS="-lsocket $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_socket_main=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_socket_main=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: 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"
-
-fi
-
-
-echo "$as_me:$LINENO: 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_check_lib_save_LIBS=$LIBS
-LIBS="-lnsl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_nsl_main=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_nsl_main=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: 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"
-
-fi
-
- CURSES=-lcurses
- ;;
- *-linux-*)
- opsys=gnu-linux
-
-cat >>confdefs.h <<\_ACEOF
-#define GNU_LINUX
-_ACEOF
-
- ;;
- *-nec-sysv4*)
-
-echo "$as_me:$LINENO: 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_check_lib_save_LIBS=$LIBS
-LIBS="-lnsl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "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 ();
-#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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_nsl_gethostbyname=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_nsl_gethostbyname=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: 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"
-
-fi
-
-
-echo "$as_me:$LINENO: 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_check_lib_save_LIBS=$LIBS
-LIBS="-lsocket $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "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 ();
-#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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_socket_socket=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_socket_socket=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: 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"
-
-fi
-
- ;;
- *-freebsd3.2)
-
-cat >>confdefs.h <<\_ACEOF
-#define FREEBSD_32
-_ACEOF
-
- ;;
- *-openbsd*)
- opsys=openbsd
-
-cat >>confdefs.h <<\_ACEOF
-#define OPEN_BSD
-_ACEOF
-
- ;;
- *-bsdi*)
- opsys=bsdi
- OTHER_METHOD="mtu_kvm.o"
-
-echo "$as_me:$LINENO: 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_check_lib_save_LIBS=$LIBS
-LIBS="-lkvm $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_kvm_main=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_kvm_main=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: 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"
-
-fi
-
- ;;
-esac
-
-case "${enable_vtysh}" in
- "yes") VTYSH="vtysh";
-
-cat >>confdefs.h <<\_ACEOF
-#define VTYSH
-_ACEOF
-
-
-echo "$as_me:$LINENO: 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_check_lib_save_LIBS=$LIBS
-LIBS="-ltinfo $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "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 ();
-#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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_tinfo_tputs=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_tinfo_tputs=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: 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 "$as_me:$LINENO: 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_check_lib_save_LIBS=$LIBS
-LIBS="-lncurses $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "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 ();
-#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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_ncurses_tputs=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_ncurses_tputs=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: 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"
-
-fi
-
-fi
-
-
-echo "$as_me:$LINENO: 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_check_lib_save_LIBS=$LIBS
-LIBS="-lreadline $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_readline_main=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_readline_main=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: 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"
-
-fi
-
- if test $ac_cv_lib_readline_main = no; then
- { { echo "$as_me:$LINENO: 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
- if test "${ac_cv_header_readline_history_h+set}" = set; then
- echo "$as_me:$LINENO: 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:$LINENO: result: $ac_cv_header_readline_history_h" >&5
-echo "${ECHO_T}$ac_cv_header_readline_history_h" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking readline/history.h usability" >&5
-echo $ECHO_N "checking readline/history.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-$ac_includes_default
-#include <readline/history.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $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:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking readline/history.h presence" >&5
-echo $ECHO_N "checking readline/history.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <readline/history.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$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:$LINENO: \$? = $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:$LINENO: 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:$LINENO: 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:$LINENO: 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:$LINENO: 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:$LINENO: 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:$LINENO: 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:$LINENO: 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
- ac_cv_header_readline_history_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: 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 "$as_me:$LINENO: 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="";;
- * ) ;;
-esac
-
-if test "$with_libpam" = "yes"; then
-echo "$as_me:$LINENO: 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_check_lib_save_LIBS=$LIBS
-LIBS="-lpam $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "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 ();
-#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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_pam_pam_start=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_pam_pam_start=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: 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:$LINENO: 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_check_lib_save_LIBS=$LIBS
-LIBS="-lpam $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "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 ();
-#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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_pam_misc_conv=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_pam_misc_conv=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: 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
-_ACEOF
-
- LIBPAM="-lpam"
-else
-
-cat >>confdefs.h <<\_ACEOF
-#define USE_PAM
-_ACEOF
-
- LIBPAM="-lpam -lpam_misc"
-
-fi
-
-
-else
- echo "$as_me:$LINENO: 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_check_lib_save_LIBS=$LIBS
-LIBS="-lpam -ldl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "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 ();
-#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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_pam_pam_end=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_pam_pam_end=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: 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:$LINENO: 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_check_lib_save_LIBS=$LIBS
-LIBS="-lpam $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "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 ();
-#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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_pam_misc_conv=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_pam_misc_conv=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: 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
-_ACEOF
-
- LIBPAM="-lpam -ldl"
-else
- cat >>confdefs.h <<\_ACEOF
-#define USE_PAM 1
-_ACEOF
-
- LIBPAM="-lpam -ldl -lpam_misc"
-
-fi
-
-
-else
- { echo "$as_me:$LINENO: WARNING: *** pam support will not be built ***" >&5
-echo "$as_me: WARNING: *** pam support will not be built ***" >&2;}
-fi
-
-
-
-fi
-
-fi
-
-
-echo "$as_me:$LINENO: 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
- # See if sys/param.h defines the BYTE_ORDER macro.
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/param.h>
-
-#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;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- # It does; now see whether it defined to BIG_ENDIAN or not.
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/param.h>
-
-#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;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_c_bigendian=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_c_bigendian=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-else
- 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
- # try to guess the endianess by grep'ing values into an object file
- ac_cv_c_bigendian=unknown
- cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-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:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $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 $LINENO "configure"
-#include "confdefs.h"
-int
-main ()
-{
- /* Are we little or big endian? From Harbison&Steele. */
- union
- {
- long l;
- char c[sizeof (long)];
- } u;
- u.l = 1;
- exit (u.c[sizeof (long) - 1] == 1);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_c_bigendian=no
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-( exit $ac_status )
-ac_cv_c_bigendian=yes
-fi
-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:$LINENO: result: $ac_cv_c_bigendian" >&5
-echo "${ECHO_T}$ac_cv_c_bigendian" >&6
-case $ac_cv_c_bigendian in
- yes)
-
-cat >>confdefs.h <<\_ACEOF
-#define WORDS_BIGENDIAN 1
-_ACEOF
- ;;
- no)
- ;;
- *)
- { { echo "$as_me:$LINENO: 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
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: 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 <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- 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 ();
-char (*f) ();
-
-#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
-f = $ac_func;
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_var=no"
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: 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
-
-fi
-done
-
-
-for ac_func in setproctitle
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: 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 <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- 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 ();
-char (*f) ();
-
-#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
-f = $ac_func;
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_var=no"
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: 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
-
-else
- echo "$as_me:$LINENO: 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_check_lib_save_LIBS=$LIBS
-LIBS="-lutil $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "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 ();
-#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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_util_setproctitle=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_util_setproctitle=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: 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
-_ACEOF
-
-fi
-
-fi
-done
-
-
-echo "$as_me:$LINENO: 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 "$as_me:$LINENO: result: netlink" >&5
-echo "${ECHO_T}netlink" >&6
- RT_METHOD=rt_netlink.o
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_NETLINK
-_ACEOF
-
- netlink=yes
- elif test "${enable_netlink}" = "no"; then
- echo "$as_me:$LINENO: result: ioctl" >&5
-echo "${ECHO_T}ioctl" >&6
- RT_METHOD=rt_ioctl.o
- netlink=no
- else
- echo "$as_me:$LINENO: result: netlink" >&5
-echo "${ECHO_T}netlink" >&6
- RT_METHOD=rt_netlink.o
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_NETLINK
-_ACEOF
-
- netlink=yes
- fi
-else
- if test "$opsys" = "sol2-6";then
- echo "$as_me:$LINENO: 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 "$as_me:$LINENO: result: socket" >&5
-echo "${ECHO_T}socket" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-
-main ()
-{
- int ac_sock;
-
- ac_sock = socket (AF_ROUTE, SOCK_RAW, 0);
- if (ac_sock < 0 && errno == EINVAL)
- exit (1);
- exit (0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- KERNEL_METHOD=kernel_socket.o
- RT_METHOD=rt_socket.o
- echo "$as_me:$LINENO: result: socket" >&5
-echo "${ECHO_T}socket" >&6
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-( exit $ac_status )
-RT_METHOD=rt_ioctl.o
- echo "$as_me:$LINENO: result: ioctl" >&5
-echo "${ECHO_T}ioctl" >&6
-fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
- fi
-fi
-
-
-
-
-echo "$as_me:$LINENO: 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"
- zebra_rtread="netlink"
-else
-for zebra_rtread in /proc/net/route /dev/ip /dev/null;
-do
- test x`ls $zebra_rtread 2>/dev/null` = x"$zebra_rtread" && break
-done
-case $zebra_rtread in
- "/proc/net/route") RTREAD_METHOD="rtread_proc.o"
- zebra_rtread="proc";;
- "/dev/ip") RTREAD_METHOD="rtread_getmsg.o"
- zebra_rtread="getmsg";;
- *) RTREAD_METHOD="rtread_sysctl.o"
- zebra_rtread="sysctl";;
-esac
-fi
-fi
-echo "$as_me:$LINENO: result: $zebra_rtread" >&5
-echo "${ECHO_T}$zebra_rtread" >&6
-
-
-echo "$as_me:$LINENO: checking interface looking up method" >&5
-echo $ECHO_N "checking interface looking up method... $ECHO_C" >&6
-if test "$netlink" = yes; then
- echo "$as_me:$LINENO: result: netlink" >&5
-echo "${ECHO_T}netlink" >&6
- IF_METHOD=if_netlink.o
-else
- if test "$opsys" = "sol2-6";then
- echo "$as_me:$LINENO: result: solaris" >&5
-echo "${ECHO_T}solaris" >&6
- IF_METHOD=if_ioctl.o
- elif test "$opsys" = "openbsd";then
- echo "$as_me:$LINENO: 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 "$as_me:$LINENO: result: sysctl" >&5
-echo "${ECHO_T}sysctl" >&6
- IF_METHOD=if_sysctl.o
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_NET_RT_IFLIST
-_ACEOF
-
- else
- echo "$as_me:$LINENO: 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 <<\_ACEOF
-#define HAVE_PROC_NET_DEV
-_ACEOF
-
- IF_PROC=if_proc.o
-fi
-
-if test -r /proc/net/if_inet6; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_PROC_NET_IF_INET6
-_ACEOF
-
- IF_PROC=if_proc.o
-fi
-
-
-echo "$as_me:$LINENO: 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
- test x`ls $zebra_ipforward_path 2>/dev/null` = x"$zebra_ipforward_path" && break
-done
-case $zebra_ipforward_path in
- "/proc/net/snmp") IPFORWARD=ipforward_proc.o
- zebra_ipforward_path="proc";;
- "/dev/ip")
- case "$host" in
- *-nec-sysv4*) IPFORWARD=ipforward_ews.o
- zebra_ipforward_path="ews";;
- *) IPFORWARD=ipforward_solaris.o
- zebra_ipforward_path="solaris";;
- esac;;
- *) IPFORWARD=ipforward_sysctl.o
- zebra_ipforward_path="sysctl";;
-esac
-fi
-echo "$as_me:$LINENO: result: $zebra_ipforward_path" >&5
-echo "${ECHO_T}$zebra_ipforward_path" >&6
-
-
-
-for ac_func in getaddrinfo
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: 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 <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- 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 ();
-char (*f) ();
-
-#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
-f = $ac_func;
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_var=no"
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: 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
- have_getaddrinfo=no
-fi
-done
-
-
-echo "$as_me:$LINENO: 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 "$as_me:$LINENO: 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 <<\_ACEOF
-#define HAVE_IPV6
-_ACEOF
-
-
-cat >>confdefs.h <<\_ACEOF
-#define INRIA_IPV6
-_ACEOF
-
- RIPNGD="ripngd"
- OSPF6D="ospf6d"
- LIB_IPV6=""
- echo "$as_me:$LINENO: 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 <<\_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 "$as_me:$LINENO: 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 <<\_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 <<\_ACEOF
-#define BSDI_NRL
-_ACEOF
-
- echo "$as_me:$LINENO: result: BSDI_NRL" >&5
-echo "${ECHO_T}BSDI_NRL" >&6
- else
- echo "$as_me:$LINENO: result: NRL" >&5
-echo "${ECHO_T}NRL" >&6
- fi
-fi
-
-if test "${enable_ipv6}" = "yes"; then
- cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
- #include <linux/version.h>
- /* 2.1.128 or later */
- #if LINUX_VERSION_CODE >= 0x020180
- yes
- #endif
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "yes" >/dev/null 2>&1; then
- zebra_cv_ipv6=yes; zebra_cv_linux_ipv6=yes;echo "$as_me:$LINENO: result: Linux IPv6" >&5
-echo "${ECHO_T}Linux IPv6" >&6
-fi
-rm -f conftest*
-
-else
- if test x`ls /proc/net/ipv6_route 2>/dev/null` = x"/proc/net/ipv6_route"
- then
- zebra_cv_ipv6=yes
- zebra_cv_linux_ipv6=yes
- echo "$as_me:$LINENO: result: Linux IPv6" >&5
-echo "${ECHO_T}Linux IPv6" >&6
- fi
-fi
-
-if test "$zebra_cv_linux_ipv6" = "yes";then
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_IPV6 1
-_ACEOF
-
- echo "$as_me:$LINENO: 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 $LINENO "configure"
-#include "confdefs.h"
-
-#include <features.h>
-#if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
- yes
-#endif
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "yes" >/dev/null 2>&1; then
- glibc=yes; echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest*
-
-
-cat >>confdefs.h <<\_ACEOF
-#define LINUX_IPV6
-_ACEOF
-
- RIPNGD="ripngd"
- OSPF6D="ospf6d"
- if test "$glibc" != "yes"; then
- INCLUDES="-I/usr/inet6/include"
- if test x`ls /usr/inet6/lib/libinet6.a 2>/dev/null` != x;then
- LIB_IPV6="-L/usr/inet6/lib -linet6"
- fi
- fi
-fi
-
-LIBS="$LIB_IPV6 $LIBS"
-
-
-if test x"$RIPNGD" = x""; then
- echo "$as_me:$LINENO: result: IPv4 only" >&5
-echo "${ECHO_T}IPv4 only" >&6
-fi
-fi
-
-if test "${enable_zebra}" = "no";then
- ZEBRA=""
-else
- ZEBRA="zebra"
-fi
-
-if test "${enable_bgpd}" = "no";then
- BGPD=""
-else
- BGPD="bgpd"
-fi
-
-if test "${enable_ripd}" = "no";then
- RIPD=""
-else
- RIPD="ripd"
-fi
-
-if test "${enable_ospfd}" = "no";then
- OSPFD=""
-else
- OSPFD="ospfd"
-fi
-
-case "${enable_ripngd}" in
- "yes") RIPNGD="ripngd";;
- "no" ) RIPNGD="";;
- * ) ;;
-esac
-
-case "${enable_ospf6d}" in
- "yes") OSPF6D="ospf6d";;
- "no" ) OSPF6D="";;
- * ) ;;
-esac
-
-if test "${enable_bgp_announce}" = "no";then
-
-cat >>confdefs.h <<\_ACEOF
-#define DISABLE_BGP_ANNOUNCE
-_ACEOF
-
-fi
-
-
-
-
-
-
-
-
-
-
-echo "$as_me:$LINENO: 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_check_lib_save_LIBS=$LIBS
-LIBS="-lc $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "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 ();
-#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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_c_inet_ntop=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_c_inet_ntop=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: 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
-
-echo "$as_me:$LINENO: 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
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lc $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "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 ();
-#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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_c_inet_pton=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_c_inet_pton=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: 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
-
-
-echo "$as_me:$LINENO: 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
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcrypt $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "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 ();
-#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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_crypt_crypt=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_crypt_crypt=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: 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"
-
-fi
-
-
-echo "$as_me:$LINENO: 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_check_lib_save_LIBS=$LIBS
-LIBS="-lresolv $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "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 ();
-#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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_resolv_res_init=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_resolv_res_init=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: 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"
-
-fi
-
-
-echo "$as_me:$LINENO: 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_check_lib_save_LIBS=$LIBS
-LIBS="-lm $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_m_main=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_m_main=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: 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"
-
-fi
-
-
-echo "$as_me:$LINENO: 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 <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- 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 ();
-char (*f) ();
-
-#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
-f = __inet_ntop;
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func___inet_ntop=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_func___inet_ntop=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: 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
-_ACEOF
-
-fi
-
-echo "$as_me:$LINENO: 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 <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- 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 ();
-char (*f) ();
-
-#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
-f = __inet_pton;
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func___inet_pton=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_func___inet_pton=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: 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
-_ACEOF
-
-fi
-
-echo "$as_me:$LINENO: 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 <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- 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 ();
-char (*f) ();
-
-#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
-f = __inet_aton;
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func___inet_aton=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_func___inet_aton=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: 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
-_ACEOF
-
-fi
-
-
-echo "$as_me:$LINENO: 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_check_lib_save_LIBS=$LIBS
-LIBS="-lc $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "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 ();
-#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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_c_regexec=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_c_regexec=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: 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
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GNU_REGEX
-_ACEOF
-
- LIB_REGEX=""
-else
- 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 "$as_me:$LINENO: 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 $LINENO "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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $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:$LINENO: 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:$LINENO: 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 $LINENO "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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $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:$LINENO: 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 "$as_me:$LINENO: 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 $LINENO "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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $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:$LINENO: 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
-fi
-
- else
- echo "$as_me:$LINENO: 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 $LINENO "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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $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:$LINENO: 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}"
-
- if test "${HAVE_SNMP}" = ""; then
- old_libs="${LIBS}"
- LIBS="-L/usr/local/lib"
- echo "$as_me:$LINENO: 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 $LINENO "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:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $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:$LINENO: 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
-
- LIBS="${old_libs}"
- fi
- if test "${HAVE_SNMP}" = "yes"; then
- for ac_snmp in /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/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 <<\_ACEOF
-#define HAVE_SNMP
-_ACEOF
-
- CFLAGS="${CFLAGS} -I/usr/local/include/ucd-snmp"
- LIBS="${LIBS} -L/usr/local/lib -lsnmp"
- ;;
- esac
- if test "${NEED_CRYPTO}" = "yes"; then
- LIBS="${LIBS} -lcrypto"
- fi
- fi
-fi
-
-echo "$as_me:$LINENO: 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 $LINENO "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#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;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SA_LEN
-_ACEOF
-
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-echo "$as_me:$LINENO: 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 $LINENO "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <netinet/in.h>
-
-#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;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SIN_LEN
-_ACEOF
-
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-echo "$as_me:$LINENO: 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 $LINENO "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/un.h>
-
-#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;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SUN_LEN
-_ACEOF
-
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-if test "$zebra_cv_ipv6" = yes; then
- echo "$as_me:$LINENO: 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 $LINENO "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <netinet/in.h>
-
-#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;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SIN6_SCOPE_ID
-_ACEOF
-
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-
-echo "$as_me:$LINENO: 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 $LINENO "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-
-#ifdef F77_DUMMY_MAIN
-# ifdef __cplusplus
- extern "C"
-# endif
- int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-socklen_t ac_x;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SOCKLEN_T
-_ACEOF
-
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-echo "$as_me:$LINENO: 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 $LINENO "configure"
-#include "confdefs.h"
-#include <net/if_dl.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "sockaddr_dl" >/dev/null 2>&1; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SOCKADDR_DL
-_ACEOF
-
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest*
-
-
-echo "$as_me:$LINENO: checking whether struct ifaliasreq exist" >&5
-echo $ECHO_N "checking whether struct ifaliasreq exist... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <net/if.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "ifaliasreq" >/dev/null 2>&1; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_IFALIASREQ
-_ACEOF
-
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest*
-
-
-echo "$as_me:$LINENO: 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 $LINENO "configure"
-#include "confdefs.h"
-#include <netinet6/in6_var.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "in6_aliasreq" >/dev/null 2>&1; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_IN6_ALIASREQ
-_ACEOF
-
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest*
-
-
-echo "$as_me:$LINENO: 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 $LINENO "configure"
-#include "confdefs.h"
-#include <net/route.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "rt_addrinfo" >/dev/null 2>&1; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_RT_ADDRINFO
-_ACEOF
-
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest*
-
-
-echo "$as_me:$LINENO: 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 $LINENO "configure"
-#include "confdefs.h"
-#include <netinet/in.h>
-
-#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;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_INPKTINFO
-_ACEOF
-
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-echo "$as_me:$LINENO: checking whether getrusage is available" >&5
-echo $ECHO_N "checking whether getrusage is available... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <sys/resource.h>
-
-#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;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_RUSAGE
-_ACEOF
-
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-file="${srcdir}/lib/version.h"
-VERSION=`sed -ne 's/^#.*ZEBRA_VERSION.*\"\([^\"]*\)\"$/\1/p' $file`
-
-
-echo "$as_me:$LINENO: 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
- test -d $ZEBRA_PID_DIR && break
-done
-ac_piddir=$ZEBRA_PID_DIR
-if test $ZEBRA_PID_DIR = "/dev/null"; then
- echo "PID DIRECTORY NOT FOUND!"
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_piddir" >&5
-echo "${ECHO_T}$ac_piddir" >&6
-
-cat >>confdefs.h <<_ACEOF
-#define PATH_ZEBRA_PID "$ac_piddir/zebra.pid"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PATH_RIPD_PID "$ac_piddir/ripd.pid"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PATH_RIPNGD_PID "$ac_piddir/ripngd.pid"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PATH_BGPD_PID "$ac_piddir/bgpd.pid"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PATH_OSPFD_PID "$ac_piddir/ospfd.pid"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PATH_OSPF6D_PID "$ac_piddir/ospf6d.pid"
-_ACEOF
-
-
-
-echo "$as_me:$LINENO: 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 <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef F77_DUMMY_MAIN
-# ifdef __cplusplus
- extern "C"
-# endif
- int F77_DUMMY_MAIN() { return 1; }
-#endif
-int
-main ()
-{
-htonl (0);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_htonl_works=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_htonl_works=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-
-echo "$as_me:$LINENO: result: $ac_cv_htonl_works" >&5
-echo "${ECHO_T}$ac_cv_htonl_works" >&6
-
-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"
-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, 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.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `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 \
- "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
- 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
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# 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[ ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[ ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[ ]*$//;
-}'
-fi
-
-DEFS=-DHAVE_CONFIG_H
-
-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-## --------------------- ##
-## 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
-
-# NLS nuisances.
-# Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-(set +x; test -n "`(LANG=C; export LANG) 2>&1`") &&
- { $as_unset LANG || test "${LANG+set}" != set; } ||
- { LANG=C; export LANG; }
-(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") &&
- { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } ||
- { LC_ALL=C; export LC_ALL; }
-(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") &&
- { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } ||
- { LC_TIME=C; export LC_TIME; }
-(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") &&
- { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } ||
- { LC_CTYPE=C; export LC_CTYPE; }
-(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") &&
- { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } ||
- { LANGUAGE=C; export LANGUAGE; }
-(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") &&
- { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } ||
- { LC_COLLATE=C; export LC_COLLATE; }
-(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") &&
- { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } ||
- { LC_NUMERIC=C; export LC_NUMERIC; }
-(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") &&
- { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } ||
- { LC_MESSAGES=C; export LC_MESSAGES; }
-
-
-# Name of the executable.
-as_me=`(basename "$0") 2>/dev/null ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)$' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
- /^X\/\(\/\/\)$/{ s//\1/; q; }
- /^X\/\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# 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
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conftest.sh
- echo "exit 0" >>conftest.sh
- chmod +x conftest.sh
- if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conftest.sh
-fi
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" || {
- # Find who we are. Look in the path if we contain no path at all
- # relative or not.
- case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
- ;;
- esac
- # We did not find ourselves, most probably we were run as `sh COMMAND'
- # in which case we are not to be found in the path.
- if test "x$as_myself" = x; then
- as_myself=$0
- fi
- if test ! -f "$as_myself"; then
- { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
- { (exit 1); exit 1; }; }
- fi
- case $CONFIG_SHELL in
- '')
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for as_base in sh bash ksh sh5; do
- case $as_dir in
- /*)
- if ("$as_dir/$as_base" -c '
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
- CONFIG_SHELL=$as_dir/$as_base
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
- fi;;
- esac
- done
-done
-;;
- esac
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line before each line; the second 'sed' does the real
- # work. The second script uses 'N' to pair each line-number line
- # with the numbered line, and appends trailing '-' during
- # substitution so that $LINENO is not a special case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
- sed '=' <$as_myself |
- sed '
- N
- s,$,-,
- : loop
- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
- t loop
- s,-$,,
- s,^['$as_cr_digits']*\n,,
- ' >$as_me.lineno &&
- chmod +x $as_me.lineno ||
- { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensible to this).
- . ./$as_me.lineno
- # Exit status is that of the last command.
- exit
-}
-
-
-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
-
-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"
-
-# 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"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
-
-
-# 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=$PATH_SEPARATOR; 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.53. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-_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.53,
- 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
-
- 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:$LINENO: 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;;
-
- # This is an error.
- -*) { { echo "$as_me:$LINENO: 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" ;;
- "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
- "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
- *) { { echo "$as_me:$LINENO: 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,@PATH_SEPARATOR@,$PATH_SEPARATOR,;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,@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,@build_alias@,$build_alias,;t t
-s,@host_alias@,$host_alias,;t t
-s,@target_alias@,$target_alias,;t t
-s,@DEFS@,$DEFS,;t t
-s,@ECHO_C@,$ECHO_C,;t t
-s,@ECHO_N@,$ECHO_N,;t t
-s,@ECHO_T@,$ECHO_T,;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,@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,@STRIP@,$STRIP,;t t
-s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
-s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
-s,@AWK@,$AWK,;t t
-s,@SET_MAKE@,$SET_MAKE,;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,@EXEEXT@,$EXEEXT,;t t
-s,@OBJEXT@,$OBJEXT,;t t
-s,@DEPDIR@,$DEPDIR,;t t
-s,@am__include@,$am__include,;t t
-s,@am__quote@,$am__quote,;t t
-s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t
-s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t
-s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;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,@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=`(dirname "$ac_file") 2>/dev/null ||
-$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:$LINENO: error: cannot create \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }
- ;;
- esac
-done; }
-
- ac_builddir=.
-
-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
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
-
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
- esac
-
- if test x"$ac_file" != x-; then
- { echo "$as_me:$LINENO: 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 by config.status. */
- if test x"$ac_file" = x-; then
- configure_input=
- else
- configure_input="$ac_file. "
- fi
- configure_input=$configure_input"Generated 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:$LINENO: 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:$LINENO: 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,@abs_srcdir@,$ac_abs_srcdir,;t t
-s,@top_srcdir@,$ac_top_srcdir,;t t
-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-s,@builddir@,$ac_builddir,;t t
-s,@abs_builddir@,$ac_abs_builddir,;t t
-s,@top_builddir@,$ac_top_builddir,;t t
-s,@abs_top_builddir@,$ac_abs_top_builddir,;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
- cat $tmp/out
- rm -f $tmp/out
- fi
-
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# 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=' '
-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=',;t'
-
-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
- - | *:- | *:-:* ) # 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
-
- test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-
- # 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:$LINENO: 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:$LINENO: 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
-
-_ACEOF
-
-# 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}\1${ac_dB}\1\2${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.undefs <<\_ACEOF
-s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
-_ACEOF
-
-# 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 grep . conftest.defines >/dev/null
-do
- # 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 $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.defines
-echo ' fi # egrep' >>$CONFIG_STATUS
-echo >>$CONFIG_STATUS
-
-# 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 by config.status. */
- if test x"$ac_file" = x-; then
- echo "/* Generated by configure. */" >$tmp/config.h
- else
- echo "/* $ac_file. Generated by configure. */" >$tmp/config.h
- fi
- 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:$LINENO: $ac_file is unchanged" >&5
-echo "$as_me: $ac_file is unchanged" >&6;}
- else
- ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$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:$LINENO: error: cannot create \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }
- ;;
- esac
-done; }
-
- 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 for config.h' >"./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=`(dirname "$ac_dest") 2>/dev/null ||
-$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'`
- ac_builddir=.
-
-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
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
-
-
- { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
-echo "$as_me: executing $ac_dest commands" >&6;}
- case $ac_dest in
- depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # So let's grep whole file.
- if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
- dirpart=`(dirname "$mf") 2>/dev/null ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$mf" : 'X\(//\)[^/]' \| \
- X"$mf" : 'X\(//\)$' \| \
- X"$mf" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$mf" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- else
- continue
- fi
- 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=`(dirname "$file") 2>/dev/null ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$file" : 'X\(//\)[^/]' \| \
- X"$file" : 'X\(//\)$' \| \
- X"$file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { case $dirpart/$fdir in
- [\\/]* | ?:[\\/]* ) as_incr_dir=;;
- *) as_incr_dir=.;;
-esac
-as_dummy=$dirpart/$fdir
-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:$LINENO: error: cannot create $dirpart/$fdir" >&5
-echo "$as_me: error: cannot create $dirpart/$fdir" >&2;}
- { (exit 1); exit 1; }; }
- ;;
- esac
-done; }
-
- # 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
-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
--------------------
-zebra version : ${VERSION}
-host operationg system : ${host_os}
-source code location : ${srcdir}
-compiler : ${CC}
-compiler flags : ${CFLAGS}
-directory for pid files : ${ac_piddir}
-"
diff --git a/configure.ac b/configure.ac
index 341f185a..ad58c3a8 100755
--- a/configure.ac
+++ b/configure.ac
@@ -98,15 +98,8 @@ AC_ARG_ENABLE(ospf-te,
[ --enable-ospf-te enable Traffic Engineering Extension to OSPF])
AC_ARG_ENABLE(multipath,
[ --enable-multipath=ARG enable multipath function, ARG must be digit])
-AC_ARG_ENABLE(zebra_user,
-[ --enable-user=ARG user to run zebra suite as (default zebra)])
-AC_ARG_ENABLE(zebra_group,
-[ --enable-group=ARG group to run zebra suite as (default zebra)])
-AC_ARG_ENABLE(vty_group,
-[ --enable-vty-group=ARG set vty sockets to have specified group as owner])
-
AC_ARG_ENABLE(rtadv,
-[ --enable-rtadv disable IPV6 router advertisment feature])
+[ --enable-rtadv enable IPV6 router advertisment feature])
if test "${enable_broken_aliases}" = "yes"; then
if test "${enable_netlink}" = "yes"
@@ -138,37 +131,11 @@ fi
AC_MSG_CHECKING(Should Zebra's RTADV be used)
if test "${enable_rtadv}" = "yes"; then
AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_RTADV,,Use zebra routing advertisement)
+ AC_DEFINE(HAVE_RTADV,,Enable Zebra IPv6 Routing Advertisements)
else
AC_MSG_RESULT(no)
fi
-if test "${enable_user}" = "yes" ; then
- enable_user="zebra"
-elif test "${enable_user}" = "no"; then
- enable_user="root"
-fi
-AC_DEFINE_UNQUOTED(ZEBRA_USER, "${enable_user}", Zebra User)
-
-if test "${enable_group}" = "yes" ; then
- enable_group="zebra"
-elif test "${enable_group}" = "no"; then
- enable_group="root"
-fi
-AC_DEFINE_UNQUOTED(ZEBRA_GROUP, "${enable_group}", Zebra Group)
-
-if test x"${enable_vty_group}" = x"yes" ; then
- AC_MSG_ERROR([--enable-vty-group requires a group as argument])
-fi
-if test "${enable_vty_group}" = ""; then
- AC_MSG_ERROR([--enable-vty-group requires a group as argument])
-fi
-if test x"${enable_vty_group}" != x"no"; then
- if test "${enable_vty_group}" != ""; then
- AC_DEFINE_UNQUOTED(VTY_GROUP, "${enable_vty_group}", VTY Sockets Group)
- fi
-fi
-
changequote(, )dnl
MULTIPATH_NUM=1
@@ -897,28 +864,6 @@ AC_TRY_COMPILE([#include <sys/resource.h>
AC_DEFINE(HAVE_RUSAGE,,rusage)],
AC_MSG_RESULT(no))
-dnl -------------------
-dnl capabilities checks
-dnl -------------------
-AC_MSG_CHECKING(whether prctl PR_SET_KEEPCAPS is available)
-AC_TRY_COMPILE([#include <sys/prctl.h>],[prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0);],
- [AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_PR_SET_KEEPCAPS,,prctl)
- zebra_ac_keepcaps="yes"],
- AC_MSG_RESULT(no)
-)
-if test x"${zebra_ac_keepcaps}" = x"yes"; then
- AC_CHECK_HEADERS(sys/capability.h)
-fi
-if test x"${ac_cv_header_sys_capability_h}" = x"yes"; then
- AC_CHECK_LIB(cap, cap_init,
- [AC_DEFINE(HAVE_LCAPS,1,Capabilities)
- LIBCAP="-lcap"
- ]
- )
-fi
-AC_SUBST(LIBCAP)
-
dnl ---------------------------
dnl check for glibc 'backtrace'
dnl ---------------------------
@@ -971,7 +916,7 @@ else
AC_MSG_RESULT(${zebra_statedir})
fi
if test $zebra_statedir = "/dev/null"; then
- echo "STATE DIRECTORY NOT FOUND!"
+ AC_MSG_ERROR('STATE DIRECTORY NOT FOUND! FIX OR SPECIFY --localstatedir!')
fi
AC_DEFINE_UNQUOTED(PATH_ZEBRA_PID, "$zebra_statedir/zebra.pid",zebra PID)
@@ -1021,6 +966,7 @@ host operationg system : ${host_os}
source code location : ${srcdir}
compiler : ${CC}
compiler flags : ${CFLAGS}
+linker flags : ${LDFLAGS} ${LIBS}
state file directory : ${zebra_statedir}
linker flags : ${LDFLAGS} ${LIBS}
"
diff --git a/configure.in b/configure.in
deleted file mode 100755
index 341f185a..00000000
--- a/configure.in
+++ /dev/null
@@ -1,1026 +0,0 @@
-##
-## Configure template file for Zebra.
-## autoconf will generate configure script.
-##
-## Copyright (c) 1996, 97, 98, 99, 2000 Kunihiro Ishiguro <kunihiro@zebra.org>
-##
-AC_PREREQ(2.13)
-
-AC_INIT(lib/zebra.h)
-AM_INIT_AUTOMAKE(zebra, 0.94)
-AM_CONFIG_HEADER(config.h)
-
-dnl -----------------------------------
-dnl Get hostname and other information.
-dnl -----------------------------------
-AC_CANONICAL_HOST
-
-dnl ------------
-dnl Check CFLAGS
-dnl ------------
-AC_ARG_WITH(cflags,
-[ --with-cflags Set CFLAGS for use in compilation.])
-if test "x$with_cflags" != "x" ; then
- CFLAGS="$with_cflags" ; cflags_specified=yes ;
-elif test -n "$CFLAGS" ; then
- cflags_specified=yes ;
-fi
-
-dnl --------
-dnl Check CC
-dnl --------
-AC_PROG_CC
-
-dnl -----------------------------------------
-dnl If CLFAGS doesn\'t exist set default value
-dnl -----------------------------------------
-if test "x$cflags_specified" = "x" ; then
- CFLAGS="$CFLAGS -Wall"
-fi
-
-dnl --------------
-dnl Check programs
-dnl --------------
-AC_PROG_CPP
-AC_PROG_INSTALL
-AC_PROG_MAKE_SET
-AC_CHECK_TOOL(AR, ar)
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-
-dnl ---------
-dnl AIX check
-dnl ---------
-AC_AIX
-
-dnl ----------------------
-dnl Packages configuration
-dnl ----------------------
-AC_ARG_ENABLE(vtysh,
-[ --enable-vtysh, Make integrated VTY version of zebra])
-AC_ARG_ENABLE(ipv6,
-[ --disable-ipv6 turn off IPv6 related features and daemons])
-AC_ARG_ENABLE(zebra,
-[ --disable-zebra do not build zebra daemon])
-AC_ARG_ENABLE(bgpd,
-[ --disable-bgpd do not build bgpd])
-AC_ARG_ENABLE(ripd,
-[ --disable-ripd do not build ripd])
-AC_ARG_ENABLE(ripngd,
-[ --disable-ripngd do not build ripngd])
-AC_ARG_ENABLE(ospfd,
-[ --disable-ospfd do not build ospfd])
-AC_ARG_ENABLE(ospf6d,
-[ --disable-ospf6d do not build ospf6d])
-AC_ARG_ENABLE(bgp-announce,
-[ --disable-bgp-announce, turn off BGP route announcement])
-AC_ARG_ENABLE(netlink,
-[ --enable-netlink force to use Linux netlink interface])
-AC_ARG_ENABLE(broken-aliases,
-[ --enable-broken-aliases enable aliases as distinct interfaces for Linux 2.2.X])
-AC_ARG_ENABLE(snmp,
-[ --enable-snmp enable SNMP support])
-AC_ARG_WITH(libpam,
-[ --with-libpam use libpam for PAM support in vtysh])
-AC_ARG_ENABLE(tcp-zebra,
-[ --enable-tcp-zebra enable TCP/IP socket connection between zebra and protocol daemon])
-dnl Temporary option until OSPF NSSA implementation complete
-AC_ARG_ENABLE(nssa,
-[ --enable-nssa enable OSPF NSSA option])
-AC_ARG_ENABLE(opaque-lsa,
-[ --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,
-[ --enable-multipath=ARG enable multipath function, ARG must be digit])
-AC_ARG_ENABLE(zebra_user,
-[ --enable-user=ARG user to run zebra suite as (default zebra)])
-AC_ARG_ENABLE(zebra_group,
-[ --enable-group=ARG group to run zebra suite as (default zebra)])
-AC_ARG_ENABLE(vty_group,
-[ --enable-vty-group=ARG set vty sockets to have specified group as owner])
-
-AC_ARG_ENABLE(rtadv,
-[ --enable-rtadv disable IPV6 router advertisment feature])
-
-if test "${enable_broken_aliases}" = "yes"; then
- if test "${enable_netlink}" = "yes"
- then
- echo "Sorry, you can't use netlink with broken aliases"
- exit 1
- fi
- AC_DEFINE(HAVE_BROKEN_ALIASES,,Broken Alias)
- enable_netlink=no
-fi
-
-if test "${enable_tcp_zebra}" = "yes"; then
- AC_DEFINE(HAVE_TCP_ZEBRA,,Use TCP for zebra communication)
-fi
-
-if test "${enable_nssa}" = "yes"; then
- AC_DEFINE(HAVE_NSSA,,OSPF NSSA)
-fi
-
-if test "${enable_opaque_lsa}" = "yes"; then
- AC_DEFINE(HAVE_OPAQUE_LSA,,OSPF Opaque LSA)
-fi
-
-if test "${enable_ospf_te}" = "yes"; then
- AC_DEFINE(HAVE_OPAQUE_LSA,,OSPF Opaque LSA)
- AC_DEFINE(HAVE_OSPF_TE,,OSPF TE)
-fi
-
-AC_MSG_CHECKING(Should Zebra's RTADV be used)
-if test "${enable_rtadv}" = "yes"; then
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_RTADV,,Use zebra routing advertisement)
-else
- AC_MSG_RESULT(no)
-fi
-
-if test "${enable_user}" = "yes" ; then
- enable_user="zebra"
-elif test "${enable_user}" = "no"; then
- enable_user="root"
-fi
-AC_DEFINE_UNQUOTED(ZEBRA_USER, "${enable_user}", Zebra User)
-
-if test "${enable_group}" = "yes" ; then
- enable_group="zebra"
-elif test "${enable_group}" = "no"; then
- enable_group="root"
-fi
-AC_DEFINE_UNQUOTED(ZEBRA_GROUP, "${enable_group}", Zebra Group)
-
-if test x"${enable_vty_group}" = x"yes" ; then
- AC_MSG_ERROR([--enable-vty-group requires a group as argument])
-fi
-if test "${enable_vty_group}" = ""; then
- AC_MSG_ERROR([--enable-vty-group requires a group as argument])
-fi
-if test x"${enable_vty_group}" != x"no"; then
- if test "${enable_vty_group}" != ""; then
- AC_DEFINE_UNQUOTED(VTY_GROUP, "${enable_vty_group}", VTY Sockets Group)
- fi
-fi
-
-changequote(, )dnl
-
-MULTIPATH_NUM=1
-
-case "${enable_multipath}" in
- [0-9]|[1-9][0-9])
- MULTIPATH_NUM="${enable_multipath}"
- ;;
- "")
- ;;
- *)
- echo "Please specify digit to --enable-multipath ARG."
- exit 1
- ;;
-esac
-
-changequote([, ])dnl
-
-AC_SUBST(MULTIPATH_NUM)
-
-dnl -------------------
-dnl Check header files.
-dnl -------------------
-AC_STDC_HEADERS
-AC_CHECK_HEADERS(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 netinet6/in6_var.h netinet/in6.h inet/nd.h asm/types.h netinet/icmp6.h netinet6/nd6.h libutil.h)
-
-dnl check some types
-AC_C_CONST
-dnl AC_TYPE_PID_T
-AC_TYPE_SIGNAL
-
-dnl Some systems (Solaris 2.x) require libnsl (Network Services Library)
-case "$host" in
- *-sunos5.6* | *-solaris2.6*)
- opsys=sol2-6
- AC_DEFINE(SUNOS_5,,SunOS 5)
- AC_CHECK_LIB(xnet, main)
- CURSES=-lcurses
- ;;
- *-sunos5* | *-solaris2*)
- AC_DEFINE(SUNOS_5,,SunOS 5)
- AC_CHECK_LIB(socket, main)
- AC_CHECK_LIB(nsl, main)
- CURSES=-lcurses
- ;;
- *-linux-*)
- opsys=gnu-linux
- AC_DEFINE(GNU_LINUX,,GNU Linux)
- ;;
- *-nec-sysv4*)
- AC_CHECK_LIB(nsl, gethostbyname)
- AC_CHECK_LIB(socket, socket)
- ;;
- *-freebsd3.2)
- AC_DEFINE(FREEBSD_32,,FreeBSD 3.2)
- ;;
- *-openbsd*)
- opsys=openbsd
- AC_DEFINE(OPEN_BSD,,OpenBSD)
- ;;
- *-bsdi*)
- opsys=bsdi
- OTHER_METHOD="mtu_kvm.o"
- AC_CHECK_LIB(kvm, main)
- ;;
-esac
-
-dnl ---------------------
-dnl Integrated VTY option
-dnl ---------------------
-case "${enable_vtysh}" in
- "yes") VTYSH="vtysh";
- AC_DEFINE(VTYSH,,VTY shell)
- AC_CHECK_LIB(tinfo, tputs, , AC_CHECK_LIB(ncurses, tputs))
- AC_CHECK_LIB(readline, main)
- if test $ac_cv_lib_readline_main = no; then
- AC_MSG_ERROR([vtysh needs libreadline but was not found on your system.])
- fi
- AC_CHECK_HEADER(readline/history.h)
- if test $ac_cv_header_readline_history_h = no;then
- AC_MSG_ERROR([readline is too old to have readline/history.h, please update to the latest readline library.])
- fi
- AC_CHECK_LIB(readline, rl_completion_matches)
- if test $ac_cv_lib_readline_rl_completion_matches = no; then
- AC_DEFINE(rl_completion_matches,completion_matches,Old readline)
- fi
- ;;
- "no" ) VTYSH="";;
- * ) ;;
-esac
-
-dnl ----------
-dnl PAM module
-dnl ----------
-if test "$with_libpam" = "yes"; then
- AC_CHECK_HEADER(security/pam_misc.h)
- if test "$ac_cv_header_security_pam_misc_h" = yes; then
- AC_DEFINE(HAVE_PAM_MISC_H,,Have pam_misc.h)
- AC_DEFINE(PAM_CONV_FUNC,misc_conv,Have misc_conv)
- pam_conv_func="misc_conv"
- fi
- AC_CHECK_HEADER(security/openpam.h)
- if test "$ac_cv_header_security_openpam_h" = yes; then
- AC_DEFINE(HAVE_OPENPAM_H,,Have openpam.h)
- AC_DEFINE(PAM_CONV_FUNC,openpam_ttyconv,Have openpam_ttyconv)
- pam_conv_func="openpam_ttyconv"
- fi
- if test -z "$ac_cv_header_security_pam_misc_h$ac_cv_header_security_openpam_h" ; then
- AC_MSG_WARN([*** pam support will not be built ***])
- with_libpam="no"
- fi
-fi
-
-if test "$with_libpam" = "yes"; then
-dnl took this test from proftpd's configure.in and suited to our needs
-dnl -------------------------------------------------------------------------
-dnl
-dnl This next check looks funky due to a linker problem with some versions
-dnl of the PAM library. Prior to 0.72 release, the Linux PAM shared library
-dnl omitted requiring libdl linking information. PAM-0.72 or better ships
-dnl with RedHat 6.2 and Debian 2.2 or better.
-AC_CHECK_LIB(pam, pam_start,
- [AC_CHECK_LIB(pam, $pam_conv_func,
- [AC_DEFINE(USE_PAM,,Use PAM for authentication)
- LIBPAM="-lpam"],
- [AC_DEFINE(USE_PAM,,Use PAM for authentication)
- LIBPAM="-lpam -lpam_misc"]
- )
- ],
-
- [AC_CHECK_LIB(pam, pam_end,
- [AC_CHECK_LIB(pam, $pam_conv_func,
- [AC_DEFINE(USE_PAM,,Use PAM for authentication)
- LIBPAM="-lpam -ldl"],
- [AC_DEFINE(USE_PAM,,Use PAM for authentication)
- LIBPAM="-lpam -ldl -lpam_misc"]
- )
- ],AC_MSG_WARN([*** pam support will not be built ***]),
- [-ldl])
- ]
-)
-fi
-AC_SUBST(LIBPAM)
-
-dnl -------------------------------
-dnl Endian-ness check
-dnl -------------------------------
-AC_WORDS_BIGENDIAN
-
-dnl -------------------------------
-dnl check the size in byte of the C
-dnl -------------------------------
-dnl AC_CHECK_SIZEOF(char)
-dnl AC_CHECK_SIZEOF(int)
-dnl AC_CHECK_SIZEOF(short)
-dnl AC_CHECK_SIZEOF(long)
-
-dnl ----------------------------
-dnl check existance of functions
-dnl ----------------------------
-AC_CHECK_FUNCS(bcopy bzero strerror inet_aton daemon snprintf vsnprintf strlcat strlcpy if_nametoindex if_indextoname getifaddrs)
-AC_CHECK_FUNCS(setproctitle, ,
- [AC_CHECK_LIB(util, setproctitle,
- [LIBS="$LIBS -lutil"
- AC_DEFINE(HAVE_SETPROCTITLE,, Have setproctitle)
- ]
- )
- ]
-)
-
-dnl ------------------------------------
-dnl Determine routing get and set method
-dnl ------------------------------------
-AC_MSG_CHECKING(zebra between kernel interface method)
-if test x"$opsys" = x"gnu-linux"; then
- if test "${enable_netlink}" = "yes";then
- AC_MSG_RESULT(netlink)
- RT_METHOD=rt_netlink.o
- AC_DEFINE(HAVE_NETLINK,,netlink)
- netlink=yes
- elif test "${enable_netlink}" = "no"; then
- AC_MSG_RESULT(ioctl)
- RT_METHOD=rt_ioctl.o
- netlink=no
- else
- AC_MSG_RESULT(netlink)
- RT_METHOD=rt_netlink.o
- AC_DEFINE(HAVE_NETLINK,,netlink)
- netlink=yes
- fi
-else
- if test "$opsys" = "sol2-6";then
- AC_MSG_RESULT(solaris)
- KERNEL_METHOD="kernel_socket.o"
- RT_METHOD="rt_socket.o"
- else
- AC_TRY_RUN([#include <errno.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-
-main ()
-{
- int ac_sock;
-
- ac_sock = socket (AF_ROUTE, SOCK_RAW, 0);
- if (ac_sock < 0 && errno == EINVAL)
- exit (1);
- exit (0);
-}],
- [KERNEL_METHOD=kernel_socket.o
- RT_METHOD=rt_socket.o
- AC_MSG_RESULT(socket)],
- [RT_METHOD=rt_ioctl.o
- AC_MSG_RESULT(ioctl)],
- [KERNEL_METHOD=kernel_socket.o
- RT_METHOD=rt_socket.o
- AC_MSG_RESULT(socket)])
- fi
-fi
-AC_SUBST(RT_METHOD)
-AC_SUBST(KERNEL_METHOD)
-AC_SUBST(OTHER_METHOD)
-
-dnl ------------------------------
-dnl check kernel route read method
-dnl ------------------------------
-AC_CACHE_CHECK(route read method check, zebra_rtread,
-[if test "$netlink" = yes; then
- RTREAD_METHOD="rtread_netlink.o"
- zebra_rtread="netlink"
-else
-for zebra_rtread in /proc/net/route /dev/ip /dev/null;
-do
- test x`ls $zebra_rtread 2>/dev/null` = x"$zebra_rtread" && break
-done
-case $zebra_rtread in
- "/proc/net/route") RTREAD_METHOD="rtread_proc.o"
- zebra_rtread="proc";;
- "/dev/ip") RTREAD_METHOD="rtread_getmsg.o"
- zebra_rtread="getmsg";;
- *) RTREAD_METHOD="rtread_sysctl.o"
- zebra_rtread="sysctl";;
-esac
-fi])
-AC_SUBST(RTREAD_METHOD)
-
-dnl -----------------------------
-dnl check interface lookup method
-dnl -----------------------------
-AC_MSG_CHECKING(interface looking up method)
-if test "$netlink" = yes; then
- AC_MSG_RESULT(netlink)
- IF_METHOD=if_netlink.o
-else
- if test "$opsys" = "sol2-6";then
- AC_MSG_RESULT(solaris)
- IF_METHOD=if_ioctl.o
- elif test "$opsys" = "openbsd";then
- AC_MSG_RESULT(openbsd)
- IF_METHOD=if_ioctl.o
- elif grep NET_RT_IFLIST /usr/include/sys/socket.h >/dev/null 2>&1; then
- AC_MSG_RESULT(sysctl)
- IF_METHOD=if_sysctl.o
- AC_DEFINE(HAVE_NET_RT_IFLIST,,NET_RT_IFLIST)
- else
- AC_MSG_RESULT(ioctl)
- IF_METHOD=if_ioctl.o
- fi
-fi
-AC_SUBST(IF_METHOD)
-
-dnl -----------------------
-dnl check proc file system.
-dnl -----------------------
-if test -r /proc/net/dev; then
- AC_DEFINE(HAVE_PROC_NET_DEV,,/proc/net/dev)
- IF_PROC=if_proc.o
-fi
-
-if test -r /proc/net/if_inet6; then
- AC_DEFINE(HAVE_PROC_NET_IF_INET6,,/proc/net/if_inet6)
- IF_PROC=if_proc.o
-fi
-AC_SUBST(IF_PROC)
-
-dnl -----------------------------
-dnl check ipforward detect method
-dnl -----------------------------
-AC_CACHE_CHECK(ipforward method check, zebra_ipforward_path,
-[for zebra_ipforward_path in /proc/net/snmp /dev/ip /dev/null;
-do
- test x`ls $zebra_ipforward_path 2>/dev/null` = x"$zebra_ipforward_path" && break
-done
-case $zebra_ipforward_path in
- "/proc/net/snmp") IPFORWARD=ipforward_proc.o
- zebra_ipforward_path="proc";;
- "/dev/ip")
- case "$host" in
- *-nec-sysv4*) IPFORWARD=ipforward_ews.o
- zebra_ipforward_path="ews";;
- *) IPFORWARD=ipforward_solaris.o
- zebra_ipforward_path="solaris";;
- esac;;
- *) IPFORWARD=ipforward_sysctl.o
- zebra_ipforward_path="sysctl";;
-esac])
-AC_SUBST(IPFORWARD)
-
-AC_CHECK_FUNCS(getaddrinfo, [have_getaddrinfo=yes], [have_getaddrinfo=no])
-
-dnl ----------
-dnl IPv6 check
-dnl ----------
-AC_MSG_CHECKING(whether does this OS have IPv6 stack)
-if test "${enable_ipv6}" = "no"; then
- AC_MSG_RESULT(disabled)
-else
-dnl ----------
-dnl INRIA IPv6
-dnl ----------
- if grep IPV6_INRIA_VERSION /usr/include/netinet/in.h >/dev/null 2>&1; then
- zebra_cv_ipv6=yes
- AC_DEFINE(HAVE_IPV6,1,INRIA IPv6)
- AC_DEFINE(INRIA_IPV6,1,INRIA IPv6)
- RIPNGD="ripngd"
- OSPF6D="ospf6d"
- LIB_IPV6=""
- AC_MSG_RESULT(INRIA IPv6)
-dnl ---------
-dnl KAME IPv6
-dnl ---------
- elif grep WIDE /usr/include/netinet6/in6.h >/dev/null 2>&1; then
- zebra_cv_ipv6=yes
- AC_DEFINE(HAVE_IPV6,1,KAME IPv6)
- AC_DEFINE(KAME,1,KAME IPv6)
- 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
- AC_MSG_RESULT(KAME)
-dnl -------------------------
-dnl MUSICA IPv6
-dnl default host check
-dnl It is not used by Kheops
-dnl -------------------------
- elif grep MUSICA /usr/include6/netinet6/in6.h >/dev/null 2>&1; then
- zebra_cv_ipv6=yes
- AC_DEFINE(HAVE_IPV6,1,Musicia IPv6)
- AC_DEFINE(MUSICA,1,Musica IPv6 stack)
- AC_DEFINE(KAME,1,KAME IPv6 stack)
- 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
- AC_MSG_RESULT(MUSICA)
-dnl ---------
-dnl NRL check
-dnl ---------
- elif grep NRL /usr/include/netinet6/in6.h >/dev/null 2>&1; then
- zebra_cv_ipv6=yes
- AC_DEFINE(HAVE_IPV6,1,NRL IPv6)
- AC_DEFINE(NRL,1,NRL)
- RIPNGD="ripngd"
- OSPF6D="ospf6d"
- if test x"$opsys" = x"bsdi";then
- AC_DEFINE(BSDI_NRL,,BSDI)
- AC_MSG_RESULT(BSDI_NRL)
- else
- AC_MSG_RESULT(NRL)
- fi
-dnl ----------
-dnl Linux IPv6
-dnl ----------
- elif test "${enable_ipv6}" = "yes"; then
- AC_EGREP_CPP(yes, [
- #include <linux/version.h>
- /* 2.1.128 or later */
- #if LINUX_VERSION_CODE >= 0x020180
- yes
- #endif],
- [zebra_cv_ipv6=yes
- zebra_cv_linux_ipv6=yes
- AC_MSG_RESULT(Linux IPv6)])
- else
- if test x`ls /proc/net/ipv6_route 2>/dev/null` = x"/proc/net/ipv6_route"
- then
- zebra_cv_ipv6=yes
- zebra_cv_linux_ipv6=yes
- AC_MSG_RESULT(Linux IPv6)
- fi
- fi
-
- if test "$zebra_cv_linux_ipv6" = "yes";then
- AC_MSG_CHECKING(for GNU libc >= 2.1)
- AC_DEFINE(HAVE_IPV6,1,Linux IPv6)
- AC_EGREP_CPP(yes, [
-#include <features.h>
-#if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
- yes
-#endif],
- [glibc=yes
- AC_DEFINE(LINUX_IPV6,1,Linux IPv6 stack)
- AC_MSG_RESULT(yes)],
- AC_MSG_RESULT(no)
- )
- RIPNGD="ripngd"
- OSPF6D="ospf6d"
- if test "$glibc" != "yes"; then
- INCLUDES="-I/usr/inet6/include"
- if test x`ls /usr/inet6/lib/libinet6.a 2>/dev/null` != x;then
- LIB_IPV6="-L/usr/inet6/lib -linet6"
- fi
- fi
- fi
-
-dnl -----------------------
-dnl Set IPv6 related values
-dnl -----------------------
- LIBS="$LIB_IPV6 $LIBS"
- AC_SUBST(LIB_IPV6)
-
- if test x"$RIPNGD" = x""; then
- AC_MSG_RESULT(IPv4 only)
- fi
-fi
-
-dnl --------------------
-dnl Daemon disable check
-dnl --------------------
-if test "${enable_zebra}" = "no";then
- ZEBRA=""
-else
- ZEBRA="zebra"
-fi
-
-if test "${enable_bgpd}" = "no";then
- BGPD=""
-else
- BGPD="bgpd"
-fi
-
-if test "${enable_ripd}" = "no";then
- RIPD=""
-else
- RIPD="ripd"
-fi
-
-if test "${enable_ospfd}" = "no";then
- OSPFD=""
-else
- OSPFD="ospfd"
-fi
-
-OSPFCLIENT=""
-if test "${enable_opaque_lsa}" = "yes"; then
- if test "${enable_ospfapi}" != "no";then
- AC_DEFINE(SUPPORT_OSPF_API,,OSPFAPI)
-
- if test "${enable_ospfclient}" != "no";then
- OSPFCLIENT="ospfclient"
- fi
- fi
-
-fi
-
-case "${enable_ripngd}" in
- "yes") RIPNGD="ripngd";;
- "no" ) RIPNGD="";;
- * ) ;;
-esac
-
-case "${enable_ospf6d}" in
- "yes") OSPF6D="ospf6d";;
- "no" ) OSPF6D="";;
- * ) ;;
-esac
-
-if test "${enable_bgp_announce}" = "no";then
- AC_DEFINE(DISABLE_BGP_ANNOUNCE,,Disable BGP installation to zebra)
-fi
-
-AC_SUBST(ZEBRA)
-AC_SUBST(BGPD)
-AC_SUBST(RIPD)
-AC_SUBST(RIPNGD)
-AC_SUBST(OSPFD)
-AC_SUBST(OSPF6D)
-AC_SUBST(VTYSH)
-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)
-AC_CHECK_LIB(resolv, res_init)
-AC_CHECK_LIB(m, main)
-
-dnl ---------------------------------------------------
-dnl BSD/OS 4.1 define inet_XtoY function as __inet_XtoY
-dnl ---------------------------------------------------
-AC_CHECK_FUNC(__inet_ntop, AC_DEFINE(HAVE_INET_NTOP,,__inet_ntop))
-AC_CHECK_FUNC(__inet_pton, AC_DEFINE(HAVE_INET_PTON,,__inet_pton))
-AC_CHECK_FUNC(__inet_aton, AC_DEFINE(HAVE_INET_ATON,,__inet_aton))
-
-dnl ---------------------------
-dnl check system has GNU regexp
-dnl ---------------------------
-dnl AC_MSG_CHECKING(whether system has GNU regex)
-AC_CHECK_LIB(c, regexec,
-[AC_DEFINE(HAVE_GNU_REGEX,,GNU regexp library)
- LIB_REGEX=""],
-[LIB_REGEX="regex.o"])
-AC_SUBST(LIB_REGEX)
-
-dnl ------------------
-dnl check SNMP library
-dnl ------------------
-if test "${enable_snmp}" = "yes";then
-dnl 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(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
- 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"
- 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}" = "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
- LIBS="${LIBS} -lnetsnmp"
- else
- LIBS="${LIBS} -lsnmp"
- fi
- ;;
- /usr/include/ucd-snmp/*)
- AC_DEFINE(HAVE_SNMP,,SNMP)
- CFLAGS="${CFLAGS} -I/usr/include/ucd-snmp"
- LIBS="${LIBS} -lsnmp"
- ;;
- /usr/local/include/ucd-snmp/*)
- AC_DEFINE(HAVE_SNMP,,SNMP)
- CFLAGS="${CFLAGS} -I/usr/local/include/ucd-snmp"
- LIBS="${LIBS} -L/usr/local/lib -lsnmp"
- ;;
- esac
- if test "${NEED_CRYPTO}" = "yes"; then
- LIBS="${LIBS} -lcrypto"
- fi
- fi
-fi
-
-dnl ----------------------------
-dnl check sa_len of sockaddr
-dnl ----------------------------
-AC_MSG_CHECKING(whether struct sockaddr has a sa_len field)
-AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/socket.h>
-],[static struct sockaddr ac_i;int ac_j = sizeof (ac_i.sa_len);],
-[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_SA_LEN,,sa_len)],
- AC_MSG_RESULT(no))
-
-dnl ----------------------------
-dnl check sin_len of sockaddr_in
-dnl ----------------------------
-AC_MSG_CHECKING(whether struct sockaddr_in has a sin_len field)
-AC_TRY_COMPILE([#include <sys/types.h>
-#include <netinet/in.h>
-],[static struct sockaddr_in ac_i;int ac_j = sizeof (ac_i.sin_len);],
-[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_SIN_LEN,,sin_len)],
- AC_MSG_RESULT(no))
-
-dnl ----------------------------
-dnl check sun_len of sockaddr_un
-dnl ----------------------------
-AC_MSG_CHECKING(whether struct sockaddr_un has a sun_len field)
-AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/un.h>
-],[static struct sockaddr_un ac_i;int ac_j = sizeof (ac_i.sun_len);],
-[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_SUN_LEN,,sun_len)],
- AC_MSG_RESULT(no))
-
-dnl -----------------------------------
-dnl check sin6_scope_id of sockaddr_in6
-dnl -----------------------------------
-if test "$zebra_cv_ipv6" = yes; then
- AC_MSG_CHECKING(whether struct sockaddr_in6 has a sin6_scope_id field)
- AC_TRY_COMPILE([#include <sys/types.h>
-#include <netinet/in.h>
-],[static struct sockaddr_in6 ac_i;int ac_j = sizeof (ac_i.sin6_scope_id);],
-[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_SIN6_SCOPE_ID,,scope id)],
- AC_MSG_RESULT(no))
-fi
-
-dnl ----------------------------
-dnl check socklen_t exist or not
-dnl ----------------------------
-AC_MSG_CHECKING(whther socklen_t is defined)
-AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-],[socklen_t ac_x;],
-[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_SOCKLEN_T,,socklen_t)],
- AC_MSG_RESULT(no))
-
-dnl ------------------------
-dnl check struct sockaddr_dl
-dnl ------------------------
-AC_MSG_CHECKING(whether struct sockaddr_dl exist)
-AC_EGREP_HEADER(sockaddr_dl,
-net/if_dl.h,
-[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_SOCKADDR_DL,,sockaddr_dl)],
- AC_MSG_RESULT(no))
-
-dnl --------------------------
-dnl check structure ifaliasreq
-dnl --------------------------
-AC_MSG_CHECKING(whether struct ifaliasreq exist)
-AC_EGREP_HEADER(ifaliasreq,
-net/if.h,
-[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_IFALIASREQ,,ifaliasreq)],
- AC_MSG_RESULT(no))
-
-dnl ----------------------------
-dnl check structure in6_aliasreq
-dnl ----------------------------
-AC_MSG_CHECKING(whether struct in6_aliasreq exist)
-AC_EGREP_HEADER(in6_aliasreq,
-netinet6/in6_var.h,
-[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_IN6_ALIASREQ,,in6_aliasreq)],
- AC_MSG_RESULT(no))
-
-dnl -----------------------------------
-dnl check ifra_lifetime of in6_aliasreq
-dnl -----------------------------------
-AC_MSG_CHECKING(whether in6_aliasreq.ifra_lifetime exist)
-AC_TRY_COMPILE([#include <sys/types.h>
-#include <netinet6/in6_var.h>
-],[static struct if6_aliasreq ac_i;int ac_j = sizeof (ac_i.ifra_lifetime);],
-[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_IFRA_LIFETIME,,Have in6_aliasreq.ifra_lifetime)],
- AC_MSG_RESULT(no))
-
-dnl ---------------------------
-dnl check structure rt_addrinfo
-dnl ---------------------------
-AC_MSG_CHECKING(whether struct rt_addrinfo exist)
-AC_EGREP_HEADER(rt_addrinfo,
-net/route.h,
-[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_RT_ADDRINFO,,rt_addrinfo)],
- AC_MSG_RESULT(no))
-
-dnl --------------------------
-dnl check structure in_pktinfo
-dnl --------------------------
-AC_MSG_CHECKING(whether struct in_pktinfo exist)
-AC_TRY_COMPILE([#include <netinet/in.h>
-],[struct in_pktinfo ac_x;],
-[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_INPKTINFO,,in_pktinfo)],
- AC_MSG_RESULT(no))
-
-dnl --------------------------------------
-dnl checking for getrusage struct and call
-dnl --------------------------------------
-AC_MSG_CHECKING(whether getrusage is available)
-AC_TRY_COMPILE([#include <sys/resource.h>
-],[struct rusage ac_x; getrusage (RUSAGE_SELF, &ac_x);],
-[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_RUSAGE,,rusage)],
- AC_MSG_RESULT(no))
-
-dnl -------------------
-dnl capabilities checks
-dnl -------------------
-AC_MSG_CHECKING(whether prctl PR_SET_KEEPCAPS is available)
-AC_TRY_COMPILE([#include <sys/prctl.h>],[prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0);],
- [AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_PR_SET_KEEPCAPS,,prctl)
- zebra_ac_keepcaps="yes"],
- AC_MSG_RESULT(no)
-)
-if test x"${zebra_ac_keepcaps}" = x"yes"; then
- AC_CHECK_HEADERS(sys/capability.h)
-fi
-if test x"${ac_cv_header_sys_capability_h}" = x"yes"; then
- AC_CHECK_LIB(cap, cap_init,
- [AC_DEFINE(HAVE_LCAPS,1,Capabilities)
- LIBCAP="-lcap"
- ]
- )
-fi
-AC_SUBST(LIBCAP)
-
-dnl ---------------------------
-dnl check for glibc 'backtrace'
-dnl ---------------------------
-if test "${glibc}" = "yes"; then
- AC_CHECK_HEADER(execinfo.h)
-fi
-if test x"${ac_cv_header_execinfo_h}" = x"yes"; then
- AC_CHECK_FUNC(backtrace,
- [AC_DEFINE(HAVE_GLIBC_BACKTRACE,,Glibc backtrace)]
- )
-fi
-
-dnl -------------
-dnl check version
-dnl -------------
-file="${srcdir}/lib/version.h"
-VERSION=`sed -ne 's/^#.*ZEBRA_VERSION.*\"\([^\"]*\)\"$/\1/p' $file`
-AC_SUBST(VERSION)
-
-dnl ----------
-dnl configure date
-dnl ----------
-CONFDATE=`date '+%Y%m%d'`
-AC_SUBST(CONFDATE)
-
-dnl ------------------------------
-dnl set paths for state directory
-dnl ------------------------------
-if test "${prefix}" = "NONE"; then
- zebra_statedir_prefix="";
-else
- zebra_statedir_prefix=${prefix}
-fi
-if test "${localstatedir}" = '${prefix}/var'; then
- AC_CACHE_CHECK(state directory,ac_statedir,
- [for ZEBRA_STATE_DIR in ${zebra_statedir_prefix}/var/run dnl
- ${zebra_statedir_prefix}/var/adm dnl
- ${zebra_statedir_prefix}/etc dnl
- /var/run dnl
- /var/adm dnl
- /etc dnl
- /dev/null;
- do
- test -d $ZEBRA_STATE_DIR && break
- done
- zebra_statedir=$ZEBRA_STATE_DIR])
-else
- zebra_statedir=${localstatedir}
- AC_MSG_CHECKING(directory to use for state file)
- AC_MSG_RESULT(${zebra_statedir})
-fi
-if test $zebra_statedir = "/dev/null"; then
- echo "STATE DIRECTORY NOT FOUND!"
-fi
-
-AC_DEFINE_UNQUOTED(PATH_ZEBRA_PID, "$zebra_statedir/zebra.pid",zebra PID)
-AC_DEFINE_UNQUOTED(PATH_RIPD_PID, "$zebra_statedir/ripd.pid",ripd PID)
-AC_DEFINE_UNQUOTED(PATH_RIPNGD_PID, "$zebra_statedir/ripngd.pid",ripngd PID)
-AC_DEFINE_UNQUOTED(PATH_BGPD_PID, "$zebra_statedir/bgpd.pid",bgpd PID)
-AC_DEFINE_UNQUOTED(PATH_OSPFD_PID, "$zebra_statedir/ospfd.pid",ospfd PID)
-AC_DEFINE_UNQUOTED(PATH_OSPF6D_PID, "$zebra_statedir/ospf6d.pid",ospf6d PID)
-AC_DEFINE_UNQUOTED(ZEBRA_SERV_PATH, "$zebra_statedir/zserv.api",zebra api socket)
-AC_DEFINE_UNQUOTED(ZEBRA_VTYSH_PATH, "$zebra_statedir/zebra.vty",zebra vty socket)
-AC_DEFINE_UNQUOTED(RIP_VTYSH_PATH, "$zebra_statedir/ripd.vty",rip vty socket)
-AC_DEFINE_UNQUOTED(RIPNG_VTYSH_PATH, "$zebra_statedir/ripngd.vty",ripng vty socket)
-AC_DEFINE_UNQUOTED(BGP_VTYSH_PATH, "$zebra_statedir/bgpd.vty",bgpd vty socket)
-AC_DEFINE_UNQUOTED(OSPF_VTYSH_PATH, "$zebra_statedir/ospfd.vty",ospfd vty socket)
-AC_DEFINE_UNQUOTED(OSPF6_VTYSH_PATH, "$zebra_statedir/ospf6d.vty",ospf6d vty socket)
-
-dnl ---------------------------
-dnl Check htonl works correctly
-dnl ---------------------------
-AC_MSG_CHECKING(for working htonl)
-AC_CACHE_VAL(ac_cv_htonl_works, [
-AC_TRY_LINK([#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif],
-[htonl (0);],
-ac_cv_htonl_works=yes,
-ac_cv_htonl_works=no)])
-AC_MSG_RESULT($ac_cv_htonl_works)
-
-AC_OUTPUT(Makefile lib/Makefile zebra/Makefile ripd/Makefile
- ripngd/Makefile bgpd/Makefile ospfd/Makefile
- ospf6d/Makefile vtysh/Makefile doc/Makefile
- ospfclient/Makefile
- redhat/zebra.spec)
-
-echo "
-zebra configuration
--------------------
-zebra version : ${VERSION}
-host operationg system : ${host_os}
-source code location : ${srcdir}
-compiler : ${CC}
-compiler flags : ${CFLAGS}
-state file directory : ${zebra_statedir}
-linker flags : ${LDFLAGS} ${LIBS}
-"
diff --git a/doc/.cvsignore b/doc/.cvsignore
index 2916b2f7..75c36c2e 100644
--- a/doc/.cvsignore
+++ b/doc/.cvsignore
@@ -1,3 +1,4 @@
Makefile
+Makefile.in
draft-zebra-00.txt
zebra.info-*
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 8aa0c802..cfe6e0e2 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,7 +1,3 @@
-2003-01-22 Christian Hammers <ch@westend.com>
-
- * ospfd.texi (OSPF router, OSPF router): Add description.
-
2002-07-07 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
* zebra-0.93 released.
diff --git a/doc/Makefile.in b/doc/Makefile.in
deleted file mode 100644
index e7f706ee..00000000
--- a/doc/Makefile.in
+++ /dev/null
@@ -1,431 +0,0 @@
-# Makefile.in generated by automake 1.6.3 from Makefile.am.
-# @configure_input@
-
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = @program_transform_name@
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_alias = @host_alias@
-host_triplet = @host@
-
-EXEEXT = @EXEEXT@
-OBJEXT = @OBJEXT@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-AMTAR = @AMTAR@
-AR = @AR@
-AWK = @AWK@
-BGPD = @BGPD@
-CC = @CC@
-CPP = @CPP@
-CURSES = @CURSES@
-DEPDIR = @DEPDIR@
-IF_METHOD = @IF_METHOD@
-IF_PROC = @IF_PROC@
-INCLUDES = @INCLUDES@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-IPFORWARD = @IPFORWARD@
-KERNEL_METHOD = @KERNEL_METHOD@
-LIBPAM = @LIBPAM@
-LIB_IPV6 = @LIB_IPV6@
-LIB_REGEX = @LIB_REGEX@
-MULTIPATH_NUM = @MULTIPATH_NUM@
-OSPF6D = @OSPF6D@
-OSPFD = @OSPFD@
-OTHER_METHOD = @OTHER_METHOD@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-RIPD = @RIPD@
-RIPNGD = @RIPNGD@
-RTREAD_METHOD = @RTREAD_METHOD@
-RT_METHOD = @RT_METHOD@
-STRIP = @STRIP@
-VERSION = @VERSION@
-VTYSH = @VTYSH@
-ZEBRA = @ZEBRA@
-am__include = @am__include@
-am__quote = @am__quote@
-install_sh = @install_sh@
-
-info_TEXINFOS = zebra.texi
-
-zebra_TEXINFOS = appendix.texi basic.texi bgpd.texi filter.texi install.texi \
- ipv6.texi kernel.texi main.texi ospf6d.texi ospfd.texi overview.texi \
- protocol.texi ripd.texi ripngd.texi routemap.texi snmp.texi vtysh.texi
-
-
-man_MANS = vtysh.1 bgpd.8 ospf6d.8 ospfd.8 ripd.8 ripngd.8 zebra.8
-
-EXTRA_DIST = BGP-TypeCode draft-zebra-00.ms draft-zebra-00.txt $(man_MANS)
-subdir = doc
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-INFO_DEPS = zebra.info
-DVIS = zebra.dvi
-TEXINFOS = zebra.texi
-
-NROFF = nroff
-MANS = $(man_MANS)
-DIST_COMMON = $(zebra_TEXINFOS) ChangeLog Makefile.am Makefile.in \
- texinfo.tex
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .dvi .info .ps .texi
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
- cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign doc/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
-
-zebra.info: zebra.texi $(zebra_TEXINFOS)
-zebra.dvi: zebra.texi $(zebra_TEXINFOS)
-
-.texi.info:
- @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
- cd $(srcdir) \
- && $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
- `echo $< | sed 's,.*/,,'`
-
-.texi.dvi:
- TEXINPUTS="$(srcdir)$(PATH_SEPARATOR)$$TEXINPUTS" \
- MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
- $(TEXI2DVI) $<
-
-.texi:
- @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
- cd $(srcdir) \
- && $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
- `echo $< | sed 's,.*/,,'`
-
-MAKEINFO = @MAKEINFO@
-TEXI2DVI = texi2dvi
-DVIPS = dvips
-.dvi.ps:
- $(DVIPS) $< -o $@
-
-uninstall-info-am:
- $(PRE_UNINSTALL)
- @if (install-info --version && \
- install-info --version | fgrep -i -v debian) >/dev/null 2>&1; then \
- list='$(INFO_DEPS)'; \
- for file in $$list; do \
- echo " install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file"; \
- install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file; \
- done; \
- else :; fi
- @$(NORMAL_UNINSTALL)
- @list='$(INFO_DEPS)'; \
- for file in $$list; do \
- (if cd $(DESTDIR)$(infodir); then \
- echo " rm -f $$file $$file-[0-9] $$file-[0-9][0-9])"; \
- rm -f $$file $$file-[0-9] $$file-[0-9][0-9]; \
- else :; fi); \
- done
-
-dist-info: $(INFO_DEPS)
- list='$(INFO_DEPS)'; \
- for base in $$list; do \
- d=$(srcdir); \
- for file in $$d/$$base*; do \
- relfile=`expr "$$file" : "$$d/\(.*\)"`; \
- test -f $(distdir)/$$relfile || \
- cp -p $$file $(distdir)/$$relfile; \
- done; \
- done
-
-mostlyclean-aminfo:
- -rm -f zebra.aux zebra.cp zebra.cps zebra.dvi zebra.fn zebra.ky zebra.log \
- zebra.op zebra.pg zebra.ps zebra.tmp zebra.toc zebra.tp \
- zebra.vr
-
-maintainer-clean-aminfo:
- cd $(srcdir) && \
- list='$(INFO_DEPS)'; for i in $$list; do \
- rm -f $$i; \
- if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
- rm -f $$i-[0-9]*; \
- fi; \
- done
-
-man1dir = $(mandir)/man1
-install-man1: $(man1_MANS) $(man_MANS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(man1dir)
- @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.1*) list="$$list $$i" ;; \
- esac; \
- done; \
- for i in $$list; do \
- if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
- else file=$$i; fi; \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- case "$$ext" in \
- 1*) ;; \
- *) ext='1' ;; \
- esac; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
- $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
- done
-uninstall-man1:
- @$(NORMAL_UNINSTALL)
- @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.1*) list="$$list $$i" ;; \
- esac; \
- done; \
- for i in $$list; do \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
- rm -f $(DESTDIR)$(man1dir)/$$inst; \
- done
-
-man8dir = $(mandir)/man8
-install-man8: $(man8_MANS) $(man_MANS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(man8dir)
- @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.8*) list="$$list $$i" ;; \
- esac; \
- done; \
- for i in $$list; do \
- if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
- else file=$$i; fi; \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- case "$$ext" in \
- 8*) ;; \
- *) ext='8' ;; \
- esac; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst"; \
- $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst; \
- done
-uninstall-man8:
- @$(NORMAL_UNINSTALL)
- @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.8*) list="$$list $$i" ;; \
- esac; \
- done; \
- for i in $$list; do \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " rm -f $(DESTDIR)$(man8dir)/$$inst"; \
- rm -f $(DESTDIR)$(man8dir)/$$inst; \
- done
-tags: TAGS
-TAGS:
-
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
-
-distdir: $(DISTFILES)
- @list='$(DISTFILES)'; for file in $$list; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="${top_distdir}" distdir="$(distdir)" \
- dist-info
-check-am: all-am
-check: check-am
-all-am: Makefile $(INFO_DEPS) $(MANS)
-
-installdirs:
- $(mkinstalldirs) $(DESTDIR)$(infodir) $(DESTDIR)$(man1dir) $(DESTDIR)$(man8dir)
-
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-am
-
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am: $(DVIS)
-
-info: info-am
-
-info-am: $(INFO_DEPS)
-
-install-data-am: install-info-am install-man
-
-install-exec-am:
-
-install-info: install-info-am
-
-install-info-am: $(INFO_DEPS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(infodir)
- @list='$(INFO_DEPS)'; \
- for file in $$list; do \
- d=$(srcdir); \
- for ifile in echo $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9]; do \
- if test -f $$ifile; then \
- relfile=`expr "$$ifile" : "$$d/\(.*\)"`; \
- echo " $(INSTALL_DATA) $$ifile $(DESTDIR)$(infodir)/$$relfile"; \
- $(INSTALL_DATA) $$ifile $(DESTDIR)$(infodir)/$$relfile; \
- else : ; fi; \
- done; \
- done
- @$(POST_INSTALL)
- @if (install-info --version && \
- install-info --version | fgrep -i -v debian) >/dev/null 2>&1; then \
- list='$(INFO_DEPS)'; \
- for file in $$list; do \
- echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
- install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
- done; \
- else : ; fi
-install-man: install-man1 install-man8
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-
-maintainer-clean-am: distclean-am maintainer-clean-aminfo \
- maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-aminfo mostlyclean-generic
-
-uninstall-am: uninstall-info-am uninstall-man
-
-uninstall-man: uninstall-man1 uninstall-man8
-
-.PHONY: all all-am check check-am clean clean-generic dist-info \
- distclean distclean-generic distdir dvi dvi-am info info-am \
- install install-am install-data install-data-am install-exec \
- install-exec-am install-info install-info-am install-man \
- install-man1 install-man8 install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
- maintainer-clean-aminfo maintainer-clean-generic mostlyclean \
- mostlyclean-aminfo mostlyclean-generic uninstall uninstall-am \
- uninstall-info-am uninstall-man uninstall-man1 uninstall-man8
-
-
-draft-zebra-00.txt:
- groff -T ascii -ms draft-zebra-00.ms > draft-zebra-00.txt
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/doc/mpls/ChangeLog.opaque.txt b/doc/mpls/ChangeLog.opaque.txt
new file mode 100644
index 00000000..68ddf4c8
--- /dev/null
+++ b/doc/mpls/ChangeLog.opaque.txt
@@ -0,0 +1,179 @@
+----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * -----
+Changes 2001.12.03
+
+1. Bug fixes
+
+ 1.1 Though a new member "oi" has added to "struct ospf_lsa" to control
+ flooding scope of type-9 Opaque-LSAs, the value was always NULL
+ because no one set it.
+
+ 1.2 In the function "show_ip_ospf_database_summary()" and "show_lsa_
+ detail_adv_router()", VTY output for type-11 Opaque-LSAs did not
+ work properly.
+
+ 1.3 URL for the opaque-type assignment reference has changed.
+
+ 1.4 In the file "ospf_mpls_te.c", printf formats have changed to
+ avoid compiler warning messages; "%lu" -> "%u", "%lx" -> "%x".
+ Note that this hack depends on OS, compiler and their versions.
+
+ 1.5 One of attached documentation "opaque_lsa.txt" has changed to
+ reflect the latest coding.
+
+2. Feature enhancements
+
+ 2.1 Knowing that it is an ugly hack, an "officially unallocated"
+ opaque-type value 0 has newly introduced as a "wildcard",
+ which matches to all opaque-type.
+ This value must not be flooded to the network, of course.
+
+ 2.2 The Opaque-core module makes use of newly introduced hooks to
+ dispatch every LSDB change (LSA installation and deletion) to
+ preregistered opaque users.
+ Therefore, by providing appropriate callback functions as new
+ parameters of "ospf_register_opaque_functab()", an opaque user
+ can refer to every LSA instance to be installed into, or to be
+ deleted from, the LSDB.
+
+----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * -----
+Changes 2001.10.31
+
+1. Bug fixes
+
+ 1.1 Since each LSA has their own lifetime, they will remain in a
+ routing domain (being stored in LSDB of each router), until their
+ age naturally reach to MaxAge or explicitly being flushed by the
+ originated router. Therefore, if a router restarted with a short
+ downtime, it is possible that previously flooded self-originated
+ LSAs might received if the NSM status is not less than Exchange.
+
+ There were some problems in the way of handling self-originated
+ Opaque-LSAs if they are contained in a received LSUpd message,
+ but not installed to the local LSDB yet.
+ Regardless of some conditions to start originating Opaque-LSAs
+ (there should be at least one opaque-capable full-state neighbor),
+ the function "ospf_flood()" will be called to flood and install
+ this brand-new looking LSA.
+ As the result, when the NSM of an opaque-capable neighbor gets
+ full, internal state inconsistency happens; a user of Opaque-LSA
+ such as MPLS-TE can refer to self-originated LSAs in the local
+ LSDB, but cannot modify their contents...
+
+ Above problems have fixed with a policy "flush it from the whole
+ routing domain and keep silent until the flushing completed".
+ By using this sweeping technique, we can be free from confusion
+ caused by self-originated LSAs received via network.
+
+ 1.2 The function "ospf_opaque_type_name()" contained massive ifdefs
+ corresponding to each "opaque-type".
+ These unnecessary ifdefs are removed completely.
+
+ 1.3 In the function "ospf_delete_opaque_functab()", there was an
+ improper loop control that causes illegal memory access.
+ Original coding was "next = nextnode (node)".
+
+ 1.4 The function "ospf_mpls_te_ism_change()" could not handle the
+ case when the ISM changes from Waiting to DR/BDR/Other.
+ So, there was a case that even if one of an ISM become
+ operational and MPLS-TE module has started, the corresponding
+ Opaque-LSA cannot be originated.
+
+ 1.5 The function "ospf_opaque_lsa_reoriginate_schedule()" did not
+ allow to be called multiple times, simply because handling
+ module for the given "lsa-type & opaque-type" already exists.
+ But this assumption seems to be wrong.
+ Change the policy to allow this function to be called multiple
+ times and let the caller to decide what should do when the
+ corresponding callback function "(* functab->lsa_originator)()"
+ is called.
+
+2. Feature enhancements
+
+ 2.1 The global bitmap "opaque" has introduced instead of former flag
+ "OpaqueCapable", to store complex conditions to handle Opaque-LSAs.
+
+ 2.2 The MPLS-TE module now referes to "draft-katz-yeung-ospf-traffic
+ -06.txt", no significant changes with 05 version, though.
+
+----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * -----
+Changes 2001.08.03
+
+1. Bug fixes
+
+ 1.1 Even if the ospfd started with opaque capability enabled, when
+ the ospfd receives an unknown opaque-type (unregistered by the
+ function "ospf_register_opaque_functab()" beforehand), the LSA
+ was discarded. As the result, only the opaque-LSAs that have
+ commonly registered by opaque-capable ospf routers can be
+ flooded in a routing domain.
+
+ This behavior has fixed so that arbitrary opaque-type LSAs can
+ be flooded among opaque-capable ospf routers.
+ If the ospfd has opaque-LSA capability but disabled at runtime,
+ received opaque-LSAs can be accepted and registered to LSDB as
+ is, but not be flooded to the network; those opaque LSAs will
+ remain in LSDB until explicitly flushed by incoming LSUpd
+ messages with MaxAge, or their age naturally reaches to MaxAge.
+
+ 1.2 The function "ospf_register_opaque_functab()" did not check
+ if the entry corresponding to the given "lsa-type, opaque-type"
+ combination already exists or not.
+ This problem has fixed not to allow multiple registration.
+
+ 1.3 Since type-11 (AS external) LSAs will be flooded beyond areas,
+ there is little relationship between "struct lsa" and "struct
+ area". More specifically, the pointer address "lsa->area" can
+ be NULL if the lsa-type is 11, thus an illegal memory access
+ will happen. This problem has fixed.
+
+ 1.4 When self-originated opaque-LSAs are received via network and
+ if the corresponding opaque-type functions are not available
+ (they have already deleted) at that time, those LSAs were
+ dropped due to "unknown opaque-type" error.
+ After the problem 1.1 has fixed, those "self-originated" LSAs
+ were registered to LSDB and then flooded to the network, even
+ if the processing functions did not exist...
+
+ After all, this problem has fixed so that those LSAs should
+ explicitly be flushed from the routing domain immediately, if
+ the processing functions cannot find at that time.
+
+ 1.5 Some typo have fixed.
+
+ --- EXAMPLE ---
+ static int
+ opaque_lsa_originate_callback (list funclist, void *lsa_type_dependent)
+ ^^^^^
+ --- EXAMPLE ---
+
+2. Feature enhancements
+
+ 2.1 According to the description of rfc2328 in section 10.8, any
+ change in the router's optional capabilities should trigger
+ the option re-negotiation procedures with neighbors.
+
+ --- EXCERPT ---
+ If for some reason the router's optional
+ capabilities change, the Database Exchange procedure should be
+ restarted by reverting to neighbor state ExStart.
+ --- EXCERPT ---
+
+ For the opaque-capability changes, this feature has implemented.
+ More specifically, if "ospf opaque-lsa" or "no ospf opaque-lsa"
+ VTY command is given at runtime, all self-originated LSAs will
+ be flushed immediately and then all neighbor status will be
+ forced to ExStart by generating SeqNumberMismatch events.
+
+ 2.1 When we change opaque-capability dynamically (ON -> OFF -> ON),
+ there was no trigger at "OFF->ON" timing to reactivate opaque
+ LSA handling modules (such as MPLS-TE) that have once forcibly
+ stopped at "ON->OFF" timing.
+ Now this dynamic reactivation feature has added.
+
+ 2.2 The MPLS-TE module now referes to "draft-katz-yeung-ospf-traffic
+ -05.txt", no significant changes with 04 version, though.
+
+----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * -----
+Changes 2001.03.28
+
+ Initial release of Opaque-LSA/MPLS-TE extensions for the zebra/ospfd.
diff --git a/doc/mpls/cli_summary.txt b/doc/mpls/cli_summary.txt
new file mode 100644
index 00000000..c60d0aed
--- /dev/null
+++ b/doc/mpls/cli_summary.txt
@@ -0,0 +1,90 @@
+Summary of CLI commands, expanded for Opaque-LSA/MPLS-TE.
+---------------------------------------------------------
+
+router>
+
+ show ip ospf database (asbr-summary|external|max-age|network|router|self-originate|summary|opaque-link|opaque-area|opaque-external)
+
+ show ip ospf database (asbr-summary|external|network|router|summary|opaque-link|opaque-area|opaque-external) (self-originate|)
+
+ show ip ospf database (asbr-summary|external|network|router|summary|opaque-link|opaque-area|opaque-external) A.B.C.D
+
+ show ip ospf database (asbr-summary|external|network|router|summary|opaque-link|opaque-area|opaque-external) A.B.C.D (self-originate|)
+
+ show ip ospf database (asbr-summary|external|network|router|summary|opaque-link|opaque-area|opaque-external) A.B.C.D adv-router A.B.C.D
+
+ show ip ospf database (asbr-summary|external|network|router|summary|opaque-link|opaque-area|opaque-external) adv-router A.B.C.D
+
+ --> Add database items: opaque-link, opaque-area, opaque-external
+
+ show mpls-te interface [INTERFACE]
+
+ --> Show current MPLS-TE link-TLV parameters.
+ If [INTERFACE] is omitted, all interfaces will be displayed.
+
+ show mpls-te router
+
+ --> Show current MPLS-TE Router-TLV parameters.
+
+router> enable
+router#
+router# configure terminal
+router(config)# interface [INTERFACE]
+router(config-if)#
+
+ mpls-te link max-bw BANDWIDTH
+
+ --> Set MPLS-TE link-TLV parameter: Maximum Bandwidth (Bytes/sec).
+ In integer or floating point format (1000, or 1.0e3)
+
+ mpls-te link max-rsv-bw BANDWIDTH
+
+ --> Set MPLS-TE link-TLV parameter: Maximum Reservable Bandwidth (Bytes/sec).
+ In integer or floating point format (1000, or 1.0e3)
+
+ mpls-te link metric <0-4294967295>
+
+ --> Set MPLS-TE link-TLV parameter: MPLS-TE metric.
+
+ mpls-te link rsc-clsclr BITPATTERN
+
+ --> Set MPLS-TE link-TLV parameter: Resource Class/Color.
+ In 32-bit hexadecimal format, with leading "0x" (0x0 - 0xffffffff)
+
+ mpls-te link unrsv-bw <0-7> BANDWIDTH
+
+ --> Set MPLS-TE link-TLV parameter: Unreserved Bandwidth (Bytes/sec).
+ In integer or floating point format (1000, or 1.0e3)
+
+router(config-if)# exit
+router(config)# router ospf
+router(config-router)#
+
+ mpls-te
+
+ --> Enable MPLS-TE functionality.
+ Note that master-switch "ospf opaque-lsa" must also be specified.
+
+ mpls-te on
+
+ --> Alias of "mpls-te" command.
+
+ mpls-te router-address A.B.C.D
+
+ --> Set MPLS-TE Router-TLV parameter: Router Address.
+
+ no mpls-te
+
+ --> Disable MPLS-TE functionality.
+
+ no ospf opaque-lsa
+
+ --> Disable Opaque-LSAs capability.
+ This node behaves Opaque-incapable node.
+
+ ospf opaque-lsa
+
+ --> Enable Opaque-LSAs capability.
+ This is the master-switch to make this node Opaque-capable.
+
+router# exit
diff --git a/doc/mpls/opaque_lsa.txt b/doc/mpls/opaque_lsa.txt
new file mode 100644
index 00000000..7d5c7fed
--- /dev/null
+++ b/doc/mpls/opaque_lsa.txt
@@ -0,0 +1,365 @@
+1. List of "opaque-type dependent" callback functions per LSA-type.
+
+ <ospf_opaque_lsaN_functab> (N = 9,10,11)
+ |
+ | struct
+ | list struct struct
+ +-> +-------+ listnode listnode
+ | head |-----> +------+ +------
+ | tail | | next |--------------------> | next
+ | count | /--| prev |<---------------------| prev
+ +-------+ | data |----+ |
+ |///////| +------+ |
+ +-------+ |
+ |
+ struct |
+ ospf_opaque_tabent |
+ +----------------------+ <--+
+ | opaque_type |
+ +----------------------+
+ | (Callback functions) |
+ +----------------------+
+
+
+2. Self-originated Opaque-LSAs per LSA-type.
+
+2.1 Type-11 (AS-external) Opaque-LSAs
+
+ struct
+ ospf
+ +---> +-------------------+
+ | |///////////////////|
+ | +-------------------+
+ | | opaque |
+ | +-------------------+
+ | |///////////////////|
+ | +-------------------+
+ | | opaque_lsa_self |---+
+ | +-------------------+ |
+ | |///////////////////| |
+ | +-------------------+ |
+ | |
+ ......|.............................|.......................................
+ : | | Almost common for type-9,10,11 LSA :
+ : | +-----------------------+ :
+ : | | :
+ : | | struct :
+ : | | list struct struct :
+ : | +-> +-------+ listnode listnode :
+ : | | head |-----> +------+ +------ :
+ : | | tail | | next |--------------------> | next :
+ : | | count | /--| prev |<---------------------| prev :
+ : | +-------+ | data |---+ | :
+ : | |///////| +------+ | :
+ : | +-------+ | :
+ : | | :
+ : | struct | :
+ : | opaque_info_per_type | :
+ : | +-------------------+ <--------+ :
+ : | | opaque_type | <------------+ :
+ : | +-------------------+ | :
+ : | | status | | :
+ : | +-------------------+ | :
+ : | | t_opaque_lsa_self | | :
+ : | +-------------------+ | :
+ : +-----| owner | | struct :
+ : +-------------------+ | ospf_opaque_tabent :
+ : | functab |-------------------> +---------------- :
+ : +-------------------+ | | opaque_type :
+ : | id_list |---+ | |(Callback Funcs) :
+ : +-------------------+ | | | :
+ : | | :
+ : +-----------------------+ | :
+ : | | :
+ : | struct | :
+ : | list struct | struct :
+ : +-> +-------+ listnode | listnode :
+ : | head |-----> +------+ | +------ :
+ : | tail | | next |--------------------> | next :
+ : | count | /--| prev |<---------------------| prev :
+ : +-------+ | data |---+ | | :
+ : |///////| +------+ | | :
+ : +-------+ | | :
+ : | | :
+ : struct | | :
+ : opaque_info_per_id | | :
+ : +-------------------+ <--------+ | :
+ : | opaque_id | | :
+ : +-------------------+ | :
+ : | t_opaque_lsa_self | | :
+ : +-------------------+ | :
+ : | opqctl_type |--------------+ :
+ : +-------------------+ :
+ : | lsa |---+ :
+ : +-------------------+ | :
+ : | :
+ : struct | :
+ : ospf_lsa | :
+ : +-------------+ <-------+ :
+ : |/////////////| struct :
+ : +-------------+ lsa_header :
+ : | data |--------------> +-------- :
+ : +-------------+ | :
+ : |/////////////| :
+ : +-------------+ :
+ : +--------| area | :
+ : | +-------------+ :
+ : --- |/////////////| :
+ : +-------------+ :
+ : +-----| oi | :
+ : | +-------------+ :
+ : --- :
+ :..........................................................................:
+
+2.2 Type-10 (area-local) Opaque-LSAs
+
+ struct
+ ospf
+ +---------+ <-----------+
+ |/////////| |
+ +---------+ |
+ |
+ struct |
+ ospf_area |
+ +--+---> +-----------------+ |
+ | | | top |-----+
+ | | +-----------------+
+ | | |/////////////////| struct
+ | | +-----------------+ ospf_lsa
+ | | | router_lsa_self |-----------> +---------
+ | | +-----------------+ |
+ | | | opaque_lsa_self |-----+ |
+ | | +-----------------+ |
+ | | |/////////////////| |
+ | | +-----------------+ |
+ | | |
+ ...|..|.............................|.......................................
+ : | | | Almost common for type-9,10,11 LSA :
+ : | | +-----------------------+ :
+ : | | | :
+ : | | | struct :
+ : | | | list struct struct :
+ : | | +-> +-------+ listnode listnode :
+ : | | | head |-----> +------+ +------ :
+ : | | | tail | | next |--------------------> | next :
+ : | | | count | /--| prev |<---------------------| prev :
+ : | | +-------+ | data |---+ | :
+ : | | |///////| +------+ | :
+ : | | +-------+ | :
+ : | | | :
+ : | | struct | :
+ : | | opaque_info_per_type | :
+ : | | +-------------------+ <--------+ :
+ : | | | opaque_type | <------------+ :
+ : | | +-------------------+ | :
+ : | | | status | | :
+ : | | +-------------------+ | :
+ : | | | t_opaque_lsa_self | | :
+ : | | +-------------------+ | :
+ : | +-----| owner | | struct :
+ : | +-------------------+ | ospf_opaque_tabent :
+ : | | functab |-------------------> +---------------- :
+ : | +-------------------+ | | opaque_type :
+ : | | id_list |---+ | |(Callback Funcs) :
+ : | +-------------------+ | | | :
+ : | | | :
+ : | +-----------------------+ | :
+ : | | | :
+ : | | struct | :
+ : | | list struct | struct :
+ : | +-> +-------+ listnode | listnode :
+ : | | head |-----> +------+ | +------ :
+ : | | tail | | next |--------------------> | next :
+ : | | count | /--| prev |<---------------------| prev :
+ : | +-------+ | data |---+ | | :
+ : | |///////| +------+ | | :
+ : | +-------+ | | :
+ : | | | :
+ : | struct | | :
+ : | opaque_info_per_id | | :
+ : | +-------------------+ <--------+ | :
+ : | | opaque_id | | :
+ : | +-------------------+ | :
+ : | | t_opaque_lsa_self | | :
+ : | +-------------------+ | :
+ : | | opqctl_type |--------------+ :
+ : | +-------------------+ :
+ : | | lsa |---+ :
+ : | +-------------------+ | :
+ : | | :
+ : | struct | :
+ : | ospf_lsa | :
+ : | +-------------+ <-------+ :
+ : | |/////////////| struct :
+ : | +-------------+ lsa_header :
+ : | | data |--------------> +-------- :
+ : | +-------------+ | :
+ : | |/////////////| :
+ : | +-------------+ :
+ : +--------| area | :
+ : +-------------+ :
+ : |/////////////| :
+ : +-------------+ :
+ : +-----| oi | :
+ : | +-------------+ :
+ : --- :
+ :..........................................................................:
+
+2.3 Type-9 (link-local) Opaque-LSAs
+
+ struct
+ ospf_area
+ +------> +---------+ <---------+
+ | |/////////| |
+ | +---------+ |
+ | |
+ | struct |
+ | ospf_interface |
+ | +-+-> +-----------------+ |
+ | | | |/////////////////| |
+ | | | +-----------------+ |
+ | | | | area |---+
+ | | | +-----------------+
+ | | | |/////////////////| struct
+ | | | +-----------------+ ospf_lsa
+ | | | |network_lsa_self |-----------> +---------
+ | | | +-----------------+ |
+ | | | | opaque_lsa_self |-----+ |
+ | | | +-----------------+ |
+ | | | |/////////////////| |
+ | | | +-----------------+ |
+ | | | |
+ ...|..|.|...........................|.......................................
+ : | | | | Almost common for type-9,10,11 LSA :
+ : | | | +-----------------------+ :
+ : | | | | :
+ : | | | | struct :
+ : | | | | list struct struct :
+ : | | | +-> +-------+ listnode listnode :
+ : | | | | head |-----> +------+ +------ :
+ : | | | | tail | | next |--------------------> | next :
+ : | | | | count | /--| prev |<---------------------| prev :
+ : | | | +-------+ | data |---+ | :
+ : | | | |///////| +------+ | :
+ : | | | +-------+ | :
+ : | | | | :
+ : | | | struct | :
+ : | | | opaque_info_per_type | :
+ : | | | +-------------------+ <--------+ :
+ : | | | | opaque_type | <------------+ :
+ : | | | +-------------------+ | :
+ : | | | | status | | :
+ : | | | +-------------------+ | :
+ : | | | | t_opaque_lsa_self | | :
+ : | | | +-------------------+ | :
+ : | | +---| owner | | struct :
+ : | | +-------------------+ | ospf_opaque_tabent :
+ : | | | functab |-------------------> +---------------- :
+ : | | +-------------------+ | | opaque_type :
+ : | | | id_list |---+ | |(Callback Funcs) :
+ : | | +-------------------+ | | | :
+ : | | | | :
+ : | | +-----------------------+ | :
+ : | | | | :
+ : | | | struct | :
+ : | | | list struct | struct :
+ : | | +-> +-------+ listnode | listnode :
+ : | | | head |-----> +------+ | +------ :
+ : | | | tail | | next |--------------------> | next :
+ : | | | count | /--| prev |<---------------------| prev :
+ : | | +-------+ | data |---+ | | :
+ : | | |///////| +------+ | | :
+ : | | +-------+ | | :
+ : | | | | :
+ : | | struct | | :
+ : | | opaque_info_per_id | | :
+ : | | +-------------------+ <--------+ | :
+ : | | | opaque_id | | :
+ : | | +-------------------+ | :
+ : | | | t_opaque_lsa_self | | :
+ : | | +-------------------+ | :
+ : | | | opqctl_type |--------------+ :
+ : | | +-------------------+ :
+ : | | | lsa |---+ :
+ : | | +-------------------+ | :
+ : | | | :
+ : | | struct | :
+ : | | ospf_lsa | :
+ : | | +-------------+ <-------+ :
+ : | | |/////////////| struct :
+ : | | +-------------+ lsa_header :
+ : | | | data |--------------> +-------- :
+ : | | +-------------+ | :
+ : | | |/////////////| :
+ : | | +-------------+ :
+ : +--|-----| area | :
+ : | +-------------+ :
+ : | |/////////////| :
+ : | +-------------+ :
+ : +-----| oi | :
+ : +-------------+ :
+ :..........................................................................:
+
+
+3. Internal structures for MPLS-TE parameter management.
+
+ struct
+ ospf_mpls_te
+ +-------------+
+ | status |
+ +-------------+
+ | iflist |---+
+ +-------------+ |
+ |(Router-TLV) | |
+ +-------------+ |
+ |
+ +---------------------+
+ |
+ | struct
+ | list struct struct
+ +---> +-------+ listnode listnode
+ | head |-----> +------+ +------
+ | tail | | next |--------------------> | next
+ | count | /--| prev |<---------------------| prev
+ +-------+ | data |---+ |
+ |///////| +------+ |
+ +-------+ |
+ |
+ +--------------------------------+
+ |
+ | struct
+ | ospf_mpls_te_linkparms
+ +-> +----------------+
+ | instance | struct
+ +----------------+ interface
+ | ifp |--------------------> +----------+
+ +----------------+ +----> |//////////|
+ | area |----+ | +----------+
+ +----------------+ | | | info |-----+
+ | flags | | | +----------+ |
+ +----------------+ | | |//////////| |
+ | (Link-TLV) | | | +----------+ |
+ +----------------+ | | |
+ | (Link-SubTLVs) | | | struct |
+ +----------------+ | | ospf_if_info |
+ | | +----------+ <---+
+ | | |//////////|
+ struct | | +----------+
+ ospf_area | | | oifs |-----+
+ +-> +--------------+ <----+ | +----------+ |
+ | |//////////////| | |
+ | +--------------+ | struct |
+ | | route_table |
+ | struct | +-----------+ <--+
+ | ospf_interface | | route_top | - - - - -.
+ | +--------------+ <----+ | +-----------+ .
+ | |//////////////| | | .
+ | +--------------+ | | struct .
+ | | ifp |------|----------+ route_node .
+ | +--------------+ | +-----------+ < - - - -
+ | |//////////////| | |///////////|
+ | +--------------+ | +-----------+
+ +---| area | +-----------------| info |
+ +--------------+ +-----------+
+ |//////////////| |///////////|
+ +--------------+ +-----------+
diff --git a/doc/mpls/ospfd.conf b/doc/mpls/ospfd.conf
new file mode 100644
index 00000000..6be11f91
--- /dev/null
+++ b/doc/mpls/ospfd.conf
@@ -0,0 +1,75 @@
+!
+! Zebra configuration saved from vty
+! 2001/03/16 22:07:53
+!
+hostname HOSTNAME
+password PASSWORD
+log file /var/log/ospfd.log
+!
+debug ospf ism
+debug ospf nsm
+debug ospf lsa
+debug ospf zebra
+debug ospf event
+debug ospf packet all detail
+!
+!
+interface fxp0
+ ip ospf hello-interval 60
+ ip ospf dead-interval 240
+ mpls-te link metric 999
+ mpls-te link max-bw 1.25e+06
+ mpls-te link max-rsv-bw 1.25e+06
+ mpls-te link unrsv-bw 0 1.25e+06
+ mpls-te link unrsv-bw 1 1.25e+06
+ mpls-te link unrsv-bw 2 1.25e+06
+ mpls-te link unrsv-bw 3 1.25e+06
+ mpls-te link unrsv-bw 4 1.25e+06
+ mpls-te link unrsv-bw 5 1.25e+06
+ mpls-te link unrsv-bw 6 1.25e+06
+ mpls-te link unrsv-bw 7 1.25e+06
+ mpls-te link rsc-clsclr 0xab
+!
+interface de1
+ ip ospf hello-interval 60
+ ip ospf dead-interval 240
+ mpls-te link metric 111
+ mpls-te link max-bw 1.25e+06
+ mpls-te link max-rsv-bw 1.25e+06
+ mpls-te link unrsv-bw 0 1.25e+06
+ mpls-te link unrsv-bw 1 1.25e+06
+ mpls-te link unrsv-bw 2 1.25e+06
+ mpls-te link unrsv-bw 3 1.25e+06
+ mpls-te link unrsv-bw 4 1.25e+06
+ mpls-te link unrsv-bw 5 1.25e+06
+ mpls-te link unrsv-bw 6 1.25e+06
+ mpls-te link unrsv-bw 7 1.25e+06
+ mpls-te link rsc-clsclr 0xcd
+!
+interface de0
+ mpls-te link metric 0
+ mpls-te link rsc-clsclr 0x0
+!
+interface lp0
+ ip ospf network point-to-point
+!
+interface tun0
+ ip ospf network point-to-point
+!
+interface sl0
+ ip ospf network point-to-point
+!
+interface ppp0
+ ip ospf network point-to-point
+!
+interface lo0
+!
+router ospf
+ compatible rfc1583
+ network 192.168.0.0/16 area 1
+ ospf opaque-lsa
+ mpls-te
+ mpls-te router-address 1.2.3.4
+!
+line vty
+!
diff --git a/doc/ospfd.texi b/doc/ospfd.texi
index adbf45ef..2c24a210 100644
--- a/doc/ospfd.texi
+++ b/doc/ospfd.texi
@@ -53,7 +53,8 @@ number.
@deffnx {OSPF Command} {no ospf abr-type @var{type}} {}
@var{type} can be cisco|ibm|shortcut|standard
More information regarding the behaviour controlled by this command can
-be found in draft-ietf-ospf-abr-alt-05.txt.
+be found in draft-ietf-ospf-abr-alt-05.txt and
+draft-ietf-ospf-shortcut-abr-02.txt
Quote: "Though the definition of the Area Border Router (ABR)
in the OSPF specification does not require a router with multiple
attached areas to have a backbone connection, it is actually
@@ -66,10 +67,10 @@ behaviors implemented in Cisco and IBM routers."
@deffn {OSPF Command} {ospf rfc1583compatibility} {}
@deffnx {OSPF Command} {no ospf rfc1583compatibility} {}
-This rfc2328, the sucessor to rfc1583, suggests according to section
+This rfc2328, the sucessor to rfc1583, suggests according to section
G.2 (changes) in section 16.4 a change to the path preference
algorithm that prevents possible routing loops that were possible in
-the old version of OSPFv2. More specificly it demands that inter-area
+the old version of OSPFv2. More specifically it demands that inter-area
paths and intra-area path are now of equal preference but still both
preferred to external paths.
@end deffn
diff --git a/doc/zebra.info b/doc/zebra.info
index eb17a2d0..ca805e12 100644
--- a/doc/zebra.info
+++ b/doc/zebra.info
@@ -8,8 +8,8 @@ END-INFO-DIR-ENTRY
This file documents the GNU Zebra software which manages common
TCP/IP routing protocols.
- This is Edition 0.1, last updated 26 January 2003 of `The GNU Zebra
-Manual', for Zebra Version 0.94.
+ This is Edition 0.1, last updated 12 September 2002 of `The GNU
+Zebra Manual', for Zebra Version 0.93b.
Copyright (C) 1999, 2000, 2001, 2002 Kunihiro Ishiguro
@@ -29,142 +29,142 @@ translation approved by Kunihiro Ishiguro.

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

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

End Tag Table
diff --git a/doc/zebra.texi b/doc/zebra.texi
index 965e0590..d09ff4d6 100644
--- a/doc/zebra.texi
+++ b/doc/zebra.texi
@@ -9,9 +9,9 @@
@c Set variables
@set EDITION 0.1
-@set VERSION 0.94
-@set UPDATED 26 January 2003
-@set UPDATED-MONTH January 2003
+@set VERSION 0.93b
+@set UPDATED 12 September 2002
+@set UPDATED-MONTH September 2002
@c These may vary with installation environment.
@set INSTALL_PREFIX_ETC /usr/local/etc
diff --git a/guile/.cvsignore b/guile/.cvsignore
index bdcccd62..d03f2388 100644
--- a/guile/.cvsignore
+++ b/guile/.cvsignore
@@ -1,3 +1,4 @@
Makefile
*.o
zebra-guile
+Makefile.in
diff --git a/init/ChangeLog b/init/ChangeLog
deleted file mode 100644
index 90d3d248..00000000
--- a/init/ChangeLog
+++ /dev/null
@@ -1,39 +0,0 @@
-2001-08-19 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
-
- * zebra-0.92a released
-
-2001-08-15 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
-
- * zebra-0.92 released.
-
-2001-02-01 Kunihiro Ishiguro <kunihiro@zebra.org>
-
- * zebra-0.91 is released.
-
-2001-01-09 Kunihiro Ishiguro <kunihiro@zebra.org>
-
- * zebra-0.90 is released.
-
-2000-11-06 Lennert Buytenhek <buytenh@gnu.org>
-
- * redhat/zebra.spec.in: Don't include ospf6d and ripngd in
- package.
-
- * redhat/zebra.logrotate: Fix logrotate file (add ospf.log).
-
-2000-10-02 Horms <horms@vergenet.net>
-
- * redhat/zebra.spec.in: Moved chkconfig --del operations from
- %postun to %preun, as chkconfig needs to run while the init files
- are still present on the system.
-
- * redhat/zebra.logrotate: New file is added.
-
-2000-09-18 Lennert Buytenhek <buytenh@gnu.org>
-
- * redhat/zebra.spec.in: New file is added.
- redhat/ripd.init: Likewise.
- redhat/ripngd.init: Likewise.
- redhat/ospfd.init: Likewise.
- redhat/ospf6d.init: Likewise.
- redhat/bgpd.init: Likewise.
diff --git a/init/redhat/zebra.logrotate b/init/redhat/zebra.logrotate
deleted file mode 100644
index 0d13baf7..00000000
--- a/init/redhat/zebra.logrotate
+++ /dev/null
@@ -1,47 +0,0 @@
-/var/log/zebra/zebra.log {
- notifempty
- missingok
- postrotate
- /usr/bin/killall -USR1 zebra
- endscript
-}
-
-/var/log/zebra/bgpd.log {
- notifempty
- missingok
- postrotate
- /usr/bin/killall -USR1 bgpd
- endscript
-}
-
-/var/log/zebra/ospf.log {
- notifempty
- missingok
- postrotate
- /usr/bin/killall -USR1 ospfd
- endscript
-}
-
-/var/log/zebra/ospf6.log {
- notifempty
- missingok
- postrotate
- /usr/bin/killall -USR1 ospf6d
- endscript
-}
-
-/var/log/zebra/rip.log {
- notifempty
- missingok
- postrotate
- /usr/bin/killall -USR1 ripd
- endscript
-}
-
-/var/log/zebra/ripng.log {
- notifempty
- missingok
- postrotate
- /usr/bin/killall -USR1 ripng
- endscript
-}
diff --git a/init/redhat/zebra.spec.in b/init/redhat/zebra.spec.in
deleted file mode 100644
index e517a46f..00000000
--- a/init/redhat/zebra.spec.in
+++ /dev/null
@@ -1,128 +0,0 @@
-%define version @VERSION@
-
-Summary: Zebra routing engine
-Name: zebra
-Version: %{version}
-Release: 1
-Source: zebra-%{version}.tar.gz
-URL: http://www.zebra.org
-Copyright: GPL
-Group: System Environment/Daemons
-BuildRoot: /tmp/zebra-%{version}-root
-
-%description
-GNU Zebra is free software (distributed under GNU Generic Public License)
-that manages TCP/IP based routing protocols. It supports BGP-4 protocol as
-described in RFC1771 (A Border Gateway Protocol 4) as well as RIPv1, RIPv2
-and OSPFv2. Unlike traditional, Gated based, monolithic architectures and
-even the so-called "new modular architectures" that remove the burden of
-processing routing functions from the cpu and utilize special ASIC chips
-instead, Zebra software offers true modularity.
-
-%prep
-%setup
-
-%build
-#./configure --enable-snmp --prefix=/usr --sysconfdir=/etc
-./configure --prefix=/usr --sysconfdir=/etc
-make
-
-%install
-rm -rf $RPM_BUILD_ROOT
-make DESTDIR=$RPM_BUILD_ROOT install
-rm -f $RPM_BUILD_ROOT/usr/info/dir
-rm -f $RPM_BUILD_ROOT/usr/man/man8/ospf6*
-rm -f $RPM_BUILD_ROOT/usr/man/man8/ripng*
-rm -f $RPM_BUILD_ROOT/usr/sbin/ospf6d
-rm -f $RPM_BUILD_ROOT/usr/sbin/ripngd
-strip $RPM_BUILD_ROOT/usr/sbin/*
-
-mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
-install -m755 init/redhat/bgpd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/bgpd
-#install -m755 init/redhat/ospf6d.init $RPM_BUILD_ROOT/etc/rc.d/init.d/ospf6d
-install -m755 init/redhat/ospfd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/ospfd
-install -m755 init/redhat/ripd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/ripd
-#install -m755 init/redhat/ripngd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/ripngd
-install -m755 init/redhat/zebra.init $RPM_BUILD_ROOT/etc/rc.d/init.d/zebra
-
-mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
-install -m644 init/redhat/zebra.logrotate $RPM_BUILD_ROOT/etc/logrotate.d/zebra
-
-
-%post
-# zebra_spec_add_service <sercice name> <port/proto> <comment>
-# e.g. zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
-
-zebra_spec_add_service ()
-{
- # Add port /etc/services entry if it isn't already there
- if [ -f /etc/services ] && ! grep -q "^$1[^a-zA-Z0-9]" /etc/services ; then
- echo "$1 $2 # $3" >> /etc/services
- fi
-}
-
-zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
-zebra_spec_add_service zebra 2601/tcp "zebra vty"
-zebra_spec_add_service ripd 2602/tcp "RIPd vty"
-zebra_spec_add_service ripngd 2603/tcp "RIPngd vty"
-zebra_spec_add_service ospfd 2604/tcp "OSPFd vty"
-zebra_spec_add_service bgpd 2605/tcp "BGPd vty"
-zebra_spec_add_service ospf6d 2606/tcp "OSPF6d vty"
-
-#Install info
-/sbin/install-info /usr/info/zebra.info /usr/info/dir
-
-if [ -x /sbin/chkconfig ]; then
- chkconfig --add bgpd
-# chkconfig --add ospf6d
- chkconfig --add ospfd
- chkconfig --add ripd
-# chkconfig --add ripngd
- chkconfig --add zebra
-fi
-
-
-%preun
-if [ "$1" = 0 ] ; then
- /sbin/install-info --delete /usr/info/zebra.info /usr/info/dir
-
- if [ -x /sbin/chkconfig ]; then
- chkconfig --del bgpd
-# chkconfig --del ospf6d
- chkconfig --del ospfd
- chkconfig --del ripd
-# chkconfig --del ripngd
- chkconfig --del zebra
- fi
-fi
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-rm -rf $RPM_BUILD_DIR/%{name}-%{version}
-
-%files
-%attr(-,root,root) %doc AUTHORS COPYING ChangeLog INSTALL NEWS README SERVICES TODO bgpd/bgpd.conf.sample ospfd/ospfd.conf.sample ripd/ripd.conf.sample zebra/zebra.conf.sample
-%attr(-,root,root) %config /etc/rc.d/init.d/*
-%attr(-,root,root) %config /etc/logrotate.d/*
-%attr(-,root,root) /usr/info/*
-#%attr(-,root,root) /usr/man/* # Not man1 to exclude vtysh man page as
- # it is not build by default (for now)
-%attr(-,root,root) /usr/man/man8/*
-%attr(-,root,root) /usr/sbin/*
-
-%changelog
-* Mon Nov 6 2000 Lennert Buytenhek <buytenh@gnu.org>
-- Don't include ospf6d and ripngd in package.
-- Fix logrotate file (add ospf.log).
-* Mon Oct 2 2000 Horms <horms@valinux.com>
-- Install and uninstall info in %post and %preun respectively
-- Moved chkconfig --del operations from %postun to %preun, as
- chkconfig needs to run while the init files are still present on
- the system.
-- Don't install vtysh man page as vtysh is not build by default
-- Added logrotate script so logs won't grow without bound
-* Wed Sep 27 2000 Horms <horms@vergenet.net>
-- Add ports to /etc/services if they aren't there
-- forcibly remove $RPM_BUILD_ROOT/usr/info/dir and friends so
- there is no error if it does not exist when rm is run.
-- Clean up the zebra build dir
diff --git a/lib/.cvsignore b/lib/.cvsignore
index 051b8e4f..b8e258be 100644
--- a/lib/.cvsignore
+++ b/lib/.cvsignore
@@ -1,4 +1,5 @@
Makefile
+Makefile.in
*.o
version.c
.deps
diff --git a/lib/ChangeLog b/lib/ChangeLog
index b4d0ae12..71fb42c3 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,16 @@
+2003-05-24 Anil Madhavapeddy
+
+ * (sockunion.c): Incorrect bounds specified in sockunion_log()
+
+2003-05-08 Sergiy Vyshnevetskiy <serg @ vostok.net>
+
+ * vty.c: -A option
+
+2003-04-19 Hasso Tepper <hasso@estpak.ee>
+
+ * rip_routemap.c: sync daemon's route-map commands to have same
+ syntax
+
2002-09-28 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
* vty.c (vty_flush): One line more on vty.
diff --git a/lib/Makefile.am b/lib/Makefile.am
index d041770d..02680603 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -10,9 +10,9 @@ libzebra_a_SOURCES = \
print_version.c checksum.c vector.c linklist.c vty.c command.c \
sockunion.c prefix.c thread.c if.c memory.c buffer.c table.c hash.c \
filter.c routemap.c distribute.c stream.c str.c log.c plist.c \
- zclient.c sockopt.c smux.c md5.c if_rmap.c keychain.c privs.c debug.c
+ zclient.c sockopt.c smux.c md5.c if_rmap.c keychain.c
-libzebra_a_DEPENDENCIES = @LIB_REGEX@ @LIBCAP@
+libzebra_a_DEPENDENCIES = @LIB_REGEX@
libzebra_a_LIBADD = @LIB_REGEX@
@@ -20,8 +20,7 @@ noinst_HEADERS = \
buffer.h command.h filter.h getopt.h hash.h if.h linklist.h log.h \
memory.h network.h prefix.h routemap.h distribute.h sockunion.h \
str.h stream.h table.h thread.h vector.h version.h vty.h zebra.h \
- plist.h zclient.h sockopt.h smux.h md5-gnu.h if_rmap.h keychain.h \
- privs.h debug.h
+ plist.h zclient.h sockopt.h smux.h md5-gnu.h if_rmap.h keychain.h
EXTRA_DIST = regex.c regex-gnu.h
diff --git a/lib/Makefile.in b/lib/Makefile.in
deleted file mode 100644
index 3ea28bf5..00000000
--- a/lib/Makefile.in
+++ /dev/null
@@ -1,399 +0,0 @@
-# Makefile.in generated by automake 1.6.3 from Makefile.am.
-# @configure_input@
-
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = @program_transform_name@
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_alias = @host_alias@
-host_triplet = @host@
-
-EXEEXT = @EXEEXT@
-OBJEXT = @OBJEXT@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-AMTAR = @AMTAR@
-AR = @AR@
-AWK = @AWK@
-BGPD = @BGPD@
-CC = @CC@
-CPP = @CPP@
-CURSES = @CURSES@
-DEPDIR = @DEPDIR@
-IF_METHOD = @IF_METHOD@
-IF_PROC = @IF_PROC@
-
-INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-IPFORWARD = @IPFORWARD@
-KERNEL_METHOD = @KERNEL_METHOD@
-LIBPAM = @LIBPAM@
-LIB_IPV6 = @LIB_IPV6@
-LIB_REGEX = @LIB_REGEX@
-MULTIPATH_NUM = @MULTIPATH_NUM@
-OSPF6D = @OSPF6D@
-OSPFD = @OSPFD@
-OTHER_METHOD = @OTHER_METHOD@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-RIPD = @RIPD@
-RIPNGD = @RIPNGD@
-RTREAD_METHOD = @RTREAD_METHOD@
-RT_METHOD = @RT_METHOD@
-STRIP = @STRIP@
-VERSION = @VERSION@
-VTYSH = @VTYSH@
-ZEBRA = @ZEBRA@
-am__include = @am__include@
-am__quote = @am__quote@
-install_sh = @install_sh@
-DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
-
-noinst_LIBRARIES = libzebra.a
-
-libzebra_a_SOURCES = \
- version.c network.c pid_output.c getopt.c getopt1.c daemon.c \
- print_version.c checksum.c vector.c linklist.c vty.c command.c \
- sockunion.c prefix.c thread.c if.c memory.c buffer.c table.c hash.c \
- filter.c routemap.c distribute.c stream.c str.c log.c plist.c \
- zclient.c sockopt.c smux.c md5.c if_rmap.c keychain.c
-
-
-libzebra_a_DEPENDENCIES = @LIB_REGEX@
-
-libzebra_a_LIBADD = @LIB_REGEX@
-
-noinst_HEADERS = \
- buffer.h command.h filter.h getopt.h hash.h if.h linklist.h log.h \
- memory.h network.h prefix.h routemap.h distribute.h sockunion.h \
- str.h stream.h table.h thread.h vector.h version.h vty.h zebra.h \
- plist.h zclient.h sockopt.h smux.h md5-gnu.h if_rmap.h keychain.h
-
-
-EXTRA_DIST = regex.c regex-gnu.h
-subdir = lib
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LIBRARIES = $(noinst_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@
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-@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 \
-@AMDEP_TRUE@ ./$(DEPDIR)/routemap.Po ./$(DEPDIR)/smux.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/sockopt.Po ./$(DEPDIR)/sockunion.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/str.Po ./$(DEPDIR)/stream.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/table.Po ./$(DEPDIR)/thread.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/vector.Po ./$(DEPDIR)/version.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/vty.Po ./$(DEPDIR)/zclient.Po
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-CFLAGS = @CFLAGS@
-DIST_SOURCES = $(libzebra_a_SOURCES)
-HEADERS = $(noinst_HEADERS)
-
-DIST_COMMON = $(noinst_HEADERS) ChangeLog Makefile.am Makefile.in
-SOURCES = $(libzebra_a_SOURCES)
-
-all: all-am
-
-.SUFFIXES:
-.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) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_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 *.$(OBJEXT) core *.core
-
-distclean-compile:
- -rm -f *.tab.c
-
-@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@
-
-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:
-
-ETAGS = etags
-ETAGSFLAGS =
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(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; }'`; \
- mkid -fID $$unique
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(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)$$tags$$unique" \
- || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
-
-distdir: $(DISTFILES)
- @list='$(DISTFILES)'; for file in $$list; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES) $(HEADERS)
-
-installdirs:
-
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
-
-distclean: distclean-am
-
-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-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-uninstall-am: uninstall-info-am
-
-.PHONY: GTAGS all all-am check check-am clean clean-generic \
- clean-noinstLIBRARIES 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-strip installcheck \
- installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic tags uninstall uninstall-am \
- uninstall-info-am
-
-
-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/lib/distribute.c b/lib/distribute.c
index d5893a5b..59dbc5a4 100644
--- a/lib/distribute.c
+++ b/lib/distribute.c
@@ -327,6 +327,14 @@ DEFUN (distribute_list_all,
return CMD_SUCCESS;
}
+ALIAS (distribute_list_all,
+ ipv6_distribute_list_all_cmd,
+ "distribute-list WORD (in|out)",
+ "Filter networks in routing updates\n"
+ "Access-list name\n"
+ "Filter incoming routing updates\n"
+ "Filter outgoing routing updates\n")
+
DEFUN (no_distribute_list_all,
no_distribute_list_all_cmd,
"no distribute-list WORD (in|out)",
@@ -360,6 +368,15 @@ DEFUN (no_distribute_list_all,
return CMD_SUCCESS;
}
+ALIAS (no_distribute_list_all,
+ no_ipv6_distribute_list_all_cmd,
+ "no distribute-list WORD (in|out)",
+ NO_STR
+ "Filter networks in routing updates\n"
+ "Access-list name\n"
+ "Filter incoming routing updates\n"
+ "Filter outgoing routing updates\n")
+
DEFUN (distribute_list,
distribute_list_cmd,
"distribute-list WORD (in|out) WORD",
@@ -389,6 +406,15 @@ DEFUN (distribute_list,
return CMD_SUCCESS;
}
+ALIAS (distribute_list,
+ ipv6_distribute_list_cmd,
+ "distribute-list WORD (in|out) WORD",
+ "Filter networks in routing updates\n"
+ "Access-list name\n"
+ "Filter incoming routing updates\n"
+ "Filter outgoing routing updates\n"
+ "Interface name\n")
+
DEFUN (no_districute_list, no_distribute_list_cmd,
"no distribute-list WORD (in|out) WORD",
NO_STR
@@ -421,6 +447,15 @@ DEFUN (no_districute_list, no_distribute_list_cmd,
return CMD_SUCCESS;
}
+ALIAS (no_districute_list, no_ipv6_distribute_list_cmd,
+ "no distribute-list WORD (in|out) WORD",
+ NO_STR
+ "Filter networks in routing updates\n"
+ "Access-list name\n"
+ "Filter incoming routing updates\n"
+ "Filter outgoing routing updates\n"
+ "Interface name\n")
+
DEFUN (districute_list_prefix_all,
distribute_list_prefix_all_cmd,
"distribute-list prefix WORD (in|out)",
@@ -451,6 +486,15 @@ DEFUN (districute_list_prefix_all,
return CMD_SUCCESS;
}
+ALIAS (districute_list_prefix_all,
+ ipv6_distribute_list_prefix_all_cmd,
+ "distribute-list prefix WORD (in|out)",
+ "Filter networks in routing updates\n"
+ "Filter prefixes in routing updates\n"
+ "Name of an IP prefix-list\n"
+ "Filter incoming routing updates\n"
+ "Filter outgoing routing updates\n")
+
DEFUN (no_districute_list_prefix_all,
no_distribute_list_prefix_all_cmd,
"no distribute-list prefix WORD (in|out)",
@@ -485,6 +529,16 @@ DEFUN (no_districute_list_prefix_all,
return CMD_SUCCESS;
}
+ALIAS (no_districute_list_prefix_all,
+ no_ipv6_distribute_list_prefix_all_cmd,
+ "no distribute-list prefix WORD (in|out)",
+ NO_STR
+ "Filter networks in routing updates\n"
+ "Filter prefixes in routing updates\n"
+ "Name of an IP prefix-list\n"
+ "Filter incoming routing updates\n"
+ "Filter outgoing routing updates\n")
+
DEFUN (districute_list_prefix, distribute_list_prefix_cmd,
"distribute-list prefix WORD (in|out) WORD",
"Filter networks in routing updates\n"
@@ -515,6 +569,15 @@ DEFUN (districute_list_prefix, distribute_list_prefix_cmd,
return CMD_SUCCESS;
}
+ALIAS (districute_list_prefix, ipv6_distribute_list_prefix_cmd,
+ "distribute-list prefix WORD (in|out) WORD",
+ "Filter networks in routing updates\n"
+ "Filter prefixes in routing updates\n"
+ "Name of an IP prefix-list\n"
+ "Filter incoming routing updates\n"
+ "Filter outgoing routing updates\n"
+ "Interface name\n")
+
DEFUN (no_districute_list_prefix, no_distribute_list_prefix_cmd,
"no distribute-list prefix WORD (in|out) WORD",
NO_STR
@@ -549,6 +612,16 @@ DEFUN (no_districute_list_prefix, no_distribute_list_prefix_cmd,
return CMD_SUCCESS;
}
+ALIAS (no_districute_list_prefix, no_ipv6_distribute_list_prefix_cmd,
+ "no distribute-list prefix WORD (in|out) WORD",
+ NO_STR
+ "Filter networks in routing updates\n"
+ "Filter prefixes in routing updates\n"
+ "Name of an IP prefix-list\n"
+ "Filter incoming routing updates\n"
+ "Filter outgoing routing updates\n"
+ "Interface name\n")
+
int
config_show_distribute (struct vty *vty)
{
@@ -695,15 +768,23 @@ distribute_list_init (int node)
{
disthash = hash_create (distribute_hash_make, distribute_cmp);
- install_element (node, &distribute_list_all_cmd);
- install_element (node, &no_distribute_list_all_cmd);
-
- install_element (node, &distribute_list_cmd);
- install_element (node, &no_distribute_list_cmd);
-
- install_element (node, &distribute_list_prefix_all_cmd);
- install_element (node, &no_distribute_list_prefix_all_cmd);
-
- install_element (node, &distribute_list_prefix_cmd);
- install_element (node, &no_distribute_list_prefix_cmd);
+ if(node==RIP_NODE) {
+ install_element (RIP_NODE, &distribute_list_all_cmd);
+ install_element (RIP_NODE, &no_distribute_list_all_cmd);
+ install_element (RIP_NODE, &distribute_list_cmd);
+ install_element (RIP_NODE, &no_distribute_list_cmd);
+ install_element (RIP_NODE, &distribute_list_prefix_all_cmd);
+ install_element (RIP_NODE, &no_distribute_list_prefix_all_cmd);
+ install_element (RIP_NODE, &distribute_list_prefix_cmd);
+ install_element (RIP_NODE, &no_distribute_list_prefix_cmd);
+ } else {
+ install_element (RIPNG_NODE, &ipv6_distribute_list_all_cmd);
+ install_element (RIPNG_NODE, &no_ipv6_distribute_list_all_cmd);
+ install_element (RIPNG_NODE, &ipv6_distribute_list_cmd);
+ install_element (RIPNG_NODE, &no_ipv6_distribute_list_cmd);
+ install_element (RIPNG_NODE, &ipv6_distribute_list_prefix_all_cmd);
+ install_element (RIPNG_NODE, &no_ipv6_distribute_list_prefix_all_cmd);
+ install_element (RIPNG_NODE, &ipv6_distribute_list_prefix_cmd);
+ install_element (RIPNG_NODE, &no_ipv6_distribute_list_prefix_cmd);
+ }
}
diff --git a/lib/if.c b/lib/if.c
index bbf22ab1..f003754a 100644
--- a/lib/if.c
+++ b/lib/if.c
@@ -189,11 +189,13 @@ if_lookup_address (struct in_addr src)
listnode node;
struct prefix addr;
struct prefix best;
+ struct prefix peer;
listnode cnode;
struct interface *ifp;
struct prefix *p;
struct connected *c;
struct interface *match;
+ int prefixlen;
/* Zero structures - get rid of rubbish from stack */
memset(&addr, 0, sizeof(addr));
@@ -212,34 +214,24 @@ if_lookup_address (struct in_addr src)
for (cnode = listhead (ifp->connected); cnode; nextnode (cnode))
{
c = getdata (cnode);
+ p = c->address;
- if (if_is_pointopoint (ifp))
+ if (p->family == AF_INET)
{
- p = c->address;
+ prefixlen = p->prefixlen;
- if (p && p->family == AF_INET)
+ if (if_is_pointopoint (ifp) ||
+ prefixlen >= IPV4_MAX_PREFIXLEN - 1)
{
-#ifdef OLD_RIB /* PTP links are conventionally identified
- by the address of the far end - MAG */
- if (IPV4_ADDR_SAME (&p->u.prefix4, &src))
- return ifp;
-#endif
- p = c->destination;
- if (p && IPV4_ADDR_SAME (&p->u.prefix4, &src))
- return ifp;
+ peer = *c->destination;
+ peer.prefixlen = prefixlen;
+ p = &peer;
}
- }
- else
- {
- p = c->address;
- if (p->family == AF_INET)
+ if (prefix_match (p, &addr) && prefixlen > best.prefixlen)
{
- if (prefix_match (p, &addr) && p->prefixlen > best.prefixlen)
- {
- best = *p;
- match = ifp;
- }
+ best = *p;
+ match = ifp;
}
}
}
@@ -270,6 +262,22 @@ if_is_up (struct interface *ifp)
return ifp->flags & IFF_UP;
}
+/* Is interface running? */
+int
+if_is_running (struct interface *ifp)
+{
+ return ifp->flags & IFF_RUNNING;
+}
+
+/* Is the interface operative, eg. either UP & RUNNING
+ or UP & !ZEBRA_INTERFACE_LINK_DETECTION */
+int
+if_is_operative (struct interface *ifp)
+{
+ return ((ifp->flags & IFF_UP) &&
+ (ifp->flags & IFF_RUNNING || !CHECK_FLAG(ifp->status, ZEBRA_INTERFACE_LINKDETECTION)));
+}
+
/* Is this loopback interface ? */
int
if_is_loopback (struct interface *ifp)
@@ -432,6 +440,36 @@ DEFUN (interface,
return CMD_SUCCESS;
}
+DEFUN_NOSH (no_interface,
+ no_interface_cmd,
+ "no interface IFNAME",
+ NO_STR
+ "Delete a pseudo interface's configuration\n"
+ "Interface's name\n")
+{
+ // deleting interface
+ struct interface *ifp;
+
+ ifp = if_lookup_by_name (argv[0]);
+
+ if (ifp == NULL)
+ {
+ vty_out (vty, "%% Inteface %s does not exist%s", argv[0], VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+
+ if (CHECK_FLAG (ifp->status, ZEBRA_INTERFACE_ACTIVE))
+ {
+ vty_out (vty, "%% Only inactive interfaces can be deleted%s",
+ VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+
+ if_delete(ifp);
+
+ return CMD_SUCCESS;
+}
+
/* For debug purpose. */
DEFUN (show_address,
show_address_cmd,
@@ -553,6 +591,65 @@ connected_delete_by_prefix (struct interface *ifp, struct prefix *p)
return NULL;
}
+/* Find the IPv4 address on our side that will be used when packets
+ are sent to dst. */
+struct connected *
+connected_lookup_address (struct interface *ifp, struct in_addr dst)
+{
+ struct prefix addr;
+ struct prefix best;
+ listnode cnode;
+ struct prefix *p;
+ struct connected *c;
+ struct connected *match;
+
+ /* Zero structures - get rid of rubbish from stack */
+ memset(&addr, 0, sizeof(addr));
+ memset(&best, 0, sizeof(best));
+
+ addr.family = AF_INET;
+ addr.u.prefix4 = dst;
+ addr.prefixlen = IPV4_MAX_BITLEN;
+
+ match = NULL;
+
+ for (cnode = listhead (ifp->connected); cnode; nextnode (cnode))
+ {
+ c = getdata (cnode);
+
+ if (if_is_pointopoint (ifp))
+ {
+ p = c->address;
+
+ if (p && p->family == AF_INET)
+ {
+#ifdef OLD_RIB /* PTP links are conventionally identified
+ by the address of the far end - MAG */
+ if (IPV4_ADDR_SAME (&p->u.prefix4, &dst))
+ return c;
+#endif
+ p = c->destination;
+ if (p && IPV4_ADDR_SAME (&p->u.prefix4, &dst))
+ return c;
+ }
+ }
+ else
+ {
+ p = c->address;
+
+ if (p->family == AF_INET)
+ {
+ if (prefix_match (p, &addr) && p->prefixlen > best.prefixlen)
+ {
+ best = *p;
+ match = c;
+ }
+ }
+ }
+ }
+ return match;
+}
+
/* Check the connected information is PtP style or not. */
int
ifc_pointopoint (struct connected *ifc)
diff --git a/lib/if.h b/lib/if.h
index 3896d187..9ffe74cf 100644
--- a/lib/if.h
+++ b/lib/if.h
@@ -85,6 +85,7 @@ struct interface
u_char status;
#define ZEBRA_INTERFACE_ACTIVE (1 << 0)
#define ZEBRA_INTERFACE_SUB (1 << 1)
+#define ZEBRA_INTERFACE_LINKDETECTION (1 << 2)
/* Interface flags. */
unsigned long flags;
@@ -188,6 +189,8 @@ struct interface *if_lookup_address (struct in_addr);
struct interface *if_get_by_name (char *);
void if_delete (struct interface *);
int if_is_up (struct interface *);
+int if_is_running (struct interface *);
+int if_is_operative (struct interface *);
int if_is_loopback (struct interface *);
int if_is_broadcast (struct interface *);
int if_is_pointopoint (struct interface *);
@@ -202,6 +205,7 @@ struct connected *connected_new ();
void connected_free (struct connected *);
void connected_add (struct interface *, struct connected *);
struct connected *connected_delete_by_prefix (struct interface *, struct prefix *);
+struct connected *connected_lookup_address (struct interface *, struct in_addr);
int ifc_pointopoint (struct connected *);
#ifndef HAVE_IF_NAMETOINDEX
@@ -216,6 +220,7 @@ extern list iflist;
extern struct cmd_element interface_desc_cmd;
extern struct cmd_element no_interface_desc_cmd;
extern struct cmd_element interface_cmd;
+extern struct cmd_element no_interface_cmd;
extern struct cmd_element interface_pseudo_cmd;
extern struct cmd_element no_interface_pseudo_cmd;
diff --git a/lib/linklist.c b/lib/linklist.c
index 5a2b6969..3cb10caf 100644
--- a/lib/linklist.c
+++ b/lib/linklist.c
@@ -162,6 +162,7 @@ listnode_delete (struct list *list, void *val)
{
struct listnode *node;
+ assert(list);
for (node = list->head; node; node = node->next)
{
if (node->data == val)
@@ -189,6 +190,7 @@ listnode_head (struct list *list)
{
struct listnode *node;
+ assert(list);
node = list->head;
if (node)
@@ -203,6 +205,7 @@ list_delete_all_node (struct list *list)
struct listnode *node;
struct listnode *next;
+ assert(list);
for (node = list->head; node; node = next)
{
next = node->next;
@@ -221,6 +224,7 @@ list_delete (struct list *list)
struct listnode *node;
struct listnode *next;
+ assert(list);
for (node = list->head; node; node = next)
{
next = node->next;
@@ -237,6 +241,7 @@ listnode_lookup (struct list *list, void *data)
{
listnode node;
+ assert(list);
for (node = list->head; node; nextnode (node))
if (data == getdata (node))
return node;
diff --git a/lib/memory.h b/lib/memory.h
index 925f6b65..a38cda3f 100644
--- a/lib/memory.h
+++ b/lib/memory.h
@@ -189,8 +189,6 @@ enum
MTYPE_VRF,
MTYPE_VRF_NAME,
-
- MTYPE_PRIVS,
MTYPE_MAX
};
diff --git a/lib/privs.c b/lib/privs.c
index 9139823e..35e5a76b 100644
--- a/lib/privs.c
+++ b/lib/privs.c
@@ -40,7 +40,6 @@ static struct _zprivs_t
uid_t zuid, /* uid to run as */
zsuid; /* saved uid */
gid_t zgid; /* gid to run as */
- gid_t vtygrp; /* gid for vty sockets */
} zprivs_state;
/* externally exported but not directly accessed functions */
@@ -70,9 +69,11 @@ cap_map [ZCAP_MAX] =
[ZCAP_DAC_OVERRIDE] = CAP_DAC_OVERRIDE,
[ZCAP_READ_SEARCH] = CAP_DAC_READ_SEARCH,
[ZCAP_SYS_ADMIN] = CAP_SYS_ADMIN,
- [ZCAP_FOWNER] = CAP_FOWNER
+ [ZCAP_FOWNER] = ZCAP_FOWNER
};
+static cap_value_t cap_setuid_value [] = { CAP_SETUID };
+
/* convert zebras privileges to system capabilities */
static cap_value_t *
zcaps2sys (zebra_capabilities_t *zcaps, int num)
@@ -175,12 +176,6 @@ zprivs_init(struct zebra_privs_t *zprivs)
struct passwd *pwentry = NULL;
struct group *grentry = NULL;
- if (!zprivs)
- {
- zlog_err ("zprivs_init: called with NULL arg!");
- exit (1);
- }
-
/* NULL privs */
if (! (zprivs->user || zprivs->group
|| zprivs->cap_num_p || zprivs->cap_num_i) )
@@ -193,31 +188,7 @@ zprivs_init(struct zebra_privs_t *zprivs)
if (zprivs->user)
{
if ( (pwentry = getpwnam (zprivs->user)) )
- {
- zprivs_state.zuid = pwentry->pw_uid;
- }
- else
- {
- zlog_err ("privs_init: could not lookup supplied user");
- exit (1);
- }
- }
-
- grentry = NULL;
-
- if (zprivs->vty_group)
- /* Add the vty_group to the supplementary groups so it can be chowned to */
- {
- if ( (grentry = getgrnam (zprivs->vty_group)) )
- {
- zprivs_state.vtygrp = grentry->gr_gid;
- if ( setgroups (1, &zprivs_state.vtygrp) )
- {
- zlog_err ("privs_init: could not setgroups, %s",
- strerror (errno) );
- exit (1);
- }
- }
+ zprivs_state.zuid = pwentry->pw_uid;
else
{
zlog_err ("privs_init: could not lookup supplied user");
@@ -227,20 +198,18 @@ zprivs_init(struct zebra_privs_t *zprivs)
if (zprivs->group)
{
- if ( (grentry = getgrnam (zprivs->group)) )
- {
- zprivs_state.zgid = grentry->gr_gid;
- }
+ if ( (grentry = getgrnam (zprivs->user)) )
+ zprivs_state.zgid = grentry->gr_gid;
else
{
zlog_err ("privs_init: could not lookup supplied user");
exit (1);
}
+
/* change group now, forever. uid we do later */
if ( setregid (zprivs_state.zgid, zprivs_state.zgid) )
{
- zlog_err ("zprivs_init: could not setregid, %s",
- strerror (errno) );
+ zlog_err ("privs_init: could not setregid");
exit (1);
}
}
@@ -269,17 +238,6 @@ zprivs_init(struct zebra_privs_t *zprivs)
zlog_err ("privs_init: failed to cap_init, %s", strerror (errno) );
exit (1);
}
-
- /* we have caps, we have no need to ever change back the original user */
- if (zprivs_state.zuid)
- {
- if ( setreuid (zprivs_state.zuid, zprivs_state.zuid) )
- {
- zlog_err ("zprivs_init (cap): could not setreuid, %s",
- strerror (errno) );
- exit (1);
- }
- }
if ( cap_clear (zprivs_state.caps) )
{
@@ -293,6 +251,12 @@ zprivs_init(struct zebra_privs_t *zprivs)
cap_set_flag(zprivs_state.caps, CAP_EFFECTIVE,
zprivs_state.sys_num_p, zprivs_state.syscaps_p, CAP_SET);
+ /* still need CAP_SETUID for the moment */
+ cap_set_flag(zprivs_state.caps, CAP_PERMITTED,
+ 1, cap_setuid_value, CAP_SET);
+ cap_set_flag(zprivs_state.caps, CAP_EFFECTIVE,
+ 1, cap_setuid_value, CAP_SET);
+
/* set inheritable caps, if any */
if (zprivs_state.sys_num_i)
{
@@ -300,8 +264,8 @@ zprivs_init(struct zebra_privs_t *zprivs)
zprivs_state.sys_num_i, zprivs_state.syscaps_i, CAP_SET);
}
- /* apply caps. CAP_EFFECTIVE is cleared. we'll raise the caps as
- * and when, and only when, they are needed.
+ /* apply caps. CAP_EFFECTIVE is clear bar cap_setuid_value.
+ * we'll raise the caps as and when, and only when, they are needed.
*/
if ( cap_set_proc (zprivs_state.caps) )
{
@@ -309,7 +273,28 @@ zprivs_init(struct zebra_privs_t *zprivs)
exit (1);
}
- /* set methods for the caller to use */
+ /* we have caps, we have no need to ever change back the original user */
+ if (zprivs_state.zuid)
+ {
+ if ( setreuid (zprivs_state.zuid, zprivs_state.zuid) )
+ {
+ zlog_err ("privs_init (cap): could not setreuid, %s", strerror (errno) );
+ exit (1);
+ }
+ }
+
+ /* No more need for cap_setuid_value */
+ cap_set_flag(zprivs_state.caps, CAP_PERMITTED,
+ 1, cap_setuid_value, CAP_CLEAR);
+ cap_set_flag(zprivs_state.caps, CAP_EFFECTIVE,
+ 1, cap_setuid_value, CAP_CLEAR);
+ if ( cap_set_proc (zprivs_state.caps) )
+ {
+ zlog_err ("privs_init: cap_set_proc failed to clear cap_setuid, %s",
+ strerror (errno) );
+ exit (1);
+ }
+
zprivs->change = zprivs_change_caps;
zprivs->current_state = zprivs_state_caps;
@@ -369,18 +354,3 @@ zprivs_terminate (void)
#endif /* HAVE_LCAPS */
return;
}
-
-void
-zprivs_get_ids(struct zprivs_ids_t *ids)
-{
-
- ids->uid_priv = getuid();
- (zprivs_state.zuid) ? (ids->uid_normal = zprivs_state.zuid)
- : (ids->uid_normal = -1);
- (zprivs_state.zgid) ? (ids->gid_normal = zprivs_state.zgid)
- : (ids->gid_normal = -1);
- (zprivs_state.vtygrp) ? (ids->gid_vty = zprivs_state.vtygrp)
- : (ids->gid_vty = -1);
-
- return;
-}
diff --git a/lib/privs.h b/lib/privs.h
index 65c9f358..3cdd20da 100644
--- a/lib/privs.h
+++ b/lib/privs.h
@@ -63,7 +63,7 @@ struct zebra_privs_t
int cap_num_i;
char *user; /* user and group to run as */
char *group;
- char *vty_group; /* group to chown vty socket to */
+
/* methods */
int
(*change) (zebra_privs_ops_t); /* change privileges, 0 on success */
@@ -71,21 +71,9 @@ struct zebra_privs_t
(*current_state) (void); /* current privilege state */
};
-struct zprivs_ids_t
-{
- /* -1 is undefined */
- uid_t uid_priv; /* privileged uid */
- uid_t uid_normal; /* normal uid */
- gid_t gid_priv; /* privileged uid */
- gid_t gid_normal; /* normal uid */
- gid_t gid_vty; /* vty gid */
-};
-
/* initialise zebra privileges */
void zprivs_init (struct zebra_privs_t *zprivs);
/* drop all and terminate privileges */
void zprivs_terminate (void);
- /* query for runtime uid's and gid's, eg vty needs this */
-void zprivs_get_ids(struct zprivs_ids_t *);
#endif /* _ZEBRA_PRIVS_H */
diff --git a/lib/routemap.c b/lib/routemap.c
index 4e65fa2b..b000f2fc 100644
--- a/lib/routemap.c
+++ b/lib/routemap.c
@@ -634,85 +634,72 @@ route_map_delete_set (struct route_map_index *index, char *set_name,
return 1;
}
-/* Apply route map's each index to the object.
-
- The matrix for a route-map looks like this:
- (note, this includes the description for the "NEXT"
- and "GOTO" frobs now
-
- Match | No Match
- |
- permit a | c
- |
- ------------------+---------------
- |
- deny b | d
- |
-
- a) Apply Set statements, accept route
- If NEXT is specified, goto NEXT statement
- If GOTO is specified, goto the first clause where pref > nextpref
- If nothing is specified, do as Cisco and finish
- b) If NEXT is specified, goto NEXT statement
- If nothing is specified, finally will be denied by route-map.
- c) & d) Goto Next index
-
- If we get no matches after we've processed all updates, then the route
- is dropped too.
-
- Some notes on the new "NEXT" and "GOTO"
- on-match next - If this clause is matched, then the set statements
- are executed and then we drop through to the next clause
- on-match goto n - If this clause is matched, then the set statments
- are executed and then we goto the nth clause, or the
- first clause greater than this. In order to ensure
- route-maps *always* exit, you cannot jump backwards.
- Sorry ;)
-
- We need to make sure our route-map processing matches the above
+/* Apply route map's each index to the object. */
+/*
+** The matrix for a route-map looks like this:
+** (note, this includes the description for the "NEXT"
+** and "GOTO" frobs now
+**
+** Match | No Match
+** |
+** permit a | c
+** |
+** ------------------+---------------
+** |
+** deny b | d
+** |
+**
+** a) Apply Set statements, accept route
+** If NEXT is specified, goto NEXT statement
+** If GOTO is specified, goto the first clause where pref > nextpref
+** If nothing is specified, do as Cisco and finish
+** b) Finish route-map processing, and deny route
+** c) & d) Goto Next index
+**
+** If we get no matches after we've processed all updates, then the route
+** is dropped too.
+**
+** Some notes on the new "NEXT" and "GOTO"
+** on-match next - If this clause is matched, then the set statements
+** are executed and then we drop through to the next clause
+** on-match goto n - If this clause is matched, then the set statments
+** are executed and then we goto the nth clause, or the
+** first clause greater than this. In order to ensure
+** route-maps *always* exit, you cannot jump backwards.
+** Sorry ;)
+**
+** We need to make sure our route-map processing matches the above
*/
route_map_result_t
route_map_apply_index (struct route_map_index *index, struct prefix *prefix,
route_map_object_t type, void *object)
{
- int ret = 0;
+ int ret;
struct route_map_rule *match;
struct route_map_rule *set;
-
- /* Check all match rule and if there is no match rule, go to the
- set statement. */
- if (! index->match_list.head)
- ret = RMAP_MATCH;
- else
+
+ /* Check all match rule and if there is no match rule return 0. */
+ for (match = index->match_list.head; match; match = match->next)
{
- for (match = index->match_list.head; match; match = match->next)
- {
- /* Try each match statement in turn, If any return
- RMAP_MATCH, go direct to set statement, otherwise, walk
- to next match statement. */
- ret = (*match->cmd->func_apply)(match->value, prefix, type, object);
-
- if (ret == RMAP_MATCH)
- break;
- }
+ /* Try each match statement in turn. If any return something
+ other than RM_MATCH then we don't need to check anymore and can
+ return */
+ ret = (*match->cmd->func_apply)(match->value, prefix, type, object);
+ if (ret != RMAP_MATCH)
+ return ret;
}
- /* If end of match statement, still can't get any RMAP_MATCH return,
- just return to next rout-map statement. */
-
- if (ret != RMAP_MATCH)
- return ret;
-
/* We get here if all match statements matched From the matrix
- above, if this is PERMIT we go on and apply the SET functions.
- If we're deny, we return indicating we matched a deny */
+ above, if this is PERMIT we go on and apply the SET functions. If
+ we're deny, we return indicating we matched a deny */
/* Apply set statement to the object. */
if (index->type == RMAP_PERMIT)
{
for (set = index->set_list.head; set; set = set->next)
- ret = (*set->cmd->func_apply)(set->value, prefix, type, object);
-
+ {
+ ret = (*set->cmd->func_apply)(set->value, prefix, type, object);
+ }
return RMAP_MATCH;
}
else
@@ -739,15 +726,11 @@ route_map_apply (struct route_map *map, struct prefix *prefix,
/* Apply this index. End here if we get a RM_NOMATCH */
ret = route_map_apply_index (index, prefix, type, object);
- if (ret == RMAP_MATCH || ret == RMAP_DENYMATCH)
- return ret;
-
if (ret != RMAP_NOMATCH)
{
/* We now have to handle the NEXT and GOTO clauses */
if(index->exitpolicy == RMAP_EXIT)
return ret;
-
if(index->exitpolicy == RMAP_GOTO)
{
/* Find the next clause to jump to */
diff --git a/lib/smux.c b/lib/smux.c
index 3d30a261..952c5a81 100644
--- a/lib/smux.c
+++ b/lib/smux.c
@@ -22,7 +22,9 @@
#include <zebra.h>
#ifdef HAVE_SNMP
-
+#ifdef HAVE_NETSNMP
+#include <net-snmp/net-snmp-config.h>
+#endif
#include <asn1.h>
#include <snmp.h>
#include <snmp_impl.h>
diff --git a/lib/smux.h b/lib/smux.h
index 27f36447..91c3d46f 100644
--- a/lib/smux.h
+++ b/lib/smux.h
@@ -149,7 +149,7 @@ void smux_start (void);
void smux_register_mib(char *, struct variable *, size_t, int, oid [], size_t);
int smux_header_generic (struct variable *, oid [], size_t *, int, size_t *,
WriteMethod **);
-int smux_trap (oid *, size_t, oid *, size_t, struct trap_object *, size_t, unsigned int, u_char);
+int smux_trap (oid *, size_t, oid *, size_t, struct trap_object *, size_t, unsigned int);
int oid_compare (oid *, int, oid *, int);
void oid2in_addr (oid [], int, struct in_addr *);
diff --git a/lib/thread.c b/lib/thread.c
index 31bbcd77..402167cf 100644
--- a/lib/thread.c
+++ b/lib/thread.c
@@ -26,6 +26,10 @@
#include "thread.h"
#include "memory.h"
#include "log.h"
+#include "hash.h"
+#include "command.h"
+
+static struct hash *cpu_record = NULL;
/* Struct timeval's tv_usec one second value. */
#define TIMER_SECOND_MICRO 1000000L
@@ -82,6 +86,141 @@ timeval_elapsed (struct timeval a, struct timeval b)
+ (a.tv_usec - b.tv_usec));
}
+static unsigned int
+cpu_record_hash_key (struct cpu_thread_history *a)
+{
+ return (unsigned int) a->func;
+}
+
+static int
+cpu_record_hash_cmp (struct cpu_thread_history *a,
+ struct cpu_thread_history *b)
+{
+ return a->func == b->func;
+}
+
+static void*
+cpu_record_hash_alloc (struct cpu_thread_history *a)
+{
+ struct cpu_thread_history *new;
+ new = XMALLOC( MTYPE_TMP/*XXX*/, sizeof *new);
+ memset(new, 0, sizeof *new);
+ new->func = a->func;
+ new->funcname = XSTRDUP(MTYPE_TMP/*XXX*/,a->funcname);
+ return new;
+}
+
+static inline void
+vty_out_cpu_thread_history(struct vty* vty,
+ struct cpu_thread_history *a)
+{
+ vty_out(vty, " %7ld.%03ld %9d %8ld %10ld %c%c%c%c%c %s%s",
+ a->total/1000, a->total%1000, a->total_calls,
+ a->total/a->total_calls, a->max,
+ a->types & (1 << THREAD_READ) ? 'R':' ',
+ a->types & (1 << THREAD_WRITE) ? 'W':' ',
+ a->types & (1 << THREAD_TIMER) ? 'T':' ',
+ a->types & (1 << THREAD_EVENT) ? 'E':' ',
+ a->types & (1 << THREAD_EXECUTE) ? 'X':' ',
+ a->funcname, VTY_NEWLINE);
+}
+
+static void
+cpu_record_hash_print(struct hash_backet *bucket,
+ void *args[])
+{
+ struct cpu_thread_history *totals = args[0];
+ struct vty *vty = args[1];
+ unsigned char *filter = args[2];
+ struct cpu_thread_history *a = bucket->data;
+
+
+ a = bucket->data;
+ if ( !(a->types & *filter) )
+ return;
+ vty_out_cpu_thread_history(vty,a);
+ totals->total += a->total;
+ totals->total_calls += a->total_calls;
+ if (totals->max < a->max)
+ totals->max = a->max;
+}
+
+static void
+cpu_record_print(struct vty *vty, unsigned char filter)
+{
+ struct cpu_thread_history tmp;
+ void *args[3] = {&tmp, vty, &filter};
+
+ memset(&tmp, 0, sizeof tmp);
+ tmp.funcname = "TOTAL";
+ tmp.types = filter;
+
+ vty_out(vty,
+ " Runtime(ms) Invoked Avg uSecs Max uSecs Type Thread%s",
+ VTY_NEWLINE);
+ hash_iterate(cpu_record,
+ (void(*)(struct hash_backet*,void*))cpu_record_hash_print,
+ args);
+
+ if (tmp.total_calls > 0)
+ vty_out_cpu_thread_history(vty, &tmp);
+}
+
+DEFUN(show_thread_cpu,
+ show_thread_cpu_cmd,
+ "show thread cpu [FILTER]",
+ SHOW_STR
+ "Thread information\n"
+ "Thread CPU usage\n"
+ "Display filter (rwtex)\n")
+{
+ int i = 0;
+ unsigned char filter = 0xff;
+
+ if (argc > 0)
+ {
+ filter = 0;
+ while (argv[0][i] != '\0')
+ {
+ switch ( argv[0][i] )
+ {
+ case 'r':
+ case 'R':
+ filter |= (1 << THREAD_READ);
+ break;
+ case 'w':
+ case 'W':
+ filter |= (1 << THREAD_WRITE);
+ break;
+ case 't':
+ case 'T':
+ filter |= (1 << THREAD_TIMER);
+ break;
+ case 'e':
+ case 'E':
+ filter |= (1 << THREAD_EVENT);
+ break;
+ case 'x':
+ case 'X':
+ filter |= (1 << THREAD_EXECUTE);
+ break;
+ default:
+ break;
+ }
+ ++i;
+ }
+ if (filter == 0)
+ {
+ vty_out(vty, "Invalid filter \"%s\" specified, must contain at least one of 'RWTEX'%s",
+ argv[0], VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ }
+
+ cpu_record_print(vty, filter);
+ return CMD_SUCCESS;
+}
+
/* List allocation and head/tail print out. */
static void
thread_list_debug (struct thread_list *list)
@@ -113,6 +252,10 @@ thread_master_debug (struct thread_master *m)
struct thread_master *
thread_master_create ()
{
+ if (cpu_record == NULL)
+ {
+ cpu_record = hash_create_size( 1011, cpu_record_hash_key, cpu_record_hash_cmp);
+ }
return (struct thread_master *) XCALLOC (MTYPE_THREAD_MASTER,
sizeof (struct thread_master));
}
@@ -185,6 +328,7 @@ thread_list_free (struct thread_master *m, struct thread_list *list)
for (t = list->head; t; t = next)
{
next = t->next;
+ XFREE (MTYPE_STRVEC, t->funcname);
XFREE (MTYPE_THREAD, t);
list->count--;
m->alloc--;
@@ -235,32 +379,66 @@ thread_timer_remain_second (struct thread *thread)
return 0;
}
+/* Trim blankspace and "()"s */
+static char *
+strip_funcname (char *funcname)
+{
+ char buff[100];
+ char tmp, *ret, *e, *b = buff;
+
+ strncpy(buff, funcname, sizeof(buff));
+ buff[ sizeof(buff) -1] = '\0';
+ e = buff +strlen(buff) -1;
+
+ /* Wont work for funcname == "Word (explanation)" */
+
+ while (*b == ' ' || *b == '(')
+ ++b;
+ while (*e == ' ' || *e == ')')
+ --e;
+ e++;
+
+ tmp = *e;
+ *e = '\0';
+ ret = XSTRDUP (MTYPE_STRVEC, b);
+ *e = tmp;
+
+ return ret;
+}
+
/* Get new thread. */
static struct thread *
thread_get (struct thread_master *m, u_char type,
- int (*func) (struct thread *), void *arg)
+ int (*func) (struct thread *), void *arg, char* funcname)
{
struct thread *thread;
if (m->unuse.head)
- thread = thread_trim_head (&m->unuse);
+ {
+ thread = thread_trim_head (&m->unuse);
+ if (thread->funcname)
+ XFREE(MTYPE_STRVEC, thread->funcname);
+ }
else
{
thread = XCALLOC (MTYPE_THREAD, sizeof (struct thread));
m->alloc++;
}
thread->type = type;
+ thread->add_type = type;
thread->master = m;
thread->func = func;
thread->arg = arg;
+ thread->funcname = strip_funcname(funcname);
+
return thread;
}
/* Add new read thread. */
struct thread *
-thread_add_read (struct thread_master *m,
- int (*func) (struct thread *), void *arg, int fd)
+funcname_thread_add_read (struct thread_master *m,
+ int (*func) (struct thread *), void *arg, int fd, char* funcname)
{
struct thread *thread;
@@ -272,7 +450,7 @@ thread_add_read (struct thread_master *m,
return NULL;
}
- thread = thread_get (m, THREAD_READ, func, arg);
+ thread = thread_get (m, THREAD_READ, func, arg, funcname);
FD_SET (fd, &m->readfd);
thread->u.fd = fd;
thread_list_add (&m->read, thread);
@@ -282,8 +460,8 @@ thread_add_read (struct thread_master *m,
/* Add new write thread. */
struct thread *
-thread_add_write (struct thread_master *m,
- int (*func) (struct thread *), void *arg, int fd)
+funcname_thread_add_write (struct thread_master *m,
+ int (*func) (struct thread *), void *arg, int fd, char* funcname)
{
struct thread *thread;
@@ -295,7 +473,7 @@ thread_add_write (struct thread_master *m,
return NULL;
}
- thread = thread_get (m, THREAD_WRITE, func, arg);
+ thread = thread_get (m, THREAD_WRITE, func, arg, funcname);
FD_SET (fd, &m->writefd);
thread->u.fd = fd;
thread_list_add (&m->write, thread);
@@ -305,8 +483,8 @@ thread_add_write (struct thread_master *m,
/* Add timer event thread. */
struct thread *
-thread_add_timer (struct thread_master *m,
- int (*func) (struct thread *), void *arg, long timer)
+funcname_thread_add_timer (struct thread_master *m,
+ int (*func) (struct thread *), void *arg, long timer, char* funcname)
{
struct timeval timer_now;
struct thread *thread;
@@ -316,7 +494,7 @@ thread_add_timer (struct thread_master *m,
assert (m != NULL);
- thread = thread_get (m, THREAD_TIMER, func, arg);
+ thread = thread_get (m, THREAD_TIMER, func, arg, funcname);
/* Do we need jitter here? */
gettimeofday (&timer_now, NULL);
@@ -342,14 +520,14 @@ thread_add_timer (struct thread_master *m,
/* Add simple event thread. */
struct thread *
-thread_add_event (struct thread_master *m,
- int (*func) (struct thread *), void *arg, int val)
+funcname_thread_add_event (struct thread_master *m,
+ int (*func) (struct thread *), void *arg, int val, char* funcname)
{
struct thread *thread;
assert (m != NULL);
- thread = thread_get (m, THREAD_EVENT, func, arg);
+ thread = thread_get (m, THREAD_EVENT, func, arg, funcname);
thread->u.val = val;
thread_list_add (&m->event, thread);
@@ -621,6 +799,11 @@ thread_call (struct thread *thread)
{
unsigned long thread_time;
RUSAGE_T ru;
+ struct cpu_thread_history tmp, *cpu;
+
+ tmp.func = thread->func;
+ tmp.funcname = thread->funcname;
+ cpu = hash_get(cpu_record, &tmp, cpu_record_hash_alloc);
GETRUSAGE (&thread->ru);
@@ -629,6 +812,12 @@ thread_call (struct thread *thread)
GETRUSAGE (&ru);
thread_time = thread_consumed_time (&ru, &thread->ru);
+ cpu->total += thread_time;
+ if (cpu->max < thread_time)
+ cpu->max = thread_time;
+
+ ++cpu->total_calls;
+ cpu->types |= (1 << thread->add_type);
#ifdef THREAD_CONSUMED_TIME_CHECK
if (thread_time > 200000L)
@@ -638,8 +827,8 @@ thread_call (struct thread *thread)
* Whinge about it now, so we're aware this is yet another task
* to fix.
*/
- zlog_err ("CPU HOG task %lx ran for %ldms",
- /* FIXME: report the name of the function somehow */
+ zlog_err ("CPU HOG task %s (%lx) ran for %ldms",
+ thread->funcname,
(unsigned long) thread->func,
thread_time / 1000L);
}
@@ -648,21 +837,26 @@ thread_call (struct thread *thread)
/* Execute thread */
struct thread *
-thread_execute (struct thread_master *m,
+funcname_thread_execute (struct thread_master *m,
int (*func)(struct thread *),
void *arg,
- int val)
+ int val,
+ char* funcname)
{
struct thread dummy;
memset (&dummy, 0, sizeof (struct thread));
dummy.type = THREAD_EVENT;
+ dummy.add_type = THREAD_EXECUTE;
dummy.master = NULL;
dummy.func = func;
dummy.arg = arg;
dummy.u.val = val;
+ dummy.funcname = strip_funcname (funcname);
thread_call (&dummy);
+ XFREE (MTYPE_STRVEC, dummy.funcname);
+
return NULL;
}
diff --git a/lib/thread.h b/lib/thread.h
index 9de62cdd..0a45d8f3 100644
--- a/lib/thread.h
+++ b/lib/thread.h
@@ -57,6 +57,7 @@ struct thread_master
struct thread
{
unsigned char type; /* thread type */
+ unsigned char add_type; /* thread type */
struct thread *next; /* next pointer of the thread */
struct thread *prev; /* previous pointer of the thread */
struct thread_master *master; /* pointer to the struct thread_master. */
@@ -68,6 +69,15 @@ struct thread
struct timeval sands; /* rest of time sands value. */
} u;
RUSAGE_T ru; /* Indepth usage info. */
+ char* funcname;
+};
+
+struct cpu_thread_history {
+ int (*func)(struct thread *);
+ char *funcname;
+ unsigned int total_calls;
+ unsigned long total, max;
+ unsigned char types;
};
/* Thread types. */
@@ -77,6 +87,7 @@ struct thread
#define THREAD_EVENT 3
#define THREAD_READY 4
#define THREAD_UNUSED 5
+#define THREAD_EXECUTE 6
/* Thread yield time. */
#define THREAD_YIELD_TIME_SLOT 100 * 1000L /* 100ms */
@@ -117,23 +128,31 @@ struct thread
#define THREAD_WRITE_OFF(thread) THREAD_OFF(thread)
#define THREAD_TIMER_OFF(thread) THREAD_OFF(thread)
+#define thread_add_read(m,f,a,v) funcname_thread_add_read(m,f,a,v,#f)
+#define thread_add_write(m,f,a,v) funcname_thread_add_write(m,f,a,v,#f)
+#define thread_add_timer(m,f,a,v) funcname_thread_add_timer(m,f,a,v,#f)
+#define thread_add_event(m,f,a,v) funcname_thread_add_event(m,f,a,v,#f)
+#define thread_execute(m,f,a,v) funcname_thread_execute(m,f,a,v,#f)
+
/* Prototypes. */
struct thread_master *thread_master_create ();
-struct thread *thread_add_read (struct thread_master *,
- int (*)(struct thread *), void *, int);
-struct thread *thread_add_write (struct thread_master *,
- int (*)(struct thread *), void *, int);
-struct thread *thread_add_timer (struct thread_master *,
- int (*)(struct thread *), void *, long);
-struct thread *thread_add_event (struct thread_master *,
- int (*)(struct thread *), void *, int );
+struct thread *funcname_thread_add_read (struct thread_master *,
+ int (*)(struct thread *), void *, int, char*);
+struct thread *funcname_thread_add_write (struct thread_master *,
+ int (*)(struct thread *), void *, int, char*);
+struct thread *funcname_thread_add_timer (struct thread_master *,
+ int (*)(struct thread *), void *, long, char*);
+struct thread *funcname_thread_add_event (struct thread_master *,
+ int (*)(struct thread *), void *, int, char*);
void thread_cancel (struct thread *);
void thread_cancel_event (struct thread_master *, void *);
struct thread *thread_fetch (struct thread_master *, struct thread *);
-struct thread *thread_execute (struct thread_master *,
- int (*)(struct thread *), void *, int);
+struct thread *funcname_thread_execute (struct thread_master *,
+ int (*)(struct thread *), void *, int, char *);
void thread_call (struct thread *);
unsigned long thread_timer_remain_second (struct thread *);
+extern struct cmd_element show_thread_cpu_cmd;
+
#endif /* _ZEBRA_THREAD_H */
diff --git a/lib/version.h b/lib/version.h
index ecb6b0a3..9a90bf4e 100644
--- a/lib/version.h
+++ b/lib/version.h
@@ -22,7 +22,7 @@
#ifndef _ZEBRA_VERSION_H
#define _ZEBRA_VERSION_H
-#define ZEBRA_VERSION "0.94"
+#define ZEBRA_VERSION "0.93b"
#define ZEBRA_BUG_ADDRESS "bug-zebra@gnu.org"
diff --git a/lib/vty.c b/lib/vty.c
index 4d6eb304..5ef364a0 100644
--- a/lib/vty.c
+++ b/lib/vty.c
@@ -33,7 +33,6 @@
#include "log.h"
#include "prefix.h"
#include "filter.h"
-#include "privs.h"
/* Vty events */
enum event
@@ -1852,8 +1851,7 @@ vty_serv_un (char *path)
int sock, len;
struct sockaddr_un serv;
mode_t old_mask;
- struct zprivs_ids_t ids;
-
+
/* First of all, unlink existing socket */
unlink (path);
@@ -1896,18 +1894,6 @@ vty_serv_un (char *path)
umask (old_mask);
- zprivs_get_ids(&ids);
-
- if (ids.gid_vty > 0)
- {
- /* set group of socket */
- if ( chown (path, -1, ids.gid_vty) )
- {
- zlog_err ("vty_serv_un: could chown socket, %s",
- strerror (errno) );
- }
- }
-
vty_event (VTYSH_SERV, sock, NULL);
}
diff --git a/lib/zebra.h b/lib/zebra.h
index 15608dbc..62566cf8 100644
--- a/lib/zebra.h
+++ b/lib/zebra.h
@@ -42,8 +42,6 @@ typedef int socklen_t;
#include <fcntl.h>
#include <signal.h>
#include <string.h>
-#include <pwd.h>
-#include <grp.h>
#ifdef HAVE_STROPTS_H
#include <stropts.h>
#endif /* HAVE_STROPTS_H */
@@ -72,10 +70,6 @@ typedef int socklen_t;
#ifdef HAVE_RUSAGE
#include <sys/resource.h>
#endif /* HAVE_RUSAGE */
-#ifdef HAVE_LCAPS
-#include <sys/capability.h>
-#include <sys/prctl.h>
-#endif /* HAVE_LCAPS */
/* machine dependent includes */
#ifdef SUNOS_5
diff --git a/ospf6d/.cvsignore b/ospf6d/.cvsignore
index cec4061c..5e76e4db 100644
--- a/ospf6d/.cvsignore
+++ b/ospf6d/.cvsignore
@@ -1,4 +1,5 @@
Makefile
+Makefile.in
*.o
*.patch
ospf6d
diff --git a/ospf6d/ChangeLog b/ospf6d/ChangeLog
index 8a8c0bfd..63052c7c 100644
--- a/ospf6d/ChangeLog
+++ b/ospf6d/ChangeLog
@@ -1,9 +1,24 @@
+2003-05-18 Hasso Tepper <hasso@estpak.ee>
+
+ * ospf6_{dump,interface,zebra}.c,ospf6d.c: show router and interface
+ nodes from ospf6d when using vtysh, and don't show defaults in
+ interface node (from ^WIND patch).
+
+2003-04-23 Hasso Tepper <hasso@estpak.ee>
+
+ * {ospf6_damp,ospf6d}.c: fix "router xxx" node commands in vtysh
+
2003-04-25 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
* ospf6_asbr.c: AS-External LSA refresh was based on the
prefix of the obsolete LSA. It was wrong so fixed.
* version: 0.9.6p
+2003-04-19 Hasso Tepper <hasso@estpak.ee>
+
+ * rip_routemap.c: sync daemon's route-map commands to have same
+ syntax
+
2002-11-09 Vincent Jardin <jardin@6wind.com>
* ospf6_interface.c: update link-local address on interface creation.
diff --git a/ospf6d/Makefile.am b/ospf6d/Makefile.am
index e42814af..680e89b8 100644
--- a/ospf6d/Makefile.am
+++ b/ospf6d/Makefile.am
@@ -28,7 +28,7 @@ noinst_HEADERS = \
ospf6d_SOURCES = \
ospf6_main.c $(libospf6_a_SOURCES)
-ospf6d_LDADD = -L../lib -lzebra @LIBCAP@
+ospf6d_LDADD = -L../lib -lzebra
sysconf_DATA = ospf6d.conf.sample
diff --git a/ospf6d/Makefile.in b/ospf6d/Makefile.in
deleted file mode 100644
index 548ba099..00000000
--- a/ospf6d/Makefile.in
+++ /dev/null
@@ -1,478 +0,0 @@
-# Makefile.in generated by automake 1.6.3 from Makefile.am.
-# @configure_input@
-
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = @program_transform_name@
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_alias = @host_alias@
-host_triplet = @host@
-
-EXEEXT = @EXEEXT@
-OBJEXT = @OBJEXT@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-AMTAR = @AMTAR@
-AR = @AR@
-AWK = @AWK@
-BGPD = @BGPD@
-CC = @CC@
-CPP = @CPP@
-CURSES = @CURSES@
-DEPDIR = @DEPDIR@
-IF_METHOD = @IF_METHOD@
-IF_PROC = @IF_PROC@
-
-INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-IPFORWARD = @IPFORWARD@
-KERNEL_METHOD = @KERNEL_METHOD@
-LIBPAM = @LIBPAM@
-LIB_IPV6 = @LIB_IPV6@
-LIB_REGEX = @LIB_REGEX@
-MULTIPATH_NUM = @MULTIPATH_NUM@
-OSPF6D = @OSPF6D@
-OSPFD = @OSPFD@
-OTHER_METHOD = @OTHER_METHOD@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-RIPD = @RIPD@
-RIPNGD = @RIPNGD@
-RTREAD_METHOD = @RTREAD_METHOD@
-RT_METHOD = @RT_METHOD@
-STRIP = @STRIP@
-VERSION = @VERSION@
-VTYSH = @VTYSH@
-ZEBRA = @ZEBRA@
-am__include = @am__include@
-am__quote = @am__quote@
-install_sh = @install_sh@
-DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
-INSTALL_SDATA = @INSTALL@ -m 600
-
-noinst_LIBRARIES = libospf6.a
-sbin_PROGRAMS = ospf6d
-
-libospf6_a_SOURCES = \
- ospf6_dump.c ospf6d.c ospf6_interface.c ospf6_network.c \
- ospf6_neighbor.c ospf6_message.c ospf6_lsa.c ospf6_spf.c \
- ospf6_route.c ospf6_zebra.c ospf6_ism.c ospf6_dbex.c \
- ospf6_lsdb.c ospf6_prefix.c ospf6_top.c ospf6_area.c ospf6_nsm.c \
- ospf6_routemap.c ospf6_proto.c \
- ospf6_hook.c ospf6_asbr.c ospf6_bintree.c ospf6_linklist.c \
- ospf6_abr.c ospf6_intra.c ospf6_damp.c
-
-
-noinst_HEADERS = \
- ospf6_area.h ospf6_dump.h ospf6_interface.h ospf6_lsa.h \
- ospf6_message.h ospf6_neighbor.h ospf6_network.h ospf6_proto.h \
- ospf6_spf.h ospf6_route.h ospf6_types.h ospf6_zebra.h ospf6d.h \
- ospf6_ism.h ospf6_dbex.h ospf6_lsdb.h ospf6_prefix.h \
- ospf6_top.h ospf6_nsm.h ospf6_routemap.h \
- ospf6_hook.h ospf6_asbr.h ospf6_bintree.h ospf6_linklist.h \
- ospf6_abr.h ospf6_intra.h ospf6_damp.h
-
-
-ospf6d_SOURCES = \
- ospf6_main.c $(libospf6_a_SOURCES)
-
-
-ospf6d_LDADD = ../lib/libzebra.a
-
-sysconf_DATA = ospf6d.conf.sample
-
-EXTRA_DIST = $(sysconf_DATA)
-subdir = ospf6d
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-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__objects_1 = 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)
-am_ospf6d_OBJECTS = ospf6_main.$(OBJEXT) $(am__objects_1)
-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@
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/ospf6_abr.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/ospf6_area.Po ./$(DEPDIR)/ospf6_asbr.Po \
-@AMDEP_TRUE@ ./$(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 \
-@AMDEP_TRUE@ ./$(DEPDIR)/ospf6_lsa.Po ./$(DEPDIR)/ospf6_lsdb.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/ospf6_main.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/ospf6_message.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/ospf6_neighbor.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/ospf6_network.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/ospf6_nsm.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/ospf6_prefix.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/ospf6_proto.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/ospf6_route.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/ospf6_routemap.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/ospf6_spf.Po ./$(DEPDIR)/ospf6_top.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/ospf6_zebra.Po ./$(DEPDIR)/ospf6d.Po
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-CFLAGS = @CFLAGS@
-DIST_SOURCES = $(libospf6_a_SOURCES) $(ospf6d_SOURCES)
-DATA = $(sysconf_DATA)
-
-HEADERS = $(noinst_HEADERS)
-
-DIST_COMMON = README $(noinst_HEADERS) ChangeLog Makefile.am \
- Makefile.in
-SOURCES = $(libospf6_a_SOURCES) $(ospf6d_SOURCES)
-
-all: all-am
-
-.SUFFIXES:
-.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) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libospf6.a: $(libospf6_a_OBJECTS) $(libospf6_a_DEPENDENCIES)
- -rm -f libospf6.a
- $(libospf6_a_AR) libospf6.a $(libospf6_a_OBJECTS) $(libospf6_a_LIBADD)
- $(RANLIB) libospf6.a
-sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-install-sbinPROGRAMS: $(sbin_PROGRAMS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(sbindir)
- @list='$(sbin_PROGRAMS)'; for p in $$list; do \
- p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
- if test -f $$p \
- ; then \
- f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) $$p $(DESTDIR)$(sbindir)/$$f"; \
- $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) $$p $(DESTDIR)$(sbindir)/$$f; \
- else :; fi; \
- done
-
-uninstall-sbinPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(sbin_PROGRAMS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
- rm -f $(DESTDIR)$(sbindir)/$$f; \
- done
-
-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:
-sysconfDATA_INSTALL = $(INSTALL_DATA)
-
-uninstall-sysconfDATA:
- @$(NORMAL_UNINSTALL)
- @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
-
-ETAGS = etags
-ETAGSFLAGS =
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(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; }'`; \
- mkid -fID $$unique
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(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)$$tags$$unique" \
- || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
-
-distdir: $(DISTFILES)
- @list='$(DISTFILES)'; for file in $$list; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
-
-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
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-noinstLIBRARIES clean-sbinPROGRAMS \
- mostlyclean-am
-
-distclean: distclean-am
-
-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
-
-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)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(sysconfdir)
- @list='$(sysconf_DATA)'; for p in $$list; do \
- if test -f $(srcdir)/$$p; then \
- echo " $(INSTALL_SDATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p"; \
- $(INSTALL_SDATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p; \
- else if test -f $$p; then \
- echo " $(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p"; \
- $(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/ospf6d/ospf6_damp.c b/ospf6d/ospf6_damp.c
index 4e807a70..878c48f6 100644
--- a/ospf6d/ospf6_damp.c
+++ b/ospf6d/ospf6_damp.c
@@ -567,8 +567,8 @@ DEFUN (show_ipv6_ospf6_route_flapping,
return CMD_SUCCESS;
}
-DEFUN (flap_damping_route,
- flap_damping_route_cmd,
+DEFUN (ospf6_flap_damping_route,
+ ospf6_flap_damping_route_cmd,
"flap-damping route <0-4294967295> <0-4294967295> "
"<0-4294967295> <0-4294967295>",
"enable flap dampening\n"
@@ -734,7 +734,7 @@ ospf6_damp_init ()
install_element (VIEW_NODE, &show_ipv6_ospf6_route_flapping_cmd);
install_element (ENABLE_NODE, &show_ipv6_ospf6_route_flapping_cmd);
install_element (ENABLE_NODE, &show_ipv6_ospf6_camp_config_cmd);
- install_element (OSPF6_NODE, &flap_damping_route_cmd);
+ install_element (OSPF6_NODE, &ospf6_flap_damping_route_cmd);
install_element (ENABLE_NODE, &show_debug_ospf6_damp_cmd);
install_element (CONFIG_NODE, &debug_ospf6_damp_cmd);
diff --git a/ospf6d/ospf6_dump.c b/ospf6d/ospf6_dump.c
index e950ec8c..1e3c0c42 100644
--- a/ospf6d/ospf6_dump.c
+++ b/ospf6d/ospf6_dump.c
@@ -224,7 +224,8 @@ DEFUN (no_debug_ospf6_all,
struct cmd_node debug_node =
{
DEBUG_NODE,
- ""
+ "",
+ vtysh: 1
};
int
diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c
index d394f21b..4d632b22 100644
--- a/ospf6d/ospf6_interface.c
+++ b/ospf6d/ospf6_interface.c
@@ -961,18 +961,25 @@ ospf6_interface_config_write (struct vty *vty)
vty_out (vty, "interface %s%s",
o6i->interface->name, VTY_NEWLINE);
+ if (o6i->cost != 1)
vty_out (vty, " ipv6 ospf6 cost %d%s",
o6i->cost, VTY_NEWLINE);
+ if (o6i->hello_interval != 10)
vty_out (vty, " ipv6 ospf6 hello-interval %d%s",
o6i->hello_interval, VTY_NEWLINE);
+ if (o6i->dead_interval != 40)
vty_out (vty, " ipv6 ospf6 dead-interval %d%s",
o6i->dead_interval, VTY_NEWLINE);
+ if (o6i->rxmt_interval != 5)
vty_out (vty, " ipv6 ospf6 retransmit-interval %d%s",
o6i->rxmt_interval, VTY_NEWLINE);
+ if (o6i->priority != 1)
vty_out (vty, " ipv6 ospf6 priority %d%s",
o6i->priority, VTY_NEWLINE);
+ if (o6i->transdelay != 1)
vty_out (vty, " ipv6 ospf6 transmit-delay %d%s",
o6i->transdelay, VTY_NEWLINE);
+ if (o6i->instance_id != 0)
vty_out (vty, " ipv6 ospf6 instance-id %d%s",
o6i->instance_id, VTY_NEWLINE);
@@ -994,6 +1001,7 @@ struct cmd_node interface_node =
{
INTERFACE_NODE,
"%s(config-if)# ",
+ vtysh: 1
};
void
diff --git a/ospf6d/ospf6_main.c b/ospf6d/ospf6_main.c
index e6cd6aaa..10203bf8 100644
--- a/ospf6d/ospf6_main.c
+++ b/ospf6d/ospf6_main.c
@@ -27,7 +27,6 @@
#include "command.h"
#include "vty.h"
#include "memory.h"
-#include "privs.h"
#include "ospf6d.h"
#include "ospf6_network.h"
@@ -44,26 +43,6 @@ extern int ospf6_sock;
/* Default port values. */
#define OSPF6_VTY_PORT 2606
-/* ospf6d privileges */
-zebra_capabilities_t _caps_p [] =
-{
- ZCAP_RAW,
- ZCAP_BIND
-};
-
-struct zebra_privs_t ospf6d_privs =
-{
-#if defined(ZEBRA_USER)
- .user = ZEBRA_USER,
-#endif
-#if defined ZEBRA_GROUP
- .group = ZEBRA_GROUP,
-#endif
- .caps_p = _caps_p,
- .cap_num_p = 2,
- .cap_num_i = 0
-};
-
/* ospf6d options, we use GNU getopt library. */
struct option longopts[] =
{
@@ -72,7 +51,6 @@ struct option longopts[] =
{ "pid_file", required_argument, NULL, 'i'},
{ "vty_addr", required_argument, NULL, 'A'},
{ "vty_port", required_argument, NULL, 'P'},
- { "user", required_argument, NULL, 'u'},
{ "version", no_argument, NULL, 'v'},
{ "help", no_argument, NULL, 'h'},
{ 0 }
@@ -115,7 +93,6 @@ Daemon which manages OSPF version 3.\n\n\
-i, --pid_file Set process identifier file name\n\
-A, --vty_addr Set vty's bind address\n\
-P, --vty_port Set vty's port number\n\
--u, --user User and group to run as\n\
-v, --version Print program version\n\
-h, --help Display this help and exit\n\
\n\
@@ -254,7 +231,7 @@ main (int argc, char *argv[], char *envp[])
/* Command line argument treatment. */
while (1)
{
- opt = getopt_long (argc, argv, "df:hp:A:P:u:v", longopts, 0);
+ opt = getopt_long (argc, argv, "df:hp:A:P:v", longopts, 0);
if (opt == EOF)
break;
@@ -286,9 +263,6 @@ main (int argc, char *argv[], char *envp[])
vty_port = atoi (optarg);
vty_port = (vty_port ? vty_port : OSPF6_VTY_PORT);
break;
- case 'u':
- ospf6d_privs.user = ospf6d_privs.group = optarg;
- break;
case 'v':
print_version (progname);
exit (0);
@@ -314,7 +288,6 @@ main (int argc, char *argv[], char *envp[])
zlog_default = openzlog (progname, flag, ZLOG_OSPF6,
LOG_CONS|LOG_NDELAY|LOG_PID,
LOG_DAEMON);
- zprivs_init (&ospf6d_privs);
signal_init ();
cmd_init (1);
vty_init ();
diff --git a/ospf6d/ospf6_network.c b/ospf6d/ospf6_network.c
index ece34135..e90614e5 100644
--- a/ospf6d/ospf6_network.c
+++ b/ospf6d/ospf6_network.c
@@ -23,7 +23,6 @@
#include "memory.h"
#include "log.h"
#include "sockunion.h"
-#include "privs.h"
#include "ospf6d.h"
#include "ospf6_proto.h"
@@ -33,7 +32,6 @@ extern struct sockaddr_in6 allspfrouters6;
extern struct sockaddr_in6 alldrouters6;
extern int ospf6_sock;
extern struct thread_master *master;
-extern struct zebra_privs_t ospf6d_privs;
/* iovec functions */
void
@@ -196,10 +194,6 @@ iov_copy_all (struct iovec *dst, struct iovec *src, size_t size)
int
ospf6_serv_sock ()
{
-
- if (ospf6d_privs.change (ZPRIVS_RAISE))
- zlog_err ("ospf6_serv_sock: could not raise privs");
-
ospf6_sock = socket (AF_INET6, SOCK_RAW, IPPROTO_OSPFIGP);
if (ospf6_sock < 0)
{
@@ -208,9 +202,6 @@ ospf6_serv_sock ()
}
sockopt_reuseaddr (ospf6_sock);
- if (ospf6d_privs.change (ZPRIVS_LOWER))
- zlog_err ("ospf_sock_init: could not lower privs");
-
/* setup global sockaddr_in6, allspf6 & alldr6 for later use */
allspfrouters6.sin6_family = AF_INET6;
alldrouters6.sin6_family = AF_INET6;
diff --git a/ospf6d/ospf6_routemap.c b/ospf6d/ospf6_routemap.c
index 14df7940..f617e913 100644
--- a/ospf6d/ospf6_routemap.c
+++ b/ospf6d/ospf6_routemap.c
@@ -214,14 +214,14 @@ route_map_command_status (struct vty *vty, int ret)
}
/* add "match address" */
-DEFUN (ospf6_routemap_match_address_prefixlist,
- ospf6_routemap_match_address_prefixlist_cmd,
+DEFUN (match_ipv6_address_prefix_list,
+ match_ipv6_address_prefix_list_cmd,
"match ipv6 address prefix-list WORD",
- "Match values\n"
+ MATCH_STR
IPV6_STR
"Match address of route\n"
"Match entries of prefix-lists\n"
- "IPv6 prefix-list name\n")
+ "IP prefix-list name\n")
{
int ret = route_map_add_match ((struct route_map_index *) vty->index,
"ipv6 address prefix-list", argv[0]);
@@ -229,15 +229,15 @@ DEFUN (ospf6_routemap_match_address_prefixlist,
}
/* delete "match address" */
-DEFUN (ospf6_routemap_no_match_address_prefixlist,
- ospf6_routemap_no_match_address_prefixlist_cmd,
+DEFUN (no_match_ipv6_address_prefix_list,
+ no_match_ipv6_address_prefix_list_cmd,
"no match ipv6 address prefix-list WORD",
NO_STR
- "Match values\n"
+ MATCH_STR
IPV6_STR
"Match address of route\n"
"Match entries of prefix-lists\n"
- "IPv6 prefix-list name\n")
+ "IP prefix-list name\n")
{
int ret = route_map_delete_match ((struct route_map_index *) vty->index,
"ipv6 address prefix-list", argv[0]);
@@ -245,13 +245,13 @@ DEFUN (ospf6_routemap_no_match_address_prefixlist,
}
/* add "set metric-type" */
-DEFUN (ospf6_routemap_set_metric_type,
- ospf6_routemap_set_metric_type_cmd,
+DEFUN (set_metric_type,
+ set_metric_type_cmd,
"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")
+ SET_STR
+ "Type of metric for destination routing protocol\n"
+ "OSPF[6] external type 1 metric\n"
+ "OSPF[6] external type 2 metric\n")
{
int ret = route_map_add_set ((struct route_map_index *) vty->index,
"metric-type", argv[0]);
@@ -259,26 +259,38 @@ DEFUN (ospf6_routemap_set_metric_type,
}
/* delete "set metric-type" */
-DEFUN (ospf6_routemap_no_set_metric_type,
- ospf6_routemap_no_set_metric_type_cmd,
- "no set metric-type (type-1|type-2)",
+DEFUN (no_set_metric_type,
+ no_set_metric_type_cmd,
+ "no set metric-type",
NO_STR
- "Set value\n"
- "Type of metric\n"
- "OSPF6 external type 1 metric\n"
- "OSPF6 external type 2 metric\n")
+ SET_STR
+ "Type of metric for destination routing protocol\n")
{
- int ret = route_map_delete_set ((struct route_map_index *) vty->index,
+ int ret;
+ if (argc == 0)
+ ret = route_map_delete_set ((struct route_map_index *) vty->index,
+ "metric-type", NULL);
+ else
+ ret = route_map_delete_set ((struct route_map_index *) vty->index,
"metric-type", argv[0]);
return route_map_command_status (vty, ret);
}
+ALIAS (no_set_metric_type,
+ no_set_metric_type_val_cmd,
+ "no set metric-type (type-1|type-2)",
+ NO_STR
+ SET_STR
+ "Type of metric for destination routing protocol\n"
+ "OSPF[6] external type 1 metric\n"
+ "OSPF[6] external type 2 metric\n")
+
/* add "set metric" */
DEFUN (set_metric,
set_metric_cmd,
"set metric <0-4294967295>",
- "Set value\n"
- "Metric value\n"
+ SET_STR
+ "Metric value for destination routing protocol\n"
"Metric value\n")
{
int ret = route_map_add_set ((struct route_map_index *) vty->index,
@@ -289,17 +301,29 @@ DEFUN (set_metric,
/* delete "set metric" */
DEFUN (no_set_metric,
no_set_metric_cmd,
- "no set metric <0-4294967295>",
+ "no set metric",
NO_STR
- "Set value\n"
- "Metric\n"
- "METRIC value\n")
+ SET_STR
+ "Metric value for destination routing protocol\n")
{
- int ret = route_map_delete_set ((struct route_map_index *) vty->index,
+ int ret;
+ if (argc == 0)
+ ret = route_map_delete_set ((struct route_map_index *) vty->index,
+ "metric", NULL);
+ else
+ ret = route_map_delete_set ((struct route_map_index *) vty->index,
"metric", argv[0]);
return route_map_command_status (vty, ret);
}
+ALIAS (no_set_metric,
+ no_set_metric_val_cmd,
+ "no set metric <0-4294967295>",
+ NO_STR
+ SET_STR
+ "Metric value for destination routing protocol\n"
+ "Metric value\n")
+
/* add "set forwarding-address" */
DEFUN (ospf6_routemap_set_forwarding,
ospf6_routemap_set_forwarding_cmd,
@@ -341,16 +365,18 @@ ospf6_routemap_init ()
route_map_install_set (&ospf6_routemap_rule_set_forwarding_cmd);
/* Match address prefix-list */
- install_element (RMAP_NODE, &ospf6_routemap_match_address_prefixlist_cmd);
- install_element (RMAP_NODE, &ospf6_routemap_no_match_address_prefixlist_cmd);
+ install_element (RMAP_NODE, &match_ipv6_address_prefix_list_cmd);
+ install_element (RMAP_NODE, &no_match_ipv6_address_prefix_list_cmd);
/* ASE Metric Type (e.g. Type-1/Type-2) */
- install_element (RMAP_NODE, &ospf6_routemap_set_metric_type_cmd);
- install_element (RMAP_NODE, &ospf6_routemap_no_set_metric_type_cmd);
+ install_element (RMAP_NODE, &set_metric_type_cmd);
+ install_element (RMAP_NODE, &no_set_metric_type_cmd);
+ install_element (RMAP_NODE, &no_set_metric_type_val_cmd);
/* ASE Metric */
install_element (RMAP_NODE, &set_metric_cmd);
install_element (RMAP_NODE, &no_set_metric_cmd);
+ install_element (RMAP_NODE, &no_set_metric_val_cmd);
/* ASE Metric */
install_element (RMAP_NODE, &ospf6_routemap_set_forwarding_cmd);
diff --git a/ospf6d/ospf6_zebra.c b/ospf6d/ospf6_zebra.c
index 7b8a8dcf..347ba1cf 100644
--- a/ospf6d/ospf6_zebra.c
+++ b/ospf6d/ospf6_zebra.c
@@ -348,6 +348,7 @@ struct cmd_node zebra_node =
{
ZEBRA_NODE,
"%s(config-zebra)# ",
+ vtysh: 0
};
#define ADD 0
diff --git a/ospf6d/ospf6d.c b/ospf6d/ospf6d.c
index d52ab93e..04609ba8 100644
--- a/ospf6d/ospf6d.c
+++ b/ospf6d/ospf6d.c
@@ -281,8 +281,8 @@ DEFUN (show_ipv6_ospf6_statistics,
}
/* change Router_ID commands. */
-DEFUN (router_id,
- router_id_cmd,
+DEFUN (ospf6_router_id,
+ ospf6_router_id_cmd,
"router-id ROUTER_ID",
"Configure ospf Router-ID.\n"
V4NOTATION_STR)
@@ -403,8 +403,8 @@ ospf6_interface_bind_area (struct vty *vty,
return CMD_SUCCESS;
}
-DEFUN (interface_area_plist,
- interface_area_plist_cmd,
+DEFUN (ospf6_interface_area_plist,
+ ospf6_interface_area_plist_cmd,
"interface IFNAME area A.B.C.D prefix-list WORD",
"Enable routing on an IPv6 interface\n"
IFNAME_STR
@@ -421,8 +421,8 @@ DEFUN (interface_area_plist,
return ospf6_interface_bind_area (vty, argv[0], argv[1], argv[2], 0);
}
-DEFUN (interface_area_plist_passive,
- interface_area_plist_passive_cmd,
+DEFUN (ospf6_interface_area_plist_passive,
+ ospf6_interface_area_plist_passive_cmd,
"interface IFNAME area A.B.C.D prefix-list WORD passive",
"Enable routing on an IPv6 interface\n"
IFNAME_STR
@@ -441,8 +441,8 @@ DEFUN (interface_area_plist_passive,
return ospf6_interface_bind_area (vty, argv[0], argv[1], argv[2], 1);
}
-DEFUN (interface_area,
- interface_area_cmd,
+DEFUN (ospf6_interface_area,
+ ospf6_interface_area_cmd,
"interface IFNAME area A.B.C.D",
"Enable routing on an IPv6 interface\n"
IFNAME_STR
@@ -476,8 +476,8 @@ DEFUN (interface_area,
plist_name, passive);
}
-DEFUN (interface_area_passive,
- interface_area_passive_cmd,
+DEFUN (ospf6_interface_area_passive,
+ ospf6_interface_area_passive_cmd,
"interface IFNAME area A.B.C.D passive",
"Enable routing on an IPv6 interface\n"
IFNAME_STR
@@ -493,8 +493,8 @@ DEFUN (interface_area_passive,
return ospf6_interface_bind_area (vty, argv[0], argv[1], NULL, 1);
}
-DEFUN (no_interface_area,
- no_interface_area_cmd,
+DEFUN (no_ospf6_interface_area,
+ no_ospf6_interface_area_cmd,
"no interface IFNAME area A.B.C.D",
NO_STR
"Disable routing on an IPv6 interface\n"
@@ -570,8 +570,8 @@ DEFUN (ospf6_area_range,
return CMD_SUCCESS;
}
-DEFUN (passive_interface,
- passive_interface_cmd,
+DEFUN (ospf6_passive_interface,
+ ospf6_passive_interface_cmd,
"passive-interface IFNAME",
OSPF6_PASSIVE_STR
IFNAME_STR)
@@ -596,8 +596,8 @@ DEFUN (passive_interface,
return CMD_SUCCESS;
}
-DEFUN (no_passive_interface,
- no_passive_interface_cmd,
+DEFUN (no_ospf6_passive_interface,
+ no_ospf6_passive_interface_cmd,
"no passive-interface IFNAME",
NO_STR
OSPF6_PASSIVE_STR
@@ -712,6 +712,7 @@ struct cmd_node ospf6_node =
{
OSPF6_NODE,
"%s(config-ospf6)# ",
+ vtysh: 1
};
/* Install ospf related commands. */
@@ -728,6 +729,7 @@ ospf6_init ()
install_element (ENABLE_NODE, &reload_cmd);
install_element (CONFIG_NODE, &router_ospf6_cmd);
install_element (CONFIG_NODE, &interface_cmd);
+ install_element (CONFIG_NODE, &no_interface_cmd);
#ifdef OSPF6_STATISTICS
install_element (VIEW_NODE, &show_ipv6_ospf6_statistics_cmd);
install_element (ENABLE_NODE, &show_ipv6_ospf6_statistics_cmd);
@@ -740,14 +742,14 @@ ospf6_init ()
#endif /* HAVE_SETPROCTITLE */
install_default (OSPF6_NODE);
- install_element (OSPF6_NODE, &router_id_cmd);
- install_element (OSPF6_NODE, &interface_area_cmd);
- install_element (OSPF6_NODE, &interface_area_passive_cmd);
- install_element (OSPF6_NODE, &interface_area_plist_cmd);
- install_element (OSPF6_NODE, &interface_area_plist_passive_cmd);
- install_element (OSPF6_NODE, &no_interface_area_cmd);
- install_element (OSPF6_NODE, &passive_interface_cmd);
- install_element (OSPF6_NODE, &no_passive_interface_cmd);
+ install_element (OSPF6_NODE, &ospf6_router_id_cmd);
+ install_element (OSPF6_NODE, &ospf6_interface_area_cmd);
+ install_element (OSPF6_NODE, &ospf6_interface_area_passive_cmd);
+ install_element (OSPF6_NODE, &ospf6_interface_area_plist_cmd);
+ install_element (OSPF6_NODE, &ospf6_interface_area_plist_passive_cmd);
+ install_element (OSPF6_NODE, &no_ospf6_interface_area_cmd);
+ install_element (OSPF6_NODE, &ospf6_passive_interface_cmd);
+ install_element (OSPF6_NODE, &no_ospf6_passive_interface_cmd);
install_element (OSPF6_NODE, &ospf6_area_range_cmd);
/* Make empty list of top list. */
diff --git a/ospf6d/ospf6d.h b/ospf6d/ospf6d.h
index 862b3828..8c7af99e 100644
--- a/ospf6d/ospf6d.h
+++ b/ospf6d/ospf6d.h
@@ -94,7 +94,6 @@ extern char *recent_reason;
/* Default port values. */
#define OSPF6_VTY_PORT 2606
-#define OSPF6_VTYSH_PATH "/tmp/.ospf6d"
#ifdef INRIA_IPV6
#ifndef IPV6_PKTINFO
diff --git a/ospfclient/.cvsignore b/ospfclient/.cvsignore
new file mode 100644
index 00000000..818e8fa8
--- /dev/null
+++ b/ospfclient/.cvsignore
@@ -0,0 +1,7 @@
+Makefile
+Makefile.in
+*.o
+ospfclient
+tags
+TAGS
+.deps
diff --git a/ospfclient/AUTHORS b/ospfclient/AUTHORS
new file mode 100644
index 00000000..b865c550
--- /dev/null
+++ b/ospfclient/AUTHORS
@@ -0,0 +1 @@
+Ralph Keller <keller@tik.ee.ethz.ch>
diff --git a/ospfclient/COPYING b/ospfclient/COPYING
new file mode 100644
index 00000000..a43ea212
--- /dev/null
+++ b/ospfclient/COPYING
@@ -0,0 +1,339 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 675 Mass Ave, Cambridge, MA 02139, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ Appendix: How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/ospfclient/ChangeLog b/ospfclient/ChangeLog
new file mode 100644
index 00000000..275b14ef
--- /dev/null
+++ b/ospfclient/ChangeLog
@@ -0,0 +1,57 @@
+2003-01-10 Ralph Keller <keller@tik.ee.ethz.ch>
+ * New ChangeLog
+
+2003-01-08 Ralph Keller <keller@tik.ee.ethz.ch>
+ * apiclient message passing bug resolved
+ * (proposed by Masahiko)
+
+2002-10-09 Ralph Keller <keller@tik.ee.ethz.ch>
+ * Includes patch in OSPFd for ISM, NSM, neighbor
+
+2002-09-16 Ralph Keller <keller@tik.ee.ethz.ch>
+ * Current patch vs. Zebra-0.93b
+
+2002-08-22 Ralph Keller <keller@tik.ee.ethz.ch>
+ * Bugfix: LSA updates are now received only once even
+ * if multiple opaque types are registered
+
+2002-08-06 Ralph Keller <keller@tik.ee.ethz.ch>
+ * Upgrade of OSPF API to Zebra-0.93a.
+
+2002-06-13 Ralph Keller <keller@tik.ee.ethz.ch>
+ * Opaque LSA origination bug fixed by Masahiko.
+ * This code is based on 0.93-pre
+
+2002-05-03 Ralph Keller <keller@tik.ee.ethz.ch>
+ * Upgrade to newest Zebra from CVS repository. ospf_flood_through
+ * function did not work after upgrade. Function
+ * ospf_apiserver_flood_opaque_lsa added. Also byte order problem
+ * with port numbers resolved.
+
+2002-05-02 Ralph Keller <keller@tik.ee.ethz.ch>
+
+ * new autoconf and automake files, now called configure.in
+ * instead of configure.ac
+
+2002-04-24 Ralph Keller <keller@tik.ee.ethz.ch>
+
+ * reverse channel now works (syncport and syncport+1)
+ * ospf_apiclient.c: standard includes removed (not needed)
+ * bzero replaced with memset
+
+2002-04-18 Ralph Keller <keller@tik.ee.ethz.ch>
+
+ * 2-way phase connection setup
+
+2002-04-05 Ralph Keller <keller@tik.ee.ethz.ch>
+
+ * Changes incorporated as proposed by Masahiko
+
+2002-04-05 Ralph Keller <keller@tik.ee.ethz.ch>
+
+ * autoconf and automake-style Makefile
+
+2002-04-04 Ralph Keller <keller@tik.ee.ethz.ch>
+
+ * 1st public release of OSPF API
+
diff --git a/ospfclient/INSTALL b/ospfclient/INSTALL
new file mode 100644
index 00000000..b42a17ac
--- /dev/null
+++ b/ospfclient/INSTALL
@@ -0,0 +1,182 @@
+Basic Installation
+==================
+
+ These are generic installation instructions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, a file
+`config.cache' that saves the results of its tests to speed up
+reconfiguring, and a file `config.log' containing compiler output
+(useful mainly for debugging `configure').
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If at some point `config.cache'
+contains results you don't want to keep, you may remove or edit it.
+
+ The file `configure.in' is used to create `configure' by a program
+called `autoconf'. You only need `configure.in' if you want to change
+it or regenerate `configure' using a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system. If you're
+ using `csh' on an old version of System V, you might need to type
+ `sh ./configure' instead to prevent `csh' from trying to execute
+ `configure' itself.
+
+ Running `configure' takes awhile. While running, it prints some
+ messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 5. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. You can give `configure'
+initial values for variables by setting them in the environment. Using
+a Bourne-compatible shell, you can do that on the command line like
+this:
+ CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+
+Or on systems that have the `env' program, you can do it like this:
+ env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ If you have to use a `make' that does not supports the `VPATH'
+variable, you have to compile the package for one architecture at a time
+in the source code directory. After you have installed the package for
+one architecture, use `make distclean' before reconfiguring for another
+architecture.
+
+Installation Names
+==================
+
+ By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc. You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=PATH' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' can not figure out
+automatically, but needs to determine by the type of host the package
+will run on. Usually `configure' can figure that out, but if it prints
+a message saying it can not guess the host type, give it the
+`--host=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name with three fields:
+ CPU-COMPANY-SYSTEM
+
+See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the host type.
+
+ If you are building compiler tools for cross-compiling, you can also
+use the `--target=TYPE' option to select the type of system they will
+produce code for and the `--build=TYPE' option to select the type of
+system on which you are compiling the package.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Operation Controls
+==================
+
+ `configure' recognizes the following options to control how it
+operates.
+
+`--cache-file=FILE'
+ Use and save the results of the tests in FILE instead of
+ `./config.cache'. Set FILE to `/dev/null' to disable caching, for
+ debugging `configure'.
+
+`--help'
+ Print a summary of the options to `configure', and exit.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`--version'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`configure' also accepts some other, not widely useful, options.
diff --git a/ospfclient/Makefile.am b/ospfclient/Makefile.am
index fb041af9..95a74eec 100644
--- a/ospfclient/Makefile.am
+++ b/ospfclient/Makefile.am
@@ -16,6 +16,6 @@ ospfapiheader_HEADERS = \
ospfclient_SOURCES = \
ospfclient.c $(libospfapiclient_a_SOURCES)
-ospfclient_LDADD = ../ospfd/libospf.a ../lib/libzebra.a @LIBCAP@
+ospfclient_LDADD = ../ospfd/libospf.a ../lib/libzebra.a
diff --git a/ospfclient/NEWS b/ospfclient/NEWS
new file mode 100644
index 00000000..5b1ec4fd
--- /dev/null
+++ b/ospfclient/NEWS
@@ -0,0 +1 @@
+This file contains news.
diff --git a/ospfclient/README b/ospfclient/README
new file mode 100644
index 00000000..894cd783
--- /dev/null
+++ b/ospfclient/README
@@ -0,0 +1,4 @@
+For more information about this software check out:
+
+http://www.tik.ee.ethz.ch/~keller/ospfapi/
+
diff --git a/ospfclient/ospf_apiclient.c b/ospfclient/ospf_apiclient.c
new file mode 100644
index 00000000..3a62a423
--- /dev/null
+++ b/ospfclient/ospf_apiclient.c
@@ -0,0 +1,747 @@
+/*
+ * Client side of OSPF API.
+ * Copyright (C) 2001, 2002, 2003 Ralph Keller
+ *
+ * This file is part of GNU Zebra.
+ *
+ * GNU Zebra is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation; either version 2, or (at your
+ * option) any later version.
+ *
+ * GNU Zebra is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Zebra; see the file COPYING. If not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <zebra.h>
+
+#include "version.h"
+#include "getopt.h"
+#include "thread.h"
+#include "prefix.h"
+#include "linklist.h"
+#include "if.h"
+#include "vector.h"
+#include "vty.h"
+#include "command.h"
+#include "filter.h"
+#include "stream.h"
+#include "log.h"
+#include "memory.h"
+
+#include "ospfd/ospfd.h"
+#include "ospfd/ospf_interface.h"
+#include "ospfd/ospf_asbr.h"
+#include "ospfd/ospf_lsa.h"
+#include "ospfd/ospf_opaque.h"
+#include "ospfd/ospf_lsdb.h"
+#include "ospfd/ospf_neighbor.h"
+#include "ospfd/ospf_dump.h"
+#include "ospfd/ospf_zebra.h"
+#include "ospfd/ospf_api.h"
+
+#include "ospf_apiclient.h"
+
+/* Backlog for listen */
+#define BACKLOG 5
+
+/* -----------------------------------------------------------
+ * Forward declarations
+ * -----------------------------------------------------------
+ */
+
+void ospf_apiclient_handle_reply (struct ospf_apiclient *oclient,
+ struct msg *msg);
+void ospf_apiclient_handle_update_notify (struct ospf_apiclient *oclient,
+ struct msg *msg);
+void ospf_apiclient_handle_delete_notify (struct ospf_apiclient *oclient,
+ struct msg *msg);
+
+/* -----------------------------------------------------------
+ * Initialization
+ * -----------------------------------------------------------
+ */
+
+unsigned short
+ospf_apiclient_getport (void)
+{
+ struct servent *sp = getservbyname ("ospfapi", "tcp");
+
+ return sp ? ntohs (sp->s_port) : OSPF_API_SYNC_PORT;
+}
+
+/* -----------------------------------------------------------
+ * Followings are functions for connection management
+ * -----------------------------------------------------------
+ */
+
+struct ospf_apiclient *
+ospf_apiclient_connect (char *host, int syncport)
+{
+ struct sockaddr_in myaddr_sync;
+ struct sockaddr_in myaddr_async;
+ struct sockaddr_in peeraddr;
+ struct hostent *hp;
+ struct ospf_apiclient *new;
+ int size = 0;
+ int peeraddrlen;
+ int async_server_sock;
+ int fd1, fd2;
+ int ret;
+ int on = 1;
+
+ /* There are two connections between the client and the server.
+ First the client opens a connection for synchronous requests/replies
+ to the server. The server will accept this connection and
+ as a reaction open a reverse connection channel for
+ asynchronous messages. */
+
+ async_server_sock = socket (AF_INET, SOCK_STREAM, 0);
+ if (async_server_sock < 0)
+ {
+ fprintf (stderr,
+ "ospf_apiclient_connect: creating async socket failed\n");
+ return NULL;
+ }
+
+ /* Prepare socket for asynchronous messages */
+ /* Initialize async address structure */
+ memset (&myaddr_async, 0, sizeof (struct sockaddr_in));
+ myaddr_async.sin_family = AF_INET;
+ myaddr_async.sin_addr.s_addr = htonl (INADDR_ANY);
+ myaddr_async.sin_port = htons (syncport+1);
+ size = sizeof (struct sockaddr_in);
+#ifdef HAVE_SIN_LEN
+ myaddr_async.sin_len = size;
+#endif /* HAVE_SIN_LEN */
+
+ /* This is a server socket, reuse addr and port */
+ ret = setsockopt (async_server_sock, SOL_SOCKET,
+ SO_REUSEADDR, (void *) &on, sizeof (on));
+ if (ret < 0)
+ {
+ fprintf (stderr, "ospf_apiclient_connect: SO_REUSEADDR failed\n");
+ close (async_server_sock);
+ return NULL;
+ }
+
+#ifdef SO_REUSEPORT
+ ret = setsockopt (async_server_sock, SOL_SOCKET, SO_REUSEPORT,
+ (void *) &on, sizeof (on));
+ if (ret < 0)
+ {
+ fprintf (stderr, "ospf_apiclient_connect: SO_REUSEPORT failed\n");
+ close (async_server_sock);
+ return NULL;
+ }
+#endif /* SO_REUSEPORT */
+
+ /* Bind socket to address structure */
+ ret = bind (async_server_sock, (struct sockaddr *) &myaddr_async, size);
+ if (ret < 0)
+ {
+ fprintf (stderr, "ospf_apiclient_connect: bind async socket failed\n");
+ close (async_server_sock);
+ return NULL;
+ }
+
+ /* Wait for reverse channel connection establishment from server */
+ ret = listen (async_server_sock, BACKLOG);
+ if (ret < 0)
+ {
+ fprintf (stderr, "ospf_apiclient_connect: listen: %s\n", strerror (errno));
+ close (async_server_sock);
+ return NULL;
+ }
+
+ /* Make connection for synchronous requests and connect to server */
+ /* Resolve address of server */
+ hp = gethostbyname (host);
+ if (!hp)
+ {
+ fprintf (stderr, "ospf_apiclient_connect: no such host %s\n", host);
+ close (async_server_sock);
+ return NULL;
+ }
+
+ fd1 = socket (AF_INET, SOCK_STREAM, 0);
+ if (fd1 < 0)
+ {
+ fprintf (stderr,
+ "ospf_apiclient_connect: creating sync socket failed\n");
+ return NULL;
+ }
+
+
+ /* Reuse addr and port */
+ ret = setsockopt (fd1, SOL_SOCKET,
+ SO_REUSEADDR, (void *) &on, sizeof (on));
+ if (ret < 0)
+ {
+ fprintf (stderr, "ospf_apiclient_connect: SO_REUSEADDR failed\n");
+ close (fd1);
+ return NULL;
+ }
+
+#ifdef SO_REUSEPORT
+ ret = setsockopt (fd1, SOL_SOCKET, SO_REUSEPORT,
+ (void *) &on, sizeof (on));
+ if (ret < 0)
+ {
+ fprintf (stderr, "ospf_apiclient_connect: SO_REUSEPORT failed\n");
+ close (fd1);
+ return NULL;
+ }
+#endif /* SO_REUSEPORT */
+
+
+ /* Bind sync socket to address structure. This is needed since we
+ want the sync port number on a fixed port number. The reverse
+ async channel will be at this port+1 */
+
+ memset (&myaddr_sync, 0, sizeof (struct sockaddr_in));
+ myaddr_sync.sin_family = AF_INET;
+ myaddr_sync.sin_port = htons (syncport);
+#ifdef HAVE_SIN_LEN
+ myaddr_sync.sin_len = sizeof (struct sockaddr_in);
+#endif /* HAVE_SIN_LEN */
+
+ ret = bind (fd1, (struct sockaddr *) &myaddr_sync, size);
+ if (ret < 0)
+ {
+ fprintf (stderr, "ospf_apiclient_connect: bind sync socket failed\n");
+ close (fd1);
+ return NULL;
+ }
+
+ /* Prepare address structure for connect */
+ memcpy (&myaddr_sync.sin_addr, hp->h_addr, hp->h_length);
+ myaddr_sync.sin_family = AF_INET;
+ myaddr_sync.sin_port = htons(ospf_apiclient_getport ());
+#ifdef HAVE_SIN_LEN
+ myaddr_sync.sin_len = sizeof (struct sockaddr_in);
+#endif /* HAVE_SIN_LEN */
+
+ /* Now establish synchronous channel with OSPF daemon */
+ ret = connect (fd1, (struct sockaddr *) &myaddr_sync,
+ sizeof (struct sockaddr_in));
+ if (ret < 0)
+ {
+ fprintf (stderr, "ospf_apiclient_connect: sync connect failed\n");
+ close (async_server_sock);
+ close (fd1);
+ return NULL;
+ }
+
+ /* Accept reverse connection */
+ peeraddrlen = sizeof (struct sockaddr_in);
+ memset (&peeraddr, 0, peeraddrlen);
+
+ fd2 =
+ accept (async_server_sock, (struct sockaddr *) &peeraddr, &peeraddrlen);
+ if (fd2 < 0)
+ {
+ fprintf (stderr, "ospf_apiclient_connect: accept async failed\n");
+ close (async_server_sock);
+ close (fd1);
+ return NULL;
+ }
+
+ /* Server socket is not needed anymore since we are not accepting more
+ connections */
+ close (async_server_sock);
+
+ /* Create new client-side instance */
+ new = XMALLOC (MTYPE_OSPF_APICLIENT, sizeof (struct ospf_apiclient));
+ memset (new, 0, sizeof (struct ospf_apiclient));
+
+ /* Initialize socket descriptors for sync and async channels */
+ new->fd_sync = fd1;
+ new->fd_async = fd2;
+
+ return new;
+}
+
+int
+ospf_apiclient_close (struct ospf_apiclient *oclient)
+{
+
+ if (oclient->fd_sync >= 0)
+ {
+ close (oclient->fd_sync);
+ }
+
+ if (oclient->fd_async >= 0)
+ {
+ close (oclient->fd_async);
+ }
+
+ /* Free client structure */
+ XFREE (MTYPE_OSPF_APICLIENT, oclient);
+ return 0;
+}
+
+/* -----------------------------------------------------------
+ * Followings are functions to send a request to OSPFd
+ * -----------------------------------------------------------
+ */
+
+/* Send synchronous request, wait for reply */
+int
+ospf_apiclient_send_request (struct ospf_apiclient *oclient, struct msg *msg)
+{
+ u_int32_t reqseq;
+ struct msg_reply *msgreply;
+ int rc;
+
+ /* NB: Given "msg" is freed inside this function. */
+
+ /* Remember the sequence number of the request */
+ reqseq = ntohl (msg->hdr.msgseq);
+
+ /* Write message to OSPFd */
+ rc = msg_write (oclient->fd_sync, msg);
+ msg_free (msg);
+
+ if (rc < 0)
+ {
+ return -1;
+ }
+
+ /* Wait for reply *//* NB: New "msg" is allocated by "msg_read()". */
+ msg = msg_read (oclient->fd_sync);
+ if (!msg)
+ return -1;
+
+ assert (msg->hdr.msgtype == MSG_REPLY);
+ assert (ntohl (msg->hdr.msgseq) == reqseq);
+
+ msgreply = (struct msg_reply *) STREAM_DATA (msg->s);
+ rc = msgreply->errcode;
+ msg_free (msg);
+
+ return rc;
+}
+
+
+/* -----------------------------------------------------------
+ * Helper functions
+ * -----------------------------------------------------------
+ */
+
+static u_int32_t
+ospf_apiclient_get_seqnr (void)
+{
+ static u_int32_t seqnr = MIN_SEQ;
+ u_int32_t tmp;
+
+ tmp = seqnr;
+ /* Increment sequence number */
+ if (seqnr < MAX_SEQ)
+ {
+ seqnr++;
+ }
+ else
+ {
+ seqnr = MIN_SEQ;
+ }
+ return tmp;
+}
+
+/* -----------------------------------------------------------
+ * API to access OSPF daemon by client applications.
+ * -----------------------------------------------------------
+ */
+
+/*
+ * Synchronous request to register opaque type.
+ */
+int
+ospf_apiclient_register_opaque_type (struct ospf_apiclient *cl,
+ u_char ltype, u_char otype)
+{
+ struct msg *msg;
+ int rc;
+
+ /* just put 1 as a sequence number. */
+ msg = new_msg_register_opaque_type (ospf_apiclient_get_seqnr (),
+ ltype, otype);
+ if (!msg)
+ {
+ fprintf (stderr, "new_msg_register_opaque_type failed\n");
+ return -1;
+ }
+
+ rc = ospf_apiclient_send_request (cl, msg);
+ return rc;
+}
+
+/*
+ * Synchronous request to synchronize with OSPF's LSDB.
+ * Two steps required: register_event in order to get
+ * dynamic updates and LSDB_Sync.
+ */
+int
+ospf_apiclient_sync_lsdb (struct ospf_apiclient *oclient)
+{
+ struct msg *msg;
+ int rc;
+ struct lsa_filter_type filter;
+
+ filter.typemask = 0xFFFF; /* all LSAs */
+ filter.origin = ANY_ORIGIN;
+ filter.num_areas = 0; /* all Areas. */
+
+ msg = new_msg_register_event (ospf_apiclient_get_seqnr (), &filter);
+ if (!msg)
+ {
+ fprintf (stderr, "new_msg_register_event failed\n");
+ return -1;
+ }
+ rc = ospf_apiclient_send_request (oclient, msg);
+
+ if (rc != 0)
+ goto out;
+
+ msg = new_msg_sync_lsdb (ospf_apiclient_get_seqnr (), &filter);
+ if (!msg)
+ {
+ fprintf (stderr, "new_msg_sync_lsdb failed\n");
+ return -1;
+ }
+ rc = ospf_apiclient_send_request (oclient, msg);
+
+out:
+ return rc;
+}
+
+/*
+ * Synchronous request to originate or update an LSA.
+ */
+
+int
+ospf_apiclient_lsa_originate (struct ospf_apiclient *oclient,
+ struct in_addr ifaddr,
+ struct in_addr area_id,
+ u_char lsa_type,
+ u_char opaque_type, u_int32_t opaque_id,
+ void *opaquedata, int opaquelen)
+{
+ struct msg *msg;
+ int rc;
+ u_char buf[OSPF_MAX_LSA_SIZE];
+ struct lsa_header *lsah;
+ u_int32_t tmp;
+
+
+ /* We can only originate opaque LSAs */
+ if (!IS_OPAQUE_LSA (lsa_type))
+ {
+ fprintf (stderr, "Cannot originate non-opaque LSA type %d\n", lsa_type);
+ return OSPF_API_ILLEGALLSATYPE;
+ }
+
+ /* Make a new LSA from parameters */
+ lsah = (struct lsa_header *) buf;
+ lsah->ls_age = 0;
+ lsah->options = 0;
+ lsah->type = lsa_type;
+
+ tmp = SET_OPAQUE_LSID (opaque_type, opaque_id);
+ lsah->id.s_addr = htonl (tmp);
+ lsah->adv_router.s_addr = 0;
+ lsah->ls_seqnum = 0;
+ lsah->checksum = 0;
+ lsah->length = htons (sizeof (struct lsa_header) + opaquelen);
+
+ memcpy (((u_char *) lsah) + sizeof (struct lsa_header), opaquedata,
+ opaquelen);
+
+ msg = new_msg_originate_request (ospf_apiclient_get_seqnr (),
+ ifaddr, area_id, lsah);
+ if (!msg)
+ {
+ fprintf (stderr, "new_msg_originate_request failed\n");
+ return OSPF_API_NOMEMORY;
+ }
+
+ rc = ospf_apiclient_send_request (oclient, msg);
+ return rc;
+}
+
+int
+ospf_apiclient_lsa_delete (struct ospf_apiclient *oclient,
+ struct in_addr area_id, u_char lsa_type,
+ u_char opaque_type, u_int32_t opaque_id)
+{
+ struct msg *msg;
+ int rc;
+
+ /* Only opaque LSA can be deleted */
+ if (!IS_OPAQUE_LSA (lsa_type))
+ {
+ fprintf (stderr, "Cannot delete non-opaque LSA type %d\n", lsa_type);
+ return OSPF_API_ILLEGALLSATYPE;
+ }
+
+ /* opaque_id is in host byte order and will be converted
+ * to network byte order by new_msg_delete_request */
+ msg = new_msg_delete_request (ospf_apiclient_get_seqnr (),
+ area_id, lsa_type, opaque_type, opaque_id);
+
+ rc = ospf_apiclient_send_request (oclient, msg);
+ return rc;
+}
+
+/* -----------------------------------------------------------
+ * Followings are handlers for messages from OSPF daemon
+ * -----------------------------------------------------------
+ */
+
+void
+ospf_apiclient_handle_ready (struct ospf_apiclient *oclient, struct msg *msg)
+{
+ struct msg_ready_notify *r;
+ r = (struct msg_ready_notify *) STREAM_DATA (msg->s);
+
+ /* Invoke registered callback function. */
+ if (oclient->ready_notify)
+ {
+ (oclient->ready_notify) (r->lsa_type, r->opaque_type, r->addr);
+ }
+}
+
+void
+ospf_apiclient_handle_new_if (struct ospf_apiclient *oclient, struct msg *msg)
+{
+ struct msg_new_if *n;
+ n = (struct msg_new_if *) STREAM_DATA (msg->s);
+
+ /* Invoke registered callback function. */
+ if (oclient->new_if)
+ {
+ (oclient->new_if) (n->ifaddr, n->area_id);
+ }
+}
+
+void
+ospf_apiclient_handle_del_if (struct ospf_apiclient *oclient, struct msg *msg)
+{
+ struct msg_del_if *d;
+ d = (struct msg_del_if *) STREAM_DATA (msg->s);
+
+ /* Invoke registered callback function. */
+ if (oclient->del_if)
+ {
+ (oclient->del_if) (d->ifaddr);
+ }
+}
+
+void
+ospf_apiclient_handle_ism_change (struct ospf_apiclient *oclient,
+ struct msg *msg)
+{
+ struct msg_ism_change *m;
+ m = (struct msg_ism_change *) STREAM_DATA (msg->s);
+
+ /* Invoke registered callback function. */
+ if (oclient->ism_change)
+ {
+ (oclient->ism_change) (m->ifaddr, m->area_id, m->status);
+ }
+
+}
+
+void
+ospf_apiclient_handle_nsm_change (struct ospf_apiclient *oclient,
+ struct msg *msg)
+{
+ struct msg_nsm_change *m;
+ m = (struct msg_nsm_change *) STREAM_DATA (msg->s);
+
+ /* Invoke registered callback function. */
+ if (oclient->nsm_change)
+ {
+ (oclient->nsm_change) (m->ifaddr, m->nbraddr, m->router_id, m->status);
+ }
+}
+
+void
+ospf_apiclient_handle_lsa_update (struct ospf_apiclient *oclient,
+ struct msg *msg)
+{
+ struct msg_lsa_change_notify *cn;
+ struct lsa_header *lsa;
+ int lsalen;
+
+ cn = (struct msg_lsa_change_notify *) STREAM_DATA (msg->s);
+
+ /* Extract LSA from message */
+ lsalen = ntohs (cn->data.length);
+ lsa = XMALLOC (MTYPE_OSPF_APICLIENT, lsalen);
+ if (!lsa)
+ {
+ fprintf (stderr, "LSA update: Cannot allocate memory for LSA\n");
+ return;
+ }
+ memcpy (lsa, &(cn->data), lsalen);
+
+ /* Invoke registered update callback function */
+ if (oclient->update_notify)
+ {
+ (oclient->update_notify) (cn->ifaddr, cn->area_id,
+ cn->is_self_originated, lsa);
+ }
+
+ /* free memory allocated by ospf apiclient library */
+ XFREE (MTYPE_OSPF_APICLIENT, lsa);
+}
+
+void
+ospf_apiclient_handle_lsa_delete (struct ospf_apiclient *oclient,
+ struct msg *msg)
+{
+ struct msg_lsa_change_notify *cn;
+ struct lsa_header *lsa;
+ int lsalen;
+
+ cn = (struct msg_lsa_change_notify *) STREAM_DATA (msg->s);
+
+ /* Extract LSA from message */
+ lsalen = ntohs (cn->data.length);
+ lsa = XMALLOC (MTYPE_OSPF_APICLIENT, lsalen);
+ if (!lsa)
+ {
+ fprintf (stderr, "LSA delete: Cannot allocate memory for LSA\n");
+ return;
+ }
+ memcpy (lsa, &(cn->data), lsalen);
+
+ /* Invoke registered update callback function */
+ if (oclient->delete_notify)
+ {
+ (oclient->delete_notify) (cn->ifaddr, cn->area_id,
+ cn->is_self_originated, lsa);
+ }
+
+ /* free memory allocated by ospf apiclient library */
+ XFREE (MTYPE_OSPF_APICLIENT, lsa);
+}
+
+void
+ospf_apiclient_msghandle (struct ospf_apiclient *oclient, struct msg *msg)
+{
+ /* Call message handler function. */
+ switch (msg->hdr.msgtype)
+ {
+ case MSG_READY_NOTIFY:
+ ospf_apiclient_handle_ready (oclient, msg);
+ break;
+ case MSG_NEW_IF:
+ ospf_apiclient_handle_new_if (oclient, msg);
+ break;
+ case MSG_DEL_IF:
+ ospf_apiclient_handle_del_if (oclient, msg);
+ break;
+ case MSG_ISM_CHANGE:
+ ospf_apiclient_handle_ism_change (oclient, msg);
+ break;
+ case MSG_NSM_CHANGE:
+ ospf_apiclient_handle_nsm_change (oclient, msg);
+ break;
+ case MSG_LSA_UPDATE_NOTIFY:
+ ospf_apiclient_handle_lsa_update (oclient, msg);
+ break;
+ case MSG_LSA_DELETE_NOTIFY:
+ ospf_apiclient_handle_lsa_delete (oclient, msg);
+ break;
+ default:
+ fprintf (stderr, "ospf_apiclient_read: Unknown message type: %d\n",
+ msg->hdr.msgtype);
+ break;
+ }
+}
+
+/* -----------------------------------------------------------
+ * Callback handler registration
+ * -----------------------------------------------------------
+ */
+
+void
+ospf_apiclient_register_callback (struct ospf_apiclient *oclient,
+ void (*ready_notify) (u_char lsa_type,
+ u_char opaque_type,
+ struct in_addr addr),
+ void (*new_if) (struct in_addr ifaddr,
+ struct in_addr area_id),
+ void (*del_if) (struct in_addr ifaddr),
+ void (*ism_change) (struct in_addr ifaddr,
+ struct in_addr area_id,
+ u_char status),
+ void (*nsm_change) (struct in_addr ifaddr,
+ struct in_addr nbraddr,
+ struct in_addr
+ router_id,
+ u_char status),
+ void (*update_notify) (struct in_addr
+ ifaddr,
+ struct in_addr
+ area_id,
+ u_char self_origin,
+ struct lsa_header *
+ lsa),
+ void (*delete_notify) (struct in_addr
+ ifaddr,
+ struct in_addr
+ area_id,
+ u_char self_origin,
+ struct lsa_header *
+ lsa))
+{
+ assert (oclient);
+ assert (update_notify);
+
+ /* Register callback function */
+ oclient->ready_notify = ready_notify;
+ oclient->new_if = new_if;
+ oclient->del_if = del_if;
+ oclient->ism_change = ism_change;
+ oclient->nsm_change = nsm_change;
+ oclient->update_notify = update_notify;
+ oclient->delete_notify = delete_notify;
+}
+
+/* -----------------------------------------------------------
+ * Asynchronous message handling
+ * -----------------------------------------------------------
+ */
+
+int
+ospf_apiclient_handle_async (struct ospf_apiclient *oclient)
+{
+ struct msg *msg;
+
+ /* Get a message */
+ msg = msg_read (oclient->fd_async);
+
+ if (!msg)
+ {
+ /* Connection broke down */
+ return -1;
+ }
+
+ /* Handle message */
+ ospf_apiclient_msghandle (oclient, msg);
+
+ /* Don't forget to free this message */
+ msg_free (msg);
+
+ return 0;
+}
diff --git a/ospfclient/ospf_apiclient.h b/ospfclient/ospf_apiclient.h
new file mode 100644
index 00000000..0e74787a
--- /dev/null
+++ b/ospfclient/ospf_apiclient.h
@@ -0,0 +1,135 @@
+/*
+ * Client side of OSPF API.
+ * Copyright (C) 2001, 2002, 2003 Ralph Keller
+ *
+ * This file is part of GNU Zebra.
+ *
+ * GNU Zebra is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation; either version 2, or (at your
+ * option) any later version.
+ *
+ * GNU Zebra is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Zebra; see the file COPYING. If not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef _OSPF_APICLIENT_H
+#define _OSPF_APICLIENT_H
+
+#define MTYPE_OSPF_APICLIENT 0
+
+/* Structure for the OSPF API client */
+struct ospf_apiclient
+{
+
+ /* Sockets for sync requests and async notifications */
+ int fd_sync;
+ int fd_async;
+
+ /* Pointer to callback functions */
+ void (*ready_notify) (u_char lsa_type, u_char opaque_type,
+ struct in_addr addr);
+ void (*new_if) (struct in_addr ifaddr, struct in_addr area_id);
+ void (*del_if) (struct in_addr ifaddr);
+ void (*ism_change) (struct in_addr ifaddr, struct in_addr area_id,
+ u_char status);
+ void (*nsm_change) (struct in_addr ifaddr, struct in_addr nbraddr,
+ struct in_addr router_id, u_char status);
+ void (*update_notify) (struct in_addr ifaddr, struct in_addr area_id,
+ u_char self_origin,
+ struct lsa_header * lsa);
+ void (*delete_notify) (struct in_addr ifaddr, struct in_addr area_id,
+ u_char self_origin,
+ struct lsa_header * lsa);
+};
+
+
+/* ---------------------------------------------------------
+ * API function prototypes.
+ * --------------------------------------------------------- */
+
+/* Open connection to OSPF daemon. Two ports will be allocated on
+ client, sync channel at syncport and reverse channel at syncport+1 */
+struct ospf_apiclient *ospf_apiclient_connect (char *host, int syncport);
+
+/* Shutdown connection to OSPF daemon. */
+int ospf_apiclient_close (struct ospf_apiclient *oclient);
+
+/* Synchronous request to register opaque type. */
+int ospf_apiclient_register_opaque_type (struct ospf_apiclient *oclient,
+ u_char ltype, u_char otype);
+
+/* Synchronous request to register event mask. */
+int ospf_apiclient_register_events (struct ospf_apiclient *oclient,
+ u_int32_t mask);
+
+/* Register callback functions.*/
+void ospf_apiclient_register_callback (struct ospf_apiclient *oclient,
+ void (*ready_notify) (u_char lsa_type,
+ u_char
+ opaque_type,
+ struct in_addr
+ addr),
+ void (*new_if) (struct in_addr ifaddr,
+ struct in_addr
+ area_id),
+ void (*del_if) (struct in_addr ifaddr),
+ void (*ism_change) (struct in_addr
+ ifaddr,
+ struct in_addr
+ area_id,
+ u_char status),
+ void (*nsm_change) (struct in_addr
+ ifaddr,
+ struct in_addr
+ nbraddr,
+ struct in_addr
+ router_id,
+ u_char status),
+ void (*update_notify) (struct in_addr
+ ifaddr,
+ struct in_addr
+ area_id,
+ u_char selforig,
+ struct
+ lsa_header *
+ lsa),
+ void (*delete_notify) (struct in_addr
+ ifaddr,
+ struct in_addr
+ area_id,
+ u_char selforig,
+ struct
+ lsa_header *
+ lsa));
+
+/* Synchronous request to synchronize LSDB. */
+int ospf_apiclient_sync_lsdb (struct ospf_apiclient *oclient);
+
+/* Synchronous request to originate or update opaque LSA. */
+int
+ospf_apiclient_lsa_originate(struct ospf_apiclient *oclient,
+ struct in_addr ifaddr,
+ struct in_addr area_id,
+ u_char lsa_type,
+ u_char opaque_type, u_int32_t opaque_id,
+ void *opaquedata, int opaquelen);
+
+
+/* Synchronous request to delete opaque LSA. Parameter opaque_id is in
+ host byte order */
+int ospf_apiclient_lsa_delete (struct ospf_apiclient *oclient,
+ struct in_addr area_id, u_char lsa_type,
+ u_char opaque_type, u_int32_t opaque_id);
+
+/* Fetch async message and handle it */
+int ospf_apiclient_handle_async (struct ospf_apiclient *oclient);
+
+#endif /* _OSPF_APICLIENT_H */
diff --git a/ospfclient/ospfclient.c b/ospfclient/ospfclient.c
index 28010872..ec1aabcb 100644
--- a/ospfclient/ospfclient.c
+++ b/ospfclient/ospfclient.c
@@ -11,8 +11,6 @@
#include <zebra.h>
#include "prefix.h" /* needed by ospf_asbr.h */
-#include "privs.h"
-
#include "ospfd/ospfd.h"
#include "ospfd/ospf_asbr.h"
#include "ospfd/ospf_lsa.h"
@@ -20,18 +18,6 @@
#include "ospfd/ospf_api.h"
#include "ospf_apiclient.h"
-/* privileges struct.
- * set cap_num_* and uid/gid to nothing to use NULL privs
- * as ospfapiclient links in libospf.a which uses privs.
- */
-struct zebra_privs_t ospfd_privs =
-{
- .user = NULL,
- .group = NULL,
- .cap_num_p = 0,
- .cap_num_i = 0
-};
-
/* The following includes are specific to this application. For
example it uses threads from libzebra, however your application is
free to use any thread library (like pthreads). */
@@ -288,7 +274,6 @@ main (int argc, char *argv[])
}
/* Initialization */
- zprivs_init (&ospfd_privs);
master = thread_master_create ();
/* Open connection to OSPF daemon */
diff --git a/ospfd/.cvsignore b/ospfd/.cvsignore
index d7e3a7e2..876c4348 100644
--- a/ospfd/.cvsignore
+++ b/ospfd/.cvsignore
@@ -1,4 +1,5 @@
Makefile
+Makefile.in
*.o
ospfd
ospfd.conf
diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
index b7794f72..7720adcc 100644
--- a/ospfd/ChangeLog
+++ b/ospfd/ChangeLog
@@ -1,3 +1,50 @@
+2003-05-24 Kenji Yabuuchi
+
+ * ospf_interface.c(ospf_if_lookup_recv_if): Use the most specific
+ match for interface lookup.
+
+2003-05-18 Hasso Tepper <hasso@estpak.ee>
+
+ * ospf_vty.c: Show NSSA LSA route info in "show ip ospf database"
+ output
+
+2003-05-16 Hasso Tepper <hasso@estpak.ee>
+
+ * ospf_lsa.c: Fix handling of NSSA
+
+2003-04-23 Hasso Tepper <hasso@estpak.ee>
+
+ * ospf_vty.c: fix "router xxx" node commands in vtysh
+
+2003-04-19 Hasso Tepper <hasso@estpak.ee>
+
+ * {ospf_abr,ospfd}.c: area id's DECIMAL -> ADDRESS
+ * ospf_routemap.c: sync daemon's route-map commands to have same
+ syntax.
+
+2003-04-19 Sergey Vyshnevetskiy <serg@vostok.net>
+
+ * ospf_packet.c: Add missing param to zlog
+ * ospf_flood.c: remove unused vars
+
+2003-04-17 Denis Ovsienko <zebra@pilot.org.ua>
+
+ * ospf_interface.c: fix incorrect memset
+
+2003-04-10 Amir Guindehi <amir@datacore.ch>
+
+ * ospf_lsa.[ch]: opaque LSA fix, use ospf_lookup.
+
+2003-04-03 David Watson <dwatson@eecs.umich.edu>
+
+ * ospf_lsa.c: byte order fix
+
+2002-03-17 Amir Guindehi <amir@datacore.ch>
+
+ * ospf_apiserver.[ch]: Merge Ralph Keller's OSPFAPI support.
+ * ospf_api.[ch]: Merge Ralph Keller's OSPFAPI support.
+ * ospfclient: OSPFAPI demonstration client.
+
2003-01-23 Masahiko Endo <endo@suri.co.jp>
* ospf_ism.c: NSM event schedule bug fix.
diff --git a/ospfd/Makefile.am b/ospfd/Makefile.am
index 81f212c4..81315dae 100644
--- a/ospfd/Makefile.am
+++ b/ospfd/Makefile.am
@@ -28,7 +28,7 @@ noinst_HEADERS = \
ospfd_SOURCES = \
ospf_main.c $(libospf_a_SOURCES)
-ospfd_LDADD = -L../lib -lzebra @LIBCAP@
+ospfd_LDADD = -L../lib -lzebra
sysconf_DATA = ospfd.conf.sample
diff --git a/ospfd/Makefile.in b/ospfd/Makefile.in
deleted file mode 100644
index 7182572a..00000000
--- a/ospfd/Makefile.in
+++ /dev/null
@@ -1,461 +0,0 @@
-# Makefile.in generated by automake 1.6.3 from Makefile.am.
-# @configure_input@
-
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = @program_transform_name@
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_alias = @host_alias@
-host_triplet = @host@
-
-EXEEXT = @EXEEXT@
-OBJEXT = @OBJEXT@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-AMTAR = @AMTAR@
-AR = @AR@
-AWK = @AWK@
-BGPD = @BGPD@
-CC = @CC@
-CPP = @CPP@
-CURSES = @CURSES@
-DEPDIR = @DEPDIR@
-IF_METHOD = @IF_METHOD@
-IF_PROC = @IF_PROC@
-
-INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-IPFORWARD = @IPFORWARD@
-KERNEL_METHOD = @KERNEL_METHOD@
-LIBPAM = @LIBPAM@
-LIB_IPV6 = @LIB_IPV6@
-LIB_REGEX = @LIB_REGEX@
-MULTIPATH_NUM = @MULTIPATH_NUM@
-OSPF6D = @OSPF6D@
-OSPFD = @OSPFD@
-OTHER_METHOD = @OTHER_METHOD@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-RIPD = @RIPD@
-RIPNGD = @RIPNGD@
-RTREAD_METHOD = @RTREAD_METHOD@
-RT_METHOD = @RT_METHOD@
-STRIP = @STRIP@
-VERSION = @VERSION@
-VTYSH = @VTYSH@
-ZEBRA = @ZEBRA@
-am__include = @am__include@
-am__quote = @am__quote@
-install_sh = @install_sh@
-DEFS = @DEFS@ $(LOCAL_OPTS) -DSYSCONFDIR=\"$(sysconfdir)/\"
-INSTALL_SDATA = @INSTALL@ -m 600
-
-noinst_LIBRARIES = libospf.a
-sbin_PROGRAMS = ospfd
-
-libospf_a_SOURCES = \
- ospfd.c ospf_zebra.c ospf_interface.c ospf_ism.c ospf_neighbor.c \
- ospf_nsm.c ospf_dump.c ospf_network.c ospf_packet.c ospf_lsa.c \
- ospf_spf.c ospf_route.c ospf_ase.c ospf_abr.c ospf_ia.c ospf_flood.c \
- ospf_lsdb.c ospf_asbr.c ospf_routemap.c ospf_snmp.c \
- ospf_opaque.c ospf_te.c ospf_vty.c
-
-
-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
-
-
-ospfd_SOURCES = \
- ospf_main.c $(libospf_a_SOURCES)
-
-
-ospfd_LDADD = ../lib/libzebra.a
-
-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 = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-LIBRARIES = $(noinst_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)
-libospf_a_OBJECTS = $(am_libospf_a_OBJECTS)
-sbin_PROGRAMS = ospfd$(EXEEXT)
-PROGRAMS = $(sbin_PROGRAMS)
-
-am__objects_1 = 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)
-am_ospfd_OBJECTS = ospf_main.$(OBJEXT) $(am__objects_1)
-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@
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/ospf_abr.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 \
-@AMDEP_TRUE@ ./$(DEPDIR)/ospf_ism.Po ./$(DEPDIR)/ospf_lsa.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/ospf_lsdb.Po ./$(DEPDIR)/ospf_main.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/ospf_neighbor.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/ospf_network.Po ./$(DEPDIR)/ospf_nsm.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/ospf_opaque.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/ospf_packet.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/ospf_route.Po \
-@AMDEP_TRUE@ ./$(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) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-CFLAGS = @CFLAGS@
-DIST_SOURCES = $(libospf_a_SOURCES) $(ospfd_SOURCES)
-DATA = $(sysconf_DATA)
-
-HEADERS = $(noinst_HEADERS)
-
-DIST_COMMON = $(noinst_HEADERS) ChangeLog Makefile.am Makefile.in
-SOURCES = $(libospf_a_SOURCES) $(ospfd_SOURCES)
-
-all: all-am
-
-.SUFFIXES:
-.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) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libospf.a: $(libospf_a_OBJECTS) $(libospf_a_DEPENDENCIES)
- -rm -f libospf.a
- $(libospf_a_AR) libospf.a $(libospf_a_OBJECTS) $(libospf_a_LIBADD)
- $(RANLIB) libospf.a
-sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-install-sbinPROGRAMS: $(sbin_PROGRAMS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(sbindir)
- @list='$(sbin_PROGRAMS)'; for p in $$list; do \
- p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
- if test -f $$p \
- ; then \
- f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) $$p $(DESTDIR)$(sbindir)/$$f"; \
- $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) $$p $(DESTDIR)$(sbindir)/$$f; \
- else :; fi; \
- done
-
-uninstall-sbinPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(sbin_PROGRAMS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
- rm -f $(DESTDIR)$(sbindir)/$$f; \
- done
-
-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_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:
-sysconfDATA_INSTALL = $(INSTALL_DATA)
-
-uninstall-sysconfDATA:
- @$(NORMAL_UNINSTALL)
- @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
-
-ETAGS = etags
-ETAGSFLAGS =
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(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; }'`; \
- mkid -fID $$unique
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(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)$$tags$$unique" \
- || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
-
-distdir: $(DISTFILES)
- @list='$(DISTFILES)'; for file in $$list; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
-
-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
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-noinstLIBRARIES clean-sbinPROGRAMS \
- mostlyclean-am
-
-distclean: distclean-am
-
-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
-
-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)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(sysconfdir)
- @list='$(sysconf_DATA)'; for p in $$list; do \
- if test -f $(srcdir)/$$p; then \
- echo " $(INSTALL_SDATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p"; \
- $(INSTALL_SDATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p; \
- else if test -f $$p; then \
- echo " $(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p"; \
- $(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_abr.c b/ospfd/ospf_abr.c
index 181fe190..638cf1cc 100644
--- a/ospfd/ospf_abr.c
+++ b/ospfd/ospf_abr.c
@@ -201,7 +201,7 @@ ospf_area_range_set (struct ospf *ospf, struct in_addr area_id,
{
struct ospf_area *area;
struct ospf_area_range *range;
- int ret = OSPF_AREA_ID_FORMAT_DECIMAL;
+ int ret = OSPF_AREA_ID_FORMAT_ADDRESS;
area = ospf_area_get (ospf, area_id, ret);
if (area == NULL)
@@ -237,7 +237,7 @@ ospf_area_range_cost_set (struct ospf *ospf, struct in_addr area_id,
{
struct ospf_area *area;
struct ospf_area_range *range;
- int ret = OSPF_AREA_ID_FORMAT_DECIMAL;
+ int ret = OSPF_AREA_ID_FORMAT_ADDRESS;
area = ospf_area_get (ospf, area_id, ret);
if (area == NULL)
@@ -286,7 +286,7 @@ ospf_area_range_substitute_set (struct ospf *ospf, struct in_addr area_id,
{
struct ospf_area *area;
struct ospf_area_range *range;
- int ret = OSPF_AREA_ID_FORMAT_DECIMAL;
+ int ret = OSPF_AREA_ID_FORMAT_ADDRESS;
area = ospf_area_get (ospf, area_id, ret);
range = ospf_area_range_lookup (area, p);
diff --git a/ospfd/ospf_abr.h b/ospfd/ospf_abr.h
index c025f514..3b385c32 100644
--- a/ospfd/ospf_abr.h
+++ b/ospfd/ospf_abr.h
@@ -75,10 +75,10 @@ int ospf_area_range_substitute_unset (struct ospf *, struct in_addr,
struct ospf_area_range *ospf_area_range_match_any (struct ospf *,
struct prefix_ipv4 *);
int ospf_area_range_active (struct ospf_area_range *);
-int ospf_act_bb_connection (struct ospf *);
+int ospf_act_bb_connection ();
-void ospf_check_abr_status (struct ospf *);
-void ospf_abr_task (struct ospf *);
-void ospf_schedule_abr_task (struct ospf *);
+void ospf_check_abr_status ();
+void ospf_abr_task ();
+void ospf_schedule_abr_task ();
#endif /* _ZEBRA_OSPF_ABR_H */
diff --git a/ospfd/ospf_api.c b/ospfd/ospf_api.c
new file mode 100644
index 00000000..cd69336c
--- /dev/null
+++ b/ospfd/ospf_api.c
@@ -0,0 +1,647 @@
+/*
+ * API message handling module for OSPF daemon and client.
+ * Copyright (C) 2001, 2002 Ralph Keller
+ *
+ * This file is part of GNU Zebra.
+ *
+ * GNU Zebra is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation; either version 2, or (at your
+ * option) any later version.
+ *
+ * GNU Zebra is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Zebra; see the file COPYING. If not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <zebra.h>
+
+#ifdef SUPPORT_OSPF_API
+#ifndef HAVE_OPAQUE_LSA
+#error "Core Opaque-LSA module must be configured."
+#endif /* HAVE_OPAQUE_LSA */
+
+#include "linklist.h"
+#include "prefix.h"
+#include "if.h"
+#include "table.h"
+#include "memory.h"
+#include "command.h"
+#include "vty.h"
+#include "stream.h"
+#include "log.h"
+#include "thread.h"
+#include "hash.h"
+#include "sockunion.h" /* for inet_aton() */
+#include "buffer.h"
+#include "network.h"
+
+#include "ospfd/ospfd.h"
+#include "ospfd/ospf_interface.h"
+#include "ospfd/ospf_ism.h"
+#include "ospfd/ospf_asbr.h"
+#include "ospfd/ospf_lsa.h"
+#include "ospfd/ospf_lsdb.h"
+#include "ospfd/ospf_neighbor.h"
+#include "ospfd/ospf_nsm.h"
+#include "ospfd/ospf_flood.h"
+#include "ospfd/ospf_packet.h"
+#include "ospfd/ospf_spf.h"
+#include "ospfd/ospf_dump.h"
+#include "ospfd/ospf_route.h"
+#include "ospfd/ospf_ase.h"
+#include "ospfd/ospf_zebra.h"
+
+#include "ospfd/ospf_api.h"
+
+
+/* For debugging only, will be removed */
+void
+api_opaque_lsa_print (struct lsa_header *data)
+{
+ struct opaque_lsa
+ {
+ struct lsa_header header;
+ u_char mydata[0];
+ };
+
+ struct opaque_lsa *olsa;
+ int opaquelen;
+ int i;
+
+ ospf_lsa_header_dump (data);
+
+ olsa = (struct opaque_lsa *) data;
+
+ opaquelen = ntohs (data->length) - OSPF_LSA_HEADER_SIZE;
+ zlog_warn ("apiserver_lsa_print: opaquelen=%d\n", opaquelen);
+
+ for (i = 0; i < opaquelen; i++)
+ {
+ zlog_warn ("0x%x ", olsa->mydata[i]);
+ }
+ zlog_warn ("\n");
+}
+
+/* -----------------------------------------------------------
+ * Generic messages
+ * -----------------------------------------------------------
+ */
+
+struct msg *
+msg_new (u_char msgtype, void *msgbody, u_int32_t seqnum, u_int16_t msglen)
+{
+ struct msg *new;
+
+ new = XMALLOC (MTYPE_OSPF_API_MSG, sizeof (struct msg));
+ memset (new, 0, sizeof (struct msg));
+
+ new->hdr.version = OSPF_API_VERSION;
+ new->hdr.msgtype = msgtype;
+ new->hdr.msglen = htons (msglen);
+ new->hdr.msgseq = htonl (seqnum);
+
+ new->s = stream_new (msglen);
+ assert (new->s);
+ stream_put (new->s, msgbody, msglen);
+
+ return new;
+}
+
+
+/* Duplicate a message by copying content. */
+struct msg *
+msg_dup (struct msg *msg)
+{
+ struct msg *new;
+
+ assert (msg);
+
+ new = msg_new (msg->hdr.msgtype, STREAM_DATA (msg->s),
+ ntohl (msg->hdr.msgseq), ntohs (msg->hdr.msglen));
+ return new;
+}
+
+
+/* XXX only for testing, will be removed */
+
+struct nametab {
+ int value;
+ const char *name;
+};
+
+const char *
+ospf_api_typename (int msgtype)
+{
+ struct nametab NameTab[] = {
+ { MSG_REGISTER_OPAQUETYPE, "Register opaque-type", },
+ { MSG_UNREGISTER_OPAQUETYPE, "Unregister opaque-type", },
+ { MSG_REGISTER_EVENT, "Register event", },
+ { MSG_SYNC_LSDB, "Sync LSDB", },
+ { MSG_ORIGINATE_REQUEST, "Originate request", },
+ { MSG_DELETE_REQUEST, "Delete request", },
+ { MSG_REPLY, "Reply", },
+ { MSG_READY_NOTIFY, "Ready notify", },
+ { MSG_LSA_UPDATE_NOTIFY, "LSA update notify", },
+ { MSG_LSA_DELETE_NOTIFY, "LSA delete notify", },
+ { MSG_NEW_IF, "New interface", },
+ { MSG_DEL_IF, "Del interface", },
+ { MSG_ISM_CHANGE, "ISM change", },
+ { MSG_NSM_CHANGE, "NSM change", },
+ };
+
+ int i, n = sizeof (NameTab) / sizeof (NameTab[0]);
+ const char *name = NULL;
+
+ for (i = 0; i < n; i++)
+ {
+ if (NameTab[i].value == msgtype)
+ {
+ name = NameTab[i].name;
+ break;
+ }
+ }
+
+ return name ? name : "?";
+}
+
+const char *
+ospf_api_errname (int errcode)
+{
+ struct nametab NameTab[] = {
+ { OSPF_API_OK, "OK", },
+ { OSPF_API_NOSUCHINTERFACE, "No such interface", },
+ { OSPF_API_NOSUCHAREA, "No such area", },
+ { OSPF_API_NOSUCHLSA, "No such LSA", },
+ { OSPF_API_ILLEGALLSATYPE, "Illegal LSA type", },
+ { OSPF_API_OPAQUETYPEINUSE, "Opaque type in use", },
+ { OSPF_API_OPAQUETYPENOTREGISTERED, "Opaque type not registered", },
+ { OSPF_API_NOTREADY, "Not ready", },
+ { OSPF_API_NOMEMORY, "No memory", },
+ { OSPF_API_ERROR, "Other error", },
+ { OSPF_API_UNDEF, "Undefined", },
+ };
+
+ int i, n = sizeof (NameTab) / sizeof (NameTab[0]);
+ const char *name = NULL;
+
+ for (i = 0; i < n; i++)
+ {
+ if (NameTab[i].value == errcode)
+ {
+ name = NameTab[i].name;
+ break;
+ }
+ }
+
+ return name ? name : "?";
+}
+
+void
+msg_print (struct msg *msg)
+{
+ if (!msg)
+ {
+ zlog_warn ("msg_print msg=NULL!\n");
+ return;
+ }
+
+#ifdef ORIGINAL_CODING
+ zlog_warn
+ ("msg=%p msgtype=%d msglen=%d msgseq=%d streamdata=%p streamsize=%lu\n",
+ msg, msg->hdr.msgtype, ntohs (msg->hdr.msglen), ntohl (msg->hdr.msgseq),
+ STREAM_DATA (msg->s), STREAM_SIZE (msg->s));
+#else /* ORIGINAL_CODING */
+ /* API message common header part. */
+ zlog_info
+ ("API-msg [%s]: type(%d),len(%d),seq(%lu),data(%p),size(%lu)",
+ ospf_api_typename (msg->hdr.msgtype), msg->hdr.msgtype,
+ ntohs (msg->hdr.msglen), (unsigned long) ntohl (msg->hdr.msgseq),
+ STREAM_DATA (msg->s), STREAM_SIZE (msg->s));
+
+ /* API message body part. */
+#ifdef ndef
+ /* Generic Hex/Ascii dump */
+ DumpBuf (STREAM_DATA (msg->s), STREAM_SIZE (msg->s)); /* Sorry, deleted! */
+#else /* ndef */
+ /* Message-type dependent dump function. */
+#endif /* ndef */
+
+ return;
+#endif /* ORIGINAL_CODING */
+}
+
+void
+msg_free (struct msg *msg)
+{
+ if (msg->s)
+ stream_free (msg->s);
+
+ XFREE (MTYPE_OSPF_API_MSG, msg);
+}
+
+
+/* Set sequence number of message */
+void
+msg_set_seq (struct msg *msg, u_int32_t seqnr)
+{
+ assert (msg);
+ msg->hdr.msgseq = htonl (seqnr);
+}
+
+/* Get sequence number of message */
+u_int32_t
+msg_get_seq (struct msg *msg)
+{
+ assert (msg);
+ return ntohl (msg->hdr.msgseq);
+}
+
+/* -----------------------------------------------------------
+ * Message fifo queues
+ * -----------------------------------------------------------
+ */
+
+struct msg_fifo *
+msg_fifo_new ()
+{
+ struct msg_fifo *new;
+
+ new = XMALLOC (MTYPE_OSPF_API_FIFO, sizeof (struct msg_fifo));
+ memset (new, 0, sizeof (struct msg_fifo));
+
+ return new;
+}
+
+/* Add new message to fifo. */
+void
+msg_fifo_push (struct msg_fifo *fifo, struct msg *msg)
+{
+ if (fifo->tail)
+ fifo->tail->next = msg;
+ else
+ fifo->head = msg;
+
+ fifo->tail = msg;
+ fifo->count++;
+}
+
+
+/* Remove first message from fifo. */
+struct msg *
+msg_fifo_pop (struct msg_fifo *fifo)
+{
+ struct msg *msg;
+
+ msg = fifo->head;
+ if (msg)
+ {
+ fifo->head = msg->next;
+
+ if (fifo->head == NULL)
+ fifo->tail = NULL;
+
+ fifo->count--;
+ }
+ return msg;
+}
+
+/* Return first fifo entry but do not remove it. */
+struct msg *
+msg_fifo_head (struct msg_fifo *fifo)
+{
+ return fifo->head;
+}
+
+/* Flush message fifo. */
+void
+msg_fifo_flush (struct msg_fifo *fifo)
+{
+ struct msg *op;
+ struct msg *next;
+
+ for (op = fifo->head; op; op = next)
+ {
+ next = op->next;
+ msg_free (op);
+ }
+
+ fifo->head = fifo->tail = NULL;
+ fifo->count = 0;
+}
+
+/* Free API message fifo. */
+void
+msg_fifo_free (struct msg_fifo *fifo)
+{
+ msg_fifo_flush (fifo);
+
+ XFREE (MTYPE_OSPF_API_FIFO, fifo);
+}
+
+struct msg *
+msg_read (int fd)
+{
+ struct msg *msg;
+ struct apimsghdr hdr;
+ char buf[OSPF_API_MAX_MSG_SIZE];
+ int bodylen;
+ int rlen;
+
+ /* Read message header */
+ rlen = readn (fd, (char *) &hdr, sizeof (struct apimsghdr));
+
+ if (rlen < 0)
+ {
+ zlog_warn ("msg_read: readn %s", strerror (errno));
+ return NULL;
+ }
+ else if (rlen == 0)
+ {
+ zlog_warn ("msg_read: Connection closed by peer");
+ return NULL;
+ }
+ else if (rlen != sizeof (struct apimsghdr))
+ {
+ zlog_warn ("msg_read: Cannot read message header!");
+ return NULL;
+ }
+
+ /* Check version of API protocol */
+ if (hdr.version != OSPF_API_VERSION)
+ {
+ zlog_warn ("msg_read: OSPF API protocol version mismatch");
+ return NULL;
+ }
+
+ /* Determine body length. */
+ bodylen = ntohs (hdr.msglen);
+ if (bodylen > 0)
+ {
+
+ /* Read message body */
+ rlen = readn (fd, buf, bodylen);
+ if (rlen < 0)
+ {
+ zlog_warn ("msg_read: readn %s", strerror (errno));
+ return NULL;
+ }
+ else if (rlen == 0)
+ {
+ zlog_warn ("msg_read: Connection closed by peer");
+ return NULL;
+ }
+ else if (rlen != bodylen)
+ {
+ zlog_warn ("msg_read: Cannot read message body!");
+ return NULL;
+ }
+ }
+
+ /* Allocate new message */
+ msg = msg_new (hdr.msgtype, buf, ntohl (hdr.msgseq), ntohs (hdr.msglen));
+
+ return msg;
+}
+
+int
+msg_write (int fd, struct msg *msg)
+{
+ u_char buf[OSPF_API_MAX_MSG_SIZE];
+ int l;
+ int wlen;
+
+ assert (msg);
+ assert (msg->s);
+
+ /* Length of message including header */
+ l = sizeof (struct apimsghdr) + ntohs (msg->hdr.msglen);
+
+ /* Make contiguous memory buffer for message */
+ memcpy (buf, &msg->hdr, sizeof (struct apimsghdr));
+ memcpy (buf + sizeof (struct apimsghdr), STREAM_DATA (msg->s),
+ ntohs (msg->hdr.msglen));
+
+ wlen = writen (fd, buf, l);
+ if (wlen < 0)
+ {
+ zlog_warn ("msg_write: writen %s", strerror (errno));
+ return -1;
+ }
+ else if (wlen == 0)
+ {
+ zlog_warn ("msg_write: Connection closed by peer");
+ return -1;
+ }
+ else if (wlen != l)
+ {
+ zlog_warn ("msg_write: Cannot write API message");
+ return -1;
+ }
+ return 0;
+}
+
+/* -----------------------------------------------------------
+ * Specific messages
+ * -----------------------------------------------------------
+ */
+
+struct msg *
+new_msg_register_opaque_type (u_int32_t seqnum, u_char ltype, u_char otype)
+{
+ struct msg_register_opaque_type rmsg;
+
+ rmsg.lsatype = ltype;
+ rmsg.opaquetype = otype;
+ memset (&rmsg.pad, 0, sizeof (rmsg.pad));
+
+ return msg_new (MSG_REGISTER_OPAQUETYPE, &rmsg, seqnum,
+ sizeof (struct msg_register_opaque_type));
+}
+
+struct msg *
+new_msg_register_event (u_int32_t seqnum, struct lsa_filter_type *filter)
+{
+ u_char buf[OSPF_API_MAX_MSG_SIZE];
+ struct msg_register_event *emsg;
+ int len;
+
+ emsg = (struct msg_register_event *) buf;
+ len = sizeof (struct msg_register_event) +
+ filter->num_areas * sizeof (struct in_addr);
+ emsg->filter.typemask = htons (filter->typemask);
+ emsg->filter.origin = filter->origin;
+ emsg->filter.num_areas = filter->num_areas;
+ return msg_new (MSG_REGISTER_EVENT, emsg, seqnum, len);
+}
+
+struct msg *
+new_msg_sync_lsdb (u_int32_t seqnum, struct lsa_filter_type *filter)
+{
+ u_char buf[OSPF_API_MAX_MSG_SIZE];
+ struct msg_sync_lsdb *smsg;
+ int len;
+
+ smsg = (struct msg_sync_lsdb *) buf;
+ len = sizeof (struct msg_sync_lsdb) +
+ filter->num_areas * sizeof (struct in_addr);
+ smsg->filter.typemask = htons (filter->typemask);
+ smsg->filter.origin = filter->origin;
+ smsg->filter.num_areas = filter->num_areas;
+ return msg_new (MSG_SYNC_LSDB, smsg, seqnum, len);
+}
+
+
+struct msg *
+new_msg_originate_request (u_int32_t seqnum,
+ struct in_addr ifaddr,
+ struct in_addr area_id, struct lsa_header *data)
+{
+ struct msg_originate_request *omsg;
+ int omsglen;
+ char buf[OSPF_API_MAX_MSG_SIZE];
+
+ omsglen = sizeof (struct msg_originate_request) - sizeof (struct lsa_header)
+ + ntohs (data->length);
+
+ omsg = (struct msg_originate_request *) buf;
+ omsg->ifaddr = ifaddr;
+ omsg->area_id = area_id;
+ memcpy (&omsg->data, data, ntohs (data->length));
+
+ return msg_new (MSG_ORIGINATE_REQUEST, omsg, seqnum, omsglen);
+}
+
+struct msg *
+new_msg_delete_request (u_int32_t seqnum,
+ struct in_addr area_id, u_char lsa_type,
+ u_char opaque_type, u_int32_t opaque_id)
+{
+ struct msg_delete_request dmsg;
+ dmsg.area_id = area_id;
+ dmsg.lsa_type = lsa_type;
+ dmsg.opaque_type = opaque_type;
+ dmsg.opaque_id = htonl (opaque_id);
+ memset (&dmsg.pad, 0, sizeof (dmsg.pad));
+
+ return msg_new (MSG_DELETE_REQUEST, &dmsg, seqnum,
+ sizeof (struct msg_delete_request));
+}
+
+
+struct msg *
+new_msg_reply (u_int32_t seqnr, u_char rc)
+{
+ struct msg *msg;
+ struct msg_reply rmsg;
+
+ /* Set return code */
+ rmsg.errcode = rc;
+ memset (&rmsg.pad, 0, sizeof (rmsg.pad));
+
+ msg = msg_new (MSG_REPLY, &rmsg, seqnr, sizeof (struct msg_reply));
+
+ return msg;
+}
+
+struct msg *
+new_msg_ready_notify (u_int32_t seqnr, u_char lsa_type,
+ u_char opaque_type, struct in_addr addr)
+{
+ struct msg_ready_notify rmsg;
+
+ rmsg.lsa_type = lsa_type;
+ rmsg.opaque_type = opaque_type;
+ memset (&rmsg.pad, 0, sizeof (rmsg.pad));
+ rmsg.addr = addr;
+
+ return msg_new (MSG_READY_NOTIFY, &rmsg, seqnr,
+ sizeof (struct msg_ready_notify));
+}
+
+struct msg *
+new_msg_new_if (u_int32_t seqnr,
+ struct in_addr ifaddr, struct in_addr area_id)
+{
+ struct msg_new_if nmsg;
+
+ nmsg.ifaddr = ifaddr;
+ nmsg.area_id = area_id;
+
+ return msg_new (MSG_NEW_IF, &nmsg, seqnr, sizeof (struct msg_new_if));
+}
+
+struct msg *
+new_msg_del_if (u_int32_t seqnr, struct in_addr ifaddr)
+{
+ struct msg_del_if dmsg;
+
+ dmsg.ifaddr = ifaddr;
+
+ return msg_new (MSG_DEL_IF, &dmsg, seqnr, sizeof (struct msg_del_if));
+}
+
+struct msg *
+new_msg_ism_change (u_int32_t seqnr, struct in_addr ifaddr,
+ struct in_addr area_id, u_char status)
+{
+ struct msg_ism_change imsg;
+
+ imsg.ifaddr = ifaddr;
+ imsg.area_id = area_id;
+ imsg.status = status;
+ memset (&imsg.pad, 0, sizeof (imsg.pad));
+
+ return msg_new (MSG_ISM_CHANGE, &imsg, seqnr,
+ sizeof (struct msg_ism_change));
+}
+
+struct msg *
+new_msg_nsm_change (u_int32_t seqnr, struct in_addr ifaddr,
+ struct in_addr nbraddr,
+ struct in_addr router_id, u_char status)
+{
+ struct msg_nsm_change nmsg;
+
+ nmsg.ifaddr = ifaddr;
+ nmsg.nbraddr = nbraddr;
+ nmsg.router_id = router_id;
+ nmsg.status = status;
+ memset (&nmsg.pad, 0, sizeof (nmsg.pad));
+
+ return msg_new (MSG_NSM_CHANGE, &nmsg, seqnr,
+ sizeof (struct msg_nsm_change));
+}
+
+struct msg *
+new_msg_lsa_change_notify (u_char msgtype,
+ u_int32_t seqnum,
+ struct in_addr ifaddr,
+ struct in_addr area_id,
+ u_char is_self_originated, struct lsa_header *data)
+{
+ u_char buf[OSPF_API_MAX_MSG_SIZE];
+ struct msg_lsa_change_notify *nmsg;
+ int len;
+
+ assert (data);
+
+ nmsg = (struct msg_lsa_change_notify *) buf;
+ len = ntohs (data->length) + sizeof (struct msg_lsa_change_notify)
+ - sizeof (struct lsa_header);
+ nmsg->ifaddr = ifaddr;
+ nmsg->area_id = area_id;
+ nmsg->is_self_originated = is_self_originated;
+ memset (&nmsg->pad, 0, sizeof (nmsg->pad));
+ memcpy (&nmsg->data, data, ntohs (data->length));
+
+ return msg_new (msgtype, nmsg, seqnum, len);
+}
+
+#endif /* SUPPORT_OSPF_API */
diff --git a/ospfd/ospf_api.h b/ospfd/ospf_api.h
new file mode 100644
index 00000000..e7867614
--- /dev/null
+++ b/ospfd/ospf_api.h
@@ -0,0 +1,357 @@
+/*
+ * API message handling module for OSPF daemon and client.
+ * Copyright (C) 2001, 2002 Ralph Keller
+ *
+ * This file is part of GNU Zebra.
+ *
+ * GNU Zebra is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation; either version 2, or (at your
+ * option) any later version.
+ *
+ * GNU Zebra is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Zebra; see the file COPYING. If not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+
+/* This file is used both by the OSPFd and client applications to
+ define message formats used for communication. */
+
+#ifndef _OSPF_API_H
+#define _OSPF_API_H
+
+#define OSPF_API_VERSION 1
+
+/* MTYPE definition is not reflected to "memory.h". */
+#define MTYPE_OSPF_API_MSG MTYPE_TMP
+#define MTYPE_OSPF_API_FIFO MTYPE_TMP
+
+/* Default API server port to accept connection request from client-side. */
+/* This value could be overridden by "ospfapi" entry in "/etc/services". */
+#define OSPF_API_SYNC_PORT 2607
+
+/* -----------------------------------------------------------
+ * Generic messages
+ * -----------------------------------------------------------
+ */
+
+/* Message header structure, fields are in network byte order and
+ aligned to four octets. */
+struct apimsghdr
+{
+ u_char version; /* OSPF API protocol version */
+ u_char msgtype; /* Type of message */
+ u_int16_t msglen; /* Length of message w/o header */
+ u_int32_t msgseq; /* Sequence number */
+};
+
+/* Message representation with header and body */
+struct msg
+{
+ struct msg *next; /* to link into fifo */
+
+ /* Message header */
+ struct apimsghdr hdr;
+
+ /* Message body */
+ struct stream *s;
+};
+
+/* Prototypes for generic messages. */
+struct msg *msg_new (u_char msgtype, void *msgbody,
+ u_int32_t seqnum, u_int16_t msglen);
+struct msg *msg_dup (struct msg *msg);
+void msg_print (struct msg *msg); /* XXX debug only */
+void msg_free (struct msg *msg);
+struct msg *msg_read (int fd);
+int msg_write (int fd, struct msg *msg);
+
+/* For requests, the message sequence number is between MIN_SEQ and
+ MAX_SEQ. For notifications, the sequence number is 0. */
+
+#define MIN_SEQ 1
+#define MAX_SEQ 2147483647
+
+void msg_set_seq (struct msg *msg, u_int32_t seqnr);
+u_int32_t msg_get_seq (struct msg *msg);
+
+/* -----------------------------------------------------------
+ * Message fifo queues
+ * -----------------------------------------------------------
+ */
+
+/* Message queue structure. */
+struct msg_fifo
+{
+ unsigned long count;
+
+ struct msg *head;
+ struct msg *tail;
+};
+
+/* Prototype for message fifo queues. */
+struct msg_fifo *msg_fifo_new ();
+void msg_fifo_push (struct msg_fifo *, struct msg *msg);
+struct msg *msg_fifo_pop (struct msg_fifo *fifo);
+struct msg *msg_fifo_head (struct msg_fifo *fifo);
+void msg_fifo_flush (struct msg_fifo *fifo);
+void msg_fifo_free (struct msg_fifo *fifo);
+
+/* -----------------------------------------------------------
+ * Specific message type and format definitions
+ * -----------------------------------------------------------
+ */
+
+/* Messages to OSPF daemon. */
+#define MSG_REGISTER_OPAQUETYPE 1
+#define MSG_UNREGISTER_OPAQUETYPE 2
+#define MSG_REGISTER_EVENT 3
+#define MSG_SYNC_LSDB 4
+#define MSG_ORIGINATE_REQUEST 5
+#define MSG_DELETE_REQUEST 6
+
+/* Messages from OSPF daemon. */
+#define MSG_REPLY 10
+#define MSG_READY_NOTIFY 11
+#define MSG_LSA_UPDATE_NOTIFY 12
+#define MSG_LSA_DELETE_NOTIFY 13
+#define MSG_NEW_IF 14
+#define MSG_DEL_IF 15
+#define MSG_ISM_CHANGE 16
+#define MSG_NSM_CHANGE 17
+
+struct msg_register_opaque_type
+{
+ u_char lsatype;
+ u_char opaquetype;
+ u_char pad[2]; /* padding */
+};
+
+struct msg_unregister_opaque_type
+{
+ u_char lsatype;
+ u_char opaquetype;
+ u_char pad[2]; /* padding */
+};
+
+/* Power2 is needed to convert LSA types into bit positions,
+ * see typemask below. Type definition starts at 1, so
+ * Power2[0] is not used. */
+
+
+#ifdef ORIGINAL_CODING
+static const u_int16_t
+ Power2[] = { 0x0, 0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80,
+ 0x100, 0x200, 0x400, 0x800, 0x1000, 0x2000, 0x4000, 0x8000
+};
+#else
+static const u_int16_t
+ Power2[] = { 0, (1 << 0), (1 << 1), (1 << 2), (1 << 3), (1 << 4),
+ (1 << 5), (1 << 6), (1 << 7), (1 << 8), (1 << 9),
+ (1 << 10), (1 << 11), (1 << 12), (1 << 13), (1 << 14),
+ (1 << 15)
+};
+#endif /* ORIGINAL_CODING */
+
+struct lsa_filter_type
+{
+ u_int16_t typemask; /* bitmask for selecting LSA types (1..16) */
+ u_char origin; /* selects according to origin. */
+#define NON_SELF_ORIGINATED 0
+#define SELF_ORIGINATED (OSPF_LSA_SELF)
+#define ANY_ORIGIN 2
+
+ u_char num_areas; /* number of areas in the filter. */
+ /* areas, if any, go here. */
+};
+
+struct msg_register_event
+{
+ struct lsa_filter_type filter;
+};
+
+struct msg_sync_lsdb
+{
+ struct lsa_filter_type filter;
+};
+
+struct msg_originate_request
+{
+ /* Used for LSA type 9 otherwise ignored */
+ struct in_addr ifaddr;
+
+ /* Used for LSA type 10 otherwise ignored */
+ struct in_addr area_id;
+
+ /* LSA header and LSA-specific part */
+ struct lsa_header data;
+};
+
+struct msg_delete_request
+{
+ struct in_addr area_id; /* "0.0.0.0" for AS-external opaque LSAs */
+ u_char lsa_type;
+ u_char opaque_type;
+ u_char pad[2]; /* padding */
+ u_int32_t opaque_id;
+};
+
+struct msg_reply
+{
+ char errcode;
+#define OSPF_API_OK 0
+#define OSPF_API_NOSUCHINTERFACE (-1)
+#define OSPF_API_NOSUCHAREA (-2)
+#define OSPF_API_NOSUCHLSA (-3)
+#define OSPF_API_ILLEGALLSATYPE (-4)
+#define OSPF_API_OPAQUETYPEINUSE (-5)
+#define OSPF_API_OPAQUETYPENOTREGISTERED (-6)
+#define OSPF_API_NOTREADY (-7)
+#define OSPF_API_NOMEMORY (-8)
+#define OSPF_API_ERROR (-9)
+#define OSPF_API_UNDEF (-10)
+ u_char pad[3]; /* padding to four byte alignment */
+};
+
+/* Message to tell client application that it ospf daemon is
+ * ready to accept opaque LSAs for a given interface or area. */
+
+struct msg_ready_notify
+{
+ u_char lsa_type;
+ u_char opaque_type;
+ u_char pad[2]; /* padding */
+ struct in_addr addr; /* interface address or area address */
+};
+
+/* These messages have a dynamic length depending on the embodied LSA.
+ They are aligned to four octets. msg_lsa_change_notify is used for
+ both LSA update and LSAs delete. */
+
+struct msg_lsa_change_notify
+{
+ /* Used for LSA type 9 otherwise ignored */
+ struct in_addr ifaddr;
+ /* Area ID. Not valid for AS-External and Opaque11 LSAs. */
+ struct in_addr area_id;
+ u_char is_self_originated; /* 1 if self originated. */
+ u_char pad[3];
+ struct lsa_header data;
+};
+
+struct msg_new_if
+{
+ struct in_addr ifaddr; /* interface IP address */
+ struct in_addr area_id; /* area this interface belongs to */
+};
+
+struct msg_del_if
+{
+ struct in_addr ifaddr; /* interface IP address */
+};
+
+struct msg_ism_change
+{
+ struct in_addr ifaddr; /* interface IP address */
+ struct in_addr area_id; /* area this interface belongs to */
+ u_char status; /* interface status (up/down) */
+ u_char pad[3]; /* not used */
+};
+
+struct msg_nsm_change
+{
+ struct in_addr ifaddr; /* attached interface */
+ struct in_addr nbraddr; /* Neighbor interface address */
+ struct in_addr router_id; /* Router ID of neighbor */
+ u_char status; /* NSM status */
+ u_char pad[3];
+};
+
+/* We make use of a union to define a structure that covers all
+ possible API messages. This allows us to find out how much memory
+ needs to be reserved for the largest API message. */
+struct apimsg
+{
+ struct apimsghdr hdr;
+ union
+ {
+ struct msg_register_opaque_type register_opaque_type;
+ struct msg_register_event register_event;
+ struct msg_sync_lsdb sync_lsdb;
+ struct msg_originate_request originate_request;
+ struct msg_delete_request delete_request;
+ struct msg_reply reply;
+ struct msg_ready_notify ready_notify;
+ struct msg_new_if new_if;
+ struct msg_del_if del_if;
+ struct msg_ism_change ism_change;
+ struct msg_nsm_change nsm_change;
+ struct msg_lsa_change_notify lsa_change_notify;
+ }
+ u;
+};
+
+#define OSPF_API_MAX_MSG_SIZE (sizeof(struct apimsg) + OSPF_MAX_LSA_SIZE)
+
+/* -----------------------------------------------------------
+ * Prototypes for specific messages
+ * -----------------------------------------------------------
+ */
+
+/* For debugging only. */
+void api_opaque_lsa_print (struct lsa_header *data);
+
+/* Messages sent by client */
+struct msg *new_msg_register_opaque_type (u_int32_t seqnum, u_char ltype,
+ u_char otype);
+struct msg *new_msg_register_event (u_int32_t seqnum,
+ struct lsa_filter_type *filter);
+struct msg *new_msg_sync_lsdb (u_int32_t seqnum,
+ struct lsa_filter_type *filter);
+struct msg *new_msg_originate_request (u_int32_t seqnum,
+ struct in_addr ifaddr,
+ struct in_addr area_id,
+ struct lsa_header *data);
+struct msg *new_msg_delete_request (u_int32_t seqnum,
+ struct in_addr area_id,
+ u_char lsa_type,
+ u_char opaque_type, u_int32_t opaque_id);
+
+/* Messages sent by OSPF daemon */
+struct msg *new_msg_reply (u_int32_t seqnum, u_char rc);
+
+struct msg *new_msg_ready_notify (u_int32_t seqnr, u_char lsa_type,
+ u_char opaque_type, struct in_addr addr);
+
+struct msg *new_msg_new_if (u_int32_t seqnr,
+ struct in_addr ifaddr, struct in_addr area);
+
+struct msg *new_msg_del_if (u_int32_t seqnr, struct in_addr ifaddr);
+
+struct msg *new_msg_ism_change (u_int32_t seqnr, struct in_addr ifaddr,
+ struct in_addr area, u_char status);
+
+struct msg *new_msg_nsm_change (u_int32_t seqnr, struct in_addr ifaddr,
+ struct in_addr nbraddr,
+ struct in_addr router_id, u_char status);
+
+/* msgtype is MSG_LSA_UPDATE_NOTIFY or MSG_LSA_DELETE_NOTIFY */
+struct msg *new_msg_lsa_change_notify (u_char msgtype,
+ u_int32_t seqnum,
+ struct in_addr ifaddr,
+ struct in_addr area_id,
+ u_char is_self_originated,
+ struct lsa_header *data);
+
+/* string printing functions */
+const char *ospf_api_errname (int errcode);
+const char *ospf_api_typename (int msgtype);
+
+#endif /* _OSPF_API_H */
diff --git a/ospfd/ospf_apiserver.c b/ospfd/ospf_apiserver.c
new file mode 100644
index 00000000..94167842
--- /dev/null
+++ b/ospfd/ospf_apiserver.c
@@ -0,0 +1,2700 @@
+/*
+ * Server side of OSPF API.
+ * Copyright (C) 2001, 2002 Ralph Keller
+ *
+ * This file is part of GNU Zebra.
+ *
+ * GNU Zebra is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation; either version 2, or (at your
+ * option) any later version.
+ *
+ * GNU Zebra is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Zebra; see the file COPYING. If not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <zebra.h>
+
+#ifdef SUPPORT_OSPF_API
+#ifndef HAVE_OPAQUE_LSA
+#error "Core Opaque-LSA module must be configured."
+#endif /* HAVE_OPAQUE_LSA */
+
+#include "linklist.h"
+#include "prefix.h"
+#include "if.h"
+#include "table.h"
+#include "memory.h"
+#include "command.h"
+#include "vty.h"
+#include "stream.h"
+#include "log.h"
+#include "thread.h"
+#include "hash.h"
+#include "sockunion.h" /* for inet_aton() */
+#include "buffer.h"
+
+#include <sys/types.h>
+
+#include "ospfd/ospfd.h" /* for "struct thread_master" */
+#include "ospfd/ospf_interface.h"
+#include "ospfd/ospf_ism.h"
+#include "ospfd/ospf_asbr.h"
+#include "ospfd/ospf_lsa.h"
+#include "ospfd/ospf_lsdb.h"
+#include "ospfd/ospf_neighbor.h"
+#include "ospfd/ospf_nsm.h"
+#include "ospfd/ospf_flood.h"
+#include "ospfd/ospf_packet.h"
+#include "ospfd/ospf_spf.h"
+#include "ospfd/ospf_dump.h"
+#include "ospfd/ospf_route.h"
+#include "ospfd/ospf_ase.h"
+#include "ospfd/ospf_zebra.h"
+
+#include "ospfd/ospf_api.h"
+#include "ospfd/ospf_apiserver.h"
+
+/* This is an implementation of an API to the OSPF daemon that allows
+ * external applications to access the OSPF daemon through socket
+ * connections. The application can use this API to inject its own
+ * opaque LSAs and flood them to other OSPF daemons. Other OSPF
+ * daemons then receive these LSAs and inform applications through the
+ * API by sending a corresponding message. The application can also
+ * register to receive all LSA types (in addition to opaque types) and
+ * use this information to reconstruct the OSPF's LSDB. The OSPF
+ * daemon supports multiple applications concurrently. */
+
+/* List of all active connections. */
+list apiserver_list;
+
+/* -----------------------------------------------------------
+ * Functions to lookup interfaces
+ * -----------------------------------------------------------
+ */
+
+struct ospf_interface *
+ospf_apiserver_if_lookup_by_addr (struct in_addr address)
+{
+ listnode node;
+ struct ospf_interface *oi;
+ struct ospf *ospf;
+
+ ospf = ospf_lookup ();
+
+ for (node = listhead (ospf->oiflist); node; nextnode (node))
+ {
+ if ((oi = getdata (node)) != NULL
+ && oi->type != OSPF_IFTYPE_VIRTUALLINK)
+ {
+ if (IPV4_ADDR_SAME (&address, &oi->address->u.prefix4))
+ return oi;
+ }
+ }
+ return NULL;
+}
+
+struct ospf_interface *
+ospf_apiserver_if_lookup_by_ifp (struct interface *ifp)
+{
+ listnode node;
+ struct ospf_interface *oi;
+ struct ospf *ospf;
+
+ ospf = ospf_lookup ();
+
+ for (node = listhead (ospf->oiflist); node; nextnode (node))
+ {
+ if ((oi = getdata (node)) && oi->ifp == ifp)
+ {
+ return oi;
+ }
+ }
+ return NULL;
+}
+
+/* -----------------------------------------------------------
+ * Initialization
+ * -----------------------------------------------------------
+ */
+
+unsigned short
+ospf_apiserver_getport (void)
+{
+ struct servent *sp = getservbyname ("ospfapi", "tcp");
+
+ return sp ? ntohs (sp->s_port) : OSPF_API_SYNC_PORT;
+}
+
+/* Initialize OSPF API module. Invoked from ospf_opaque_init() */
+int
+ospf_apiserver_init (void)
+{
+ int fd;
+ int rc = -1;
+
+ /* Create new socket for synchronous messages. */
+ fd = ospf_apiserver_serv_sock_family (ospf_apiserver_getport (), AF_INET);
+
+ if (fd < 0)
+ goto out;
+
+ /* Schedule new thread that handles accepted connections. */
+ ospf_apiserver_event (OSPF_APISERVER_ACCEPT, fd, NULL);
+
+ /* Initialize list that keeps track of all connections. */
+ apiserver_list = list_new ();
+
+ /* Register opaque-independent call back functions. These functions
+ are invoked on ISM, NSM changes and LSA update and LSA deletes */
+ rc =
+ ospf_register_opaque_functab (0 /* all LSAs */,
+ 0 /* all opaque types */,
+ ospf_apiserver_new_if,
+ ospf_apiserver_del_if,
+ ospf_apiserver_ism_change,
+ ospf_apiserver_nsm_change,
+ NULL,
+ NULL,
+ NULL,
+ NULL, /* ospf_apiserver_show_info */
+ NULL, /* originator_func */
+ NULL, /* ospf_apiserver_lsa_refresher */
+ ospf_apiserver_lsa_update,
+ ospf_apiserver_lsa_delete);
+ if (rc != 0)
+ {
+ zlog_warn ("ospf_apiserver_init: Failed to register opaque type [0/0]");
+ }
+
+ rc = 0;
+
+out:
+ return rc;
+}
+
+/* Terminate OSPF API module. */
+void
+ospf_apiserver_term (void)
+{
+ listnode node;
+
+ /* Unregister wildcard [0/0] type */
+ ospf_delete_opaque_functab (0 /* all LSAs */,
+ 0 /* all opaque types */);
+
+ /* Free all client instances */
+ for (node = listhead (apiserver_list); node; nextnode (node))
+ {
+ struct ospf_apiserver *apiserv =
+ (struct ospf_apiserver *) getdata (node);
+ ospf_apiserver_free (apiserv);
+ }
+
+ /* Free client list itself */
+ list_delete (apiserver_list);
+
+ /* Free wildcard list */
+ /* XXX */
+}
+
+static struct ospf_apiserver *
+lookup_apiserver (u_char lsa_type, u_char opaque_type)
+{
+ listnode n1, n2;
+ struct registered_opaque_type *r;
+ struct ospf_apiserver *apiserv, *found = NULL;
+
+ for (n1 = listhead (apiserver_list); n1; nextnode (n1))
+ {
+ apiserv = (struct ospf_apiserver *) getdata (n1);
+
+ for (n2 = listhead (apiserv->opaque_types); n2; nextnode (n2))
+ {
+ r = (struct registered_opaque_type *) getdata (n2);
+
+ if (r->lsa_type == lsa_type && r->opaque_type == opaque_type)
+ {
+ found = apiserv;
+ goto out;
+ }
+ }
+ }
+out:
+ return found;
+}
+
+static struct ospf_apiserver *
+lookup_apiserver_by_lsa (struct ospf_lsa *lsa)
+{
+ struct lsa_header *lsah = lsa->data;
+ struct ospf_apiserver *found = NULL;
+
+ if (IS_OPAQUE_LSA (lsah->type))
+ {
+ found = lookup_apiserver (lsah->type,
+ GET_OPAQUE_TYPE (ntohl (lsah->id.s_addr)));
+ }
+ return found;
+}
+
+/* -----------------------------------------------------------
+ * Followings are functions to manage client connections.
+ * -----------------------------------------------------------
+ */
+static int
+ospf_apiserver_new_lsa_hook (struct ospf_lsa *lsa)
+{
+ if (IS_DEBUG_OSPF_EVENT)
+ zlog_info ("API: Put LSA(%p)[%s] into reserve, total=%ld", lsa, dump_lsa_key (lsa), lsa->lsdb->total);
+ return 0;
+}
+
+static int
+ospf_apiserver_del_lsa_hook (struct ospf_lsa *lsa)
+{
+ if (IS_DEBUG_OSPF_EVENT)
+ zlog_info ("API: Get LSA(%p)[%s] from reserve, total=%ld", lsa, dump_lsa_key (lsa), lsa->lsdb->total);
+ return 0;
+}
+
+/* Allocate new connection structure. */
+struct ospf_apiserver *
+ospf_apiserver_new (int fd_sync, int fd_async)
+{
+ struct ospf_apiserver *new =
+ XMALLOC (MTYPE_OSPF_APISERVER, sizeof (struct ospf_apiserver));
+
+ new->filter =
+ XMALLOC (MTYPE_OSPF_APISERVER_MSGFILTER, sizeof (struct lsa_filter_type));
+
+ new->fd_sync = fd_sync;
+ new->fd_async = fd_async;
+
+ /* list of registered opaque types that application uses */
+ new->opaque_types = list_new ();
+
+ /* Initialize temporary strage for LSA instances to be refreshed. */
+ memset (&new->reserve, 0, sizeof (struct ospf_lsdb));
+ ospf_lsdb_init (&new->reserve);
+
+ new->reserve.new_lsa_hook = ospf_apiserver_new_lsa_hook; /* debug */
+ new->reserve.del_lsa_hook = ospf_apiserver_del_lsa_hook; /* debug */
+
+ new->out_sync_fifo = msg_fifo_new ();
+ new->out_async_fifo = msg_fifo_new ();
+ new->t_sync_read = NULL;
+#ifdef USE_ASYNC_READ
+ new->t_async_read = NULL;
+#endif /* USE_ASYNC_READ */
+ new->t_sync_write = NULL;
+ new->t_async_write = NULL;
+
+ new->filter->typemask = 0; /* filter all LSAs */
+ new->filter->origin = ANY_ORIGIN;
+ new->filter->num_areas = 0;
+
+ return new;
+}
+
+void
+ospf_apiserver_event (enum event event, int fd,
+ struct ospf_apiserver *apiserv)
+{
+ struct thread *apiserver_serv_thread;
+
+ switch (event)
+ {
+ case OSPF_APISERVER_ACCEPT:
+ apiserver_serv_thread =
+ thread_add_read (master, ospf_apiserver_accept, apiserv, fd);
+ break;
+ case OSPF_APISERVER_SYNC_READ:
+ apiserv->t_sync_read =
+ thread_add_read (master, ospf_apiserver_read, apiserv, fd);
+ break;
+#ifdef USE_ASYNC_READ
+ case OSPF_APISERVER_ASYNC_READ:
+ apiserv->t_async_read =
+ thread_add_read (master, ospf_apiserver_read, apiserv, fd);
+ break;
+#endif /* USE_ASYNC_READ */
+ case OSPF_APISERVER_SYNC_WRITE:
+ if (!apiserv->t_sync_write)
+ {
+ apiserv->t_sync_write =
+ thread_add_write (master, ospf_apiserver_sync_write, apiserv, fd);
+ }
+ break;
+ case OSPF_APISERVER_ASYNC_WRITE:
+ if (!apiserv->t_async_write)
+ {
+ apiserv->t_async_write =
+ thread_add_write (master, ospf_apiserver_async_write, apiserv, fd);
+ }
+ break;
+ }
+}
+
+/* Free instance. First unregister all opaque types used by
+ application, flush opaque LSAs injected by application
+ from network and close connection. */
+void
+ospf_apiserver_free (struct ospf_apiserver *apiserv)
+{
+ listnode node;
+
+ /* Cancel read and write threads. */
+ if (apiserv->t_sync_read)
+ {
+ thread_cancel (apiserv->t_sync_read);
+ }
+#ifdef USE_ASYNC_READ
+ if (apiserv->t_async_read)
+ {
+ thread_cancel (apiserv->t_async_read);
+ }
+#endif /* USE_ASYNC_READ */
+ if (apiserv->t_sync_write)
+ {
+ thread_cancel (apiserv->t_sync_write);
+ }
+
+ if (apiserv->t_async_write)
+ {
+ thread_cancel (apiserv->t_async_write);
+ }
+
+ /* Unregister all opaque types that application registered
+ and flush opaque LSAs if still in LSDB. */
+
+ while ((node = listhead (apiserv->opaque_types)) != NULL)
+ {
+
+ struct registered_opaque_type *regtype = node->data;
+
+ ospf_apiserver_unregister_opaque_type (apiserv, regtype->lsa_type,
+ regtype->opaque_type);
+
+ }
+
+ /* Close connections to OSPFd. */
+ if (apiserv->fd_sync > 0)
+ {
+ close (apiserv->fd_sync);
+ }
+
+ if (apiserv->fd_async > 0)
+ {
+ close (apiserv->fd_async);
+ }
+
+ /* Free fifos */
+ msg_fifo_free (apiserv->out_sync_fifo);
+ msg_fifo_free (apiserv->out_async_fifo);
+
+ /* Clear temporary strage for LSA instances to be refreshed. */
+ ospf_lsdb_delete_all (&apiserv->reserve);
+ ospf_lsdb_cleanup (&apiserv->reserve);
+
+ /* Remove from the list of active clients. */
+ listnode_delete (apiserver_list, apiserv);
+
+ if (IS_DEBUG_OSPF_EVENT)
+ zlog_info ("API: Delete apiserv(%p), total#(%d)", apiserv, apiserver_list->count);
+
+ /* And free instance. */
+ XFREE (MTYPE_OSPF_APISERVER, apiserv);
+}
+
+int
+ospf_apiserver_read (struct thread *thread)
+{
+ struct ospf_apiserver *apiserv;
+ struct msg *msg;
+ int fd;
+ int rc = -1;
+ enum event event;
+
+ apiserv = THREAD_ARG (thread);
+ fd = THREAD_FD (thread);
+
+ if (fd == apiserv->fd_sync)
+ {
+ event = OSPF_APISERVER_SYNC_READ;
+ apiserv->t_sync_read = NULL;
+
+ if (IS_DEBUG_OSPF_EVENT)
+ zlog_info ("API: ospf_apiserver_read: Peer: %s/%u",
+ inet_ntoa (apiserv->peer_sync.sin_addr),
+ ntohs (apiserv->peer_sync.sin_port));
+ }
+#ifdef USE_ASYNC_READ
+ else if (fd == apiserv->fd_async)
+ {
+ event = OSPF_APISERVER_ASYNC_READ;
+ apiserv->t_async_read = NULL;
+
+ if (IS_DEBUG_OSPF_EVENT)
+ zlog_info ("API: ospf_apiserver_read: Peer: %s/%u",
+ inet_ntoa (apiserv->peer_async.sin_addr),
+ ntohs (apiserv->peer_async.sin_port));
+ }
+#endif /* USE_ASYNC_READ */
+ else
+ {
+ zlog_warn ("ospf_apiserver_read: Unknown fd(%d)", fd);
+ ospf_apiserver_free (apiserv);
+ goto out;
+ }
+
+ /* Read message from fd. */
+ msg = msg_read (fd);
+ if (msg == NULL)
+ {
+ zlog_warn
+ ("ospf_apiserver_read: read failed on fd=%d, closing connection", fd);
+
+ /* Perform cleanup. */
+ ospf_apiserver_free (apiserv);
+ goto out;
+ }
+
+ if (IS_DEBUG_OSPF_EVENT)
+ msg_print (msg);
+
+ /* Dispatch to corresponding message handler. */
+ rc = ospf_apiserver_handle_msg (apiserv, msg);
+
+ /* Prepare for next message, add read thread. */
+ ospf_apiserver_event (event, fd, apiserv);
+
+ msg_free (msg);
+
+out:
+ return rc;
+}
+
+int
+ospf_apiserver_sync_write (struct thread *thread)
+{
+ struct ospf_apiserver *apiserv;
+ struct msg *msg;
+ int fd;
+ int rc = -1;
+
+ apiserv = THREAD_ARG (thread);
+ assert (apiserv);
+ fd = THREAD_FD (thread);
+
+ apiserv->t_sync_write = NULL;
+
+ /* Sanity check */
+ if (fd != apiserv->fd_sync)
+ {
+ zlog_warn ("ospf_apiserver_sync_write: Unknown fd=%d", fd);
+ goto out;
+ }
+
+ if (IS_DEBUG_OSPF_EVENT)
+ zlog_info ("API: ospf_apiserver_sync_write: Peer: %s/%u",
+ inet_ntoa (apiserv->peer_sync.sin_addr),
+ ntohs (apiserv->peer_sync.sin_port));
+
+ /* Check whether there is really a message in the fifo. */
+ msg = msg_fifo_pop (apiserv->out_sync_fifo);
+ if (!msg)
+ {
+ zlog_warn ("API: ospf_apiserver_sync_write: No message in Sync-FIFO?");
+ return 0;
+ }
+
+ if (IS_DEBUG_OSPF_EVENT)
+ msg_print (msg);
+
+ rc = msg_write (fd, msg);
+
+ /* Once a message is dequeued, it should be freed anyway. */
+ msg_free (msg);
+
+ if (rc < 0)
+ {
+ zlog_warn
+ ("ospf_apiserver_sync_write: write failed on fd=%d", fd);
+ goto out;
+ }
+
+
+ /* If more messages are in sync message fifo, schedule write thread. */
+ if (msg_fifo_head (apiserv->out_sync_fifo))
+ {
+ ospf_apiserver_event (OSPF_APISERVER_SYNC_WRITE, apiserv->fd_sync,
+ apiserv);
+ }
+
+ out:
+
+ if (rc < 0)
+ {
+ /* Perform cleanup and disconnect with peer */
+ ospf_apiserver_free (apiserv);
+ }
+
+ return rc;
+}
+
+
+int
+ospf_apiserver_async_write (struct thread *thread)
+{
+ struct ospf_apiserver *apiserv;
+ struct msg *msg;
+ int fd;
+ int rc = -1;
+
+ apiserv = THREAD_ARG (thread);
+ assert (apiserv);
+ fd = THREAD_FD (thread);
+
+ apiserv->t_async_write = NULL;
+
+ /* Sanity check */
+ if (fd != apiserv->fd_async)
+ {
+ zlog_warn ("ospf_apiserver_async_write: Unknown fd=%d", fd);
+ goto out;
+ }
+
+ if (IS_DEBUG_OSPF_EVENT)
+ zlog_info ("API: ospf_apiserver_async_write: Peer: %s/%u",
+ inet_ntoa (apiserv->peer_async.sin_addr),
+ ntohs (apiserv->peer_async.sin_port));
+
+ /* Check whether there is really a message in the fifo. */
+ msg = msg_fifo_pop (apiserv->out_async_fifo);
+ if (!msg)
+ {
+ zlog_warn ("API: ospf_apiserver_async_write: No message in Async-FIFO?");
+ return 0;
+ }
+
+ if (IS_DEBUG_OSPF_EVENT)
+ msg_print (msg);
+
+ rc = msg_write (fd, msg);
+
+ /* Once a message is dequeued, it should be freed anyway. */
+ msg_free (msg);
+
+ if (rc < 0)
+ {
+ zlog_warn
+ ("ospf_apiserver_async_write: write failed on fd=%d", fd);
+ goto out;
+ }
+
+
+ /* If more messages are in async message fifo, schedule write thread. */
+ if (msg_fifo_head (apiserv->out_async_fifo))
+ {
+ ospf_apiserver_event (OSPF_APISERVER_ASYNC_WRITE, apiserv->fd_async,
+ apiserv);
+ }
+
+ out:
+
+ if (rc < 0)
+ {
+ /* Perform cleanup and disconnect with peer */
+ ospf_apiserver_free (apiserv);
+ }
+
+ return rc;
+}
+
+
+int
+ospf_apiserver_serv_sock_family (unsigned short port, int family)
+{
+ union sockunion su;
+ int accept_sock;
+ int rc;
+
+ memset (&su, 0, sizeof (union sockunion));
+ su.sa.sa_family = family;
+
+ /* Make new socket */
+ accept_sock = sockunion_stream_socket (&su);
+ if (accept_sock < 0)
+ return accept_sock;
+
+ /* This is a server, so reuse address and port */
+ sockopt_reuseaddr (accept_sock);
+ sockopt_reuseport (accept_sock);
+
+ /* Bind socket to address and given port. */
+ rc = sockunion_bind (accept_sock, &su, port, NULL);
+ if (rc < 0)
+ {
+ close (accept_sock); /* Close socket */
+ return rc;
+ }
+
+ /* Listen socket under queue length 3. */
+ rc = listen (accept_sock, 3);
+ if (rc < 0)
+ {
+ zlog_warn ("ospf_apiserver_serv_sock_family: listen: %s",
+ strerror (errno));
+ close (accept_sock); /* Close socket */
+ return rc;
+ }
+ return accept_sock;
+}
+
+
+/* Accept connection request from external applications. For each
+ accepted connection allocate own connection instance. */
+int
+ospf_apiserver_accept (struct thread *thread)
+{
+ int accept_sock;
+ int new_sync_sock;
+ int new_async_sock;
+ union sockunion su;
+ struct ospf_apiserver *apiserv;
+ struct sockaddr_in peer_async;
+ struct sockaddr_in peer_sync;
+ int peerlen;
+ int ret;
+
+ /* THREAD_ARG (thread) is NULL */
+ accept_sock = THREAD_FD (thread);
+
+ /* Keep hearing on socket for further connections. */
+ ospf_apiserver_event (OSPF_APISERVER_ACCEPT, accept_sock, NULL);
+
+ memset (&su, 0, sizeof (union sockunion));
+ /* Accept connection for synchronous messages */
+ new_sync_sock = sockunion_accept (accept_sock, &su);
+ if (new_sync_sock < 0)
+ {
+ zlog_warn ("ospf_apiserver_accept: accept: %s", strerror (errno));
+ return -1;
+ }
+
+ /* Get port address and port number of peer to make reverse connection.
+ The reverse channel uses the port number of the peer port+1. */
+
+ memset(&peer_sync, 0, sizeof(struct sockaddr_in));
+ peerlen = sizeof (struct sockaddr_in);
+
+ ret = getpeername (new_sync_sock, (struct sockaddr *)&peer_sync, &peerlen);
+ if (ret < 0)
+ {
+ zlog_warn ("ospf_apiserver_accept: getpeername: %s", strerror (errno));
+ close (new_sync_sock);
+ return -1;
+ }
+
+ if (IS_DEBUG_OSPF_EVENT)
+ zlog_info ("API: ospf_apiserver_accept: New peer: %s/%u",
+ inet_ntoa (peer_sync.sin_addr), ntohs (peer_sync.sin_port));
+
+ /* Create new socket for asynchronous messages. */
+ peer_async = peer_sync;
+ peer_async.sin_port = htons(ntohs(peer_sync.sin_port) + 1);
+
+ /* Check if remote port number to make reverse connection is valid one. */
+ if (ntohs (peer_async.sin_port) == ospf_apiserver_getport ())
+ {
+ zlog_warn ("API: ospf_apiserver_accept: Peer(%s/%u): Invalid async port number?",
+ inet_ntoa (peer_async.sin_addr), ntohs (peer_async.sin_port));
+ close (new_sync_sock);
+ return -1;
+ }
+
+ new_async_sock = socket (AF_INET, SOCK_STREAM, 0);
+ if (new_async_sock < 0)
+ {
+ zlog_warn ("ospf_apiserver_accept: socket: %s", strerror (errno));
+ close (new_sync_sock);
+ return -1;
+ }
+
+ ret = connect (new_async_sock, (struct sockaddr *) &peer_async,
+ sizeof (struct sockaddr_in));
+
+ if (ret < 0)
+ {
+ zlog_warn ("ospf_apiserver_accept: connect: %s", strerror (errno));
+ close (new_sync_sock);
+ close (new_async_sock);
+ return -1;
+ }
+
+#ifdef USE_ASYNC_READ
+#else /* USE_ASYNC_READ */
+ /* Make the asynchronous channel write-only. */
+ ret = shutdown (new_async_sock, SHUT_RD);
+ if (ret < 0)
+ {
+ zlog_warn ("ospf_apiserver_accept: shutdown: %s", strerror (errno));
+ close (new_sync_sock);
+ close (new_async_sock);
+ return -1;
+ }
+#endif /* USE_ASYNC_READ */
+
+ /* Allocate new server-side connection structure */
+ apiserv = ospf_apiserver_new (new_sync_sock, new_async_sock);
+
+ /* Add to active connection list */
+ listnode_add (apiserver_list, apiserv);
+ apiserv->peer_sync = peer_sync;
+ apiserv->peer_async = peer_async;
+
+ /* And add read threads for new connection */
+ ospf_apiserver_event (OSPF_APISERVER_SYNC_READ, new_sync_sock, apiserv);
+#ifdef USE_ASYNC_READ
+ ospf_apiserver_event (OSPF_APISERVER_ASYNC_READ, new_async_sock, apiserv);
+#endif /* USE_ASYNC_READ */
+
+ if (IS_DEBUG_OSPF_EVENT)
+ zlog_warn ("API: New apiserv(%p), total#(%d)", apiserv, apiserver_list->count);
+
+ return 0;
+}
+
+
+/* -----------------------------------------------------------
+ * Send reply with return code to client application
+ * -----------------------------------------------------------
+ */
+
+int
+ospf_apiserver_send_msg (struct ospf_apiserver *apiserv, struct msg *msg)
+{
+ struct msg_fifo *fifo;
+ struct msg *msg2;
+ enum event event;
+ int fd;
+
+ switch (msg->hdr.msgtype)
+ {
+ case MSG_REPLY:
+ fifo = apiserv->out_sync_fifo;
+ fd = apiserv->fd_sync;
+ event = OSPF_APISERVER_SYNC_WRITE;
+ break;
+ case MSG_READY_NOTIFY:
+ case MSG_LSA_UPDATE_NOTIFY:
+ case MSG_LSA_DELETE_NOTIFY:
+ case MSG_NEW_IF:
+ case MSG_DEL_IF:
+ case MSG_ISM_CHANGE:
+ case MSG_NSM_CHANGE:
+ fifo = apiserv->out_async_fifo;
+ fd = apiserv->fd_async;
+ event = OSPF_APISERVER_ASYNC_WRITE;
+ break;
+ default:
+ zlog_warn ("ospf_apiserver_send_msg: Unknown message type %d",
+ msg->hdr.msgtype);
+ return -1;
+ }
+
+ /* Make a copy of the message and put in the fifo. Once the fifo
+ gets drained by the write thread, the message will be freed. */
+ /* NB: Given "msg" is untouched in this function. */
+ msg2 = msg_dup (msg);
+
+ /* Enqueue message into corresponding fifo queue */
+ msg_fifo_push (fifo, msg2);
+
+ /* Schedule write thread */
+ ospf_apiserver_event (event, fd, apiserv);
+ return 0;
+}
+
+int
+ospf_apiserver_send_reply (struct ospf_apiserver *apiserv, u_int32_t seqnr,
+ u_char rc)
+{
+ struct msg *msg = new_msg_reply (seqnr, rc);
+ int ret;
+
+ if (!msg)
+ {
+ zlog_warn ("ospf_apiserver_send_reply: msg_new failed");
+#ifdef NOTYET
+ /* Cannot allocate new message. What should we do? */
+ ospf_apiserver_free (apiserv);
+#endif
+ return -1;
+ }
+
+ ret = ospf_apiserver_send_msg (apiserv, msg);
+ msg_free (msg);
+ return ret;
+}
+
+
+/* -----------------------------------------------------------
+ * Generic message dispatching handler function
+ * -----------------------------------------------------------
+ */
+
+int
+ospf_apiserver_handle_msg (struct ospf_apiserver *apiserv, struct msg *msg)
+{
+ int rc;
+
+ /* Call corresponding message handler function. */
+ switch (msg->hdr.msgtype)
+ {
+ case MSG_REGISTER_OPAQUETYPE:
+ rc = ospf_apiserver_handle_register_opaque_type (apiserv, msg);
+ break;
+ case MSG_UNREGISTER_OPAQUETYPE:
+ rc = ospf_apiserver_handle_unregister_opaque_type (apiserv, msg);
+ break;
+ case MSG_REGISTER_EVENT:
+ rc = ospf_apiserver_handle_register_event (apiserv, msg);
+ break;
+ case MSG_SYNC_LSDB:
+ rc = ospf_apiserver_handle_sync_lsdb (apiserv, msg);
+ break;
+ case MSG_ORIGINATE_REQUEST:
+ rc = ospf_apiserver_handle_originate_request (apiserv, msg);
+ break;
+ case MSG_DELETE_REQUEST:
+ rc = ospf_apiserver_handle_delete_request (apiserv, msg);
+ break;
+ default:
+ zlog_warn ("ospf_apiserver_handle_msg: Unknown message type: %d",
+ msg->hdr.msgtype);
+ rc = -1;
+ }
+ return rc;
+}
+
+
+/* -----------------------------------------------------------
+ * Following are functions for opaque type registration
+ * -----------------------------------------------------------
+ */
+
+int
+ospf_apiserver_register_opaque_type (struct ospf_apiserver *apiserv,
+ u_char lsa_type, u_char opaque_type)
+{
+ struct registered_opaque_type *regtype;
+ int (*originator_func) (void *arg);
+ int rc;
+
+ switch (lsa_type)
+ {
+ case OSPF_OPAQUE_LINK_LSA:
+ originator_func = ospf_apiserver_lsa9_originator;
+ break;
+ case OSPF_OPAQUE_AREA_LSA:
+ originator_func = ospf_apiserver_lsa10_originator;
+ break;
+ case OSPF_OPAQUE_AS_LSA:
+ originator_func = ospf_apiserver_lsa11_originator;
+ break;
+ default:
+ zlog_warn ("ospf_apiserver_register_opaque_type: lsa_type(%d)",
+ lsa_type);
+ return OSPF_API_ILLEGALLSATYPE;
+ }
+
+
+ /* Register opaque function table */
+ /* NB: Duplicated registration will be detected inside the function. */
+ rc =
+ ospf_register_opaque_functab (lsa_type, opaque_type,
+ NULL, /* ospf_apiserver_new_if */
+ NULL, /* ospf_apiserver_del_if */
+ NULL, /* ospf_apiserver_ism_change */
+ NULL, /* ospf_apiserver_nsm_change */
+ NULL,
+ NULL,
+ NULL,
+ ospf_apiserver_show_info,
+ originator_func,
+ ospf_apiserver_lsa_refresher,
+ NULL, /* ospf_apiserver_lsa_update */
+ NULL /* ospf_apiserver_lsa_delete */);
+
+ if (rc != 0)
+ {
+ zlog_warn ("Failed to register opaque type [%d/%d]",
+ lsa_type, opaque_type);
+ return OSPF_API_OPAQUETYPEINUSE;
+ }
+
+ /* Remember the opaque type that application registers so when
+ connection shuts down, we can flush all LSAs of this opaque
+ type. */
+
+ regtype =
+ XMALLOC (MTYPE_OSPF_APISERVER, sizeof (struct registered_opaque_type));
+ memset (regtype, 0, sizeof (struct registered_opaque_type));
+ regtype->lsa_type = lsa_type;
+ regtype->opaque_type = opaque_type;
+
+ /* Add to list of registered opaque types */
+ listnode_add (apiserv->opaque_types, regtype);
+
+ if (IS_DEBUG_OSPF_EVENT)
+ zlog_info ("API: Add LSA-type(%d)/Opaque-type(%d) into apiserv(%p), total#(%d)", lsa_type, opaque_type, apiserv, listcount (apiserv->opaque_types));
+
+ return 0;
+}
+
+int
+ospf_apiserver_unregister_opaque_type (struct ospf_apiserver *apiserv,
+ u_char lsa_type, u_char opaque_type)
+{
+ listnode node;
+
+ for (node = listhead (apiserv->opaque_types); node; nextnode (node))
+ {
+ struct registered_opaque_type *regtype = node->data;
+
+ /* Check if we really registered this opaque type */
+ if (regtype->lsa_type == lsa_type &&
+ regtype->opaque_type == opaque_type)
+ {
+
+ /* Yes, we registered this opaque type. Flush
+ all existing opaque LSAs of this type */
+
+ ospf_apiserver_flush_opaque_lsa (apiserv, lsa_type, opaque_type);
+ ospf_delete_opaque_functab (lsa_type, opaque_type);
+
+ /* Remove from list of registered opaque types */
+ listnode_delete (apiserv->opaque_types, regtype);
+
+ if (IS_DEBUG_OSPF_EVENT)
+ zlog_info ("API: Del LSA-type(%d)/Opaque-type(%d) from apiserv(%p), total#(%d)", lsa_type, opaque_type, apiserv, listcount (apiserv->opaque_types));
+
+ return 0;
+ }
+ }
+
+ /* Opaque type is not registered */
+ zlog_warn ("Failed to unregister opaque type [%d/%d]",
+ lsa_type, opaque_type);
+ return OSPF_API_OPAQUETYPENOTREGISTERED;
+}
+
+
+int
+apiserver_is_opaque_type_registered (struct ospf_apiserver *apiserv,
+ u_char lsa_type, u_char opaque_type)
+{
+ listnode node;
+
+ for (node = listhead (apiserv->opaque_types); node; nextnode (node))
+ {
+ struct registered_opaque_type *regtype = node->data;
+
+ /* Check if we really registered this opaque type */
+ if (regtype->lsa_type == lsa_type &&
+ regtype->opaque_type == opaque_type)
+ {
+ /* Yes registered */
+ return 1;
+ }
+ }
+ /* Not registered */
+ return 0;
+}
+
+int
+ospf_apiserver_handle_register_opaque_type (struct ospf_apiserver *apiserv,
+ struct msg *msg)
+{
+ struct msg_register_opaque_type *rmsg;
+ u_char lsa_type;
+ u_char opaque_type;
+ int rc = 0;
+
+ /* Extract parameters from register opaque type message */
+ rmsg = (struct msg_register_opaque_type *) STREAM_DATA (msg->s);
+
+ lsa_type = rmsg->lsatype;
+ opaque_type = rmsg->opaquetype;
+
+ rc = ospf_apiserver_register_opaque_type (apiserv, lsa_type, opaque_type);
+
+ /* Send a reply back to client including return code */
+ rc = ospf_apiserver_send_reply (apiserv, ntohl (msg->hdr.msgseq), rc);
+ if (rc < 0)
+ goto out;
+
+ /* Now inform application about opaque types that are ready */
+ switch (lsa_type)
+ {
+ case OSPF_OPAQUE_LINK_LSA:
+ ospf_apiserver_notify_ready_type9 (apiserv);
+ break;
+ case OSPF_OPAQUE_AREA_LSA:
+ ospf_apiserver_notify_ready_type10 (apiserv);
+ break;
+ case OSPF_OPAQUE_AS_LSA:
+ ospf_apiserver_notify_ready_type11 (apiserv);
+ break;
+ }
+out:
+ return rc;
+}
+
+
+/* Notify specific client about all opaque types 9 that are ready. */
+void
+ospf_apiserver_notify_ready_type9 (struct ospf_apiserver *apiserv)
+{
+ listnode node;
+ listnode n2;
+ struct ospf *ospf;
+
+ ospf = ospf_lookup ();
+
+ for (node = listhead (ospf->oiflist); node; nextnode (node))
+ {
+ struct ospf_interface *oi = (struct ospf_interface *) getdata (node);
+
+ /* Check if this interface is indeed ready for type 9 */
+ if (!ospf_apiserver_is_ready_type9 (oi))
+ continue;
+
+ /* Check for registered opaque type 9 types */
+ for (n2 = listhead (apiserv->opaque_types); n2; nextnode (n2))
+ {
+ struct registered_opaque_type *r =
+ (struct registered_opaque_type *) getdata (n2);
+ struct msg *msg;
+
+ if (r->lsa_type == OSPF_OPAQUE_LINK_LSA)
+ {
+
+ /* Yes, this opaque type is ready */
+ msg = new_msg_ready_notify (0, OSPF_OPAQUE_LINK_LSA,
+ r->opaque_type,
+ oi->address->u.prefix4);
+ if (!msg)
+ {
+ zlog_warn ("apiserver_notify_ready_type9: msg_new failed");
+#ifdef NOTYET
+ /* Cannot allocate new message. What should we do? */
+ ospf_apiserver_free (apiserv);
+#endif
+ goto out;
+ }
+ ospf_apiserver_send_msg (apiserv, msg);
+ msg_free (msg);
+ }
+ }
+ }
+
+out:
+ return;
+}
+
+
+/* Notify specific client about all opaque types 10 that are ready. */
+void
+ospf_apiserver_notify_ready_type10 (struct ospf_apiserver *apiserv)
+{
+ listnode node;
+ listnode n2;
+ struct ospf *ospf;
+
+ ospf = ospf_lookup ();
+
+ for (node = listhead (ospf->areas); node; nextnode (node))
+ {
+ struct ospf_area *area = getdata (node);
+
+ if (!ospf_apiserver_is_ready_type10 (area))
+ {
+ continue;
+ }
+
+ /* Check for registered opaque type 10 types */
+ for (n2 = listhead (apiserv->opaque_types); n2; nextnode (n2))
+ {
+ struct registered_opaque_type *r =
+ (struct registered_opaque_type *) getdata (n2);
+ struct msg *msg;
+
+ if (r->lsa_type == OSPF_OPAQUE_AREA_LSA)
+ {
+ /* Yes, this opaque type is ready */
+ msg =
+ new_msg_ready_notify (0, OSPF_OPAQUE_AREA_LSA,
+ r->opaque_type, area->area_id);
+ if (!msg)
+ {
+ zlog_warn ("apiserver_notify_ready_type10: msg_new failed");
+#ifdef NOTYET
+ /* Cannot allocate new message. What should we do? */
+ ospf_apiserver_free (apiserv);
+#endif
+ goto out;
+ }
+ ospf_apiserver_send_msg (apiserv, msg);
+ msg_free (msg);
+ }
+ }
+ }
+
+out:
+ return;
+}
+
+/* Notify specific client about all opaque types 11 that are ready */
+void
+ospf_apiserver_notify_ready_type11 (struct ospf_apiserver *apiserv)
+{
+ listnode n2;
+ struct ospf *ospf;
+
+ ospf = ospf_lookup ();
+
+ /* Can type 11 be originated? */
+ if (!ospf_apiserver_is_ready_type11 (ospf))
+ goto out;;
+
+ /* Check for registered opaque type 11 types */
+ for (n2 = listhead (apiserv->opaque_types); n2; nextnode (n2))
+ {
+ struct registered_opaque_type *r =
+ (struct registered_opaque_type *) getdata (n2);
+ struct msg *msg;
+ struct in_addr noarea_id = { 0L };
+
+ if (r->lsa_type == OSPF_OPAQUE_AS_LSA)
+ {
+ /* Yes, this opaque type is ready */
+ msg = new_msg_ready_notify (0, OSPF_OPAQUE_AS_LSA,
+ r->opaque_type, noarea_id);
+
+ if (!msg)
+ {
+ zlog_warn ("apiserver_notify_ready_type11: msg_new failed");
+#ifdef NOTYET
+ /* Cannot allocate new message. What should we do? */
+ ospf_apiserver_free (apiserv);
+#endif
+ goto out;
+ }
+ ospf_apiserver_send_msg (apiserv, msg);
+ msg_free (msg);
+ }
+ }
+
+out:
+ return;
+}
+
+int
+ospf_apiserver_handle_unregister_opaque_type (struct ospf_apiserver *apiserv,
+ struct msg *msg)
+{
+ struct msg_unregister_opaque_type *umsg;
+ u_char ltype;
+ u_char otype;
+ int rc = 0;
+
+ /* Extract parameters from unregister opaque type message */
+ umsg = (struct msg_unregister_opaque_type *) STREAM_DATA (msg->s);
+
+ ltype = umsg->lsatype;
+ otype = umsg->opaquetype;
+
+ rc = ospf_apiserver_unregister_opaque_type (apiserv, ltype, otype);
+
+ /* Send a reply back to client including return code */
+ rc = ospf_apiserver_send_reply (apiserv, ntohl (msg->hdr.msgseq), rc);
+
+ return rc;
+}
+
+
+/* -----------------------------------------------------------
+ * Following are functions for event (filter) registration.
+ * -----------------------------------------------------------
+ */
+int
+ospf_apiserver_handle_register_event (struct ospf_apiserver *apiserv,
+ struct msg *msg)
+{
+ struct msg_register_event *rmsg;
+ int rc;
+ u_int32_t seqnum;
+
+ rmsg = (struct msg_register_event *) STREAM_DATA (msg->s);
+
+ /* Get request sequence number */
+ seqnum = msg_get_seq (msg);
+
+ /* Free existing filter in apiserv. */
+ XFREE (MTYPE_OSPF_APISERVER_MSGFILTER, apiserv->filter);
+ /* Alloc new space for filter. */
+
+ apiserv->filter = XMALLOC (MTYPE_OSPF_APISERVER_MSGFILTER,
+ ntohs (msg->hdr.msglen));
+ if (apiserv->filter)
+ {
+ /* copy it over. */
+ memcpy (apiserv->filter, &rmsg->filter, ntohs (msg->hdr.msglen));
+ rc = OSPF_API_OK;
+ }
+ else
+ {
+ rc = OSPF_API_NOMEMORY;
+ }
+ /* Send a reply back to client with return code */
+ rc = ospf_apiserver_send_reply (apiserv, seqnum, rc);
+ return rc;
+}
+
+
+/* -----------------------------------------------------------
+ * Followings are functions for LSDB synchronization.
+ * -----------------------------------------------------------
+ */
+
+int
+apiserver_sync_callback (struct ospf_lsa *lsa, void *p_arg, int int_arg)
+{
+ struct ospf_apiserver *apiserv;
+ int seqnum;
+ struct msg *msg;
+ struct param_t
+ {
+ struct ospf_apiserver *apiserv;
+ struct lsa_filter_type *filter;
+ }
+ *param;
+ int rc = -1;
+
+ /* Sanity check */
+ assert (lsa->data);
+ assert (p_arg);
+
+ param = (struct param_t *) p_arg;
+ apiserv = param->apiserv;
+ seqnum = (u_int32_t) int_arg;
+
+ /* Check origin in filter. */
+ if ((param->filter->origin == ANY_ORIGIN) ||
+ (param->filter->origin == (lsa->flags & OSPF_LSA_SELF)))
+ {
+
+ /* Default area for AS-External and Opaque11 LSAs */
+ struct in_addr area_id = { 0L };
+
+ /* Default interface for non Opaque9 LSAs */
+ struct in_addr ifaddr = { 0L };
+
+ if (lsa->area)
+ {
+ area_id = lsa->area->area_id;
+ }
+ if (lsa->data->type == OSPF_OPAQUE_LINK_LSA)
+ {
+ ifaddr = lsa->oi->address->u.prefix4;
+ }
+
+ msg = new_msg_lsa_change_notify (MSG_LSA_UPDATE_NOTIFY,
+ seqnum,
+ ifaddr, area_id,
+ lsa->flags & OSPF_LSA_SELF, lsa->data);
+ if (!msg)
+ {
+ zlog_warn ("apiserver_sync_callback: new_msg_update failed");
+#ifdef NOTYET
+ /* Cannot allocate new message. What should we do? */
+/* ospf_apiserver_free (apiserv);*//* Do nothing here XXX */
+#endif
+ goto out;
+ }
+
+ /* Send LSA */
+ ospf_apiserver_send_msg (apiserv, msg);
+ msg_free (msg);
+ }
+ rc = 0;
+
+out:
+ return rc;
+}
+
+int
+ospf_apiserver_handle_sync_lsdb (struct ospf_apiserver *apiserv,
+ struct msg *msg)
+{
+ listnode node;
+ u_int32_t seqnum;
+ int rc = 0;
+ struct msg_sync_lsdb *smsg;
+ struct param_t
+ {
+ struct ospf_apiserver *apiserv;
+ struct lsa_filter_type *filter;
+ }
+ param;
+ u_int16_t mask;
+ struct route_node *rn;
+ struct ospf_lsa *lsa;
+ struct ospf *ospf;
+
+ ospf = ospf_lookup ();
+
+ /* Get request sequence number */
+ seqnum = msg_get_seq (msg);
+ /* Set sync msg. */
+ smsg = (struct msg_sync_lsdb *) STREAM_DATA (msg->s);
+
+ /* Set parameter struct. */
+ param.apiserv = apiserv;
+ param.filter = &smsg->filter;
+
+ /* Remember mask. */
+ mask = ntohs (smsg->filter.typemask);
+
+ /* Iterate over all areas. */
+ for (node = listhead (ospf->areas); node; nextnode (node))
+ {
+ struct ospf_area *area = node->data;
+ int i;
+ u_int32_t *area_id = NULL;
+ /* Compare area_id with area_ids in sync request. */
+ if ((i = smsg->filter.num_areas) > 0)
+ {
+ /* Let area_id point to the list of area IDs,
+ * which is at the end of smsg->filter. */
+ area_id = (u_int32_t *) (&smsg->filter + 1);
+ while (i)
+ {
+ if (*area_id == area->area_id.s_addr)
+ {
+ break;
+ }
+ i--;
+ area_id++;
+ }
+ }
+ else
+ {
+ i = 1;
+ }
+
+ /* If area was found, then i>0 here. */
+ if (i)
+ {
+ /* Check msg type. */
+ if (mask & Power2[OSPF_ROUTER_LSA])
+ LSDB_LOOP (ROUTER_LSDB (area), rn, lsa)
+ apiserver_sync_callback(lsa, (void *) &param, seqnum);
+ if (mask & Power2[OSPF_NETWORK_LSA])
+ LSDB_LOOP (NETWORK_LSDB (area), rn, lsa)
+ apiserver_sync_callback(lsa, (void *) &param, seqnum);
+ if (mask & Power2[OSPF_SUMMARY_LSA])
+ LSDB_LOOP (SUMMARY_LSDB (area), rn, lsa)
+ apiserver_sync_callback(lsa, (void *) &param, seqnum);
+ if (mask & Power2[OSPF_ASBR_SUMMARY_LSA])
+ LSDB_LOOP (ASBR_SUMMARY_LSDB (area), rn, lsa)
+ apiserver_sync_callback(lsa, (void *) &param, seqnum);
+ if (mask & Power2[OSPF_OPAQUE_LINK_LSA])
+ LSDB_LOOP (OPAQUE_LINK_LSDB (area), rn, lsa)
+ apiserver_sync_callback(lsa, (void *) &param, seqnum);
+ if (mask & Power2[OSPF_OPAQUE_AREA_LSA])
+ LSDB_LOOP (OPAQUE_AREA_LSDB (area), rn, lsa)
+ apiserver_sync_callback(lsa, (void *) &param, seqnum);
+ }
+ }
+
+ /* For AS-external LSAs */
+ if (ospf->lsdb)
+ {
+ if (mask & Power2[OSPF_AS_EXTERNAL_LSA])
+ LSDB_LOOP (EXTERNAL_LSDB (ospf), rn, lsa)
+ apiserver_sync_callback(lsa, (void *) &param, seqnum);
+ }
+
+ /* For AS-external opaque LSAs */
+ if (ospf->lsdb)
+ {
+ if (mask & Power2[OSPF_OPAQUE_AS_LSA])
+ LSDB_LOOP (OPAQUE_AS_LSDB (ospf), rn, lsa)
+ apiserver_sync_callback(lsa, (void *) &param, seqnum);
+ }
+
+ /* Send a reply back to client with return code */
+ rc = ospf_apiserver_send_reply (apiserv, seqnum, rc);
+ return rc;
+}
+
+
+/* -----------------------------------------------------------
+ * Followings are functions to originate or update LSA
+ * from an application.
+ * -----------------------------------------------------------
+ */
+
+/* Create a new internal opaque LSA by taking prototype and filling in
+ missing fields such as age, sequence number, advertising router,
+ checksum and so on. The interface parameter is used for type 9
+ LSAs, area parameter for type 10. Type 11 LSAs do neither need area
+ nor interface. */
+
+struct ospf_lsa *
+ospf_apiserver_opaque_lsa_new (struct ospf_area *area,
+ struct ospf_interface *oi,
+ struct lsa_header *protolsa)
+{
+ struct stream *s;
+ struct lsa_header *newlsa;
+ struct ospf_lsa *new = NULL;
+ u_char options = 0x0;
+ u_int16_t length;
+
+ struct ospf *ospf;
+
+ ospf = ospf_lookup();
+ assert(ospf);
+
+ /* Create a stream for internal opaque LSA */
+ if ((s = stream_new (OSPF_MAX_LSA_SIZE)) == NULL)
+ {
+ zlog_warn ("ospf_apiserver_opaque_lsa_new: stream_new failed");
+ return NULL;
+ }
+
+ newlsa = (struct lsa_header *) STREAM_DATA (s);
+
+ /* XXX If this is a link-local LSA or an AS-external LSA, how do we
+ have to set options? */
+
+ if (area)
+ {
+ options = LSA_OPTIONS_GET (area);
+#ifdef HAVE_NSSA
+ options |= LSA_NSSA_GET (area);
+#endif /* HAVE_NSSA */
+ }
+
+ options |= OSPF_OPTION_O; /* Don't forget to set option bit */
+
+ if (IS_DEBUG_OSPF (lsa, LSA_GENERATE))
+ {
+ zlog_info ("LSA[Type%d:%s]: Creating an Opaque-LSA instance",
+ protolsa->type, inet_ntoa (protolsa->id));
+ }
+
+ /* Set opaque-LSA header fields. */
+ lsa_header_set (s, options, protolsa->type, protolsa->id,
+ ospf->router_id);
+
+ /* Set opaque-LSA body fields. */
+ stream_put (s, ((u_char *) protolsa) + sizeof (struct lsa_header),
+ ntohs (protolsa->length) - sizeof (struct lsa_header));
+
+ /* Determine length of LSA. */
+ length = stream_get_endp (s);
+ newlsa->length = htons (length);
+
+ /* Create OSPF LSA. */
+ if ((new = ospf_lsa_new ()) == NULL)
+ {
+ zlog_warn ("ospf_apiserver_opaque_lsa_new: ospf_lsa_new() ?");
+ stream_free (s);
+ return NULL;
+ }
+
+ if ((new->data = ospf_lsa_data_new (length)) == NULL)
+ {
+ zlog_warn ("ospf_apiserver_opaque_lsa_new: ospf_lsa_data_new() ?");
+ ospf_lsa_free (new);
+ new = NULL;
+ stream_free (s);
+ return NULL;
+ }
+
+ new->area = area;
+ new->oi = oi;
+
+ SET_FLAG (new->flags, OSPF_LSA_SELF);
+ memcpy (new->data, newlsa, length);
+ stream_free (s);
+
+ return new;
+}
+
+
+int
+ospf_apiserver_is_ready_type9 (struct ospf_interface *oi)
+{
+ /* Type 9 opaque LSA can be originated if there is at least one
+ active opaque-capable neighbor attached to the outgoing
+ interface. */
+
+ return (ospf_nbr_count_opaque_capable (oi) > 0);
+}
+
+int
+ospf_apiserver_is_ready_type10 (struct ospf_area *area)
+{
+ /* Type 10 opaque LSA can be originated if there is at least one
+ interface belonging to the area that has an active opaque-capable
+ neighbor. */
+ listnode node;
+
+ for (node = listhead (area->oiflist); node; nextnode (node))
+ {
+ struct ospf_interface *oi = getdata (node);
+
+ /* Is there an active neighbor attached to this interface? */
+ if (ospf_apiserver_is_ready_type9 (oi))
+ {
+ return 1;
+ }
+ }
+ /* No active neighbor in area */
+ return 0;
+}
+
+int
+ospf_apiserver_is_ready_type11 (struct ospf *ospf)
+{
+ /* Type 11 opaque LSA can be originated if there is at least one interface
+ that has an active opaque-capable neighbor. */
+ listnode node;
+
+ for (node = listhead (ospf->oiflist); node; nextnode (node))
+ {
+ struct ospf_interface *oi = getdata (node);
+
+ /* Is there an active neighbor attached to this interface? */
+ if (ospf_apiserver_is_ready_type9 (oi))
+ return 1;
+ }
+ /* No active neighbor at all */
+ return 0;
+}
+
+
+int
+ospf_apiserver_handle_originate_request (struct ospf_apiserver *apiserv,
+ struct msg *msg)
+{
+ struct msg_originate_request *omsg;
+ struct lsa_header *data;
+ struct ospf_lsa *new;
+ struct ospf_lsa *old;
+ struct ospf_area *area = NULL;
+ struct ospf_interface *oi = NULL;
+ struct ospf_lsdb *lsdb = NULL;
+ struct ospf *ospf;
+ int lsa_type, opaque_type;
+ int ready = 0;
+ int rc = 0;
+
+ ospf = ospf_lookup();
+
+ /* Extract opaque LSA data from message */
+ omsg = (struct msg_originate_request *) STREAM_DATA (msg->s);
+ data = &omsg->data;
+
+ /* Determine interface for type9 or area for type10 LSAs. */
+ switch (data->type)
+ {
+ case OSPF_OPAQUE_LINK_LSA:
+ oi = ospf_apiserver_if_lookup_by_addr (omsg->ifaddr);
+ if (!oi)
+ {
+ zlog_warn ("apiserver_originate: unknown interface %s",
+ inet_ntoa (omsg->ifaddr));
+ rc = OSPF_API_NOSUCHINTERFACE;
+ goto out;
+ }
+ area = oi->area;
+ lsdb = area->lsdb;
+ break;
+ case OSPF_OPAQUE_AREA_LSA:
+ area = ospf_area_lookup_by_area_id (ospf, omsg->area_id);
+ if (!area)
+ {
+ zlog_warn ("apiserver_originate: unknown area %s",
+ inet_ntoa (omsg->area_id));
+ rc = OSPF_API_NOSUCHAREA;
+ goto out;
+ }
+ lsdb = area->lsdb;
+ break;
+ case OSPF_OPAQUE_AS_LSA:
+ lsdb = ospf->lsdb;
+ break;
+ default:
+ /* We can only handle opaque types here */
+ zlog_warn ("apiserver_originate: Cannot originate non-opaque LSA type %d",
+ data->type);
+ rc = OSPF_API_ILLEGALLSATYPE;
+ goto out;
+ }
+
+ /* Check if we registered this opaque type */
+ lsa_type = data->type;
+ opaque_type = GET_OPAQUE_TYPE (ntohl (data->id.s_addr));
+
+ if (!apiserver_is_opaque_type_registered (apiserv, lsa_type, opaque_type))
+ {
+ zlog_warn ("apiserver_originate: LSA-type(%d)/Opaque-type(%d): Not registered", lsa_type, opaque_type);
+ rc = OSPF_API_OPAQUETYPENOTREGISTERED;
+ goto out;
+ }
+
+ /* Make sure that the neighbors are ready before we can originate */
+ switch (data->type)
+ {
+ case OSPF_OPAQUE_LINK_LSA:
+ ready = ospf_apiserver_is_ready_type9 (oi);
+ break;
+ case OSPF_OPAQUE_AREA_LSA:
+ ready = ospf_apiserver_is_ready_type10 (area);
+ break;
+ case OSPF_OPAQUE_AS_LSA:
+ ready = ospf_apiserver_is_ready_type11 (ospf);
+ break;
+ default:
+ break;
+ }
+
+ if (!ready)
+ {
+ zlog_warn ("Neighbors not ready to originate type %d", data->type);
+ rc = OSPF_API_NOTREADY;
+ goto out;
+ }
+
+ /* Create OSPF's internal opaque LSA representation */
+ new = ospf_apiserver_opaque_lsa_new (area, oi, data);
+ if (!new)
+ {
+ rc = OSPF_API_NOMEMORY; /* XXX */
+ goto out;
+ }
+
+ /* Determine if LSA is new or an update for an existing one. */
+ old = ospf_lsdb_lookup (lsdb, new);
+
+ if (!old)
+ {
+ /* New LSA install in LSDB. */
+ rc = ospf_apiserver_originate1 (new);
+ }
+ else
+ {
+ /*
+ * Keep the new LSA instance in the "waiting place" until the next
+ * refresh timing. If several LSA update requests for the same LSID
+ * have issued by peer, the last one takes effect.
+ */
+ new->lsdb = &apiserv->reserve;
+ ospf_lsdb_add (&apiserv->reserve, new);
+
+ /* Kick the scheduler function. */
+ ospf_opaque_lsa_refresh_schedule (old);
+ }
+
+out:
+
+ /* Send a reply back to client with return code */
+ rc = ospf_apiserver_send_reply (apiserv, ntohl (msg->hdr.msgseq), rc);
+ return rc;
+}
+
+
+/* -----------------------------------------------------------
+ * Flood an LSA within its flooding scope.
+ * -----------------------------------------------------------
+ */
+
+/* XXX We can probably use ospf_flood_through instead of this function
+ but then we need the neighbor parameter. If we set nbr to
+ NULL then ospf_flood_through crashes due to dereferencing NULL. */
+
+void
+ospf_apiserver_flood_opaque_lsa (struct ospf_lsa *lsa)
+{
+ assert (lsa);
+
+ switch (lsa->data->type)
+ {
+ case OSPF_OPAQUE_LINK_LSA:
+ /* Increment counters? XXX */
+
+ /* Flood LSA through local network. */
+ ospf_flood_through_area (lsa->area, NULL /*nbr */ , lsa);
+ break;
+ case OSPF_OPAQUE_AREA_LSA:
+ /* Update LSA origination count. */
+ assert (lsa->area);
+ lsa->area->ospf->lsa_originate_count++;
+
+ /* Flood LSA through area. */
+ ospf_flood_through_area (lsa->area, NULL /*nbr */ , lsa);
+ break;
+ case OSPF_OPAQUE_AS_LSA:
+ {
+ struct ospf *ospf;
+
+ ospf = ospf_lookup();
+ assert(ospf);
+
+ /* Increment counters? XXX */
+
+ /* Flood LSA through AS. */
+ ospf_flood_through_as (ospf, NULL /*nbr */ , lsa);
+ break;
+ }
+ }
+}
+
+int
+ospf_apiserver_originate1 (struct ospf_lsa *lsa)
+{
+ struct ospf *ospf;
+
+ ospf = ospf_lookup();
+ assert(ospf);
+
+ /* Install this LSA into LSDB. */
+ if (ospf_lsa_install (ospf, lsa->oi, lsa) == NULL)
+ {
+ zlog_warn ("ospf_apiserver_originate1: ospf_lsa_install failed");
+ return -1;
+ }
+
+ /* Flood LSA within scope */
+
+#ifdef NOTYET
+ /*
+ * NB: Modified version of "ospf_flood_though ()" accepts NULL "inbr"
+ * parameter, and thus it does not cause SIGSEGV error.
+ */
+ ospf_flood_through (NULL /*nbr */ , lsa);
+#else /* NOTYET */
+
+ ospf_apiserver_flood_opaque_lsa (lsa);
+#endif /* NOTYET */
+
+ return 0;
+}
+
+
+/* Opaque LSAs of type 9 on a specific interface can now be
+ originated. Tell clients that registered type 9. */
+int
+ospf_apiserver_lsa9_originator (void *arg)
+{
+ struct ospf_interface *oi;
+
+ oi = (struct ospf_interface *) arg;
+ if (listcount (apiserver_list) > 0) {
+ ospf_apiserver_clients_notify_ready_type9 (oi);
+ }
+ return 0;
+}
+
+int
+ospf_apiserver_lsa10_originator (void *arg)
+{
+ struct ospf_area *area;
+
+ area = (struct ospf_area *) arg;
+ if (listcount (apiserver_list) > 0) {
+ ospf_apiserver_clients_notify_ready_type10 (area);
+ }
+ return 0;
+}
+
+int
+ospf_apiserver_lsa11_originator (void *arg)
+{
+ struct ospf *ospf;
+
+ ospf = (struct ospf *) arg;
+ if (listcount (apiserver_list) > 0) {
+ ospf_apiserver_clients_notify_ready_type11 (ospf);
+ }
+ return 0;
+}
+
+
+/* Periodically refresh opaque LSAs so that they do not expire in
+ other routers. */
+void
+ospf_apiserver_lsa_refresher (struct ospf_lsa *lsa)
+{
+ struct ospf_apiserver *apiserv;
+ struct ospf_lsa *new = NULL;
+ struct ospf * ospf;
+
+ ospf = ospf_lookup();
+ assert(ospf);
+
+ apiserv = lookup_apiserver_by_lsa (lsa);
+ if (!apiserv)
+ {
+ zlog_warn ("ospf_apiserver_lsa_refresher: LSA[%s]: No apiserver?", dump_lsa_key (lsa));
+ lsa->data->ls_age = htons (OSPF_LSA_MAXAGE); /* Flush it anyway. */
+ }
+
+ if (IS_LSA_MAXAGE (lsa))
+ {
+ ospf_opaque_lsa_flush_schedule (lsa);
+ goto out;
+ }
+
+ /* Check if updated version of LSA instance has already prepared. */
+ new = ospf_lsdb_lookup (&apiserv->reserve, lsa);
+ if (!new)
+ {
+ /* This is a periodic refresh, driven by core OSPF mechanism. */
+ new = ospf_apiserver_opaque_lsa_new (lsa->area, lsa->oi, lsa->data);
+ if (!new)
+ {
+ zlog_warn ("ospf_apiserver_lsa_refresher: Cannot create a new LSA?");
+ goto out;
+ }
+ }
+ else
+ {
+ /* This is a forcible refresh, requested by OSPF-API client. */
+ ospf_lsdb_delete (&apiserv->reserve, new);
+ new->lsdb = NULL;
+ }
+
+ /* Increment sequence number */
+ new->data->ls_seqnum = lsa_seqnum_increment (lsa);
+
+ /* New LSA is in same area. */
+ new->area = lsa->area;
+ SET_FLAG (new->flags, OSPF_LSA_SELF);
+
+ /* Install LSA into LSDB. */
+ if (ospf_lsa_install (ospf, new->oi, new) == NULL)
+ {
+ zlog_warn ("ospf_apiserver_lsa_refresher: ospf_lsa_install failed");
+ ospf_lsa_free (new);
+ goto out;
+ }
+
+ /* Flood updated LSA through interface, area or AS */
+
+#ifdef NOTYET
+ ospf_flood_through (NULL /*nbr */ , new);
+#endif /* NOTYET */
+ ospf_apiserver_flood_opaque_lsa (new);
+
+ /* Debug logging. */
+ if (IS_DEBUG_OSPF (lsa, LSA_GENERATE))
+ {
+ zlog_info ("LSA[Type%d:%s]: Refresh Opaque LSA",
+ new->data->type, inet_ntoa (new->data->id));
+ ospf_lsa_header_dump (new->data);
+ }
+
+out:
+ return;
+}
+
+
+/* -----------------------------------------------------------
+ * Followings are functions to delete LSAs
+ * -----------------------------------------------------------
+ */
+
+int
+ospf_apiserver_handle_delete_request (struct ospf_apiserver *apiserv,
+ struct msg *msg)
+{
+ struct msg_delete_request *dmsg;
+ struct ospf_lsa *old;
+ struct ospf_area *area = NULL;
+ struct in_addr id;
+ int lsa_type, opaque_type;
+ int rc = 0;
+ struct ospf * ospf;
+
+ ospf = ospf_lookup();
+ assert(ospf);
+
+ /* Extract opaque LSA from message */
+ dmsg = (struct msg_delete_request *) STREAM_DATA (msg->s);
+
+ /* Lookup area for link-local and area-local opaque LSAs */
+ switch (dmsg->lsa_type)
+ {
+ case OSPF_OPAQUE_LINK_LSA:
+ case OSPF_OPAQUE_AREA_LSA:
+ area = ospf_area_lookup_by_area_id (ospf, dmsg->area_id);
+ if (!area)
+ {
+ zlog_warn ("ospf_apiserver_lsa_delete: unknown area %s",
+ inet_ntoa (dmsg->area_id));
+ rc = OSPF_API_NOSUCHAREA;
+ goto out;
+ }
+ break;
+ case OSPF_OPAQUE_AS_LSA:
+ /* AS-external opaque LSAs have no designated area */
+ area = NULL;
+ break;
+ default:
+ zlog_warn
+ ("ospf_apiserver_lsa_delete: Cannot delete non-opaque LSA type %d",
+ dmsg->lsa_type);
+ rc = OSPF_API_ILLEGALLSATYPE;
+ goto out;
+ }
+
+ /* Check if we registered this opaque type */
+ lsa_type = dmsg->lsa_type;
+ opaque_type = dmsg->opaque_type;
+
+ if (!apiserver_is_opaque_type_registered (apiserv, lsa_type, opaque_type))
+ {
+ zlog_warn ("ospf_apiserver_lsa_delete: LSA-type(%d)/Opaque-type(%d): Not registered", lsa_type, opaque_type);
+ rc = OSPF_API_OPAQUETYPENOTREGISTERED;
+ goto out;
+ }
+
+ /* opaque_id is in network byte order */
+ id.s_addr = htonl (SET_OPAQUE_LSID (dmsg->opaque_type,
+ ntohl (dmsg->opaque_id)));
+
+ /*
+ * Even if the target LSA has once scheduled to flush, it remains in
+ * the LSDB until it is finally handled by the maxage remover thread.
+ * Therefore, the lookup function below may return non-NULL result.
+ */
+ old = ospf_lsa_lookup (area, dmsg->lsa_type, id, ospf->router_id);
+ if (!old)
+ {
+ zlog_warn ("ospf_apiserver_lsa_delete: LSA[Type%d:%s] not in LSDB",
+ dmsg->lsa_type, inet_ntoa (id));
+ rc = OSPF_API_NOSUCHLSA;
+ goto out;
+ }
+
+ /* Schedule flushing of LSA from LSDB */
+ /* NB: Multiple scheduling will produce a warning message, but harmless. */
+ ospf_opaque_lsa_flush_schedule (old);
+
+out:
+
+ /* Send reply back to client including return code */
+ rc = ospf_apiserver_send_reply (apiserv, ntohl (msg->hdr.msgseq), rc);
+ return rc;
+}
+
+/* Flush self-originated opaque LSA */
+int
+apiserver_flush_opaque_type_callback (struct ospf_lsa *lsa,
+ void *p_arg, int int_arg)
+{
+ struct param_t
+ {
+ struct ospf_apiserver *apiserv;
+ u_char lsa_type;
+ u_char opaque_type;
+ }
+ *param;
+
+ /* Sanity check */
+ assert (lsa->data);
+ assert (p_arg);
+ param = (struct param_t *) p_arg;
+
+ /* If LSA matches type and opaque type then delete it */
+ if (IS_LSA_SELF (lsa) && lsa->data->type == param->lsa_type
+ && GET_OPAQUE_TYPE (ntohl (lsa->data->id.s_addr)) == param->opaque_type)
+ {
+ ospf_opaque_lsa_flush_schedule (lsa);
+ }
+ return 0;
+}
+
+/* Delete self-originated opaque LSAs of a given opaque type. This
+ function is called when an application unregisters a given opaque
+ type or a connection to an application closes and all those opaque
+ LSAs need to be flushed the LSDB. */
+void
+ospf_apiserver_flush_opaque_lsa (struct ospf_apiserver *apiserv,
+ u_char lsa_type, u_char opaque_type)
+{
+ struct param_t
+ {
+ struct ospf_apiserver *apiserv;
+ u_char lsa_type;
+ u_char opaque_type;
+ }
+ param;
+ listnode node;
+ struct ospf * ospf;
+
+ ospf = ospf_lookup();
+ assert(ospf);
+
+ /* Set parameter struct. */
+ param.apiserv = apiserv;
+ param.lsa_type = lsa_type;
+ param.opaque_type = opaque_type;
+
+#ifdef ORIGINAL_CODING
+ /* Iterate over all areas */
+ for (node = listhead (ospf_top->areas); node; nextnode (node))
+ {
+ struct ospf_area *area = node->data;
+
+ foreach_lsa (OPAQUE_LINK_LSDB (area), (void *) &param, 0,
+ apiserver_flush_opaque_type_callback);
+ foreach_lsa (OPAQUE_AREA_LSDB (area), (void *) &param, 0,
+ apiserver_flush_opaque_type_callback);
+ }
+
+ /* For AS-external opaque LSAs */
+ if (ospf->lsdb)
+ {
+ foreach_lsa (OPAQUE_AS_LSDB (ospf_top), (void *) &param, 0,
+ apiserver_flush_opaque_type_callback);
+ }
+#else /* ORIGINAL_CODING */
+ switch (lsa_type)
+ {
+ struct route_node *rn;
+ struct ospf_lsa *lsa;
+
+ case OSPF_OPAQUE_LINK_LSA:
+ for (node = listhead (ospf->areas); node; nextnode (node))
+ {
+ struct ospf_area *area = node->data;
+ LSDB_LOOP (OPAQUE_LINK_LSDB (area), rn, lsa)
+ apiserver_flush_opaque_type_callback(lsa, (void *) &param, 0);
+ }
+ break;
+ case OSPF_OPAQUE_AREA_LSA:
+ for (node = listhead (ospf->areas); node; nextnode (node))
+ {
+ struct ospf_area *area = node->data;
+ LSDB_LOOP (OPAQUE_AREA_LSDB (area), rn, lsa)
+ apiserver_flush_opaque_type_callback(lsa, (void *) &param, 0);
+ }
+ break;
+ case OSPF_OPAQUE_AS_LSA:
+ LSDB_LOOP (OPAQUE_LINK_LSDB (ospf), rn, lsa)
+ apiserver_flush_opaque_type_callback(lsa, (void *) &param, 0);
+ break;
+ default:
+ break;
+ }
+ return;
+#endif /* ORIGINAL_CODING */
+}
+
+
+/* -----------------------------------------------------------
+ * Followings are callback functions to handle opaque types
+ * -----------------------------------------------------------
+ */
+
+int
+ospf_apiserver_new_if (struct interface *ifp)
+{
+ struct ospf_interface *oi;
+
+ /* For some strange reason it seems possible that we are invoked
+ with an interface that has no name. This seems to happen during
+ initialization. Return if this happens */
+
+ if (ifp->name[0] == '\0') {
+ /* interface has empty name */
+ zlog_warn ("ospf_apiserver_new_if: interface has no name?");
+ return 0;
+ }
+
+ /* zlog_warn for debugging */
+ zlog_warn ("ospf_apiserver_new_if");
+ zlog_warn ("ifp name=%s status=%d index=%d", ifp->name, ifp->status,
+ ifp->ifindex);
+
+ if (ifp->name[0] == '\0') {
+ /* interface has empty name */
+ zlog_warn ("ospf_apiserver_new_if: interface has no name?");
+ return 0;
+ }
+
+ oi = ospf_apiserver_if_lookup_by_ifp (ifp);
+
+ if (!oi) {
+ /* This interface is known to Zebra but not to OSPF daemon yet. */
+ zlog_warn ("ospf_apiserver_new_if: interface %s not known to OSPFd?",
+ ifp->name);
+ return 0;
+ }
+
+ assert (oi);
+
+ /* New interface added to OSPF, tell clients about it */
+ if (listcount (apiserver_list) > 0) {
+ ospf_apiserver_clients_notify_new_if (oi);
+ }
+ return 0;
+}
+
+int
+ospf_apiserver_del_if (struct interface *ifp)
+{
+ struct ospf_interface *oi;
+
+ /* zlog_warn for debugging */
+ zlog_warn ("ospf_apiserver_del_if");
+ zlog_warn ("ifp name=%s status=%d index=%d\n", ifp->name, ifp->status,
+ ifp->ifindex);
+
+ oi = ospf_apiserver_if_lookup_by_ifp (ifp);
+
+ if (!oi) {
+ /* This interface is known to Zebra but not to OSPF daemon
+ anymore. No need to tell clients about it */
+ return 0;
+ }
+
+ /* Interface deleted, tell clients about it */
+ if (listcount (apiserver_list) > 0) {
+ ospf_apiserver_clients_notify_del_if (oi);
+ }
+ return 0;
+}
+
+void
+ospf_apiserver_ism_change (struct ospf_interface *oi, int old_state)
+{
+ /* Tell clients about interface change */
+
+ /* zlog_warn for debugging */
+ zlog_warn ("ospf_apiserver_ism_change");
+ if (listcount (apiserver_list) > 0) {
+ ospf_apiserver_clients_notify_ism_change (oi);
+ }
+
+ zlog_warn ("oi->ifp->name=%s", oi->ifp->name);
+ zlog_warn ("old_state=%d", old_state);
+ zlog_warn ("oi->state=%d", oi->state);
+}
+
+void
+ospf_apiserver_nsm_change (struct ospf_neighbor *nbr, int old_status)
+{
+ /* Neighbor status changed, tell clients about it */
+ zlog_warn ("ospf_apiserver_nsm_change");
+ if (listcount (apiserver_list) > 0) {
+ ospf_apiserver_clients_notify_nsm_change (nbr);
+ }
+}
+
+void
+ospf_apiserver_show_info (struct vty *vty, struct ospf_lsa *lsa)
+{
+ struct opaque_lsa
+ {
+ struct lsa_header header;
+ u_char data[1]; /* opaque data have variable length. This is start
+ address */
+ };
+ struct opaque_lsa *olsa;
+ int opaquelen;
+
+ olsa = (struct opaque_lsa *) lsa->data;
+
+ if (VALID_OPAQUE_INFO_LEN (lsa->data))
+ {
+ opaquelen = ntohs (lsa->data->length) - OSPF_LSA_HEADER_SIZE;
+ }
+ else
+ {
+ opaquelen = 0;
+ }
+
+ /* Output information about opaque LSAs */
+ if (vty != NULL)
+ {
+ int i;
+ vty_out (vty, " Added using OSPF API: %u octets of opaque data %s%s",
+ opaquelen,
+ VALID_OPAQUE_INFO_LEN (lsa->data) ? "" : "(Invalid length?)",
+ VTY_NEWLINE);
+ vty_out (vty, " Opaque data: ");
+
+ for (i = 0; i < opaquelen; i++)
+ {
+ vty_out (vty, "0x%x ", olsa->data[i]);
+ }
+ vty_out (vty, "%s", VTY_NEWLINE);
+ }
+ else
+ {
+ int i;
+ zlog_info (" Added using OSPF API: %u octets of opaque data %s",
+ opaquelen,
+ VALID_OPAQUE_INFO_LEN (lsa->
+ data) ? "" : "(Invalid length?)");
+ zlog_info (" Opaque data: ");
+
+ for (i = 0; i < opaquelen; i++)
+ {
+ zlog_info ("0x%x ", olsa->data[i]);
+ }
+ zlog_info ("\n");
+ }
+ return;
+}
+
+/* -----------------------------------------------------------
+ * Followings are functions to notify clients about events
+ * -----------------------------------------------------------
+ */
+
+/* Send a message to all clients. This is useful for messages
+ that need to be notified to all clients (such as interface
+ changes) */
+
+void
+ospf_apiserver_clients_notify_all (struct msg *msg)
+{
+ listnode node;
+
+ /* Send message to all clients */
+ for (node = listhead (apiserver_list); node; nextnode (node))
+ {
+ struct ospf_apiserver *apiserv =
+ (struct ospf_apiserver *) getdata (node);
+
+ ospf_apiserver_send_msg (apiserv, msg);
+ }
+}
+
+/* An interface is now ready to accept opaque LSAs. Notify all
+ clients that registered to use this opaque type */
+void
+ospf_apiserver_clients_notify_ready_type9 (struct ospf_interface *oi)
+{
+ listnode node;
+ struct msg *msg;
+
+ assert (oi);
+ if (!oi->address)
+ {
+ zlog_warn ("Interface has no address?");
+ return;
+ }
+
+ if (!ospf_apiserver_is_ready_type9 (oi))
+ {
+ zlog_warn ("Interface not ready for type 9?");
+ return;
+ }
+
+ for (node = listhead (apiserver_list); node; nextnode (node))
+ {
+ struct ospf_apiserver *apiserv =
+ (struct ospf_apiserver *) getdata (node);
+ listnode n2;
+
+ for (n2 = listhead (apiserv->opaque_types); n2; nextnode (n2))
+ {
+ struct registered_opaque_type *r =
+ (struct registered_opaque_type *) getdata (n2);
+ if (r->lsa_type == OSPF_OPAQUE_LINK_LSA)
+ {
+ msg = new_msg_ready_notify (0, OSPF_OPAQUE_LINK_LSA,
+ r->opaque_type,
+ oi->address->u.prefix4);
+ if (!msg)
+ {
+ zlog_warn
+ ("ospf_apiserver_clients_notify_ready_type9: new_msg_ready_notify failed");
+#ifdef NOTYET
+ /* Cannot allocate new message. What should we do? */
+ ospf_apiserver_free (apiserv);
+#endif
+ goto out;
+ }
+
+ ospf_apiserver_send_msg (apiserv, msg);
+ msg_free (msg);
+ }
+ }
+ }
+
+out:
+ return;
+}
+
+void
+ospf_apiserver_clients_notify_ready_type10 (struct ospf_area *area)
+{
+ listnode node;
+ struct msg *msg;
+
+ assert (area);
+
+ if (!ospf_apiserver_is_ready_type10 (area))
+ {
+ zlog_warn ("Area not ready for type 10?");
+ return;
+ }
+
+ for (node = listhead (apiserver_list); node; nextnode (node))
+ {
+ struct ospf_apiserver *apiserv =
+ (struct ospf_apiserver *) getdata (node);
+ listnode n2;
+
+ for (n2 = listhead (apiserv->opaque_types); n2; nextnode (n2))
+ {
+ struct registered_opaque_type *r =
+ (struct registered_opaque_type *) getdata (n2);
+ if (r->lsa_type == OSPF_OPAQUE_AREA_LSA)
+ {
+ msg = new_msg_ready_notify (0, OSPF_OPAQUE_AREA_LSA,
+ r->opaque_type, area->area_id);
+ if (!msg)
+ {
+ zlog_warn
+ ("ospf_apiserver_clients_notify_ready_type10: new_msg_ready_nofity failed");
+#ifdef NOTYET
+ /* Cannot allocate new message. What should we do? */
+ ospf_apiserver_free (apiserv);
+#endif
+ goto out;
+ }
+
+ ospf_apiserver_send_msg (apiserv, msg);
+ msg_free (msg);
+ }
+ }
+ }
+
+out:
+ return;
+}
+
+
+void
+ospf_apiserver_clients_notify_ready_type11 (struct ospf *top)
+{
+ listnode node;
+ struct msg *msg;
+ struct in_addr id_null = { 0L };
+
+ assert (top);
+
+ if (!ospf_apiserver_is_ready_type11 (top))
+ {
+ zlog_warn ("AS not ready for type 11?");
+ return;
+ }
+
+ for (node = listhead (apiserver_list); node; nextnode (node))
+ {
+ struct ospf_apiserver *apiserv =
+ (struct ospf_apiserver *) getdata (node);
+ listnode n2;
+
+ for (n2 = listhead (apiserv->opaque_types); n2; nextnode (n2))
+ {
+ struct registered_opaque_type *r =
+ (struct registered_opaque_type *) getdata (n2);
+ if (r->lsa_type == OSPF_OPAQUE_AS_LSA)
+ {
+ msg = new_msg_ready_notify (0, OSPF_OPAQUE_AS_LSA,
+ r->opaque_type, id_null);
+ if (!msg)
+ {
+ zlog_warn
+ ("ospf_apiserver_clients_notify_ready_type11: new_msg_ready_notify failed");
+#ifdef NOTYET
+ /* Cannot allocate new message. What should we do? */
+ ospf_apiserver_free (apiserv);
+#endif
+ goto out;
+ }
+
+ ospf_apiserver_send_msg (apiserv, msg);
+ msg_free (msg);
+ }
+ }
+ }
+
+out:
+ return;
+}
+
+void
+ospf_apiserver_clients_notify_new_if (struct ospf_interface *oi)
+{
+ struct msg *msg;
+
+ msg = new_msg_new_if (0, oi->address->u.prefix4, oi->area->area_id);
+ if (msg != NULL)
+ {
+ ospf_apiserver_clients_notify_all (msg);
+ msg_free (msg);
+ }
+}
+
+void
+ospf_apiserver_clients_notify_del_if (struct ospf_interface *oi)
+{
+ struct msg *msg;
+
+ msg = new_msg_del_if (0, oi->address->u.prefix4);
+ if (msg != NULL)
+ {
+ ospf_apiserver_clients_notify_all (msg);
+ msg_free (msg);
+ }
+}
+
+void
+ospf_apiserver_clients_notify_ism_change (struct ospf_interface *oi)
+{
+ struct msg *msg;
+ struct in_addr ifaddr = { 0L };
+ struct in_addr area_id = { 0L };
+
+ assert (oi);
+ assert (oi->ifp);
+
+ if (oi->address)
+ {
+ ifaddr = oi->address->u.prefix4;
+ }
+ if (oi->area)
+ {
+ area_id = oi->area->area_id;
+ }
+
+ msg = new_msg_ism_change (0, ifaddr, area_id, oi->ifp->status);
+ if (!msg)
+ {
+ zlog_warn ("apiserver_clients_notify_ism_change: msg_new failed");
+ return;
+ }
+
+ ospf_apiserver_clients_notify_all (msg);
+ msg_free (msg);
+}
+
+void
+ospf_apiserver_clients_notify_nsm_change (struct ospf_neighbor *nbr)
+{
+ struct msg *msg;
+ struct in_addr ifaddr = { 0L };
+ struct in_addr nbraddr = { 0L };
+
+ assert (nbr);
+
+ if (nbr->oi)
+ {
+ ifaddr = nbr->oi->address->u.prefix4;
+ }
+
+ nbraddr = nbr->address.u.prefix4;
+
+ msg = new_msg_nsm_change (0, ifaddr, nbraddr, nbr->router_id, nbr->state);
+ if (!msg)
+ {
+ zlog_warn ("apiserver_clients_notify_nsm_change: msg_new failed");
+ return;
+ }
+
+ ospf_apiserver_clients_notify_all (msg);
+ msg_free (msg);
+}
+
+void
+apiserver_clients_lsa_change_notify (u_char msgtype, struct ospf_lsa *lsa)
+{
+ struct msg *msg;
+ listnode node;
+
+ /* Default area for AS-External and Opaque11 LSAs */
+ struct in_addr area_id = { 0L };
+
+ /* Default interface for non Opaque9 LSAs */
+ struct in_addr ifaddr = { 0L };
+
+ if (lsa->area)
+ {
+ area_id = lsa->area->area_id;
+ }
+ if (lsa->data->type == OSPF_OPAQUE_LINK_LSA)
+ {
+ assert (lsa->oi);
+ ifaddr = lsa->oi->address->u.prefix4;
+ }
+
+ /* Prepare message that can be sent to clients that have a matching
+ filter */
+ msg = new_msg_lsa_change_notify (msgtype, 0L, /* no sequence number */
+ ifaddr, area_id,
+ lsa->flags & OSPF_LSA_SELF, lsa->data);
+ if (!msg)
+ {
+ zlog_warn ("apiserver_clients_lsa_change_notify: msg_new failed");
+ return;
+ }
+
+ /* Now send message to all clients with a matching filter */
+ for (node = listhead (apiserver_list); node; nextnode (node))
+ {
+ struct ospf_apiserver *apiserv = (struct ospf_apiserver *) node->data;
+ struct lsa_filter_type *filter;
+ u_int16_t mask;
+ u_int32_t *area;
+ int i;
+
+ /* Check filter for this client. */
+ filter = apiserv->filter;
+
+ /* Check area IDs in case of non AS-E LSAs.
+ * If filter has areas (num_areas > 0),
+ * then one of the areas must match the area ID of this LSA. */
+
+ i = filter->num_areas;
+ if ((lsa->data->type == OSPF_AS_EXTERNAL_LSA) ||
+ (lsa->data->type == OSPF_OPAQUE_AS_LSA))
+ {
+ i = 0;
+ }
+
+ if (i > 0)
+ {
+ area = (u_int32_t *) (filter + 1);
+ while (i)
+ {
+ if (*area == area_id.s_addr)
+ {
+ break;
+ }
+ i--;
+ area++;
+ }
+ }
+ else
+ {
+ i = 1;
+ }
+
+ if (i > 0)
+ {
+ /* Area match. Check LSA type. */
+ mask = ntohs (filter->typemask);
+
+ if (mask & Power2[lsa->data->type])
+ {
+ /* Type also matches. Check origin. */
+ if ((filter->origin == ANY_ORIGIN) ||
+ (filter->origin == IS_LSA_SELF (lsa)))
+ {
+ ospf_apiserver_send_msg (apiserv, msg);
+ }
+ }
+ }
+ }
+ /* Free message since it is not used anymore */
+ msg_free (msg);
+}
+
+
+/* -------------------------------------------------------------
+ * Followings are hooks invoked when LSAs are updated or deleted
+ * -------------------------------------------------------------
+ */
+
+
+int
+apiserver_notify_clients_lsa (u_char msgtype, struct ospf_lsa *lsa)
+{
+ struct msg *msg;
+ /* default area for AS-External and Opaque11 LSAs */
+ struct in_addr area_id = { 0L };
+
+ /* default interface for non Opaque9 LSAs */
+ struct in_addr ifaddr = { 0L };
+
+ /* Only notify this update if the LSA's age is smaller than
+ MAXAGE. Otherwise clients would see LSA updates with max age just
+ before they are deleted from the LSDB. LSA delete messages have
+ MAXAGE too but should not be filtered. */
+ if (IS_LSA_MAXAGE(lsa) && (msgtype == MSG_LSA_UPDATE_NOTIFY)) {
+ return 0;
+ }
+
+ if (lsa->area)
+ {
+ area_id = lsa->area->area_id;
+ }
+ if (lsa->data->type == OSPF_OPAQUE_LINK_LSA)
+ {
+ ifaddr = lsa->oi->address->u.prefix4;
+ }
+ msg = new_msg_lsa_change_notify (msgtype, 0L, /* no sequence number */
+ ifaddr, area_id,
+ lsa->flags & OSPF_LSA_SELF, lsa->data);
+ if (!msg)
+ {
+ zlog_warn ("notify_clients_lsa: msg_new failed");
+ return -1;
+ }
+ /* Notify all clients that new LSA is added/updated */
+ apiserver_clients_lsa_change_notify (msgtype, lsa);
+
+ /* Clients made their own copies of msg so we can free msg here */
+ msg_free (msg);
+
+ return 0;
+}
+
+int
+ospf_apiserver_lsa_update (struct ospf_lsa *lsa)
+{
+ return apiserver_notify_clients_lsa (MSG_LSA_UPDATE_NOTIFY, lsa);
+}
+
+int
+ospf_apiserver_lsa_delete (struct ospf_lsa *lsa)
+{
+ return apiserver_notify_clients_lsa (MSG_LSA_DELETE_NOTIFY, lsa);
+}
+
+#endif /* SUPPORT_OSPF_API */
+
diff --git a/ospfd/ospf_apiserver.h b/ospfd/ospf_apiserver.h
new file mode 100644
index 00000000..c7145782
--- /dev/null
+++ b/ospfd/ospf_apiserver.h
@@ -0,0 +1,201 @@
+/*
+ * Server side of OSPF API.
+ * Copyright (C) 2001, 2002 Ralph Keller
+ *
+ * This file is part of GNU Zebra.
+ *
+ * GNU Zebra is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation; either version 2, or (at your
+ * option) any later version.
+ *
+ * GNU Zebra is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Zebra; see the file COPYING. If not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef _OSPF_APISERVER_H
+#define _OSPF_APISERVER_H
+
+/* MTYPE definition is not reflected to "memory.h". */
+#define MTYPE_OSPF_APISERVER MTYPE_TMP
+#define MTYPE_OSPF_APISERVER_MSGFILTER MTYPE_TMP
+
+/* List of opaque types that application registered */
+struct registered_opaque_type
+{
+ u_char lsa_type;
+ u_char opaque_type;
+};
+
+
+/* Server instance for each accepted client connection. */
+struct ospf_apiserver
+{
+ /* Socket connections for synchronous commands and asynchronous
+ notifications */
+ int fd_sync; /* synchronous requests */
+ struct sockaddr_in peer_sync;
+
+ int fd_async; /* asynchronous notifications */
+ struct sockaddr_in peer_async;
+
+ /* List of all opaque types that application registers to use. Using
+ a single connection with the OSPF daemon, multiple
+ <lsa,opaque_type> pairs can be registered. However, each
+ combination can only be registered once by all applications. */
+ list opaque_types; /* of type registered_opaque_type */
+
+ /* Temporary storage for LSA instances to be refreshed. */
+ struct ospf_lsdb reserve;
+
+ /* filter for LSA update/delete notifies */
+ struct lsa_filter_type *filter;
+
+ /* Fifo buffers for outgoing messages */
+ struct msg_fifo *out_sync_fifo;
+ struct msg_fifo *out_async_fifo;
+
+ /* Read and write threads */
+ struct thread *t_sync_read;
+#ifdef USE_ASYNC_READ
+ struct thread *t_async_read;
+#endif /* USE_ASYNC_READ */
+ struct thread *t_sync_write;
+ struct thread *t_async_write;
+};
+
+enum event
+{
+ OSPF_APISERVER_ACCEPT,
+ OSPF_APISERVER_SYNC_READ,
+#ifdef USE_ASYNC_READ
+ OSPF_APISERVER_ASYNC_READ,
+#endif /* USE_ASYNC_READ */
+ OSPF_APISERVER_SYNC_WRITE,
+ OSPF_APISERVER_ASYNC_WRITE
+};
+
+/* -----------------------------------------------------------
+ * Followings are functions to manage client connections.
+ * -----------------------------------------------------------
+ */
+
+unsigned short ospf_apiserver_getport (void);
+int ospf_apiserver_init (void);
+void ospf_apiserver_term (void);
+struct ospf_apiserver *ospf_apiserver_new (int fd_sync, int fd_async);
+void ospf_apiserver_free (struct ospf_apiserver *apiserv);
+void ospf_apiserver_event (enum event event, int fd,
+ struct ospf_apiserver *apiserv);
+int ospf_apiserver_serv_sock_family (unsigned short port, int family);
+int ospf_apiserver_accept (struct thread *thread);
+int ospf_apiserver_read (struct thread *thread);
+int ospf_apiserver_sync_write (struct thread *thread);
+int ospf_apiserver_async_write (struct thread *thread);
+int ospf_apiserver_send_reply (struct ospf_apiserver *apiserv,
+ u_int32_t seqnr, u_char rc);
+
+/* -----------------------------------------------------------
+ * Followings are message handler functions
+ * -----------------------------------------------------------
+ */
+
+int ospf_apiserver_lsa9_originator (void *arg);
+int ospf_apiserver_lsa10_originator (void *arg);
+int ospf_apiserver_lsa11_originator (void *arg);
+
+void ospf_apiserver_clients_notify_all (struct msg *msg);
+
+void ospf_apiserver_clients_notify_ready_type9 (struct ospf_interface *oi);
+void ospf_apiserver_clients_notify_ready_type10 (struct ospf_area *area);
+void ospf_apiserver_clients_notify_ready_type11 (struct ospf *top);
+
+void ospf_apiserver_clients_notify_new_if (struct ospf_interface *oi);
+void ospf_apiserver_clients_notify_del_if (struct ospf_interface *oi);
+void ospf_apiserver_clients_notify_ism_change (struct ospf_interface *oi);
+void ospf_apiserver_clients_notify_nsm_change (struct ospf_neighbor *nbr);
+
+int ospf_apiserver_is_ready_type9 (struct ospf_interface *oi);
+int ospf_apiserver_is_ready_type10 (struct ospf_area *area);
+int ospf_apiserver_is_ready_type11 (struct ospf *ospf);
+
+void ospf_apiserver_notify_ready_type9 (struct ospf_apiserver *apiserv);
+void ospf_apiserver_notify_ready_type10 (struct ospf_apiserver *apiserv);
+void ospf_apiserver_notify_ready_type11 (struct ospf_apiserver *apiserv);
+
+int ospf_apiserver_handle_msg (struct ospf_apiserver *apiserv,
+ struct msg *msg);
+int ospf_apiserver_handle_register_opaque_type (struct ospf_apiserver
+ *apiserv, struct msg *msg);
+int ospf_apiserver_handle_unregister_opaque_type (struct ospf_apiserver
+ *apiserv, struct msg *msg);
+int ospf_apiserver_handle_register_event (struct ospf_apiserver *apiserv,
+ struct msg *msg);
+int ospf_apiserver_handle_originate_request (struct ospf_apiserver *apiserv,
+ struct msg *msg);
+int ospf_apiserver_handle_delete_request (struct ospf_apiserver *apiserv,
+ struct msg *msg);
+int ospf_apiserver_handle_sync_lsdb (struct ospf_apiserver *apiserv,
+ struct msg *msg);
+
+
+/* -----------------------------------------------------------
+ * Followings are functions for LSA origination/deletion
+ * -----------------------------------------------------------
+ */
+
+int ospf_apiserver_register_opaque_type (struct ospf_apiserver *apiserver,
+ u_char lsa_type, u_char opaque_type);
+int ospf_apiserver_unregister_opaque_type (struct ospf_apiserver *apiserver,
+ u_char lsa_type,
+ u_char opaque_type);
+struct ospf_lsa *ospf_apiserver_opaque_lsa_new (struct ospf_area *area,
+ struct ospf_interface *oi,
+ struct lsa_header *protolsa);
+struct ospf_interface *ospf_apiserver_if_lookup_by_addr (struct in_addr
+ address);
+struct ospf_interface *ospf_apiserver_if_lookup_by_ifp (struct interface
+ *ifp);
+int ospf_apiserver_originate1 (struct ospf_lsa *lsa);
+void ospf_apiserver_flood_opaque_lsa (struct ospf_lsa *lsa);
+
+
+/* -----------------------------------------------------------
+ * Followings are callback functions to handle opaque types
+ * -----------------------------------------------------------
+ */
+
+int ospf_apiserver_new_if (struct interface *ifp);
+int ospf_apiserver_del_if (struct interface *ifp);
+void ospf_apiserver_ism_change (struct ospf_interface *oi, int old_status);
+void ospf_apiserver_nsm_change (struct ospf_neighbor *nbr, int old_status);
+void ospf_apiserver_config_write_router (struct vty *vty);
+void ospf_apiserver_config_write_if (struct vty *vty, struct interface *ifp);
+void ospf_apiserver_show_info (struct vty *vty, struct ospf_lsa *lsa);
+int ospf_ospf_apiserver_lsa_originator (void *arg);
+void ospf_apiserver_lsa_refresher (struct ospf_lsa *lsa);
+void ospf_apiserver_flush_opaque_lsa (struct ospf_apiserver *apiserv,
+ u_char lsa_type, u_char opaque_type);
+
+/* -----------------------------------------------------------
+ * Followings are hooks when LSAs are updated or deleted
+ * -----------------------------------------------------------
+ */
+
+
+/* Hooks that are invoked from ospf opaque module */
+
+int ospf_apiserver_lsa_update (struct ospf_lsa *lsa);
+int ospf_apiserver_lsa_delete (struct ospf_lsa *lsa);
+
+void ospf_apiserver_clients_lsa_change_notify (u_char msgtype,
+ struct ospf_lsa *lsa);
+
+#endif /* _OSPF_APISERVER_H */
diff --git a/ospfd/ospf_asbr.c b/ospfd/ospf_asbr.c
index fda32ae1..d13bbc43 100644
--- a/ospfd/ospf_asbr.c
+++ b/ospfd/ospf_asbr.c
@@ -43,16 +43,15 @@
#include "ospfd/ospf_route.h"
#include "ospfd/ospf_zebra.h"
#include "ospfd/ospf_dump.h"
-
/* Remove external route. */
void
-ospf_external_route_remove (struct ospf *ospf, struct prefix_ipv4 *p)
+ospf_external_route_remove (struct prefix_ipv4 *p)
{
struct route_node *rn;
struct ospf_route *or;
- rn = route_node_lookup (ospf->old_external_route, (struct prefix *) p);
+ rn = route_node_lookup (ospf_top->old_external_route, (struct prefix *) p);
if (rn)
if ((or = rn->info))
{
@@ -77,12 +76,11 @@ ospf_external_route_remove (struct ospf *ospf, struct prefix_ipv4 *p)
/* Lookup external route. */
struct ospf_route *
-ospf_external_route_lookup (struct ospf *ospf,
- struct prefix_ipv4 *p)
+ospf_external_route_lookup (struct prefix_ipv4 *p)
{
struct route_node *rn;
- rn = route_node_lookup (ospf->old_external_route, (struct prefix *) p);
+ rn = route_node_lookup (ospf_top->old_external_route, (struct prefix *) p);
if (rn)
{
route_unlock_node (rn);
@@ -205,15 +203,14 @@ ospf_external_info_lookup (u_char type, struct prefix_ipv4 *p)
}
struct ospf_lsa *
-ospf_external_info_find_lsa (struct ospf *ospf,
- struct prefix_ipv4 *p)
+ospf_external_info_find_lsa (struct prefix_ipv4 *p)
{
struct ospf_lsa *lsa;
struct as_external_lsa *al;
struct in_addr mask, id;
- lsa = ospf_lsdb_lookup_by_id (ospf->lsdb, OSPF_AS_EXTERNAL_LSA,
- p->prefix, ospf->router_id);
+ lsa = ospf_lsdb_lookup_by_id (ospf_top->lsdb, OSPF_AS_EXTERNAL_LSA,
+ p->prefix, ospf_top->router_id);
if (!lsa)
return NULL;
@@ -225,8 +222,8 @@ ospf_external_info_find_lsa (struct ospf *ospf,
if (mask.s_addr != al->mask.s_addr)
{
id.s_addr = p->prefix.s_addr | (~mask.s_addr);
- lsa = ospf_lsdb_lookup_by_id (ospf->lsdb, OSPF_AS_EXTERNAL_LSA,
- id, ospf->router_id);
+ lsa = ospf_lsdb_lookup_by_id (ospf_top->lsdb, OSPF_AS_EXTERNAL_LSA,
+ id, ospf_top->router_id);
if (!lsa)
return NULL;
}
@@ -237,7 +234,7 @@ ospf_external_info_find_lsa (struct ospf *ospf,
/* Update ASBR status. */
void
-ospf_asbr_status_update (struct ospf *ospf, u_char status)
+ospf_asbr_status_update (u_char status)
{
zlog_info ("ASBR[Status:%d]: Update", status);
@@ -245,49 +242,46 @@ ospf_asbr_status_update (struct ospf *ospf, u_char status)
if (status)
{
/* Already ASBR. */
- if (IS_OSPF_ASBR (ospf))
+ if (OSPF_IS_ASBR)
{
zlog_info ("ASBR[Status:%d]: Already ASBR", status);
return;
}
- SET_FLAG (ospf->flags, OSPF_FLAG_ASBR);
+ SET_FLAG (ospf_top->flags, OSPF_FLAG_ASBR);
}
else
{
/* Already non ASBR. */
- if (! IS_OSPF_ASBR (ospf))
+ if (! OSPF_IS_ASBR)
{
zlog_info ("ASBR[Status:%d]: Already non ASBR", status);
return;
}
- UNSET_FLAG (ospf->flags, OSPF_FLAG_ASBR);
+ UNSET_FLAG (ospf_top->flags, OSPF_FLAG_ASBR);
}
/* Transition from/to status ASBR, schedule timer. */
- ospf_spf_calculate_schedule (ospf);
- OSPF_TIMER_ON (ospf->t_router_lsa_update,
+ ospf_spf_calculate_schedule ();
+ OSPF_TIMER_ON (ospf_top->t_router_lsa_update,
ospf_router_lsa_update_timer, OSPF_LSA_UPDATE_DELAY);
}
void
ospf_redistribute_withdraw (u_char type)
{
- struct ospf *ospf;
struct route_node *rn;
struct external_info *ei;
- ospf = ospf_lookup ();
-
/* Delete external info for specified type. */
if (EXTERNAL_INFO (type))
for (rn = route_top (EXTERNAL_INFO (type)); rn; rn = route_next (rn))
if ((ei = rn->info))
- if (ospf_external_info_find_lsa (ospf, &ei->p))
+ if (ospf_external_info_find_lsa (&ei->p))
{
if (is_prefix_default (&ei->p) &&
- ospf->default_originate != DEFAULT_ORIGINATE_NONE)
+ ospf_top->default_originate != DEFAULT_ORIGINATE_NONE)
continue;
- ospf_external_lsa_flush (ospf, type, &ei->p, ei->ifindex, ei->nexthop);
+ ospf_external_lsa_flush (type, &ei->p, ei->ifindex, ei->nexthop);
ospf_external_info_delete (type, ei->p);
}
}
diff --git a/ospfd/ospf_asbr.h b/ospfd/ospf_asbr.h
index ddfa9fae..f368246d 100644
--- a/ospfd/ospf_asbr.h
+++ b/ospfd/ospf_asbr.h
@@ -54,23 +54,22 @@ struct external_info
#define OSPF_ASBR_CHECK_DELAY 30
-void ospf_external_route_remove (struct ospf *, struct prefix_ipv4 *);
+void ospf_external_route_remove (struct prefix_ipv4 *p);
struct external_info *ospf_external_info_new (u_char);
-void ospf_reset_route_map_set_values (struct route_map_set_values *);
-int ospf_route_map_set_compare (struct route_map_set_values *,
- struct route_map_set_values *);
+void ospf_reset_route_map_set_values (struct route_map_set_values *values);
+int ospf_route_map_set_compare (struct route_map_set_values *values1,
+ struct route_map_set_values *values2);
struct external_info *ospf_external_info_add (u_char, struct prefix_ipv4,
unsigned int, struct in_addr);
void ospf_external_info_delete (u_char, struct prefix_ipv4);
struct external_info *ospf_external_info_lookup (u_char, struct prefix_ipv4 *);
-void ospf_asbr_status_update (struct ospf *, u_char);
+void ospf_asbr_status_update (u_char);
void ospf_redistribute_withdraw (u_char);
void ospf_asbr_check ();
void ospf_schedule_asbr_check ();
void ospf_asbr_route_install_lsa (struct ospf_lsa *);
-struct ospf_lsa *ospf_external_info_find_lsa (struct ospf *,
- struct prefix_ipv4 *p);
+struct ospf_lsa *ospf_external_info_find_lsa (struct prefix_ipv4 *p);
#endif /* _ZEBRA_OSPF_ASBR_H */
diff --git a/ospfd/ospf_ase.c b/ospfd/ospf_ase.c
index b28626db..5605933b 100644
--- a/ospfd/ospf_ase.c
+++ b/ospfd/ospf_ase.c
@@ -155,7 +155,7 @@ ospf_ase_forward_address_check (struct ospf *ospf, struct in_addr fwd_addr)
for (ifn = listhead (ospf->oiflist); ifn; nextnode (ifn))
if ((oi = getdata (ifn)) != NULL)
- if (if_is_up (oi->ifp))
+ if (if_is_operative (oi->ifp))
if (oi->type != OSPF_IFTYPE_VIRTUALLINK)
if (IPV4_ADDR_SAME (&oi->address->u.prefix4, &fwd_addr))
return 0;
@@ -644,6 +644,10 @@ ospf_ase_calculate_timer (struct thread *t)
LSDB_LOOP (NSSA_LSDB (area), rn, lsa)
ospf_ase_calculate_route (ospf, lsa);
}
+ /* kevinm: And add the NSSA routes in ospf_top */
+ LSDB_LOOP (NSSA_LSDB (ospf),rn,lsa)
+ ospf_ase_calculate_route(ospf,lsa);
+
#endif /* HAVE_NSSA */
/* Compare old and new external routing table and install the
diff --git a/ospfd/ospf_ase.h b/ospfd/ospf_ase.h
index d2fee1a1..f403e26d 100644
--- a/ospfd/ospf_ase.h
+++ b/ospfd/ospf_ase.h
@@ -24,18 +24,18 @@
#define _ZEBRA_OSPF_ASE_H
-struct ospf_route *ospf_find_asbr_route (struct ospf *, struct route_table *,
+struct ospf_route *ospf_find_asbr_route (struct route_table *,
struct prefix_ipv4 *);
struct ospf_route *ospf_find_asbr_route_through_area(struct route_table *,
struct prefix_ipv4 *,
struct ospf_area *);
-int ospf_ase_calculate_route (struct ospf *, struct ospf_lsa *);
-void ospf_ase_calculate_schedule (struct ospf *);
-void ospf_ase_calculate_timer_add (struct ospf *);
+int ospf_ase_calculate_route (struct ospf_lsa *, void *, int);
+void ospf_ase_calculate_schedule ();
+void ospf_ase_calculate_timer_add ();
void ospf_ase_external_lsas_finish (struct route_table *);
-void ospf_ase_incremental_update (struct ospf *, struct ospf_lsa *);
+void ospf_ase_incremental_update (struct ospf_lsa *, struct ospf *);
void ospf_ase_register_external_lsa (struct ospf_lsa *, struct ospf *);
void ospf_ase_unregister_external_lsa (struct ospf_lsa *, struct ospf *);
diff --git a/ospfd/ospf_dump.c b/ospfd/ospf_dump.c
index da2e0973..f563fb89 100644
--- a/ospfd/ospf_dump.c
+++ b/ospfd/ospf_dump.c
@@ -1470,6 +1470,8 @@ DEFUN (show_debugging_ospf,
if (IS_DEBUG_OSPF (zebra, ZEBRA_REDISTRIBUTE))
vty_out (vty, " OSPF Zebra redistribute debugging is on%s", VTY_NEWLINE);
}
+ if (IS_DEBUG_OSPF (nssa, NSSA) == OSPF_DEBUG_NSSA)
+ vty_out (vty, " OSPF NSSA debugging is on%s", VTY_NEWLINE);
return CMD_SUCCESS;
}
diff --git a/ospfd/ospf_flood.c b/ospfd/ospf_flood.c
index cf88761e..1c8cbbf5 100644
--- a/ospfd/ospf_flood.c
+++ b/ospfd/ospf_flood.c
@@ -654,6 +654,7 @@ ospf_flood_through_as (struct ospf *ospf, struct ospf_neighbor *inbr,
/* Type-7, flood NSSA area */
if (lsa->data->type == OSPF_AS_NSSA_LSA
&& area == lsa->area)
+ /* We will send it. */
continue_flag = 0;
else
continue_flag = 1; /* Skip this NSSA area for Type-5's et al */
diff --git a/ospfd/ospf_flood.h b/ospfd/ospf_flood.h
index 2e3f0832..1a6ab979 100644
--- a/ospfd/ospf_flood.h
+++ b/ospfd/ospf_flood.h
@@ -20,17 +20,14 @@
* Boston, MA 02111-1307, USA.
*/
-#ifndef _ZEBRA_OSPF_FLOOD_H
-#define _ZEBRA_OSPF_FLOOD_H
+#ifndef _ZEBRA_OSPF_FLOODING_H
+#define _ZEBRA_OSPF_FLOODING_H
-int ospf_flood (struct ospf *, struct ospf_neighbor *, struct ospf_lsa *,
- struct ospf_lsa *);
-int ospf_flood_through (struct ospf *, struct ospf_neighbor *,
- struct ospf_lsa *);
+int ospf_flood (struct ospf_neighbor *, struct ospf_lsa *, struct ospf_lsa *);
+int ospf_flood_through (struct ospf_neighbor *, struct ospf_lsa *);
int ospf_flood_through_area (struct ospf_area *, struct ospf_neighbor *,
struct ospf_lsa *);
-int ospf_flood_through_as (struct ospf *, struct ospf_neighbor *,
- struct ospf_lsa *);
+int ospf_flood_through_as (struct ospf_neighbor *, struct ospf_lsa *);
unsigned long ospf_ls_request_count (struct ospf_neighbor *);
int ospf_ls_request_isempty (struct ospf_neighbor *);
@@ -50,18 +47,19 @@ void ospf_ls_retransmit_delete (struct ospf_neighbor *, struct ospf_lsa *);
void ospf_ls_retransmit_clear (struct ospf_neighbor *);
struct ospf_lsa *ospf_ls_retransmit_lookup (struct ospf_neighbor *,
struct ospf_lsa *);
-void ospf_ls_retransmit_delete_nbr_area (struct ospf_area *,
- struct ospf_lsa *);
-void ospf_ls_retransmit_delete_nbr_as (struct ospf *, struct ospf_lsa *);
+void ospf_ls_retransmit_delete_nbr_all (struct ospf_area *, struct ospf_lsa *);
void ospf_ls_retransmit_add_nbr_all (struct ospf_interface *,
struct ospf_lsa *);
void ospf_flood_lsa_area (struct ospf_lsa *, struct ospf_area *);
void ospf_flood_lsa_as (struct ospf_lsa *);
void ospf_lsa_flush_area (struct ospf_lsa *, struct ospf_area *);
-void ospf_lsa_flush_as (struct ospf *, struct ospf_lsa *);
+void ospf_lsa_flush_as (struct ospf_lsa *);
+void ospf_flush_through_as (struct ospf_lsa *);
struct external_info *ospf_external_info_check (struct ospf_lsa *);
+void debug_ospf_ls_retransmit (struct ospf_neighbor *);
+
void ospf_lsdb_init (struct ospf_lsdb *);
-#endif /* _ZEBRA_OSPF_FLOOD_H */
+#endif /* _ZEBRA_OSPF_FLOODING_H */
diff --git a/ospfd/ospf_ia.c b/ospfd/ospf_ia.c
index 59f86669..32c8d86b 100644
--- a/ospfd/ospf_ia.c
+++ b/ospfd/ospf_ia.c
@@ -71,9 +71,8 @@ ospf_find_abr_route (struct route_table *rtrs,
}
void
-ospf_ia_network_route (struct ospf *ospf, struct route_table *rt,
- struct prefix_ipv4 *p, struct ospf_route *new_or,
- struct ospf_route *abr_or)
+ospf_ia_network_route (struct route_table *rt, struct prefix_ipv4 *p,
+ struct ospf_route *new_or, struct ospf_route *abr_or)
{
struct route_node *rn1;
struct ospf_route *or;
@@ -95,7 +94,7 @@ ospf_ia_network_route (struct ospf *ospf, struct route_table *rt,
zlog_info ("ospf_ia_network_route(): "
"Found a route to the same network");
/* Check the existing route. */
- if ((res = ospf_route_cmp (ospf, new_or, or)) < 0)
+ if ((res = ospf_route_cmp (new_or, or)) < 0)
{
/* New route is better, so replace old one. */
ospf_route_subst (rn1, new_or, abr_or);
@@ -128,19 +127,18 @@ ospf_ia_network_route (struct ospf *ospf, struct route_table *rt,
}
void
-ospf_ia_router_route (struct ospf *ospf, struct route_table *rtrs,
- struct prefix_ipv4 *p,
+ospf_ia_router_route (struct route_table *rt, struct prefix_ipv4 *p,
struct ospf_route *new_or, struct ospf_route *abr_or)
{
- struct ospf_route *or = NULL;
struct route_node *rn;
+ struct ospf_route *or = NULL;
int ret;
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("ospf_ia_router_route(): considering %s/%d",
inet_ntoa (p->prefix), p->prefixlen);
/* Find a route to the same dest */
- rn = route_node_get (rtrs, (struct prefix *) p);
+ rn = route_node_get (rt,(struct prefix *) p);
if (rn->info == NULL)
/* This is a new route */
@@ -148,11 +146,11 @@ ospf_ia_router_route (struct ospf *ospf, struct route_table *rtrs,
else
{
struct ospf_area *or_area;
- or_area = ospf_area_lookup_by_area_id (ospf, new_or->u.std.area_id);
+ or_area = ospf_area_lookup_by_area_id (new_or->u.std.area_id);
assert (or_area);
/* This is an additional route */
route_unlock_node (rn);
- or = ospf_find_asbr_route_through_area (rtrs, p, or_area);
+ or = ospf_find_asbr_route_through_area (rt, p, or_area);
}
if (or)
@@ -161,7 +159,7 @@ ospf_ia_router_route (struct ospf *ospf, struct route_table *rtrs,
zlog_info ("ospf_ia_router_route(): "
"a route to the same ABR through the same area exists");
/* New route is better */
- if ((ret = ospf_route_cmp (ospf, new_or, or)) < 0)
+ if ((ret = ospf_route_cmp (new_or, or)) < 0)
{
listnode_delete (rn->info, or);
ospf_route_free (or);
@@ -196,21 +194,28 @@ ospf_ia_router_route (struct ospf *ospf, struct route_table *rtrs,
}
+struct ia_args
+{
+ struct route_table *rt;
+ struct route_table *rtrs;
+ struct ospf_area *area;
+};
+
int
-process_summary_lsa (struct ospf_area *area, struct route_table *rt,
- struct route_table *rtrs, struct ospf_lsa *lsa)
+process_summary_lsa (struct ospf_lsa *l, void *v, int i)
{
- struct ospf *ospf = area->ospf;
struct ospf_area_range *range;
struct ospf_route *abr_or, *new_or;
struct summary_lsa *sl;
struct prefix_ipv4 p, abr;
u_int32_t metric;
+ struct ia_args *args;
- if (lsa == NULL)
+ if (l == NULL)
return 0;
- sl = (struct summary_lsa *) lsa->data;
+ args = (struct ia_args *) v;
+ sl = (struct summary_lsa *) l->data;
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("process_summary_lsa(): LS ID: %s", inet_ntoa (sl->header.id));
@@ -220,10 +225,10 @@ process_summary_lsa (struct ospf_area *area, struct route_table *rt,
if (metric == OSPF_LS_INFINITY)
return 0;
- if (IS_LSA_MAXAGE (lsa))
+ if (IS_LSA_MAXAGE (l))
return 0;
- if (ospf_lsa_is_self_originated (area->ospf, lsa))
+ if (ospf_lsa_is_self_originated (l))
return 0;
p.family = AF_INET;
@@ -237,12 +242,12 @@ process_summary_lsa (struct ospf_area *area, struct route_table *rt,
apply_mask_ipv4 (&p);
if (sl->header.type == OSPF_SUMMARY_LSA &&
- (range = ospf_area_range_match_any (ospf, &p)) &&
+ (range = ospf_area_range_match_any (ospf_top, &p)) &&
ospf_area_range_active (range))
return 0;
- if (ospf->abr_type != OSPF_ABR_STAND &&
- area->external_routing != OSPF_AREA_DEFAULT &&
+ if (ospf_top->abr_type != OSPF_ABR_STAND &&
+ args->area->external_routing != OSPF_AREA_DEFAULT &&
p.prefix.s_addr == OSPF_DEFAULT_DESTINATION &&
p.prefixlen == 0)
return 0; /* Ignore summary default from a stub area */
@@ -252,7 +257,7 @@ process_summary_lsa (struct ospf_area *area, struct route_table *rt,
abr.prefixlen = IPV4_MAX_BITLEN;
apply_mask_ipv4 (&abr);
- abr_or = ospf_find_abr_route (rtrs, &abr, area);
+ abr_or = ospf_find_abr_route (args->rtrs, &abr, args->area);
if (abr_or == NULL)
return 0;
@@ -264,35 +269,32 @@ process_summary_lsa (struct ospf_area *area, struct route_table *rt,
new_or->u.std.options = sl->header.options;
new_or->u.std.origin = (struct lsa_header *) sl;
new_or->cost = abr_or->cost + metric;
- new_or->u.std.area_id = area->area_id;
+ new_or->u.std.area_id = args->area->area_id;
#ifdef HAVE_NSSA
- new_or->u.std.external_routing = area->external_routing;
+ new_or->u.std.external_routing = args->area->external_routing;
#endif /* HAVE_NSSA */
new_or->path_type = OSPF_PATH_INTER_AREA;
if (sl->header.type == OSPF_SUMMARY_LSA)
- ospf_ia_network_route (ospf, rt, &p, new_or, abr_or);
+ ospf_ia_network_route (args->rt, &p, new_or, abr_or);
else
{
new_or->type = OSPF_DESTINATION_ROUTER;
new_or->u.std.flags = ROUTER_LSA_EXTERNAL;
- ospf_ia_router_route (ospf, rtrs, &p, new_or, abr_or);
+ ospf_ia_router_route (args->rtrs, &p, new_or, abr_or);
}
return 0;
}
void
-ospf_examine_summaries (struct ospf_area *area,
+ospf_examine_summaries (struct ospf_area * area,
struct route_table *lsdb_rt,
struct route_table *rt,
struct route_table *rtrs)
{
- struct ospf_lsa *lsa;
- struct route_node *rn;
-
- LSDB_LOOP (lsdb_rt, rn, lsa)
- process_summary_lsa (area, rt, rtrs, lsa);
+ struct ia_args args = {rt, rtrs, area};
+ foreach_lsa (lsdb_rt, &args, 0, process_summary_lsa);
}
int
@@ -303,8 +305,7 @@ ospf_area_is_transit (struct ospf_area *area)
}
void
-ospf_update_network_route (struct ospf *ospf,
- struct route_table *rt,
+ospf_update_network_route (struct route_table *rt,
struct route_table *rtrs,
struct summary_lsa *lsa,
struct prefix_ipv4 *p,
@@ -335,7 +336,7 @@ ospf_update_network_route (struct ospf *ospf,
if (! rn)
{
- if (ospf->abr_type != OSPF_ABR_SHORTCUT)
+ if (ospf_top->abr_type != OSPF_ABR_SHORTCUT)
return; /* Standard ABR can update only already installed
backbone paths */
if (IS_DEBUG_OSPF_EVENT)
@@ -374,7 +375,7 @@ ospf_update_network_route (struct ospf *ospf,
return;
}
- if (ospf->abr_type == OSPF_ABR_SHORTCUT)
+ if (ospf_top->abr_type == OSPF_ABR_SHORTCUT)
{
if (or->path_type == OSPF_PATH_INTRA_AREA &&
!OSPF_IS_AREA_ID_BACKBONE (or->u.std.area_id))
@@ -419,7 +420,7 @@ ospf_update_network_route (struct ospf *ospf,
ospf_route_subst_nexthops (or, abr_or->path);
or->cost = cost;
- if ((ospf->abr_type == OSPF_ABR_SHORTCUT) &&
+ if ((ospf_top->abr_type == OSPF_ABR_SHORTCUT) &&
!OSPF_IS_AREA_ID_BACKBONE (or->u.std.area_id))
{
or->path_type = OSPF_PATH_INTER_AREA;
@@ -436,8 +437,7 @@ ospf_update_network_route (struct ospf *ospf,
}
void
-ospf_update_router_route (struct ospf *ospf,
- struct route_table *rtrs,
+ospf_update_router_route (struct route_table *rtrs,
struct summary_lsa *lsa,
struct prefix_ipv4 *p,
struct ospf_area *area)
@@ -465,17 +465,17 @@ ospf_update_router_route (struct ospf *ospf,
/* First try to find a backbone path,
because standard ABR can update only BB-associated paths */
- if ((ospf->backbone == NULL) &&
- (ospf->abr_type != OSPF_ABR_SHORTCUT))
+ if ((ospf_top->backbone == NULL) &&
+ (ospf_top->abr_type != OSPF_ABR_SHORTCUT))
/* no BB area, not Shortcut ABR, exiting */
return;
- or = ospf_find_asbr_route_through_area (rtrs, p, ospf->backbone);
+ or = ospf_find_asbr_route_through_area (rtrs, p, ospf_top->backbone);
if (or == NULL)
{
- if (ospf->abr_type != OSPF_ABR_SHORTCUT)
+ if (ospf_top->abr_type != OSPF_ABR_SHORTCUT)
/* route to ASBR through the BB not found
the router is not Shortcut ABR, exiting */
@@ -500,7 +500,7 @@ ospf_update_router_route (struct ospf *ospf,
#endif /* HAVE_NSSA */
new_or->path_type = OSPF_PATH_INTER_AREA;
new_or->u.std.flags = ROUTER_LSA_EXTERNAL;
- ospf_ia_router_route (ospf, rtrs, p, new_or, abr_or);
+ ospf_ia_router_route (rtrs, p, new_or, abr_or);
return;
}
@@ -537,22 +537,22 @@ ospf_update_router_route (struct ospf *ospf,
}
int
-process_transit_summary_lsa (struct ospf_area *area, struct route_table *rt,
- struct route_table *rtrs, struct ospf_lsa *lsa)
+process_transit_summary_lsa (struct ospf_lsa *l, void *v, int i)
{
- struct ospf *ospf = area->ospf;
struct summary_lsa *sl;
struct prefix_ipv4 p;
u_int32_t metric;
+ struct ia_args *args;
- if (lsa == NULL)
+ if (l == NULL)
return 0;
- sl = (struct summary_lsa *) lsa->data;
+ args = (struct ia_args *) v;
+ sl = (struct summary_lsa *) l->data;
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("process_transit_summaries(): LS ID: %s",
- inet_ntoa (lsa->data->id));
+ inet_ntoa (l->data->id));
metric = GET_METRIC (sl->metric);
if (metric == OSPF_LS_INFINITY)
@@ -562,14 +562,14 @@ process_transit_summary_lsa (struct ospf_area *area, struct route_table *rt,
return 0;
}
- if (IS_LSA_MAXAGE (lsa))
+ if (IS_LSA_MAXAGE (l))
{
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("process_transit_summaries(): This LSA is too old");
return 0;
}
- if (ospf_lsa_is_self_originated (area->ospf, lsa))
+ if (ospf_lsa_is_self_originated (l))
{
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("process_transit_summaries(): This LSA is mine, skip");
@@ -587,29 +587,28 @@ process_transit_summary_lsa (struct ospf_area *area, struct route_table *rt,
apply_mask_ipv4 (&p);
if (sl->header.type == OSPF_SUMMARY_LSA)
- ospf_update_network_route (ospf, rt, rtrs, sl, &p, area);
+ ospf_update_network_route (args->rt, args->rtrs, sl, &p, args->area);
else
- ospf_update_router_route (ospf, rtrs, sl, &p, area);
+ ospf_update_router_route (args->rtrs, sl, &p, args->area);
return 0;
}
void
ospf_examine_transit_summaries (struct ospf_area *area,
+ /* struct ospf_lsdb *lsdb, */
struct route_table *lsdb_rt,
struct route_table *rt,
struct route_table *rtrs)
{
- struct ospf_lsa *lsa;
- struct route_node *rn;
+ struct ia_args args = {rt, rtrs, area};
- LSDB_LOOP (lsdb_rt, rn, lsa)
- process_transit_summary_lsa (area, rt, rtrs, lsa);
+ /* ospf_lsdb_iterator (lsdb, &args, 0, process_transit_summary_lsa); */
+ foreach_lsa (lsdb_rt, &args, 0, process_transit_summary_lsa);
}
void
-ospf_ia_routing (struct ospf *ospf,
- struct route_table *rt,
+ospf_ia_routing (struct route_table *rt,
struct route_table *rtrs)
{
struct ospf_area * area;
@@ -617,18 +616,18 @@ ospf_ia_routing (struct ospf *ospf,
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("ospf_ia_routing():start");
- if (IS_OSPF_ABR (ospf))
+ if (OSPF_IS_ABR)
{
listnode node;
struct ospf_area *area;
- switch (ospf->abr_type)
+ switch (ospf_top->abr_type)
{
case OSPF_ABR_STAND:
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("ospf_ia_routing():Standard ABR");
- if ((area = ospf->backbone))
+ if ((area = ospf_top->backbone))
{
listnode node;
@@ -640,9 +639,9 @@ ospf_ia_routing (struct ospf *ospf,
OSPF_EXAMINE_SUMMARIES_ALL (area, rt, rtrs);
- for (node = listhead (ospf->areas); node; nextnode (node))
+ for (node = listhead (ospf_top->areas); node; nextnode (node))
if ((area = getdata (node)) != NULL)
- if (area != ospf->backbone)
+ if (area != ospf_top->backbone)
if (ospf_area_is_transit (area))
OSPF_EXAMINE_TRANSIT_SUMMARIES_ALL (area, rt, rtrs);
}
@@ -654,10 +653,10 @@ ospf_ia_routing (struct ospf *ospf,
case OSPF_ABR_CISCO:
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("ospf_ia_routing():Alternative Cisco/IBM ABR");
- area = ospf->backbone; /* Find the BB */
+ area = ospf_top->backbone; /* Find the BB */
/* If we have an active BB connection */
- if (area && ospf_act_bb_connection (ospf))
+ if (area && ospf_act_bb_connection ())
{
if (IS_DEBUG_OSPF_EVENT)
{
@@ -667,9 +666,9 @@ ospf_ia_routing (struct ospf *ospf,
OSPF_EXAMINE_SUMMARIES_ALL (area, rt, rtrs);
- for (node = listhead (ospf->areas); node; nextnode (node))
+ for (node = listhead (ospf_top->areas); node; nextnode (node))
if ((area = getdata (node)) != NULL)
- if (area != ospf->backbone)
+ if (area != ospf_top->backbone)
if (ospf_area_is_transit (area))
OSPF_EXAMINE_TRANSIT_SUMMARIES_ALL (area, rt, rtrs);
}
@@ -678,7 +677,7 @@ ospf_ia_routing (struct ospf *ospf,
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("ospf_ia_routing(): "
"Active BB connection not found");
- for (node = listhead (ospf->areas); node; nextnode (node))
+ for (node = listhead (ospf_top->areas); node; nextnode (node))
if ((area = getdata (node)) != NULL)
OSPF_EXAMINE_SUMMARIES_ALL (area, rt, rtrs);
}
@@ -686,10 +685,10 @@ ospf_ia_routing (struct ospf *ospf,
case OSPF_ABR_SHORTCUT:
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("ospf_ia_routing():Alternative Shortcut");
- area = ospf->backbone; /* Find the BB */
+ area = ospf_top->backbone; /* Find the BB */
/* If we have an active BB connection */
- if (area && ospf_act_bb_connection (ospf))
+ if (area && ospf_act_bb_connection ())
{
if (IS_DEBUG_OSPF_EVENT)
{
@@ -699,12 +698,12 @@ ospf_ia_routing (struct ospf *ospf,
OSPF_EXAMINE_SUMMARIES_ALL (area, rt, rtrs);
}
- for (node = listhead (ospf->areas); node; nextnode (node))
+ for (node = listhead (ospf_top->areas); node; nextnode (node))
if ((area = getdata (node)) != NULL)
- if (area != ospf->backbone)
+ if (area != ospf_top->backbone)
if (ospf_area_is_transit (area) ||
((area->shortcut_configured != OSPF_SHORTCUT_DISABLE) &&
- ((ospf->backbone == NULL) ||
+ ((ospf_top->backbone == NULL) ||
((area->shortcut_configured == OSPF_SHORTCUT_ENABLE) &&
area->shortcut_capability))))
OSPF_EXAMINE_TRANSIT_SUMMARIES_ALL (area, rt, rtrs);
@@ -720,7 +719,7 @@ ospf_ia_routing (struct ospf *ospf,
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("ospf_ia_routing():not ABR, considering all areas");
- for (node = listhead (ospf->areas); node; nextnode (node))
+ for (node = listhead (ospf_top->areas); node; nextnode (node))
if ((area = getdata (node)) != NULL)
OSPF_EXAMINE_SUMMARIES_ALL (area, rt, rtrs);
}
diff --git a/ospfd/ospf_ia.h b/ospfd/ospf_ia.h
index 4eb3c9d8..afb2d4d5 100644
--- a/ospfd/ospf_ia.h
+++ b/ospfd/ospf_ia.h
@@ -36,8 +36,7 @@
ospf_examine_transit_summaries ((A), ASBR_SUMMARY_LSDB ((A)), (N), (R)); \
}
-void ospf_ia_routing (struct ospf *, struct route_table *,
- struct route_table *);
+void ospf_ia_routing (struct route_table *, struct route_table *);
int ospf_area_is_transit (struct ospf_area *);
#endif /* _ZEBRA_OSPF_IA_H */
diff --git a/ospfd/ospf_interface.c b/ospfd/ospf_interface.c
index a1b10c74..08bc7fbe 100644
--- a/ospfd/ospf_interface.c
+++ b/ospfd/ospf_interface.c
@@ -489,9 +489,9 @@ ospf_new_if_params ()
UNSET_IF_PARAM (oip, auth_simple);
UNSET_IF_PARAM (oip, auth_crypt);
UNSET_IF_PARAM (oip, auth_type);
-
- oip->auth_crypt = list_new ();
+ oip->auth_crypt = list_new ();
+
return oip;
}
@@ -625,9 +625,6 @@ ospf_if_new_hook (struct interface *ifp)
SET_IF_PARAM (IF_DEF_PARAMS (ifp), auth_simple);
memset (IF_DEF_PARAMS (ifp)->auth_simple, 0, OSPF_AUTH_SIMPLE_SIZE);
- SET_IF_PARAM (IF_DEF_PARAMS (ifp), auth_crypt);
- IF_DEF_PARAMS (ifp)->auth_crypt = list_new ();
-
SET_IF_PARAM (IF_DEF_PARAMS (ifp), auth_type);
IF_DEF_PARAMS (ifp)->auth_type = OSPF_AUTH_NOTSET;
@@ -646,6 +643,7 @@ ospf_if_delete_hook (struct interface *ifp)
#endif /* HAVE_OPAQUE_LSA */
route_table_finish (IF_OIFS (ifp));
route_table_finish (IF_OIFS_PARAMS (ifp));
+ ospf_del_if_params ((struct ospf_if_params *) IF_DEF_PARAMS (ifp));
XFREE (MTYPE_OSPF_IF_INFO, ifp->info);
ifp->info = NULL;
diff --git a/ospfd/ospf_interface.h b/ospfd/ospf_interface.h
index 1dc0ce74..6dc01aea 100644
--- a/ospfd/ospf_interface.h
+++ b/ospfd/ospf_interface.h
@@ -190,13 +190,12 @@ struct ospf_interface
u_int32_t discarded; /* discarded input count by error. */
u_int32_t state_change; /* Number of status change. */
- u_int32_t full_nbrs;
+ u_int full_nbrs;
};
/* Prototypes. */
char *ospf_if_name (struct ospf_interface *);
-struct ospf_interface *ospf_if_new (struct ospf *, struct interface *,
- struct prefix *);
+struct ospf_interface *ospf_if_new ();
void ospf_if_cleanup (struct ospf_interface *);
void ospf_if_free (struct ospf_interface *);
int ospf_if_up (struct ospf_interface *);
@@ -204,17 +203,13 @@ int ospf_if_down (struct ospf_interface *);
int ospf_if_is_up (struct ospf_interface *);
struct ospf_interface *ospf_if_lookup_by_name (char *);
-struct ospf_interface *ospf_if_lookup_by_local_addr (struct ospf *,
- struct interface *,
- struct in_addr);
-struct ospf_interface *ospf_if_lookup_by_prefix (struct ospf *,
- struct prefix_ipv4 *);
-struct ospf_interface *ospf_if_addr_local (struct in_addr);
-struct ospf_interface *ospf_if_lookup_recv_if (struct ospf *, struct in_addr);
-struct ospf_interface *ospf_if_is_configured (struct ospf *, struct in_addr *);
-
-struct ospf_if_params *ospf_lookup_if_params (struct interface *,
- struct in_addr);
+struct ospf_interface *ospf_if_lookup_by_local_addr (struct interface *, struct in_addr);
+struct ospf_interface *ospf_if_lookup_by_prefix (struct prefix_ipv4 *);
+struct ospf_interface *ospf_if_addr_local (struct in_addr src);
+struct ospf_interface *ospf_if_lookup_recv_interface (struct in_addr src);
+struct ospf_interface *ospf_if_is_configured (struct in_addr *);
+
+struct ospf_if_params *ospf_lookup_if_params (struct interface *, struct in_addr);
struct ospf_if_params *ospf_get_if_params (struct interface *, struct in_addr);
void ospf_del_if_params (struct ospf_if_params *);
void ospf_free_if_params (struct interface *, struct in_addr);
@@ -229,21 +224,22 @@ int ospf_if_is_enable (struct ospf_interface *);
int ospf_if_get_output_cost (struct ospf_interface *);
void ospf_if_recalculate_output_cost (struct interface *);
-struct ospf_interface *ospf_vl_new (struct ospf *, struct ospf_vl_data *);
+struct ospf_interface *ospf_vl_new (struct ospf_vl_data *);
struct ospf_vl_data *ospf_vl_data_new (struct ospf_area *, struct in_addr);
struct ospf_vl_data *ospf_vl_lookup (struct ospf_area *, struct in_addr);
void ospf_vl_data_free (struct ospf_vl_data *);
-void ospf_vl_add (struct ospf *, struct ospf_vl_data *);
-void ospf_vl_delete (struct ospf *, struct ospf_vl_data *);
+void ospf_vl_add (struct ospf_vl_data *);
+void ospf_vl_delete (struct ospf_vl_data *);
void ospf_vl_up_check (struct ospf_area *, struct in_addr, struct vertex *);
-void ospf_vl_unapprove (struct ospf *);
-void ospf_vl_shut_unapproved (struct ospf *);
+void ospf_vl_unapprove ();
+void ospf_vl_shut_unapproved ();
int ospf_full_virtual_nbrs (struct ospf_area *);
int ospf_vls_in_area (struct ospf_area *);
struct crypt_key *ospf_crypt_key_lookup (list, u_char);
struct crypt_key *ospf_crypt_key_new ();
void ospf_crypt_key_add (list, struct crypt_key *);
-int ospf_crypt_key_delete (list, u_char);
+int ospf_crypt_key_delete (list, u_char key_id);
+
#endif /* _ZEBRA_OSPF_INTERFACE_H */
diff --git a/ospfd/ospf_ism.c b/ospfd/ospf_ism.c
new file mode 100644
index 00000000..5f4d5461
--- /dev/null
+++ b/ospfd/ospf_ism.c
@@ -0,0 +1,658 @@
+/*
+ * OSPF version 2 Interface State Machine
+ * From RFC2328 [OSPF Version 2]
+ * Copyright (C) 1999, 2000 Toshiaki Takada
+ *
+ * This file is part of GNU Zebra.
+ *
+ * GNU Zebra is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * GNU Zebra is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Zebra; see the file COPYING. If not, write to the Free
+ * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <zebra.h>
+
+#include "thread.h"
+#include "linklist.h"
+#include "prefix.h"
+#include "if.h"
+#include "table.h"
+#include "log.h"
+
+#include "ospfd/ospfd.h"
+#include "ospfd/ospf_interface.h"
+#include "ospfd/ospf_ism.h"
+#include "ospfd/ospf_asbr.h"
+#include "ospfd/ospf_lsa.h"
+#include "ospfd/ospf_lsdb.h"
+#include "ospfd/ospf_neighbor.h"
+#include "ospfd/ospf_nsm.h"
+#include "ospfd/ospf_network.h"
+#include "ospfd/ospf_dump.h"
+#include "ospfd/ospf_packet.h"
+#include "ospfd/ospf_flood.h"
+#include "ospfd/ospf_abr.h"
+
+/* elect DR and BDR. Refer to RFC2319 section 9.4 */
+struct ospf_neighbor *
+ospf_dr_election_sub (list routers)
+{
+ listnode node;
+ struct ospf_neighbor *nbr, *max = NULL;
+
+ /* Choose highest router priority.
+ In case of tie, choose highest Router ID. */
+ for (node = listhead (routers); node; nextnode (node))
+ {
+ nbr = getdata (node);
+
+ if (max == NULL)
+ max = nbr;
+ else
+ {
+ if (max->priority < nbr->priority)
+ max = nbr;
+ else if (max->priority == nbr->priority)
+ if (IPV4_ADDR_CMP (&max->router_id, &nbr->router_id) < 0)
+ max = nbr;
+ }
+ }
+
+ return max;
+}
+
+struct ospf_neighbor *
+ospf_elect_dr (struct ospf_interface *oi, list el_list)
+{
+ list dr_list;
+ listnode node;
+ struct ospf_neighbor *nbr, *dr = NULL, *bdr = NULL;
+
+ dr_list = list_new ();
+
+ /* Add neighbors to the list. */
+ for (node = listhead (el_list); node; nextnode (node))
+ {
+ nbr = getdata (node);
+
+ /* neighbor declared to be DR. */
+ if (NBR_IS_DR (nbr))
+ listnode_add (dr_list, nbr);
+
+ /* Preserve neighbor BDR. */
+ if (IPV4_ADDR_SAME (&BDR (oi), &nbr->address.u.prefix4))
+ bdr = nbr;
+ }
+
+ /* Elect Designated Router. */
+ if (listcount (dr_list) > 0)
+ dr = ospf_dr_election_sub (dr_list);
+ else
+ dr = bdr;
+
+ /* Set DR to interface. */
+ if (dr)
+ {
+ DR (oi) = dr->address.u.prefix4;
+ dr->d_router = dr->address.u.prefix4;
+ }
+ else
+ DR (oi).s_addr = 0;
+
+ list_delete (dr_list);
+
+ return dr;
+}
+
+struct ospf_neighbor *
+ospf_elect_bdr (struct ospf_interface *oi, list el_list)
+{
+ list bdr_list, no_dr_list;
+ listnode node;
+ struct ospf_neighbor *nbr, *bdr = NULL;
+
+ bdr_list = list_new ();
+ no_dr_list = list_new ();
+
+ /* Add neighbors to the list. */
+ for (node = listhead (el_list); node; nextnode (node))
+ {
+ nbr = getdata (node);
+
+ /* neighbor declared to be DR. */
+ if (NBR_IS_DR (nbr))
+ continue;
+
+ /* neighbor declared to be BDR. */
+ if (NBR_IS_BDR (nbr))
+ listnode_add (bdr_list, nbr);
+
+ listnode_add (no_dr_list, nbr);
+ }
+
+ /* Elect Backup Designated Router. */
+ if (listcount (bdr_list) > 0)
+ bdr = ospf_dr_election_sub (bdr_list);
+ else
+ bdr = ospf_dr_election_sub (no_dr_list);
+
+ /* Set BDR to interface. */
+ if (bdr)
+ {
+ BDR (oi) = bdr->address.u.prefix4;
+ bdr->bd_router = bdr->address.u.prefix4;
+ }
+ else
+ BDR (oi).s_addr = 0;
+
+ list_delete (bdr_list);
+ list_delete (no_dr_list);
+
+ return bdr;
+}
+
+int
+ospf_ism_state (struct ospf_interface *oi)
+{
+ if (IPV4_ADDR_SAME (&DR (oi), &oi->address->u.prefix4))
+ return ISM_DR;
+ else if (IPV4_ADDR_SAME (&BDR (oi), &oi->address->u.prefix4))
+ return ISM_Backup;
+ else
+ return ISM_DROther;
+}
+
+void
+ospf_dr_eligible_routers (struct route_table *nbrs, list el_list)
+{
+ struct route_node *rn;
+ struct ospf_neighbor *nbr;
+
+ for (rn = route_top (nbrs); rn; rn = route_next (rn))
+ if ((nbr = rn->info) != NULL)
+ /* Ignore 0.0.0.0 node*/
+ if (nbr->router_id.s_addr != 0)
+ /* Is neighbor eligible? */
+ if (nbr->priority != 0)
+ /* Is neighbor upper 2-Way? */
+ if (nbr->state >= NSM_TwoWay)
+ listnode_add (el_list, nbr);
+}
+
+/* Generate AdjOK? NSM event. */
+void
+ospf_dr_change (struct ospf *ospf, struct route_table *nbrs)
+{
+ struct route_node *rn;
+ struct ospf_neighbor *nbr;
+
+ for (rn = route_top (nbrs); rn; rn = route_next (rn))
+ if ((nbr = rn->info) != NULL)
+ /* Ignore 0.0.0.0 node*/
+ if (nbr->router_id.s_addr != 0)
+ /* Is neighbor upper 2-Way? */
+ if (nbr->state >= NSM_TwoWay)
+ /* Ignore myself. */
+ if (!IPV4_ADDR_SAME (&nbr->router_id, &ospf->router_id))
+ OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_AdjOK);
+}
+
+int
+ospf_dr_election (struct ospf_interface *oi)
+{
+ struct in_addr old_dr, old_bdr;
+ int old_state, new_state;
+ list el_list;
+ struct ospf_neighbor *dr, *bdr;
+
+ /* backup current values. */
+ old_dr = DR (oi);
+ old_bdr = BDR (oi);
+ old_state = oi->state;
+
+ el_list = list_new ();
+
+ /* List eligible routers. */
+ ospf_dr_eligible_routers (oi->nbrs, el_list);
+
+ /* First election of DR and BDR. */
+ bdr = ospf_elect_bdr (oi, el_list);
+ dr = ospf_elect_dr (oi, el_list);
+
+ new_state = ospf_ism_state (oi);
+
+ zlog_info ("DR-Election[1st]: Backup %s", inet_ntoa (BDR (oi)));
+ zlog_info ("DR-Election[1st]: DR %s", inet_ntoa (DR (oi)));
+
+ if (new_state != old_state &&
+ !(new_state == ISM_DROther && old_state < ISM_DROther))
+ {
+ ospf_elect_bdr (oi, el_list);
+ ospf_elect_dr (oi, el_list);
+
+ new_state = ospf_ism_state (oi);
+
+ zlog_info ("DR-Election[2nd]: Backup %s", inet_ntoa (BDR (oi)));
+ zlog_info ("DR-Election[2nd]: DR %s", inet_ntoa (DR (oi)));
+ }
+
+ list_delete (el_list);
+
+ /* 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->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 (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 (oi->ospf, oi->address, oi->ifp->ifindex);
+ }
+
+ return new_state;
+}
+
+
+int
+ospf_hello_timer (struct thread *thread)
+{
+ struct ospf_interface *oi;
+
+ oi = THREAD_ARG (thread);
+ oi->t_hello = NULL;
+
+ if (IS_DEBUG_OSPF (ism, ISM_TIMERS))
+ zlog (NULL, LOG_DEBUG, "ISM[%s]: Timer (Hello timer expire)",
+ IF_NAME (oi));
+
+ /* Sending hello packet. */
+ ospf_hello_send (oi);
+
+ /* Hello timer set. */
+ OSPF_ISM_TIMER_ON (oi->t_hello, ospf_hello_timer,
+ OSPF_IF_PARAM (oi, v_hello));
+
+ return 0;
+}
+
+int
+ospf_wait_timer (struct thread *thread)
+{
+ struct ospf_interface *oi;
+
+ oi = THREAD_ARG (thread);
+ oi->t_wait = NULL;
+
+ if (IS_DEBUG_OSPF (ism, ISM_TIMERS))
+ zlog (NULL, LOG_DEBUG, "ISM[%s]: Timer (Wait timer expire)",
+ IF_NAME (oi));
+
+ OSPF_ISM_EVENT_SCHEDULE (oi, ISM_WaitTimer);
+
+ return 0;
+}
+
+/* Hook function called after ospf ISM event is occured. And vty's
+ network command invoke this function after making interface
+ structure. */
+void
+ism_timer_set (struct ospf_interface *oi)
+{
+ switch (oi->state)
+ {
+ case ISM_Down:
+ /* First entry point of ospf interface state machine. In this state
+ interface parameters must be set to initial values, and timers are
+ reset also. */
+ OSPF_ISM_TIMER_OFF (oi->t_hello);
+ OSPF_ISM_TIMER_OFF (oi->t_wait);
+ OSPF_ISM_TIMER_OFF (oi->t_ls_ack);
+ break;
+ case ISM_Loopback:
+ /* In this state, the interface may be looped back and will be
+ unavailable for regular data traffic. */
+ OSPF_ISM_TIMER_OFF (oi->t_hello);
+ OSPF_ISM_TIMER_OFF (oi->t_wait);
+ OSPF_ISM_TIMER_OFF (oi->t_ls_ack);
+ break;
+ case ISM_Waiting:
+ /* The router is trying to determine the identity of DRouter and
+ BDRouter. The router begin to receive and send Hello Packets. */
+ /* send first hello immediately */
+ OSPF_ISM_TIMER_ON (oi->t_hello, ospf_hello_timer, 1);
+ OSPF_ISM_TIMER_ON (oi->t_wait, ospf_wait_timer,
+ OSPF_IF_PARAM (oi, v_wait));
+ OSPF_ISM_TIMER_OFF (oi->t_ls_ack);
+ break;
+ case ISM_PointToPoint:
+ /* The interface connects to a physical Point-to-point network or
+ virtual link. The router attempts to form an adjacency with
+ neighboring router. Hello packets are also sent. */
+ /* send first hello immediately */
+ OSPF_ISM_TIMER_ON (oi->t_hello, ospf_hello_timer, 1);
+
+ OSPF_ISM_TIMER_OFF (oi->t_wait);
+ OSPF_ISM_TIMER_ON (oi->t_ls_ack, ospf_ls_ack_timer, oi->v_ls_ack);
+ break;
+ case ISM_DROther:
+ /* The network type of the interface is broadcast or NBMA network,
+ and the router itself is neither Designated Router nor
+ Backup Designated Router. */
+ OSPF_ISM_TIMER_ON (oi->t_hello, ospf_hello_timer,
+ OSPF_IF_PARAM (oi, v_hello));
+ OSPF_ISM_TIMER_OFF (oi->t_wait);
+ OSPF_ISM_TIMER_ON (oi->t_ls_ack, ospf_ls_ack_timer, oi->v_ls_ack);
+ break;
+ case ISM_Backup:
+ /* The network type of the interface is broadcast os NBMA network,
+ and the router is Backup Designated Router. */
+ OSPF_ISM_TIMER_ON (oi->t_hello, ospf_hello_timer,
+ OSPF_IF_PARAM (oi, v_hello));
+ OSPF_ISM_TIMER_OFF (oi->t_wait);
+ OSPF_ISM_TIMER_ON (oi->t_ls_ack, ospf_ls_ack_timer, oi->v_ls_ack);
+ break;
+ case ISM_DR:
+ /* The network type of the interface is broadcast or NBMA network,
+ and the router is Designated Router. */
+ OSPF_ISM_TIMER_ON (oi->t_hello, ospf_hello_timer,
+ OSPF_IF_PARAM (oi, v_hello));
+ OSPF_ISM_TIMER_OFF (oi->t_wait);
+ OSPF_ISM_TIMER_ON (oi->t_ls_ack, ospf_ls_ack_timer, oi->v_ls_ack);
+ break;
+ }
+}
+
+int
+ism_stop (struct ospf_interface *oi)
+{
+ return 0;
+}
+
+int
+ism_interface_up (struct ospf_interface *oi)
+{
+ int next_state = 0;
+
+ /* if network type is point-to-point, Point-to-MultiPoint or virtual link,
+ the state transitions to Point-to-Point. */
+ if (oi->type == OSPF_IFTYPE_POINTOPOINT ||
+ oi->type == OSPF_IFTYPE_POINTOMULTIPOINT ||
+ oi->type == OSPF_IFTYPE_VIRTUALLINK)
+ next_state = ISM_PointToPoint;
+ /* Else if the router is not eligible to DR, the state transitions to
+ DROther. */
+ else if (PRIORITY (oi) == 0) /* router is eligible? */
+ next_state = ISM_DROther;
+ else
+ /* Otherwise, the state transitions to Waiting. */
+ next_state = ISM_Waiting;
+
+ if (oi->type == OSPF_IFTYPE_NBMA)
+ ospf_nbr_nbma_if_update (oi->ospf, oi);
+
+ /* ospf_ism_event (t); */
+ return next_state;
+}
+
+int
+ism_loop_ind (struct ospf_interface *oi)
+{
+ int ret = 0;
+
+ /* call ism_interface_down. */
+ /* ret = ism_interface_down (oi); */
+
+ return ret;
+}
+
+/* Interface down event handler. */
+int
+ism_interface_down (struct ospf_interface *oi)
+{
+ ospf_if_cleanup (oi);
+ return 0;
+}
+
+
+int
+ism_backup_seen (struct ospf_interface *oi)
+{
+ return ospf_dr_election (oi);
+}
+
+int
+ism_wait_timer (struct ospf_interface *oi)
+{
+ return ospf_dr_election (oi);
+}
+
+int
+ism_neighbor_change (struct ospf_interface *oi)
+{
+ return ospf_dr_election (oi);
+}
+
+int
+ism_ignore (struct ospf_interface *oi)
+{
+ if (IS_DEBUG_OSPF (ism, ISM_EVENTS))
+ zlog (NULL, LOG_INFO, "ISM[%s]: ism_ignore called", IF_NAME (oi));
+
+ return 0;
+}
+
+/* Interface State Machine */
+struct {
+ int (*func) ();
+ int next_state;
+} ISM [OSPF_ISM_STATE_MAX][OSPF_ISM_EVENT_MAX] =
+{
+ {
+ /* DependUpon: dummy state. */
+ { ism_ignore, ISM_DependUpon }, /* NoEvent */
+ { ism_ignore, ISM_DependUpon }, /* InterfaceUp */
+ { ism_ignore, ISM_DependUpon }, /* WaitTimer */
+ { ism_ignore, ISM_DependUpon }, /* BackupSeen */
+ { ism_ignore, ISM_DependUpon }, /* NeighborChange */
+ { ism_ignore, ISM_DependUpon }, /* LoopInd */
+ { ism_ignore, ISM_DependUpon }, /* UnloopInd */
+ { ism_ignore, ISM_DependUpon }, /* InterfaceDown */
+ },
+ {
+ /* Down:*/
+ { ism_ignore, ISM_DependUpon }, /* NoEvent */
+ { ism_interface_up, ISM_DependUpon }, /* InterfaceUp */
+ { ism_ignore, ISM_Down }, /* WaitTimer */
+ { ism_ignore, ISM_Down }, /* BackupSeen */
+ { ism_ignore, ISM_Down }, /* NeighborChange */
+ { ism_loop_ind, ISM_Loopback }, /* LoopInd */
+ { ism_ignore, ISM_Down }, /* UnloopInd */
+ { ism_interface_down, ISM_Down }, /* InterfaceDown */
+ },
+ {
+ /* Loopback: */
+ { ism_ignore, ISM_DependUpon }, /* NoEvent */
+ { ism_ignore, ISM_Loopback }, /* InterfaceUp */
+ { ism_ignore, ISM_Loopback }, /* WaitTimer */
+ { ism_ignore, ISM_Loopback }, /* BackupSeen */
+ { ism_ignore, ISM_Loopback }, /* NeighborChange */
+ { ism_ignore, ISM_Loopback }, /* LoopInd */
+ { ism_ignore, ISM_Down }, /* UnloopInd */
+ { ism_interface_down, ISM_Down }, /* InterfaceDown */
+ },
+ {
+ /* Waiting: */
+ { ism_ignore, ISM_DependUpon }, /* NoEvent */
+ { ism_ignore, ISM_Waiting }, /* InterfaceUp */
+ { ism_wait_timer, ISM_DependUpon }, /* WaitTimer */
+ { ism_backup_seen, ISM_DependUpon }, /* BackupSeen */
+ { ism_ignore, ISM_Waiting }, /* NeighborChange */
+ { ism_loop_ind, ISM_Loopback }, /* LoopInd */
+ { ism_ignore, ISM_Waiting }, /* UnloopInd */
+ { ism_interface_down, ISM_Down }, /* InterfaceDown */
+ },
+ {
+ /* Point-to-Point: */
+ { ism_ignore, ISM_DependUpon }, /* NoEvent */
+ { ism_ignore, ISM_PointToPoint }, /* InterfaceUp */
+ { ism_ignore, ISM_PointToPoint }, /* WaitTimer */
+ { ism_ignore, ISM_PointToPoint }, /* BackupSeen */
+ { ism_ignore, ISM_PointToPoint }, /* NeighborChange */
+ { ism_loop_ind, ISM_Loopback }, /* LoopInd */
+ { ism_ignore, ISM_PointToPoint }, /* UnloopInd */
+ { ism_interface_down, ISM_Down }, /* InterfaceDown */
+ },
+ {
+ /* DROther: */
+ { ism_ignore, ISM_DependUpon }, /* NoEvent */
+ { ism_ignore, ISM_DROther }, /* InterfaceUp */
+ { ism_ignore, ISM_DROther }, /* WaitTimer */
+ { ism_ignore, ISM_DROther }, /* BackupSeen */
+ { ism_neighbor_change, ISM_DependUpon }, /* NeighborChange */
+ { ism_loop_ind, ISM_Loopback }, /* LoopInd */
+ { ism_ignore, ISM_DROther }, /* UnloopInd */
+ { ism_interface_down, ISM_Down }, /* InterfaceDown */
+ },
+ {
+ /* Backup: */
+ { ism_ignore, ISM_DependUpon }, /* NoEvent */
+ { ism_ignore, ISM_Backup }, /* InterfaceUp */
+ { ism_ignore, ISM_Backup }, /* WaitTimer */
+ { ism_ignore, ISM_Backup }, /* BackupSeen */
+ { ism_neighbor_change, ISM_DependUpon }, /* NeighborChange */
+ { ism_loop_ind, ISM_Loopback }, /* LoopInd */
+ { ism_ignore, ISM_Backup }, /* UnloopInd */
+ { ism_interface_down, ISM_Down }, /* InterfaceDown */
+ },
+ {
+ /* DR: */
+ { ism_ignore, ISM_DependUpon }, /* NoEvent */
+ { ism_ignore, ISM_DR }, /* InterfaceUp */
+ { ism_ignore, ISM_DR }, /* WaitTimer */
+ { ism_ignore, ISM_DR }, /* BackupSeen */
+ { ism_neighbor_change, ISM_DependUpon }, /* NeighborChange */
+ { ism_loop_ind, ISM_Loopback }, /* LoopInd */
+ { ism_ignore, ISM_DR }, /* UnloopInd */
+ { ism_interface_down, ISM_Down }, /* InterfaceDown */
+ },
+};
+
+static char *ospf_ism_event_str[] =
+{
+ "NoEvent",
+ "InterfaceUp",
+ "WaitTimer",
+ "BackupSeen",
+ "NeighborChange",
+ "LoopInd",
+ "UnLoopInd",
+ "InterfaceDown",
+};
+
+void
+ism_change_state (struct ospf_interface *oi, int state)
+{
+ int old_state;
+ struct ospf_lsa *lsa;
+
+ /* Logging change of state. */
+ if (IS_DEBUG_OSPF (ism, ISM_STATUS))
+ zlog (NULL, LOG_INFO, "ISM[%s]: State change %s -> %s", IF_NAME (oi),
+ LOOKUP (ospf_ism_state_msg, oi->state),
+ LOOKUP (ospf_ism_state_msg, state));
+
+ old_state = oi->state;
+ oi->state = state;
+ oi->state_change++;
+
+ if (old_state == ISM_Down || state == ISM_Down)
+ ospf_check_abr_status (oi->ospf);
+
+ /* Originate router-LSA. */
+ if (oi->area)
+ {
+ if (state == ISM_Down)
+ {
+ if (oi->area->act_ints > 0)
+ oi->area->act_ints--;
+ }
+ else if (old_state == ISM_Down)
+ oi->area->act_ints++;
+
+ /* schedule router-LSA originate. */
+ ospf_router_lsa_timer_add (oi->area);
+ }
+
+ /* Originate network-LSA. */
+ if (old_state != ISM_DR && state == ISM_DR)
+ ospf_network_lsa_timer_add (oi);
+ else if (old_state == ISM_DR && state != ISM_DR)
+ {
+ /* Free self originated network LSA. */
+ lsa = oi->network_lsa_self;
+ if (lsa)
+ {
+ ospf_lsa_flush_area (lsa, oi->area);
+ OSPF_TIMER_OFF (oi->t_network_lsa_self);
+ }
+
+ ospf_lsa_unlock (oi->network_lsa_self);
+ oi->network_lsa_self = NULL;
+ }
+
+#ifdef HAVE_OPAQUE_LSA
+ ospf_opaque_ism_change (oi, old_state);
+#endif /* HAVE_OPAQUE_LSA */
+
+ /* Check area border status. */
+ ospf_check_abr_status (oi->ospf);
+}
+
+/* Execute ISM event process. */
+int
+ospf_ism_event (struct thread *thread)
+{
+ int event;
+ int next_state;
+ struct ospf_interface *oi;
+
+ oi = THREAD_ARG (thread);
+ event = THREAD_VAL (thread);
+
+ /* Call function. */
+ next_state = (*(ISM [oi->state][event].func))(oi);
+
+ if (! next_state)
+ next_state = ISM [oi->state][event].next_state;
+
+ if (IS_DEBUG_OSPF (ism, ISM_EVENTS))
+ zlog (NULL, LOG_INFO, "ISM[%s]: %s (%s)", IF_NAME (oi),
+ LOOKUP (ospf_ism_state_msg, oi->state),
+ ospf_ism_event_str[event]);
+
+ /* If state is changed. */
+ if (next_state != oi->state)
+ ism_change_state (oi, next_state);
+
+ /* Make sure timer is set. */
+ ism_timer_set (oi);
+
+ return 0;
+}
+
diff --git a/ospfd/ospf_ism.h b/ospfd/ospf_ism.h
index 6de8b8e2..b04865af 100644
--- a/ospfd/ospf_ism.h
+++ b/ospfd/ospf_ism.h
@@ -46,17 +46,17 @@
#define ISM_InterfaceDown 7
#define OSPF_ISM_EVENT_MAX 8
-#define OSPF_ISM_WRITE_ON(O) \
+#define OSPF_ISM_WRITE_ON() \
do \
{ \
if (oi->on_write_q == 0) \
{ \
- listnode_add ((O)->oi_write_q, oi); \
+ listnode_add (ospf_top->oi_write_q, oi); \
oi->on_write_q = 1; \
} \
- if ((O)->t_write == NULL) \
- (O)->t_write = \
- thread_add_write (master, ospf_write, (O), (O)->fd); \
+ if (ospf_top->t_write == NULL) \
+ ospf_top->t_write = \
+ thread_add_write (master, ospf_write, ospf_top, ospf_top->fd); \
} while (0)
/* Macro for OSPF ISM timer turn on. */
diff --git a/ospfd/ospf_lsa.c b/ospfd/ospf_lsa.c
index 5d5ad08a..34cbc446 100644
--- a/ospfd/ospf_lsa.c
+++ b/ospfd/ospf_lsa.c
@@ -615,7 +615,8 @@ lsa_link_ptomp_set (struct stream *s, struct ospf_interface *oi)
link_info_set (s, id, mask, LSA_LINK_TYPE_STUB, 0, 0);
links++;
- zlog_info ("PointToMultipoint: running ptomultip_set");
+ if (IS_DEBUG_OSPF (lsa, LSA_GENERATE))
+ zlog_info ("PointToMultipoint: running ptomultip_set");
/* Search neighbor, */
for (rn = route_top (oi->nbrs); rn; rn = route_next (rn))
@@ -628,8 +629,9 @@ lsa_link_ptomp_set (struct stream *s, struct ospf_interface *oi)
link_info_set (s, nbr->router_id, oi->address->u.prefix4,
LSA_LINK_TYPE_POINTOPOINT, 0, oi->output_cost);
links++;
- zlog_info ("PointToMultipoint: set link to %s",
- inet_ntoa(oi->address->u.prefix4));
+ if (IS_DEBUG_OSPF (lsa, LSA_GENERATE))
+ zlog_info ("PointToMultipoint: set link to %s",
+ inet_ntoa(oi->address->u.prefix4));
}
return links;
@@ -648,7 +650,7 @@ router_lsa_link_set (struct stream *s, struct ospf_area *area)
struct interface *ifp = oi->ifp;
/* Check interface is up, OSPF is enable. */
- if (if_is_up (ifp))
+ if (if_is_operative (ifp))
{
if (oi->state != ISM_Down)
{
@@ -1402,7 +1404,7 @@ ospf_external_lsa_nexthop_get (struct ospf *ospf, struct in_addr nexthop)
{
struct ospf_interface *oi = getdata (n1);
- if (if_is_up (oi->ifp))
+ if (if_is_operative (oi->ifp))
if (oi->address->family == AF_INET)
if (prefix_match (oi->address, &nh))
return nexthop;
@@ -1423,7 +1425,7 @@ ospf_get_ip_from_ifp (struct ospf_interface *oi)
fwd.s_addr = 0;
- if (if_is_up (oi->ifp))
+ if (if_is_operative (oi->ifp))
return oi->address->u.prefix4;
return fwd;
@@ -1444,7 +1446,7 @@ ospf_get_nssa_ip (struct ospf_area *area)
{
struct ospf_interface *oi = getdata (n1);
- if (if_is_up (oi->ifp))
+ if (if_is_operative (oi->ifp))
if (oi->area->external_routing == OSPF_AREA_NSSA)
if (oi->address && oi->address->family == AF_INET)
{
@@ -1454,6 +1456,8 @@ ospf_get_nssa_ip (struct ospf_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;
@@ -1632,7 +1636,6 @@ ospf_install_flood_nssa (struct ospf *ospf,
/* make lsa duplicate, lock=1 */
new2 = ospf_lsa_dup (lsa);
-
new2->area = area;
new2->data->type = OSPF_AS_NSSA_LSA;
@@ -1662,13 +1665,13 @@ ospf_install_flood_nssa (struct ospf *ospf,
if (extlsa->e[0].fwd_addr.s_addr == 0)
extlsa->e[0].fwd_addr = ospf_get_nssa_ip(area); /* this NSSA area in ifp */
- 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;
- }
+ if (extlsa->e[0].fwd_addr.s_addr == 0)
+ {
+ if (IS_DEBUG_OSPF_NSSA)
+ zlog_info ("LSA[Type-7]: Could not build FWD-ADDR");
+ ospf_lsa_discard(new2);
+ return;
+ }
}
/* Re-calculate checksum. */
ospf_lsa_checksum (new2->data);
@@ -1857,6 +1860,39 @@ ospf_default_originate_timer (struct thread *thread)
return 0;
}
+#ifdef HAVE_NSSA
+/* Flush any NSSA LSAs for given prefix */
+void
+ospf_nssa_lsa_flush (struct ospf *ospf, struct prefix_ipv4 *p)
+{
+ struct listnode *node;
+ struct ospf_lsa *lsa;
+ struct ospf_area *area;
+
+ for (node = listhead (ospf->areas); node; nextnode (node))
+ {
+ if (((area = getdata (node)) != NULL)
+ && (area->external_routing == OSPF_AREA_NSSA))
+ {
+ if (!(lsa = ospf_lsa_lookup (area, OSPF_AS_NSSA_LSA, p->prefix,
+ ospf->router_id)))
+ {
+ if (IS_DEBUG_OSPF (lsa, LSA_FLOODING))
+ zlog_warn ("LSA: There is no such AS-NSSA-LSA %s/%d in LSDB",
+ inet_ntoa (p->prefix), p->prefixlen);
+ continue;
+ }
+ ospf_ls_retransmit_delete_nbr_area (area, lsa);
+ if (!IS_LSA_MAXAGE (lsa))
+ {
+ ospf_refresher_unregister_lsa (ospf, lsa);
+ ospf_lsa_flush_area (lsa, area);
+ }
+ }
+ }
+}
+#endif /* HAVE_NSSA */
+
/* Flush an AS-external-LSA from LSDB and routing domain. */
void
ospf_external_lsa_flush (struct ospf *ospf,
@@ -1877,6 +1913,13 @@ ospf_external_lsa_flush (struct ospf *ospf,
inet_ntoa (p->prefix), p->prefixlen);
return;
}
+#ifdef HAVE_NSSA
+ /* If LSA is selforiginated and there is NSSA area, flush
+ * Type-7 LSA's at first. */
+
+ if (IS_LSA_SELF(lsa) && (ospf->anyNSSA))
+ ospf_nssa_lsa_flush (ospf, p);
+#endif /* HAVE_NSSA */
/* Sweep LSA from Link State Retransmit List. */
ospf_ls_retransmit_delete_nbr_as (ospf, lsa);
@@ -2186,6 +2229,13 @@ ospf_external_lsa_install (struct ospf *ospf, struct ospf_lsa *new,
ospf_ase_incremental_update (ospf, new);
}
+#ifdef HAVE_NSSA
+ /* There is no point to register selforiginate Type-7 LSA for
+ * refreshing. We rely on refreshing Type-5 LSA's */
+ if (IS_LSA_SELF (new) && (new->data->type == OSPF_AS_NSSA_LSA))
+ return new;
+#endif /* HAVE_NSSA */
+
/* Register self-originated LSA to refresh queue. */
if (IS_LSA_SELF (new))
ospf_refresher_register_lsa (ospf, new);
@@ -2216,6 +2266,12 @@ ospf_discard_from_db (struct ospf *ospf,
ospf_ls_retransmit_delete_nbr_as (ospf, old);
ospf_ase_unregister_external_lsa (old, ospf);
break;
+#ifdef HAVE_NSSA
+ case OSPF_AS_NSSA_LSA:
+ ospf_ls_retransmit_delete_nbr_area (old->area, old);
+ ospf_ase_unregister_external_lsa (old, ospf);
+ break;
+#endif /* HAVE_NSSA */
default:
ospf_ls_retransmit_delete_nbr_area (old->area, old);
break;
@@ -2587,7 +2643,6 @@ ospf_lsa_maxage_walker_remover (struct ospf *ospf, struct ospf_lsa *lsa)
ospf_spf_calculate_schedule (ospf);
break;
}
-
ospf_lsa_maxage (ospf, lsa);
}
@@ -2623,9 +2678,13 @@ ospf_lsa_maxage_walker (struct thread *thread)
LSDB_LOOP (OPAQUE_LINK_LSDB (area), rn, lsa)
ospf_lsa_maxage_walker_remover (ospf, lsa);
#endif /* HAVE_OPAQUE_LSA */
+#ifdef HAVE_NSSA
+ LSDB_LOOP (NSSA_LSDB (area), rn, lsa)
+ ospf_lsa_maxage_walker_remover (ospf, lsa);
+#endif /* HAVE_NSSA */
}
- /* for AS-eternal-LSAs. */
+ /* for AS-external-LSAs. */
if (ospf->lsdb)
{
LSDB_LOOP (EXTERNAL_LSDB (ospf), rn, lsa)
@@ -2676,6 +2735,9 @@ struct ospf_lsa *
ospf_lsa_lookup (struct ospf_area *area, u_int32_t type,
struct in_addr id, struct in_addr adv_router)
{
+ struct ospf *ospf = ospf_lookup();
+ assert(ospf);
+
switch (type)
{
case OSPF_ROUTER_LSA:
@@ -2695,7 +2757,7 @@ ospf_lsa_lookup (struct ospf_area *area, u_int32_t type,
#ifdef HAVE_OPAQUE_LSA
case OSPF_OPAQUE_AS_LSA:
#endif /* HAVE_OPAQUE_LSA */
- return ospf_lsdb_lookup_by_id (area->ospf->lsdb, type, id, adv_router);
+ return ospf_lsdb_lookup_by_id (ospf->lsdb, type, id, adv_router);
break;
default:
break;
@@ -2840,7 +2902,7 @@ ospf_lsa_different (struct ospf_lsa *l1, struct ospf_lsa *l2)
if (l1->data->length == 0)
return 1;
- assert (l1->data->length > OSPF_LSA_HEADER_SIZE);
+ assert ( ntohs(l1->data->length) > OSPF_LSA_HEADER_SIZE);
p1 = (char *) l1->data;
p2 = (char *) l2->data;
@@ -3218,9 +3280,9 @@ ospf_lsa_refresh (struct ospf *ospf, struct ospf_lsa *lsa)
case OSPF_OPAQUE_AS_LSA:
ospf_opaque_lsa_refresh (lsa);
break;
+#endif /* HAVE_OPAQUE_LSA */
default:
break;
-#endif /* HAVE_OPAQUE_LSA */
}
}
@@ -3260,6 +3322,8 @@ ospf_refresher_register_lsa (struct ospf *ospf, struct ospf_lsa *lsa)
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);
}
}
@@ -3324,7 +3388,7 @@ ospf_lsa_refresh_walker (struct thread *t)
next = node->next;
if (IS_DEBUG_OSPF (lsa, LSA_REFRESH))
- zlog_info ("LSA[Refresh]: ospf_lsa_refresh_walker(): refresh lsa %p", lsa);
+ zlog_info ("LSA[Refresh]: ospf_lsa_refresh_walker(): refresh lsa %p (slot %d)", lsa, i);
list_delete_node (refresh_list, node);
ospf_lsa_unlock (lsa);
diff --git a/ospfd/ospf_lsa.h b/ospfd/ospf_lsa.h
index 3271409f..b12feebc 100644
--- a/ospfd/ospf_lsa.h
+++ b/ospfd/ospf_lsa.h
@@ -266,6 +266,7 @@ struct ospf_lsa *ospf_summary_asbr_lsa_refresh (struct ospf *, struct ospf_lsa *
struct ospf_lsa *ospf_lsa_install (struct ospf *,
struct ospf_interface *, struct ospf_lsa *);
+void ospf_nssa_lsa_flush (struct ospf *ospf, struct prefix_ipv4 *p);
void ospf_external_lsa_flush (struct ospf *, u_char, struct prefix_ipv4 *,
unsigned int, struct in_addr);
@@ -319,4 +320,8 @@ int metric_value (struct ospf *, u_char);
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 *);
+#endif
+
#endif /* _ZEBRA_OSPF_LSA_H */
diff --git a/ospfd/ospf_lsdb.c b/ospfd/ospf_lsdb.c
index 71a98ddc..46d8d705 100644
--- a/ospfd/ospf_lsdb.c
+++ b/ospfd/ospf_lsdb.c
@@ -282,3 +282,18 @@ ospf_lsdb_isempty (struct ospf_lsdb *lsdb)
{
return (lsdb->total == 0);
}
+
+struct ospf_lsa *
+foreach_lsa (struct route_table *table, void *p_arg, int int_arg,
+ int (*callback) (struct ospf_lsa *, void *, int))
+{
+ struct route_node *rn;
+ struct ospf_lsa *lsa;
+
+ for (rn = route_top (table); rn; rn = route_next (rn))
+ if ((lsa = rn->info) != NULL)
+ if (callback (lsa, p_arg, int_arg))
+ return lsa;
+
+ return NULL;
+}
diff --git a/ospfd/ospf_lsdb.h b/ospfd/ospf_lsdb.h
index 302dddea..34344b3b 100644
--- a/ospfd/ospf_lsdb.h
+++ b/ospfd/ospf_lsdb.h
@@ -42,9 +42,8 @@ struct ospf_lsdb
};
/* Macros. */
-#define LSDB_LOOP(T,N,L) \
- if ((T) != NULL) \
- for ((N) = route_top ((T)); ((N)); ((N)) = route_next ((N))) \
+#define LSDB_LOOP(T,N,L) \
+ for ((N) = route_top ((T)); ((N)); ((N)) = route_next ((N))) \
if (((L) = (N)->info))
#define ROUTER_LSDB(A) ((A)->lsdb->type[OSPF_ROUTER_LSA].db)
@@ -78,5 +77,7 @@ unsigned long ospf_lsdb_count_all (struct ospf_lsdb *);
unsigned long ospf_lsdb_count (struct ospf_lsdb *, int);
unsigned long ospf_lsdb_count_self (struct ospf_lsdb *, int);
unsigned long ospf_lsdb_isempty (struct ospf_lsdb *);
+struct ospf_lsa *foreach_lsa (struct route_table *, void *, int,
+ int (*callback) (struct ospf_lsa *, void *, int));
#endif /* _ZEBRA_OSPF_LSDB_H */
diff --git a/ospfd/ospf_main.c b/ospfd/ospf_main.c
index b1d1fd4c..0ac82a68 100644
--- a/ospfd/ospf_main.c
+++ b/ospfd/ospf_main.c
@@ -36,8 +36,6 @@
#include "stream.h"
#include "log.h"
#include "memory.h"
-#include "privs.h"
-#include "debug.h"
#include "ospfd/ospfd.h"
#include "ospfd/ospf_interface.h"
@@ -49,29 +47,6 @@
#include "ospfd/ospf_zebra.h"
#include "ospfd/ospf_vty.h"
-/* ospfd privileges */
-zebra_capabilities_t _caps_p [] =
-{
- ZCAP_RAW,
- ZCAP_BIND,
- ZCAP_BROADCAST,
- ZCAP_ADMIN,
-};
-
-struct zebra_privs_t ospfd_privs =
-{
-#if defined(ZEBRA_USER) && defined(ZEBRA_GROUP)
- .user = ZEBRA_USER,
- .group = ZEBRA_GROUP,
-#endif
-#if defined(VTY_GROUP)
- .vty_group = VTY_GROUP,
-#endif
- .caps_p = _caps_p,
- .cap_num_p = sizeof(_caps_p)/sizeof(_caps_p[0]),
- .cap_num_i = 0
-};
-
/* Configuration filename and directory. */
char config_current[] = OSPF_DEFAULT_CONFIG;
char config_default[] = SYSCONFDIR OSPF_DEFAULT_CONFIG;
@@ -86,7 +61,6 @@ struct option longopts[] =
{ "help", no_argument, NULL, 'h'},
{ "vty_addr", required_argument, NULL, 'A'},
{ "vty_port", required_argument, NULL, 'P'},
- { "user", required_argument, NULL, 'u'},
{ "version", no_argument, NULL, 'v'},
{ 0 }
};
@@ -114,7 +88,6 @@ Daemon which manages OSPF.\n\n\
-i, --pid_file Set process identifier file name\n\
-A, --vty_addr Set vty's bind address\n\
-P, --vty_port Set vty's port number\n\
--u, --user User and group to run as\n\
-v, --version Print program version\n\
-h, --help Display this help and exit\n\
\n\
@@ -189,11 +162,6 @@ signal_init ()
signal_set (SIGTTOU, SIG_IGN);
#endif
signal_set (SIGUSR1, sigusr1);
-#ifdef HAVE_GLIBC_BACKTRACE
- signal_set (SIGBUS, debug_print_trace);
- signal_set (SIGSEGV, debug_print_trace);
- signal_set (SIGILL, debug_print_trace);
-#endif /* HAVE_GLIBC_BACKTRACE */
}
/* OSPFd main routine. */
@@ -232,7 +200,7 @@ main (int argc, char **argv)
{
int opt;
- opt = getopt_long (argc, argv, "dlf:hA:P:u:v", longopts, 0);
+ opt = getopt_long (argc, argv, "dlf:hA:P:v", longopts, 0);
if (opt == EOF)
break;
@@ -264,9 +232,6 @@ main (int argc, char **argv)
vty_port = atoi (optarg);
vty_port = (vty_port ? vty_port : OSPF_VTY_PORT);
break;
- case 'u':
- ospfd_privs.group = ospfd_privs.user = optarg;
- break;
case 'v':
print_version (progname);
exit (0);
@@ -284,7 +249,6 @@ main (int argc, char **argv)
master = om->master;
/* Library inits. */
- zprivs_init (&ospfd_privs);
signal_init ();
cmd_init (1);
debug_init ();
diff --git a/ospfd/ospf_neighbor.c b/ospfd/ospf_neighbor.c
new file mode 100644
index 00000000..ccef0559
--- /dev/null
+++ b/ospfd/ospf_neighbor.c
@@ -0,0 +1,319 @@
+/*
+ * OSPF Neighbor functions.
+ * Copyright (C) 1999, 2000 Toshiaki Takada
+ *
+ * This file is part of GNU Zebra.
+ *
+ * GNU Zebra is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation; either version 2, or (at your
+ * option) any later version.
+ *
+ * GNU Zebra is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Zebra; see the file COPYING. If not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <zebra.h>
+
+#include "linklist.h"
+#include "prefix.h"
+#include "memory.h"
+#include "command.h"
+#include "thread.h"
+#include "stream.h"
+#include "table.h"
+#include "log.h"
+
+#include "ospfd/ospfd.h"
+#include "ospfd/ospf_interface.h"
+#include "ospfd/ospf_asbr.h"
+#include "ospfd/ospf_lsa.h"
+#include "ospfd/ospf_lsdb.h"
+#include "ospfd/ospf_neighbor.h"
+#include "ospfd/ospf_nsm.h"
+#include "ospfd/ospf_packet.h"
+#include "ospfd/ospf_network.h"
+#include "ospfd/ospf_flood.h"
+#include "ospfd/ospf_dump.h"
+
+struct ospf_neighbor *
+ospf_nbr_new (struct ospf_interface *oi)
+{
+ struct ospf_neighbor *nbr;
+
+ /* Allcate new neighbor. */
+ nbr = XMALLOC (MTYPE_OSPF_NEIGHBOR, sizeof (struct ospf_neighbor));
+ memset (nbr, 0, sizeof (struct ospf_neighbor));
+
+ /* Relate neighbor to the interface. */
+ nbr->oi = oi;
+
+ /* Set default values. */
+ nbr->state = NSM_Down;
+
+ /* Set inheritance values. */
+ nbr->v_inactivity = OSPF_IF_PARAM (oi, v_wait);
+ nbr->v_db_desc = OSPF_IF_PARAM (oi, retransmit_interval);
+ nbr->v_ls_req = OSPF_IF_PARAM (oi, retransmit_interval);
+ nbr->v_ls_upd = OSPF_IF_PARAM (oi, retransmit_interval);
+ nbr->priority = -1;
+
+ /* DD flags. */
+ nbr->dd_flags = OSPF_DD_FLAG_MS|OSPF_DD_FLAG_M|OSPF_DD_FLAG_I;
+
+ /* Last received and sent DD. */
+ nbr->last_send = NULL;
+
+ nbr->nbr_nbma = NULL;
+
+ ospf_lsdb_init (&nbr->db_sum);
+ ospf_lsdb_init (&nbr->ls_rxmt);
+ ospf_lsdb_init (&nbr->ls_req);
+
+ nbr->crypt_seqnum = 0;
+
+ return nbr;
+}
+
+void
+ospf_nbr_free (struct ospf_neighbor *nbr)
+{
+ /* Free DB summary list. */
+ if (ospf_db_summary_count (nbr))
+ ospf_db_summary_clear (nbr);
+ /* ospf_db_summary_delete_all (nbr); */
+
+ /* Free ls request list. */
+ if (ospf_ls_request_count (nbr))
+ ospf_ls_request_delete_all (nbr);
+
+ /* Free retransmit list. */
+ if (ospf_ls_retransmit_count (nbr))
+ ospf_ls_retransmit_clear (nbr);
+
+ /* Cleanup LSDBs. */
+ ospf_lsdb_cleanup (&nbr->db_sum);
+ ospf_lsdb_cleanup (&nbr->ls_req);
+ ospf_lsdb_cleanup (&nbr->ls_rxmt);
+
+ /* Clear last send packet. */
+ if (nbr->last_send)
+ ospf_packet_free (nbr->last_send);
+
+ if (nbr->nbr_nbma)
+ {
+ nbr->nbr_nbma->nbr = NULL;
+ nbr->nbr_nbma = NULL;
+ }
+
+ /* Cancel all timers. */
+ OSPF_NSM_TIMER_OFF (nbr->t_inactivity);
+ OSPF_NSM_TIMER_OFF (nbr->t_db_desc);
+ OSPF_NSM_TIMER_OFF (nbr->t_ls_req);
+ OSPF_NSM_TIMER_OFF (nbr->t_ls_upd);
+
+ /* Cancel all events. *//* Thread lookup cost would be negligible. */
+ thread_cancel_event (master, nbr);
+
+ XFREE (MTYPE_OSPF_NEIGHBOR, nbr);
+}
+
+/* Delete specified OSPF neighbor from interface. */
+void
+ospf_nbr_delete (struct ospf_neighbor *nbr)
+{
+ struct ospf_interface *oi;
+ struct route_node *rn;
+ struct prefix p;
+
+ oi = nbr->oi;
+
+ /* Unlink ospf neighbor from the interface. */
+ p.family = AF_INET;
+ p.prefixlen = IPV4_MAX_BITLEN;
+ p.u.prefix4 = nbr->src;
+
+ rn = route_node_lookup (oi->nbrs, &p);
+ if (rn)
+ {
+ if (rn->info)
+ {
+ rn->info = NULL;
+ route_unlock_node (rn);
+ }
+ else
+ zlog_info ("Can't find neighbor %s in the interface %s",
+ inet_ntoa (nbr->src), IF_NAME (oi));
+
+ route_unlock_node (rn);
+ }
+
+ /* Free ospf_neighbor structure. */
+ ospf_nbr_free (nbr);
+}
+
+/* Check myself is in the neighbor list. */
+int
+ospf_nbr_bidirectional (struct in_addr *router_id,
+ struct in_addr *neighbors, int size)
+{
+ int i;
+ int max;
+
+ max = size / sizeof (struct in_addr);
+
+ for (i = 0; i < max; i ++)
+ if (IPV4_ADDR_SAME (router_id, &neighbors[i]))
+ return 1;
+
+ return 0;
+}
+
+/* Add self to nbr list. */
+void
+ospf_nbr_add_self (struct ospf_interface *oi)
+{
+ struct ospf_neighbor *nbr;
+ struct prefix p;
+ struct route_node *rn;
+
+ p.family = AF_INET;
+ p.prefixlen = 32;
+ p.u.prefix4 = oi->address->u.prefix4;
+
+ rn = route_node_get (oi->nbrs, &p);
+ if (rn->info)
+ {
+ /* There is already pseudo neighbor. */
+ nbr = rn->info;
+ route_unlock_node (rn);
+ }
+ else
+ rn->info = oi->nbr_self;
+}
+
+/* Get neighbor count by status.
+ Specify status = 0, get all neighbor other than myself. */
+int
+ospf_nbr_count (struct ospf_interface *oi, int state)
+{
+ struct ospf_neighbor *nbr;
+ struct route_node *rn;
+ int count = 0;
+
+ 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++;
+
+ return count;
+}
+
+#ifdef HAVE_OPAQUE_LSA
+int
+ospf_nbr_count_opaque_capable (struct ospf_interface *oi)
+{
+ struct ospf_neighbor *nbr;
+ struct route_node *rn;
+ int count = 0;
+
+ 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;
+}
+#endif /* HAVE_OPAQUE_LSA */
+
+struct ospf_neighbor *
+ospf_nbr_lookup_by_addr (struct route_table *nbrs,
+ struct in_addr *addr)
+{
+ struct prefix p;
+ struct route_node *rn;
+ struct ospf_neighbor *nbr;
+
+ p.family = AF_INET;
+ p.prefixlen = IPV4_MAX_BITLEN;
+ p.u.prefix4 = *addr;
+
+ rn = route_node_lookup (nbrs, &p);
+ if (! rn)
+ return NULL;
+
+ if (rn->info == NULL)
+ {
+ route_unlock_node (rn);
+ return NULL;
+ }
+
+ nbr = (struct ospf_neighbor *) rn->info;
+ route_unlock_node (rn);
+
+ return nbr;
+}
+
+struct ospf_neighbor *
+ospf_nbr_lookup_by_routerid (struct route_table *nbrs,
+ struct in_addr *id)
+{
+ struct route_node *rn;
+ struct ospf_neighbor *nbr;
+
+ for (rn = route_top (nbrs); rn; rn = route_next (rn))
+ if ((nbr = rn->info) != NULL)
+ if (IPV4_ADDR_SAME (&nbr->router_id, id))
+ {
+ route_unlock_node(rn);
+ return nbr;
+ }
+
+ return NULL;
+}
+
+void
+ospf_renegotiate_optional_capabilities (struct ospf *top)
+{
+ listnode node;
+ struct ospf_interface *oi;
+ struct route_table *nbrs;
+ struct route_node *rn;
+ struct ospf_neighbor *nbr;
+
+ /* At first, flush self-originated LSAs from routing domain. */
+ ospf_flush_self_originated_lsas_now (top);
+
+ /* Revert all neighbor status to ExStart. */
+ for (node = listhead (top->oiflist); node; nextnode (node))
+ {
+ if ((oi = getdata (node)) == NULL || (nbrs = oi->nbrs) == NULL)
+ continue;
+
+ for (rn = route_top (nbrs); rn; rn = route_next (rn))
+ {
+ if ((nbr = rn->info) == NULL || nbr == oi->nbr_self)
+ continue;
+
+ if (nbr->state < NSM_ExStart)
+ continue;
+
+ if (IS_DEBUG_OSPF_EVENT)
+ zlog_info ("Renegotiate optional capabilities with neighbor(%s)", inet_ntoa (nbr->router_id));
+
+ OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_SeqNumberMismatch);
+ }
+ }
+
+ return;
+}
diff --git a/ospfd/ospf_neighbor.h b/ospfd/ospf_neighbor.h
index 485b548b..f7b18742 100644
--- a/ospfd/ospf_neighbor.h
+++ b/ospfd/ospf_neighbor.h
@@ -93,9 +93,9 @@ void ospf_nbr_free (struct ospf_neighbor *);
void ospf_nbr_delete (struct ospf_neighbor *);
int ospf_nbr_bidirectional (struct in_addr *, struct in_addr *, int);
void ospf_nbr_add_self (struct ospf_interface *);
-int ospf_nbr_count (struct ospf_interface *, int);
+int ospf_nbr_count (struct route_table *, int);
#ifdef HAVE_OPAQUE_LSA
-int ospf_nbr_count_opaque_capable (struct ospf_interface *);
+int ospf_opaque_capable_nbr_count (struct route_table *nbrs, int status);
#endif /* HAVE_OPAQUE_LSA */
struct ospf_neighbor *ospf_nbr_lookup_by_addr (struct route_table *,
struct in_addr *);
diff --git a/ospfd/ospf_network.c b/ospfd/ospf_network.c
index 87aec1e5..56ec8647 100644
--- a/ospfd/ospf_network.c
+++ b/ospfd/ospf_network.c
@@ -29,9 +29,6 @@
#include "sockunion.h"
#include "log.h"
#include "sockopt.h"
-#include "privs.h"
-
-extern struct zebra_privs_t ospfd_privs;
#include "ospfd/ospfd.h"
#include "ospfd/ospf_network.h"
@@ -42,8 +39,6 @@ extern struct zebra_privs_t ospfd_privs;
#include "ospfd/ospf_neighbor.h"
#include "ospfd/ospf_packet.h"
-
-
/* Join to the OSPF ALL SPF ROUTERS multicast group. */
int
ospf_if_add_allspfrouters (struct ospf *top, struct prefix *p,
@@ -156,20 +151,12 @@ ospf_sock_init (void)
int ospf_sock;
int ret, tos, hincl = 1;
- if ( ospfd_privs.change (ZPRIVS_RAISE) )
- zlog_err ("ospf_sock_init: could not raise privs, %s",
- strerror (errno) );
-
ospf_sock = socket (AF_INET, SOCK_RAW, IPPROTO_OSPFIGP);
if (ospf_sock < 0)
{
- if ( ospfd_privs.change (ZPRIVS_LOWER) )
- zlog_err ("ospf_sock_init: could not lower privs, %s",
- strerror (errno) );
zlog_warn ("ospf_read_sock_init: socket: %s", strerror (errno));
return -1;
}
-
/* Set precedence field. */
#ifdef IPTOS_PREC_INTERNETCONTROL
@@ -178,9 +165,6 @@ ospf_sock_init (void)
(char *) &tos, sizeof (int));
if (ret < 0)
{
- if ( ospfd_privs.change (ZPRIVS_LOWER) )
- zlog_err ("ospf_sock_init: could not lower privs, %s",
- strerror (errno) );
zlog_warn ("can't set sockopt IP_TOS %d to socket %d", tos, ospf_sock);
close (ospf_sock); /* Prevent sd leak. */
return ret;
@@ -190,40 +174,19 @@ ospf_sock_init (void)
/* we will include IP header with packet */
ret = setsockopt (ospf_sock, IPPROTO_IP, IP_HDRINCL, &hincl, sizeof (hincl));
if (ret < 0)
- {
- if ( ospfd_privs.change (ZPRIVS_LOWER) )
- zlog_err ("ospf_sock_init: could not lower privs, %s",
- strerror (errno) );
- zlog_warn ("Can't set IP_HDRINCL option");
- }
+ zlog_warn ("Can't set IP_HDRINCL option");
#if defined (IP_PKTINFO)
ret = setsockopt (ospf_sock, IPPROTO_IP, IP_PKTINFO, &hincl, sizeof (hincl));
if (ret < 0)
- {
- if ( ospfd_privs.change (ZPRIVS_LOWER) )
- zlog_err ("ospf_sock_init: could not lower privs, %s",
- strerror (errno) );
- zlog_warn ("Can't set IP_PKTINFO option");
- }
+ zlog_warn ("Can't set IP_PKTINFO option");
#elif defined (IP_RECVIF)
ret = setsockopt (ospf_sock, IPPROTO_IP, IP_RECVIF, &hincl, sizeof (hincl));
if (ret < 0)
- {
- if ( ospfd_privs.change (ZPRIVS_LOWER) )
- zlog_err ("ospf_sock_init: could not lower privs, %s",
- strerror (errno) );
- zlog_warn ("Can't set IP_RECVIF option");
- }
+ zlog_warn ("Can't set IP_RECVIF option");
#else
#warning "cannot be able to receive link information on this OS"
#endif
-
- if (ospfd_privs.change (ZPRIVS_LOWER))
- {
- zlog_err ("ospf_sock_init: could not lower privs, %s",
- strerror (errno) );
- }
return ospf_sock;
}
diff --git a/ospfd/ospf_nsm.c b/ospfd/ospf_nsm.c
new file mode 100644
index 00000000..a8efdcc1
--- /dev/null
+++ b/ospfd/ospf_nsm.c
@@ -0,0 +1,877 @@
+/*
+ * OSPF version 2 Neighbor State Machine
+ * From RFC2328 [OSPF Version 2]
+ * Copyright (C) 1999, 2000 Toshiaki Takada
+ *
+ * This file is part of GNU Zebra.
+ *
+ * GNU Zebra is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * GNU Zebra is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Zebra; see the file COPYING. If not, write to the Free
+ * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include <zebra.h>
+
+#include "thread.h"
+#include "memory.h"
+#include "hash.h"
+#include "linklist.h"
+#include "prefix.h"
+#include "if.h"
+#include "table.h"
+#include "stream.h"
+#include "table.h"
+#include "log.h"
+
+#include "ospfd/ospfd.h"
+#include "ospfd/ospf_interface.h"
+#include "ospfd/ospf_ism.h"
+#include "ospfd/ospf_asbr.h"
+#include "ospfd/ospf_lsa.h"
+#include "ospfd/ospf_lsdb.h"
+#include "ospfd/ospf_neighbor.h"
+#include "ospfd/ospf_nsm.h"
+#include "ospfd/ospf_network.h"
+#include "ospfd/ospf_packet.h"
+#include "ospfd/ospf_dump.h"
+#include "ospfd/ospf_flood.h"
+#include "ospfd/ospf_abr.h"
+
+void nsm_reset_nbr (struct ospf_neighbor *);
+
+
+/* OSPF NSM Timer functions. */
+int
+ospf_inactivity_timer (struct thread *thread)
+{
+ struct ospf_neighbor *nbr;
+
+ nbr = THREAD_ARG (thread);
+ nbr->t_inactivity = NULL;
+
+ if (IS_DEBUG_OSPF (nsm, NSM_TIMERS))
+ zlog (NULL, LOG_DEBUG, "NSM[%s:%s]: Timer (Inactivity timer expire)",
+ IF_NAME (nbr->oi), inet_ntoa (nbr->router_id));
+
+ OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_InactivityTimer);
+
+ return 0;
+}
+
+int
+ospf_db_desc_timer (struct thread *thread)
+{
+ struct ospf_interface *oi;
+ struct ospf_neighbor *nbr;
+
+ nbr = THREAD_ARG (thread);
+ nbr->t_db_desc = NULL;
+
+ oi = nbr->oi;
+
+ if (IS_DEBUG_OSPF (nsm, NSM_TIMERS))
+ zlog (NULL, LOG_INFO, "NSM[%s:%s]: Timer (DD Retransmit timer expire)",
+ IF_NAME (nbr->oi), inet_ntoa (nbr->src));
+
+ /* resent last send DD packet. */
+ assert (nbr->last_send);
+ ospf_db_desc_resend (nbr);
+
+ /* DD Retransmit timer set. */
+ OSPF_NSM_TIMER_ON (nbr->t_db_desc, ospf_db_desc_timer, nbr->v_db_desc);
+
+ return 0;
+}
+
+/* Hook function called after ospf NSM event is occured. */
+
+void
+nsm_timer_set (struct ospf_neighbor *nbr)
+{
+ switch (nbr->state)
+ {
+ case NSM_Down:
+ OSPF_NSM_TIMER_OFF (nbr->t_db_desc);
+ OSPF_NSM_TIMER_OFF (nbr->t_ls_upd);
+ break;
+ case NSM_Attempt:
+ OSPF_NSM_TIMER_OFF (nbr->t_db_desc);
+ OSPF_NSM_TIMER_OFF (nbr->t_ls_upd);
+ break;
+ case NSM_Init:
+ OSPF_NSM_TIMER_OFF (nbr->t_db_desc);
+ OSPF_NSM_TIMER_OFF (nbr->t_ls_upd);
+ break;
+ case NSM_TwoWay:
+ OSPF_NSM_TIMER_OFF (nbr->t_db_desc);
+ OSPF_NSM_TIMER_OFF (nbr->t_ls_upd);
+ break;
+ case NSM_ExStart:
+ OSPF_NSM_TIMER_ON (nbr->t_db_desc, ospf_db_desc_timer, nbr->v_db_desc);
+ OSPF_NSM_TIMER_OFF (nbr->t_ls_upd);
+ break;
+ case NSM_Exchange:
+ OSPF_NSM_TIMER_ON (nbr->t_ls_upd, ospf_ls_upd_timer, nbr->v_ls_upd);
+ if (!IS_SET_DD_MS (nbr->dd_flags))
+ OSPF_NSM_TIMER_OFF (nbr->t_db_desc);
+ break;
+ case NSM_Loading:
+ OSPF_NSM_TIMER_OFF (nbr->t_db_desc);
+ break;
+ case NSM_Full:
+ OSPF_NSM_TIMER_OFF (nbr->t_db_desc);
+ break;
+ default:
+ OSPF_NSM_TIMER_OFF (nbr->t_db_desc);
+ break;
+ }
+}
+
+
+/* OSPF NSM functions. */
+int
+nsm_ignore (struct ospf_neighbor *nbr)
+{
+ if (IS_DEBUG_OSPF (nsm, NSM_EVENTS))
+ zlog (NULL, LOG_INFO, "NSM[%s:%s]: nsm_ignore called",
+ IF_NAME (nbr->oi), inet_ntoa (nbr->router_id));
+
+ return 0;
+}
+
+int
+nsm_hello_received (struct ospf_neighbor *nbr)
+{
+ /* Start or Restart Inactivity Timer. */
+ OSPF_NSM_TIMER_OFF (nbr->t_inactivity);
+
+ OSPF_NSM_TIMER_ON (nbr->t_inactivity, ospf_inactivity_timer,
+ nbr->v_inactivity);
+
+ if (nbr->oi->type == OSPF_IFTYPE_NBMA && nbr->nbr_nbma)
+ OSPF_POLL_TIMER_OFF (nbr->nbr_nbma->t_poll);
+
+ return 0;
+}
+
+int
+nsm_start (struct ospf_neighbor *nbr)
+{
+
+ nsm_reset_nbr (nbr);
+
+ if (nbr->nbr_nbma)
+ OSPF_POLL_TIMER_OFF (nbr->nbr_nbma->t_poll);
+
+ OSPF_NSM_TIMER_OFF (nbr->t_inactivity);
+
+ OSPF_NSM_TIMER_ON (nbr->t_inactivity, ospf_inactivity_timer,
+ nbr->v_inactivity);
+
+ return 0;
+}
+
+int
+nsm_twoway_received (struct ospf_neighbor *nbr)
+{
+ struct ospf_interface *oi;
+ int next_state = NSM_TwoWay;
+
+ oi = nbr->oi;
+
+ /* These netowork types must be adjacency. */
+ if (oi->type == OSPF_IFTYPE_POINTOPOINT ||
+ oi->type == OSPF_IFTYPE_POINTOMULTIPOINT ||
+ oi->type == OSPF_IFTYPE_VIRTUALLINK)
+ next_state = NSM_ExStart;
+
+ /* 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)))
+ next_state = NSM_ExStart;
+
+ /* Neighboring Router is the DRouter or the BDRouter. */
+ if (IPV4_ADDR_SAME (&nbr->address.u.prefix4, &nbr->d_router) ||
+ IPV4_ADDR_SAME (&nbr->address.u.prefix4, &nbr->bd_router))
+ next_state = NSM_ExStart;
+
+ return next_state;
+}
+
+int
+ospf_db_summary_count (struct ospf_neighbor *nbr)
+{
+ return ospf_lsdb_count_all (&nbr->db_sum);
+}
+
+int
+ospf_db_summary_isempty (struct ospf_neighbor *nbr)
+{
+ return ospf_lsdb_isempty (&nbr->db_sum);
+}
+
+int
+ospf_db_summary_add (struct ospf_neighbor *nbr, struct ospf_lsa *lsa)
+{
+#ifdef HAVE_OPAQUE_LSA
+ switch (lsa->data->type)
+ {
+ case OSPF_OPAQUE_LINK_LSA:
+ /* Exclude type-9 LSAs that does not have the same "oi" with "nbr". */
+ if (lsa->oi != nbr->oi)
+ return 0;
+ break;
+ case OSPF_OPAQUE_AREA_LSA:
+ /*
+ * It is assured by the caller function "nsm_negotiation_done()"
+ * that every given LSA belongs to the same area with "nbr".
+ */
+ break;
+ case OSPF_OPAQUE_AS_LSA:
+ default:
+ break;
+ }
+#endif /* HAVE_OPAQUE_LSA */
+
+#ifdef HAVE_NSSA
+ /* Stay away from any Local Translated Type-7 LSAs */
+ if (CHECK_FLAG (lsa->flags, OSPF_LSA_LOCAL_XLT))
+ return 0;
+#endif /* HAVE_NSSA */
+
+ if (IS_LSA_MAXAGE (lsa))
+ ospf_ls_retransmit_add (nbr, lsa);
+ else
+ ospf_lsdb_add (&nbr->db_sum, lsa);
+
+ return 0;
+}
+
+void
+ospf_db_summary_clear (struct ospf_neighbor *nbr)
+{
+ struct ospf_lsdb *lsdb;
+ int i;
+
+ lsdb = &nbr->db_sum;
+ for (i = OSPF_MIN_LSA; i < OSPF_MAX_LSA; i++)
+ {
+ struct route_table *table = lsdb->type[i].db;
+ struct route_node *rn;
+
+ for (rn = route_top (table); rn; rn = route_next (rn))
+ if (rn->info)
+ ospf_lsdb_delete (&nbr->db_sum, rn->info);
+ }
+}
+
+
+
+/* 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
+ summary list. AS-external-LSAs are omitted from the Database
+ summary list if the area has been configured as a stub. */
+int
+nsm_negotiation_done (struct ospf_neighbor *nbr)
+{
+ struct ospf_area *area = nbr->oi->area;
+ struct ospf_lsa *lsa;
+ struct route_node *rn;
+
+ 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);
+
+#ifdef HAVE_OPAQUE_LSA
+ /* Process only if the neighbor is opaque capable. */
+ if (CHECK_FLAG (nbr->options, OSPF_OPTION_O))
+ {
+ 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)
+ 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))
+ LSDB_LOOP (OPAQUE_AS_LSDB (nbr->oi->ospf), rn, lsa)
+ ospf_db_summary_add (nbr, lsa);
+#endif /* HAVE_OPAQUE_LSA */
+
+ return 0;
+}
+
+int
+nsm_exchange_done (struct ospf_neighbor *nbr)
+{
+ if (ospf_ls_request_isempty (nbr))
+ return NSM_Full;
+
+ /* Cancel dd retransmit timer. */
+ /* OSPF_NSM_TIMER_OFF (nbr->t_db_desc); */
+
+ /* Send Link State Request. */
+ ospf_ls_req_send (nbr);
+
+ return NSM_Loading;
+}
+
+int
+nsm_bad_ls_req (struct ospf_neighbor *nbr)
+{
+ /* Clear neighbor. */
+ nsm_reset_nbr (nbr);
+
+ return 0;
+}
+
+int
+nsm_adj_ok (struct ospf_neighbor *nbr)
+{
+ struct ospf_interface *oi;
+ int next_state;
+ int flag = 0;
+
+ oi = nbr->oi;
+ 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)
+ 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)))
+ flag = 1;
+
+ 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)
+ next_state = NSM_ExStart;
+ else if (nbr->state >= NSM_ExStart && flag == 0)
+ next_state = NSM_TwoWay;
+
+ return next_state;
+}
+
+int
+nsm_seq_number_mismatch (struct ospf_neighbor *nbr)
+{
+ /* Clear neighbor. */
+ nsm_reset_nbr (nbr);
+
+ return 0;
+}
+
+int
+nsm_oneway_received (struct ospf_neighbor *nbr)
+{
+ /* Clear neighbor. */
+ nsm_reset_nbr (nbr);
+
+ return 0;
+}
+
+void
+nsm_reset_nbr (struct ospf_neighbor *nbr)
+{
+ /* Clear Database Summary list. */
+ if (!ospf_db_summary_isempty (nbr))
+ ospf_db_summary_clear (nbr);
+
+ /* Clear Link State Request list. */
+ if (!ospf_ls_request_isempty (nbr))
+ ospf_ls_request_delete_all (nbr);
+
+ /* Clear Link State Retransmission list. */
+ if (!ospf_ls_retransmit_isempty (nbr))
+ ospf_ls_retransmit_clear (nbr);
+
+ /* Cancel thread. */
+ OSPF_NSM_TIMER_OFF (nbr->t_db_desc);
+ OSPF_NSM_TIMER_OFF (nbr->t_ls_req);
+ OSPF_NSM_TIMER_OFF (nbr->t_ls_upd);
+ OSPF_NSM_TIMER_OFF (nbr->t_hello_reply);
+
+#ifdef HAVE_OPAQUE_LSA
+ if (CHECK_FLAG (nbr->options, OSPF_OPTION_O))
+ UNSET_FLAG (nbr->options, OSPF_OPTION_O);
+#endif /* HAVE_OPAQUE_LSA */
+}
+
+int
+nsm_kill_nbr (struct ospf_neighbor *nbr)
+{
+ /* call it here because we cannot call it from ospf_nsm_event */
+ nsm_change_state (nbr, NSM_Down);
+
+ /* Reset neighbor. */
+ nsm_reset_nbr (nbr);
+
+ if (nbr->oi->type == OSPF_IFTYPE_NBMA && nbr->nbr_nbma != NULL)
+ {
+ struct ospf_nbr_nbma *nbr_nbma = nbr->nbr_nbma;
+
+ nbr_nbma->nbr = NULL;
+ nbr_nbma->state_change = nbr->state_change;
+
+ nbr->nbr_nbma = NULL;
+
+ OSPF_POLL_TIMER_ON (nbr_nbma->t_poll, ospf_poll_timer,
+ nbr_nbma->v_poll);
+
+ if (IS_DEBUG_OSPF (nsm, NSM_EVENTS))
+ zlog_info ("NSM[%s:%s]: Down (PollIntervalTimer scheduled)",
+ IF_NAME (nbr->oi), inet_ntoa (nbr->address.u.prefix4));
+ }
+
+ /* Delete neighbor from interface. */
+ ospf_nbr_delete (nbr);
+
+ return 0;
+}
+
+int
+nsm_inactivity_timer (struct ospf_neighbor *nbr)
+{
+ /* Kill neighbor. */
+ nsm_kill_nbr (nbr);
+
+ return 0;
+}
+
+int
+nsm_ll_down (struct ospf_neighbor *nbr)
+{
+ /* Reset neighbor. */
+ /*nsm_reset_nbr (nbr);*/
+
+ /* Kill neighbor. */
+ nsm_kill_nbr (nbr);
+
+ return 0;
+}
+
+/* Neighbor State Machine */
+struct {
+ int (*func) ();
+ int next_state;
+} NSM [OSPF_NSM_STATE_MAX][OSPF_NSM_EVENT_MAX] =
+{
+ {
+ /* DependUpon: dummy state. */
+ { nsm_ignore, NSM_DependUpon }, /* NoEvent */
+ { nsm_ignore, NSM_DependUpon }, /* HelloReceived */
+ { nsm_ignore, NSM_DependUpon }, /* Start */
+ { nsm_ignore, NSM_DependUpon }, /* 2-WayReceived */
+ { nsm_ignore, NSM_DependUpon }, /* NegotiationDone */
+ { nsm_ignore, NSM_DependUpon }, /* ExchangeDone */
+ { nsm_ignore, NSM_DependUpon }, /* BadLSReq */
+ { nsm_ignore, NSM_DependUpon }, /* LoadingDone */
+ { nsm_ignore, NSM_DependUpon }, /* AdjOK? */
+ { nsm_ignore, NSM_DependUpon }, /* SeqNumberMismatch */
+ { nsm_ignore, NSM_DependUpon }, /* 1-WayReceived */
+ { nsm_ignore, NSM_DependUpon }, /* KillNbr */
+ { nsm_ignore, NSM_DependUpon }, /* InactivityTimer */
+ { nsm_ignore, NSM_DependUpon }, /* LLDown */
+ },
+ {
+ /* Down: */
+ { nsm_ignore, NSM_DependUpon }, /* NoEvent */
+ { nsm_hello_received, NSM_Init }, /* HelloReceived */
+ { nsm_start, NSM_Attempt }, /* Start */
+ { nsm_ignore, NSM_Down }, /* 2-WayReceived */
+ { nsm_ignore, NSM_Down }, /* NegotiationDone */
+ { nsm_ignore, NSM_Down }, /* ExchangeDone */
+ { nsm_ignore, NSM_Down }, /* BadLSReq */
+ { nsm_ignore, NSM_Down }, /* LoadingDone */
+ { nsm_ignore, NSM_Down }, /* AdjOK? */
+ { nsm_ignore, NSM_Down }, /* SeqNumberMismatch */
+ { nsm_ignore, NSM_Down }, /* 1-WayReceived */
+ { nsm_kill_nbr, NSM_Down }, /* KillNbr */
+ { nsm_inactivity_timer, NSM_Down }, /* InactivityTimer */
+ { nsm_ll_down, NSM_Down }, /* LLDown */
+ },
+ {
+ /* Attempt: */
+ { nsm_ignore, NSM_DependUpon }, /* NoEvent */
+ { nsm_hello_received, NSM_Init }, /* HelloReceived */
+ { nsm_ignore, NSM_Attempt }, /* Start */
+ { nsm_ignore, NSM_Attempt }, /* 2-WayReceived */
+ { nsm_ignore, NSM_Attempt }, /* NegotiationDone */
+ { nsm_ignore, NSM_Attempt }, /* ExchangeDone */
+ { nsm_ignore, NSM_Attempt }, /* BadLSReq */
+ { nsm_ignore, NSM_Attempt }, /* LoadingDone */
+ { nsm_ignore, NSM_Attempt }, /* AdjOK? */
+ { nsm_ignore, NSM_Attempt }, /* SeqNumberMismatch */
+ { nsm_ignore, NSM_Attempt }, /* 1-WayReceived */
+ { nsm_kill_nbr, NSM_Down }, /* KillNbr */
+ { nsm_inactivity_timer, NSM_Down }, /* InactivityTimer */
+ { nsm_ll_down, NSM_Down }, /* LLDown */
+ },
+ {
+ /* Init: */
+ { nsm_ignore, NSM_DependUpon }, /* NoEvent */
+ { nsm_hello_received, NSM_Init }, /* HelloReceived */
+ { nsm_ignore, NSM_Init }, /* Start */
+ { nsm_twoway_received, NSM_DependUpon }, /* 2-WayReceived */
+ { nsm_ignore, NSM_Init }, /* NegotiationDone */
+ { nsm_ignore, NSM_Init }, /* ExchangeDone */
+ { nsm_ignore, NSM_Init }, /* BadLSReq */
+ { nsm_ignore, NSM_Init }, /* LoadingDone */
+ { nsm_ignore, NSM_Init }, /* AdjOK? */
+ { nsm_ignore, NSM_Init }, /* SeqNumberMismatch */
+ { nsm_ignore, NSM_Init }, /* 1-WayReceived */
+ { nsm_kill_nbr, NSM_Down }, /* KillNbr */
+ { nsm_inactivity_timer, NSM_Down }, /* InactivityTimer */
+ { nsm_ll_down, NSM_Down }, /* LLDown */
+ },
+ {
+ /* 2-Way: */
+ { nsm_ignore, NSM_DependUpon }, /* NoEvent */
+ { nsm_hello_received, NSM_TwoWay }, /* HelloReceived */
+ { nsm_ignore, NSM_TwoWay }, /* Start */
+ { nsm_ignore, NSM_TwoWay }, /* 2-WayReceived */
+ { nsm_ignore, NSM_TwoWay }, /* NegotiationDone */
+ { nsm_ignore, NSM_TwoWay }, /* ExchangeDone */
+ { nsm_ignore, NSM_TwoWay }, /* BadLSReq */
+ { nsm_ignore, NSM_TwoWay }, /* LoadingDone */
+ { nsm_adj_ok, NSM_DependUpon }, /* AdjOK? */
+ { nsm_ignore, NSM_TwoWay }, /* SeqNumberMismatch */
+ { nsm_oneway_received, NSM_Init }, /* 1-WayReceived */
+ { nsm_kill_nbr, NSM_Down }, /* KillNbr */
+ { nsm_inactivity_timer, NSM_Down }, /* InactivityTimer */
+ { nsm_ll_down, NSM_Down }, /* LLDown */
+ },
+ {
+ /* ExStart: */
+ { nsm_ignore, NSM_DependUpon }, /* NoEvent */
+ { nsm_hello_received, NSM_ExStart }, /* HelloReceived */
+ { nsm_ignore, NSM_ExStart }, /* Start */
+ { nsm_ignore, NSM_ExStart }, /* 2-WayReceived */
+ { nsm_negotiation_done, NSM_Exchange }, /* NegotiationDone */
+ { nsm_ignore, NSM_ExStart }, /* ExchangeDone */
+ { nsm_ignore, NSM_ExStart }, /* BadLSReq */
+ { nsm_ignore, NSM_ExStart }, /* LoadingDone */
+ { nsm_adj_ok, NSM_DependUpon }, /* AdjOK? */
+ { nsm_ignore, NSM_ExStart }, /* SeqNumberMismatch */
+ { nsm_oneway_received, NSM_Init }, /* 1-WayReceived */
+ { nsm_kill_nbr, NSM_Down }, /* KillNbr */
+ { nsm_inactivity_timer, NSM_Down }, /* InactivityTimer */
+ { nsm_ll_down, NSM_Down }, /* LLDown */
+ },
+ {
+ /* Exchange: */
+ { nsm_ignore, NSM_DependUpon }, /* NoEvent */
+ { nsm_hello_received, NSM_Exchange }, /* HelloReceived */
+ { nsm_ignore, NSM_Exchange }, /* Start */
+ { nsm_ignore, NSM_Exchange }, /* 2-WayReceived */
+ { nsm_ignore, NSM_Exchange }, /* NegotiationDone */
+ { nsm_exchange_done, NSM_DependUpon }, /* ExchangeDone */
+ { nsm_bad_ls_req, NSM_ExStart }, /* BadLSReq */
+ { nsm_ignore, NSM_Exchange }, /* LoadingDone */
+ { nsm_adj_ok, NSM_DependUpon }, /* AdjOK? */
+ { nsm_seq_number_mismatch, NSM_ExStart }, /* SeqNumberMismatch */
+ { nsm_oneway_received, NSM_Init }, /* 1-WayReceived */
+ { nsm_kill_nbr, NSM_Down }, /* KillNbr */
+ { nsm_inactivity_timer, NSM_Down }, /* InactivityTimer */
+ { nsm_ll_down, NSM_Down }, /* LLDown */
+ },
+ {
+ /* Loading: */
+ { nsm_ignore, NSM_DependUpon }, /* NoEvent */
+ { nsm_hello_received, NSM_Loading }, /* HelloReceived */
+ { nsm_ignore, NSM_Loading }, /* Start */
+ { nsm_ignore, NSM_Loading }, /* 2-WayReceived */
+ { nsm_ignore, NSM_Loading }, /* NegotiationDone */
+ { nsm_ignore, NSM_Loading }, /* ExchangeDone */
+ { nsm_bad_ls_req, NSM_ExStart }, /* BadLSReq */
+ { nsm_ignore, NSM_Full }, /* LoadingDone */
+ { nsm_adj_ok, NSM_DependUpon }, /* AdjOK? */
+ { nsm_seq_number_mismatch, NSM_ExStart }, /* SeqNumberMismatch */
+ { nsm_oneway_received, NSM_Init }, /* 1-WayReceived */
+ { nsm_kill_nbr, NSM_Down }, /* KillNbr */
+ { nsm_inactivity_timer, NSM_Down }, /* InactivityTimer */
+ { nsm_ll_down, NSM_Down }, /* LLDown */
+ },
+ { /* Full: */
+ { nsm_ignore, NSM_DependUpon }, /* NoEvent */
+ { nsm_hello_received, NSM_Full }, /* HelloReceived */
+ { nsm_ignore, NSM_Full }, /* Start */
+ { nsm_ignore, NSM_Full }, /* 2-WayReceived */
+ { nsm_ignore, NSM_Full }, /* NegotiationDone */
+ { nsm_ignore, NSM_Full }, /* ExchangeDone */
+ { nsm_bad_ls_req, NSM_ExStart }, /* BadLSReq */
+ { nsm_ignore, NSM_Full }, /* LoadingDone */
+ { nsm_adj_ok, NSM_DependUpon }, /* AdjOK? */
+ { nsm_seq_number_mismatch, NSM_ExStart }, /* SeqNumberMismatch */
+ { nsm_oneway_received, NSM_Init }, /* 1-WayReceived */
+ { nsm_kill_nbr, NSM_Down }, /* KillNbr */
+ { nsm_inactivity_timer, NSM_Down }, /* InactivityTimer */
+ { nsm_ll_down, NSM_Down }, /* LLDown */
+ },
+};
+
+static char *ospf_nsm_event_str[] =
+{
+ "NoEvent",
+ "HelloReceived",
+ "Start",
+ "2-WayReceived",
+ "NegotiationDone",
+ "ExchangeDone",
+ "BadLSReq",
+ "LoadingDone",
+ "AdjOK?",
+ "SeqNumberMismatch",
+ "1-WayReceived",
+ "KillNbr",
+ "InactivityTimer",
+ "LLDown",
+};
+
+void
+nsm_change_state (struct ospf_neighbor *nbr, int state)
+{
+ struct ospf_interface *oi = nbr->oi;
+ struct ospf_area *vl_area = NULL;
+ u_char old_state;
+ int x;
+ int force = 1;
+
+ /* Logging change of status. */
+ if (IS_DEBUG_OSPF (nsm, NSM_STATUS))
+ zlog_info ("NSM[%s:%s]: State change %s -> %s",
+ IF_NAME (nbr->oi), inet_ntoa (nbr->router_id),
+ LOOKUP (ospf_nsm_state_msg, nbr->state),
+ LOOKUP (ospf_nsm_state_msg, state));
+
+ /* Preserve old status. */
+ old_state = nbr->state;
+
+ /* Change to new status. */
+ nbr->state = state;
+
+ /* Statistics. */
+ nbr->state_change++;
+
+ if (oi->type == OSPF_IFTYPE_VIRTUALLINK)
+ 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) ||
+ (old_state == NSM_Full && state != NSM_Full))
+ {
+ if (state == NSM_Full)
+ {
+ oi->full_nbrs++;
+ oi->area->full_nbrs++;
+
+ ospf_check_abr_status (oi->ospf);
+
+ if (oi->type == OSPF_IFTYPE_VIRTUALLINK && vl_area)
+ if (++vl_area->full_vls == 1)
+ 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 (oi->ospf, x, force);
+ }
+ }
+ else
+ {
+ oi->full_nbrs--;
+ oi->area->full_nbrs--;
+
+ 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 (oi->ospf);
+
+ /* clear neighbor retransmit list */
+ if (!ospf_ls_retransmit_isempty (nbr))
+ ospf_ls_retransmit_clear (nbr);
+ }
+
+ zlog_info ("nsm_change_state(): "
+ "scheduling new router-LSA origination");
+
+ ospf_router_lsa_timer_add (oi->area);
+
+ if (oi->type == OSPF_IFTYPE_VIRTUALLINK)
+ {
+ struct ospf_area *vl_area =
+ ospf_area_lookup_by_area_id (oi->ospf, oi->vl_data->vl_area_id);
+
+ if (vl_area)
+ ospf_router_lsa_timer_add (vl_area);
+ }
+
+ /* Originate network-LSA. */
+ if (oi->state == ISM_DR)
+ {
+ if (oi->network_lsa_self && oi->full_nbrs == 0)
+ {
+ ospf_lsa_flush_area (oi->network_lsa_self, oi->area);
+ ospf_lsa_unlock (oi->network_lsa_self);
+ oi->network_lsa_self = NULL;
+ OSPF_TIMER_OFF (oi->t_network_lsa_self);
+ }
+ else
+ ospf_network_lsa_timer_add (oi);
+ }
+ }
+
+#ifdef HAVE_OPAQUE_LSA
+ ospf_opaque_nsm_change (nbr, old_state);
+#endif /* HAVE_OPAQUE_LSA */
+
+ /* Start DD exchange protocol */
+ if (state == NSM_ExStart)
+ {
+ if (nbr->dd_seqnum == 0)
+ nbr->dd_seqnum = time (NULL);
+ else
+ nbr->dd_seqnum++;
+
+ nbr->dd_flags = OSPF_DD_FLAG_I|OSPF_DD_FLAG_M|OSPF_DD_FLAG_MS;
+ ospf_db_desc_send (nbr);
+ }
+
+ /* clear cryptographic sequence number */
+ if (state == NSM_Down)
+ nbr->crypt_seqnum = 0;
+
+ /* Generete NeighborChange ISM event. */
+#ifdef BUGGY_ISM_TRANSITION
+ if ((old_state < NSM_TwoWay && state >= NSM_TwoWay) ||
+ (old_state >= NSM_TwoWay && state < NSM_TwoWay))
+ OSPF_ISM_EVENT_EXECUTE (oi, ISM_NeighborChange);
+#else /* BUGGY_ISM_TRANSITION */
+ switch (oi->state) {
+ case ISM_DROther:
+ case ISM_Backup:
+ case ISM_DR:
+ if ((old_state < NSM_TwoWay && state >= NSM_TwoWay) ||
+ (old_state >= NSM_TwoWay && state < NSM_TwoWay))
+ OSPF_ISM_EVENT_EXECUTE (oi, ISM_NeighborChange);
+ break;
+ default:
+ /* ISM_PointToPoint -> ISM_Down, ISM_Loopback -> ISM_Down, etc. */
+ break;
+ }
+#endif /* BUGGY_ISM_TRANSITION */
+
+ /* Performance hack. Send hello immideately when some neighbor enter
+ Init state. This whay we decrease neighbor discovery time. Gleb.*/
+ if (state == NSM_Init)
+ {
+ OSPF_ISM_TIMER_OFF (oi->t_hello);
+ OSPF_ISM_TIMER_ON (oi->t_hello, ospf_hello_timer, 1);
+ }
+
+ /* Preserve old status? */
+}
+
+/* Execute NSM event process. */
+int
+ospf_nsm_event (struct thread *thread)
+{
+ int event;
+ int next_state;
+ struct ospf_neighbor *nbr;
+ struct in_addr router_id;
+ int old_state;
+ struct ospf_interface *oi;
+
+ nbr = THREAD_ARG (thread);
+ event = THREAD_VAL (thread);
+ router_id = nbr->router_id;
+
+ old_state = nbr->state;
+ oi = nbr->oi ;
+
+ /* Call function. */
+ next_state = (*(NSM [nbr->state][event].func))(nbr);
+
+ /* When event is NSM_KillNbr or InactivityTimer, the neighbor is
+ deleted. */
+ if (event == NSM_KillNbr || event == NSM_InactivityTimer)
+ {
+ if (IS_DEBUG_OSPF (nsm, NSM_EVENTS))
+ zlog_info ("NSM[%s:%s]: neighbor deleted",
+ IF_NAME (oi), inet_ntoa (router_id));
+
+ /* Timers are canceled in ospf_nbr_free, moreover we cannot call
+ nsm_timer_set here because nbr is freed already!!!*/
+ /*nsm_timer_set (nbr);*/
+
+ return 0;
+ }
+
+ if (! next_state)
+ next_state = NSM [nbr->state][event].next_state;
+
+ if (IS_DEBUG_OSPF (nsm, NSM_EVENTS))
+ zlog_info ("NSM[%s:%s]: %s (%s)", IF_NAME (oi),
+ inet_ntoa (nbr->router_id),
+ LOOKUP (ospf_nsm_state_msg, nbr->state),
+ ospf_nsm_event_str [event]);
+
+ /* If state is changed. */
+ if (next_state != nbr->state)
+ nsm_change_state (nbr, next_state);
+
+ /* Make sure timer is set. */
+ nsm_timer_set (nbr);
+
+ return 0;
+}
+
+/* Check loading state. */
+void
+ospf_check_nbr_loading (struct ospf_neighbor *nbr)
+{
+ if (nbr->state == NSM_Loading)
+ {
+ if (ospf_ls_request_isempty (nbr))
+ OSPF_NSM_EVENT_SCHEDULE (nbr, NSM_LoadingDone);
+ else if (nbr->ls_req_last == NULL)
+ ospf_ls_req_event (nbr);
+ }
+}
diff --git a/ospfd/ospf_nsm.h b/ospfd/ospf_nsm.h
index 6c3dc4dd..3d257305 100644
--- a/ospfd/ospf_nsm.h
+++ b/ospfd/ospf_nsm.h
@@ -54,28 +54,28 @@
#define OSPF_NSM_EVENT_MAX 14
/* Macro for OSPF NSM timer turn on. */
-#define OSPF_NSM_TIMER_ON(T,F,V) \
- do { \
- if (!(T)) \
- (T) = thread_add_timer (master, (F), nbr, (V)); \
+#define OSPF_NSM_TIMER_ON(T,F,V) \
+ do { \
+ if (!(T)) \
+ (T) = thread_add_timer (master, (F), nbr, (V)); \
} while (0)
/* Macro for OSPF NSM timer turn off. */
-#define OSPF_NSM_TIMER_OFF(X) \
- do { \
- if (X) \
- { \
- thread_cancel (X); \
- (X) = NULL; \
- } \
+#define OSPF_NSM_TIMER_OFF(X) \
+ do { \
+ if (X) \
+ { \
+ thread_cancel (X); \
+ (X) = NULL; \
+ } \
} while (0)
/* Macro for OSPF NSM schedule event. */
-#define OSPF_NSM_EVENT_SCHEDULE(N,E) \
+#define OSPF_NSM_EVENT_SCHEDULE(N,E) \
thread_add_event (master, ospf_nsm_event, (N), (E))
/* Macro for OSPF NSM execute event. */
-#define OSPF_NSM_EVENT_EXECUTE(N,E) \
+#define OSPF_NSM_EVENT_EXECUTE(N,E) \
thread_execute (master, ospf_nsm_event, (N), (E))
/* Prototypes. */
@@ -85,6 +85,7 @@ void ospf_check_nbr_loading (struct ospf_neighbor *);
int ospf_db_summary_isempty (struct ospf_neighbor *);
int ospf_db_summary_count (struct ospf_neighbor *);
void ospf_db_summary_clear (struct ospf_neighbor *);
+/* void ospf_db_summary_delete_all (struct ospf_neighbor *); */
#endif /* _ZEBRA_OSPF_NSM_H */
diff --git a/ospfd/ospf_opaque.c b/ospfd/ospf_opaque.c
index 1ce70462..f1fe783c 100644
--- a/ospfd/ospf_opaque.c
+++ b/ospfd/ospf_opaque.c
@@ -66,6 +66,11 @@
#include "ospfd/ospf_te.h"
#endif /* HAVE_OSPF_TE */
+#ifdef SUPPORT_OSPF_API
+int ospf_apiserver_init (void);
+void ospf_apiserver_term (void);
+#endif /* SUPPORT_OSPF_API */
+
static void ospf_opaque_register_vty (void);
static void ospf_opaque_funclist_init (void);
static void ospf_opaque_funclist_term (void);
@@ -85,6 +90,11 @@ ospf_opaque_init (void)
exit (1);
#endif /* HAVE_OSPF_TE */
+#ifdef SUPPORT_OSPF_API
+ if (ospf_apiserver_init () != 0)
+ exit (1);
+#endif /* SUPPORT_OSPF_API */
+
return;
}
@@ -95,6 +105,10 @@ ospf_opaque_term (void)
ospf_mpls_te_term ();
#endif /* HAVE_OSPF_TE */
+#ifdef SUPPORT_OSPF_API
+ ospf_apiserver_term ();
+#endif /* SUPPORT_OSPF_API */
+
ospf_opaque_funclist_term ();
return;
}
diff --git a/ospfd/ospf_route.c b/ospfd/ospf_route.c
index 3733ca55..96f7531f 100644
--- a/ospfd/ospf_route.c
+++ b/ospfd/ospf_route.c
@@ -206,22 +206,22 @@ ospf_route_delete_uniq (struct route_table *rt, struct route_table *cmprt)
/* Install routes to table. */
void
-ospf_route_install (struct ospf *ospf, struct route_table *rt)
+ospf_route_install (struct route_table *rt)
{
struct route_node *rn;
struct ospf_route *or;
/* rt contains new routing table, new_table contains an old one.
updating pointers */
- if (ospf->old_table)
- ospf_route_table_free (ospf->old_table);
-
- ospf->old_table = ospf->new_table;
- ospf->new_table = rt;
+ if (ospf_top->old_table)
+ ospf_route_table_free (ospf_top->old_table);
+
+ ospf_top->old_table = ospf_top->new_table;
+ ospf_top->new_table = rt;
/* Delete old routes. */
- if (ospf->old_table)
- ospf_route_delete_uniq (ospf->old_table, rt);
+ if (ospf_top->old_table)
+ ospf_route_delete_uniq (ospf_top->old_table, rt);
/* Install new routes. */
for (rn = route_top (rt); rn; rn = route_next (rn))
@@ -229,12 +229,12 @@ ospf_route_install (struct ospf *ospf, struct route_table *rt)
{
if (or->type == OSPF_DESTINATION_NETWORK)
{
- if (! ospf_route_match_same (ospf->old_table,
+ if (! ospf_route_match_same (ospf_top->old_table,
(struct prefix_ipv4 *)&rn->p, or))
ospf_zebra_add ((struct prefix_ipv4 *) &rn->p, or);
}
else if (or->type == OSPF_DESTINATION_DISCARD)
- if (! ospf_route_match_same (ospf->old_table,
+ if (! ospf_route_match_same (ospf_top->old_table,
(struct prefix_ipv4 *) &rn->p, or))
ospf_zebra_add_discard ((struct prefix_ipv4 *) &rn->p);
}
@@ -595,7 +595,7 @@ ospf_intra_add_stub (struct route_table *rt, struct router_lsa_link *link,
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("ospf_intra_add_stub(): this network is on this router");
- if ((oi = ospf_if_lookup_by_prefix (area->ospf, &p)))
+ if ((oi = ospf_if_lookup_by_prefix (&p)))
{
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("ospf_intra_add_stub(): the interface is %s",
@@ -676,15 +676,12 @@ ospf_route_table_dump (struct route_table *rt)
void
ospf_terminate ()
{
- struct ospf *ospf;
- listnode node;
-
- LIST_LOOP (om->ospf, ospf, node)
+ if (ospf_top)
{
- if (ospf->new_table)
- ospf_route_delete (ospf->new_table);
- if (ospf->old_external_route)
- ospf_route_delete (ospf->old_external_route);
+ if (ospf_top->new_table)
+ ospf_route_delete (ospf_top->new_table);
+ if (ospf_top->old_external_route)
+ ospf_route_delete (ospf_top->old_external_route);
}
}
@@ -693,8 +690,7 @@ ospf_terminate ()
o The other paths, intra-area backbone paths and inter-area paths,
are of equal preference. */
int
-ospf_asbr_route_cmp (struct ospf *ospf, struct ospf_route *r1,
- struct ospf_route *r2)
+ospf_asbr_route_cmp (struct ospf_route *r1, struct ospf_route *r2)
{
u_char r1_type, r2_type;
@@ -702,7 +698,7 @@ ospf_asbr_route_cmp (struct ospf *ospf, struct ospf_route *r1,
r2_type = r2->path_type;
/* If RFC1583Compat flag is on -- all paths are equal. */
- if (CHECK_FLAG (ospf->config, OSPF_RFC1583_COMPATIBLE))
+ if (CHECK_FLAG (ospf_top->config, OSPF_RFC1583_COMPATIBLE))
return 0;
/* r1/r2 itself is backbone, and it's Inter-area path. */
@@ -719,8 +715,7 @@ ospf_asbr_route_cmp (struct ospf *ospf, struct ospf_route *r1,
ret == 0 -- r1 and r2 are the same.
ret > 0 -- r2 is better. */
int
-ospf_route_cmp (struct ospf *ospf, struct ospf_route *r1,
- struct ospf_route *r2)
+ospf_route_cmp (struct ospf_route *r1, struct ospf_route *r2)
{
int ret = 0;
@@ -737,9 +732,9 @@ ospf_route_cmp (struct ospf *ospf, struct ospf_route *r1,
case OSPF_PATH_INTER_AREA:
break;
case OSPF_PATH_TYPE1_EXTERNAL:
- if (!CHECK_FLAG (ospf->config, OSPF_RFC1583_COMPATIBLE))
+ if (!CHECK_FLAG (ospf_top->config, OSPF_RFC1583_COMPATIBLE))
{
- ret = ospf_asbr_route_cmp (ospf, r1->u.ext.asbr, r2->u.ext.asbr);
+ ret = ospf_asbr_route_cmp (r1->u.ext.asbr, r2->u.ext.asbr);
if (ret != 0)
return ret;
}
@@ -748,9 +743,9 @@ ospf_route_cmp (struct ospf *ospf, struct ospf_route *r1,
if ((ret = (r1->u.ext.type2_cost - r2->u.ext.type2_cost)))
return ret;
- if (!CHECK_FLAG (ospf->config, OSPF_RFC1583_COMPATIBLE))
+ if (!CHECK_FLAG (ospf_top->config, OSPF_RFC1583_COMPATIBLE))
{
- ret = ospf_asbr_route_cmp (ospf, r1->u.ext.asbr, r2->u.ext.asbr);
+ ret = ospf_asbr_route_cmp (r1->u.ext.asbr, r2->u.ext.asbr);
if (ret != 0)
return ret;
}
diff --git a/ospfd/ospf_route.h b/ospfd/ospf_route.h
index 4222f528..81f59c48 100644
--- a/ospfd/ospf_route.h
+++ b/ospfd/ospf_route.h
@@ -124,14 +124,14 @@ struct ospf_route
};
struct ospf_path *ospf_path_new ();
-void ospf_path_free (struct ospf_path *);
+void ospf_path_free (struct ospf_path *op);
struct ospf_path *ospf_path_lookup (list, struct ospf_path *);
struct ospf_route *ospf_route_new ();
-void ospf_route_free (struct ospf_route *);
-void ospf_route_delete (struct route_table *);
-void ospf_route_table_free (struct route_table *);
+void ospf_route_free (struct ospf_route *or);
+void ospf_route_delete (struct route_table *rt);
+void ospf_route_table_free (struct route_table *rt);
-void ospf_route_install (struct ospf *, struct route_table *);
+void ospf_route_install (struct route_table *);
void ospf_route_table_dump (struct route_table *);
void ospf_intra_add_router (struct route_table *, struct vertex *,
@@ -143,7 +143,7 @@ void ospf_intra_add_transit (struct route_table *, struct vertex *,
void ospf_intra_add_stub (struct route_table *, struct router_lsa_link *,
struct vertex *, struct ospf_area *);
-int ospf_route_cmp (struct ospf *, struct ospf_route *, struct ospf_route *);
+int ospf_route_cmp (struct ospf_route *, struct ospf_route *);
void ospf_route_copy_nexthops (struct ospf_route *, list);
void ospf_route_copy_nexthops_from_vertex (struct ospf_route *,
struct vertex * );
diff --git a/ospfd/ospf_routemap.c b/ospfd/ospf_routemap.c
index 017acb2b..64822d61 100644
--- a/ospfd/ospf_routemap.c
+++ b/ospfd/ospf_routemap.c
@@ -756,8 +756,8 @@ DEFUN (set_metric_type,
"set metric-type (type-1|type-2)",
SET_STR
"Type of metric for destination routing protocol\n"
- "OSPF external type 1 metric\n"
- "OSPF external type 2 metric\n")
+ "OSPF[6] external type 1 metric\n"
+ "OSPF[6] external type 2 metric\n")
{
if (strcmp (argv[0], "1") == 0)
return ospf_route_set_add (vty, vty->index, "metric-type", "type-1");
@@ -786,8 +786,8 @@ ALIAS (no_set_metric_type,
NO_STR
SET_STR
"Type of metric for destination routing protocol\n"
- "OSPF external type 1 metric\n"
- "OSPF external type 2 metric\n")
+ "OSPF[6] external type 1 metric\n"
+ "OSPF[6] external type 2 metric\n")
/* Route-map init */
void
diff --git a/ospfd/ospf_snmp.c b/ospfd/ospf_snmp.c
index 0fe9cae6..2e1a9b3c 100644
--- a/ospfd/ospf_snmp.c
+++ b/ospfd/ospf_snmp.c
@@ -24,6 +24,9 @@
#include <zebra.h>
#ifdef HAVE_SNMP
+#ifdef HAVE_NETSNMP
+#include <net-snmp/net-snmp-config.h>
+#endif
#include <asn1.h>
#include <snmp.h>
#include <snmp_impl.h>
@@ -1437,7 +1440,7 @@ ospf_snmp_if_update (struct interface *ifp)
/* Lookup first IPv4 address entry. */
LIST_LOOP (ifp->connected, ifc, nn)
{
- if (if_is_pointopoint (ifp))
+ if (ifc_pointopoint (ifc))
p = ifc->destination;
else
p = ifc->address;
diff --git a/ospfd/ospf_spf.c b/ospfd/ospf_spf.c
index 412e44d7..33616d83 100644
--- a/ospfd/ospf_spf.c
+++ b/ospfd/ospf_spf.c
@@ -372,7 +372,6 @@ ospf_nexthop_calculation (struct ospf_area *area,
{
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)))
diff --git a/ospfd/ospf_spf.h b/ospfd/ospf_spf.h
index e71224bd..7fe682ee 100644
--- a/ospfd/ospf_spf.h
+++ b/ospfd/ospf_spf.h
@@ -44,7 +44,7 @@ struct vertex_nexthop
struct vertex *parent;
};
-void ospf_spf_calculate_schedule (struct ospf *);
+void ospf_spf_calculate_schedule ();
void ospf_rtrs_free (struct route_table *);
/* void ospf_spf_calculate_timer_add (); */
diff --git a/ospfd/ospf_te.c b/ospfd/ospf_te.c
index 2129e354..aedac32a 100644
--- a/ospfd/ospf_te.c
+++ b/ospfd/ospf_te.c
@@ -414,8 +414,8 @@ set_linkparams_link_id (struct ospf_interface *oi, struct mpls_te_link *lp)
{
case OSPF_IFTYPE_POINTOPOINT:
/* Take the router ID of the neighbor. */
- if ((nbr = ospf_nbr_lookup_ptop (oi))
- && nbr->state == NSM_Full)
+ if (((nbr = ospf_nbr_lookup_ptop (oi->nbrs, oi->area->top->router_id)))
+ && (nbr->state == NSM_Full))
{
lp->link_id.value = nbr->router_id;
done = 1;
@@ -429,7 +429,7 @@ set_linkparams_link_id (struct ospf_interface *oi, struct mpls_te_link *lp)
if (nbr->state == NSM_Full
|| (IPV4_ADDR_SAME (&oi->address->u.prefix4, &DR (oi))
- && ospf_nbr_count (oi, NSM_Full) > 0))
+ && ospf_nbr_count (oi->nbrs, NSM_Full) > 0))
{
lp->link_id.value = DR (oi);
done = 1;
@@ -628,7 +628,7 @@ ospf_mpls_te_ism_change (struct ospf_interface *oi, int old_state)
zlog_warn ("ospf_mpls_te_ism_change: Cannot get linkparams from OI(%s)?", IF_NAME (oi));
goto out;
}
- if (oi->area == NULL || oi->area->ospf == NULL)
+ if (oi->area == NULL || oi->area->top == NULL)
{
zlog_warn ("ospf_mpls_te_ism_change: Cannot refer to OSPF from OI(%s)?",
IF_NAME (oi));
@@ -891,7 +891,7 @@ ospf_mpls_te_lsa_new (struct ospf_area *area, struct mpls_te_link *lp)
zlog_info ("LSA[Type%d:%s]: Create an Opaque-LSA/MPLS-TE instance", lsa_type, inet_ntoa (lsa_id));
/* Set opaque-LSA header fields. */
- lsa_header_set (s, options, lsa_type, lsa_id, area->ospf->router_id);
+ lsa_header_set (s, options, lsa_type, lsa_id);
/* Set opaque-LSA body fields. */
ospf_mpls_te_lsa_body_set (s, lp);
@@ -939,7 +939,7 @@ ospf_mpls_te_lsa_originate1 (struct ospf_area *area, struct mpls_te_link *lp)
}
/* Install this LSA into LSDB. */
- if (ospf_lsa_install (area->ospf, NULL/*oi*/, new) == NULL)
+ if (ospf_lsa_install (NULL/*oi*/, new) == NULL)
{
zlog_warn ("ospf_mpls_te_lsa_originate1: ospf_lsa_install() ?");
ospf_lsa_free (new);
@@ -950,7 +950,7 @@ ospf_mpls_te_lsa_originate1 (struct ospf_area *area, struct mpls_te_link *lp)
lp->flags |= LPFLG_LSA_ENGAGED;
/* Update new LSA origination count. */
- area->ospf->lsa_originate_count++;
+ area->top->lsa_originate_count++;
/* Flood new LSA through area. */
ospf_flood_through_area (area, NULL/*nbr*/, new);
@@ -1059,7 +1059,7 @@ ospf_mpls_te_lsa_refresh (struct ospf_lsa *lsa)
/* Install this LSA into LSDB. */
/* Given "lsa" will be freed in the next function. */
- if (ospf_lsa_install (area->ospf, NULL/*oi*/, new) == NULL)
+ if (ospf_lsa_install (NULL/*oi*/, new) == NULL)
{
zlog_warn ("ospf_mpls_te_lsa_refresh: ospf_lsa_install() ?");
ospf_lsa_free (new);
diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c
index 4896d352..ed4b4fd1 100644
--- a/ospfd/ospf_vty.c
+++ b/ospfd/ospf_vty.c
@@ -223,7 +223,7 @@ DEFUN (ospf_router_id,
}
ALIAS (ospf_router_id,
- router_id_cmd,
+ router_ospf_id_cmd,
"router-id A.B.C.D",
"router-id for the OSPF process\n"
"OSPF router-id in IP address format\n")
@@ -245,13 +245,13 @@ DEFUN (no_ospf_router_id,
}
ALIAS (no_ospf_router_id,
- no_router_id_cmd,
+ no_router_ospf_id_cmd,
"no router-id",
NO_STR
"router-id for the OSPF process\n")
-DEFUN (passive_interface,
- passive_interface_addr_cmd,
+DEFUN (ospf_passive_interface,
+ ospf_passive_interface_addr_cmd,
"passive-interface IFNAME A.B.C.D",
"Suppress routing updates on an interface\n"
"Interface's name\n")
@@ -291,14 +291,14 @@ DEFUN (passive_interface,
return CMD_SUCCESS;
}
-ALIAS (passive_interface,
- passive_interface_cmd,
+ALIAS (ospf_passive_interface,
+ ospf_passive_interface_cmd,
"passive-interface IFNAME",
"Suppress routing updates on an interface\n"
"Interface's name\n")
-DEFUN (no_passive_interface,
- no_passive_interface_addr_cmd,
+DEFUN (no_ospf_passive_interface,
+ no_ospf_passive_interface_addr_cmd,
"no passive-interface IFNAME A.B.C.D",
NO_STR
"Allow routing updates on an interface\n"
@@ -346,15 +346,15 @@ DEFUN (no_passive_interface,
return CMD_SUCCESS;
}
-ALIAS (no_passive_interface,
- no_passive_interface_cmd,
+ALIAS (no_ospf_passive_interface,
+ no_ospf_passive_interface_cmd,
"no passive-interface IFNAME",
NO_STR
"Allow routing updates on an interface\n"
"Interface's name\n")
-DEFUN (network_area,
- network_area_cmd,
+DEFUN (ospf_network_area,
+ ospf_network_area_cmd,
"network A.B.C.D/M area (A.B.C.D|<0-4294967295>)",
"Enable routing on an IP network\n"
"OSPF network prefix\n"
@@ -381,8 +381,8 @@ DEFUN (network_area,
return CMD_SUCCESS;
}
-DEFUN (no_network_area,
- no_network_area_cmd,
+DEFUN (no_ospf_network_area,
+ no_ospf_network_area_cmd,
"no network A.B.C.D/M area (A.B.C.D|<0-4294967295>)",
NO_STR
"Enable routing on an IP network\n"
@@ -412,8 +412,8 @@ DEFUN (no_network_area,
}
-DEFUN (area_range,
- area_range_cmd,
+DEFUN (ospf_area_range,
+ ospf_area_range_cmd,
"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"
@@ -440,8 +440,8 @@ DEFUN (area_range,
return CMD_SUCCESS;
}
-ALIAS (area_range,
- area_range_advertise_cmd,
+ALIAS (ospf_area_range,
+ ospf_area_range_advertise_cmd,
"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"
@@ -450,8 +450,8 @@ ALIAS (area_range,
"Area range prefix\n"
"Advertise this range (default)\n")
-ALIAS (area_range,
- area_range_cost_cmd,
+ALIAS (ospf_area_range,
+ ospf_area_range_cost_cmd,
"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"
@@ -461,8 +461,8 @@ ALIAS (area_range,
"User specified metric for this range\n"
"Advertised metric for this range\n")
-ALIAS (area_range,
- area_range_advertise_cost_cmd,
+ALIAS (ospf_area_range,
+ ospf_area_range_advertise_cost_cmd,
"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"
@@ -473,8 +473,8 @@ ALIAS (area_range,
"User specified metric for this range\n"
"Advertised metric for this range\n")
-DEFUN (area_range_not_advertise,
- area_range_not_advertise_cmd,
+DEFUN (ospf_area_range_not_advertise,
+ ospf_area_range_not_advertise_cmd,
"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"
@@ -496,8 +496,8 @@ DEFUN (area_range_not_advertise,
return CMD_SUCCESS;
}
-DEFUN (no_area_range,
- no_area_range_cmd,
+DEFUN (no_ospf_area_range,
+ no_ospf_area_range_cmd,
"no area (A.B.C.D|<0-4294967295>) range A.B.C.D/M",
NO_STR
"OSPF area parameters\n"
@@ -519,8 +519,8 @@ DEFUN (no_area_range,
return CMD_SUCCESS;
}
-ALIAS (no_area_range,
- no_area_range_advertise_cmd,
+ALIAS (no_ospf_area_range,
+ no_ospf_area_range_advertise_cmd,
"no area (A.B.C.D|<0-4294967295>) range A.B.C.D/M (advertise|not-advertise)",
NO_STR
"OSPF area parameters\n"
@@ -531,8 +531,8 @@ ALIAS (no_area_range,
"Advertise this range (default)\n"
"DoNotAdvertise this range\n")
-ALIAS (no_area_range,
- no_area_range_cost_cmd,
+ALIAS (no_ospf_area_range,
+ no_ospf_area_range_cost_cmd,
"no area (A.B.C.D|<0-4294967295>) range A.B.C.D/M cost <0-16777215>",
NO_STR
"OSPF area parameters\n"
@@ -543,8 +543,8 @@ ALIAS (no_area_range,
"User specified metric for this range\n"
"Advertised metric for this range\n")
-ALIAS (no_area_range,
- no_area_range_advertise_cost_cmd,
+ALIAS (no_ospf_area_range,
+ no_ospf_area_range_advertise_cost_cmd,
"no area (A.B.C.D|<0-4294967295>) range A.B.C.D/M advertise cost <0-16777215>",
NO_STR
"OSPF area parameters\n"
@@ -556,8 +556,8 @@ ALIAS (no_area_range,
"User specified metric for this range\n"
"Advertised metric for this range\n")
-DEFUN (area_range_substitute,
- area_range_substitute_cmd,
+DEFUN (ospf_area_range_substitute,
+ ospf_area_range_substitute_cmd,
"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"
@@ -581,8 +581,8 @@ DEFUN (area_range_substitute,
return CMD_SUCCESS;
}
-DEFUN (no_area_range_substitute,
- no_area_range_substitute_cmd,
+DEFUN (no_ospf_area_range_substitute,
+ no_ospf_area_range_substitute_cmd,
"no area (A.B.C.D|<0-4294967295>) range A.B.C.D/M substitute A.B.C.D/M",
NO_STR
"OSPF area parameters\n"
@@ -871,8 +871,8 @@ ospf_vl_set (struct ospf *ospf, struct ospf_vl_config_data *vl_config)
"Use MD5 algorithm\n" \
"The OSPF password (key)"
-DEFUN (area_vlink,
- area_vlink_cmd,
+DEFUN (ospf_area_vlink,
+ ospf_area_vlink_cmd,
"area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D",
VLINK_HELPSTR_IPADDR)
{
@@ -1005,8 +1005,8 @@ DEFUN (area_vlink,
}
-DEFUN (no_area_vlink,
- no_area_vlink_cmd,
+DEFUN (no_ospf_area_vlink,
+ no_ospf_area_vlink_cmd,
"no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D",
NO_STR
VLINK_HELPSTR_IPADDR)
@@ -1121,23 +1121,23 @@ DEFUN (no_area_vlink,
return ospf_vl_set (ospf, &vl_config);
}
-ALIAS (area_vlink,
- area_vlink_param1_cmd,
+ALIAS (ospf_area_vlink,
+ ospf_area_vlink_param1_cmd,
"area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
"(hello-interval|retransmit-interval|transmit-delay|dead-interval) <1-65535>",
VLINK_HELPSTR_IPADDR
VLINK_HELPSTR_TIME_PARAM)
-ALIAS (no_area_vlink,
- no_area_vlink_param1_cmd,
+ALIAS (no_ospf_area_vlink,
+ no_ospf_area_vlink_param1_cmd,
"no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
"(hello-interval|retransmit-interval|transmit-delay|dead-interval)",
NO_STR
VLINK_HELPSTR_IPADDR
VLINK_HELPSTR_TIME_PARAM)
-ALIAS (area_vlink,
- area_vlink_param2_cmd,
+ALIAS (ospf_area_vlink,
+ ospf_area_vlink_param2_cmd,
"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>",
@@ -1145,8 +1145,8 @@ ALIAS (area_vlink,
VLINK_HELPSTR_TIME_PARAM
VLINK_HELPSTR_TIME_PARAM)
-ALIAS (no_area_vlink,
- no_area_vlink_param2_cmd,
+ALIAS (no_ospf_area_vlink,
+ no_ospf_area_vlink_param2_cmd,
"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)",
@@ -1155,8 +1155,8 @@ ALIAS (no_area_vlink,
VLINK_HELPSTR_TIME_PARAM
VLINK_HELPSTR_TIME_PARAM)
-ALIAS (area_vlink,
- area_vlink_param3_cmd,
+ALIAS (ospf_area_vlink,
+ ospf_area_vlink_param3_cmd,
"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> "
@@ -1166,8 +1166,8 @@ ALIAS (area_vlink,
VLINK_HELPSTR_TIME_PARAM
VLINK_HELPSTR_TIME_PARAM)
-ALIAS (no_area_vlink,
- no_area_vlink_param3_cmd,
+ALIAS (no_ospf_area_vlink,
+ no_ospf_area_vlink_param3_cmd,
"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) "
@@ -1178,8 +1178,8 @@ ALIAS (no_area_vlink,
VLINK_HELPSTR_TIME_PARAM
VLINK_HELPSTR_TIME_PARAM)
-ALIAS (area_vlink,
- area_vlink_param4_cmd,
+ALIAS (ospf_area_vlink,
+ ospf_area_vlink_param4_cmd,
"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> "
@@ -1191,8 +1191,8 @@ ALIAS (area_vlink,
VLINK_HELPSTR_TIME_PARAM
VLINK_HELPSTR_TIME_PARAM)
-ALIAS (no_area_vlink,
- no_area_vlink_param4_cmd,
+ALIAS (no_ospf_area_vlink,
+ no_ospf_area_vlink_param4_cmd,
"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) "
@@ -1205,60 +1205,60 @@ ALIAS (no_area_vlink,
VLINK_HELPSTR_TIME_PARAM
VLINK_HELPSTR_TIME_PARAM)
-ALIAS (area_vlink,
- area_vlink_authtype_args_cmd,
+ALIAS (ospf_area_vlink,
+ ospf_area_vlink_authtype_args_cmd,
"area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
"(authentication|) (message-digest|null)",
VLINK_HELPSTR_IPADDR
VLINK_HELPSTR_AUTHTYPE_ALL)
-ALIAS (area_vlink,
- area_vlink_authtype_cmd,
+ALIAS (ospf_area_vlink,
+ ospf_area_vlink_authtype_cmd,
"area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
"(authentication|)",
VLINK_HELPSTR_IPADDR
VLINK_HELPSTR_AUTHTYPE_SIMPLE)
-ALIAS (no_area_vlink,
- no_area_vlink_authtype_cmd,
+ALIAS (no_ospf_area_vlink,
+ no_ospf_area_vlink_authtype_cmd,
"no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
"(authentication|)",
NO_STR
VLINK_HELPSTR_IPADDR
VLINK_HELPSTR_AUTHTYPE_SIMPLE)
-ALIAS (area_vlink,
- area_vlink_md5_cmd,
+ALIAS (ospf_area_vlink,
+ ospf_area_vlink_md5_cmd,
"area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
"(message-digest-key|) <1-255> md5 KEY",
VLINK_HELPSTR_IPADDR
VLINK_HELPSTR_AUTH_MD5)
-ALIAS (no_area_vlink,
- no_area_vlink_md5_cmd,
+ALIAS (no_ospf_area_vlink,
+ no_ospf_area_vlink_md5_cmd,
"no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
"(message-digest-key|) <1-255>",
NO_STR
VLINK_HELPSTR_IPADDR
VLINK_HELPSTR_AUTH_MD5)
-ALIAS (area_vlink,
- area_vlink_authkey_cmd,
+ALIAS (ospf_area_vlink,
+ ospf_area_vlink_authkey_cmd,
"area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
"(authentication-key|) AUTH_KEY",
VLINK_HELPSTR_IPADDR
VLINK_HELPSTR_AUTH_SIMPLE)
-ALIAS (no_area_vlink,
- no_area_vlink_authkey_cmd,
+ALIAS (no_ospf_area_vlink,
+ no_ospf_area_vlink_authkey_cmd,
"no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
"(authentication-key|)",
NO_STR
VLINK_HELPSTR_IPADDR
VLINK_HELPSTR_AUTH_SIMPLE)
-ALIAS (area_vlink,
- area_vlink_authtype_args_authkey_cmd,
+ALIAS (ospf_area_vlink,
+ ospf_area_vlink_authtype_args_authkey_cmd,
"area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
"(authentication|) (message-digest|null) "
"(authentication-key|) AUTH_KEY",
@@ -1266,8 +1266,8 @@ ALIAS (area_vlink,
VLINK_HELPSTR_AUTHTYPE_ALL
VLINK_HELPSTR_AUTH_SIMPLE)
-ALIAS (area_vlink,
- area_vlink_authtype_authkey_cmd,
+ALIAS (ospf_area_vlink,
+ ospf_area_vlink_authtype_authkey_cmd,
"area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
"(authentication|) "
"(authentication-key|) AUTH_KEY",
@@ -1275,8 +1275,8 @@ ALIAS (area_vlink,
VLINK_HELPSTR_AUTHTYPE_SIMPLE
VLINK_HELPSTR_AUTH_SIMPLE)
-ALIAS (no_area_vlink,
- no_area_vlink_authtype_authkey_cmd,
+ALIAS (no_ospf_area_vlink,
+ no_ospf_area_vlink_authtype_authkey_cmd,
"no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
"(authentication|) "
"(authentication-key|)",
@@ -1285,8 +1285,8 @@ ALIAS (no_area_vlink,
VLINK_HELPSTR_AUTHTYPE_SIMPLE
VLINK_HELPSTR_AUTH_SIMPLE)
-ALIAS (area_vlink,
- area_vlink_authtype_args_md5_cmd,
+ALIAS (ospf_area_vlink,
+ ospf_area_vlink_authtype_args_md5_cmd,
"area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
"(authentication|) (message-digest|null) "
"(message-digest-key|) <1-255> md5 KEY",
@@ -1294,8 +1294,8 @@ ALIAS (area_vlink,
VLINK_HELPSTR_AUTHTYPE_ALL
VLINK_HELPSTR_AUTH_MD5)
-ALIAS (area_vlink,
- area_vlink_authtype_md5_cmd,
+ALIAS (ospf_area_vlink,
+ ospf_area_vlink_authtype_md5_cmd,
"area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
"(authentication|) "
"(message-digest-key|) <1-255> md5 KEY",
@@ -1303,8 +1303,8 @@ ALIAS (area_vlink,
VLINK_HELPSTR_AUTHTYPE_SIMPLE
VLINK_HELPSTR_AUTH_MD5)
-ALIAS (no_area_vlink,
- no_area_vlink_authtype_md5_cmd,
+ALIAS (no_ospf_area_vlink,
+ no_ospf_area_vlink_authtype_md5_cmd,
"no area (A.B.C.D|<0-4294967295>) virtual-link A.B.C.D "
"(authentication|) "
"(message-digest-key|)",
@@ -1314,8 +1314,8 @@ ALIAS (no_area_vlink,
VLINK_HELPSTR_AUTH_MD5)
-DEFUN (area_shortcut,
- area_shortcut_cmd,
+DEFUN (ospf_area_shortcut,
+ ospf_area_shortcut_cmd,
"area (A.B.C.D|<0-4294967295>) shortcut (default|enable|disable)",
"OSPF area parameters\n"
"OSPF area ID in IP address format\n"
@@ -1354,8 +1354,8 @@ DEFUN (area_shortcut,
return CMD_SUCCESS;
}
-DEFUN (no_area_shortcut,
- no_area_shortcut_cmd,
+DEFUN (no_ospf_area_shortcut,
+ no_ospf_area_shortcut_cmd,
"no area (A.B.C.D|<0-4294967295>) shortcut (enable|disable)",
NO_STR
"OSPF area parameters\n"
@@ -1382,8 +1382,8 @@ DEFUN (no_area_shortcut,
}
-DEFUN (area_stub,
- area_stub_cmd,
+DEFUN (ospf_area_stub,
+ ospf_area_stub_cmd,
"area (A.B.C.D|<0-4294967295>) stub",
"OSPF area parameters\n"
"OSPF area ID in IP address format\n"
@@ -1409,8 +1409,8 @@ DEFUN (area_stub,
return CMD_SUCCESS;
}
-DEFUN (area_stub_no_summary,
- area_stub_no_summary_cmd,
+DEFUN (ospf_area_stub_no_summary,
+ ospf_area_stub_no_summary_cmd,
"area (A.B.C.D|<0-4294967295>) stub no-summary",
"OSPF stub parameters\n"
"OSPF area ID in IP address format\n"
@@ -1437,8 +1437,8 @@ DEFUN (area_stub_no_summary,
return CMD_SUCCESS;
}
-DEFUN (no_area_stub,
- no_area_stub_cmd,
+DEFUN (no_ospf_area_stub,
+ no_ospf_area_stub_cmd,
"no area (A.B.C.D|<0-4294967295>) stub",
NO_STR
"OSPF area parameters\n"
@@ -1458,8 +1458,8 @@ DEFUN (no_area_stub,
return CMD_SUCCESS;
}
-DEFUN (no_area_stub_no_summary,
- no_area_stub_no_summary_cmd,
+DEFUN (no_ospf_area_stub_no_summary,
+ no_ospf_area_stub_no_summary_cmd,
"no area (A.B.C.D|<0-4294967295>) stub no-summary",
NO_STR
"OSPF area parameters\n"
@@ -1479,8 +1479,8 @@ DEFUN (no_area_stub_no_summary,
}
#ifdef HAVE_NSSA
-DEFUN (area_nssa,
- area_nssa_cmd,
+DEFUN (ospf_area_nssa,
+ ospf_area_nssa_cmd,
"area (A.B.C.D|<0-4294967295>) nssa",
"OSPF area parameters\n"
"OSPF area ID in IP address format\n"
@@ -1520,8 +1520,8 @@ DEFUN (area_nssa,
return CMD_SUCCESS;
}
-ALIAS (area_nssa,
- area_nssa_translate_no_summary_cmd,
+ALIAS (ospf_area_nssa,
+ ospf_area_nssa_translate_no_summary_cmd,
"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"
@@ -1533,8 +1533,8 @@ ALIAS (area_nssa,
"Do not inject inter-area routes into nssa\n"
"dummy\n")
-ALIAS (area_nssa,
- area_nssa_translate_cmd,
+ALIAS (ospf_area_nssa,
+ ospf_area_nssa_translate_cmd,
"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"
@@ -1544,8 +1544,8 @@ ALIAS (area_nssa,
"Configure NSSA-ABR to never translate\n"
"Configure NSSA-ABR to always translate\n")
-DEFUN (area_nssa_no_summary,
- area_nssa_no_summary_cmd,
+DEFUN (ospf_area_nssa_no_summary,
+ ospf_area_nssa_no_summary_cmd,
"area (A.B.C.D|<0-4294967295>) nssa no-summary",
"OSPF area parameters\n"
"OSPF area ID in IP address format\n"
@@ -1572,8 +1572,8 @@ DEFUN (area_nssa_no_summary,
return CMD_SUCCESS;
}
-DEFUN (no_area_nssa,
- no_area_nssa_cmd,
+DEFUN (no_ospf_area_nssa,
+ no_ospf_area_nssa_cmd,
"no area (A.B.C.D|<0-4294967295>) nssa",
NO_STR
"OSPF area parameters\n"
@@ -1593,8 +1593,8 @@ DEFUN (no_area_nssa,
return CMD_SUCCESS;
}
-DEFUN (no_area_nssa_no_summary,
- no_area_nssa_no_summary_cmd,
+DEFUN (no_ospf_area_nssa_no_summary,
+ no_ospf_area_nssa_no_summary_cmd,
"no area (A.B.C.D|<0-4294967295>) nssa no-summary",
NO_STR
"OSPF area parameters\n"
@@ -1615,8 +1615,8 @@ DEFUN (no_area_nssa_no_summary,
#endif /* HAVE_NSSA */
-DEFUN (area_default_cost,
- area_default_cost_cmd,
+DEFUN (ospf_area_default_cost,
+ ospf_area_default_cost_cmd,
"area (A.B.C.D|<0-4294967295>) default-cost <0-16777215>",
"OSPF area parameters\n"
"OSPF area ID in IP address format\n"
@@ -1646,8 +1646,8 @@ DEFUN (area_default_cost,
return CMD_SUCCESS;
}
-DEFUN (no_area_default_cost,
- no_area_default_cost_cmd,
+DEFUN (no_ospf_area_default_cost,
+ no_ospf_area_default_cost_cmd,
"no area (A.B.C.D|<0-4294967295>) default-cost <0-16777215>",
NO_STR
"OSPF area parameters\n"
@@ -1682,8 +1682,8 @@ DEFUN (no_area_default_cost,
return CMD_SUCCESS;
}
-DEFUN (area_export_list,
- area_export_list_cmd,
+DEFUN (ospf_area_export_list,
+ ospf_area_export_list_cmd,
"area (A.B.C.D|<0-4294967295>) export-list NAME",
"OSPF area parameters\n"
"OSPF area ID in IP address format\n"
@@ -1704,8 +1704,8 @@ DEFUN (area_export_list,
return CMD_SUCCESS;
}
-DEFUN (no_area_export_list,
- no_area_export_list_cmd,
+DEFUN (no_ospf_area_export_list,
+ no_ospf_area_export_list_cmd,
"no area (A.B.C.D|<0-4294967295>) export-list NAME",
NO_STR
"OSPF area parameters\n"
@@ -1731,8 +1731,8 @@ DEFUN (no_area_export_list,
}
-DEFUN (area_import_list,
- area_import_list_cmd,
+DEFUN (ospf_area_import_list,
+ ospf_area_import_list_cmd,
"area (A.B.C.D|<0-4294967295>) import-list NAME",
"OSPF area parameters\n"
"OSPF area ID in IP address format\n"
@@ -1753,8 +1753,8 @@ DEFUN (area_import_list,
return CMD_SUCCESS;
}
-DEFUN (no_area_import_list,
- no_area_import_list_cmd,
+DEFUN (no_ospf_area_import_list,
+ no_ospf_area_import_list_cmd,
"no area (A.B.C.D|<0-4294967295>) import-list NAME",
NO_STR
"OSPF area parameters\n"
@@ -1778,8 +1778,8 @@ DEFUN (no_area_import_list,
return CMD_SUCCESS;
}
-DEFUN (area_filter_list,
- area_filter_list_cmd,
+DEFUN (ospf_area_filter_list,
+ ospf_area_filter_list_cmd,
"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"
@@ -1822,8 +1822,8 @@ DEFUN (area_filter_list,
return CMD_SUCCESS;
}
-DEFUN (no_area_filter_list,
- no_area_filter_list_cmd,
+DEFUN (no_ospf_area_filter_list,
+ no_ospf_area_filter_list_cmd,
"no area (A.B.C.D|<0-4294967295>) filter-list prefix WORD (in|out)",
NO_STR
"OSPF area parameters\n"
@@ -1878,8 +1878,8 @@ DEFUN (no_area_filter_list,
}
-DEFUN (area_authentication_message_digest,
- area_authentication_message_digest_cmd,
+DEFUN (ospf_area_authentication_message_digest,
+ ospf_area_authentication_message_digest_cmd,
"area (A.B.C.D|<0-4294967295>) authentication message-digest",
"OSPF area parameters\n"
"Enable authentication\n"
@@ -1898,8 +1898,8 @@ DEFUN (area_authentication_message_digest,
return CMD_SUCCESS;
}
-DEFUN (area_authentication,
- area_authentication_cmd,
+DEFUN (ospf_area_authentication,
+ ospf_area_authentication_cmd,
"area (A.B.C.D|<0-4294967295>) authentication",
"OSPF area parameters\n"
"OSPF area ID in IP address format\n"
@@ -1919,8 +1919,8 @@ DEFUN (area_authentication,
return CMD_SUCCESS;
}
-DEFUN (no_area_authentication,
- no_area_authentication_cmd,
+DEFUN (no_ospf_area_authentication,
+ no_ospf_area_authentication_cmd,
"no area (A.B.C.D|<0-4294967295>) authentication",
NO_STR
"OSPF area parameters\n"
@@ -2059,8 +2059,8 @@ ALIAS (no_ospf_compatible_rfc1583,
"OSPF specific commands\n"
"Disable the RFC1583Compatibility flag\n")
-DEFUN (timers_spf,
- timers_spf_cmd,
+DEFUN (ospf_timers_spf,
+ ospf_timers_spf_cmd,
"timers spf <0-4294967295> <0-4294967295>",
"Adjust routing timers\n"
"OSPF SPF timers\n"
@@ -2078,8 +2078,8 @@ DEFUN (timers_spf,
return CMD_SUCCESS;
}
-DEFUN (no_timers_spf,
- no_timers_spf_cmd,
+DEFUN (no_ospf_timers_spf,
+ no_ospf_timers_spf_cmd,
"no timers spf",
NO_STR
"Adjust routing timers\n"
@@ -2094,8 +2094,8 @@ DEFUN (no_timers_spf,
}
-DEFUN (neighbor,
- neighbor_cmd,
+DEFUN (ospf_neighbor,
+ ospf_neighbor_cmd,
"neighbor A.B.C.D",
NEIGHBOR_STR
"Neighbor IP address\n")
@@ -2122,8 +2122,8 @@ DEFUN (neighbor,
return CMD_SUCCESS;
}
-ALIAS (neighbor,
- neighbor_priority_poll_interval_cmd,
+ALIAS (ospf_neighbor,
+ ospf_neighbor_priority_poll_interval_cmd,
"neighbor A.B.C.D priority <0-255> poll-interval <1-65535>",
NEIGHBOR_STR
"Neighbor IP address\n"
@@ -2132,16 +2132,16 @@ ALIAS (neighbor,
"Dead Neighbor Polling interval\n"
"Seconds\n")
-ALIAS (neighbor,
- neighbor_priority_cmd,
+ALIAS (ospf_neighbor,
+ ospf_neighbor_priority_cmd,
"neighbor A.B.C.D priority <0-255>",
NEIGHBOR_STR
"Neighbor IP address\n"
"Neighbor Priority\n"
"Seconds\n")
-DEFUN (neighbor_poll_interval,
- neighbor_poll_interval_cmd,
+DEFUN (ospf_neighbor_poll_interval,
+ ospf_neighbor_poll_interval_cmd,
"neighbor A.B.C.D poll-interval <1-65535>",
NEIGHBOR_STR
"Neighbor IP address\n"
@@ -2170,8 +2170,8 @@ DEFUN (neighbor_poll_interval,
return CMD_SUCCESS;
}
-ALIAS (neighbor_poll_interval,
- neighbor_poll_interval_priority_cmd,
+ALIAS (ospf_neighbor_poll_interval,
+ ospf_neighbor_poll_interval_priority_cmd,
"neighbor A.B.C.D poll-interval <1-65535> priority <0-255>",
NEIGHBOR_STR
"Neighbor address\n"
@@ -2180,8 +2180,8 @@ ALIAS (neighbor_poll_interval,
"OSPF priority of non-broadcast neighbor\n"
"Priority\n")
-DEFUN (no_neighbor,
- no_neighbor_cmd,
+DEFUN (no_ospf_neighbor,
+ no_ospf_neighbor_cmd,
"no neighbor A.B.C.D",
NO_STR
NEIGHBOR_STR
@@ -2198,8 +2198,8 @@ DEFUN (no_neighbor,
return CMD_SUCCESS;
}
-ALIAS (no_neighbor,
- no_neighbor_priority_cmd,
+ALIAS (no_ospf_neighbor,
+ no_ospf_neighbor_priority_cmd,
"no neighbor A.B.C.D priority <0-255>",
NO_STR
NEIGHBOR_STR
@@ -2207,8 +2207,8 @@ ALIAS (no_neighbor,
"Neighbor Priority\n"
"Priority\n")
-ALIAS (no_neighbor,
- no_neighbor_poll_interval_cmd,
+ALIAS (no_ospf_neighbor,
+ no_ospf_neighbor_poll_interval_cmd,
"no neighbor A.B.C.D poll-interval <1-65535>",
NO_STR
NEIGHBOR_STR
@@ -2216,8 +2216,8 @@ ALIAS (no_neighbor,
"Dead Neighbor Polling interval\n"
"Seconds\n")
-ALIAS (no_neighbor,
- no_neighbor_priority_pollinterval_cmd,
+ALIAS (no_ospf_neighbor,
+ no_ospf_neighbor_priority_pollinterval_cmd,
"no neighbor A.B.C.D priority <0-255> poll-interval <1-65535>",
NO_STR
NEIGHBOR_STR
@@ -2228,7 +2228,7 @@ ALIAS (no_neighbor,
"Seconds\n")
-DEFUN (refresh_timer, refresh_timer_cmd,
+DEFUN (ospf_refresh_timer, ospf_refresh_timer_cmd,
"refresh timer <10-1800>",
"Adjust refresh parameters\n"
"Set refresh timer\n"
@@ -2245,7 +2245,7 @@ DEFUN (refresh_timer, refresh_timer_cmd,
return CMD_SUCCESS;
}
-DEFUN (no_refresh_timer, no_refresh_timer_val_cmd,
+DEFUN (no_ospf_refresh_timer, no_ospf_refresh_timer_val_cmd,
"no refresh timer <10-1800>",
"Adjust refresh parameters\n"
"Unset refresh timer\n"
@@ -2268,14 +2268,14 @@ DEFUN (no_refresh_timer, no_refresh_timer_val_cmd,
return CMD_SUCCESS;
}
-ALIAS (no_refresh_timer,
- no_refresh_timer_cmd,
+ALIAS (no_ospf_refresh_timer,
+ no_ospf_refresh_timer_cmd,
"no refresh timer",
"Adjust refresh parameters\n"
"Unset refresh timer\n")
-DEFUN (auto_cost_reference_bandwidth,
- auto_cost_reference_bandwidth_cmd,
+DEFUN (ospf_auto_cost_reference_bandwidth,
+ ospf_auto_cost_reference_bandwidth_cmd,
"auto-cost reference-bandwidth <1-4294967>",
"Calculate OSPF interface cost according to bandwidth\n"
"Use reference bandwidth method to assign OSPF cost\n"
@@ -2306,8 +2306,8 @@ DEFUN (auto_cost_reference_bandwidth,
return CMD_SUCCESS;
}
-DEFUN (no_auto_cost_reference_bandwidth,
- no_auto_cost_reference_bandwidth_cmd,
+DEFUN (no_ospf_auto_cost_reference_bandwidth,
+ no_ospf_auto_cost_reference_bandwidth_cmd,
"no auto-cost reference-bandwidth",
NO_STR
"Calculate OSPF interface cost according to bandwidth\n"
@@ -2513,12 +2513,11 @@ show_ip_ospf_interface_sub (struct vty *vty, struct ospf *ospf,
oi_count = ospf_oi_count (ifp);
/* Is interface up? */
- if (if_is_up (ifp))
- vty_out (vty, "%s is up, line protocol is up%s", ifp->name, VTY_NEWLINE);
- else
- {
- vty_out (vty, "%s is down, line protocol is down%s", ifp->name,
- VTY_NEWLINE);
+ if (if_is_operative (ifp)) {
+ vty_out (vty, "%s is up%s", ifp->name, VTY_NEWLINE);
+ } else
+ {
+ vty_out (vty, "%s is down%s", ifp->name, VTY_NEWLINE);
if (oi_count == 0)
@@ -3101,6 +3100,9 @@ show_lsa_summary (struct vty *vty, struct ospf_lsa *lsa, int self)
vty_out (vty, " %s/%d", inet_ntoa (p.prefix), p.prefixlen);
break;
case OSPF_AS_EXTERNAL_LSA:
+#ifdef HAVE_NSSA
+ case OSPF_AS_NSSA_LSA:
+#endif /* HAVE_NSSA */
asel = (struct as_external_lsa *) lsa->data;
p.family = AF_INET;
@@ -7375,6 +7377,7 @@ ospf_vty_if_init ()
install_node (&interface_node, config_write_interface);
install_element (CONFIG_NODE, &interface_cmd);
+ install_element (CONFIG_NODE, &no_interface_cmd);
install_default (INTERFACE_NODE);
/* "description" commands. */
@@ -7583,14 +7586,14 @@ ospf_vty_init ()
/* "ospf router-id" commands. */
install_element (OSPF_NODE, &ospf_router_id_cmd);
install_element (OSPF_NODE, &no_ospf_router_id_cmd);
- install_element (OSPF_NODE, &router_id_cmd);
- install_element (OSPF_NODE, &no_router_id_cmd);
+ install_element (OSPF_NODE, &router_ospf_id_cmd);
+ install_element (OSPF_NODE, &no_router_ospf_id_cmd);
/* "passive-interface" commands. */
- install_element (OSPF_NODE, &passive_interface_addr_cmd);
- install_element (OSPF_NODE, &passive_interface_cmd);
- install_element (OSPF_NODE, &no_passive_interface_addr_cmd);
- install_element (OSPF_NODE, &no_passive_interface_cmd);
+ install_element (OSPF_NODE, &ospf_passive_interface_addr_cmd);
+ install_element (OSPF_NODE, &ospf_passive_interface_cmd);
+ install_element (OSPF_NODE, &no_ospf_passive_interface_addr_cmd);
+ install_element (OSPF_NODE, &no_ospf_passive_interface_cmd);
/* "ospf abr-type" commands. */
install_element (OSPF_NODE, &ospf_abr_type_cmd);
@@ -7603,111 +7606,111 @@ ospf_vty_init ()
install_element (OSPF_NODE, &no_ospf_compatible_rfc1583_cmd);
/* "network area" commands. */
- install_element (OSPF_NODE, &network_area_cmd);
- install_element (OSPF_NODE, &no_network_area_cmd);
+ install_element (OSPF_NODE, &ospf_network_area_cmd);
+ install_element (OSPF_NODE, &no_ospf_network_area_cmd);
/* "area authentication" commands. */
- install_element (OSPF_NODE, &area_authentication_message_digest_cmd);
- install_element (OSPF_NODE, &area_authentication_cmd);
- install_element (OSPF_NODE, &no_area_authentication_cmd);
+ install_element (OSPF_NODE, &ospf_area_authentication_message_digest_cmd);
+ install_element (OSPF_NODE, &ospf_area_authentication_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_authentication_cmd);
/* "area range" commands. */
- install_element (OSPF_NODE, &area_range_cmd);
- install_element (OSPF_NODE, &area_range_advertise_cmd);
- install_element (OSPF_NODE, &area_range_cost_cmd);
- install_element (OSPF_NODE, &area_range_advertise_cost_cmd);
- install_element (OSPF_NODE, &area_range_not_advertise_cmd);
- install_element (OSPF_NODE, &no_area_range_cmd);
- install_element (OSPF_NODE, &no_area_range_advertise_cmd);
- install_element (OSPF_NODE, &no_area_range_cost_cmd);
- install_element (OSPF_NODE, &no_area_range_advertise_cost_cmd);
- install_element (OSPF_NODE, &area_range_substitute_cmd);
- install_element (OSPF_NODE, &no_area_range_substitute_cmd);
+ install_element (OSPF_NODE, &ospf_area_range_cmd);
+ install_element (OSPF_NODE, &ospf_area_range_advertise_cmd);
+ install_element (OSPF_NODE, &ospf_area_range_cost_cmd);
+ install_element (OSPF_NODE, &ospf_area_range_advertise_cost_cmd);
+ install_element (OSPF_NODE, &ospf_area_range_not_advertise_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_range_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_range_advertise_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_range_cost_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_range_advertise_cost_cmd);
+ install_element (OSPF_NODE, &ospf_area_range_substitute_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_range_substitute_cmd);
/* "area virtual-link" commands. */
- install_element (OSPF_NODE, &area_vlink_cmd);
- install_element (OSPF_NODE, &no_area_vlink_cmd);
+ install_element (OSPF_NODE, &ospf_area_vlink_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_vlink_cmd);
- install_element (OSPF_NODE, &area_vlink_param1_cmd);
- install_element (OSPF_NODE, &no_area_vlink_param1_cmd);
+ install_element (OSPF_NODE, &ospf_area_vlink_param1_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_vlink_param1_cmd);
- install_element (OSPF_NODE, &area_vlink_param2_cmd);
- install_element (OSPF_NODE, &no_area_vlink_param2_cmd);
+ install_element (OSPF_NODE, &ospf_area_vlink_param2_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_vlink_param2_cmd);
- install_element (OSPF_NODE, &area_vlink_param3_cmd);
- install_element (OSPF_NODE, &no_area_vlink_param3_cmd);
+ install_element (OSPF_NODE, &ospf_area_vlink_param3_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_vlink_param3_cmd);
- install_element (OSPF_NODE, &area_vlink_param4_cmd);
- install_element (OSPF_NODE, &no_area_vlink_param4_cmd);
+ install_element (OSPF_NODE, &ospf_area_vlink_param4_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_vlink_param4_cmd);
- install_element (OSPF_NODE, &area_vlink_authtype_args_cmd);
- install_element (OSPF_NODE, &area_vlink_authtype_cmd);
- install_element (OSPF_NODE, &no_area_vlink_authtype_cmd);
+ install_element (OSPF_NODE, &ospf_area_vlink_authtype_args_cmd);
+ install_element (OSPF_NODE, &ospf_area_vlink_authtype_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_vlink_authtype_cmd);
- install_element (OSPF_NODE, &area_vlink_md5_cmd);
- install_element (OSPF_NODE, &no_area_vlink_md5_cmd);
+ install_element (OSPF_NODE, &ospf_area_vlink_md5_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_vlink_md5_cmd);
- install_element (OSPF_NODE, &area_vlink_authkey_cmd);
- install_element (OSPF_NODE, &no_area_vlink_authkey_cmd);
+ install_element (OSPF_NODE, &ospf_area_vlink_authkey_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_vlink_authkey_cmd);
- install_element (OSPF_NODE, &area_vlink_authtype_args_authkey_cmd);
- install_element (OSPF_NODE, &area_vlink_authtype_authkey_cmd);
- install_element (OSPF_NODE, &no_area_vlink_authtype_authkey_cmd);
+ install_element (OSPF_NODE, &ospf_area_vlink_authtype_args_authkey_cmd);
+ install_element (OSPF_NODE, &ospf_area_vlink_authtype_authkey_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_vlink_authtype_authkey_cmd);
- install_element (OSPF_NODE, &area_vlink_authtype_args_md5_cmd);
- install_element (OSPF_NODE, &area_vlink_authtype_md5_cmd);
- install_element (OSPF_NODE, &no_area_vlink_authtype_md5_cmd);
+ install_element (OSPF_NODE, &ospf_area_vlink_authtype_args_md5_cmd);
+ install_element (OSPF_NODE, &ospf_area_vlink_authtype_md5_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_vlink_authtype_md5_cmd);
/* "area stub" commands. */
- install_element (OSPF_NODE, &area_stub_no_summary_cmd);
- install_element (OSPF_NODE, &area_stub_cmd);
- install_element (OSPF_NODE, &no_area_stub_no_summary_cmd);
- install_element (OSPF_NODE, &no_area_stub_cmd);
+ install_element (OSPF_NODE, &ospf_area_stub_no_summary_cmd);
+ install_element (OSPF_NODE, &ospf_area_stub_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_stub_no_summary_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_stub_cmd);
#ifdef HAVE_NSSA
/* "area nssa" commands. */
- install_element (OSPF_NODE, &area_nssa_cmd);
- install_element (OSPF_NODE, &area_nssa_translate_no_summary_cmd);
- install_element (OSPF_NODE, &area_nssa_translate_cmd);
- install_element (OSPF_NODE, &area_nssa_no_summary_cmd);
- install_element (OSPF_NODE, &no_area_nssa_cmd);
- install_element (OSPF_NODE, &no_area_nssa_no_summary_cmd);
+ install_element (OSPF_NODE, &ospf_area_nssa_cmd);
+ install_element (OSPF_NODE, &ospf_area_nssa_translate_no_summary_cmd);
+ install_element (OSPF_NODE, &ospf_area_nssa_translate_cmd);
+ install_element (OSPF_NODE, &ospf_area_nssa_no_summary_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_nssa_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_nssa_no_summary_cmd);
#endif /* HAVE_NSSA */
- install_element (OSPF_NODE, &area_default_cost_cmd);
- install_element (OSPF_NODE, &no_area_default_cost_cmd);
+ install_element (OSPF_NODE, &ospf_area_default_cost_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_default_cost_cmd);
- install_element (OSPF_NODE, &area_shortcut_cmd);
- install_element (OSPF_NODE, &no_area_shortcut_cmd);
+ install_element (OSPF_NODE, &ospf_area_shortcut_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_shortcut_cmd);
- install_element (OSPF_NODE, &area_export_list_cmd);
- install_element (OSPF_NODE, &no_area_export_list_cmd);
+ install_element (OSPF_NODE, &ospf_area_export_list_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_export_list_cmd);
- install_element (OSPF_NODE, &area_filter_list_cmd);
- install_element (OSPF_NODE, &no_area_filter_list_cmd);
+ install_element (OSPF_NODE, &ospf_area_filter_list_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_filter_list_cmd);
- install_element (OSPF_NODE, &area_import_list_cmd);
- install_element (OSPF_NODE, &no_area_import_list_cmd);
+ install_element (OSPF_NODE, &ospf_area_import_list_cmd);
+ install_element (OSPF_NODE, &no_ospf_area_import_list_cmd);
- install_element (OSPF_NODE, &timers_spf_cmd);
- install_element (OSPF_NODE, &no_timers_spf_cmd);
+ install_element (OSPF_NODE, &ospf_timers_spf_cmd);
+ install_element (OSPF_NODE, &no_ospf_timers_spf_cmd);
- install_element (OSPF_NODE, &refresh_timer_cmd);
- install_element (OSPF_NODE, &no_refresh_timer_val_cmd);
- install_element (OSPF_NODE, &no_refresh_timer_cmd);
+ install_element (OSPF_NODE, &ospf_refresh_timer_cmd);
+ install_element (OSPF_NODE, &no_ospf_refresh_timer_val_cmd);
+ install_element (OSPF_NODE, &no_ospf_refresh_timer_cmd);
- install_element (OSPF_NODE, &auto_cost_reference_bandwidth_cmd);
- install_element (OSPF_NODE, &no_auto_cost_reference_bandwidth_cmd);
+ install_element (OSPF_NODE, &ospf_auto_cost_reference_bandwidth_cmd);
+ install_element (OSPF_NODE, &no_ospf_auto_cost_reference_bandwidth_cmd);
/* "neighbor" commands. */
- install_element (OSPF_NODE, &neighbor_cmd);
- install_element (OSPF_NODE, &neighbor_priority_poll_interval_cmd);
- install_element (OSPF_NODE, &neighbor_priority_cmd);
- install_element (OSPF_NODE, &neighbor_poll_interval_cmd);
- install_element (OSPF_NODE, &neighbor_poll_interval_priority_cmd);
- install_element (OSPF_NODE, &no_neighbor_cmd);
- install_element (OSPF_NODE, &no_neighbor_priority_cmd);
- install_element (OSPF_NODE, &no_neighbor_poll_interval_cmd);
+ install_element (OSPF_NODE, &ospf_neighbor_cmd);
+ install_element (OSPF_NODE, &ospf_neighbor_priority_poll_interval_cmd);
+ install_element (OSPF_NODE, &ospf_neighbor_priority_cmd);
+ install_element (OSPF_NODE, &ospf_neighbor_poll_interval_cmd);
+ install_element (OSPF_NODE, &ospf_neighbor_poll_interval_priority_cmd);
+ install_element (OSPF_NODE, &no_ospf_neighbor_cmd);
+ install_element (OSPF_NODE, &no_ospf_neighbor_priority_cmd);
+ install_element (OSPF_NODE, &no_ospf_neighbor_poll_interval_cmd);
/* Init interface related vty commands. */
ospf_vty_if_init ();
diff --git a/ospfd/ospf_zebra.c b/ospfd/ospf_zebra.c
index 833dd706..bdb0c0f5 100644
--- a/ospfd/ospf_zebra.c
+++ b/ospfd/ospf_zebra.c
@@ -67,6 +67,8 @@ ospf_interface_add (int command, struct zclient *zclient, zebra_size_t length)
zlog_info ("Zebra: interface add %s index %d flags %ld metric %d mtu %d",
ifp->name, ifp->ifindex, ifp->flags, ifp->metric, ifp->mtu);
+ assert(ifp->info);
+
if (!OSPF_IF_PARAM_CONFIGURED (IF_DEF_PARAMS (ifp), type))
{
SET_IF_PARAM (IF_DEF_PARAMS (ifp), type);
@@ -157,6 +159,7 @@ zebra_interface_if_set_value (struct stream *s, struct interface *ifp)
ifp->ifindex = stream_getl (s);
/* Read interface's value. */
+ ifp->status = stream_getc (s);
ifp->flags = stream_getl (s);
ifp->metric = stream_getl (s);
ifp->mtu = stream_getl (s);
@@ -178,7 +181,7 @@ ospf_interface_state_up (int command, struct zclient *zclient,
return 0;
/* Interface is already up. */
- if (if_is_up (ifp))
+ if (if_is_operative (ifp))
{
/* Temporarily keep ifp values. */
memcpy (&if_tmp, ifp, sizeof (struct interface));
diff --git a/ospfd/ospf_zebra.h b/ospfd/ospf_zebra.h
index 6e91f042..5dbf5739 100644
--- a/ospfd/ospf_zebra.h
+++ b/ospfd/ospf_zebra.h
@@ -50,26 +50,28 @@ void ospf_zebra_delete_discard (struct prefix_ipv4 *);
int ospf_default_originate_timer (struct thread *);
-int ospf_redistribute_check (struct ospf *, struct external_info *, int *);
-int ospf_distribute_check_connected (struct ospf *, struct external_info *);
-void ospf_distribute_list_update (struct ospf *, int);
+int ospf_redistribute_check (struct external_info *, int *);
+int ospf_distribute_check_connected (struct external_info *);
+void ospf_distribute_list_update (int);
int ospf_is_type_redistributed (int);
-void ospf_distance_reset (struct ospf *);
+int ospf_redistribute_unset (int);
+
+void ospf_distance_reset ();
u_char ospf_distance_apply (struct prefix_ipv4 *, struct ospf_route *);
struct vty;
-int ospf_redistribute_set (struct ospf *, int, int, int);
-int ospf_redistribute_unset (struct ospf *, int);
-int ospf_redistribute_default_set (struct ospf *, int, int, int);
-int ospf_redistribute_default_unset (struct ospf *);
-int ospf_distribute_list_out_set (struct ospf *, int, char *);
-int ospf_distribute_list_out_unset (struct ospf *, int, char *);
-void ospf_routemap_set (struct ospf *, int, char *);
-void ospf_routemap_unset (struct ospf *, int);
-int ospf_distance_set (struct vty *, struct ospf *, char *, char *, char *);
-int ospf_distance_unset (struct vty *, struct ospf *, char *, char *, char *);
+int ospf_redistribute_set (int, int, int);
+int ospf_redistribute_unset (int);
+int ospf_redistribute_default_set (int, int, int);
+int ospf_redistribute_default_unset ();
+int ospf_distribute_list_out_set (int, char *);
+int ospf_distribute_list_out_unset (int, char *);
+void ospf_routemap_set (int, char *);
+void ospf_routemap_unset (int);
+int ospf_distance_set (struct vty *, char *, char *, char *);
+int ospf_distance_unset (struct vty *, char *, char *, char *);
void ospf_zebra_init ();
#endif /* _ZEBRA_OSPF_ZEBRA_H */
diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c
index a12a0115..d8646f07 100644
--- a/ospfd/ospfd.c
+++ b/ospfd/ospfd.c
@@ -53,7 +53,6 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
#include "ospfd/ospf_ase.h"
-
/* OSPF process wide configuration. */
static struct ospf_master ospf_master;
diff --git a/init/redhat/bgpd.init b/redhat/bgpd.init
index 91d2aebb..d7c2e3fe 100644
--- a/init/redhat/bgpd.init
+++ b/redhat/bgpd.init
@@ -4,41 +4,56 @@
# description: A BGPv4, BGPv4+, BGPv4- routing engine for use with Zebra
#
# processname: bgpd
-# config: /etc/bgpd.conf
+# config: /etc/zebra/bgpd.conf
# source function library
. /etc/rc.d/init.d/functions
-RETVAL=0
+# Get network config
+. /etc/sysconfig/network
+
+# Check that networking is up.
+[ "${NETWORKING}" = "no" ] && exit 0
+
+# The process must be configured first.
+[ -f /etc/zebra/bgpd.conf ] || exit 0
-[ -f /etc/bgpd.conf ] || exit 0
+RETVAL=0
+prog="bgpd"
case "$1" in
start)
- echo -n "Starting bgpd: "
+ echo -n $"Starting $prog: "
daemon /usr/sbin/bgpd -d
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/bgpd
echo
;;
stop)
- echo -n "Shutting down bgpd: "
+ echo -n $"Shutting down $prog: "
killproc bgpd
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/bgpd
echo
;;
- restart)
+ restart|reload)
$0 stop
$0 start
RETVAL=$?
;;
+ condrestart)
+ if [ -f /var/lock/subsys/bgpd ]; then
+ $0 stop
+ $0 start
+ fi
+ RETVAL=$?
+ ;;
status)
status bgpd
RETVAL=$?
;;
*)
- echo "Usage: bgpd {start|stop|restart|status}"
+ echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
exit 1
esac
diff --git a/init/redhat/ospf6d.init b/redhat/ospf6d.init
index 4d89f8a2..9a6e8c51 100644
--- a/init/redhat/ospf6d.init
+++ b/redhat/ospf6d.init
@@ -4,41 +4,56 @@
# description: An OSPF routing engine for use with Zebra and IPv6
#
# processname: ospf6d
-# config: /etc/ospf6d.conf
+# config: /etc/zebra/ospf6d.conf
# source function library
. /etc/rc.d/init.d/functions
-RETVAL=0
+# Get network config
+. /etc/sysconfig/network
+
+# Check that networking is up.
+[ "${NETWORKING_IPV6}" = "no" ] && exit 0
+
+# The process must be configured first.
+[ -f /etc/zebra/ospf6d.conf ] || exit 0
-[ -f /etc/ospf6d.conf ] || exit 0
+RETVAL=0
+prog="ospf6d"
case "$1" in
start)
- echo -n "Starting ospf6d: "
+ echo -n $"Starting $prog: "
daemon /usr/sbin/ospf6d -d
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/ospf6d
echo
;;
stop)
- echo -n "Shutting down ospf6d: "
+ echo -n $"Shutting down $prog: "
killproc ospf6d
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ospf6d
echo
;;
- restart)
+ restart|reload)
$0 stop
$0 start
RETVAL=$?
;;
+ condrestart)
+ if [ -f /var/lock/subsys/ospf6d ]; then
+ $0 stop
+ $0 start
+ fi
+ RETVAL=$?
+ ;;
status)
status ospf6d
RETVAL=$?
;;
*)
- echo "Usage: ospf6d {start|stop|restart|status}"
+ echo $"Usage: $prog {start|stop|restart|reload|condrestart|status}"
exit 1
esac
diff --git a/init/redhat/ospfd.init b/redhat/ospfd.init
index d7453b6e..4aab1388 100644
--- a/init/redhat/ospfd.init
+++ b/redhat/ospfd.init
@@ -4,41 +4,57 @@
# description: An OSPF v2 routing engine for use with Zebra
#
# processname: ospfd
-# config: /etc/ospfd.conf
+# config: /etc/zebra/ospfd.conf
# source function library
. /etc/rc.d/init.d/functions
+# Get network config
+. /etc/sysconfig/network
+
+# Check that networking is up.
+[ "${NETWORKING}" = "no" ] && exit 0
+
+# The process must be configured first.
+[ -f /etc/zebra/ospfd.conf ] || exit 0
+
RETVAL=0
-[ -f /etc/ospfd.conf ] || exit 0
+prog="ospfd"
case "$1" in
start)
- echo -n "Starting ospfd: "
+ echo -n $"Starting $prog: "
daemon /usr/sbin/ospfd -d
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/ospfd
echo
;;
stop)
- echo -n "Shutting down ospfd: "
+ echo -n $"Shutting down $prog: "
killproc ospfd
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ospfd
echo
;;
- restart)
+ restart|reload)
$0 stop
$0 start
RETVAL=$?
;;
+ condrestart)
+ if [ -f /var/lock/subsys/ospfd ]; then
+ $0 stop
+ $0 start
+ fi
+ RETVAL=$?
+ ;;
status)
status ospfd
RETVAL=$?
;;
*)
- echo "Usage: ospfd {start|stop|restart|status}"
+ echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
exit 1
esac
diff --git a/init/redhat/ripd.init b/redhat/ripd.init
index d87f498d..2ac67337 100644
--- a/init/redhat/ripd.init
+++ b/redhat/ripd.init
@@ -4,41 +4,56 @@
# description: A RIP routing engine for use with Zebra
#
# processname: ripd
-# config: /etc/ripd.conf
+# config: /etc/zebra/ripd.conf
# source function library
. /etc/rc.d/init.d/functions
-RETVAL=0
+# Get network config
+. /etc/sysconfig/network
+
+# Check that networking is up.
+[ "${NETWORKING}" = "no" ] && exit 0
+
+# The process must be configured first.
+[ -f /etc/zebra/ripd.conf ] || exit 0
-[ -f /etc/ripd.conf ] || exit 0
+RETVAL=0
+prog="ripd"
case "$1" in
start)
- echo -n "Starting ripd: "
+ echo -n $"Starting $prog: "
daemon /usr/sbin/ripd -d
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/ripd
echo
;;
stop)
- echo -n "Shutting down ripd: "
+ echo -n $"Shutting down $prog: "
killproc ripd
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ripd
echo
;;
- restart)
+ restart|reload)
$0 stop
$0 start
RETVAL=$?
;;
+ condrestart)
+ if [ -f /var/lock/subsys/ripd ]; then
+ $0 stop
+ $0 start
+ fi
+ RETVAL=$?
+ ;;
status)
status ripd
RETVAL=$?
;;
*)
- echo "Usage: ripd {start|stop|restart|status}"
+ echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
exit 1
esac
diff --git a/init/redhat/ripngd.init b/redhat/ripngd.init
index 26c153bf..be54a013 100644
--- a/init/redhat/ripngd.init
+++ b/redhat/ripngd.init
@@ -4,41 +4,56 @@
# description: A RIP routing engine for use with Zebra and IPv6
#
# processname: ripngd
-# config: /etc/ripngd.conf
+# config: /etc/zebra/ripngd.conf
# source function library
. /etc/rc.d/init.d/functions
-RETVAL=0
+# Get network config
+. /etc/sysconfig/network
+
+# Check that networking is up.
+[ "${NETWORKING_IPV6}" = "no" ] && exit 0
+
+# The process must be configured first.
+[ -f /etc/zebra/ripngd.conf ] || exit 0
-[ -f /etc/ripngd.conf ] || exit 0
+RETVAL=0
+prog="ripngd"
case "$1" in
start)
- echo -n "Starting ripngd: "
+ echo -n $"Starting $prog: "
daemon /usr/sbin/ripngd -d
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/ripngd
echo
;;
stop)
- echo -n "Shutting down ripngd: "
+ echo -n $"Shutting down $prog: "
killproc ripngd
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ripngd
echo
;;
- restart)
+ restart|reload)
$0 stop
$0 start
RETVAL=$?
;;
+ condrestart)
+ if [ -f /var/lock/subsys/ripngd ]; then
+ $0 stop
+ $0 start
+ fi
+ RETVAL=$?
+ ;;
status)
status ripngd
RETVAL=$?
;;
*)
- echo "Usage: ripngd {start|stop|restart|status}"
+ echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
exit 1
esac
diff --git a/init/redhat/zebra.init b/redhat/zebra.init
index b09918ad..5a450e21 100644
--- a/init/redhat/zebra.init
+++ b/redhat/zebra.init
@@ -4,41 +4,57 @@
# description: GNU Zebra routing manager
#
# processname: zebra
-# config: /etc/zebra.conf
+# config: /etc/zebra/zebra.conf
# source function library
. /etc/rc.d/init.d/functions
+# Check that networking is up.
+[ "${NETWORKING}" = "no" ] && exit 0
+
+# The process must be configured first.
+[ -f /etc/zebra/zebra.conf ] || exit 0
+
RETVAL=0
-[ -f /etc/zebra.conf ] || exit 0
+prog="zebra"
case "$1" in
start)
- echo -n "Starting zebra: "
+ echo -n $"Starting $prog: "
+
+ /sbin/ip route flush proto zebra
+
daemon /usr/sbin/zebra -d
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/zebra
echo
;;
stop)
- echo -n "Shutting down zebra: "
+ echo -n $"Shutting down $prog: "
killproc zebra
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/zebra
echo
;;
- restart)
+ restart|reload)
$0 stop
$0 start
RETVAL=$?
;;
+ condrestart)
+ if [ -f /var/lock/subsys/zebra ]; then
+ $0 stop
+ $0 start
+ fi
+ RETVAL=$?
+ ;;
status)
status zebra
RETVAL=$?
;;
*)
- echo "Usage: zebra {start|stop|restart|status}"
+ echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
exit 1
esac
diff --git a/redhat/zebra.logrotate b/redhat/zebra.logrotate
new file mode 100644
index 00000000..2e352ff6
--- /dev/null
+++ b/redhat/zebra.logrotate
@@ -0,0 +1,59 @@
+/var/log/zebra/zebra.log {
+ notifempty
+ missingok
+ nocompress
+ weekly
+ postrotate
+ /usr/sbin/killall -USR1 zebra
+ endscript
+}
+
+/var/log/zebra/bgpd.log {
+ notifempty
+ missingok
+ nocompress
+ weekly
+ postrotate
+ /usr/sbin/killall -USR1 bgpd
+ endscript
+}
+
+/var/log/zebra/ospfd.log {
+ notifempty
+ missingok
+ nocompress
+ weekly
+ postrotate
+ /usr/sbin/killall -USR1 ospfd
+ endscript
+}
+
+/var/log/zebra/ospf6d.log {
+ notifempty
+ missingok
+ nocompress
+ weekly
+ postrotate
+ /usr/sbin/killall -USR1 ospf6d
+ endscript
+}
+
+/var/log/zebra/ripd.log {
+ notifempty
+ missingok
+ nocompress
+ weekly
+ postrotate
+ /usr/sbin/killall -USR1 ripd
+ endscript
+}
+
+/var/log/zebra/ripngd.log {
+ notifempty
+ missingok
+ nocompress
+ weekly
+ postrotate
+ /usr/sbin/killall -USR1 ripngd
+ endscript
+}
diff --git a/redhat/zebra.pam b/redhat/zebra.pam
index 1390edf4..fb17f59e 100644
--- a/redhat/zebra.pam
+++ b/redhat/zebra.pam
@@ -1,26 +1,10 @@
#%PAM-1.0
#
-
-##### if running zebra as root:
# Only allow root (and possibly wheel) to use this because enable access
# is unrestricted.
-# auth sufficient /lib/security/pam_rootok.so
+auth sufficient /lib/security/pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth sufficient /lib/security/pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth required /lib/security/pam_wheel.so use_uid
-###########################################################
-
-# If using zebra privileges and with a seperate group for vty access, then
-# access can be controlled via the vty access group, and pam can simply
-# check for valid user/password
-#
-# only allow local users.
-auth required /lib/security/pam_securetty.so
-auth required /lib/security/pam_stack.so service=system-auth
-auth required /lib/security/pam_nologin.so
-account required /lib/security/pam_stack.so service=system-auth
-password required /lib/security/pam_stack.so service=system-auth
-session required /lib/security/pam_stack.so service=system-auth
-session optional /lib/security/pam_console.so
diff --git a/redhat/zebra.spec.in b/redhat/zebra.spec.in
index 85b3b318..ce3a6fb4 100644
--- a/redhat/zebra.spec.in
+++ b/redhat/zebra.spec.in
@@ -1,4 +1,4 @@
-# configure options
+# conditionals
%define with_snmp 0
%define with_vtysh 1
%define with_ospf_te 1
@@ -11,8 +11,6 @@
%define with_ospfclient 1
%define with_ospfapi 1
%define with_multipath 64
-%define zebra_user zebra
-%define vty_group zebravty
# path defines
%define _sysconfdir /etc/zebra
@@ -24,12 +22,12 @@
%define _libexecdir %{_exec_prefix}/libexec/zebra
%define _includedir %{_prefix}/include/zebra
%define _libdir %{_exec_prefix}/%{_lib}/zebra
-%define _localstatedir /var/run/zebra
+%define _localstatedir %{_prefix}/var/run
Summary: Routing daemon
Name: zebra
Version: @VERSION@
-Release: @CONFDATE@01
+Release: @CONFDATE@
License: GPL
Group: System Environment/Daemons
Source0: ftp://ftp.zebra.org/pub/zebra/%{name}-%{version}.tar.gz
@@ -82,7 +80,10 @@ developing OSPF-API and zebra applications.
%setup -q
%build
+./update-autotools
%configure \
+ --with-cflags="-O2" \
+ --enable-netlink \
%if %with_ipv6
--enable-ipv6 \
%endif
@@ -118,17 +119,12 @@ developing OSPF-API and zebra applications.
--enable-ospfapi=no \
%endif
%if %with_pam
- --with-libpam \
+ --with-libpam
%endif
-%if %zebra_user
- --enable-user=%zebra_user \
- --enable-group=%zebra_user \
-%endif
-%if %vty_group
- --enable-vty-group=%vty_group \
-%endif
---with-cflags="-O2" \
---enable-netlink
+
+pushd vtysh
+make %{?_smp_mflags} rebuild
+popd
make %{?_smp_mflags} MAKEINFO="makeinfo --no-split"
@@ -155,18 +151,6 @@ install %{zeb_rh_src}/ospfd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/ospfd
install %{zeb_rh_src}/ripd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/ripd
install -m644 %{zeb_rh_src}/zebra.pam $RPM_BUILD_ROOT/etc/pam.d/zebra
install -m644 %{zeb_rh_src}/zebra.logrotate $RPM_BUILD_ROOT/etc/logrotate.d/zebra
-install -d -m750 $RPM_BUILD_ROOT/var/run/zebra
-
-%pre
-# add vty_group
-%if %vty_group
-groupadd -r %vty_group 2> /dev/null || :
-%endif
-# add zebra user and group
-%if %zebra_user
-/usr/sbin/useradd -M -r -s /bin/false -c "Zebra routing suite" \
- -d %_localstatedir %zebra_user 2> /dev/null || :
-%endif
%post
# zebra_spec_add_service <service name> <port/proto> <comment>
@@ -251,19 +235,9 @@ fi
%doc doc/zebra.html
%doc doc/mpls
%doc ChangeLog INSTALL NEWS README REPORTING-BUGS SERVICES TODO
-%if %zebra_user
-%dir %attr(751,%zebra_user,%zebra_user) %{_sysconfdir}
-%dir %attr(750,%zebra_user,%zebra_user) /var/log/zebra
-%dir %attr(751,%zebra_user,%zebra_user) /var/run/zebra
-%else
%dir %attr(750,root,root) %{_sysconfdir}
%dir %attr(750,root,root) /var/log/zebra
%dir %attr(755,root,root) /usr/share/info
-%dir %attr(750,root,root) /var/run/zebra
-%endif
-%if %vty_group
-%attr(750,%zebra_user,%vty_group) %{_sysconfdir}/vtysh.conf.sample
-%endif
%{_infodir}/*info*
%{_mandir}/man*/*
%{_sbindir}/*
@@ -288,9 +262,6 @@ fi
%endif
%changelog
-* Tue Mar 20 2003 Paul Jakma <paul@dishone.st>
-- zebra privileges support
-
* Mon Mar 18 2003 Paul Jakma <paul@dishone.st>
- Fix mem leak in 'show thread cpu'
- Ralph Keller's OSPF-API
diff --git a/ripd/.cvsignore b/ripd/.cvsignore
index 1f91515a..7d4ff64f 100644
--- a/ripd/.cvsignore
+++ b/ripd/.cvsignore
@@ -1,4 +1,5 @@
Makefile
+Makefile.in
*.o
ripd
ripd.conf
diff --git a/ripd/Makefile.am b/ripd/Makefile.am
index 2c187e84..df9a0af5 100644
--- a/ripd/Makefile.am
+++ b/ripd/Makefile.am
@@ -17,7 +17,7 @@ noinst_HEADERS = \
ripd_SOURCES = \
rip_main.c $(librip_a_SOURCES)
-ripd_LDADD = -L../lib -lzebra @LIBCAP@
+ripd_LDADD = -L../lib -lzebra
sysconf_DATA = ripd.conf.sample
diff --git a/ripd/Makefile.in b/ripd/Makefile.in
deleted file mode 100644
index 2fe359ff..00000000
--- a/ripd/Makefile.in
+++ /dev/null
@@ -1,418 +0,0 @@
-# Makefile.in generated by automake 1.6.3 from Makefile.am.
-# @configure_input@
-
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = @program_transform_name@
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_alias = @host_alias@
-host_triplet = @host@
-
-EXEEXT = @EXEEXT@
-OBJEXT = @OBJEXT@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-AMTAR = @AMTAR@
-AR = @AR@
-AWK = @AWK@
-BGPD = @BGPD@
-CC = @CC@
-CPP = @CPP@
-CURSES = @CURSES@
-DEPDIR = @DEPDIR@
-IF_METHOD = @IF_METHOD@
-IF_PROC = @IF_PROC@
-
-INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-IPFORWARD = @IPFORWARD@
-KERNEL_METHOD = @KERNEL_METHOD@
-LIBPAM = @LIBPAM@
-LIB_IPV6 = @LIB_IPV6@
-LIB_REGEX = @LIB_REGEX@
-MULTIPATH_NUM = @MULTIPATH_NUM@
-OSPF6D = @OSPF6D@
-OSPFD = @OSPFD@
-OTHER_METHOD = @OTHER_METHOD@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-RIPD = @RIPD@
-RIPNGD = @RIPNGD@
-RTREAD_METHOD = @RTREAD_METHOD@
-RT_METHOD = @RT_METHOD@
-STRIP = @STRIP@
-VERSION = @VERSION@
-VTYSH = @VTYSH@
-ZEBRA = @ZEBRA@
-am__include = @am__include@
-am__quote = @am__quote@
-install_sh = @install_sh@
-DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
-INSTALL_SDATA = @INSTALL@ -m 600
-
-noinst_LIBRARIES = librip.a
-sbin_PROGRAMS = ripd
-
-librip_a_SOURCES = \
- ripd.c rip_zebra.c rip_interface.c rip_debug.c rip_snmp.c \
- rip_routemap.c rip_peer.c rip_offset.c
-
-
-noinst_HEADERS = \
- ripd.h rip_debug.h
-
-
-ripd_SOURCES = \
- rip_main.c $(librip_a_SOURCES)
-
-
-ripd_LDADD = ../lib/libzebra.a
-
-sysconf_DATA = ripd.conf.sample
-
-EXTRA_DIST = $(sysconf_DATA) RIPv2-MIB.txt
-subdir = ripd
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-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__objects_1 = ripd.$(OBJEXT) rip_zebra.$(OBJEXT) \
- rip_interface.$(OBJEXT) rip_debug.$(OBJEXT) rip_snmp.$(OBJEXT) \
- rip_routemap.$(OBJEXT) rip_peer.$(OBJEXT) rip_offset.$(OBJEXT)
-am_ripd_OBJECTS = rip_main.$(OBJEXT) $(am__objects_1)
-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@
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/rip_debug.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/rip_interface.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/rip_main.Po ./$(DEPDIR)/rip_offset.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/rip_peer.Po ./$(DEPDIR)/rip_routemap.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/rip_snmp.Po ./$(DEPDIR)/rip_zebra.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/ripd.Po
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-CFLAGS = @CFLAGS@
-DIST_SOURCES = $(librip_a_SOURCES) $(ripd_SOURCES)
-DATA = $(sysconf_DATA)
-
-HEADERS = $(noinst_HEADERS)
-
-DIST_COMMON = $(noinst_HEADERS) ChangeLog Makefile.am Makefile.in
-SOURCES = $(librip_a_SOURCES) $(ripd_SOURCES)
-
-all: all-am
-
-.SUFFIXES:
-.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) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-librip.a: $(librip_a_OBJECTS) $(librip_a_DEPENDENCIES)
- -rm -f librip.a
- $(librip_a_AR) librip.a $(librip_a_OBJECTS) $(librip_a_LIBADD)
- $(RANLIB) librip.a
-sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-install-sbinPROGRAMS: $(sbin_PROGRAMS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(sbindir)
- @list='$(sbin_PROGRAMS)'; for p in $$list; do \
- p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
- if test -f $$p \
- ; then \
- f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) $$p $(DESTDIR)$(sbindir)/$$f"; \
- $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) $$p $(DESTDIR)$(sbindir)/$$f; \
- else :; fi; \
- done
-
-uninstall-sbinPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(sbin_PROGRAMS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
- rm -f $(DESTDIR)$(sbindir)/$$f; \
- done
-
-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:
-sysconfDATA_INSTALL = $(INSTALL_DATA)
-
-uninstall-sysconfDATA:
- @$(NORMAL_UNINSTALL)
- @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
-
-ETAGS = etags
-ETAGSFLAGS =
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(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; }'`; \
- mkid -fID $$unique
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(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)$$tags$$unique" \
- || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
-
-distdir: $(DISTFILES)
- @list='$(DISTFILES)'; for file in $$list; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
-
-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
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-noinstLIBRARIES clean-sbinPROGRAMS \
- mostlyclean-am
-
-distclean: distclean-am
-
-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
-
-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)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(sysconfdir)
- @list='$(sysconf_DATA)'; for p in $$list; do \
- if test -f $(srcdir)/$$p; then \
- echo " $(INSTALL_SDATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p"; \
- $(INSTALL_SDATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p; \
- else if test -f $$p; then \
- echo " $(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p"; \
- $(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/ripd/rip_interface.c b/ripd/rip_interface.c
index c3889295..8ec96ae1 100644
--- a/ripd/rip_interface.c
+++ b/ripd/rip_interface.c
@@ -34,7 +34,6 @@
#include "zclient.h"
#include "filter.h"
#include "sockopt.h"
-#include "privs.h"
#include "zebra/connected.h"
@@ -57,8 +56,6 @@ struct message ri_version_msg[] =
{0, NULL}
};
-extern struct zebra_privs_t ripd_privs;
-
/* RIP enabled network vector. */
vector rip_enable_interface;
@@ -180,9 +177,6 @@ rip_interface_multicast_set (int sock, struct interface *ifp)
from.sin_len = sizeof (struct sockaddr_in);
#endif /* HAVE_SIN_LEN */
- if (ripd_privs.change (ZPRIVS_RAISE))
- zlog_err ("rip_interface_multicast_set: could not raise privs");
-
ret = bind (sock, (struct sockaddr *) & from,
sizeof (struct sockaddr_in));
if (ret < 0)
@@ -191,9 +185,6 @@ rip_interface_multicast_set (int sock, struct interface *ifp)
return;
}
- if (ripd_privs.change (ZPRIVS_LOWER))
- zlog_err ("rip_interface_multicast_set: could not lower privs");
-
return;
}
diff --git a/ripd/rip_main.c b/ripd/rip_main.c
index 9526d7ae..5e560524 100644
--- a/ripd/rip_main.c
+++ b/ripd/rip_main.c
@@ -30,7 +30,6 @@
#include "filter.h"
#include "keychain.h"
#include "log.h"
-#include "privs.h"
#include "ripd/ripd.h"
@@ -44,31 +43,10 @@ static struct option longopts[] =
{ "vty_addr", required_argument, NULL, 'A'},
{ "vty_port", required_argument, NULL, 'P'},
{ "retain", no_argument, NULL, 'r'},
- { "user", required_argument, NULL, 'u'},
{ "version", no_argument, NULL, 'v'},
{ 0 }
};
-/* ripd privileges */
-zebra_capabilities_t _caps_p [] =
-{
- ZCAP_RAW,
- ZCAP_BIND
-};
-
-struct zebra_privs_t ripd_privs =
-{
-#if defined(ZEBRA_USER)
- .user = ZEBRA_USER,
-#endif
-#if defined ZEBRA_GROUP
- .group = ZEBRA_GROUP,
-#endif
- .caps_p = _caps_p,
- .cap_num_p = 2,
- .cap_num_i = 0
-};
-
/* Configuration file and directory. */
char config_current[] = RIPD_DEFAULT_CONFIG;
char config_default[] = SYSCONFDIR RIPD_DEFAULT_CONFIG;
@@ -107,7 +85,6 @@ Daemon which manages RIP version 1 and 2.\n\n\
-A, --vty_addr Set vty's bind address\n\
-P, --vty_port Set vty's port number\n\
-r, --retain When program terminates, retain added route by ripd.\n\
--u, --user User and group to run as\n\
-v, --version Print program version\n\
-h, --help Display this help and exit\n\
\n\
@@ -212,7 +189,7 @@ main (int argc, char **argv)
{
int opt;
- opt = getopt_long (argc, argv, "df:hA:P:u:rv", longopts, 0);
+ opt = getopt_long (argc, argv, "df:hA:P:rv", longopts, 0);
if (opt == EOF)
break;
@@ -247,9 +224,6 @@ main (int argc, char **argv)
case 'r':
retain_mode = 1;
break;
- case 'u':
- ripd_privs.group = ripd_privs.user = optarg;
- break;
case 'v':
print_version (progname);
exit (0);
@@ -267,7 +241,6 @@ main (int argc, char **argv)
master = thread_master_create ();
/* Library initialization. */
- zprivs_init (&ripd_privs);
signal_init ();
cmd_init (1);
vty_init ();
diff --git a/ripd/rip_snmp.c b/ripd/rip_snmp.c
index dc2b6212..5a5060fd 100644
--- a/ripd/rip_snmp.c
+++ b/ripd/rip_snmp.c
@@ -22,6 +22,9 @@
#include <zebra.h>
#ifdef HAVE_SNMP
+#ifdef HAVE_NETSNMP
+#include <net-snmp/net-snmp-config.h>
+#endif
#include <asn1.h>
#include <snmp.h>
#include <snmp_impl.h>
diff --git a/ripd/ripd.c b/ripd/ripd.c
index a58406b4..c5d45536 100644
--- a/ripd/ripd.c
+++ b/ripd/ripd.c
@@ -37,13 +37,10 @@
#include "distribute.h"
#include "md5-gnu.h"
#include "keychain.h"
-#include "privs.h"
#include "ripd/ripd.h"
#include "ripd/rip_debug.h"
-extern struct zebra_privs_t ripd_privs;
-
/* RIP Structure. */
struct rip *rip = NULL;
@@ -1887,17 +1884,13 @@ rip_create_socket ()
setsockopt_pktinfo (sock);
#endif /* RIP_RECVMSG */
- if (ripd_privs.change (ZPRIVS_RAISE))
- zlog_err ("rip_create_socket: could not raise privs");
ret = bind (sock, (struct sockaddr *) & addr, sizeof (addr));
if (ret < 0)
{
perror ("bind");
return ret;
}
- if (ripd_privs.change (ZPRIVS_LOWER))
- zlog_err ("rip_create_socket: could not lower privs");
-
+
return sock;
}
diff --git a/ripngd/.cvsignore b/ripngd/.cvsignore
index cd9e0832..7879c557 100644
--- a/ripngd/.cvsignore
+++ b/ripngd/.cvsignore
@@ -1,4 +1,5 @@
Makefile
+Makefile.in
*.o
ripngd
ripngd.conf
diff --git a/ripngd/Makefile.am b/ripngd/Makefile.am
index d9db576e..a6810649 100644
--- a/ripngd/Makefile.am
+++ b/ripngd/Makefile.am
@@ -17,7 +17,7 @@ noinst_HEADERS = \
ripngd_SOURCES = \
ripng_main.c $(libripng_a_SOURCES)
-ripngd_LDADD = -L../lib -lzebra @LIBCAP@
+ripngd_LDADD = -L../lib -lzebra
sysconf_DATA = ripngd.conf.sample
diff --git a/ripngd/Makefile.in b/ripngd/Makefile.in
deleted file mode 100644
index e430ad31..00000000
--- a/ripngd/Makefile.in
+++ /dev/null
@@ -1,416 +0,0 @@
-# Makefile.in generated by automake 1.6.3 from Makefile.am.
-# @configure_input@
-
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = @program_transform_name@
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_alias = @host_alias@
-host_triplet = @host@
-
-EXEEXT = @EXEEXT@
-OBJEXT = @OBJEXT@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-AMTAR = @AMTAR@
-AR = @AR@
-AWK = @AWK@
-BGPD = @BGPD@
-CC = @CC@
-CPP = @CPP@
-CURSES = @CURSES@
-DEPDIR = @DEPDIR@
-IF_METHOD = @IF_METHOD@
-IF_PROC = @IF_PROC@
-
-INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-IPFORWARD = @IPFORWARD@
-KERNEL_METHOD = @KERNEL_METHOD@
-LIBPAM = @LIBPAM@
-LIB_IPV6 = @LIB_IPV6@
-LIB_REGEX = @LIB_REGEX@
-MULTIPATH_NUM = @MULTIPATH_NUM@
-OSPF6D = @OSPF6D@
-OSPFD = @OSPFD@
-OTHER_METHOD = @OTHER_METHOD@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-RIPD = @RIPD@
-RIPNGD = @RIPNGD@
-RTREAD_METHOD = @RTREAD_METHOD@
-RT_METHOD = @RT_METHOD@
-STRIP = @STRIP@
-VERSION = @VERSION@
-VTYSH = @VTYSH@
-ZEBRA = @ZEBRA@
-am__include = @am__include@
-am__quote = @am__quote@
-install_sh = @install_sh@
-DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
-INSTALL_SDATA = @INSTALL@ -m 600
-
-noinst_LIBRARIES = libripng.a
-sbin_PROGRAMS = ripngd
-
-libripng_a_SOURCES = \
- ripng_interface.c ripngd.c ripng_zebra.c ripng_route.c ripng_debug.c \
- ripng_routemap.c
-
-
-noinst_HEADERS = \
- ripng_debug.h ripng_route.h ripngd.h
-
-
-ripngd_SOURCES = \
- ripng_main.c $(libripng_a_SOURCES)
-
-
-ripngd_LDADD = ../lib/libzebra.a
-
-sysconf_DATA = ripngd.conf.sample
-
-EXTRA_DIST = $(sysconf_DATA)
-subdir = ripngd
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-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__objects_1 = ripng_interface.$(OBJEXT) ripngd.$(OBJEXT) \
- ripng_zebra.$(OBJEXT) ripng_route.$(OBJEXT) \
- ripng_debug.$(OBJEXT) ripng_routemap.$(OBJEXT)
-am_ripngd_OBJECTS = ripng_main.$(OBJEXT) $(am__objects_1)
-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@
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/ripng_debug.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/ripng_interface.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/ripng_main.Po \
-@AMDEP_TRUE@ ./$(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) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-CFLAGS = @CFLAGS@
-DIST_SOURCES = $(libripng_a_SOURCES) $(ripngd_SOURCES)
-DATA = $(sysconf_DATA)
-
-HEADERS = $(noinst_HEADERS)
-
-DIST_COMMON = $(noinst_HEADERS) ChangeLog Makefile.am Makefile.in
-SOURCES = $(libripng_a_SOURCES) $(ripngd_SOURCES)
-
-all: all-am
-
-.SUFFIXES:
-.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) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libripng.a: $(libripng_a_OBJECTS) $(libripng_a_DEPENDENCIES)
- -rm -f libripng.a
- $(libripng_a_AR) libripng.a $(libripng_a_OBJECTS) $(libripng_a_LIBADD)
- $(RANLIB) libripng.a
-sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-install-sbinPROGRAMS: $(sbin_PROGRAMS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(sbindir)
- @list='$(sbin_PROGRAMS)'; for p in $$list; do \
- p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
- if test -f $$p \
- ; then \
- f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) $$p $(DESTDIR)$(sbindir)/$$f"; \
- $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) $$p $(DESTDIR)$(sbindir)/$$f; \
- else :; fi; \
- done
-
-uninstall-sbinPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(sbin_PROGRAMS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
- rm -f $(DESTDIR)$(sbindir)/$$f; \
- done
-
-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:
-sysconfDATA_INSTALL = $(INSTALL_DATA)
-
-uninstall-sysconfDATA:
- @$(NORMAL_UNINSTALL)
- @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
-
-ETAGS = etags
-ETAGSFLAGS =
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(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; }'`; \
- mkid -fID $$unique
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(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)$$tags$$unique" \
- || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
-
-distdir: $(DISTFILES)
- @list='$(DISTFILES)'; for file in $$list; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
-
-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
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-noinstLIBRARIES clean-sbinPROGRAMS \
- mostlyclean-am
-
-distclean: distclean-am
-
-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
-
-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)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(sysconfdir)
- @list='$(sysconf_DATA)'; for p in $$list; do \
- if test -f $(srcdir)/$$p; then \
- echo " $(INSTALL_SDATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p"; \
- $(INSTALL_SDATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p; \
- else if test -f $$p; then \
- echo " $(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p"; \
- $(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/ripng_main.c b/ripngd/ripng_main.c
index bd1972a1..44c38762 100644
--- a/ripngd/ripng_main.c
+++ b/ripngd/ripng_main.c
@@ -32,7 +32,6 @@
#include "log.h"
#include "prefix.h"
#include "if.h"
-#include "privs.h"
#include "ripngd/ripngd.h"
@@ -52,32 +51,10 @@ struct option longopts[] =
{ "vty_addr", required_argument, NULL, 'A'},
{ "vty_port", required_argument, NULL, 'P'},
{ "retain", no_argument, NULL, 'r'},
- { "user", required_argument, NULL, 'u'},
{ "version", no_argument, NULL, 'v'},
{ 0 }
};
-/* ripngd privileges */
-zebra_capabilities_t _caps_p [] =
-{
- ZCAP_RAW,
- ZCAP_BIND
-};
-
-struct zebra_privs_t ripngd_privs =
-{
-#if defined(ZEBRA_USER)
- .user = ZEBRA_USER,
-#endif
-#if defined ZEBRA_GROUP
- .group = ZEBRA_GROUP,
-#endif
- .caps_p = _caps_p,
- .cap_num_p = 2,
- .cap_num_i = 0
-};
-
-
/* RIPngd program name */
/* Route retain mode flag. */
@@ -112,7 +89,6 @@ Daemon which manages RIPng.\n\n\
-A, --vty_addr Set vty's bind address\n\
-P, --vty_port Set vty's port number\n\
-r, --retain When program terminates, retain added route by ripngd.\n\
--u, --user User and group to run as\n\
-v, --version Print program version\n\
-h, --help Display this help and exit\n\
\n\
@@ -214,7 +190,7 @@ main (int argc, char **argv)
{
int opt;
- opt = getopt_long (argc, argv, "dlf:hA:P:u:v", longopts, 0);
+ opt = getopt_long (argc, argv, "dlf:hA:P:v", longopts, 0);
if (opt == EOF)
break;
@@ -252,9 +228,6 @@ main (int argc, char **argv)
case 'r':
retain_mode = 1;
break;
- case 'u':
- ripngd_privs.group = ripngd_privs.user = optarg;
- break;
case 'v':
print_version (progname);
exit (0);
@@ -271,7 +244,6 @@ main (int argc, char **argv)
master = thread_master_create ();
/* Library inits. */
- zprivs_init (&ripngd_privs);
signal_init ();
cmd_init (1);
vty_init ();
diff --git a/ripngd/ripngd.c b/ripngd/ripngd.c
index df5f31cf..94a5efbc 100644
--- a/ripngd/ripngd.c
+++ b/ripngd/ripngd.c
@@ -34,7 +34,6 @@
#include "distribute.h"
#include "plist.h"
#include "routemap.h"
-#include "privs.c"
#include "if_rmap.h"
#include "ripngd/ripngd.h"
@@ -53,8 +52,6 @@ enum
ripng_changed_route,
};
-extern struct zebra_privs_t ripngd_privs;
-
/* Prototypes. */
void
ripng_output_process (struct interface *, struct sockaddr_in6 *, int);
@@ -156,19 +153,12 @@ ripng_make_socket (void)
#endif /* SIN6_LEN */
ripaddr.sin6_port = htons (RIPNG_PORT_DEFAULT);
- if (ripngd_privs.change (ZPRIVS_RAISE))
- zlog_err ("ripng_make_socket: could not raise privs");
-
ret = bind (sock, (struct sockaddr *) &ripaddr, sizeof (ripaddr));
if (ret < 0)
{
zlog (NULL, LOG_ERR, "Can't bind ripng socket: %s.", strerror (errno));
return ret;
}
-
- if (ripngd_privs.change (ZPRIVS_LOWER))
- zlog_err ("ripng_make_socket: could not lower privs");
-
return sock;
}
@@ -1707,7 +1697,7 @@ ripng_output_process (struct interface *ifp, struct sockaddr_in6 *to,
ret = route_map_apply (ripng->route_map[rinfo->type].map,
(struct prefix *) p, RMAP_RIPNG,
- &rinfo);
+ rinfo);
if (ret == RMAP_DENYMATCH)
{
diff --git a/vtysh/.cvsignore b/vtysh/.cvsignore
index a71b4c5f..a6e783a4 100644
--- a/vtysh/.cvsignore
+++ b/vtysh/.cvsignore
@@ -1,6 +1,8 @@
Makefile
+Makefile.in
*.o
vtysh
tags
TAGS
.deps
+vtysh_cmd.c
diff --git a/vtysh/ChangeLog b/vtysh/ChangeLog
index 5818d5c0..b80a5e3f 100644
--- a/vtysh/ChangeLog
+++ b/vtysh/ChangeLog
@@ -1,3 +1,20 @@
+2003-05-01 Sergiy Vyshnevetskiy <serg@vostok.net>
+
+ vtysh.c: Program shouldn't terminate on pager execution failure
+ vtysh_user.c: configure support for openpam (freebsd5.0)
+
+2003-04-19 Hasso Tepper <hasso@estpak.ee>
+
+ * extract.pl vtysh.c vtysh.h: sync daemon's route-map commands to
+ have same syntax
+
+2002-09-30 Paul Jakma <paulzebra@rs250.org>
+
+ * vtysh.c: add 'write-config (integrated|daemon)' option
+ to specifiy whether write config commands should write
+ integrated Zebra.conf file and/or per daemon files.
+ Defaults to per daemon, unless this is turned off.
+
2002-07-07 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
* zebra-0.93 released.
diff --git a/vtysh/Makefile.am b/vtysh/Makefile.am
index 7a21409f..89156f90 100644
--- a/vtysh/Makefile.am
+++ b/vtysh/Makefile.am
@@ -9,7 +9,7 @@ bin_PROGRAMS = vtysh
vtysh_SOURCES = vtysh_main.c vtysh.c vtysh_cmd.c vtysh_user.c vtysh_config.c
noinst_HEADERS = vtysh.h vtysh_user.h
-vtysh_LDADD = ../lib/libzebra.a @LIBCAP@
+vtysh_LDADD = ../lib/libzebra.a
sysconf_DATA = vtysh.conf.sample
diff --git a/vtysh/Makefile.in b/vtysh/Makefile.in
deleted file mode 100644
index 9a5180a7..00000000
--- a/vtysh/Makefile.in
+++ /dev/null
@@ -1,382 +0,0 @@
-# Makefile.in generated by automake 1.6.3 from Makefile.am.
-# @configure_input@
-
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = @program_transform_name@
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_alias = @host_alias@
-host_triplet = @host@
-
-EXEEXT = @EXEEXT@
-OBJEXT = @OBJEXT@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-AMTAR = @AMTAR@
-AR = @AR@
-AWK = @AWK@
-BGPD = @BGPD@
-CC = @CC@
-CPP = @CPP@
-CURSES = @CURSES@
-DEPDIR = @DEPDIR@
-IF_METHOD = @IF_METHOD@
-IF_PROC = @IF_PROC@
-
-INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-IPFORWARD = @IPFORWARD@
-KERNEL_METHOD = @KERNEL_METHOD@
-LIBPAM = @LIBPAM@
-LIB_IPV6 = @LIB_IPV6@
-LIB_REGEX = @LIB_REGEX@
-MULTIPATH_NUM = @MULTIPATH_NUM@
-OSPF6D = @OSPF6D@
-OSPFD = @OSPFD@
-OTHER_METHOD = @OTHER_METHOD@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-RIPD = @RIPD@
-RIPNGD = @RIPNGD@
-RTREAD_METHOD = @RTREAD_METHOD@
-RT_METHOD = @RT_METHOD@
-STRIP = @STRIP@
-VERSION = @VERSION@
-VTYSH = @VTYSH@
-ZEBRA = @ZEBRA@
-am__include = @am__include@
-am__quote = @am__quote@
-install_sh = @install_sh@
-DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
-
-LIBS = @LIBS@ @CURSES@ @LIBPAM@
-
-bin_PROGRAMS = vtysh
-
-vtysh_SOURCES = vtysh_main.c vtysh.c vtysh_cmd.c vtysh_user.c vtysh_config.c
-noinst_HEADERS = vtysh.h vtysh_user.h
-vtysh_LDADD = ../lib/libzebra.a
-
-sysconf_DATA = vtysh.conf.sample
-
-EXTRA_DIST = extract.pl vtysh.conf.sample
-subdir = vtysh
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-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@
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/vtysh.Po ./$(DEPDIR)/vtysh_cmd.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/vtysh_config.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/vtysh_main.Po ./$(DEPDIR)/vtysh_user.Po
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-CFLAGS = @CFLAGS@
-DIST_SOURCES = $(vtysh_SOURCES)
-DATA = $(sysconf_DATA)
-
-HEADERS = $(noinst_HEADERS)
-
-DIST_COMMON = $(noinst_HEADERS) ChangeLog Makefile.am Makefile.in
-SOURCES = $(vtysh_SOURCES)
-
-all: all-am
-
-.SUFFIXES:
-.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) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(bindir)
- @list='$(bin_PROGRAMS)'; for p in $$list; do \
- p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
- if test -f $$p \
- ; then \
- f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \
- $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f; \
- else :; fi; \
- done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
- rm -f $(DESTDIR)$(bindir)/$$f; \
- done
-
-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 *.$(OBJEXT) core *.core
-
-distclean-compile:
- -rm -f *.tab.c
-
-@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@
-
-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:
-sysconfDATA_INSTALL = $(INSTALL_DATA)
-install-sysconfDATA: $(sysconf_DATA)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(sysconfdir)
- @list='$(sysconf_DATA)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(sysconfDATA_INSTALL) $$d$$p $(DESTDIR)$(sysconfdir)/$$f"; \
- $(sysconfDATA_INSTALL) $$d$$p $(DESTDIR)$(sysconfdir)/$$f; \
- done
-
-uninstall-sysconfDATA:
- @$(NORMAL_UNINSTALL)
- @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
-
-ETAGS = etags
-ETAGSFLAGS =
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(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; }'`; \
- mkid -fID $$unique
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(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)$$tags$$unique" \
- || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
-
-distdir: $(DISTFILES)
- @list='$(DISTFILES)'; for file in $$list; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS) $(DATA) $(HEADERS)
-
-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
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
-
-distclean: distclean-am
-
-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
-
-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:
- ./extract.pl ../zebra/*.c ../ripd/*.c ../ospfd/*.c ../bgpd/*.c ../lib/keychain.c ../lib/routemap.c ../lib/filter.c ../lib/plist.c >vtysh_cmd.c
-
-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/vtysh.h b/vtysh/vtysh.h
index 193f46ea..08184df9 100644
--- a/vtysh/vtysh.h
+++ b/vtysh/vtysh.h
@@ -29,7 +29,7 @@
#define VTYSH_OSPF6D 0x10
#define VTYSH_BGPD 0x20
#define VTYSH_ALL VTYSH_ZEBRA|VTYSH_RIPD|VTYSH_RIPNGD|VTYSH_OSPFD|VTYSH_OSPF6D|VTYSH_BGPD
-#define VTYSH_RMAP VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD
+#define VTYSH_RMAP VTYSH_RIPD|VTYSH_RIPNGD|VTYSH_OSPFD|VTYSH_OSPF6D|VTYSH_BGPD
#define VTYSH_INDEX_ZEBRA 0
#define VTYSH_INDEX_RIP 1
@@ -39,14 +39,6 @@
#define VTYSH_INDEX_BGP 5
#define VTYSH_INDEX_MAX 6
-/* UNIX domain socket path. */
-#define ZEBRA_PATH "/tmp/.zebra"
-#define RIP_PATH "/tmp/.ripd"
-#define RIPNG_PATH "/tmp/.ripngd"
-#define OSPF_PATH "/tmp/.ospfd"
-#define OSPF6_PATH "/tmp/.ospf6d"
-#define BGP_PATH "/tmp/.bgpd"
-
/* vtysh local configuration file. */
#define VTYSH_DEFAULT_CONFIG "vtysh.conf"
diff --git a/vtysh/vtysh_cmd.c b/vtysh/vtysh_cmd.c
deleted file mode 100644
index c8f673be..00000000
--- a/vtysh/vtysh_cmd.c
+++ /dev/null
@@ -1,14734 +0,0 @@
-#include <zebra.h>
-#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_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_ZEBRA, ipv6_nd_ra_interval_cmd_vtysh,
- "ipv6 nd ra-interval SECONDS",
- "IP information\n"
- "Neighbor discovery\n"
- "Router Advertisement interval\n"
- "Router Advertisement interval in seconds\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_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"
- "Specify neighbor router\n"
- "Neighbor address\nIPv6 address\n"
- "BGP per neighbor timers\n"
- "BGP connect timer\n"
- "Connect timer\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_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, 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_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, 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",
- "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_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, 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, 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",
- "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"
- "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",
- "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_RIPNGD, debug_ripng_zebra_cmd_vtysh,
- "debug ripng zebra",
- "Debugging functions (see also 'undebug')\n"
- "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"
- "Specify neighbor router\n"
- "Neighbor address\nIPv6 address\n"
- "Specify a BGP neighbor\n"
- "AS number\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"
- "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",
- "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, 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_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>",
- "Negate a command or set its defaults\n"
- "Redistribute information from another routing protocol\n"
- "Kernel routes\n"
- "Metric\n"
- "Metric value\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)",
- "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_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_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_ZEBRA, no_ipv6_nd_reachable_time_cmd_vtysh,
- "no ipv6 nd reachable-time",
- "Negate a command or set its defaults\n"
- "IP information\n"
- "Neighbor discovery\n"
- "Reachable time\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_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_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")
-
-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",
- "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_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_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"
- "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_ZEBRA, no_ipv6_nd_send_ra_cmd_vtysh,
- "no ipv6 nd send-ra",
- "Negate a command or set its defaults\n"
- "IP information\n"
- "Neighbor discovery\n"
- "Send Router Advertisement\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_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_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_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_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",
- "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_ZEBRA, ipv6_nd_reachable_time_cmd_vtysh,
- "ipv6 nd reachable-time MILLISECONDS",
- "IP information\n"
- "Neighbor discovery\n"
- "Reachable time\n"
- "Reachable time in milliseconds\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_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_ZEBRA, no_ipv6_nd_prefix_advertisement_cmd_vtysh,
- "no ipv6 nd prefix-advertisement IPV6PREFIX",
- "Negate a command or set its defaults\n"
- "IP information\n"
- "Neighbor discovery\n"
- "Prefix information\n"
- "IPv6 prefix\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_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_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_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, 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_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|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_ZEBRA, no_ipv6_nd_ra_lifetime_cmd_vtysh,
- "no ipv6 nd ra-lifetime",
- "Negate a command or set its defaults\n"
- "IP information\n"
- "Neighbor discovery\n"
- "Router lifetime\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_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, 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_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, 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_ZEBRA, no_ipv6_nd_suppress_ra_cmd_vtysh,
- "no ipv6 nd suppress-ra",
- "Negate a command or set its defaults\n"
- "IP information\n"
- "Neighbor discovery\n"
- "Suppress Router Advertisement\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_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, 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, 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_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_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_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"
- "IP information\n"
- "Match address of route\n"
- "Match entries of prefix-lists\n"
- "IP prefix-list name\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_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_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)",
- "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_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)",
- "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")
-
-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, 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, 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_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_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_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_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",
- "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")
-
-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"
- "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"
- "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, clear_ip_bgp_as_ipv4_soft_out_cmd_vtysh,
- "clear ip bgp <1-65535> ipv4 (unicast|multicast) 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"
- "Address Family modifier\n"
- "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",
- "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_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",
- "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_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_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_ZEBRA, no_ipv6_nd_other_config_flag_cmd_vtysh,
- "no ipv6 nd other-config-flag",
- "Negate a command or set its defaults\n"
- "IP information\n"
- "Neighbor discovery\n"
- "Other statefull configuration flag\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_BGPD, undebug_bgp_update_cmd_vtysh,
- "undebug bgp updates",
- "Disable debugging functions (see also 'debug')\n"
- "BGP information\n"
- "BGP updates\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, 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",
- "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_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_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_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, 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_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"
- "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_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")
-
-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|)",
- "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_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, 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")
-
-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",
- "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")
-
-DEFSH (VTYSH_ZEBRA, ipv6_nd_ra_lifetime_cmd_vtysh,
- "ipv6 nd ra-lifetime SECONDS",
- "IP information\n"
- "Neighbor discovery\n"
- "Router lifetime\n"
- "Router lifetime in seconds\n")
-
-DEFSH (VTYSH_OSPFD, show_ip_ospf_neighbor_detail_all_cmd_vtysh,
- "show ip ospf neighbor detail all",
- "Show running system information\n"
- "IP information\n"
- "OSPF information\n"
- "Neighbor list\n"
- "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",
- "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")
-
-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",
- "Negate a command or set its defaults\n"
- "RIPng timers setup\n"
- "Basic timer\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>",
- "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_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, 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, debug_bgp_update_cmd_vtysh,
- "debug bgp updates",
- "Debugging functions (see also 'undebug')\n"
- "BGP information\n"
- "BGP updates\n")
-
-DEFSH (VTYSH_BGPD, show_bgp_cmd_vtysh,
- "show bgp",
- "Show running system information\n"
- "BGP information\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, 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_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_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_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_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",
- "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_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_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",
- "Show running system information\n"
- "IP information\n"
- "BGP information\n"
- "Display paths suppressed due to dampening\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_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"
- "Soft reconfig inbound update\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_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, 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_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)",
- "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_ZEBRA, ipv6_nd_prefix_advertisement_cmd_vtysh,
- "ipv6 nd prefix-advertisement IPV6PREFIX VALID PREFERRED [onlink] [autoconfig]",
- "IP information\n"
- "Neighbor discovery\n"
- "Prefix information\n"
- "IPv6 prefix\n"
- "Valid lifetime in seconds\n"
- "Preferred lifetime in seconds\n"
- "On link flag\n"
- "Autonomous address-configuration flag\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_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_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_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" "" "" ") 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" "" "" "" ""
- "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")
-
-DEFSH (VTYSH_BGPD, neighbor_port_cmd_vtysh,
- "neighbor (A.B.C.D|X:X::X:X) " "port <0-65535>",
- "Specify neighbor router\n"
- "Neighbor address\nIPv6 address\n"
- "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_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_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",
- "Reset functions\n"
- "BGP information\n"
- "Address family\n"
- "Clear all 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_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_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"
- "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",
- "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")
-
-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_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, 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"
- "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, 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_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_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"
- "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_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, 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_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_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")
-
-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",
- "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"
- "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",
- "Negate a command or set its defaults\n"
- "BGP information\n"
- "Enforce the first AS for EBGP routes\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_ZEBRA, ipv6_nd_prefix_advertisement_no_val_cmd_vtysh,
- "ipv6 nd prefix-advertisement IPV6PREFIX",
- "IP information\n"
- "Neighbor discovery\n"
- "Prefix information\n"
- "IPv6 prefix\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_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_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",
- "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_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_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_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_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_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_BGPD, clear_ip_bgp_peer_group_in_prefix_filter_cmd_vtysh,
- "clear ip bgp peer-group WORD in prefix-filter",
- "Reset functions\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")
-
-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_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"
- "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")
-
-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_ZEBRA, no_shutdown_if_cmd_vtysh,
- "no shutdown",
- "Negate a command or set its defaults\n"
- "Shutdown the selected interface\n")
-
-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_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_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"
- "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",
- "Negate a command or set its defaults\n"
- "Debugging functions (see also 'undebug')\n"
- "BGP information\n"
- "BGP filters\n")
-
-DEFSH (VTYSH_BGPD, show_ip_bgp_vpnv4_all_neighbor_routes_cmd_vtysh,
- "show ip bgp vpnv4 all 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 about all VPNv4 NLRIs\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_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_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_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_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",
- "Show running system information\n"
- "IP information\n"
- "BGP information\n"
- "List all bgp community information\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"
- "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_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, 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, 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_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",
- "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"
- "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, 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_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_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_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_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"
- "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, 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, ospf_priority_cmd_vtysh,
- "ospf priority <0-255>",
- "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_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_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_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"
- "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_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"
- "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" "" "" ") 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_RIPD|VTYSH_BGPD, ip_prefix_list_le_cmd_vtysh,
- "ip prefix-list WORD (deny|permit) A.B.C.D/M 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"
- "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_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"
- "BGP specific commands\n"
- "Configure BGP defaults\n"
- "local preference (higher=more preferred)\n"
- "Configure default local preference value\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, 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)",
- "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")
-
-DEFSH (VTYSH_ZEBRA, no_ipv6_nd_ra_interval_cmd_vtysh,
- "no ipv6 nd ra-interval",
- "Negate a command or set its defaults\n"
- "IP information\n"
- "Neighbor discovery\n"
- "Router Advertisement interval\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_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_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_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",
- "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_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_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, 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, 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>",
- "Negate a command or set its defaults\n"
- "Specify neighbor router\n"
- "Neighbor IP address\n"
- "Dead Neighbor Polling interval\n"
- "Seconds\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_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_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|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_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_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",
- "Negate a command or set its defaults\n"
- "Redistribute information from another routing protocol\n"
- "IPv6 Open Shortest Path First (OSPFv3)\n"
- "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"
- "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, 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_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_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"
- "Display the dampened routes received from neighbor\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_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",
- "Redistribute information from another routing protocol\n"
- "Kernel routes\n"
- "Route map reference\n"
- "Pointer to route-map entries\n")
-
-DEFSH (VTYSH_BGPD, bgp_default_local_preference_cmd_vtysh,
- "bgp default local-preference <0-4294967295>",
- "BGP specific commands\n"
- "Configure BGP defaults\n"
- "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_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",
- "Administrative distance\n"
- "Distance value\n"
- "IP source prefix\n"
- "Access list name\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_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_BGPD, show_bgp_regexp_cmd_vtysh,
- "show bgp regexp .LINE",
- "Show running system 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, show_debugging_bgp_cmd_vtysh,
- "show debugging bgp",
- "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")
-
-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, 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_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_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_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)",
- "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"
- "IP information\n"
- "BGP information\n"
- "BGP neighbor address to clear\n"
- "Soft reconfig inbound update\n")
-
-DEFSH (VTYSH_OSPFD, ip_ospf_dead_interval_addr_cmd_vtysh,
- "ip ospf dead-interval <1-65535> A.B.C.D",
- "IP Information\n"
- "OSPF interface commands\n"
- "Interval after which a neighbor is declared dead\n"
- "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_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, 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"
- "BGP information\n"
- "BGP keepalives\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_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")
-
-DEFSH (VTYSH_BGPD, no_ip_community_list_all_cmd_vtysh,
- "no ip community-list (WORD|<1-99>|<100-199>)",
- "Negate a command or set its defaults\n"
- "IP information\n"
- "Add a community list entry\n"
- "Community list name\n"
- "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_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_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",
- "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_ZEBRA, show_interface_cmd_vtysh,
- "show interface [IFNAME]",
- "Show running system information\n"
- "Interface status and configuration\n"
- "Inteface name\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, 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>",
- "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_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",
- "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, 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"
- "BGP information\n"
- "Display configuration type\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",
- "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_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_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_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" "" "" ") (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_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, 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_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_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_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_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"
- "IP information\n"
- "BGP information\n"
- "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",
- "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, 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, 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",
- "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"
- "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_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_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, 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_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"
- "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")
-
-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, 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"
- "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_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_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>",
- "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"
- "Distance value for this route\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"
- "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"
- "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_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, 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_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_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, 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, show_bgp_community_cmd_vtysh,
- "show bgp community (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")
-
-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|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"
- "BGP information\n"
- "BGP neighbor address to clear\n"
- "BGP IPv6 neighbor to clear\n"
- "Soft reconfig outbound update\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, 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_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",
- "IP information\n"
- "Routing Information Protocol\n"
- "Advertisement transmission\n"
- "Version control\n"
- "RIP version 2\n"
- "RIP version 1\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_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_BGPD, clear_ip_prefix_list_cmd_vtysh,
- "clear ip prefix-list",
- "Reset functions\n"
- "IP information\n"
- "Build a prefix list\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",
- "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_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_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",
- "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"
- "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"
- "IP information\n"
- "Routing Information Protocol\n"
- "Authentication control\n"
- "Authentication mode\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",
- "Show running system information\n"
- "BGP information\n"
- "IPv6 prefix <network>/<length>\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_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"
- "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_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_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, 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_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_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_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_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",
- "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_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)",
- "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_BGPD, show_bgp_ipv6_neighbor_routes_cmd_vtysh,
- "show bgp ipv6 neighbors (A.B.C.D|X:X::X:X) 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 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_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, 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"
- "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_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"
- "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_ip_ospf_dead_interval_addr_cmd_vtysh,
- "no ip ospf dead-interval A.B.C.D",
- "Negate a command or set its defaults\n"
- "IP Information\n"
- "OSPF interface commands\n"
- "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)",
- "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, 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"
- "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_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, 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_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"
- "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 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_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",
- "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_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_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_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"
- "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_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_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_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_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, 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",
- "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_OSPFD, no_ospf_distribute_list_out_cmd_vtysh,
- "no distribute-list WORD out (kernel|connected|static|rip|bgp)",
- "Negate a command or set its defaults\n"
- "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_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"
- "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_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, clear_ip_bgp_peer_cmd_vtysh,
- "clear ip bgp (A.B.C.D|X:X::X:X)",
- "Reset functions\n"
- "IP information\n"
- "BGP information\n"
- "BGP neighbor IP address to clear\n"
- "BGP IPv6 neighbor to clear\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_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, clear_ip_bgp_instance_all_in_prefix_filter_cmd_vtysh,
- "clear ip bgp view WORD * in prefix-filter",
- "Reset functions\n"
- "IP information\n"
- "BGP information\n"
- "BGP view\n"
- "view name\n"
- "Clear all peers\n"
- "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",
- "Negate a command or set its defaults\n"
- "Redistribute information from another routing protocol\n"
- "Connected\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_ZEBRA, show_ip_route_supernets_cmd_vtysh,
- "show ip route supernets-only",
- "Show running system information\n"
- "IP information\n"
- "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",
- "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_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_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"
- "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_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_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_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"
- "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, 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",
- "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"
- "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_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_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, 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_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_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_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_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_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_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, 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_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",
- "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"
- )
-
-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>",
- "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_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)",
- "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")
-
-DEFSH (VTYSH_RIPD|VTYSH_OSPFD|VTYSH_BGPD, no_route_map_cmd_vtysh,
- "no route-map WORD (deny|permit) <1-65535>",
- "Negate a command or set its defaults\n"
- "Create route-map or enter route-map command mode\n"
- "Route map tag\n"
- "Route map denies set operations\n"
- "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"
- "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, 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_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_ZEBRA, no_ipv6_nd_managed_config_flag_cmd_vtysh,
- "no ipv6 nd managed-config-flag",
- "Negate a command or set its defaults\n"
- "IP information\n"
- "Neighbor discovery\n"
- "Managed address configuration flag\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_ZEBRA, ipv6_nd_suppress_ra_cmd_vtysh,
- "ipv6 nd suppress-ra",
- "IP information\n"
- "Neighbor discovery\n"
- "Suppress Router Advertisement\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_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_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_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"
- "Build a prefix list\n"
- "Name of a prefix list\n"
- "sequence number of an entry\n"
- "Sequence number\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",
- "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, 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")
-
-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",
- "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, 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",
- "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")
-
-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_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, 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")
-
-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|)",
- "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_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_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_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"
- "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_ZEBRA, ipv6_nd_other_config_flag_cmd_vtysh,
- "ipv6 nd other-config-flag",
- "IP information\n"
- "Neighbor discovery\n"
- "Other statefull configuration flag\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, 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_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"
- "Default metric\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_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_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, 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_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_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_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_BGPD, debug_bgp_keepalive_cmd_vtysh,
- "debug bgp keepalives",
- "Debugging functions (see also 'undebug')\n"
- "BGP information\n"
- "BGP keepalives\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, 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",
- "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_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_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_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_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_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)",
- "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, 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_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"
- "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>",
- "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_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, show_ip_bgp_ipv4_cidr_only_cmd_vtysh,
- "show ip bgp ipv4 (unicast|multicast) cidr-only",
- "Show running system information\n"
- "IP information\n"
- "BGP information\n"
- "Address family\n"
- "Address Family modifier\n"
- "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_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"
- "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, 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)",
- "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, 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")
-
-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"
- "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_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",
- "Negate a command or set its defaults\n"
- "Set metric of redistributed routes\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",
- "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_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)",
- "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_ip_bgp_all_cmd_vtysh,
- "clear ip bgp *",
- "Reset functions\n"
- "IP information\n"
- "BGP information\n"
- "Clear all peers\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, 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, 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_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>",
- "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_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, 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_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"
- "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_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_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_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]",
- "Negate a command or set its defaults\n"
- "Dump packet\n"
- "BGP packet dump\n"
- "Dump whole BGP routing table\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"
- "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>",
- "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, 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)",
- "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"
- "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_set_weight_val_cmd_vtysh,
- "no set weight <0-4294967295>",
- "Negate a command or set its defaults\n"
- "Set values in destination routing protocol\n"
- "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"
- "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"
- "Exact match of the communities\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_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"
- "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"
- "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"
- "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_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_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_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, 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_ZEBRA, ipv6_nd_managed_config_flag_cmd_vtysh,
- "ipv6 nd managed-config-flag",
- "IP information\n"
- "Neighbor discovery\n"
- "Managed address configuration flag\n")
-
-DEFSH (VTYSH_ZEBRA, ipv6_nd_send_ra_cmd_vtysh,
- "ipv6 nd send-ra",
- "IP information\n"
- "Neighbor discovery\n"
- "Send Router Advertisement\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_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"
- "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")
-
-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",
- "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, no_bgp_redistribute_ipv6_cmd_vtysh,
- "no redistribute (connected|kernel|ospf6|ripng|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 (OSPFv3)\n"
- "Routing Information Protocol (RIPng)\n"
- "Static routes\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, 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, 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_BGPD, show_ip_bgp_ipv4_prefix_longer_cmd_vtysh,
- "show ip bgp ipv4 (unicast|multicast) A.B.C.D/M longer-prefixes",
- "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"
- "Display route and more specific routes\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_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_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_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_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_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_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",
- "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_ZEBRA, show_ip_forwarding_cmd_vtysh,
- "show ip forwarding",
- "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")
-
-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_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_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"
- "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, 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",
- "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, 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_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_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_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, show_bgp_ipv6_neighbor_received_routes_cmd_vtysh,
- "show bgp ipv6 neighbors (A.B.C.D|X:X::X:X) received-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 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",
- "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_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, 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")
-
-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 (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 (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 (INTERFACE_NODE, &no_ipv6_nd_ra_interval_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, &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 (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 (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 (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 (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 (INTERFACE_NODE, &no_ipv6_nd_suppress_ra_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 (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 (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 (INTERFACE_NODE, &no_ipv6_nd_managed_config_flag_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 (INTERFACE_NODE, &no_ipv6_nd_prefix_advertisement_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 (INTERFACE_NODE, &ipv6_nd_send_ra_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 (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 (ENABLE_NODE, &show_ip_ospf_database_type_self_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, &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 (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 (ENABLE_NODE, &show_ip_ospf_database_type_id_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 (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 (VIEW_NODE, &show_ip_ospf_database_type_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 (INTERFACE_NODE, &ipv6_nd_ra_lifetime_cmd_vtysh);
- install_element (VIEW_NODE, &show_ip_ospf_database_type_adv_router_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 (INTERFACE_NODE, &ipv6_nd_prefix_advertisement_no_val_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_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 (INTERFACE_NODE, &no_ipv6_nd_ra_lifetime_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 (ENABLE_NODE, &show_ip_ospf_database_type_id_adv_router_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 (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, &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 (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 (CONFIG_NODE, &no_ip_prefix_list_cmd_vtysh);
- install_element (ENABLE_NODE, &show_ip_prefix_list_name_seq_cmd_vtysh);
- install_element (INTERFACE_NODE, &no_ipv6_nd_send_ra_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 (INTERFACE_NODE, &ipv6_nd_suppress_ra_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 (VIEW_NODE, &show_ip_ospf_database_type_self_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 (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 (VIEW_NODE, &show_ip_ospf_database_type_id_cmd_vtysh);
- install_element (ZEBRA_NODE, &redistribute_ospf6_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 (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 (INTERFACE_NODE, &ipv6_nd_ra_interval_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, &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 (OSPF_NODE, &no_area_authentication_cmd_vtysh);
- install_element (ENABLE_NODE, &debug_ospf_lsa_cmd_vtysh);
- install_element (CONFIG_NODE, &no_debug_ripng_packet_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 (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 (BGP_IPV4_NODE, &aggregate_address_mask_summary_only_cmd_vtysh);
- install_element (ENABLE_NODE, &show_ipv6_mbgp_community_list_cmd_vtysh);
- install_element (ENABLE_NODE, &show_ip_ospf_database_type_id_self_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 (ENABLE_NODE, &show_ip_bgp_community3_exact_cmd_vtysh);
- install_element (BGP_IPV6_NODE, &no_neighbor_distribute_list_cmd_vtysh);
- install_element (CONFIG_NODE, &no_ip_prefix_list_le_ge_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 (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 (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 (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 (ENABLE_NODE, &show_ip_ospf_database_type_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 (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 (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 (INTERFACE_NODE, &ipv6_nd_prefix_advertisement_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 (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_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 (ENABLE_NODE, &show_interface_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 (VIEW_NODE, &show_ip_ospf_database_type_id_self_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, &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 (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 (INTERFACE_NODE, &no_ipv6_nd_reachable_time_cmd_vtysh);
- install_element (OSPF_NODE, &ospf_default_information_originate_always_cmd_vtysh);
- install_element (VIEW_NODE, &show_ip_prefix_list_name_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 (INTERFACE_NODE, &no_ip_ospf_cost_cmd_vtysh);
- install_element (RIPNG_NODE, &ripng_redistribute_kernel_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 (BGP_NODE, &no_neighbor_set_peer_group_cmd_vtysh);
- install_element (CONFIG_NODE, &ip_prefix_list_seq_le_ge_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 (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 (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 (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 (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_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 (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 (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 (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 (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 (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 (ENABLE_NODE, &show_ip_ospf_database_type_adv_router_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_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, &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 (INTERFACE_NODE, &ipv6_nd_reachable_time_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 (ENABLE_NODE, &show_ip_bgp_vpnv4_all_prefix_cmd_vtysh);
- install_element (VIEW_NODE, &show_ip_bgp_vpnv4_all_cmd_vtysh);
- install_element (CONFIG_NODE, &ip_prefix_list_seq_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 (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 (VIEW_NODE, &show_ip_ospf_database_type_id_adv_router_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 (INTERFACE_NODE, &no_ipv6_nd_other_config_flag_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 (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 (INTERFACE_NODE, &ipv6_nd_other_config_flag_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 (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 (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, &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 (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 (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_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, &ospf6_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_nd_managed_config_flag_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 (BGP_IPV6_NODE, &bgp_redistribute_ipv6_metric_rmap_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 (ENABLE_NODE, &show_ipv6_route_ospf6_external_cmd_vtysh);
- install_element (ENABLE_NODE, &show_ip_extcommunity_list_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_IPV4_NODE, &neighbor_send_community_cmd_vtysh);
- install_element (OSPF_NODE, &area_vlink_param2_cmd_vtysh);
-}
diff --git a/vtysh/vtysh_config.c b/vtysh/vtysh_config.c
index 91193371..a307d5cc 100644
--- a/vtysh/vtysh_config.c
+++ b/vtysh/vtysh_config.c
@@ -170,7 +170,7 @@ vtysh_config_parse_line (char *line)
config = config_get (BGP_IPV4M_NODE, line);
else if (strncmp (line, " address-family ipv6", strlen (" address-family ipv6")) == 0)
config = config_get (BGP_IPV6_NODE, line);
- else if (config->index == RMAP_NODE)
+ else if (config->index == RMAP_NODE || config->index == INTERFACE_NODE )
config_add_line_uniq (config->line, line);
else
config_add_line (config->line, line);
diff --git a/vtysh/vtysh_user.c b/vtysh/vtysh_user.c
index b84da2eb..ecbe0f4c 100644
--- a/vtysh/vtysh_user.c
+++ b/vtysh/vtysh_user.c
@@ -25,7 +25,12 @@
#ifdef USE_PAM
#include <security/pam_appl.h>
+#ifdef HAVE_PAM_MISC_H
#include <security/pam_misc.h>
+#endif
+#ifdef HAVE_OPENPAM_H
+#include <security/openpam.h>
+#endif
#endif /* USE_PAM */
#include "memory.h"
@@ -35,7 +40,7 @@
#ifdef USE_PAM
static struct pam_conv conv =
{
- misc_conv,
+ PAM_CONV_FUNC,
NULL
};
diff --git a/zebra/.cvsignore b/zebra/.cvsignore
index 95401bfa..f5169639 100644
--- a/zebra/.cvsignore
+++ b/zebra/.cvsignore
@@ -1,4 +1,5 @@
Makefile
+Makefile.in
*.o
zebra
zebra.conf
diff --git a/zebra/Makefile.am b/zebra/Makefile.am
index ce564672..6214767d 100644
--- a/zebra/Makefile.am
+++ b/zebra/Makefile.am
@@ -13,10 +13,9 @@ rt_method = @RT_METHOD@
rtread_method = @RTREAD_METHOD@
kernel_method = @KERNEL_METHOD@
other_method = @OTHER_METHOD@
-libcap = @LIBCAP@
otherobj = $(ipforward) $(if_method) $(if_proc) $(rt_method) \
- $(rtread_method) $(kernel_method) $(other_method) $(libcap)
+ $(rtread_method) $(kernel_method) $(other_method)
sbin_PROGRAMS = zebra
@@ -26,7 +25,7 @@ zebra_SOURCES = \
noinst_HEADERS = \
connected.h ioctl.h rib.h rt.h zserv.h redistribute.h debug.h rtadv.h \
- interface.h ipforward.h
+ interface.h ipforward.h irdp.h
zebra_LDADD = ../lib/libzebra.a $(otherobj) $(LIB_IPV6)
@@ -39,7 +38,7 @@ EXTRA_DIST = $(sysconf_DATA) if_ioctl.c if_netlink.c if_proc.c if_sysctl.c \
ipforward_solaris.c ipforward_sysctl.c rt_ioctl.c rt_netlink.c \
rt_socket.c rtread_netlink.c rtread_proc.c rtread_sysctl.c \
rtread_getmsg.c kernel_socket.c kernel_netlink.c mtu_kvm.c \
- GNOME-SMI GNOME-PRODUCT-ZEBRA-MIB
+ GNOME-SMI GNOME-PRODUCT-ZEBRA-MIB irdp.c
#client : client_main.o ../lib/libzebra.a
# $(CC) -g -o client client_main.o ../lib/libzebra.a $(LIBS) $(LIB_IPV6)
diff --git a/zebra/Makefile.in b/zebra/Makefile.in
deleted file mode 100644
index 5383bcb5..00000000
--- a/zebra/Makefile.in
+++ /dev/null
@@ -1,423 +0,0 @@
-# Makefile.in generated by automake 1.6.3 from Makefile.am.
-# @configure_input@
-
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = @program_transform_name@
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_alias = @host_alias@
-host_triplet = @host@
-
-EXEEXT = @EXEEXT@
-OBJEXT = @OBJEXT@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-AMTAR = @AMTAR@
-AR = @AR@
-AWK = @AWK@
-BGPD = @BGPD@
-CC = @CC@
-CPP = @CPP@
-CURSES = @CURSES@
-DEPDIR = @DEPDIR@
-IF_METHOD = @IF_METHOD@
-IF_PROC = @IF_PROC@
-
-INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-IPFORWARD = @IPFORWARD@
-KERNEL_METHOD = @KERNEL_METHOD@
-LIBPAM = @LIBPAM@
-
-LIB_IPV6 = @LIB_IPV6@
-LIB_REGEX = @LIB_REGEX@
-MULTIPATH_NUM = @MULTIPATH_NUM@
-OSPF6D = @OSPF6D@
-OSPFD = @OSPFD@
-OTHER_METHOD = @OTHER_METHOD@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-RIPD = @RIPD@
-RIPNGD = @RIPNGD@
-RTREAD_METHOD = @RTREAD_METHOD@
-RT_METHOD = @RT_METHOD@
-STRIP = @STRIP@
-VERSION = @VERSION@
-VTYSH = @VTYSH@
-ZEBRA = @ZEBRA@
-am__include = @am__include@
-am__quote = @am__quote@
-install_sh = @install_sh@
-DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\" -DMULTIPATH_NUM=@MULTIPATH_NUM@
-INSTALL_SDATA = @INSTALL@ -m 600
-
-ipforward = @IPFORWARD@
-if_method = @IF_METHOD@
-if_proc = @IF_PROC@
-rt_method = @RT_METHOD@
-rtread_method = @RTREAD_METHOD@
-kernel_method = @KERNEL_METHOD@
-other_method = @OTHER_METHOD@
-
-otherobj = $(ipforward) $(if_method) $(if_proc) $(rt_method) \
- $(rtread_method) $(kernel_method) $(other_method)
-
-
-sbin_PROGRAMS = zebra
-
-zebra_SOURCES = \
- zserv.c main.c interface.c connected.c ioctl.c zebra_rib.c \
- redistribute.c debug.c rtadv.c zebra_snmp.c zebra_vty.c
-
-
-noinst_HEADERS = \
- connected.h ioctl.h rib.h rt.h zserv.h redistribute.h debug.h rtadv.h \
- interface.h ipforward.h
-
-
-zebra_LDADD = ../lib/libzebra.a $(otherobj) $(LIB_IPV6)
-
-zebra_DEPENDENCIES = $(otherobj)
-
-sysconf_DATA = zebra.conf.sample
-
-EXTRA_DIST = $(sysconf_DATA) if_ioctl.c if_netlink.c if_proc.c if_sysctl.c \
- ipforward_aix.c ipforward_ews.c ipforward_proc.c \
- ipforward_solaris.c ipforward_sysctl.c rt_ioctl.c rt_netlink.c \
- rt_socket.c rtread_netlink.c rtread_proc.c rtread_sysctl.c \
- 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 = $(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@
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-@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) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-CFLAGS = @CFLAGS@
-DIST_SOURCES = $(zebra_SOURCES)
-DATA = $(sysconf_DATA)
-
-HEADERS = $(noinst_HEADERS)
-
-DIST_COMMON = $(noinst_HEADERS) ChangeLog Makefile.am Makefile.in
-SOURCES = $(zebra_SOURCES)
-
-all: all-am
-
-.SUFFIXES:
-.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) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
-sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-install-sbinPROGRAMS: $(sbin_PROGRAMS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(sbindir)
- @list='$(sbin_PROGRAMS)'; for p in $$list; do \
- p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
- if test -f $$p \
- ; then \
- f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) $$p $(DESTDIR)$(sbindir)/$$f"; \
- $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) $$p $(DESTDIR)$(sbindir)/$$f; \
- else :; fi; \
- done
-
-uninstall-sbinPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(sbin_PROGRAMS)'; for p in $$list; do \
- f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
- rm -f $(DESTDIR)$(sbindir)/$$f; \
- done
-
-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 *.$(OBJEXT) core *.core
-
-distclean-compile:
- -rm -f *.tab.c
-
-@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@
-
-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:
-sysconfDATA_INSTALL = $(INSTALL_DATA)
-
-uninstall-sysconfDATA:
- @$(NORMAL_UNINSTALL)
- @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
-
-ETAGS = etags
-ETAGSFLAGS =
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(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; }'`; \
- mkid -fID $$unique
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(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)$$tags$$unique" \
- || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
-
-distdir: $(DISTFILES)
- @list='$(DISTFILES)'; for file in $$list; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS) $(DATA) $(HEADERS)
-
-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
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-sbinPROGRAMS mostlyclean-am
-
-distclean: distclean-am
-
-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
-
-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
-# $(CC) -g -o client client_main.o ../lib/libzebra.a $(LIBS) $(LIB_IPV6)
-
-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_SDATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p"; \
- $(INSTALL_SDATA) $(srcdir)/$$p $(DESTDIR)$(sysconfdir)/$$p; \
- else if test -f $$p; then \
- echo " $(INSTALL_SDATA) $$p $(DESTDIR)$(sysconfdir)/$$p"; \
- $(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/zebra/if_ioctl.c b/zebra/if_ioctl.c
index 46f53011..c9797996 100644
--- a/zebra/if_ioctl.c
+++ b/zebra/if_ioctl.c
@@ -130,14 +130,11 @@ interface_list_ioctl ()
int
if_get_index (struct interface *ifp)
{
- static int if_fake_index = 1;
-
-#ifdef HAVE_BROKEN_ALIASES
- /* Linux 2.2.X does not provide individual interface index for aliases. */
- ifp->ifindex = if_fake_index++;
- return ifp->ifindex;
-#else
-#ifdef SIOCGIFINDEX
+#if defined(HAVE_IF_NAMETOINDEX)
+ /* Modern systems should have if_nametoindex(3). */
+ ifp->ifindex = if_nametoindex(ifp->name);
+#elif defined(SIOCGIFINDEX) && !defined(HAVE_BROKEN_ALIASES)
+ /* Fall-back for older linuxes. */
int ret;
struct ifreq ifreq;
@@ -157,13 +154,20 @@ if_get_index (struct interface *ifp)
#else
ifp->ifindex = ifreq.ifr_index;
#endif
- return ifp->ifindex;
#else
+/* Linux 2.2.X does not provide individual interface index
+ for aliases and we know it. For others issue a warning. */
+#if !defined(HAVE_BROKEN_ALIASES)
+#warning "Using if_fake_index. You may want to add appropriate"
+#warning "mapping from ifname to ifindex for your system..."
+#endif
+ /* This branch probably won't provide usable results, but anyway... */
+ static int if_fake_index = 1;
ifp->ifindex = if_fake_index++;
+#endif
+
return ifp->ifindex;
-#endif /* SIOCGIFINDEX */
-#endif /* HAVE_BROKEN_ALIASES */
}
#ifdef SIOCGIFHWADDR
@@ -287,6 +291,15 @@ if_getaddrs ()
}
}
+#if defined(KAME)
+ if (IN6_IS_ADDR_LINKLOCAL(&addr->sin6_addr))
+ {
+ addr->sin6_scope_id =
+ ntohs(*(u_int16_t *)&addr->sin6_addr.s6_addr[2]);
+ addr->sin6_addr.s6_addr[2] = addr->sin6_addr.s6_addr[3] = 0;
+ }
+#endif
+
connected_add_ipv6 (ifp, &addr->sin6_addr, prefixlen, dest_pnt);
}
#endif /* HAVE_IPV6 */
diff --git a/zebra/interface.c b/zebra/interface.c
index 5629ebb3..f2374316 100644
--- a/zebra/interface.c
+++ b/zebra/interface.c
@@ -147,7 +147,7 @@ if_addr_wakeup (struct interface *ifp)
zebra_interface_address_add_update (ifp, ifc);
- if (if_is_up(ifp))
+ if (if_is_operative(ifp))
connected_up_ipv4 (ifp, ifc);
}
#ifdef HAVE_IPV6
@@ -170,7 +170,7 @@ if_addr_wakeup (struct interface *ifp)
zebra_interface_address_add_update (ifp, ifc);
- if (if_is_up(ifp))
+ if (if_is_operative(ifp))
connected_up_ipv6 (ifp, ifc);
}
#endif /* HAVE_IPV6 */
@@ -182,6 +182,14 @@ if_addr_wakeup (struct interface *ifp)
void
if_add_update (struct interface *ifp)
{
+ struct zebra_if *if_data;
+
+ if_data = ifp->info;
+ if (if_data->multicast == IF_ZEBRA_MULTICAST_ON)
+ if_set_flags (ifp, IFF_MULTICAST);
+ else if (if_data->multicast == IF_ZEBRA_MULTICAST_OFF)
+ if_unset_flags (ifp, IFF_MULTICAST);
+
zebra_interface_add_update (ifp);
if (! CHECK_FLAG (ifp->status, ZEBRA_INTERFACE_ACTIVE))
@@ -326,16 +334,16 @@ if_down (struct interface *ifp)
void
if_refresh (struct interface *ifp)
{
- if (if_is_up (ifp))
+ if (if_is_operative (ifp))
{
if_get_flags (ifp);
- if (! if_is_up (ifp))
+ if (! if_is_operative (ifp))
if_down (ifp);
}
else
{
if_get_flags (ifp);
- if (if_is_up (ifp))
+ if (if_is_operative (ifp))
if_up (ifp);
}
}
@@ -471,8 +479,22 @@ if_dump_vty (struct vty *vty, struct interface *ifp)
struct connected *connected;
listnode node;
- vty_out (vty, "Interface %s%s", ifp->name,
- VTY_NEWLINE);
+ vty_out (vty, "Interface %s is ", ifp->name);
+ if (if_is_up(ifp)) {
+ vty_out (vty, "up, line protocol ");
+
+ if (CHECK_FLAG(ifp->status, ZEBRA_INTERFACE_LINKDETECTION)) {
+ if (if_is_running(ifp))
+ vty_out (vty, "is up%s", VTY_NEWLINE);
+ else
+ vty_out (vty, "is down%s", VTY_NEWLINE);
+ } else {
+ vty_out (vty, "detection is disabled%s", VTY_NEWLINE);
+ }
+ } else {
+ vty_out (vty, "down%s", VTY_NEWLINE);
+ }
+
if (ifp->desc)
vty_out (vty, " Description: %s%s", ifp->desc,
VTY_NEWLINE);
@@ -652,36 +674,6 @@ DEFUN_NOSH (zebra_interface,
return ret;
}
-DEFUN (no_zebra_interface,
- no_zebra_interface_cmd,
- "no interface IFNAME",
- "Delete a pseudo interface's configuration\n"
- "Interface's name\n")
-{
- struct interface *ifp;
-
- ifp = if_lookup_by_name(argv[0]);
-
- if (ifp == NULL)
- {
- vty_out (vty, "Inteface %s does not exist%s",
- argv[0],
- VTY_NEWLINE);
- return CMD_WARNING;
- }
-
- if (CHECK_FLAG (ifp->status, ZEBRA_INTERFACE_ACTIVE))
- {
- vty_out(vty, "Only inactive interfaces can be deleted%s", VTY_NEWLINE);
- return CMD_WARNING;
- }
-
- /* Delete interface */
- if_delete(ifp);
-
- return CMD_SUCCESS;
-}
-
struct cmd_node interface_node =
{
INTERFACE_NODE,
@@ -739,16 +731,19 @@ DEFUN (multicast,
struct zebra_if *if_data;
ifp = (struct interface *) vty->index;
- ret = if_set_flags (ifp, IFF_MULTICAST);
- if (ret < 0)
+ if (CHECK_FLAG (ifp->status, ZEBRA_INTERFACE_ACTIVE))
{
- vty_out (vty, "Can't set multicast flag%s", VTY_NEWLINE);
- return CMD_WARNING;
+ ret = if_set_flags (ifp, IFF_MULTICAST);
+ if (ret < 0)
+ {
+ vty_out (vty, "Can't set multicast flag%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ if_refresh (ifp);
}
- if_refresh (ifp);
if_data = ifp->info;
if_data->multicast = IF_ZEBRA_MULTICAST_ON;
-
+
return CMD_SUCCESS;
}
@@ -763,19 +758,65 @@ DEFUN (no_multicast,
struct zebra_if *if_data;
ifp = (struct interface *) vty->index;
- ret = if_unset_flags (ifp, IFF_MULTICAST);
- if (ret < 0)
+ if (CHECK_FLAG (ifp->status, ZEBRA_INTERFACE_ACTIVE))
{
- vty_out (vty, "Can't unset multicast flag%s", VTY_NEWLINE);
- return CMD_WARNING;
+ ret = if_unset_flags (ifp, IFF_MULTICAST);
+ if (ret < 0)
+ {
+ vty_out (vty, "Can't unset multicast flag%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ if_refresh (ifp);
}
- if_refresh (ifp);
if_data = ifp->info;
if_data->multicast = IF_ZEBRA_MULTICAST_OFF;
return CMD_SUCCESS;
}
+DEFUN (linkdetect,
+ linkdetect_cmd,
+ "link-detect",
+ "Enable link detection on interface\n")
+{
+ struct interface *ifp;
+ int if_was_operative;
+
+ ifp = (struct interface *) vty->index;
+ if_was_operative = if_is_operative(ifp);
+ SET_FLAG(ifp->status, ZEBRA_INTERFACE_LINKDETECTION);
+
+ /* When linkdetection is enabled, if might come down */
+ if (!if_is_operative(ifp) && if_was_operative) if_down(ifp);
+
+ /* FIXME: Will defer status change forwarding if interface
+ does not come down! */
+
+ return CMD_SUCCESS;
+}
+
+
+DEFUN (no_linkdetect,
+ no_linkdetect_cmd,
+ "no link-detect",
+ NO_STR
+ "Disable link detection on interface\n")
+{
+ struct interface *ifp;
+ int if_was_operative;
+
+ ifp = (struct interface *) vty->index;
+ if_was_operative = if_is_operative(ifp);
+ UNSET_FLAG(ifp->status, ZEBRA_INTERFACE_LINKDETECTION);
+
+ /* Interface may come up after disabling link detection */
+ if (if_is_operative(ifp) && !if_was_operative) if_up(ifp);
+
+ /* FIXME: see linkdetect_cmd */
+
+ return CMD_SUCCESS;
+}
+
DEFUN (shutdown_if,
shutdown_if_cmd,
"shutdown",
@@ -845,7 +886,7 @@ DEFUN (bandwidth_if,
ifp->bandwidth = bandwidth;
/* force protocols to recalculate routes due to cost change */
- if (if_is_up (ifp))
+ if (if_is_operative (ifp))
zebra_interface_up_update (ifp);
return CMD_SUCCESS;
@@ -864,7 +905,7 @@ DEFUN (no_bandwidth_if,
ifp->bandwidth = 0;
/* force protocols to recalculate routes due to cost change */
- if (if_is_up (ifp))
+ if (if_is_operative (ifp))
zebra_interface_up_update (ifp);
return CMD_SUCCESS;
@@ -957,7 +998,7 @@ ip_address_install (struct vty *vty, struct interface *ifp, char *addr_str,
zebra_interface_address_add_update (ifp, ifc);
/* If interface is up register connected route. */
- if (if_is_up(ifp))
+ if (if_is_operative(ifp))
connected_up_ipv4 (ifp, ifc);
}
@@ -1165,7 +1206,7 @@ ipv6_address_install (struct vty *vty, struct interface *ifp, char *addr_str,
zebra_interface_address_add_update (ifp, ifc);
/* If interface is up register connected route. */
- if (if_is_up(ifp))
+ if (if_is_operative(ifp))
connected_up_ipv6 (ifp, ifc);
}
@@ -1301,6 +1342,9 @@ if_config_write (struct vty *vty)
if (ifp->bandwidth != 0)
vty_out(vty, " bandwidth %u%s", ifp->bandwidth, VTY_NEWLINE);
+ if (CHECK_FLAG(ifp->status, ZEBRA_INTERFACE_LINKDETECTION))
+ vty_out(vty, " link-detect%s", VTY_NEWLINE);
+
for (addrnode = listhead (ifp->connected); addrnode; nextnode (addrnode))
{
ifc = getdata (addrnode);
@@ -1357,12 +1401,14 @@ zebra_if_init ()
install_element (VIEW_NODE, &show_interface_cmd);
install_element (ENABLE_NODE, &show_interface_cmd);
install_element (CONFIG_NODE, &zebra_interface_cmd);
- install_element (CONFIG_NODE, &no_zebra_interface_cmd);
+ install_element (CONFIG_NODE, &no_interface_cmd);
install_default (INTERFACE_NODE);
install_element (INTERFACE_NODE, &interface_desc_cmd);
install_element (INTERFACE_NODE, &no_interface_desc_cmd);
install_element (INTERFACE_NODE, &multicast_cmd);
install_element (INTERFACE_NODE, &no_multicast_cmd);
+ install_element (INTERFACE_NODE, &linkdetect_cmd);
+ install_element (INTERFACE_NODE, &no_linkdetect_cmd);
install_element (INTERFACE_NODE, &shutdown_if_cmd);
install_element (INTERFACE_NODE, &no_shutdown_if_cmd);
install_element (INTERFACE_NODE, &bandwidth_if_cmd);
diff --git a/zebra/ioctl.c b/zebra/ioctl.c
index f8e7f22b..3e5d1d2f 100644
--- a/zebra/ioctl.c
+++ b/zebra/ioctl.c
@@ -27,13 +27,10 @@
#include "prefix.h"
#include "ioctl.h"
#include "log.h"
-#include "privs.h"
#include "zebra/rib.h"
#include "zebra/rt.h"
-extern struct zebra_privs_t zserv_privs;
-
/* clear and set interface name string */
void
ifreq_set_name (struct ifreq *ifreq, struct interface *ifp)
@@ -49,19 +46,14 @@ if_ioctl (u_long request, caddr_t buffer)
int ret = 0;
int err = 0;
- if (zserv_privs.change(ZPRIVS_RAISE))
- zlog (NULL, LOG_ERR, "Can't raise privileges");
sock = socket (AF_INET, SOCK_DGRAM, 0);
if (sock < 0)
{
- if (zserv_privs.change(ZPRIVS_LOWER))
- zlog (NULL, LOG_ERR, "Can't lower privileges");
perror ("socket");
exit (1);
}
+
ret = ioctl (sock, request, buffer);
- if (zserv_privs.change(ZPRIVS_LOWER))
- zlog (NULL, LOG_ERR, "Can't lower privileges");
if (ret < 0)
{
err = errno;
@@ -84,21 +76,14 @@ if_ioctl_ipv6 (u_long request, caddr_t buffer)
int ret = 0;
int err = 0;
- if (zserv_privs.change(ZPRIVS_RAISE))
- zlog (NULL, LOG_ERR, "Can't raise privileges");
sock = socket (AF_INET6, SOCK_DGRAM, 0);
if (sock < 0)
{
- if (zserv_privs.change(ZPRIVS_LOWER))
- zlog (NULL, LOG_ERR, "Can't lower privileges");
perror ("socket");
exit (1);
}
ret = ioctl (sock, request, buffer);
- if (zserv_privs.change(ZPRIVS_LOWER))
- zlog (NULL, LOG_ERR, "Can't lower privileges");
-
if (ret < 0)
{
err = errno;
diff --git a/zebra/ipforward_proc.c b/zebra/ipforward_proc.c
index a31ec84b..eb8cef01 100644
--- a/zebra/ipforward_proc.c
+++ b/zebra/ipforward_proc.c
@@ -22,11 +22,6 @@
#include <zebra.h>
-#include "log.h"
-#include "privs.h"
-
-extern struct zebra_privs_t zserv_privs;
-
char proc_net_snmp[] = "/proc/net/snmp";
static void
@@ -73,15 +68,9 @@ int
ipforward_on ()
{
FILE *fp;
-
- if ( zserv_privs.change(ZPRIVS_RAISE) )
- zlog_err ("Can't raise privileges, %s", strerror (errno) );
fp = fopen (proc_ipv4_forwarding, "w");
-
- if ( zserv_privs.change(ZPRIVS_LOWER) )
- zlog_err ("Can't lower privileges, %s", strerror (errno));
-
+
if (fp == NULL)
return -1;
@@ -97,14 +86,7 @@ ipforward_off ()
{
FILE *fp;
- if ( zserv_privs.change(ZPRIVS_RAISE) )
- zlog_err ("Can't raise privileges, %s", strerror (errno));
-
fp = fopen (proc_ipv4_forwarding, "w");
-
- if ( zserv_privs.change(ZPRIVS_LOWER) )
- zlog_err ("Can't lower privileges, %s", strerror (errno));
-
if (fp == NULL)
return -1;
@@ -142,13 +124,7 @@ ipforward_ipv6_on ()
{
FILE *fp;
- if ( zserv_privs.change(ZPRIVS_RAISE) )
- zlog_err ("Can't raise privileges, %s", strerror (errno));
-
fp = fopen (proc_ipv6_forwarding, "w");
-
- if ( zserv_privs.change(ZPRIVS_LOWER) )
- zlog_err ("Can't lower privileges, %s", strerror (errno));
if (fp == NULL)
return -1;
@@ -165,13 +141,7 @@ ipforward_ipv6_off ()
{
FILE *fp;
- if ( zserv_privs.change(ZPRIVS_RAISE) )
- zlog_err ("Can't raise privileges, %s", strerror (errno));
-
fp = fopen (proc_ipv6_forwarding, "w");
-
- if ( zserv_privs.change(ZPRIVS_LOWER) )
- zlog_err ("Can't lower privileges, %s", strerror (errno));
if (fp == NULL)
return -1;
diff --git a/zebra/ipforward_solaris.c b/zebra/ipforward_solaris.c
index 27a3afde..63d1110c 100644
--- a/zebra/ipforward_solaris.c
+++ b/zebra/ipforward_solaris.c
@@ -22,7 +22,6 @@
#include <zebra.h>
#include "log.h"
-#include "prefix.h"
/*
** Solaris should define IP_DEV_NAME in <inet/ip.h>, but we'll save
@@ -34,9 +33,6 @@
#define IP_DEV_NAME "/dev/ip"
#endif
/*
-
-extern struct zebra_privs_t zserv_privs;
-
** This is a limited ndd style function that operates one integer
** value only. Errors return -1. ND_SET commands return 0 on
** success. ND_GET commands return the value on success (which could
@@ -44,7 +40,6 @@ extern struct zebra_privs_t zserv_privs;
** name of the parameter being referenced.
*/
-
static int
solaris_nd(const int cmd, const char* parameter, const int value)
{
@@ -72,43 +67,26 @@ solaris_nd(const int cmd, const char* parameter, const int value)
strioctl.ic_timout = 0;
strioctl.ic_len = ND_BUFFER_SIZE;
strioctl.ic_dp = nd_buf;
-
- if ( zserv_privs.change (ZPRIVS_RAISE) )
- zlog_err ("solaris_nd: Can't raise privileges");
- if ((fd = open (device, O_RDWR)) < 0)
- {
- zlog_warn("failed to open device %s - %s", device, strerror(errno));
- if ( zserv_privs.change (ZPRIVS_LOWER) )
- zlog_err ("solaris_nd: Can't lower privileges");
- return -1;
- }
- if (ioctl (fd, I_STR, &strioctl) < 0)
- {
- if ( zserv_privs.change (ZPRIVS_LOWER) )
- zlog_err ("solaris_nd: Can't lower privileges");
- close (fd);
- zlog_warn("ioctl I_STR failed on device %s - %s", device,strerror(errno));
- return -1;
- }
+ if ((fd = open (device, O_RDWR)) < 0) {
+ zlog_warn("failed to open device %s - %s", device, strerror(errno));
+ return -1;
+ }
+ if (ioctl (fd, I_STR, &strioctl) < 0) {
+ close (fd);
+ zlog_warn("ioctl I_STR failed on device %s - %s", device,strerror(errno));
+ return -1;
+ }
close(fd);
- if ( zserv_privs.change (ZPRIVS_LOWER) )
- zlog_err ("solaris_nd: Can't lower privileges");
-
- if (cmd == ND_GET)
- {
- errno = 0;
- retval = atoi(nd_buf);
- if (errno)
- {
- zlog_warn("failed to convert returned value to integer - %s",
- strerror(errno));
- retval = -1;
- }
- }
- else
- {
- retval = 0;
+ if (cmd == ND_GET) {
+ errno = 0;
+ retval = atoi(nd_buf);
+ if (errno) {
+ zlog_warn("failed to convert returned value to integer - %s",strerror(errno));
+ retval = -1;
}
+ } else {
+ retval = 0;
+ }
return retval;
}
diff --git a/zebra/ipforward_sysctl.c b/zebra/ipforward_sysctl.c
index 53b6c6f0..828eb865 100644
--- a/zebra/ipforward_sysctl.c
+++ b/zebra/ipforward_sysctl.c
@@ -20,7 +20,6 @@
*/
#include <zebra.h>
-#include "privs.h"
#ifdef NRL
#include <netinet6/in6.h>
@@ -30,8 +29,6 @@
#define MIB_SIZ 4
-extern struct zebra_privs_t zserv_privs;
-
/* IPv4 forwarding control MIB. */
int mib[MIB_SIZ] =
{
@@ -63,17 +60,11 @@ ipforward_on ()
int ipforwarding = 1;
len = sizeof ipforwarding;
- if (zserv_privs.change(ZPRIVS_RAISE))
- zlog (NULL, LOG_ERR, "Can't raise privileges");
- if (sysctl (mib, MIB_SIZ, NULL, NULL, &ipforwarding, len) < 0)
+ if (sysctl (mib, MIB_SIZ, NULL, NULL, &ipforwarding, len) < 0)
{
- if (zserv_privs.change(ZPRIVS_LOWER))
- zlog (NULL, LOG_ERR, "Can't lower privileges");
zlog_warn ("Can't set ipforwarding on");
return -1;
}
- if (zserv_privs.change(ZPRIVS_LOWER))
- zlog (NULL, LOG_ERR, "Can't lower privileges");
return ipforwarding;
}
@@ -84,17 +75,11 @@ ipforward_off ()
int ipforwarding = 0;
len = sizeof ipforwarding;
- if (zserv_privs.change(ZPRIVS_RAISE))
- zlog (NULL, LOG_ERR, "Can't raise privileges");
- if (sysctl (mib, MIB_SIZ, NULL, NULL, &ipforwarding, len) < 0)
+ if (sysctl (mib, MIB_SIZ, NULL, NULL, &ipforwarding, len) < 0)
{
- if (zserv_privs.change(ZPRIVS_LOWER))
- zlog (NULL, LOG_ERR, "Can't lower privileges");
zlog_warn ("Can't set ipforwarding on");
return -1;
}
- if (zserv_privs.change(ZPRIVS_LOWER))
- zlog (NULL, LOG_ERR, "Can't lower privileges");
return ipforwarding;
}
@@ -121,17 +106,11 @@ ipforward_ipv6 ()
int ip6forwarding = 0;
len = sizeof ip6forwarding;
- if (zserv_privs.change(ZPRIVS_RAISE))
- zlog (NULL, LOG_ERR, "Can't raise privileges");
- if (sysctl (mib_ipv6, MIB_SIZ, &ip6forwarding, &len, 0, 0) < 0)
+ if (sysctl (mib_ipv6, MIB_SIZ, &ip6forwarding, &len, 0, 0) < 0)
{
- if (zserv_privs.change(ZPRIVS_LOWER))
- zlog (NULL, LOG_ERR, "Can't lower privileges");
zlog_warn ("can't get ip6forwarding value");
return -1;
}
- if (zserv_privs.change(ZPRIVS_LOWER))
- zlog (NULL, LOG_ERR, "Can't lower privileges");
return ip6forwarding;
}
@@ -142,17 +121,11 @@ ipforward_ipv6_on ()
int ip6forwarding = 1;
len = sizeof ip6forwarding;
- if (zserv_privs.change(ZPRIVS_RAISE))
- zlog (NULL, LOG_ERR, "Can't raise privileges");
- if (sysctl (mib_ipv6, MIB_SIZ, NULL, NULL, &ip6forwarding, len) < 0)
+ if (sysctl (mib_ipv6, MIB_SIZ, NULL, NULL, &ip6forwarding, len) < 0)
{
- if (zserv_privs.change(ZPRIVS_LOWER))
- zlog (NULL, LOG_ERR, "Can't lower privileges");
zlog_warn ("can't get ip6forwarding value");
return -1;
}
- if (zserv_privs.change(ZPRIVS_LOWER))
- zlog (NULL, LOG_ERR, "Can't lower privileges");
return ip6forwarding;
}
@@ -163,17 +136,11 @@ ipforward_ipv6_off ()
int ip6forwarding = 0;
len = sizeof ip6forwarding;
- if (zserv_privs.change(ZPRIVS_RAISE))
- zlog (NULL, LOG_ERR, "Can't raise privileges");
- if (sysctl (mib_ipv6, MIB_SIZ, NULL, NULL, &ip6forwarding, len) < 0)
+ if (sysctl (mib_ipv6, MIB_SIZ, NULL, NULL, &ip6forwarding, len) < 0)
{
- if (zserv_privs.change(ZPRIVS_LOWER))
- zlog (NULL, LOG_ERR, "Can't lower privileges");
zlog_warn ("can't get ip6forwarding value");
return -1;
}
- if (zserv_privs.change(ZPRIVS_LOWER))
- zlog (NULL, LOG_ERR, "Can't lower privileges");
return ip6forwarding;
}
#endif /* HAVE_IPV6 */
diff --git a/zebra/kernel_socket.c b/zebra/kernel_socket.c
index 30e0fb1d..17893a87 100644
--- a/zebra/kernel_socket.c
+++ b/zebra/kernel_socket.c
@@ -31,14 +31,11 @@
#include "str.h"
#include "table.h"
#include "rib.h"
-#include "privs.h"
#include "zebra/interface.h"
#include "zebra/zserv.h"
#include "zebra/debug.h"
-extern struct zebra_privs_t zserv_privs;
-
/* Socket length roundup function. */
#define ROUNDUP(a) \
((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long))
@@ -801,23 +798,16 @@ kernel_read (struct thread *thread)
void
routing_socket ()
{
- if ( zserv_privs.change (ZPRIVS_RAISE) )
- zlog_err ("routing_socket: Can't raise privileges");
-
routing_sock = socket (AF_ROUTE, SOCK_RAW, 0);
if (routing_sock < 0)
{
- if ( zserv_privs.change (ZPRIVS_LOWER) )
- zlog_err ("routing_socket: Can't lower privileges");
zlog_warn ("Can't init kernel routing socket");
return;
}
if (fcntl (routing_sock, F_SETFL, O_NONBLOCK) < 0)
zlog_warn ("Can't set O_NONBLOCK to routing socket");
- if ( zserv_privs.change (ZPRIVS_LOWER) )
- zlog_err ("routing_socket: Can't lower privileges");
/* kernel_read needs rewrite. */
thread_add_read (master, kernel_read, NULL, routing_sock);
diff --git a/zebra/main.c b/zebra/main.c
index 72b1fc4e..66469a2f 100644
--- a/zebra/main.c
+++ b/zebra/main.c
@@ -1,4 +1,5 @@
-/* zebra daemon main routine.
+/*
+ * zebra daemon main routine.
* Copyright (C) 1997, 98 Kunihiro Ishiguro
*
* This file is part of GNU Zebra.
@@ -29,7 +30,6 @@
#include "memory.h"
#include "prefix.h"
#include "log.h"
-#include "privs.h"
#include "zebra/rib.h"
#include "zebra/zserv.h"
@@ -62,32 +62,10 @@ struct option longopts[] =
{ "vty_addr", required_argument, NULL, 'A'},
{ "vty_port", required_argument, NULL, 'P'},
{ "retain", no_argument, NULL, 'r'},
- { "user", required_argument, NULL, 'u'},
{ "version", no_argument, NULL, 'v'},
{ 0 }
};
-zebra_capabilities_t _caps_p [] =
-{
- ZCAP_ADMIN,
- ZCAP_SYS_ADMIN,
-};
-
-/* zebra privileges to run with */
-struct zebra_privs_t zserv_privs =
-{
-#if defined(ZEBRA_USER) && defined(ZEBRA_GROUP)
- .user = ZEBRA_USER,
- .group = ZEBRA_GROUP,
-#endif
-#ifdef VTY_GROUP
- .vty_group = VTY_GROUP,
-#endif
- .caps_p = _caps_p,
- .cap_num_p = sizeof(_caps_p)/sizeof(_caps_p[0]),
- .cap_num_i = 0
-};
-
/* Default configuration file path. */
char config_current[] = DEFAULT_CONFIG_FILE;
char config_default[] = SYSCONFDIR DEFAULT_CONFIG_FILE;
@@ -115,7 +93,6 @@ redistribution between different routing protocols.\n\n\
-A, --vty_addr Set vty's bind address\n\
-P, --vty_port Set vty's port number\n\
-r, --retain When program terminates, retain added route by zebra.\n\
--u, --user User and group to run as\n\
-v, --version Print program version\n\
-h, --help Display this help and exit\n\
\n\
@@ -219,7 +196,7 @@ main (int argc, char **argv)
{
int opt;
- opt = getopt_long (argc, argv, "bdklf:hA:P:ru:v", longopts, 0);
+ opt = getopt_long (argc, argv, "bdklf:hA:P:rv", longopts, 0);
if (opt == EOF)
break;
@@ -262,9 +239,6 @@ main (int argc, char **argv)
case 'r':
retain_mode = 1;
break;
- case 'u':
- zserv_privs.user = zserv_privs.group = optarg;
- break;
case 'v':
print_version (progname);
exit (0);
@@ -281,9 +255,6 @@ main (int argc, char **argv)
/* Make master thread emulator. */
master = thread_master_create ();
- /* privs initialise */
- zprivs_init (&zserv_privs);
-
/* Vty related initialize. */
signal_init ();
cmd_init (1);
diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c
index e1514623..87062dc5 100644
--- a/zebra/rt_netlink.c
+++ b/zebra/rt_netlink.c
@@ -34,7 +34,6 @@
#include "table.h"
#include "rib.h"
#include "thread.h"
-#include "privs.h"
#include "zebra/zserv.h"
#include "zebra/redistribute.h"
@@ -68,8 +67,6 @@ struct message nlmsg_str[] =
extern int rtm_table_default;
-extern struct zebra_privs_t zserv_privs;
-
/* Make socket for Linux netlink interface. */
static int
netlink_socket (struct nlsock *nl, unsigned long groups)
@@ -101,25 +98,14 @@ netlink_socket (struct nlsock *nl, unsigned long groups)
snl.nl_groups = groups;
/* Bind the socket to the netlink structure for anything. */
- if ( zserv_privs.change(ZPRIVS_RAISE) )
- {
- zlog (NULL, LOG_ERR, "Can't raise privileges");
- return -1;
- }
-
ret = bind (sock, (struct sockaddr *) &snl, sizeof snl);
if (ret < 0)
{
- if ( zserv_privs.change(ZPRIVS_LOWER) )
- zlog (NULL, LOG_ERR, "Can't lower privileges");
zlog (NULL, LOG_ERR, "Can't bind %s socket to group 0x%x: %s",
nl->name, snl.nl_groups, strerror (errno));
close (sock);
return -1;
}
-
- if ( zserv_privs.change(ZPRIVS_LOWER) )
- zlog (NULL, LOG_ERR, "Can't lower privileges");
/* multiple netlink sockets will have different nl_pid */
namelen = sizeof snl;
@@ -200,28 +186,14 @@ netlink_request (int family, int type, struct nlsock *nl)
req.nlh.nlmsg_pid = 0;
req.nlh.nlmsg_seq = ++nl->seq;
req.g.rtgen_family = family;
-
- /* linux appears to check capabilities on every message
- * have to raise caps for every message sent
- */
- if ( zserv_privs.change(ZPRIVS_RAISE) )
- {
- zlog (NULL, LOG_ERR, "Can't raise privileges");
- return -1;
- }
ret = sendto (nl->sock, (void*) &req, sizeof req, 0,
(struct sockaddr*) &snl, sizeof snl);
-
- if ( zserv_privs.change(ZPRIVS_LOWER) )
- zlog (NULL, LOG_ERR, "Can't lower privileges");
-
if (ret < 0)
- {
+ {
zlog (NULL, LOG_ERR, "%s sendto failed: %s", nl->name, strerror (errno));
return -1;
}
-
return 0;
}
@@ -243,13 +215,7 @@ netlink_parse_info (int (*filter) (struct sockaddr_nl *, struct nlmsghdr *),
struct msghdr msg = { (void*)&snl, sizeof snl, &iov, 1, NULL, 0, 0};
struct nlmsghdr *h;
- if ( zserv_privs.change(ZPRIVS_RAISE) )
- zlog (NULL, LOG_ERR, "Can't raise privileges");
-
status = recvmsg (nl->sock, &msg, 0);
-
- if ( zserv_privs.change(ZPRIVS_LOWER) )
- zlog (NULL, LOG_ERR, "Can't lower privileges");
if (status < 0)
{
@@ -1138,12 +1104,7 @@ netlink_talk (struct nlmsghdr *n, struct nlsock *nl)
n->nlmsg_seq);
/* Send message to netlink interface. */
- if ( zserv_privs.change(ZPRIVS_RAISE) )
- zlog (NULL, LOG_ERR, "Can't raise privileges");
status = sendmsg (nl->sock, &msg, 0);
- if ( zserv_privs.change(ZPRIVS_LOWER) )
- zlog (NULL, LOG_ERR, "Can't lower privileges");
-
if (status < 0)
{
zlog (NULL, LOG_ERR, "netlink_talk sendmsg() error: %s",
diff --git a/zebra/rt_socket.c b/zebra/rt_socket.c
index d603c60d..19b2fc2f 100644
--- a/zebra/rt_socket.c
+++ b/zebra/rt_socket.c
@@ -27,13 +27,10 @@
#include "sockunion.h"
#include "log.h"
#include "str.h"
-#include "privs.h"
#include "zebra/debug.h"
#include "zebra/rib.h"
-extern struct zebra_privs_t zserv_privs;
-
int
rtm_write (int message,
union sockunion *dest,
@@ -190,29 +187,13 @@ kernel_rtm_ipv4 (int cmd, struct prefix *p, struct rib *rib, int family)
int
kernel_add_ipv4 (struct prefix *p, struct rib *rib)
{
- int route;
-
- if (zserv_privs.change(ZPRIVS_RAISE))
- zlog (NULL, LOG_ERR, "Can't raise privileges");
- route = kernel_rtm_ipv4 (RTM_ADD, p, rib, AF_INET);
- if (zserv_privs.change(ZPRIVS_LOWER))
- zlog (NULL, LOG_ERR, "Can't lower privileges");
-
- return route;
+ return kernel_rtm_ipv4 (RTM_ADD, p, rib, AF_INET);
}
int
kernel_delete_ipv4 (struct prefix *p, struct rib *rib)
{
- int route;
-
- if (zserv_privs.change(ZPRIVS_RAISE))
- zlog (NULL, LOG_ERR, "Can't raise privileges");
- route = kernel_rtm_ipv4 (RTM_DELETE, p, rib, AF_INET);
- if (zserv_privs.change(ZPRIVS_LOWER))
- zlog (NULL, LOG_ERR, "Can't lower privileges");
-
- return route;
+ return kernel_rtm_ipv4 (RTM_DELETE, p, rib, AF_INET);
}
#ifdef HAVE_IPV6
@@ -440,29 +421,13 @@ kernel_rtm_ipv6_multipath (int cmd, struct prefix *p, struct rib *rib,
int
kernel_add_ipv6 (struct prefix *p, struct rib *rib)
{
- int route;
-
- if (zserv_privs.change(ZPRIVS_RAISE))
- zlog (NULL, LOG_ERR, "Can't raise privileges");
- route = kernel_rtm_ipv6_multipath (RTM_ADD, p, rib, AF_INET6);
- if (zserv_privs.change(ZPRIVS_LOWER))
- zlog (NULL, LOG_ERR, "Can't lower privileges");
-
- return route;
+ return kernel_rtm_ipv6_multipath (RTM_ADD, p, rib, AF_INET6);
}
int
kernel_delete_ipv6 (struct prefix *p, struct rib *rib)
{
- int route;
-
- if (zserv_privs.change(ZPRIVS_RAISE))
- zlog (NULL, LOG_ERR, "Can't raise privileges");
- route = kernel_rtm_ipv6_multipath (RTM_DELETE, p, rib, AF_INET6);
- if (zserv_privs.change(ZPRIVS_LOWER))
- zlog (NULL, LOG_ERR, "Can't lower privileges");
-
- return route;
+ return kernel_rtm_ipv6_multipath (RTM_DELETE, p, rib, AF_INET6);
}
/* Delete IPv6 route from the kernel. */
@@ -470,14 +435,6 @@ int
kernel_delete_ipv6_old (struct prefix_ipv6 *dest, struct in6_addr *gate,
int index, int flags, int table)
{
- int route;
-
- if (zserv_privs.change(ZPRIVS_RAISE))
- zlog (NULL, LOG_ERR, "Can't raise privileges");
- route = kernel_rtm_ipv6 (RTM_DELETE, dest, gate, index, flags);
- if (zserv_privs.change(ZPRIVS_LOWER))
- zlog (NULL, LOG_ERR, "Can't lower privileges");
-
- return route;
+ return kernel_rtm_ipv6 (RTM_DELETE, dest, gate, index, flags);
}
#endif /* HAVE_IPV6 */
diff --git a/zebra/rtadv.c b/zebra/rtadv.c
index 9dcee8ea..8f4b3778 100644
--- a/zebra/rtadv.c
+++ b/zebra/rtadv.c
@@ -29,14 +29,11 @@
#include "prefix.h"
#include "linklist.h"
#include "command.h"
-#include "privs.h"
#include "zebra/interface.h"
#include "zebra/rtadv.h"
#include "zebra/debug.h"
-extern struct zebra_privs_t zserv_privs;
-
#if defined (HAVE_IPV6) && defined (RTADV)
/* If RFC2133 definition is used. */
@@ -146,7 +143,7 @@ rtadv_send_packet (int sock, struct interface *ifp)
struct cmsghdr *cmsgptr;
struct in6_pktinfo *pkt;
struct sockaddr_in6 addr;
-#ifdef HAVE_SOCKADDR_DL
+#if HAVE_SOCKADDR_DL
struct sockaddr_dl *sdl;
#endif /* HAVE_SOCKADDR_DL */
char adata [sizeof (struct cmsghdr) + sizeof (struct in6_pktinfo)];
@@ -412,16 +409,8 @@ rtadv_make_socket (void)
int ret;
struct icmp6_filter filter;
- if ( zserv_privs.change (ZPRIVS_RAISE) )
- zlog_err ("rtadv_make_socket: could not raise privs, %s",
- strerror (errno) );
-
sock = socket (AF_INET6, SOCK_RAW, IPPROTO_ICMPV6);
- if ( zserv_privs.change (ZPRIVS_LOWER) )
- zlog_err ("rtadv_make_socket: could not lower privs, %s",
- strerror (errno) );
-
/* When we can't make ICMPV6 socket simply back. Router
advertisement feature will not be supported. */
if (sock < 0)
diff --git a/zebra/zebra_snmp.c b/zebra/zebra_snmp.c
index b028c3ec..051aaaa7 100644
--- a/zebra/zebra_snmp.c
+++ b/zebra/zebra_snmp.c
@@ -22,6 +22,9 @@
#include <zebra.h>
#ifdef HAVE_SNMP
+#ifdef HAVE_NETSNMP
+#include <net-snmp/net-snmp-config.h>
+#endif
#include <asn1.h>
#include <snmp.h>
#include <snmp_impl.h>
diff --git a/zebra/zserv.c b/zebra/zserv.c
index 975574af..70e7672d 100644
--- a/zebra/zserv.c
+++ b/zebra/zserv.c
@@ -33,7 +33,6 @@
#include "sockunion.h"
#include "log.h"
#include "zclient.h"
-#include "privs.h"
#include "zebra/zserv.h"
#include "zebra/redistribute.h"
@@ -51,8 +50,6 @@ int rtm_table_default = 0;
void zebra_event (enum event event, int sock, struct zserv *client);
-extern struct zebra_privs_t zserv_privs;
-
extern struct thread_master *master;
/* For logging of zebra meesages. */
@@ -1641,9 +1638,6 @@ zebra_serv ()
sockopt_reuseaddr (accept_sock);
sockopt_reuseport (accept_sock);
- if ( zserv_privs.change(ZPRIVS_RAISE) )
- zlog (NULL, LOG_ERR, "Can't raise privileges");
-
ret = bind (accept_sock, (struct sockaddr *)&addr,
sizeof (struct sockaddr_in));
if (ret < 0)
@@ -1653,9 +1647,6 @@ zebra_serv ()
close (accept_sock); /* Avoid sd leak. */
return;
}
-
- if ( zserv_privs.change(ZPRIVS_LOWER) )
- zlog (NULL, LOG_ERR, "Can't lower privileges");
ret = listen (accept_sock, 1);
if (ret < 0)