]> git.puffer.fish Git - mirror/frr.git/commitdiff
Merge branch 'master' into docuser
authorQuentin Young <qlyoung@cumulusnetworks.com>
Thu, 1 Mar 2018 16:10:01 +0000 (11:10 -0500)
committerQuentin Young <qlyoung@cumulusnetworks.com>
Thu, 1 Mar 2018 16:10:01 +0000 (11:10 -0500)
* New manpage: mtracebis.rst
* Makefile.am includes mtracebis.rst
* configure.ac lines removed
* Debian packaging files updated
* Fixed up manpage |seealso-programs| in the process
* Centos7 build package list updated to include systemd-devel
* New paragraph on netns vrf support in zebra manpage

Conflicts:
configure.ac
debianpkg/backports/ubuntu14.04/debian/frr.install
debianpkg/frr.install
doc/Makefile.am
doc/developer/Building_FRR_on_CentOS7.rst
doc/zebra.8.in

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
12 files changed:
1  2 
debianpkg/backports/ubuntu14.04/debian/frr.install
debianpkg/frr.install
doc/Makefile.am
doc/developer/Building_FRR_on_CentOS7.rst
doc/manpages/conf.py
doc/manpages/defines.rst
doc/manpages/epilogue.rst
doc/manpages/frr.rst
doc/manpages/index.rst
doc/manpages/mtracebis.rst
doc/manpages/ospfclient.rst
doc/manpages/zebra.rst

Simple merge
diff --cc doc/Makefile.am
index 9d2285a4485b075931652b4a39531572aa216b91,9c81202db9e7938500a0fcabf6d5888fb48c4516..d8244edca45be497395cf113eac3af84d5686ed0
  ## Process this file with automake to produce Makefile.in.
  
 -# Dia, the version i have at least, doesn't do very good EPS output
 -# (some of the text is scaled strangely). So this will work, but 
 -# it is probably better to use something like gimp to convert the 
 -# dia exported PNG files to EPS manually.
 -#
 -# Here we use 'convert' from the well known 'ImageMagick' package
 -# to do conversion from png to eps/pdf for figures. 
 -# PDF form is required for frr.pdf, using PDFTex at least.
 -#
 -# TeX implementation, which we depend on already anyway.
 -#
 -# dia -> (dia) -> png -> (convert) -> eps -> (epstopdf) -> pdf
 -SUFFIXES = .png .eps .dia .pdf
 -DIATOPNG = dia -t png -e
 -DIATOEPS = dia -t eps -e
 -PNGTOEPS = convert -antialias -contrast -despeckle
 -PNGTOPDF = $(PNGTOEPS)
 -EPSTOPDF = epstopdf
 -
 -VNCFIGURES_PNG = 
 -VNCFIGURES_DIA = -vnc-mesh -vnc-frr-route-reflector           \
 --vnc-commercial-route-reflector -vnc-redundant-route-reflectors       \
 --vnc-gw -vnc-gw-rr
 -
 -# TODO: A target that creates an empty text file for each member of
 -# VNCFIGURES_TXT
 -VNCFIGURES_TXT = $(VNCFIGURES:%.png=%.txt)
 -
 -# The figure sources
 -figures_names_parts = -normal-processing -rs-processing \
 -      _topologies_full _topologies_rs \
 -      $(VNCFIGURES_DIA)
 -
 -figures_sources = $(figures_names_parts:%=fig%.dia)
 -figures_png = $(figures_names_parts:%=fig%.png) $(VNCFIGURES_PNG)
 -figures_pdf = $(figures_names_parts:%=fig%.pdf) $(VNCFIGURES_PNG:%.png=%.pdf)
 -figures_eps = $(figures_names_parts:%=fig%.eps) $(VNCFIGURES_PNG:%.png=%.eps)
 -figures_txt = $(figures_names_parts:%=fig%.txt)
 -
 -# rather twisted logic because we have to build PDFs of the EPS figures for
 -# PDFTex and yet build one PDF, frr.pdf, from texi source. Which means we
 -# cant rely on a single automatic rule for *.pdf, eg the one automatically
 -# provided by automake. If you are an automake wizard, please feel free to
 -# compact it somehow.
 -
 -info_TEXINFOS = frr.texi
 -
 -# Have to manually specify the frr.pdf rule in order to allow
 -# us to have a generic automatic .pdf rule to build the figure sources
 -# because it cant just work from the png's directly it seems - contrary
 -# to the documentation...
 -frr.pdf: $(info_TEXINFOS) $(figures_pdf) $(frr_TEXINFOS) defines.texi
 -      $(TEXI2PDF) -o "$@" $< || true
 -
 -# don't ask me why the info file is in srcdir
 -$(srcdir)/frr.info: $(frr_TEXINFOS) defines.texi
 -frr.dvi: $(frr_TEXINFOS) defines.texi
 -frr.html: $(frr_TEXINFOS) defines.texi
 -
 -frr_TEXINFOS = \
 -      appendix.texi \
 -      basic.texi \
 -      bgpd.texi \
 -      isisd.texi \
 -      filter.texi \
 -      vnc.texi \
 -      babeld.texi \
 -      install.texi \
 -      ipv6.texi  \
 -      kernel.texi \
 -      main.texi \
 -      nhrpd.texi \
 -      eigrpd.texi \
 -      ospf6d.texi \
 -      ospfd.texi \
 -      overview.texi \
 -      protocol.texi \
 -      ripd.texi \
 -      ripngd.texi \
 -      routemap.texi \
 -      snmp.texi \
 -      vtysh.texi \
 -      routeserver.texi \
 -      $(figures_png) \
 -      snmptrap.texi \
 -      ospf_fundamentals.texi \
 -      isisd.texi $(figures_txt) \
 -      rpki.texi \
 -      pimd.texi \
 -      #END
 -
 -.png.eps:
 -      $(PNGTOEPS) $< "$@"
 -
 -.png.pdf:
 -      $(PNGTOPDF) $< "$@"
 -
 -.dia.png:
 -      $(DIATOPNG) "$@" $<
 -
 -man_MANS = frr.1 frr-args.8
 +# Tell Automake to invoke 'make' in the manpages directory with argument 'man'
 +SUBDIRS = manpages
 +AM_MAKEFLAGS = man
 +
 +MANPAGE_BUILDDIR = manpages/_build/man
 +
 +# Once that is done these will all exist
 +man_MANS = $(MANPAGE_BUILDDIR)/frr.1
  
  if PIMD
 -man_MANS += pimd.8
 -man_MANS += mtracebis.8
 +man_MANS += $(MANPAGE_BUILDDIR)/pimd.8
++man_MANS += $(MANPAGE_BUILDDIR)/mtracebis.8
  endif
  
  if BGPD
@@@ -62,165 -156,39 +63,166 @@@ man_MANS += $(MANPAGE_BUILDDIR)/zebra.
  endif
  
  if EIGRPD
 -man_MANS += eigrpd.8
 +man_MANS += $(MANPAGE_BUILDDIR)/eigrpd.8
  endif
  
 -EXTRA_DIST = BGP-TypeCode draft-zebra-00.ms draft-zebra-00.txt \
 -      \
 -      bgpd.8.in \
 -      isisd.8.in \
 -      ospf6d.8.in \
 -      ospfclient.8.in \
 -      ospfd.8.in \
 -      ldpd.8.in \
 -      ripd.8.in \
 -      ripngd.8.in \
 -      pimd.8.in \
 -      mtracebis.8.in \
 -      nhrpd.8.in \
 -      vtysh.1.in \
 -      watchfrr.8.in \
 -      zebra.8.in \
 -      frr.1.in \
 -      eigrpd.8.in \
 -      \
 -      mpls/ChangeLog.opaque.txt mpls/cli_summary.txt \
 -      mpls/opaque_lsa.txt mpls/ospfd.conf \
 -      $(figures_sources) $(figures_png) $(figures_txt)
 -
 -draft-zebra-00.txt: draft-zebra-00.ms
 -      groff -T ascii -ms $< > $@
 -
 -# Ensure that all of the figures are copied into the html directory
 -html-local: $(HTMLS)
 -      if test -d $(HTMLS) ; then \
 -              cp -p $(figures_png) $(HTMLS) ; \
 -      else \
 -              echo "$(HTMLS) is not a directory. Make it so, the rerun make."; \
 -      fi
 +# handled by subdir target
 +man: ;
 +
 +# explicit targets
 +frr.info:
 +      $(MAKE) -C user info
 +
 +user.pdf:
 +      $(MAKE) -C user latexpdf
 +
 +user.html:
 +      $(MAKE) -C user html
 +
 +developer.pdf:
 +      $(MAKE) -C developer latexpdf
 +
 +developer.html:
 +      $(MAKE) -C developer html
 +
 +# info target, handled by automake installation
 +install-data-local: frr.info
 +      install -d ${DESTDIR}${infodir}
 +      gzip < user/_build/texinfo/frr.info > ${DESTDIR}${infodir}/frr.info.gz
 +      install-info user/_build/texinfo/frr.info ${DESTDIR}${infodir}/dir
 +
 +# include sources for shipped docs
 +EXTRA_DIST = manpages/defines.rst \
 +      manpages/ldpd.rst \
 +      manpages/index.rst \
 +      manpages/bgpd.rst \
 +      manpages/watchfrr.rst \
 +      manpages/ospfclient.rst \
 +      manpages/ripd.rst \
 +      manpages/zebra.rst \
 +      manpages/epilogue.rst \
 +      manpages/eigrpd.rst \
 +      manpages/isisd.rst \
 +      manpages/ospf6d.rst \
 +      manpages/common-options.rst \
 +      manpages/ospfd.rst \
 +      manpages/vtysh.rst \
 +      manpages/nhrpd.rst \
 +      manpages/pimd.rst \
++      manpages/mtracebis.rst \
 +      manpages/ripngd.rst \
 +      manpages/frr.rst \
 +      manpages/conf.py \
 +      manpages/Makefile \
 +      developer/Building_FRR_on_NetBSD7.rst \
 +      developer/ldpd-basic-test-setup.md \
 +      developer/cli.rst \
 +      developer/index.rst \
 +      developer/library.rst \
 +      developer/memtypes.rst \
 +      developer/bgpd.rst \
 +      developer/draft-zebra-00.ms \
 +      developer/dev-modules.md \
 +      developer/conf.py \
 +      developer/next-hop-tracking.rst \
 +      developer/Building_FRR_on_FreeBSD11.rst \
 +      developer/building.rst \
 +      developer/Building_FRR_on_CentOS6.rst \
 +      developer/Building_FRR_on_Ubuntu1604.rst \
 +      developer/ospf-api.rst \
 +      developer/ospf-sr.rst \
 +      developer/Building_FRR_on_OpenBSD6.rst \
 +      developer/Building_FRR_on_Debian8.rst \
 +      developer/Building_FRR_on_NetBSD6.rst \
 +      developer/Building_FRR_on_Debian9.rst \
 +      developer/Building_FRR_on_LEDE-OpenWRT.rst \
 +      developer/modules.rst \
 +      developer/Building_FRR_on_FreeBSD10.rst \
 +      developer/Building_FRR_on_Ubuntu1204.rst \
 +      developer/Building_FRR_on_Fedora24.rst \
 +      developer/Makefile \
 +      developer/Building_FRR_on_FreeBSD9.rst \
 +      developer/BGP-TypeCode \
 +      developer/Building_FRR_on_OmniOS.rst \
 +      developer/Building_FRR_on_CentOS7.rst \
 +      developer/hooks.rst \
 +      developer/OSPF-API.md \
 +      developer/workflow.rst \
 +      developer/Building_FRR_on_Ubuntu1404.rst \
 +      user/ospf_fundamentals.rst \
 +      user/routemap.rst \
 +      user/index.rst \
 +      user/conf.py \
 +      user/ipv6.rst \
 +      user/ripd.rst \
 +      user/vnc.rst \
 +      user/zebra.rst \
 +      user/installation.rst \
 +      user/overview.rst \
 +      user/protocol.rst \
 +      user/eigrpd.rst \
 +      user/rpki.rst \
 +      user/kernel.rst \
 +      user/isisd.rst \
 +      user/ospf6d.rst \
 +      user/Useful_Sysctl_Settings.md \
 +      user/basic.rst \
 +      user/ospfd.rst \
 +      user/vtysh.rst \
 +      user/filter.rst \
 +      user/nhrpd.rst \
 +      user/Makefile \
 +      user/routeserver.rst \
 +      user/appendix.rst \
 +      user/bgp.rst \
 +      user/babeld.rst \
 +      user/snmp.rst \
 +      user/pim.rst \
 +      user/ripngd.rst \
 +      user/snmptrap.rst \
 +      user/glossary.rst \
 +      mpls/ChangeLog.opaque.txt \
 +      mpls/ospfd.conf \
 +      mpls/cli_summary.txt \
 +      mpls/opaque_lsa.txt \
 +      figures/frr-logo.png \
 +      figures/fig-vnc-commercial-route-reflector.dia \
 +      figures/ospf_api_msghdr.png \
 +      figures/fig-normal-processing.txt \
 +      figures/fig-vnc-gw-rr.txt \
 +      figures/fig-vnc-mesh.dia \
 +      figures/frr-logo-medium.png \
 +      figures/git_branches.svg \
 +      figures/fig-vnc-commercial-route-reflector.txt \
 +      figures/fig_topologies_rs.txt \
 +      figures/git_branches.png \
 +      figures/fig-vnc-mesh.txt \
 +      figures/ospf_api_msgs1.png \
 +      figures/fig-vnc-redundant-route-reflectors.txt \
 +      figures/fig-vnc-commercial-route-reflector.png \
 +      figures/fig-vnc-gw.png \
 +      figures/fig_topologies_rs.png \
 +      figures/fig_topologies_full.txt \
 +      figures/fig-vnc-frr-route-reflector.txt \
 +      figures/fig-normal-processing.dia \
 +      figures/fig-vnc-redundant-route-reflectors.png \
 +      figures/fig-vnc-frr-route-reflector.dia \
 +      figures/fig_topologies_full.png \
 +      figures/fig-vnc-redundant-route-reflectors.dia \
 +      figures/fig-normal-processing.png \
 +      figures/fig-rs-processing.dia \
 +      figures/ospf_api_msgs2.png \
 +      figures/fig-vnc-gw.dia \
 +      figures/fig-rs-processing.txt \
 +      figures/frr-logo-icon.png \
 +      figures/ospf_api_architecture.png \
 +      figures/fig-vnc-gw.txt \
 +      figures/fig-rs-processing.png \
 +      figures/frr-icon.svg \
 +      figures/fig_topologies_rs.dia \
 +      figures/fig-vnc-frr-route-reflector.png \
 +      figures/fig-vnc-gw-rr.png \
 +      figures/fig-vnc-gw-rr.dia \
 +      figures/fig_topologies_full.dia \
 +      figures/frr-logo-small.png \
 +      figures/fig-vnc-mesh.png
index 4877c62636b1c630544631c75179c2de4ed16fab,0000000000000000000000000000000000000000..9807543e170fe3d8d19824ca0c33fc4604294d83
mode 100644,000000..100644
--- /dev/null
@@@ -1,168 -1,0 +1,169 @@@
-       perl-XML-LibXML python-devel python-sphinx
 +CentOS 7
 +========================================
 +
 +(As an alternative to this installation, you may prefer to create a FRR
 +rpm package yourself and install that package instead. See instructions
 +in redhat/README.rpm\_build.md on how to build a rpm package)
 +
 +CentOS 7 restrictions:
 +----------------------
 +
 +-  MPLS is not supported on ``CentOS 7`` with default kernel. MPLS
 +   requires Linux Kernel 4.5 or higher (LDP can be built, but may have
 +   limited use without MPLS)
 +
 +Install required packages
 +-------------------------
 +
 +Add packages:
 +
 +::
 +
 +    sudo yum install git autoconf automake libtool make gawk \
 +      readline-devel texinfo net-snmp-devel groff pkgconfig \
 +      json-c-devel pam-devel bison flex pytest c-ares-devel \
++      perl-XML-LibXML python-devel systemd-devel python-sphinx
 +
 +Get FRR, compile it and install it (from Git)
 +---------------------------------------------
 +
 +**This assumes you want to build and install FRR from source and not
 +using any packages**
 +
 +Add frr groups and user
 +~~~~~~~~~~~~~~~~~~~~~~~
 +
 +::
 +
 +    sudo groupadd -g 92 frr
 +    sudo groupadd -r -g 85 frrvt
 +    sudo useradd -u 92 -g 92 -M -r -G frrvt -s /sbin/nologin \
 +      -c "FRR FRRouting suite" -d /var/run/frr frr
 +
 +Download Source, configure and compile it
 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +(You may prefer different options on configure statement. These are just
 +an example.)
 +
 +::
 +
 +    git clone https://github.com/frrouting/frr.git frr
 +    cd frr
 +    ./bootstrap.sh
 +    ./configure \
 +        --bindir=/usr/bin \
 +        --sbindir=/usr/lib/frr \
 +        --sysconfdir=/etc/frr \
 +        --libdir=/usr/lib/frr \
 +        --libexecdir=/usr/lib/frr \
 +        --localstatedir=/var/run/frr \
 +        --with-moduledir=/usr/lib/frr/modules \
 +        --enable-pimd \
 +        --enable-snmp=agentx \
 +        --enable-multipath=64 \
 +        --enable-ospfclient=yes \
 +        --enable-ospfapi=yes \
 +        --enable-user=frr \
 +        --enable-group=frr \
 +        --enable-vty-group=frrvt \
 +        --enable-rtadv \
++      --enable-systemd=yes \
 +        --disable-exampledir \
 +        --enable-watchfrr \
 +        --disable-ldpd \
 +        --enable-fpm \
 +        --enable-nhrpd \
 +        --enable-eigrpd \
 +        --enable-babeld \
 +        --with-pkg-git-version \
 +        --with-pkg-extra-version=-MyOwnFRRVersion
 +    make
 +    make check
 +    sudo make install
 +
 +Create empty FRR configuration files
 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +::
 +
 +    sudo mkdir /var/log/frr
 +    sudo mkdir /etc/frr
 +    sudo touch /etc/frr/zebra.conf
 +    sudo touch /etc/frr/bgpd.conf
 +    sudo touch /etc/frr/ospfd.conf
 +    sudo touch /etc/frr/ospf6d.conf
 +    sudo touch /etc/frr/isisd.conf
 +    sudo touch /etc/frr/ripd.conf
 +    sudo touch /etc/frr/ripngd.conf
 +    sudo touch /etc/frr/pimd.conf
 +    sudo touch /etc/frr/nhrpd.conf
 +    sudo touch /etc/frr/eigrpd.conf
 +    sudo touch /etc/frr/babeld.conf
 +    sudo chown -R frr:frr /etc/frr/
 +    sudo touch /etc/frr/vtysh.conf
 +    sudo chown frr:frrvt /etc/frr/vtysh.conf
 +    sudo chmod 640 /etc/frr/*.conf
 +
 +Install daemon config file
 +~~~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +::
 +
 +    sudo install -p -m 644 redhat/daemons /etc/frr/
 +    sudo chown frr:frr /etc/frr/daemons
 +
 +Edit /etc/frr/daemons as needed to select the required daemons
 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +Look for the section with ``watchfrr_enable=...`` and ``zebra=...`` etc.
 +Enable the daemons as required by changing the value to ``yes``
 +
 +Enable IP & IPv6 forwarding
 +~~~~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +Create a new file ``/etc/sysctl.d/90-routing-sysctl.conf`` with the
 +following content:
 +
 +::
 +
 +    # Sysctl for routing
 +    #
 +    # Routing: We need to forward packets
 +    net.ipv4.conf.all.forwarding=1
 +    net.ipv6.conf.all.forwarding=1
 +
 +Load the modifed sysctl's on the system:
 +
 +::
 +
 +    sudo sysctl -p /etc/sysctl.d/90-routing-sysctl.conf
 +
 +Install frr Service and redhat init files
 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +::
 +
 +    sudo install -p -m 644 redhat/frr.service /usr/lib/systemd/system/frr.service
 +    sudo install -p -m 755 redhat/frr.init /usr/lib/frr/frr
 +
 +Register the systemd files
 +~~~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +::
 +
 +    sudo systemctl preset frr.service
 +
 +Enable required frr at startup
 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +::
 +
 +    sudo systemctl enable frr
 +
 +Reboot or start FRR manually
 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +::
 +
 +    sudo systemctl start frr
index 6da6ebff0a603e068f5f82b85e24887997e9fd24,0000000000000000000000000000000000000000..2d6fbe8503632c33bc7abc2d8e5fa740fcc57ee6
mode 100644,000000..100644
--- /dev/null
@@@ -1,347 -1,0 +1,348 @@@
 +# -*- coding: utf-8 -*-
 +#
 +# FRR documentation build configuration file, created by
 +# sphinx-quickstart on Tue Jan 31 16:00:52 2017.
 +#
 +# This file is execfile()d with the current directory set to its
 +# containing dir.
 +#
 +# Note that not all possible configuration values are present in this
 +# autogenerated file.
 +#
 +# All configuration values have a default; values that are commented out
 +# serve to show the default.
 +
 +import sys
 +import os
 +import re
 +
 +# If extensions (or modules to document with autodoc) are in another directory,
 +# add these directories to sys.path here. If the directory is relative to the
 +# documentation root, use os.path.abspath to make it absolute, like shown here.
 +#sys.path.insert(0, os.path.abspath('.'))
 +
 +# -- General configuration ------------------------------------------------
 +
 +# If your documentation needs a minimal Sphinx version, state it here.
 +needs_sphinx = '1.0'
 +
 +# prolog for various variable substitutions
 +rst_prolog = ''
 +
 +# Add any Sphinx extension module names here, as strings. They can be
 +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
 +# ones.
 +extensions = ['sphinx.ext.todo']
 +
 +# Add any paths that contain templates here, relative to this directory.
 +templates_path = ['_templates']
 +
 +# The suffix(es) of source filenames.
 +# You can specify multiple suffix as a list of string:
 +# source_suffix = ['.rst']
 +source_suffix = '.rst'
 +
 +# The encoding of source files.
 +#source_encoding = 'utf-8-sig'
 +
 +# The master toctree document.
 +master_doc = 'index'
 +
 +# General information about the project.
 +project = u'FRR'
 +copyright = u'2017, FRR'
 +author = u'Kunihiro Ishiguro, et al.'
 +
 +# The version info for the project you're documenting, acts as replacement for
 +# |version| and |release|, also used in various other places throughout the
 +# built documents.
 +
 +# The short X.Y version.
 +version = u'?.?'
 +# The full version, including alpha/beta/rc tags.
 +release = u'?.?-?'
 +
 +
 +# -----------------------------------------------------------------------------
 +# Extract values from codebase for substitution into docs.
 +# -----------------------------------------------------------------------------
 +
 +# Various installation prefixes. Reasonable defaults are set where possible.
 +# Values are overridden by logic below.
 +replace_vars = {
 +    'AUTHORS': author,
 +    'COPYRIGHT_YEAR': '1999-2005',
 +    'COPYRIGHT_STR': None,
 +    'PACKAGE_NAME': project.lower(),
 +    'PACKAGE_TARNAME': project.lower(),
 +    'PACKAGE_STRING': None,
 +    'PACKAGE_URL': 'https://frrouting.org/',
 +    'PACKAGE_VERSION': None,
 +    'INSTALL_PREFIX_ETC': None,
 +    'INSTALL_PREFIX_SBIN': None,
 +    'INSTALL_PREFIX_STATE': None,
 +    'INSTALL_PREFIX_MODULES': None,
 +    'INSTALL_USER': None,
 +    'INSTALL_GROUP': None,
 +    'INSTALL_VTY_GROUP': None,
 +    'GROUP': 'frr',
 +    'USER': 'frr',
 +}
 +
 +# extract version information, installation location, other stuff we need to
 +# use when building final documents
 +val = re.compile('^S\["([^"]+)"\]="(.*)"$')
 +with open('../../config.status', 'r') as cfgstatus:
 +    for ln in cfgstatus.readlines():
 +        m = val.match(ln)
 +        if not m or m.group(1) not in replace_vars.keys(): continue
 +        replace_vars[m.group(1)] = m.group(2)
 +
 +# manually fill out some of these we can't get from config.status
 +replace_vars['COPYRIGHT_STR'] = "Copyright (c)"
 +replace_vars['COPYRIGHT_STR'] += ' {0}'.format(replace_vars['COPYRIGHT_YEAR'])
 +replace_vars['COPYRIGHT_STR'] += ' {0}'.format(replace_vars['AUTHORS'])
 +release = replace_vars['PACKAGE_VERSION']
 +version = release.split('-')[0]
 +
 +# add substitutions to prolog
 +for key, value in replace_vars.items():
 +    rst_prolog += '.. |{0}| replace:: {1}\n'.format(key, value)
 +
 +
 +# The language for content autogenerated by Sphinx. Refer to documentation
 +# for a list of supported languages.
 +#
 +# This is also used if you do content translation via gettext catalogs.
 +# Usually you set "language" from the command line for these cases.
 +language = None
 +
 +# There are two options for replacing |today|: either, you set today to some
 +# non-false value, then it is used:
 +#today = ''
 +# Else, today_fmt is used as the format for a strftime call.
 +#today_fmt = '%B %d, %Y'
 +
 +# List of patterns, relative to source directory, that match files and
 +# directories to ignore when looking for source files.
 +exclude_patterns = ['_build', 'common-options.rst', 'epilogue.rst', 'defines.rst']
 +
 +# The reST default role (used for this markup: `text`) to use for all
 +# documents.
 +#default_role = None
 +
 +# If true, '()' will be appended to :func: etc. cross-reference text.
 +#add_function_parentheses = True
 +
 +# If true, the current module name will be prepended to all description
 +# unit titles (such as .. function::).
 +#add_module_names = True
 +
 +# If true, sectionauthor and moduleauthor directives will be shown in the
 +# output. They are ignored by default.
 +#show_authors = False
 +
 +# The name of the Pygments (syntax highlighting) style to use.
 +pygments_style = 'sphinx'
 +
 +# A list of ignored prefixes for module index sorting.
 +#modindex_common_prefix = []
 +
 +# If true, keep warnings as "system message" paragraphs in the built documents.
 +#keep_warnings = False
 +
 +# If true, `todo` and `todoList` produce output, else they produce nothing.
 +todo_include_todos = True
 +
 +
 +# -- Options for HTML output ----------------------------------------------
 +
 +# The theme to use for HTML and HTML Help pages.  See the documentation for
 +# a list of builtin themes.
 +html_theme = 'sphinx_rtd_theme'
 +
 +# Theme options are theme-specific and customize the look and feel of a theme
 +# further.  For a list of options available for each theme, see the
 +# documentation.
 +#html_theme_options = {}
 +
 +# Add any paths that contain custom themes here, relative to this directory.
 +#html_theme_path = []
 +
 +# The name for this set of Sphinx documents.  If None, it defaults to
 +# "<project> v<release> documentation".
 +#html_title = None
 +
 +# A shorter title for the navigation bar.  Default is the same as html_title.
 +#html_short_title = None
 +
 +# The name of an image file (relative to this directory) to place at the top
 +# of the sidebar.
 +#html_logo = None
 +
 +# The name of an image file (within the static path) to use as favicon of the
 +# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
 +# pixels large.
 +#html_favicon = None
 +
 +# Add any paths that contain custom static files (such as style sheets) here,
 +# relative to this directory. They are copied after the builtin static files,
 +# so a file named "default.css" will overwrite the builtin "default.css".
 +html_static_path = ['_static']
 +
 +# Add any extra paths that contain custom files (such as robots.txt or
 +# .htaccess) here, relative to this directory. These files are copied
 +# directly to the root of the documentation.
 +#html_extra_path = []
 +
 +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
 +# using the given strftime format.
 +#html_last_updated_fmt = '%b %d, %Y'
 +
 +# If true, SmartyPants will be used to convert quotes and dashes to
 +# typographically correct entities.
 +#html_use_smartypants = True
 +
 +# Custom sidebar templates, maps document names to template names.
 +#html_sidebars = {}
 +
 +# Additional templates that should be rendered to pages, maps page names to
 +# template names.
 +#html_additional_pages = {}
 +
 +# If false, no module index is generated.
 +#html_domain_indices = True
 +
 +# If false, no index is generated.
 +#html_use_index = True
 +
 +# If true, the index is split into individual pages for each letter.
 +#html_split_index = False
 +
 +# If true, links to the reST sources are added to the pages.
 +#html_show_sourcelink = True
 +
 +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
 +#html_show_sphinx = True
 +
 +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
 +#html_show_copyright = True
 +
 +# If true, an OpenSearch description file will be output, and all pages will
 +# contain a <link> tag referring to it.  The value of this option must be the
 +# base URL from which the finished HTML is served.
 +#html_use_opensearch = ''
 +
 +# This is the file name suffix for HTML files (e.g. ".xhtml").
 +#html_file_suffix = None
 +
 +# Language to be used for generating the HTML full-text search index.
 +# Sphinx supports the following languages:
 +#   'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja'
 +#   'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr'
 +#html_search_language = 'en'
 +
 +# A dictionary with options for the search language support, empty by default.
 +# Now only 'ja' uses this config value
 +#html_search_options = {'type': 'default'}
 +
 +# The name of a javascript file (relative to the configuration directory) that
 +# implements a search results scorer. If empty, the default will be used.
 +#html_search_scorer = 'scorer.js'
 +
 +# Output file base name for HTML help builder.
 +htmlhelp_basename = 'FRRdoc'
 +
 +# -- Options for LaTeX output ---------------------------------------------
 +
 +latex_elements = {
 +# The paper size ('letterpaper' or 'a4paper').
 +#'papersize': 'letterpaper',
 +
 +# The font size ('10pt', '11pt' or '12pt').
 +#'pointsize': '10pt',
 +
 +# Additional stuff for the LaTeX preamble.
 +#'preamble': '',
 +
 +# Latex figure (float) alignment
 +#'figure_align': 'htbp',
 +}
 +
 +# Grouping the document tree into LaTeX files. List of tuples
 +# (source start file, target name, title,
 +#  author, documentclass [howto, manual, or own class]).
 +latex_documents = [
 +    (master_doc, 'FRR.tex', u'FRR User Manual',
 +     u'FRR', 'manual'),
 +]
 +
 +# The name of an image file (relative to this directory) to place at the top of
 +# the title page.
 +#latex_logo = None
 +
 +# For "manual" documents, if this is true, then toplevel headings are parts,
 +# not chapters.
 +#latex_use_parts = False
 +
 +# If true, show page references after internal links.
 +#latex_show_pagerefs = False
 +
 +# If true, show URL addresses after external links.
 +#latex_show_urls = False
 +
 +# Documents to append as an appendix to all manuals.
 +#latex_appendices = []
 +
 +# If false, no module index is generated.
 +#latex_domain_indices = True
 +
 +
 +# -- Options for manual page output ---------------------------------------
 +
 +# One entry per manual page. List of tuples
 +# (source start file, name, description, authors, manual section).
 +
 +# If true, show URL addresses after external links.
 +#man_show_urls = False
 +
 +fwfrr = "{0} routing engine for use with FRRouting."
 +
 +man_pages = [
 +    ('bgpd', 'bgpd', fwfrr.format("a BGPv4, BGPv4+, BGPv4- "), [], 8),
 +    ('eigrpd', 'eigrpd', fwfrr.format("an EIGRP "), [], 8),
 +    ('ospf6d', 'ospf6d', fwfrr.format("an OSPFv3 "), [], 8),
 +    ('ospfd', 'ospfd', fwfrr.format("an OSPFv2 "), [], 8),
 +    ('isisd', 'isisd', fwfrr.format("an IS-IS "), [], 8),
 +    ('ospfclient', 'ospfclient', 'an example ospf-api client', [], 8),
 +    ('ldpd', 'ldpd', fwfrr.format("an LDP "), [], 8),
 +    ('nhrpd', 'nhrpd', fwfrr.format("a Next Hop Routing Protocol "), [], 8),
 +    ('pimd', 'pimd', fwfrr.format("a PIM "), [], 8),
++    ('mtracebis', 'mtracebis', "a multicast trace client", [], 8),
 +    ('ripd', 'ripd', fwfrr.format("a RIP "), [], 8),
 +    ('ripngd', 'ripngd', fwfrr.format("a RIPNG "), [], 8),
 +    ('zebra', 'zebra', 'a routing manager for use with associated FRRouting components.', [], 8),
 +    ('watchfrr', 'watchfrr', 'a program to monitor the status of FRRouting daemons', [], 8),
 +    ('vtysh', 'vtysh', 'an integrated shell for FRRouting.', [], 1),
 +    ('frr', 'frr', 'a systemd interaction script', [], 1),
 +]
 +
 +# -- Options for Texinfo output -------------------------------------------
 +
 +# Grouping the document tree into Texinfo files. List of tuples
 +# (source start file, target name, title, author,
 +#  dir menu entry, description, category)
 +
 +# Documents to append as an appendix to all manuals.
 +#texinfo_appendices = []
 +
 +# If false, no module index is generated.
 +#texinfo_domain_indices = True
 +
 +# How to display URL addresses: 'footnote', 'no', or 'inline'.
 +#texinfo_show_urls = 'footnote'
 +
 +# If true, do not generate a @detailmenu in the "Top" node's menu.
 +#texinfo_no_detailmenu = False
 +
 +# custom extensions here
index 4b66d71b443e900d87d9d765fcd25e115be54595,0000000000000000000000000000000000000000..841abe300e49ae57ff2756f4f223e1742e972d8a
mode 100644,000000..100644
--- /dev/null
@@@ -1,3 -1,0 +1,3 @@@
- .. |seealso-programs| replace:: zebra(8), vtysh(1), ripd(8), ripngd(8), ospfd(8), ospf6d(8), bgpd(8), isisd(8), babeld(8), nhrpd(8), pimd(8), ldpd(8), eigrpd(8)
 +.. |synopsis-options| replace:: [-d|-t|-dt] [-C] [-f config-file] [-i pid-file] [-z zclient-path] [-u user] [-g group] [-A vty-addr] [-P vty-port] [-M module[:options]] [-N pathspace] [--vty_socket vty-path] [--moduledir module-path]
 +.. |synopsis-options-hv| replace:: [-h] [-v]
++.. |seealso-programs| replace:: zebra(8), vtysh(1), ripd(8), ripngd(8), ospfd(8), ospf6d(8), bgpd(8), isisd(8), babeld(8), nhrpd(8), pimd(8), ldpd(8), eigrpd(8), mtracebis(8)
index a4c1b897e38c5ab0903c3e4e2cae4a3da18d28dd,0000000000000000000000000000000000000000..77fed819990d3e48cc097cbd75c37bfa159d09b0
mode 100644,000000..100644
--- /dev/null
@@@ -1,16 -1,0 +1,16 @@@
- zebra(8), vtysh(1), ripd(8), ripngd(8), ospfd(8), ospf6d(8), bgpd(8), isisd(8), babeld(8), nhrpd(8), pimd(8), ldpd(8), eigrpd(8)
 +WARNING
 +=======
 +This man page is intended to be a quick reference for command line options. The definitive document is the info file |PACKAGE_STRING| or the documentation available on the project website at |PACKAGE_URL|.
 +
 +DIAGNOSTICS
 +===========
 +The daemon may log to standard output, to a VTY, to a log file, or through syslog to the system logs. FRR supports many debugging options, see the Info file, web docs or source for details.
 +
 +SEE ALSO
 +========
++|seealso-programs|
 +|PACKAGE_URL|
 +
 +BUGS
 +====
 +FRR eats bugs for breakfast. If you have food for the maintainers, please email <dev@lists.frrouting.org>.
index 37b90ac93bcb8f781c9f6bd06b19b1deafeec977,0000000000000000000000000000000000000000..3d3479afa205c34610dde3cb503f9d42ceeae729
mode 100644,000000..100644
--- /dev/null
@@@ -1,42 -1,0 +1,44 @@@
 +***
 +FRR
 +***
 +
++.. include:: defines.rst
++
 +SYNOPSIS
 +========
 +frr [ start ]
 +
 +frr [ stop ]
 +
 +frr [ reload ]
 +
 +frr [ restart ]
 +
 +frr [ status ]
 +
 +
 +DESCRIPTION
 +===========
 +frr is a systemd interaction script for the FRRouting routing engine.
 +
 +OPTIONS
 +=======
 +Options available for the frr command:
 +
 +start
 +   Start enabled FRR daemons
 +
 +stop
 +   Stop enabled FRR daemons
 +
 +reload
 +   Reload modified configuration files
 +
 +restart
 +   Stop all running daemons and then restart them
 +
 +status
 +   Status of all the daemon
 +
 +.. include:: epilogue.rst
 +
index a909e094d2053834f00afd4e55b2f80ce220e499,0000000000000000000000000000000000000000..ae5c4ca3bd11dfca5a503912cb5077d2bd079cc2
mode 100644,000000..100644
--- /dev/null
@@@ -1,26 -1,0 +1,27 @@@
 +.. FRR documentation master file, created by
 +   sphinx-quickstart on Wed Jan 31 12:00:55 2018.
 +   You can adapt this file completely to your liking, but it should at least
 +   contain the root `toctree` directive.
 +
 +Welcome to FRR's documentation!
 +===============================
 +
 +.. toctree::
 +   :maxdepth: 2
 +
 +   bgpd
 +   eigrpd
 +   isisd
 +   ldpd
 +   nhrpd
 +   ospf6d
 +   ospfclient
 +   ospfd
 +   pimd
++   mtracebis
 +   ripd
 +   ripngd
 +   watchfrr
 +   zebra
 +   vtysh
 +   frr
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b4d57c1b972eb947195239348790cd4cefbce907
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,39 @@@
++*********
++MTRACEBIS
++*********
++
++.. include:: defines.rst
++.. |PROGRAM| replace:: mtracebis
++
++SYNOPSIS
++========
++|PROGRAM| |synopsis-options-hv|
++
++|PROGRAM| <multicast source>
++
++DESCRIPTION
++===========
++|PROGRAM| is a program to initiate multicast traceroute, or "mtrace", queries.
++
++The initial version of the program requires multicast source IP address and
++initiates a weak traceroute across the network. This tests whether the
++interfaces towards the source are multicast enabled. The first query sent is a
++full query, capable of crossing the network all the way to the source. If this
++fails, hop-by-hop queries are initiated.
++
++Hop-by-hop queries start by requesting only a response from the nearest router.
++Following that, next query is extended to the next two routers, and so on...
++until a set of routers is tested for connectivity.
++
++FILES
++=====
++
++|INSTALL_PREFIX_SBIN|/|PROGRAM|
++   The default location of the |PROGRAM| binary.
++
++.. include:: epilogue.rst
++
++AUTHORS
++=======
++
++Mladen Sablic
index 573a75f6a7193cd9f0f10b4cabe3b038299a59fa,0000000000000000000000000000000000000000..c52b108767b6320391c70145c55c947f7e2f2d65
mode 100644,000000..100644
--- /dev/null
@@@ -1,41 -1,0 +1,43 @@@
 +**********
 +OSPFCLIENT
 +**********
 +
++.. include:: defines.rst
++
 +SYNOPSIS
 +========
 +ospfclient <ospfd> <lsatype> <opaquetype> <opaqueid> <ifaddr> <areaid>
 +
 +DESCRIPTION
 +===========
 +ospfclient is an example ospf-api client to test the ospfd daemon.
 +
 +OPTIONS
 +=======
 +
 +.. option:: ospfd
 +
 +   A router where the API-enabled OSPF daemon is running.
 +
 +.. option:: lsatype
 +
 +   The value has to be either "9", "10", or "11", depending on the flooding scope.
 +
 +.. option:: opaquetype
 +
 +   The value has to be in the range of 0-255 (for example, experimental applications might use opaquetype larger than 128).
 +
 +.. option:: opaqueid
 +
 +   Arbitrary application instance (24 bits).
 +
 +.. option:: ifaddr
 +
 +   Interface IP address for type 9, otherwise it will be ignored.
 +
 +.. option:: areaid
 +
 +   Area in the IP address format for type 10, otherwise it will be ignored.
 +
 +
 +.. include:: epilogue.rst
index 268b1d8645c9957152f24edbf1c2bbb8517e173a,0000000000000000000000000000000000000000..4ddf9899513aac75ac26168fc98f1274d0ce8f7e
mode 100644,000000..100644
--- /dev/null
@@@ -1,54 -1,0 +1,59 @@@
 +*****
 +ZEBRA
 +*****
 +
 +.. include:: defines.rst
 +.. |DAEMON| replace:: zebra
 +
 +SYNOPSIS
 +========
 +|DAEMON| |synopsis-options-hv|
 +
 +|DAEMON| |synopsis-options|
 +
 +DESCRIPTION
 +===========
 +|DAEMON| is a routing manager that implements the zebra route engine. zebra supports all protocol daemons in the FRRouting suite.
 +
 +OPTIONS
 +=======
 +OPTIONS available for the |DAEMON| command:
 +
 +.. include:: common-options.rst
 +
 +.. option:: -b, --batch
 +
 +   Runs in batch mode, zebra parses its config and exits.
 +
 +.. option:: -k, --keep_kernel
 +
 +   On startup, don't delete self inserted routes.
 +
 +.. option:: -s, --nl-bufsize <netlink-buffer-size>
 +
 +   Set netlink receive buffer size. There are cases where zebra daemon can't handle flood of netlink messages from kernel. If you ever see "recvmsg overrun" messages in zebra log, you are in trouble.
 +
 +   Solution is to increase receive buffer of netlink socket. Note that kernel < 2.6.14 doesn't allow to increase it over maximum value defined in /proc/sys/net/core/rmem_max. If you want to do it, you have to increase maximum before starting zebra.
 +
 +   Note that this affects Linux only.
 +
++
++.. option:: -n, --vrfwnetns
++
++   Enable namespace VRF backend. By default, the VRF backend relies on VRF-lite support from the Linux kernel. This option permits discovering Linux named network namespaces and mapping it to FRR VRF contexts.
++
 +FILES
 +=====
 +
 +|INSTALL_PREFIX_SBIN|/|DAEMON|
 +   The default location of the |DAEMON| binary.
 +
 +|INSTALL_PREFIX_ETC|/|DAEMON|.conf
 +   The default location of the |DAEMON| config file.
 +
 +$(PWD)/|DAEMON|.log
 +   If the |DAEMON| process is configured to output logs to a file, then you
 +   will find this file in the directory where you started |DAEMON|.
 +
 +.. include:: epilogue.rst
 +