summaryrefslogtreecommitdiffstats
path: root/doc/manpages
diff options
context:
space:
mode:
Diffstat (limited to 'doc/manpages')
-rw-r--r--doc/manpages/.gitignore3
-rw-r--r--doc/manpages/Makefile218
-rw-r--r--doc/manpages/bgpd.rst38
-rw-r--r--doc/manpages/common-options.rst165
-rw-r--r--doc/manpages/conf.py348
-rw-r--r--doc/manpages/defines.rst3
-rw-r--r--doc/manpages/eigrpd.rst38
-rw-r--r--doc/manpages/epilogue.rst16
-rw-r--r--doc/manpages/frr.rst44
-rw-r--r--doc/manpages/index.rst27
-rw-r--r--doc/manpages/isisd.rst38
-rw-r--r--doc/manpages/ldpd.rst38
-rw-r--r--doc/manpages/mtracebis.rst39
-rw-r--r--doc/manpages/nhrpd.rst38
-rw-r--r--doc/manpages/ospf6d.rst39
-rw-r--r--doc/manpages/ospfclient.rst43
-rw-r--r--doc/manpages/ospfd.rst39
-rw-r--r--doc/manpages/pimd.rst38
-rw-r--r--doc/manpages/ripd.rst38
-rw-r--r--doc/manpages/ripngd.rst38
-rw-r--r--doc/manpages/vtysh.rst72
-rw-r--r--doc/manpages/watchfrr.rst119
-rw-r--r--doc/manpages/zebra.rst59
23 files changed, 1538 insertions, 0 deletions
diff --git a/doc/manpages/.gitignore b/doc/manpages/.gitignore
new file mode 100644
index 000000000..050553715
--- /dev/null
+++ b/doc/manpages/.gitignore
@@ -0,0 +1,3 @@
+/_templates
+/_build
+!/Makefile
diff --git a/doc/manpages/Makefile b/doc/manpages/Makefile
new file mode 100644
index 000000000..3f0c8f55a
--- /dev/null
+++ b/doc/manpages/Makefile
@@ -0,0 +1,218 @@
+# Makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS =
+SPHINXBUILD = sphinx-build
+PAPER =
+BUILDDIR = _build
+
+# User-friendly check for sphinx-build
+ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
+$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
+endif
+
+# Internal variables.
+PAPEROPT_a4 = -D latex_paper_size=a4
+PAPEROPT_letter = -D latex_paper_size=letter
+ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+# the i18n builder cannot share the environment and doctrees with the others
+I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+
+.PHONY: help
+help:
+ @echo "Please use \`make <target>' where <target> is one of"
+ @echo " html to make standalone HTML files"
+ @echo " dirhtml to make HTML files named index.html in directories"
+ @echo " singlehtml to make a single large HTML file"
+ @echo " pickle to make pickle files"
+ @echo " json to make JSON files"
+ @echo " htmlhelp to make HTML files and a HTML help project"
+ @echo " qthelp to make HTML files and a qthelp project"
+ @echo " applehelp to make an Apple Help Book"
+ @echo " devhelp to make HTML files and a Devhelp project"
+ @echo " epub to make an epub"
+ @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+ @echo " latexpdf to make LaTeX files and run them through pdflatex"
+ @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
+ @echo " text to make text files"
+ @echo " man to make manual pages"
+ @echo " texinfo to make Texinfo files"
+ @echo " info to make Texinfo files and run them through makeinfo"
+ @echo " gettext to make PO message catalogs"
+ @echo " changes to make an overview of all changed/added/deprecated items"
+ @echo " xml to make Docutils-native XML files"
+ @echo " pseudoxml to make pseudoxml-XML files for display purposes"
+ @echo " linkcheck to check all external links for integrity"
+ @echo " doctest to run all doctests embedded in the documentation (if enabled)"
+ @echo " coverage to run coverage check of the documentation (if enabled)"
+
+.PHONY: clean
+clean:
+ rm -rf $(BUILDDIR)/*
+
+.PHONY: html
+html:
+ $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
+
+.PHONY: dirhtml
+dirhtml:
+ $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
+
+.PHONY: singlehtml
+singlehtml:
+ $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
+ @echo
+ @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
+
+.PHONY: pickle
+pickle:
+ $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
+ @echo
+ @echo "Build finished; now you can process the pickle files."
+
+.PHONY: json
+json:
+ $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
+ @echo
+ @echo "Build finished; now you can process the JSON files."
+
+.PHONY: htmlhelp
+htmlhelp:
+ $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
+ @echo
+ @echo "Build finished; now you can run HTML Help Workshop with the" \
+ ".hhp project file in $(BUILDDIR)/htmlhelp."
+
+.PHONY: qthelp
+qthelp:
+ $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
+ @echo
+ @echo "Build finished; now you can run "qcollectiongenerator" with the" \
+ ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
+ @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/FRR.qhcp"
+ @echo "To view the help file:"
+ @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/FRR.qhc"
+
+.PHONY: applehelp
+applehelp:
+ $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
+ @echo
+ @echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
+ @echo "N.B. You won't be able to view it unless you put it in" \
+ "~/Library/Documentation/Help or install it in your application" \
+ "bundle."
+
+.PHONY: devhelp
+devhelp:
+ $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
+ @echo
+ @echo "Build finished."
+ @echo "To view the help file:"
+ @echo "# mkdir -p $$HOME/.local/share/devhelp/FRR"
+ @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/FRR"
+ @echo "# devhelp"
+
+.PHONY: epub
+epub:
+ $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
+ @echo
+ @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
+
+.PHONY: latex
+latex:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo
+ @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
+ @echo "Run \`make' in that directory to run these through (pdf)latex" \
+ "(use \`make latexpdf' here to do that automatically)."
+
+.PHONY: latexpdf
+latexpdf:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo "Running LaTeX files through pdflatex..."
+ $(MAKE) -C $(BUILDDIR)/latex all-pdf
+ @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+.PHONY: latexpdfja
+latexpdfja:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo "Running LaTeX files through platex and dvipdfmx..."
+ $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
+ @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+.PHONY: text
+text:
+ $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
+ @echo
+ @echo "Build finished. The text files are in $(BUILDDIR)/text."
+
+.PHONY: man
+man:
+ $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
+ @echo
+ @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
+
+.PHONY: texinfo
+texinfo:
+ $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+ @echo
+ @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
+ @echo "Run \`make' in that directory to run these through makeinfo" \
+ "(use \`make info' here to do that automatically)."
+
+.PHONY: info
+info:
+ $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+ @echo "Running Texinfo files through makeinfo..."
+ make -C $(BUILDDIR)/texinfo info
+ @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
+
+.PHONY: gettext
+gettext:
+ $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
+ @echo
+ @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
+
+.PHONY: changes
+changes:
+ $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
+ @echo
+ @echo "The overview file is in $(BUILDDIR)/changes."
+
+.PHONY: linkcheck
+linkcheck:
+ $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
+ @echo
+ @echo "Link check complete; look for any errors in the above output " \
+ "or in $(BUILDDIR)/linkcheck/output.txt."
+
+.PHONY: doctest
+doctest:
+ $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
+ @echo "Testing of doctests in the sources finished, look at the " \
+ "results in $(BUILDDIR)/doctest/output.txt."
+
+.PHONY: coverage
+coverage:
+ $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
+ @echo "Testing of coverage in the sources finished, look at the " \
+ "results in $(BUILDDIR)/coverage/python.txt."
+
+.PHONY: xml
+xml:
+ $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
+ @echo
+ @echo "Build finished. The XML files are in $(BUILDDIR)/xml."
+
+.PHONY: pseudoxml
+pseudoxml:
+ $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
+ @echo
+ @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
+
+%: ;
diff --git a/doc/manpages/bgpd.rst b/doc/manpages/bgpd.rst
new file mode 100644
index 000000000..94213db4d
--- /dev/null
+++ b/doc/manpages/bgpd.rst
@@ -0,0 +1,38 @@
+****
+BGPD
+****
+
+.. include:: defines.rst
+.. |DAEMON| replace:: bgpd
+
+SYNOPSIS
+========
+|DAEMON| |synopsis-options-hv|
+
+|DAEMON| |synopsis-options|
+
+DESCRIPTION
+===========
+|DAEMON| is a routing component that works with the FRRouting routing engine.
+
+OPTIONS
+=======
+OPTIONS available for the |DAEMON| command:
+
+.. include:: common-options.rst
+
+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
+
diff --git a/doc/manpages/common-options.rst b/doc/manpages/common-options.rst
new file mode 100644
index 000000000..5b136f5e1
--- /dev/null
+++ b/doc/manpages/common-options.rst
@@ -0,0 +1,165 @@
+HELP AND VERSION
+----------------
+
+.. option:: -h, --help
+
+ Print a short description of the daemon's command line options.
+
+.. option:: -v, --version
+
+ Print version and build information for the daemon.
+
+Both of these options inhibit normal operation and will immediately exit.
+
+PROCESS CONTROL
+---------------
+These options control background operation:
+
+.. option:: -d, --daemon
+
+ Launches the process in background/daemon mode, forking and detaching from the terminal.
+
+ The parent process will delay its exit until the daemon/child has finished its initialization and has entered its main loop. This is important for zebra startup because the other daemons will attempt to connect to zebra. A return from zebra -d guarantees its readiness to accept these connections.
+
+.. option:: -t, --terminal
+
+ Opens an interactive VTY session on the terminal, allowing for both state and configuration operations. Note that the terminal starts operating after startup has completed and the configuration file has been loaded.
+
+ The process will exit when end of file is detected on the terminal. It is possible to daemonize a process started with -t (but without -d) by sending SIGQUIT to the process (normally mapped to a ^\ keypress.)
+
+
+The combination of :option:`--daemon` and :option:`--terminal` will delay the daemon from going into background until the terminal session ends (by end of file.)
+
+If the process receives SIGINT (e.g. a ^C keypress) in this mode, it will exit instead of daemonizing.
+
+It is safe to suspend (SIGTSTP / ^Z) the terminal session opened by the previous two options; this will only stop the terminal but not the protocol daemon itself (which runs in a separate second process.)
+
+CONFIGURATION AND PATHS
+-----------------------
+The following options control configuration and file system locations for frr processes:
+
+.. option:: -f, --config_file config-file
+
+ Specify a configuration file to be used instead of the default /etc/frr/<daemon>.conf file.
+
+ Note that the daemon will attempt to write to this file if the write file command is issued on its VTY interface or through vtysh.
+
+.. option:: -C, --dryrun
+
+ Load the configuration file and check its validity, then exit.
+
+.. option:: -i, --pid_file pid-file
+
+ Output a pid file to a location other than the default /var/run/frr/<daemon>.pid.
+
+.. option:: -z, --socket zclient-path
+
+ Override the path of the ZAPI socket used to communicate between zebra and the various protocol daemons. The default is /var/run/frr/zserv.api. The value of this option must be the same across all daemons.
+
+.. option:: -N, --pathspace pathspace
+
+ Insert pathspace into all default paths, changing the defaults to:
+
+ /etc/frr/pathspace/<daemon>.conf
+ /var/run/frr/pathspace/<daemon>.pid
+ /var/run/frr/pathspace/<daemon>.vty
+ /var/run/frr/pathspace/zserv.api
+
+ ´.´ and ´/´ characters will not be accepted in pathspace, but the empty string will be accepted.
+
+ Note that this only changes the respective defaults, it has no effect on the respective path if the -f, -i, -z or --vty_socket options are used.
+
+ The purpose of this option is to easily group all file system related bits together for running multiple fully-separate "logical routers" on a system, particularly with Linux network namespaces. Groups of daemons running with distinct pathspace values will be completely unaware of each other and not interact in any way.
+
+ This option does not do any system setup (like network namespaces.) This must be done by the user, for example by running:
+
+ ip netns exec namespace <daemon> -N namespace
+
+
+PROCESS CREDENTIALS
+-------------------
+.. option:: -u, --user user
+
+ (default: frr)
+
+.. option:: -g, --group group
+
+ (default: frr)
+
+ Change the user/group which the daemon will switch to.
+
+.. option:: -S, --skip_runas
+
+ Skip setting the process effective user and group.
+
+
+Note that there is an additional group, frrvty, which controls group ownership of the VTY sockets. The name of this group cannot currently be changed, and user must be a member of this group.
+
+
+VTY SETUP
+---------
+These following options control the daemon's VTY (interactive command line) interface. The interface is available over TCP, using the telnet protocol, as well as through the vtysh frontend.
+
+.. option:: -A, --vty_addr vty-addr
+
+ Specify an IP/IPv6 address to bind the TCP VTY interface to. It is generally recommended to specify ::1 or 127.0.0.1. For reasons of backwards compatibility, the default is to listen on all interfaces.
+
+.. option:: -P, --vty_port vty-port
+
+ Override the daemon's default TCP VTY port (each daemon has a different default value upwards of 2600, listed below.) Specifying 0 disables the TCP VTY interface.
+
+ Default ports are:::
+
+ zebra 2601
+ ripd 2602
+ ripngd 2603
+ ospfd 2604
+ bgpd 2605
+ ospf6d 2606
+ isisd 2608
+ babeld 2609
+ nhrpd 2610
+ pimd 2611
+ ldpd 2612
+ eigrpd 2613
+
+ Port 2607 is used for ospfd's Opaque LSA API, while port 2600 is used for the (insecure) TCP-ZEBRA interface.
+
+.. option:: --vty_socket vty-path
+
+ Overrides the directory used for the <daemon>.vty sockets. vtysh connects to these sockets in order to access each daemon's VTY.
+ Default: /var/run/frr[/<pathspace>]
+
+ NB: Unlike the other options, this option specifies a directory, not a full path.
+
+ This option is primarily used by the SNAP packaging system, its semantics may change. It should not be neccessary in most other scenarios.
+
+MODULE LOADING
+--------------
+frr supports optional dynamically loadable modules, although these can only be loaded at startup. The set of available modules may vary across distributions and packages, and modules may be available for installation as separate packages.
+
+.. option:: -M, --module module[:options]
+
+ Load a module named module, optionally passing options to it.
+
+ If there is a ´/´ character in module, the value is assumed to be a pathname to a module.
+
+ If there is no ´/´ character, the module directory (see next option) is searched first for a module named "<daemon>_<module>.so", then for "<module>.so". This allows for a module to exist in variations appropriate for particular daemons, e.g. zebra_snmp and bgp_snmp, with the correct one selected by -M snmp.
+
+ The meaning of options is specific to the module being loaded. Most modules currently ignore it.
+
+ Modules are loaded in the order as listed on the command line. This is not generally relevant.
+
+.. option:: --moduledir module-path
+
+ Look for modules in the module-path directory instead of the default /usr/lib/frr/modules. (This path is not affected by the -N option.)
+
+The list of loaded modules can be inspected at runtime with the show modules VTY command.
+
+ROUTES
+------
+
+.. option:: -r, --retain
+
+ When the program terminates, retain routes added by the daemon.
+
diff --git a/doc/manpages/conf.py b/doc/manpages/conf.py
new file mode 100644
index 000000000..2d6fbe850
--- /dev/null
+++ b/doc/manpages/conf.py
@@ -0,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
diff --git a/doc/manpages/defines.rst b/doc/manpages/defines.rst
new file mode 100644
index 000000000..841abe300
--- /dev/null
+++ b/doc/manpages/defines.rst
@@ -0,0 +1,3 @@
+.. |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)
diff --git a/doc/manpages/eigrpd.rst b/doc/manpages/eigrpd.rst
new file mode 100644
index 000000000..bc824468d
--- /dev/null
+++ b/doc/manpages/eigrpd.rst
@@ -0,0 +1,38 @@
+******
+EIGRPD
+******
+
+.. include:: defines.rst
+.. |DAEMON| replace:: eigrpd
+
+SYNOPSIS
+========
+|DAEMON| |synopsis-options-hv|
+
+|DAEMON| |synopsis-options|
+
+DESCRIPTION
+===========
+|DAEMON| is a routing component that works with the FRRouting routing engine.
+
+OPTIONS
+=======
+OPTIONS available for the |DAEMON| command:
+
+.. include:: common-options.rst
+
+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
+
diff --git a/doc/manpages/epilogue.rst b/doc/manpages/epilogue.rst
new file mode 100644
index 000000000..77fed8199
--- /dev/null
+++ b/doc/manpages/epilogue.rst
@@ -0,0 +1,16 @@
+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>.
diff --git a/doc/manpages/frr.rst b/doc/manpages/frr.rst
new file mode 100644
index 000000000..3d3479afa
--- /dev/null
+++ b/doc/manpages/frr.rst
@@ -0,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
+
diff --git a/doc/manpages/index.rst b/doc/manpages/index.rst
new file mode 100644
index 000000000..ae5c4ca3b
--- /dev/null
+++ b/doc/manpages/index.rst
@@ -0,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
diff --git a/doc/manpages/isisd.rst b/doc/manpages/isisd.rst
new file mode 100644
index 000000000..68761f642
--- /dev/null
+++ b/doc/manpages/isisd.rst
@@ -0,0 +1,38 @@
+*****
+ISISD
+*****
+
+.. include:: defines.rst
+.. |DAEMON| replace:: isisd
+
+SYNOPSIS
+========
+|DAEMON| |synopsis-options-hv|
+
+|DAEMON| |synopsis-options|
+
+DESCRIPTION
+===========
+|DAEMON| is a routing component that works with the FRRouting routing engine.
+
+OPTIONS
+=======
+OPTIONS available for the |DAEMON| command:
+
+.. include:: common-options.rst
+
+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
+
diff --git a/doc/manpages/ldpd.rst b/doc/manpages/ldpd.rst
new file mode 100644
index 000000000..113f06673
--- /dev/null
+++ b/doc/manpages/ldpd.rst
@@ -0,0 +1,38 @@
+****
+LDPD
+****
+
+.. include:: defines.rst
+.. |DAEMON| replace:: ldpd
+
+SYNOPSIS
+========
+|DAEMON| |synopsis-options-hv|
+
+|DAEMON| |synopsis-options|
+
+DESCRIPTION
+===========
+|DAEMON| is a routing component that works with the FRRouting routing engine.
+
+OPTIONS
+=======
+OPTIONS available for the |DAEMON| command:
+
+.. include:: common-options.rst
+
+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
+
diff --git a/doc/manpages/mtracebis.rst b/doc/manpages/mtracebis.rst
new file mode 100644
index 000000000..b4d57c1b9
--- /dev/null
+++ b/doc/manpages/mtracebis.rst
@@ -0,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
diff --git a/doc/manpages/nhrpd.rst b/doc/manpages/nhrpd.rst
new file mode 100644
index 000000000..cae01c677
--- /dev/null
+++ b/doc/manpages/nhrpd.rst
@@ -0,0 +1,38 @@
+*****
+NHRPD
+*****
+
+.. include:: defines.rst
+.. |DAEMON| replace:: nhrpd
+
+SYNOPSIS
+========
+|DAEMON| |synopsis-options-hv|
+
+|DAEMON| |synopsis-options|
+
+DESCRIPTION
+===========
+|DAEMON| is a routing component that works with the FRRouting routing engine.
+
+OPTIONS
+=======
+OPTIONS available for the |DAEMON| command:
+
+.. include:: common-options.rst
+
+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
+
diff --git a/doc/manpages/ospf6d.rst b/doc/manpages/ospf6d.rst
new file mode 100644
index 000000000..cfc6860d5
--- /dev/null
+++ b/doc/manpages/ospf6d.rst
@@ -0,0 +1,39 @@
+******
+OSPF6D
+******
+
+.. include:: defines.rst
+.. |DAEMON| replace:: ospf6d
+
+SYNOPSIS
+========
+|DAEMON| |synopsis-options-hv|
+
+|DAEMON| |synopsis-options|
+
+
+DESCRIPTION
+===========
+|DAEMON| is a routing component that works with the FRRouting routing engine.
+
+OPTIONS
+=======
+OPTIONS available for the |DAEMON| command:
+
+.. include:: common-options.rst
+
+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
+
diff --git a/doc/manpages/ospfclient.rst b/doc/manpages/ospfclient.rst
new file mode 100644
index 000000000..c52b10876
--- /dev/null
+++ b/doc/manpages/ospfclient.rst
@@ -0,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
diff --git a/doc/manpages/ospfd.rst b/doc/manpages/ospfd.rst
new file mode 100644
index 000000000..6e4d093f6
--- /dev/null
+++ b/doc/manpages/ospfd.rst
@@ -0,0 +1,39 @@
+*****
+OSPFD
+*****
+
+.. include:: defines.rst
+.. |DAEMON| replace:: ospfd
+
+SYNOPSIS
+========
+|DAEMON| |synopsis-options-hv|
+
+|DAEMON| |synopsis-options|
+
+
+DESCRIPTION
+===========
+|DAEMON| is a routing component that works with the FRRouting routing engine.
+
+OPTIONS
+=======
+OPTIONS available for the |DAEMON| command:
+
+.. include:: common-options.rst
+
+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
+
diff --git a/doc/manpages/pimd.rst b/doc/manpages/pimd.rst
new file mode 100644
index 000000000..d7582668d
--- /dev/null
+++ b/doc/manpages/pimd.rst
@@ -0,0 +1,38 @@
+****
+PIMD
+****
+
+.. include:: defines.rst
+.. |DAEMON| replace:: pimd
+
+SYNOPSIS
+========
+|DAEMON| |synopsis-options-hv|
+
+|DAEMON| |synopsis-options|
+
+DESCRIPTION
+===========
+|DAEMON| is a routing component that works with the FRRouting routing engine.
+
+OPTIONS
+=======
+OPTIONS available for the |DAEMON| command:
+
+.. include:: common-options.rst
+
+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
+
diff --git a/doc/manpages/ripd.rst b/doc/manpages/ripd.rst
new file mode 100644
index 000000000..af4590c82
--- /dev/null
+++ b/doc/manpages/ripd.rst
@@ -0,0 +1,38 @@
+****
+RIPD
+****
+
+.. include:: defines.rst
+.. |DAEMON| replace:: ripd
+
+SYNOPSIS
+========
+|DAEMON| |synopsis-options-hv|
+
+|DAEMON| |synopsis-options|
+
+DESCRIPTION
+===========
+|DAEMON| is a routing component that works with the FRRouting routing engine.
+
+OPTIONS
+=======
+OPTIONS available for the |DAEMON| command:
+
+.. include:: common-options.rst
+
+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
+
diff --git a/doc/manpages/ripngd.rst b/doc/manpages/ripngd.rst
new file mode 100644
index 000000000..aedd68987
--- /dev/null
+++ b/doc/manpages/ripngd.rst
@@ -0,0 +1,38 @@
+******
+RIPNGD
+******
+
+.. include:: defines.rst
+.. |DAEMON| replace:: ripngd
+
+SYNOPSIS
+========
+|DAEMON| |synopsis-options-hv|
+
+|DAEMON| |synopsis-options|
+
+DESCRIPTION
+===========
+|DAEMON| is a routing component that works with the FRRouting routing engine.
+
+OPTIONS
+=======
+OPTIONS available for the |DAEMON| command:
+
+.. include:: common-options.rst
+
+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
+
diff --git a/doc/manpages/vtysh.rst b/doc/manpages/vtysh.rst
new file mode 100644
index 000000000..38cb668e8
--- /dev/null
+++ b/doc/manpages/vtysh.rst
@@ -0,0 +1,72 @@
+*****
+VTYSH
+*****
+
+.. include:: defines.rst
+.. |DAEMON| replace:: eigrpd
+
+SYNOPSIS
+========
+vtysh [ -b ]
+
+vtysh [ -E ] [ -d *daemon* ] [ -c *command* ]
+
+DESCRIPTION
+===========
+vtysh is an integrated shell for the FRRouting suite of protocol daemons.
+
+OPTIONS
+=======
+OPTIONS available for the vtysh command:
+
+.. option:: -b, --boot
+
+ Execute boot startup configuration. It makes sense only if integrated config file is in use (not default in FRRouting). See Info file frr for more info.
+
+.. option:: -c, --command command
+
+ Specify command to be executed under batch mode. It behaves like -c option in any other shell - command is executed and vtysh exits.
+
+ It's useful for gathering info from FRRouting daemons or reconfiguring daemons from inside shell scripts, etc. Note that multiple commands may be executed by using more than one -c option and/or embedding linefeed characters inside the command string.
+
+.. option:: -d, --daemon daemon_name
+
+ Specify which daemon to connect to. By default, vtysh attempts to connect to all FRRouting daemons running on the system. With this flag, one can specify a single daemon to connect to instead. For example, specifying '-d ospfd' will connect only to ospfd. This can be particularly useful inside scripts with -c where the command is targeted for a single daemon.
+
+.. option:: -e, --execute command
+
+ Alias for -c. It's here only for compatibility with Zebra routing software and older FRR versions. This will be removed in future.
+
+.. option:: -E, --echo
+
+ When the -c option is being used, this flag will cause the standard vtysh prompt and command to be echoed prior to displaying the results. This is particularly useful to separate the results when executing multiple commands.
+
+.. option:: -h, --help
+
+ Display a usage message on standard output and exit.
+
+ENVIRONMENT VARIABLES
+=====================
+VTYSH_PAGER
+ This should be the name of the pager to use. Default is more.
+
+FILES
+=====
+|INSTALL_PREFIX_SBIN|/vtysh
+ The default location of the vtysh binary.
+
+|INSTALL_PREFIX_ETC|/vtysh.conf
+ The default location of the vtysh config file.
+
+|INSTALL_PREFIX_ETC|/frr.conf
+ The default location of the integrated FRRouting routing engine config file if integrated config file is in use.
+
+${HOME}/.history_frr
+ Location of history of commands entered via cli
+
+$(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
+
diff --git a/doc/manpages/watchfrr.rst b/doc/manpages/watchfrr.rst
new file mode 100644
index 000000000..f0b733298
--- /dev/null
+++ b/doc/manpages/watchfrr.rst
@@ -0,0 +1,119 @@
+********
+WATCHFRR
+********
+
+.. include:: defines.rst
+.. |DAEMON| replace:: watchfrr
+
+SYNOPSIS
+========
+|DAEMON| |synopsis-options-hv|
+
+|DAEMON| [option...] <daemon>...
+
+
+DESCRIPTION
+===========
+|DAEMON| is a watchdog program that monitors the status of supplied frr daemons and tries to restart them in case they become unresponsive or shut down.
+
+To determine whether a daemon is running, it tries to connect to the daemon's VTY UNIX stream socket, and send echo commands to ensure the daemon responds. When the daemon crashes, EOF is received from the socket, so that |DAEMON| can react immediately.
+
+In order to avoid restarting the daemons in quick succession, you can supply the -m and -M options to set the minimum and maximum delay between the restart commands. The minimum restart delay is recalculated each time a restart is attempted. If the time since the last restart attempt exceeds twice the value of -M, the restart delay is set to the value of -m, otherwise the interval is doubled (but capped at the value of -M).
+
+OPTIONS
+=======
+The following 3 options specify scripts that |DAEMON| uses to perform start/stop/restart actions. These options are mandatory unless the --dry option is used:
+
+.. option:: -s command, --start-command command
+
+ Supply a Bourne shell command to start a single daemon. The command string should contain the '%s' placeholder to be sub‐ stituted with the daemon name.
+
+.. option:: -k command, --kill-command command
+
+ Supply a Bourne shell command to stop a single daemon. The command string should contain the '%s' placeholder to be substituted with the daemon name.
+
+.. option:: -r command, --restart command
+
+ Supply a Bourne shell command to restart a single daemon. The command string should contain the '%s' placeholder to be substituted with the daemon name.
+
+Other options:
+
+.. option:: --dry
+
+ Run |DAEMON| in "dry-run" mode, only monitoring the specified daemons but not performing any start/stop/restart actions.
+
+.. option:: -d, --daemon
+
+ Run in daemon mode. When supplied, error messages are sent to Syslog instead of standard output (stdout).
+
+.. option:: -S <directory>, --statedir <directory>
+
+ Set the VTY socket directory (the default value is "/var/run/frr").
+
+.. option:: -l <level>, --loglevel <level>
+
+ Set the logging level (the default value is "6"). The value should range from 0 (LOG_EMERG) to 7 (LOG_DEBUG), but higher number can be supplied if extra debugging messages are required.
+
+.. option:: --min-restart-interval <number>
+
+ Set the minimum number of seconds to wait between invocations of the daemon restart commands (the default value is "60").
+
+.. option:: --max-restart-interval <number>
+
+ Set the maximum number of seconds to wait between invocations of the daemon restart commands (the default value is "600").
+
+.. option:: -i <number>, --interval <number>
+
+ Set the status polling interval in seconds (the default value is "5").
+
+.. option:: -t <number>, --timeout <number>
+
+ Set the unresponsiveness timeout in seconds (the default value is "10").
+
+.. option:: -T <number>, --restart-timeout <number>
+
+ Set the restart (kill) timeout in seconds (the default value is "20"). If any background jobs are still running after this period has elapsed, they will be killed.
+
+.. option:: -p <filename>, --pid-file <filename>
+
+ Set the process identifier filename (the default value is "/var/run/frr/|DAEMON|.pid").
+
+.. option:: -b <string>, --blank-string <string>
+
+ When the supplied string is found in any of the command line option arguments (i.e., -r, -s, or -k), replace it with a space.
+
+ This is an ugly hack to circumvent problems with passing the command line arguments containing embedded spaces.
+
+.. option:: -v, --version
+
+ Display the version information and exit.
+
+.. option:: -h, --help
+
+ Display the usage information and exit.
+
+PREVIOUS OPTIONS
+================
+Prior versions of |DAEMON| supported some additional options that no longer exist:::
+
+ -a, -A, -e, -R, -z
+
+The ``-a``, ``-A`` and ``-R`` options were used to select alternate monitoring modes that offered different patterns of restarting daemons. The "correct" mode (phased restart) is now the default. The -e and -z options used to disable some monitoring aspects, |DAEMON| now always has all monitoring features enabled.
+
+Removing these options should result in correct operation, if it does not please file a bug report.
+
+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
+
diff --git a/doc/manpages/zebra.rst b/doc/manpages/zebra.rst
new file mode 100644
index 000000000..4ddf98995
--- /dev/null
+++ b/doc/manpages/zebra.rst
@@ -0,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
+