]> git.puffer.fish Git - matthieu/frr.git/commitdiff
doc: rename building_frr_on* -> building_frr_for*
authorQuentin Young <qlyoung@cumulusnetworks.com>
Thu, 30 Aug 2018 17:31:45 +0000 (17:31 +0000)
committerQuentin Young <qlyoung@cumulusnetworks.com>
Fri, 31 Aug 2018 17:13:31 +0000 (17:13 +0000)
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
34 files changed:
doc/developer/building-frr-for-alpine.rst [new file with mode: 0644]
doc/developer/building-frr-for-centos6.rst [new file with mode: 0644]
doc/developer/building-frr-for-centos7.rst [new file with mode: 0644]
doc/developer/building-frr-for-debian8.rst [new file with mode: 0644]
doc/developer/building-frr-for-debian9.rst [new file with mode: 0644]
doc/developer/building-frr-for-fedora24.rst [new file with mode: 0644]
doc/developer/building-frr-for-freebsd10.rst [new file with mode: 0644]
doc/developer/building-frr-for-freebsd11.rst [new file with mode: 0644]
doc/developer/building-frr-for-freebsd9.rst [new file with mode: 0644]
doc/developer/building-frr-for-netbsd6.rst [new file with mode: 0644]
doc/developer/building-frr-for-netbsd7.rst [new file with mode: 0644]
doc/developer/building-frr-for-omnios.rst [new file with mode: 0644]
doc/developer/building-frr-for-openbsd6.rst [new file with mode: 0644]
doc/developer/building-frr-for-ubuntu1204.rst [new file with mode: 0644]
doc/developer/building-frr-for-ubuntu1404.rst [new file with mode: 0644]
doc/developer/building-frr-for-ubuntu1604.rst [new file with mode: 0644]
doc/developer/building-frr-for-ubuntu1804.rst [new file with mode: 0644]
doc/developer/building-frr-on-alpine.rst [deleted file]
doc/developer/building-frr-on-centos6.rst [deleted file]
doc/developer/building-frr-on-centos7.rst [deleted file]
doc/developer/building-frr-on-debian8.rst [deleted file]
doc/developer/building-frr-on-debian9.rst [deleted file]
doc/developer/building-frr-on-fedora24.rst [deleted file]
doc/developer/building-frr-on-freebsd10.rst [deleted file]
doc/developer/building-frr-on-freebsd11.rst [deleted file]
doc/developer/building-frr-on-freebsd9.rst [deleted file]
doc/developer/building-frr-on-netbsd6.rst [deleted file]
doc/developer/building-frr-on-netbsd7.rst [deleted file]
doc/developer/building-frr-on-omnios.rst [deleted file]
doc/developer/building-frr-on-openbsd6.rst [deleted file]
doc/developer/building-frr-on-ubuntu1204.rst [deleted file]
doc/developer/building-frr-on-ubuntu1404.rst [deleted file]
doc/developer/building-frr-on-ubuntu1604.rst [deleted file]
doc/developer/building-frr-on-ubuntu1804.rst [deleted file]

diff --git a/doc/developer/building-frr-for-alpine.rst b/doc/developer/building-frr-for-alpine.rst
new file mode 100644 (file)
index 0000000..d303784
--- /dev/null
@@ -0,0 +1,112 @@
+Alpine Linux 3.7+
+=========================================================
+
+For building Alpine Linux dev packages, we use docker.
+
+Install docker 17.05 or later
+-----------------------------
+
+Depending on your host, there are different ways of installing docker.  Refer
+to the documentation here for instructions on how to install a free version of
+docker: https://www.docker.com/community-edition
+
+Pre-built packages and docker images
+------------------------------------
+
+The master branch of https://github.com/frrouting/frr.git has a
+continuous delivery of docker images to docker hub at:
+https://hub.docker.com/r/ajones17/frr/. These images have the frr packages
+in /pkgs/apk and have the frr package pre-installed.  To copy Alpine
+packages out of these images:
+
+::
+
+   id=`docker create ajones17/frr:latest`
+   docker cp ${id}:/pkgs _some_directory_
+   docker rm $id
+
+To run the frr daemons (see below for how to configure them):
+
+::
+
+   docker run -it --rm --name frr ajones17/frr:latest
+   docker exec -it frr /bin/sh
+
+Work with sources
+-----------------
+
+::
+
+   git clone https://github.com/frrouting/frr.git frr
+   cd frr
+
+Build apk packages
+------------------
+
+::
+
+   ./docker/alpine/build.sh
+
+This will put the apk packages in:
+
+::
+
+   ./docker/pkgs/apk/x86_64/
+
+Usage
+-----
+
+To create a base image with the frr packages installed:
+
+::
+
+   docker build --rm -f docker/alpine/Dockerfile -t frr:latest .
+
+Or, if you don't have a git checkout of the sources, you can build a base
+image directly off the github account:
+
+::
+
+   docker build --rm -f docker/alpine/Dockerfile -t frr:latest \
+       https://github.com/frrouting/frr.git
+
+And to run the image:
+
+::
+
+   docker run -it --rm --name frr frr:latest
+
+In the default configuration, none of the frr daemons will  be running.
+To configure the daemons, exec into the container and edit the configuration
+files or mount a volume with configuration files into the container on
+startup.  To configure by hand:
+
+::
+
+   docker exec -it frr /bin/sh
+   vi /etc/frr/daemons
+   vi /etc/frr/daemons.conf
+   cp /etc/frr/zebra.conf.sample /etc/frr/zebra.conf
+   vi /etc/frr/zebra.conf
+   /etc/init.d/frr start
+
+Or, to configure the daemons using /etc/frr from a host volume, put the
+config files in, say, ./docker/etc and bind mount that into the
+container:
+
+::
+
+   docker run -it --rm -v `pwd`/docker/etc:/etc/frr frr:latest
+
+We can also build the base image directly from docker-compose, with a
+docker-compose.yml file like this one:
+
+::
+
+   version: '2.2'
+
+   services:
+      frr:
+         build:
+            context: https://github.com/frrouting/frr.git
+            dockerfile: docker/alpine/Dockerfile
diff --git a/doc/developer/building-frr-for-centos6.rst b/doc/developer/building-frr-for-centos6.rst
new file mode 100644 (file)
index 0000000..d503765
--- /dev/null
@@ -0,0 +1,255 @@
+CentOS 6
+========================================
+
+(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)
+
+Instructions are tested with ``CentOS 6.8`` on ``x86_64`` platform
+
+Warning:
+--------
+``CentOS 6`` is very old and not fully supported by the FRR community
+anymore. Building FRR takes multiple manual steps to update the build
+system with newer packages than what's available from the archives.
+However, the built packages can still be installed afterwards on
+a standard ``CentOS 6`` without any special packages.
+
+Support for CentOS 6 is now on a best-effort base by the community.
+
+CentOS 6 restrictions:
+----------------------
+
+-  PIMd is not supported on ``CentOS 6``. Upgrade to ``CentOS 7`` if
+   PIMd is needed
+-  MPLS is not supported on ``CentOS 6``. MPLS requires Linux Kernel 4.5
+   or higher (LDP can be built, but may have limited use without MPLS)
+-  Zebra is unable to detect what bridge/vrf an interface is associcated
+   with (IFLA\_INFO\_SLAVE\_KIND does not exist in the kernel headers,
+   you can use a newer kernel + headers to get this functionality)
+-  frr\_reload.py will not work, as this requires Python 2.7, and CentOS
+   6 only has 2.6. You can install Python 2.7 via IUS, but it won't work
+   properly unless you compile and install the ipaddr package for it.
+-  Building the package requires Sphinx >= 1.1. Only a non-standard
+   package provides a newer sphinx and requires manual installation
+   (see below)
+
+
+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 flex epel-release perl-XML-LibXML \
+      c-ares-devel
+
+Install newer version of bison (CentOS 6 package source is too old) from
+CentOS 7
+
+::
+
+    sudo yum install rpm-build
+    curl -O http://vault.centos.org/7.0.1406/os/Source/SPackages/bison-2.7-4.el7.src.rpm
+    rpmbuild --rebuild ./bison-2.7-4.el7.src.rpm
+    sudo yum install ./rpmbuild/RPMS/x86_64/bison-2.7-4.el6.x86_64.rpm
+    rm -rf rpmbuild
+
+Install newer version of autoconf and automake (Package versions are too
+old)
+
+::
+
+    curl -O http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
+    tar xvf autoconf-2.69.tar.gz
+    cd autoconf-2.69
+    ./configure --prefix=/usr
+    make
+    sudo make install
+    cd ..
+
+    curl -O http://ftp.gnu.org/gnu/automake/automake-1.15.tar.gz
+    tar xvf automake-1.15.tar.gz
+    cd automake-1.15
+    ./configure --prefix=/usr
+    make
+    sudo make install
+    cd ..
+
+Install ``Python 2.7`` in parallel to default 2.6. Make sure you've
+install EPEL (``epel-release`` as above). Then install current
+``python27``, ``python27-devel`` and ``pytest``
+
+::
+
+    sudo rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
+    sudo rpm -ivh https://centos6.iuscommunity.org/ius-release.rpm
+    sudo yum install python27 python27-pip python27-devel
+    sudo pip2.7 install pytest
+
+Please note that ``CentOS 6`` needs to keep python pointing to version
+2.6 for ``yum`` to keep working, so don't create a symlink for python2.7
+to python
+
+Install newer ``Sphinx-Build`` based on ``Python 2.7``
+
+Create a new repo ``/etc/yum.repos.d/puias6.repo`` with the following contents:
+
+::
+
+    ### Name: RPM Repository for RHEL 6 - PUIAS (used for Sphinx-Build)
+    ### URL: http://springdale.math.ias.edu/data/puias/computational
+    [puias-computational]
+    name = RPM Repository for RHEL 6 - Sphinx-Build
+    baseurl = http://springdale.math.ias.edu/data/puias/computational/$releasever/$basearch
+    #mirrorlist =
+    enabled = 1
+    protect = 0
+    gpgkey =
+    gpgcheck = 0
+
+Update rpm database & Install newer sphinx
+
+::
+
+    sudo yum update
+    sudo yum install python27-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 \
+        --disable-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 \
+        --disable-exampledir \
+        --enable-watchfrr \
+        --disable-ldpd \
+        --enable-fpm \
+        --enable-nhrpd \
+        --enable-eigrpd \
+        --enable-babeld \
+        --with-pkg-git-version \
+        --with-pkg-extra-version=-MyOwnFRRVersion
+    make SPHINXBUILD=sphinx-build2.7
+    make check PYTHON=/usr/bin/python2.7 SPHINXBUILD=sphinx-build2.7
+    sudo make SPHINXBUILD=sphinx-build2.7 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/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
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Edit ``/etc/sysctl.conf`` and set the following values (ignore the other
+settings)
+
+::
+
+    # Controls IP packet forwarding
+    net.ipv4.ip_forward = 1
+    net.ipv6.conf.all.forwarding=1
+
+    # Controls source route verification
+    net.ipv4.conf.default.rp_filter = 0
+
+Load the modifed sysctl's on the system:
+
+::
+
+    sudo sysctl -p /etc/sysctl.d/90-routing-sysctl.conf
+
+Add init.d startup files
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo install -p -m 755 redhat/frr.init /etc/init.d/frr
+    sudo chkconfig --add frr
+
+Enable frr daemon at startup
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo chkconfig frr on
+
+Start FRR manually (or reboot)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo /etc/init.d/frr start
diff --git a/doc/developer/building-frr-for-centos7.rst b/doc/developer/building-frr-for-centos7.rst
new file mode 100644 (file)
index 0000000..31cd4dc
--- /dev/null
@@ -0,0 +1,169 @@
+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
diff --git a/doc/developer/building-frr-for-debian8.rst b/doc/developer/building-frr-for-debian8.rst
new file mode 100644 (file)
index 0000000..d1e65a4
--- /dev/null
@@ -0,0 +1,156 @@
+Debian 8
+========================================
+
+Debian 8 restrictions:
+----------------------
+
+-  MPLS is not supported on ``Debian 8`` 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 apt-get install git autoconf automake libtool make gawk \
+       libreadline-dev texinfo libjson-c-dev pkg-config bison flex \
+       python-pip libc-ares-dev python3-dev python3-sphinx
+
+Install newer pytest (>3.0) from pip
+
+::
+
+    sudo pip install pytest
+
+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 addgroup --system --gid 92 frr
+    sudo addgroup --system --gid 85 frrvty
+    sudo adduser --system --ingroup frr --home /var/run/frr/ \
+       --gecos "FRR suite" --shell /bin/false frr
+    sudo usermod -a -G frrvty 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 \
+        --enable-exampledir=/usr/share/doc/frr/examples/ \
+        --localstatedir=/var/run/frr \
+        --sbindir=/usr/lib/frr \
+        --sysconfdir=/etc/frr \
+        --enable-vtysh \
+        --enable-isisd \
+        --enable-pimd \
+        --enable-watchfrr \
+        --enable-ospfclient=yes \
+        --enable-ospfapi=yes \
+        --enable-multipath=64 \
+        --enable-user=frr \
+        --enable-group=frr \
+        --enable-vty-group=frrvty \
+        --enable-configfile-mask=0640 \
+        --enable-logfile-mask=0640 \
+        --enable-rtadv \
+        --enable-fpm \
+        --enable-ldpd \
+        --with-pkg-git-version \
+        --with-pkg-extra-version=-MyOwnFRRVersion
+    make
+    make check
+    sudo make install
+
+Create empty FRR configuration files
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo install -m 755 -o frr -g frr -d /var/log/frr
+    sudo install -m 775 -o frr -g frrvty -d /etc/frr
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/zebra.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/bgpd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospfd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospf6d.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/isisd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripngd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/pimd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ldpd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/nhrpd.conf
+    sudo install -m 640 -o frr -g frrvty /dev/null /etc/frr/vtysh.conf
+
+Enable IP & IPv6 forwarding
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Edit ``/etc/sysctl.conf`` and uncomment the following values (ignore the
+other settings)
+
+::
+
+    # Uncomment the next line to enable packet forwarding for IPv4
+    net.ipv4.ip_forward=1
+
+    # Uncomment the next line to enable packet forwarding for IPv6
+    #  Enabling this option disables Stateless Address Autoconfiguration
+    #  based on Router Advertisements for this host
+    net.ipv6.conf.all.forwarding=1
+
+**Reboot** or use ``sysctl -p`` to apply the same config to the running
+system
+
+Troubleshooting
+^^^^^^^^^^^^^^^
+
+**Local state directory**
+
+The local state directory must exist and have the correct permissions
+applied for the frrouting daemons to start. In the above ./configure
+example the local state directory is set to /var/run/frr
+(--localstatedir=/var/run/frr) Debian considers /var/run/frr to be
+temporary and this is removed after a reboot.
+
+When using a different local state directory you need to create the new
+directory and change the ownership to the frr user, for example:
+
+::
+
+    mkdir /var/opt/frr
+    chown frr /var/opt/frr
+
+**Shared library error**
+
+If you try and start any of the frrouting daemons you may see the below
+error due to the frrouting shared library directory not being found:
+
+::
+
+    ./zebra: error while loading shared libraries: libfrr.so.0: cannot open shared object file: No such file or directory
+
+The fix is to add the following line to /etc/ld.so.conf which will
+continue to reference the library directory after the system reboots. To
+load the library directory path immediately run the ldconfig command
+after adding the line to the file eg:
+
+::
+
+    echo include /usr/local/lib >> /etc/ld.so.conf
+    ldconfig
diff --git a/doc/developer/building-frr-for-debian9.rst b/doc/developer/building-frr-for-debian9.rst
new file mode 100644 (file)
index 0000000..7dad9a7
--- /dev/null
@@ -0,0 +1,131 @@
+Debian 9
+========================================
+
+Install required packages
+-------------------------
+
+Add packages:
+
+::
+
+    sudo apt-get install git autoconf automake libtool make \
+      libreadline-dev texinfo libjson-c-dev pkg-config bison flex \
+      python-pip libc-ares-dev python3-dev python-pytest python3-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 addgroup --system --gid 92 frr
+    sudo addgroup --system --gid 85 frrvty
+    sudo adduser --system --ingroup frr --home /var/opt/frr/ \
+       --gecos "FRR suite" --shell /bin/false frr
+    sudo usermod -a -G frrvty 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
+    git checkout stable/3.0
+    ./bootstrap.sh
+    ./configure \
+        --enable-exampledir=/usr/share/doc/frr/examples/ \
+        --localstatedir=/var/opt/frr \
+        --sbindir=/usr/lib/frr \
+        --sysconfdir=/etc/frr \
+        --enable-vtysh \
+        --enable-isisd \
+        --enable-pimd \
+        --enable-watchfrr \
+        --enable-ospfclient=yes \
+        --enable-ospfapi=yes \
+        --enable-multipath=64 \
+        --enable-user=frr \
+        --enable-group=frr \
+        --enable-vty-group=frrvty \
+        --enable-configfile-mask=0640 \
+        --enable-logfile-mask=0640 \
+        --enable-rtadv \
+        --enable-fpm \
+        --enable-ldpd \
+        --with-pkg-git-version \
+        --with-pkg-extra-version=-MyOwnFRRVersion
+    make
+    make check
+    sudo make install
+
+Create empty FRR configuration files
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo install -m 755 -o frr -g frr -d /var/log/frr
+    sudo install -m 755 -o frr -g frr -d /var/opt/frr
+    sudo install -m 775 -o frr -g frrvty -d /etc/frr
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/zebra.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/bgpd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospfd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospf6d.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/isisd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripngd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/pimd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ldpd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/nhrpd.conf
+    sudo install -m 640 -o frr -g frrvty /dev/null /etc/frr/vtysh.conf
+
+Enable IP & IPv6 forwarding
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Edit ``/etc/sysctl.conf`` and uncomment the following values (ignore the
+other settings)
+
+::
+
+    # Uncomment the next line to enable packet forwarding for IPv4
+    net.ipv4.ip_forward=1
+
+    # Uncomment the next line to enable packet forwarding for IPv6
+    #  Enabling this option disables Stateless Address Autoconfiguration
+    #  based on Router Advertisements for this host
+    net.ipv6.conf.all.forwarding=1
+
+**Reboot** or use ``sysctl -p`` to apply the same config to the running
+system
+
+Troubleshooting
+---------------
+
+Shared library error
+^^^^^^^^^^^^^^^^^^^^
+
+If you try and start any of the frrouting daemons you may see the below
+error due to the frrouting shared library directory not being found:
+
+::
+
+   ./zebra: error while loading shared libraries: libfrr.so.0: cannot open
+   shared object file: No such file or directory
+
+The fix is to add the following line to /etc/ld.so.conf which will
+continue to reference the library directory after the system reboots. To
+load the library directory path immediately run the ldconfig command
+after adding the line to the file eg:
+
+::
+
+   echo include /usr/local/lib >> /etc/ld.so.conf
+   ldconfig
diff --git a/doc/developer/building-frr-for-fedora24.rst b/doc/developer/building-frr-for-fedora24.rst
new file mode 100644 (file)
index 0000000..208c580
--- /dev/null
@@ -0,0 +1,177 @@
+Fedora 24
+=========================================
+
+(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)
+
+Install required packages
+-------------------------
+
+Add packages:
+
+::
+
+    sudo dnf install git autoconf automake libtool make gawk \
+      readline-devel texinfo net-snmp-devel groff pkgconfig \
+      json-c-devel pam-devel perl-XML-LibXML pytest bison flex \
+      c-ares-devel python3-devel python3-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 \
+        --disable-exampledir \
+        --enable-watchfrr \
+        --enable-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/ldpd.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 (and MPLS)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Create a new file ``/etc/sysctl.d/90-routing-sysctl.conf`` with the
+following content: (Please make sure to list all interfaces with
+required MPLS similar to ``net.mpls.conf.eth0.input=1``)
+
+::
+
+    # Sysctl for routing
+    #
+    # Routing: We need to forward packets
+    net.ipv4.conf.all.forwarding=1
+    net.ipv6.conf.all.forwarding=1
+    #
+    # Enable MPLS Label processing on all interfaces
+    net.mpls.conf.eth0.input=1
+    net.mpls.conf.eth1.input=1
+    net.mpls.conf.eth2.input=1
+    net.mpls.platform_labels=100000
+
+Load the modifed sysctl's on the system:
+
+::
+
+    sudo sysctl -p /etc/sysctl.d/90-routing-sysctl.conf
+
+Create a new file ``/etc/modules-load.d/mpls.conf`` with the following
+content:
+
+::
+
+    # Load MPLS Kernel Modules
+    mpls-router
+    mpls-iptunnel
+
+And load the kernel modules on the running system:
+
+::
+
+    sudo modprobe mpls-router mpls-iptunnel
+
+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
+
+Enable required frr at startup
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo systemctl enable frr
+
+Reboot or start FRR manually
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo systemctl start frr
diff --git a/doc/developer/building-frr-for-freebsd10.rst b/doc/developer/building-frr-for-freebsd10.rst
new file mode 100644 (file)
index 0000000..5d14db5
--- /dev/null
@@ -0,0 +1,109 @@
+FreeBSD 10
+==========================================
+
+FreeBSD 10 restrictions:
+------------------------
+
+-  MPLS is not supported on ``FreeBSD``. MPLS requires a Linux Kernel
+   (4.5 or higher). LDP can be built, but may have limited use without
+   MPLS
+
+Install required packages
+-------------------------
+
+Add packages: (Allow the install of the package managment tool if this
+is first package install and asked)
+
+::
+
+    pkg install git autoconf automake libtool gmake gawk json-c pkgconf \
+        bison flex py27-pytest c-ares python3 py-sphinx
+
+Make sure there is no /usr/bin/flex preinstalled (and use the newly
+installed in /usr/local/bin): (FreeBSD frequently provides a older flex
+as part of the base OS which takes preference in path)
+
+::
+
+    rm -f /usr/bin/flex
+
+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 group and user
+^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    pw groupadd frr -g 101
+    pw groupadd frrvty -g 102
+    pw adduser frr -g 101 -u 101 -G 102 -c "FRR suite" \
+        -d /usr/local/etc/frr -s /usr/sbin/nologin
+
+(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
+    export MAKE=gmake
+    export LDFLAGS="-L/usr/local/lib"
+    export CPPFLAGS="-I/usr/local/include"
+    ./configure \
+        --sysconfdir=/usr/local/etc/frr \
+        --enable-pkgsrcrcdir=/usr/pkg/share/examples/rc.d \
+        --localstatedir=/var/run/frr \
+        --prefix=/usr/local \
+        --enable-ospfclient=yes \
+        --enable-ospfapi=yes \
+        --enable-multipath=64 \
+        --enable-user=frr \
+        --enable-group=frr \
+        --enable-vty-group=frrvty \
+        --enable-configfile-mask=0640 \
+        --enable-logfile-mask=0640 \
+        --enable-rtadv \
+        --enable-fpm \
+        --with-pkg-git-version \
+        --with-pkg-extra-version=-MyOwnFRRVersion
+    gmake
+    gmake check
+    sudo gmake install
+
+Create empty FRR configuration files
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo mkdir /usr/local/etc/frr
+    sudo touch /usr/local/etc/frr/zebra.conf
+    sudo touch /usr/local/etc/frr/bgpd.conf
+    sudo touch /usr/local/etc/frr/ospfd.conf
+    sudo touch /usr/local/etc/frr/ospf6d.conf
+    sudo touch /usr/local/etc/frr/isisd.conf
+    sudo touch /usr/local/etc/frr/ripd.conf
+    sudo touch /usr/local/etc/frr/ripngd.conf
+    sudo touch /usr/local/etc/frr/pimd.conf
+    sudo chown -R frr:frr /usr/local/etc/frr
+    sudo touch /usr/local/etc/frr/vtysh.conf
+    sudo chown frr:frrvty /usr/local/etc/frr/vtysh.conf
+    sudo chmod 640 /usr/local/etc/frr/*.conf
+
+Enable IP & IPv6 forwarding
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Add the following lines to the end of ``/etc/sysctl.conf``:
+
+::
+
+    # Routing: We need to forward packets
+    net.inet.ip.forwarding=1
+    net.inet6.ip6.forwarding=1
+
+**Reboot** or use ``sysctl`` to apply the same config to the running
+system
diff --git a/doc/developer/building-frr-for-freebsd11.rst b/doc/developer/building-frr-for-freebsd11.rst
new file mode 100644 (file)
index 0000000..87fb302
--- /dev/null
@@ -0,0 +1,109 @@
+FreeBSD 11
+==========================================
+
+FreeBSD 11 restrictions:
+------------------------
+
+-  MPLS is not supported on ``FreeBSD``. MPLS requires a Linux Kernel
+   (4.5 or higher). LDP can be built, but may have limited use without
+   MPLS
+
+Install required packages
+-------------------------
+
+Add packages: (Allow the install of the package managment tool if this
+is first package install and asked)
+
+::
+
+    pkg install git autoconf automake libtool gmake gawk json-c pkgconf \
+        bison flex py27-pytest c-ares python3 py-sphinx
+
+Make sure there is no /usr/bin/flex preinstalled (and use the newly
+installed in /usr/local/bin): (FreeBSD frequently provides a older flex
+as part of the base OS which takes preference in path)
+
+::
+
+    rm -f /usr/bin/flex
+
+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 group and user
+^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    pw groupadd frr -g 101
+    pw groupadd frrvty -g 102
+    pw adduser frr -g 101 -u 101 -G 102 -c "FRR suite" \
+        -d /usr/local/etc/frr -s /usr/sbin/nologin
+
+(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
+    export MAKE=gmake
+    export LDFLAGS="-L/usr/local/lib"
+    export CPPFLAGS="-I/usr/local/include"
+    ./configure \
+        --sysconfdir=/usr/local/etc/frr \
+        --enable-pkgsrcrcdir=/usr/pkg/share/examples/rc.d \
+        --localstatedir=/var/run/frr \
+        --prefix=/usr/local \
+        --enable-ospfclient=yes \
+        --enable-ospfapi=yes \
+        --enable-multipath=64 \
+        --enable-user=frr \
+        --enable-group=frr \
+        --enable-vty-group=frrvty \
+        --enable-configfile-mask=0640 \
+        --enable-logfile-mask=0640 \
+        --enable-rtadv \
+        --enable-fpm \
+        --with-pkg-git-version \
+        --with-pkg-extra-version=-MyOwnFRRVersion
+    gmake
+    gmake check
+    sudo gmake install
+
+Create empty FRR configuration files
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo mkdir /usr/local/etc/frr
+    sudo touch /usr/local/etc/frr/zebra.conf
+    sudo touch /usr/local/etc/frr/bgpd.conf
+    sudo touch /usr/local/etc/frr/ospfd.conf
+    sudo touch /usr/local/etc/frr/ospf6d.conf
+    sudo touch /usr/local/etc/frr/isisd.conf
+    sudo touch /usr/local/etc/frr/ripd.conf
+    sudo touch /usr/local/etc/frr/ripngd.conf
+    sudo touch /usr/local/etc/frr/pimd.conf
+    sudo chown -R frr:frr /usr/local/etc/frr
+    sudo touch /usr/local/etc/frr/vtysh.conf
+    sudo chown frr:frrvty /usr/local/etc/frr/vtysh.conf
+    sudo chmod 640 /usr/local/etc/frr/*.conf
+
+Enable IP & IPv6 forwarding
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Add the following lines to the end of ``/etc/sysctl.conf``:
+
+::
+
+    # Routing: We need to forward packets
+    net.inet.ip.forwarding=1
+    net.inet6.ip6.forwarding=1
+
+**Reboot** or use ``sysctl`` to apply the same config to the running
+system
diff --git a/doc/developer/building-frr-for-freebsd9.rst b/doc/developer/building-frr-for-freebsd9.rst
new file mode 100644 (file)
index 0000000..02279de
--- /dev/null
@@ -0,0 +1,122 @@
+FreeBSD 9
+=========================================
+
+FreeBSD 9 restrictions:
+-----------------------
+
+-  MPLS is not supported on ``FreeBSD``. MPLS requires a Linux Kernel
+   (4.5 or higher). LDP can be built, but may have limited use without
+   MPLS
+
+Install required packages
+-------------------------
+
+Add packages: (Allow the install of the package managment tool if this
+is first package install and asked)
+
+::
+
+    pkg install -y git autoconf automake libtool gmake gawk \
+        pkgconf texinfo json-c bison flex py27-pytest c-ares \
+        python3 py-sphinx
+
+Make sure there is no /usr/bin/flex preinstalled (and use the newly
+installed in /usr/local/bin): (FreeBSD frequently provides a older flex
+as part of the base OS which takes preference in path)
+
+::
+
+    rm -f /usr/bin/flex
+
+For building with clang (instead of gcc), upgrade clang from 3.4 default
+to 3.6 *This is needed to build FreeBSD packages as well - for packages
+clang is default* (Clang 3.4 as shipped with FreeBSD 9 crashes during
+compile)
+
+::
+
+    pkg install clang36
+    pkg delete clang34
+    mv /usr/bin/clang /usr/bin/clang34
+    ln -s /usr/local/bin/clang36 /usr/bin/clang
+
+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 group and user
+^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    pw groupadd frr -g 101
+    pw groupadd frrvty -g 102
+    pw adduser frr -g 101 -u 101 -G 102 -c "FRR suite" \
+        -d /usr/local/etc/frr -s /usr/sbin/nologin
+
+(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
+    export MAKE=gmake
+    export LDFLAGS="-L/usr/local/lib"
+    export CPPFLAGS="-I/usr/local/include"
+    ./configure \
+        --sysconfdir=/usr/local/etc/frr \
+        --enable-pkgsrcrcdir=/usr/pkg/share/examples/rc.d \
+        --localstatedir=/var/run/frr \
+        --prefix=/usr/local \
+        --enable-ospfclient=yes \
+        --enable-ospfapi=yes \
+        --enable-multipath=64 \
+        --enable-user=frr \
+        --enable-group=frr \
+        --enable-vty-group=frrvty \
+        --enable-configfile-mask=0640 \
+        --enable-logfile-mask=0640 \
+        --enable-rtadv \
+        --enable-fpm \
+        --with-pkg-git-version \
+        --with-pkg-extra-version=-MyOwnFRRVersion
+    gmake
+    gmake check
+    sudo gmake install
+
+Create empty FRR configuration files
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo mkdir /usr/local/etc/frr
+    sudo touch /usr/local/etc/frr/zebra.conf
+    sudo touch /usr/local/etc/frr/bgpd.conf
+    sudo touch /usr/local/etc/frr/ospfd.conf
+    sudo touch /usr/local/etc/frr/ospf6d.conf
+    sudo touch /usr/local/etc/frr/isisd.conf
+    sudo touch /usr/local/etc/frr/ripd.conf
+    sudo touch /usr/local/etc/frr/ripngd.conf
+    sudo touch /usr/local/etc/frr/pimd.conf
+    sudo chown -R frr:frr /usr/local/etc/frr
+    sudo touch /usr/local/etc/frr/vtysh.conf
+    sudo chown frr:frrvty /usr/local/etc/frr/vtysh.conf
+    sudo chmod 640 /usr/local/etc/frr/*.conf
+
+Enable IP & IPv6 forwarding
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Add the following lines to the end of ``/etc/sysctl.conf``:
+
+::
+
+    # Routing: We need to forward packets
+    net.inet.ip.forwarding=1
+    net.inet6.ip6.forwarding=1
+
+**Reboot** or use ``sysctl`` to apply the same config to the running
+system
diff --git a/doc/developer/building-frr-for-netbsd6.rst b/doc/developer/building-frr-for-netbsd6.rst
new file mode 100644 (file)
index 0000000..ca0845d
--- /dev/null
@@ -0,0 +1,147 @@
+NetBSD 6
+========================================
+
+NetBSD 6 restrictions:
+----------------------
+
+-  MPLS is not supported on ``NetBSD``. MPLS requires a Linux Kernel
+   (4.5 or higher). LDP can be built, but may have limited use without
+   MPLS
+
+Install required packages
+-------------------------
+
+Configure Package location:
+
+::
+
+    PKG_PATH="ftp://ftp.NetBSD.org/pub/pkgsrc/packages/NetBSD/`uname -m`/`uname -r`/All"
+    export PKG_PATH
+
+Add packages:
+
+::
+
+    sudo pkg_add git autoconf automake libtool gmake gawk openssl \
+       pkg-config json-c python27 py27-test python35 py-sphinx
+
+Install SSL Root Certificates (for git https access):
+
+::
+
+    sudo pkg_add mozilla-rootcerts
+    sudo touch /etc/openssl/openssl.cnf
+    sudo mozilla-rootcerts install
+
+Select default Python and py.test
+
+::
+
+    sudo ln -s /usr/pkg/bin/python2.7 /usr/bin/python
+    sudo ln -s /usr/pkg/bin/py.test-2.7 /usr/bin/py.test
+
+Get FRR, compile it and install it (from Git)
+---------------------------------------------
+
+Add frr groups and user
+^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo groupadd -g 92 frr
+    sudo groupadd -g 93 frrvty
+    sudo useradd -g 92 -u 92 -G frrvty -c "FRR suite" \
+        -d /nonexistent -s /sbin/nologin 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
+    MAKE=gmake
+    export LDFLAGS="-L/usr/pkg/lib -R/usr/pkg/lib"
+    export CPPFLAGS="-I/usr/pkg/include"
+    ./configure \
+        --sysconfdir=/usr/pkg/etc/frr \
+        --enable-exampledir=/usr/pkg/share/examples/frr \
+        --enable-pkgsrcrcdir=/usr/pkg/share/examples/rc.d \
+        --localstatedir=/var/run/frr \
+        --enable-ospfclient=yes \
+        --enable-ospfapi=yes \
+        --enable-multipath=64 \
+        --enable-user=frr \
+        --enable-group=frr \
+        --enable-vty-group=frrvty \
+        --enable-configfile-mask=0640 \
+        --enable-logfile-mask=0640 \
+        --enable-rtadv \
+        --enable-fpm \
+        --with-pkg-git-version \
+        --with-pkg-extra-version=-MyOwnFRRVersion
+    gmake
+    gmake check
+    sudo gmake install
+
+Create empty FRR configuration files
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo mkdir /var/log/frr
+    sudo mkdir /usr/pkg/etc/frr
+    sudo touch /usr/pkg/etc/frr/zebra.conf
+    sudo touch /usr/pkg/etc/frr/bgpd.conf
+    sudo touch /usr/pkg/etc/frr/ospfd.conf
+    sudo touch /usr/pkg/etc/frr/ospf6d.conf
+    sudo touch /usr/pkg/etc/frr/isisd.conf
+    sudo touch /usr/pkg/etc/frr/ripd.conf
+    sudo touch /usr/pkg/etc/frr/ripngd.conf
+    sudo touch /usr/pkg/etc/frr/pimd.conf
+    sudo chown -R frr:frr /usr/pkg/etc/frr
+    sudo touch /usr/local/etc/frr/vtysh.conf
+    sudo chown frr:frrvty /usr/pkg/etc/frr/*.conf
+    sudo chmod 640 /usr/pkg/etc/frr/*.conf
+
+Enable IP & IPv6 forwarding
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Add the following lines to the end of ``/etc/sysctl.conf``:
+
+::
+
+    # Routing: We need to forward packets
+    net.inet.ip.forwarding=1
+    net.inet6.ip6.forwarding=1
+
+**Reboot** or use ``sysctl`` to apply the same config to the running
+system
+
+Install rc.d init files
+^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    cp pkgsrc/*.sh /etc/rc.d/
+    chmod 555 /etc/rc.d/*.sh
+
+Enable FRR processes
+^^^^^^^^^^^^^^^^^^^^
+
+(Enable the required processes only)
+
+::
+
+    echo "zebra=YES" >> /etc/rc.conf
+    echo "bgpd=YES" >> /etc/rc.conf
+    echo "ospfd=YES" >> /etc/rc.conf
+    echo "ospf6d=YES" >> /etc/rc.conf
+    echo "isisd=YES" >> /etc/rc.conf
+    echo "ripngd=YES" >> /etc/rc.conf
+    echo "ripd=YES" >> /etc/rc.conf
+    echo "pimd=YES" >> /etc/rc.conf
diff --git a/doc/developer/building-frr-for-netbsd7.rst b/doc/developer/building-frr-for-netbsd7.rst
new file mode 100644 (file)
index 0000000..86242ef
--- /dev/null
@@ -0,0 +1,137 @@
+NetBSD 7
+========================================
+
+NetBSD 7 restrictions:
+----------------------
+
+-  MPLS is not supported on ``NetBSD``. MPLS requires a Linux Kernel
+   (4.5 or higher). LDP can be built, but may have limited use without
+   MPLS
+
+Install required packages
+-------------------------
+
+::
+
+    sudo pkgin install git autoconf automake libtool gmake gawk openssl \
+       pkg-config json-c python27 py27-test python35 py-sphinx
+
+Install SSL Root Certificates (for git https access):
+
+::
+
+    sudo pkgin install mozilla-rootcerts
+    sudo touch /etc/openssl/openssl.cnf
+    sudo mozilla-rootcerts install
+
+Select default Python and py.test
+
+::
+
+    sudo ln -s /usr/pkg/bin/python2.7 /usr/bin/python
+    sudo ln -s /usr/pkg/bin/py.test-2.7 /usr/bin/py.test
+
+Get FRR, compile it and install it (from Git)
+---------------------------------------------
+
+Add frr groups and user
+^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo groupadd -g 92 frr
+    sudo groupadd -g 93 frrvty
+    sudo useradd -g 92 -u 92 -G frrvty -c "FRR suite" \
+        -d /nonexistent -s /sbin/nologin 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
+    MAKE=gmake
+    export LDFLAGS="-L/usr/pkg/lib -R/usr/pkg/lib"
+    export CPPFLAGS="-I/usr/pkg/include"
+    ./configure \
+        --sysconfdir=/usr/pkg/etc/frr \
+        --enable-exampledir=/usr/pkg/share/examples/frr \
+        --enable-pkgsrcrcdir=/usr/pkg/share/examples/rc.d \
+        --localstatedir=/var/run/frr \
+        --enable-ospfclient=yes \
+        --enable-ospfapi=yes \
+        --enable-multipath=64 \
+        --enable-user=frr \
+        --enable-group=frr \
+        --enable-vty-group=frrvty \
+        --enable-configfile-mask=0640 \
+        --enable-logfile-mask=0640 \
+        --enable-rtadv \
+        --enable-fpm \
+        --with-pkg-git-version \
+        --with-pkg-extra-version=-MyOwnFRRVersion
+    gmake
+    gmake check
+    sudo gmake install
+
+Create empty FRR configuration files
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo mkdir /usr/pkg/etc/frr
+    sudo touch /usr/pkg/etc/frr/zebra.conf
+    sudo touch /usr/pkg/etc/frr/bgpd.conf
+    sudo touch /usr/pkg/etc/frr/ospfd.conf
+    sudo touch /usr/pkg/etc/frr/ospf6d.conf
+    sudo touch /usr/pkg/etc/frr/isisd.conf
+    sudo touch /usr/pkg/etc/frr/ripd.conf
+    sudo touch /usr/pkg/etc/frr/ripngd.conf
+    sudo touch /usr/pkg/etc/frr/pimd.conf
+    sudo chown -R frr:frr /usr/pkg/etc/frr
+    sudo touch /usr/local/etc/frr/vtysh.conf
+    sudo chown frr:frrvty /usr/pkg/etc/frr/*.conf
+    sudo chmod 640 /usr/pkg/etc/frr/*.conf
+
+Enable IP & IPv6 forwarding
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Add the following lines to the end of ``/etc/sysctl.conf``:
+
+::
+
+    # Routing: We need to forward packets
+    net.inet.ip.forwarding=1
+    net.inet6.ip6.forwarding=1
+
+**Reboot** or use ``sysctl`` to apply the same config to the running
+system
+
+Install rc.d init files
+^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    cp pkgsrc/*.sh /etc/rc.d/
+    chmod 555 /etc/rc.d/*.sh
+
+Enable FRR processes
+^^^^^^^^^^^^^^^^^^^^
+
+(Enable the required processes only)
+
+::
+
+    echo "zebra=YES" >> /etc/rc.conf
+    echo "bgpd=YES" >> /etc/rc.conf
+    echo "ospfd=YES" >> /etc/rc.conf
+    echo "ospf6d=YES" >> /etc/rc.conf
+    echo "isisd=YES" >> /etc/rc.conf
+    echo "ripngd=YES" >> /etc/rc.conf
+    echo "ripd=YES" >> /etc/rc.conf
+    echo "pimd=YES" >> /etc/rc.conf
diff --git a/doc/developer/building-frr-for-omnios.rst b/doc/developer/building-frr-for-omnios.rst
new file mode 100644 (file)
index 0000000..03f3845
--- /dev/null
@@ -0,0 +1,146 @@
+OmniOS (OpenSolaris)
+====================================================
+
+OmniOS restrictions:
+--------------------
+
+-  MPLS is not supported on ``OmniOS`` or ``Solaris``. MPLS requires a
+   Linux Kernel (4.5 or higher). LDP can be built, but may have limited
+   use without MPLS
+
+Enable IP & IPv6 forwarding
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    routeadm -e ipv4-forwarding
+    routeadm -e ipv6-forwarding
+
+Install required packages
+-------------------------
+
+Add packages:
+
+::
+
+    pkg install \
+      developer/build/autoconf \
+      developer/build/automake \
+      developer/lexer/flex \
+      developer/parser/bison \
+      developer/object-file \
+      developer/linker \
+      developer/library/lint \
+      developer/build/gnu-make \
+      developer/gcc51 \
+      library/idnkit \
+      library/idnkit/header-idnkit \
+      system/header \
+      system/library/math/header-math \
+      git libtool gawk pkg-config
+
+Add additional Solaris packages:
+
+::
+
+    pkgadd -d http://get.opencsw.org/now
+    /opt/csw/bin/pkgutil -U
+    /opt/csw/bin/pkgutil -y -i texinfo
+    /opt/csw/bin/pkgutil -y -i perl
+    /opt/csw/bin/pkgutil -y -i libjson_c_dev
+    /opt/csw/bin/pkgutil -y -i python27 py_pip python27_dev
+
+Add libjson to Solaris equivalent of ld.so.conf
+
+::
+
+    crle -l /opt/csw/lib -u
+
+Add pytest:
+
+::
+
+    pip install pytest
+
+Install Sphinx:::
+
+   pip install sphinx
+
+Select Python 2.7 as default (required for pytest)
+
+::
+
+    rm -f /usr/bin/python
+    ln -s /opt/csw/bin/python2.7 /usr/bin/python
+
+Fix PATH for all users and non-interactive sessions. Edit
+``/etc/default/login`` and add the following default PATH:
+
+::
+
+    PATH=/usr/gnu/bin:/usr/bin:/usr/sbin:/sbin:/opt/csw/bin
+
+Edit ``~/.profile`` and add the following default PATH:
+
+::
+
+    PATH=/usr/gnu/bin:/usr/bin:/usr/sbin:/sbin:/opt/csw/bin
+
+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 group and user
+^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo groupadd -g 93 frr
+    sudo groupadd -g 94 frrvty
+    sudo useradd -g 93 -u 93 -G frrvty -c "FRR suite" \
+        -d /nonexistent -s /bin/false frr
+
+(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
+    export MAKE=gmake
+    export LDFLAGS="-L/opt/csw/lib"
+    export CPPFLAGS="-I/opt/csw/include"
+    export PKG_CONFIG_PATH=/opt/csw/lib/pkgconfig
+    ./configure \
+        --sysconfdir=/etc/frr \
+        --enable-exampledir=/usr/share/doc/frr/examples/ \
+        --localstatedir=/var/run/frr \
+        --sbindir=/usr/lib/frr \
+        --enable-vtysh \
+        --enable-watchfrr \
+        --enable-ospfclient=yes \
+        --enable-ospfapi=yes \
+        --enable-multipath=64 \
+        --enable-user=frr \
+        --enable-group=frr \
+        --enable-vty-group=frrvty \
+        --enable-configfile-mask=0640 \
+        --enable-logfile-mask=0640 \
+        --enable-rtadv \
+        --enable-fpm \
+        --with-pkg-git-version \
+        --with-pkg-extra-version=-MyOwnFRRVersion
+    gmake
+    gmake check
+    sudo gmake install
+
+Enable IP & IPv6 forwarding
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    routeadm -e ipv4-forwarding
+    routeadm -e ipv6-forwarding
diff --git a/doc/developer/building-frr-for-openbsd6.rst b/doc/developer/building-frr-for-openbsd6.rst
new file mode 100644 (file)
index 0000000..46db25a
--- /dev/null
@@ -0,0 +1,169 @@
+OpenBSD 6
+=========================================
+
+Install required packages
+-------------------------
+
+Configure PKG\_PATH
+
+::
+
+    export PKG_PATH=http://ftp5.usa.openbsd.org/pub/OpenBSD/$(uname -r)/packages/$(machine -a)/
+
+Add packages:
+
+::
+
+    pkg_add git autoconf-2.69p2 automake-1.15.1 libtool bison
+    pkg_add gmake gawk dejagnu openssl json-c py-test py-sphinx
+
+Select Python2.7 as default (required for pytest)
+
+::
+
+    ln -s /usr/local/bin/python2.7 /usr/local/bin/python
+
+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 group and user
+^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    groupadd -g 525 _frr
+    groupadd -g 526 _frrvty
+    useradd -g 525 -u 525 -c "FRR suite" -G _frrvty \
+        -d /nonexistent -s /sbin/nologin _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
+    export AUTOCONF_VERSION="2.69"
+    export AUTOMAKE_VERSION="1.15"
+    ./bootstrap.sh
+    export LDFLAGS="-L/usr/local/lib"
+    export CPPFLAGS="-I/usr/local/include"
+    ./configure \
+        --sysconfdir=/etc/frr \
+        --localstatedir=/var/frr \
+        --enable-pimd \
+        --enable-ospfclient=yes \
+        --enable-ospfapi=yes \
+        --enable-multipath=64 \
+        --enable-user=_frr \
+        --enable-group=_frr \
+        --enable-vty-group=_frrvty \
+        --enable-configfile-mask=0640 \
+        --enable-logfile-mask=0640 \
+        --enable-rtadv \
+        --enable-fpm \
+        --with-pkg-git-version \
+        --with-pkg-extra-version=-MyOwnFRRVersion
+    gmake
+    gmake check
+    doas gmake install
+
+Create empty FRR configuration files
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    doas mkdir /var/frr
+    doas chown _frr:_frr /var/frr
+    doas chmod 755 /var/frr
+    doas mkdir /etc/frr
+    doas touch /etc/frr/zebra.conf
+    doas touch /etc/frr/bgpd.conf
+    doas touch /etc/frr/ospfd.conf
+    doas touch /etc/frr/ospf6d.conf
+    doas touch /etc/frr/isisd.conf
+    doas touch /etc/frr/ripd.conf
+    doas touch /etc/frr/ripngd.conf
+    doas touch /etc/frr/pimd.conf
+    doas touch /etc/frr/ldpd.conf
+    doas touch /etc/frr/nhrpd.conf
+    doas chown -R _frr:_frr /etc/frr
+    doas touch /etc/frr/vtysh.conf
+    doas chown -R _frr:_frrvty /etc/frr/vtysh.conf
+    doas chmod 750 /etc/frr
+    doas chmod 640 /etc/frr/*.conf
+
+Enable IP & IPv6 forwarding
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Add the following lines to the end of ``/etc/rc.conf``:
+
+::
+
+    net.inet6.ip6.forwarding=1      # 1=Permit forwarding of IPv6 packets
+    net.inet6.ip6.mforwarding=1     # 1=Permit forwarding of IPv6 multicast packets
+    net.inet6.ip6.multipath=1       # 1=Enable IPv6 multipath routing
+
+**Reboot** to apply the config to the system
+
+Enable MPLS Forwarding
+^^^^^^^^^^^^^^^^^^^^^^
+
+To enable MPLS forwarding on a given interface, use the following
+command:
+
+::
+
+    doas ifconfig em0 mpls
+
+Alternatively, to make MPLS forwarding persistent across reboots, add
+the "mpls" keyword in the hostname.\* files of the desired interfaces.
+Example:
+
+::
+
+    cat /etc/hostname.em0
+    inet 10.0.1.1 255.255.255.0 mpls
+
+Install rc.d init files
+^^^^^^^^^^^^^^^^^^^^^^^
+
+(create them in /etc/rc.d - no example are included at this time with
+FRR source)
+
+Example (for zebra - store as ``/etc/rc.d/frr_zebra.sh``)
+
+::
+
+    #!/bin/sh
+    #
+    # $OpenBSD: frr_zebra.rc,v 1.1 2013/04/18 20:29:08 sthen Exp $
+
+    daemon="/usr/local/sbin/zebra -d"
+
+    . /etc/rc.d/rc.subr
+
+    rc_cmd $1
+
+Enable FRR processes
+^^^^^^^^^^^^^^^^^^^^
+
+(Enable the required processes only)
+
+::
+
+    echo "frr_zebra=YES" >> /etc/rc.conf
+    echo "frr_bgpd=YES" >> /etc/rc.conf
+    echo "frr_ospfd=YES" >> /etc/rc.conf
+    echo "frr_ospf6d=YES" >> /etc/rc.conf
+    echo "frr_isisd=YES" >> /etc/rc.conf
+    echo "frr_ripngd=YES" >> /etc/rc.conf
+    echo "frr_ripd=YES" >> /etc/rc.conf
+    echo "frr_pimd=YES" >> /etc/rc.conf
+    echo "frr_ldpd=YES" >> /etc/rc.conf
diff --git a/doc/developer/building-frr-for-ubuntu1204.rst b/doc/developer/building-frr-for-ubuntu1204.rst
new file mode 100644 (file)
index 0000000..459d411
--- /dev/null
@@ -0,0 +1,188 @@
+Ubuntu 12.04LTS
+===============================================
+
+-  MPLS is not supported on ``Ubuntu 12.04`` with default kernel. MPLS
+   requires Linux Kernel 4.5 or higher (LDP can be built, but may have
+   limited use without MPLS) For an updated Ubuntu Kernel, see
+   http://kernel.ubuntu.com/~kernel-ppa/mainline/
+
+Install required packages
+-------------------------
+
+Add packages:
+
+::
+
+    apt-get install \
+       git autoconf automake libtool make gawk libreadline-dev texinfo \
+       dejagnu pkg-config libpam0g-dev libjson0-dev flex python-pip \
+       libc-ares-dev python3-dev python3-sphinx install-info
+
+Install newer bison from 14.04 package source (Ubuntu 12.04 package
+source is too old)
+
+::
+
+    mkdir builddir
+    cd builddir
+    wget http://archive.ubuntu.com/ubuntu/pool/main/b/bison/bison_3.0.2.dfsg-2.dsc
+    wget http://archive.ubuntu.com/ubuntu/pool/main/b/bison/bison_3.0.2.dfsg.orig.tar.bz2
+    wget http://archive.ubuntu.com/ubuntu/pool/main/b/bison/bison_3.0.2.dfsg-2.debian.tar.gz
+    tar -jxvf bison_3.0.2.dfsg.orig.tar.bz2
+    cd bison-3.0.2.dfsg/
+    tar xzf ../bison_3.0.2.dfsg-2.debian.tar.gz
+    sudo apt-get build-dep bison
+    debuild -b -uc -us
+    cd ..
+    sudo dpkg -i ./libbison-dev_3.0.2.dfsg-2_amd64.deb ./bison_3.0.2.dfsg-2_amd64.deb
+    cd ..
+    rm -rf builddir
+
+Install newer version of autoconf and automake:
+
+::
+
+    wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
+    tar xvf autoconf-2.69.tar.gz
+    cd autoconf-2.69
+    ./configure --prefix=/usr
+    make
+    sudo make install
+    cd ..
+
+    wget http://ftp.gnu.org/gnu/automake/automake-1.15.tar.gz
+    tar xvf automake-1.15.tar.gz
+    cd automake-1.15
+    ./configure --prefix=/usr
+    make
+    sudo make install
+    cd ..
+
+Install pytest:
+
+::
+
+    pip install pytest
+
+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 -r -g 92 frr
+    sudo groupadd -r -g 85 frrvty
+    sudo adduser --system --ingroup frr --home /var/run/frr/ \
+       --gecos "FRR suite" --shell /sbin/nologin frr
+    sudo usermod -a -G frrvty 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 \
+        --prefix=/usr \
+        --enable-exampledir=/usr/share/doc/frr/examples/ \
+        --localstatedir=/var/run/frr \
+        --sbindir=/usr/lib/frr \
+        --sysconfdir=/etc/frr \
+        --enable-pimd \
+        --enable-watchfrr \
+        --enable-ospfclient=yes \
+        --enable-ospfapi=yes \
+        --enable-multipath=64 \
+        --enable-user=frr \
+        --enable-group=frr \
+        --enable-vty-group=frrvty \
+        --enable-configfile-mask=0640 \
+        --enable-logfile-mask=0640 \
+        --enable-rtadv \
+        --enable-fpm \
+        --with-pkg-git-version \
+        --with-pkg-extra-version=-MyOwnFRRVersion
+    make
+    make check
+    sudo make install
+
+Create empty FRR configuration files
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo install -m 755 -o frr -g frr -d /var/log/frr
+    sudo install -m 775 -o frr -g frrvty -d /etc/frr
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/zebra.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/bgpd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospfd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospf6d.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/isisd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripngd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/pimd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ldpd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/nhrpd.conf
+    sudo install -m 640 -o frr -g frrvty /dev/null /etc/frr/vtysh.conf
+
+Enable IP & IPv6 forwarding
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Edit ``/etc/sysctl.conf`` and uncomment the following values (ignore the
+other settings)
+
+::
+
+    # Uncomment the next line to enable packet forwarding for IPv4
+    net.ipv4.ip_forward=1
+
+    # Uncomment the next line to enable packet forwarding for IPv6
+    #  Enabling this option disables Stateless Address Autoconfiguration
+    #  based on Router Advertisements for this host
+    net.ipv6.conf.all.forwarding=1
+
+**Reboot** or use ``sysctl -p`` to apply the same config to the running
+system
+
+Install the init.d service
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo install -m 755 tools/frr /etc/init.d/frr
+    sudo install -m 644 tools/etc/frr/daemons /etc/frr/daemons
+    sudo install -m 644 tools/etc/frr/daemons.conf /etc/frr/daemons.conf
+    sudo install -m 644 -o frr -g frr tools/etc/frr/vtysh.conf /etc/frr/vtysh.conf
+
+Enable daemons
+^^^^^^^^^^^^^^
+
+| Edit ``/etc/frr/daemons`` and change the value from "no" to "yes" for
+  those daemons you want to start by systemd.
+| For example.
+
+::
+
+    zebra=yes
+    bgpd=yes
+    ospfd=yes
+    ospf6d=yes
+    ripd=yes
+    ripngd=yes
+    isisd=yes
+
+Start the init.d service
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+-  /etc/init.d/frr start
+-  use ``/etc/init.d/frr status`` to check its status.
diff --git a/doc/developer/building-frr-for-ubuntu1404.rst b/doc/developer/building-frr-for-ubuntu1404.rst
new file mode 100644 (file)
index 0000000..681cc30
--- /dev/null
@@ -0,0 +1,143 @@
+Ubuntu 14.04LTS
+===============================================
+
+-  MPLS is not supported on ``Ubuntu 14.04`` with default kernel. MPLS
+   requires Linux Kernel 4.5 or higher (LDP can be built, but may have
+   limited use without MPLS) For an updated Ubuntu Kernel, see
+   http://kernel.ubuntu.com/~kernel-ppa/mainline/
+
+Install required packages
+-------------------------
+
+Add packages:
+
+::
+
+    apt-get install \
+       git autoconf automake libtool make gawk libreadline-dev texinfo dejagnu \
+       pkg-config libpam0g-dev libjson-c-dev bison flex python-pytest \
+       libc-ares-dev python3-dev python3-sphinx install-info
+
+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 -r -g 92 frr
+    sudo groupadd -r -g 85 frrvty
+    sudo adduser --system --ingroup frr --home /var/run/frr/ \
+       --gecos "FRR suite" --shell /sbin/nologin frr
+    sudo usermod -a -G frrvty 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 \
+        --prefix=/usr \
+        --enable-exampledir=/usr/share/doc/frr/examples/ \
+        --localstatedir=/var/run/frr \
+        --sbindir=/usr/lib/frr \
+        --sysconfdir=/etc/frr \
+        --enable-pimd \
+        --enable-watchfrr \
+        --enable-ospfclient=yes \
+        --enable-ospfapi=yes \
+        --enable-multipath=64 \
+        --enable-user=frr \
+        --enable-group=frr \
+        --enable-vty-group=frrvty \
+        --enable-configfile-mask=0640 \
+        --enable-logfile-mask=0640 \
+        --enable-rtadv \
+        --enable-fpm \
+        --enable-ldpd \
+        --with-pkg-git-version \
+        --with-pkg-extra-version=-MyOwnFRRVersion
+    make
+    make check
+    sudo make install
+
+Create empty FRR configuration files
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo install -m 755 -o frr -g frr -d /var/log/frr
+    sudo install -m 775 -o frr -g frrvty -d /etc/frr
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/zebra.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/bgpd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospfd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospf6d.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/isisd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripngd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/pimd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ldpd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/nhrpd.conf
+    sudo install -m 640 -o frr -g frrvty /dev/null /etc/frr/vtysh.conf
+
+Enable IP & IPv6 forwarding
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Edit ``/etc/sysctl.conf`` and uncomment the following values (ignore the
+other settings)
+
+::
+
+    # Uncomment the next line to enable packet forwarding for IPv4
+    net.ipv4.ip_forward=1
+
+    # Uncomment the next line to enable packet forwarding for IPv6
+    #  Enabling this option disables Stateless Address Autoconfiguration
+    #  based on Router Advertisements for this host
+    net.ipv6.conf.all.forwarding=1
+
+**Reboot** or use ``sysctl -p`` to apply the same config to the running
+system
+
+Install the init.d service
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo install -m 755 tools/frr /etc/init.d/frr
+    sudo install -m 644 tools/etc/frr/daemons /etc/frr/daemons
+    sudo install -m 644 tools/etc/frr/daemons.conf /etc/frr/daemons.conf
+    sudo install -m 644 -o frr -g frr tools/etc/frr/vtysh.conf /etc/frr/vtysh.conf
+
+Enable daemons
+^^^^^^^^^^^^^^
+
+| Edit ``/etc/frr/daemons`` and change the value from "no" to "yes" for
+  those daemons you want to start by systemd.
+| For example.
+
+::
+
+    zebra=yes
+    bgpd=yes
+    ospfd=yes
+    ospf6d=yes
+    ripd=yes
+    ripngd=yes
+    isisd=yes
+
+Start the init.d service
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+-  /etc/init.d/frr start
+-  use ``/etc/init.d/frr status`` to check its status.
diff --git a/doc/developer/building-frr-for-ubuntu1604.rst b/doc/developer/building-frr-for-ubuntu1604.rst
new file mode 100644 (file)
index 0000000..69c4e44
--- /dev/null
@@ -0,0 +1,177 @@
+Ubuntu 16.04LTS
+===============================================
+
+-  MPLS is not supported on ``Ubuntu 16.04`` with default kernel. MPLS
+   requires Linux Kernel 4.5 or higher (LDP can be built, but may have
+   limited use without MPLS) For an updated Ubuntu Kernel, see
+   http://kernel.ubuntu.com/~kernel-ppa/mainline/
+
+Install required packages
+-------------------------
+
+Add packages:
+
+::
+
+    apt-get install \
+       git autoconf automake libtool make gawk libreadline-dev texinfo dejagnu \
+       pkg-config libpam0g-dev libjson-c-dev bison flex python-pytest \
+       libc-ares-dev python3-dev libsystemd-dev python-ipaddr python3-sphinx \
+       install-info
+
+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 -r -g 92 frr
+    sudo groupadd -r -g 85 frrvty
+    sudo adduser --system --ingroup frr --home /var/run/frr/ \
+       --gecos "FRR suite" --shell /sbin/nologin frr
+    sudo usermod -a -G frrvty 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 \
+        --prefix=/usr \
+        --enable-exampledir=/usr/share/doc/frr/examples/ \
+        --localstatedir=/var/run/frr \
+        --sbindir=/usr/lib/frr \
+        --sysconfdir=/etc/frr \
+        --enable-pimd \
+        --enable-watchfrr \
+        --enable-ospfclient=yes \
+        --enable-ospfapi=yes \
+        --enable-multipath=64 \
+        --enable-user=frr \
+        --enable-group=frr \
+        --enable-vty-group=frrvty \
+        --enable-configfile-mask=0640 \
+        --enable-logfile-mask=0640 \
+        --enable-rtadv \
+        --enable-fpm \
+        --enable-systemd=yes \
+        --with-pkg-git-version \
+        --with-pkg-extra-version=-MyOwnFRRVersion
+    make
+    make check
+    sudo make install
+
+Create empty FRR configuration files
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo install -m 755 -o frr -g frr -d /var/log/frr
+    sudo install -m 775 -o frr -g frrvty -d /etc/frr
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/zebra.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/bgpd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospfd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospf6d.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/isisd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripngd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/pimd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ldpd.conf
+    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/nhrpd.conf
+    sudo install -m 640 -o frr -g frrvty /dev/null /etc/frr/vtysh.conf
+
+Enable IPv4 & IPv6 forwarding
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Edit ``/etc/sysctl.conf`` and uncomment the following values (ignore the
+other settings)
+
+::
+
+    # Uncomment the next line to enable packet forwarding for IPv4
+    net.ipv4.ip_forward=1
+
+    # Uncomment the next line to enable packet forwarding for IPv6
+    #  Enabling this option disables Stateless Address Autoconfiguration
+    #  based on Router Advertisements for this host
+    net.ipv6.conf.all.forwarding=1
+
+Enable MPLS Forwarding (with Linux Kernel >= 4.5)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Edit ``/etc/sysctl.conf`` and the following lines. Make sure to add a
+line equal to ``net.mpls.conf.eth0.input`` or each interface used with
+MPLS
+
+::
+
+    # Enable MPLS Label processing on all interfaces
+    net.mpls.conf.eth0.input=1
+    net.mpls.conf.eth1.input=1
+    net.mpls.conf.eth2.input=1
+    net.mpls.platform_labels=100000
+
+Add MPLS kernel modules
+^^^^^^^^^^^^^^^^^^^^^^^
+
+Add the following lines to ``/etc/modules-load.d/modules.conf``:
+
+::
+
+    # Load MPLS Kernel Modules
+    mpls-router
+    mpls-iptunnel
+
+**Reboot** or use ``sysctl -p`` to apply the same config to the running
+system
+
+Install the systemd service (if rebooted from last step, change directory back to frr directory)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+    sudo install -m 644 tools/frr.service /etc/systemd/system/frr.service
+    sudo install -m 644 tools/etc/default/frr /etc/default/frr
+    sudo install -m 644 tools/etc/frr/daemons /etc/frr/daemons
+    sudo install -m 644 tools/etc/frr/daemons.conf /etc/frr/daemons.conf
+    sudo install -m 644 tools/etc/frr/frr.conf /etc/frr/frr.conf
+    sudo install -m 644 -o frr -g frr tools/etc/frr/vtysh.conf /etc/frr/vtysh.conf
+
+Enable daemons
+^^^^^^^^^^^^^^
+
+| Edit ``/etc/frr/daemons`` and change the value from "no" to "yes" for
+  those daemons you want to start by systemd.
+| For example.
+
+::
+
+    zebra=yes
+    bgpd=yes
+    ospfd=yes
+    ospf6d=yes
+    ripd=yes
+    ripngd=yes
+    isisd=yes
+
+Enable the systemd service
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+-  systemctl enable frr
+
+Start the systemd service
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+-  systemctl start frr
+-  use ``systemctl status frr`` to check its status.
diff --git a/doc/developer/building-frr-for-ubuntu1804.rst b/doc/developer/building-frr-for-ubuntu1804.rst
new file mode 100644 (file)
index 0000000..50e90fc
--- /dev/null
@@ -0,0 +1,249 @@
+Ubuntu 18.04 LTS
+================
+
+Install dependencies
+--------------------
+
+Required packages
+^^^^^^^^^^^^^^^^^
+
+::
+
+   sudo apt-get install \
+      git autoconf automake libtool make gawk libreadline-dev texinfo \
+      pkg-config libpam0g-dev libjson-c-dev bison flex python-pytest \
+      libc-ares-dev python3-dev libsystemd-dev python-ipaddr python3-sphinx \
+      install-info
+
+Optional packages
+^^^^^^^^^^^^^^^^^
+
+Dependencies for additional functionality can be installed as-desired.
+
+Protobuf
+~~~~~~~~
+
+::
+
+   sudo apt-get install \
+       protobuf-c-compiler \
+       libprotobuf-c-dev
+
+ZeroMQ
+~~~~~~
+
+::
+
+   sudo apt-get install \
+       libzmq5 \
+       libzmq3-dev
+
+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 -r -g 92 frr
+   sudo groupadd -r -g 85 frrvty
+   sudo adduser --system --ingroup frr --home /var/run/frr/ \
+      --gecos "FRR suite" --shell /sbin/nologin frr
+   sudo usermod -a -G frrvty frr
+
+Download source
+^^^^^^^^^^^^^^^
+
+::
+
+   git clone https://github.com/frrouting/frr.git frr
+
+Configure
+^^^^^^^^^
+Options below are provided as an example.
+
+.. seealso:: *Installation* section of user guide
+
+.. code-block:: shell
+
+   cd frr
+   ./bootstrap.sh
+   ./configure \
+       --prefix=/usr \
+       --enable-exampledir=/usr/share/doc/frr/examples/ \
+       --localstatedir=/var/run/frr \
+       --sbindir=/usr/lib/frr \
+       --sysconfdir=/etc/frr \
+       --enable-pimd \
+       --enable-watchfrr \
+       --enable-ospfclient=yes \
+       --enable-ospfapi=yes \
+       --enable-multipath=64 \
+       --enable-user=frr \
+       --enable-group=frr \
+       --enable-vty-group=frrvty \
+       --enable-configfile-mask=0640 \
+       --enable-logfile-mask=0640 \
+       --enable-rtadv \
+       --enable-fpm \
+       --enable-systemd=yes \
+       --with-pkg-git-version \
+       --with-pkg-extra-version=-MyOwnFRRVersion
+
+If optional packages were installed, the associated feature may now be
+enabled.
+
+.. option:: --enable-protobuf
+
+Enable support for protobuf transport
+
+.. option:: --enable-zeromq
+
+Enable support for ZeroMQ transport
+
+Compile
+^^^^^^^
+
+::
+
+   make
+   make check
+   sudo make install
+
+Create empty FRR configuration files
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Although not strictly necessary, it's good practice to create empty
+configuration files _before_ starting FRR. This assures that the permissions 
+are correct. If the files are not already present, FRR will create them.
+
+It's also important to consider _which_ files to create. FRR supports writing
+configuration to a monolithic file, :file:`/etc/frr/frr.conf`.
+
+.. seealso:: *VTYSH* section of user guide
+
+The presence of :file:`/etc/frr/frr.conf` on startup implicitly configures FRR
+to ignore daemon-specific configuration files.
+
+Daemon-specific configuration
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+::
+
+   sudo install -m 755 -o frr -g frr -d /var/log/frr
+   sudo install -m 775 -o frr -g frrvty -d /etc/frr
+   sudo install -m 640 -o frr -g frr /dev/null /etc/frr/zebra.conf
+   sudo install -m 640 -o frr -g frr /dev/null /etc/frr/bgpd.conf
+   sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospfd.conf
+   sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospf6d.conf
+   sudo install -m 640 -o frr -g frr /dev/null /etc/frr/isisd.conf
+   sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripd.conf
+   sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripngd.conf
+   sudo install -m 640 -o frr -g frr /dev/null /etc/frr/pimd.conf
+   sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ldpd.conf
+   sudo install -m 640 -o frr -g frr /dev/null /etc/frr/nhrpd.conf
+
+Monolithic configuration
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+::
+
+   sudo install -m 755 -o frr -g frr -d /var/log/frr
+   sudo install -m 775 -o frr -g frrvty -d /etc/frr
+   sudo install -m 640 -o frr -g frr /dev/null /etc/frr/frr.conf
+
+Enable IPv4 & IPv6 forwarding
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Edit :file:`/etc/sysctl.conf` and uncomment the following values (ignore the
+other settings):
+
+::
+
+   # Uncomment the next line to enable packet forwarding for IPv4
+   net.ipv4.ip_forward=1
+
+   # Uncomment the next line to enable packet forwarding for IPv6
+   #  Enabling this option disables Stateless Address Autoconfiguration
+   #  based on Router Advertisements for this host
+   net.ipv6.conf.all.forwarding=1
+
+Add MPLS kernel modules
+^^^^^^^^^^^^^^^^^^^^^^^
+
+Ubuntu 18.04 ships with kernel 4.15. MPLS modules are present by default.  To
+enable, add the following lines to :file:`/etc/modules-load.d/modules.conf`:
+
+::
+
+   # Load MPLS Kernel Modules
+   mpls_router
+   mpls_iptunnel
+
+Reboot or use ``sysctl -p`` to apply the same config to the running system.
+
+Enable MPLS Forwarding
+^^^^^^^^^^^^^^^^^^^^^^
+
+Edit :file:`/etc/sysctl.conf` and the following lines. Make sure to add a line
+equal to :file:`net.mpls.conf.eth0.input` for each interface used with MPLS.
+
+::
+
+   # Enable MPLS Label processing on all interfaces
+   net.mpls.conf.eth0.input=1
+   net.mpls.conf.eth1.input=1
+   net.mpls.conf.eth2.input=1
+   net.mpls.platform_labels=100000
+
+Install the systemd service
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+   sudo install -m 644 tools/frr.service /etc/systemd/system/frr.service
+   sudo install -m 644 tools/etc/default/frr /etc/default/frr
+   sudo install -m 644 tools/etc/frr/daemons /etc/frr/daemons
+   sudo install -m 644 tools/etc/frr/daemons.conf /etc/frr/daemons.conf
+   sudo install -m 644 tools/etc/frr/frr.conf /etc/frr/frr.conf
+   sudo install -m 644 -o frr -g frr tools/etc/frr/vtysh.conf /etc/frr/vtysh.conf
+
+Enable daemons
+^^^^^^^^^^^^^^
+
+Edit ``/etc/frr/daemons`` and change the value from "no" to "yes" for those
+daemons you want to start by systemd.  For example:
+
+::
+
+   zebra=yes
+   bgpd=yes
+   ospfd=yes
+   ospf6d=yes
+   ripd=yes
+   ripngd=yes
+   isisd=yes
+
+Enable the systemd service
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Enabling the systemd service causes FRR to be started upon boot. To enable it,
+use the following command:
+
+.. code-block:: shell
+
+   systemctl enable frr
+
+Start the systemd service
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. code-block:: shell
+
+   systemctl start frr
+
+After starting the service, you can use ``systemctl status frr`` to check its
+status.
diff --git a/doc/developer/building-frr-on-alpine.rst b/doc/developer/building-frr-on-alpine.rst
deleted file mode 100644 (file)
index d303784..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-Alpine Linux 3.7+
-=========================================================
-
-For building Alpine Linux dev packages, we use docker.
-
-Install docker 17.05 or later
------------------------------
-
-Depending on your host, there are different ways of installing docker.  Refer
-to the documentation here for instructions on how to install a free version of
-docker: https://www.docker.com/community-edition
-
-Pre-built packages and docker images
-------------------------------------
-
-The master branch of https://github.com/frrouting/frr.git has a
-continuous delivery of docker images to docker hub at:
-https://hub.docker.com/r/ajones17/frr/. These images have the frr packages
-in /pkgs/apk and have the frr package pre-installed.  To copy Alpine
-packages out of these images:
-
-::
-
-   id=`docker create ajones17/frr:latest`
-   docker cp ${id}:/pkgs _some_directory_
-   docker rm $id
-
-To run the frr daemons (see below for how to configure them):
-
-::
-
-   docker run -it --rm --name frr ajones17/frr:latest
-   docker exec -it frr /bin/sh
-
-Work with sources
------------------
-
-::
-
-   git clone https://github.com/frrouting/frr.git frr
-   cd frr
-
-Build apk packages
-------------------
-
-::
-
-   ./docker/alpine/build.sh
-
-This will put the apk packages in:
-
-::
-
-   ./docker/pkgs/apk/x86_64/
-
-Usage
------
-
-To create a base image with the frr packages installed:
-
-::
-
-   docker build --rm -f docker/alpine/Dockerfile -t frr:latest .
-
-Or, if you don't have a git checkout of the sources, you can build a base
-image directly off the github account:
-
-::
-
-   docker build --rm -f docker/alpine/Dockerfile -t frr:latest \
-       https://github.com/frrouting/frr.git
-
-And to run the image:
-
-::
-
-   docker run -it --rm --name frr frr:latest
-
-In the default configuration, none of the frr daemons will  be running.
-To configure the daemons, exec into the container and edit the configuration
-files or mount a volume with configuration files into the container on
-startup.  To configure by hand:
-
-::
-
-   docker exec -it frr /bin/sh
-   vi /etc/frr/daemons
-   vi /etc/frr/daemons.conf
-   cp /etc/frr/zebra.conf.sample /etc/frr/zebra.conf
-   vi /etc/frr/zebra.conf
-   /etc/init.d/frr start
-
-Or, to configure the daemons using /etc/frr from a host volume, put the
-config files in, say, ./docker/etc and bind mount that into the
-container:
-
-::
-
-   docker run -it --rm -v `pwd`/docker/etc:/etc/frr frr:latest
-
-We can also build the base image directly from docker-compose, with a
-docker-compose.yml file like this one:
-
-::
-
-   version: '2.2'
-
-   services:
-      frr:
-         build:
-            context: https://github.com/frrouting/frr.git
-            dockerfile: docker/alpine/Dockerfile
diff --git a/doc/developer/building-frr-on-centos6.rst b/doc/developer/building-frr-on-centos6.rst
deleted file mode 100644 (file)
index d503765..0000000
+++ /dev/null
@@ -1,255 +0,0 @@
-CentOS 6
-========================================
-
-(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)
-
-Instructions are tested with ``CentOS 6.8`` on ``x86_64`` platform
-
-Warning:
---------
-``CentOS 6`` is very old and not fully supported by the FRR community
-anymore. Building FRR takes multiple manual steps to update the build
-system with newer packages than what's available from the archives.
-However, the built packages can still be installed afterwards on
-a standard ``CentOS 6`` without any special packages.
-
-Support for CentOS 6 is now on a best-effort base by the community.
-
-CentOS 6 restrictions:
-----------------------
-
--  PIMd is not supported on ``CentOS 6``. Upgrade to ``CentOS 7`` if
-   PIMd is needed
--  MPLS is not supported on ``CentOS 6``. MPLS requires Linux Kernel 4.5
-   or higher (LDP can be built, but may have limited use without MPLS)
--  Zebra is unable to detect what bridge/vrf an interface is associcated
-   with (IFLA\_INFO\_SLAVE\_KIND does not exist in the kernel headers,
-   you can use a newer kernel + headers to get this functionality)
--  frr\_reload.py will not work, as this requires Python 2.7, and CentOS
-   6 only has 2.6. You can install Python 2.7 via IUS, but it won't work
-   properly unless you compile and install the ipaddr package for it.
--  Building the package requires Sphinx >= 1.1. Only a non-standard
-   package provides a newer sphinx and requires manual installation
-   (see below)
-
-
-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 flex epel-release perl-XML-LibXML \
-      c-ares-devel
-
-Install newer version of bison (CentOS 6 package source is too old) from
-CentOS 7
-
-::
-
-    sudo yum install rpm-build
-    curl -O http://vault.centos.org/7.0.1406/os/Source/SPackages/bison-2.7-4.el7.src.rpm
-    rpmbuild --rebuild ./bison-2.7-4.el7.src.rpm
-    sudo yum install ./rpmbuild/RPMS/x86_64/bison-2.7-4.el6.x86_64.rpm
-    rm -rf rpmbuild
-
-Install newer version of autoconf and automake (Package versions are too
-old)
-
-::
-
-    curl -O http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
-    tar xvf autoconf-2.69.tar.gz
-    cd autoconf-2.69
-    ./configure --prefix=/usr
-    make
-    sudo make install
-    cd ..
-
-    curl -O http://ftp.gnu.org/gnu/automake/automake-1.15.tar.gz
-    tar xvf automake-1.15.tar.gz
-    cd automake-1.15
-    ./configure --prefix=/usr
-    make
-    sudo make install
-    cd ..
-
-Install ``Python 2.7`` in parallel to default 2.6. Make sure you've
-install EPEL (``epel-release`` as above). Then install current
-``python27``, ``python27-devel`` and ``pytest``
-
-::
-
-    sudo rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
-    sudo rpm -ivh https://centos6.iuscommunity.org/ius-release.rpm
-    sudo yum install python27 python27-pip python27-devel
-    sudo pip2.7 install pytest
-
-Please note that ``CentOS 6`` needs to keep python pointing to version
-2.6 for ``yum`` to keep working, so don't create a symlink for python2.7
-to python
-
-Install newer ``Sphinx-Build`` based on ``Python 2.7``
-
-Create a new repo ``/etc/yum.repos.d/puias6.repo`` with the following contents:
-
-::
-
-    ### Name: RPM Repository for RHEL 6 - PUIAS (used for Sphinx-Build)
-    ### URL: http://springdale.math.ias.edu/data/puias/computational
-    [puias-computational]
-    name = RPM Repository for RHEL 6 - Sphinx-Build
-    baseurl = http://springdale.math.ias.edu/data/puias/computational/$releasever/$basearch
-    #mirrorlist =
-    enabled = 1
-    protect = 0
-    gpgkey =
-    gpgcheck = 0
-
-Update rpm database & Install newer sphinx
-
-::
-
-    sudo yum update
-    sudo yum install python27-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 \
-        --disable-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 \
-        --disable-exampledir \
-        --enable-watchfrr \
-        --disable-ldpd \
-        --enable-fpm \
-        --enable-nhrpd \
-        --enable-eigrpd \
-        --enable-babeld \
-        --with-pkg-git-version \
-        --with-pkg-extra-version=-MyOwnFRRVersion
-    make SPHINXBUILD=sphinx-build2.7
-    make check PYTHON=/usr/bin/python2.7 SPHINXBUILD=sphinx-build2.7
-    sudo make SPHINXBUILD=sphinx-build2.7 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/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
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Edit ``/etc/sysctl.conf`` and set the following values (ignore the other
-settings)
-
-::
-
-    # Controls IP packet forwarding
-    net.ipv4.ip_forward = 1
-    net.ipv6.conf.all.forwarding=1
-
-    # Controls source route verification
-    net.ipv4.conf.default.rp_filter = 0
-
-Load the modifed sysctl's on the system:
-
-::
-
-    sudo sysctl -p /etc/sysctl.d/90-routing-sysctl.conf
-
-Add init.d startup files
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    sudo install -p -m 755 redhat/frr.init /etc/init.d/frr
-    sudo chkconfig --add frr
-
-Enable frr daemon at startup
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    sudo chkconfig frr on
-
-Start FRR manually (or reboot)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    sudo /etc/init.d/frr start
diff --git a/doc/developer/building-frr-on-centos7.rst b/doc/developer/building-frr-on-centos7.rst
deleted file mode 100644 (file)
index 31cd4dc..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-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
diff --git a/doc/developer/building-frr-on-debian8.rst b/doc/developer/building-frr-on-debian8.rst
deleted file mode 100644 (file)
index d1e65a4..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-Debian 8
-========================================
-
-Debian 8 restrictions:
-----------------------
-
--  MPLS is not supported on ``Debian 8`` 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 apt-get install git autoconf automake libtool make gawk \
-       libreadline-dev texinfo libjson-c-dev pkg-config bison flex \
-       python-pip libc-ares-dev python3-dev python3-sphinx
-
-Install newer pytest (>3.0) from pip
-
-::
-
-    sudo pip install pytest
-
-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 addgroup --system --gid 92 frr
-    sudo addgroup --system --gid 85 frrvty
-    sudo adduser --system --ingroup frr --home /var/run/frr/ \
-       --gecos "FRR suite" --shell /bin/false frr
-    sudo usermod -a -G frrvty 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 \
-        --enable-exampledir=/usr/share/doc/frr/examples/ \
-        --localstatedir=/var/run/frr \
-        --sbindir=/usr/lib/frr \
-        --sysconfdir=/etc/frr \
-        --enable-vtysh \
-        --enable-isisd \
-        --enable-pimd \
-        --enable-watchfrr \
-        --enable-ospfclient=yes \
-        --enable-ospfapi=yes \
-        --enable-multipath=64 \
-        --enable-user=frr \
-        --enable-group=frr \
-        --enable-vty-group=frrvty \
-        --enable-configfile-mask=0640 \
-        --enable-logfile-mask=0640 \
-        --enable-rtadv \
-        --enable-fpm \
-        --enable-ldpd \
-        --with-pkg-git-version \
-        --with-pkg-extra-version=-MyOwnFRRVersion
-    make
-    make check
-    sudo make install
-
-Create empty FRR configuration files
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    sudo install -m 755 -o frr -g frr -d /var/log/frr
-    sudo install -m 775 -o frr -g frrvty -d /etc/frr
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/zebra.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/bgpd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospfd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospf6d.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/isisd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripngd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/pimd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ldpd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/nhrpd.conf
-    sudo install -m 640 -o frr -g frrvty /dev/null /etc/frr/vtysh.conf
-
-Enable IP & IPv6 forwarding
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Edit ``/etc/sysctl.conf`` and uncomment the following values (ignore the
-other settings)
-
-::
-
-    # Uncomment the next line to enable packet forwarding for IPv4
-    net.ipv4.ip_forward=1
-
-    # Uncomment the next line to enable packet forwarding for IPv6
-    #  Enabling this option disables Stateless Address Autoconfiguration
-    #  based on Router Advertisements for this host
-    net.ipv6.conf.all.forwarding=1
-
-**Reboot** or use ``sysctl -p`` to apply the same config to the running
-system
-
-Troubleshooting
-^^^^^^^^^^^^^^^
-
-**Local state directory**
-
-The local state directory must exist and have the correct permissions
-applied for the frrouting daemons to start. In the above ./configure
-example the local state directory is set to /var/run/frr
-(--localstatedir=/var/run/frr) Debian considers /var/run/frr to be
-temporary and this is removed after a reboot.
-
-When using a different local state directory you need to create the new
-directory and change the ownership to the frr user, for example:
-
-::
-
-    mkdir /var/opt/frr
-    chown frr /var/opt/frr
-
-**Shared library error**
-
-If you try and start any of the frrouting daemons you may see the below
-error due to the frrouting shared library directory not being found:
-
-::
-
-    ./zebra: error while loading shared libraries: libfrr.so.0: cannot open shared object file: No such file or directory
-
-The fix is to add the following line to /etc/ld.so.conf which will
-continue to reference the library directory after the system reboots. To
-load the library directory path immediately run the ldconfig command
-after adding the line to the file eg:
-
-::
-
-    echo include /usr/local/lib >> /etc/ld.so.conf
-    ldconfig
diff --git a/doc/developer/building-frr-on-debian9.rst b/doc/developer/building-frr-on-debian9.rst
deleted file mode 100644 (file)
index 7dad9a7..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-Debian 9
-========================================
-
-Install required packages
--------------------------
-
-Add packages:
-
-::
-
-    sudo apt-get install git autoconf automake libtool make \
-      libreadline-dev texinfo libjson-c-dev pkg-config bison flex \
-      python-pip libc-ares-dev python3-dev python-pytest python3-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 addgroup --system --gid 92 frr
-    sudo addgroup --system --gid 85 frrvty
-    sudo adduser --system --ingroup frr --home /var/opt/frr/ \
-       --gecos "FRR suite" --shell /bin/false frr
-    sudo usermod -a -G frrvty 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
-    git checkout stable/3.0
-    ./bootstrap.sh
-    ./configure \
-        --enable-exampledir=/usr/share/doc/frr/examples/ \
-        --localstatedir=/var/opt/frr \
-        --sbindir=/usr/lib/frr \
-        --sysconfdir=/etc/frr \
-        --enable-vtysh \
-        --enable-isisd \
-        --enable-pimd \
-        --enable-watchfrr \
-        --enable-ospfclient=yes \
-        --enable-ospfapi=yes \
-        --enable-multipath=64 \
-        --enable-user=frr \
-        --enable-group=frr \
-        --enable-vty-group=frrvty \
-        --enable-configfile-mask=0640 \
-        --enable-logfile-mask=0640 \
-        --enable-rtadv \
-        --enable-fpm \
-        --enable-ldpd \
-        --with-pkg-git-version \
-        --with-pkg-extra-version=-MyOwnFRRVersion
-    make
-    make check
-    sudo make install
-
-Create empty FRR configuration files
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    sudo install -m 755 -o frr -g frr -d /var/log/frr
-    sudo install -m 755 -o frr -g frr -d /var/opt/frr
-    sudo install -m 775 -o frr -g frrvty -d /etc/frr
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/zebra.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/bgpd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospfd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospf6d.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/isisd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripngd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/pimd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ldpd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/nhrpd.conf
-    sudo install -m 640 -o frr -g frrvty /dev/null /etc/frr/vtysh.conf
-
-Enable IP & IPv6 forwarding
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Edit ``/etc/sysctl.conf`` and uncomment the following values (ignore the
-other settings)
-
-::
-
-    # Uncomment the next line to enable packet forwarding for IPv4
-    net.ipv4.ip_forward=1
-
-    # Uncomment the next line to enable packet forwarding for IPv6
-    #  Enabling this option disables Stateless Address Autoconfiguration
-    #  based on Router Advertisements for this host
-    net.ipv6.conf.all.forwarding=1
-
-**Reboot** or use ``sysctl -p`` to apply the same config to the running
-system
-
-Troubleshooting
----------------
-
-Shared library error
-^^^^^^^^^^^^^^^^^^^^
-
-If you try and start any of the frrouting daemons you may see the below
-error due to the frrouting shared library directory not being found:
-
-::
-
-   ./zebra: error while loading shared libraries: libfrr.so.0: cannot open
-   shared object file: No such file or directory
-
-The fix is to add the following line to /etc/ld.so.conf which will
-continue to reference the library directory after the system reboots. To
-load the library directory path immediately run the ldconfig command
-after adding the line to the file eg:
-
-::
-
-   echo include /usr/local/lib >> /etc/ld.so.conf
-   ldconfig
diff --git a/doc/developer/building-frr-on-fedora24.rst b/doc/developer/building-frr-on-fedora24.rst
deleted file mode 100644 (file)
index 208c580..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-Fedora 24
-=========================================
-
-(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)
-
-Install required packages
--------------------------
-
-Add packages:
-
-::
-
-    sudo dnf install git autoconf automake libtool make gawk \
-      readline-devel texinfo net-snmp-devel groff pkgconfig \
-      json-c-devel pam-devel perl-XML-LibXML pytest bison flex \
-      c-ares-devel python3-devel python3-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 \
-        --disable-exampledir \
-        --enable-watchfrr \
-        --enable-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/ldpd.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 (and MPLS)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Create a new file ``/etc/sysctl.d/90-routing-sysctl.conf`` with the
-following content: (Please make sure to list all interfaces with
-required MPLS similar to ``net.mpls.conf.eth0.input=1``)
-
-::
-
-    # Sysctl for routing
-    #
-    # Routing: We need to forward packets
-    net.ipv4.conf.all.forwarding=1
-    net.ipv6.conf.all.forwarding=1
-    #
-    # Enable MPLS Label processing on all interfaces
-    net.mpls.conf.eth0.input=1
-    net.mpls.conf.eth1.input=1
-    net.mpls.conf.eth2.input=1
-    net.mpls.platform_labels=100000
-
-Load the modifed sysctl's on the system:
-
-::
-
-    sudo sysctl -p /etc/sysctl.d/90-routing-sysctl.conf
-
-Create a new file ``/etc/modules-load.d/mpls.conf`` with the following
-content:
-
-::
-
-    # Load MPLS Kernel Modules
-    mpls-router
-    mpls-iptunnel
-
-And load the kernel modules on the running system:
-
-::
-
-    sudo modprobe mpls-router mpls-iptunnel
-
-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
-
-Enable required frr at startup
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    sudo systemctl enable frr
-
-Reboot or start FRR manually
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    sudo systemctl start frr
diff --git a/doc/developer/building-frr-on-freebsd10.rst b/doc/developer/building-frr-on-freebsd10.rst
deleted file mode 100644 (file)
index 5d14db5..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-FreeBSD 10
-==========================================
-
-FreeBSD 10 restrictions:
-------------------------
-
--  MPLS is not supported on ``FreeBSD``. MPLS requires a Linux Kernel
-   (4.5 or higher). LDP can be built, but may have limited use without
-   MPLS
-
-Install required packages
--------------------------
-
-Add packages: (Allow the install of the package managment tool if this
-is first package install and asked)
-
-::
-
-    pkg install git autoconf automake libtool gmake gawk json-c pkgconf \
-        bison flex py27-pytest c-ares python3 py-sphinx
-
-Make sure there is no /usr/bin/flex preinstalled (and use the newly
-installed in /usr/local/bin): (FreeBSD frequently provides a older flex
-as part of the base OS which takes preference in path)
-
-::
-
-    rm -f /usr/bin/flex
-
-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 group and user
-^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    pw groupadd frr -g 101
-    pw groupadd frrvty -g 102
-    pw adduser frr -g 101 -u 101 -G 102 -c "FRR suite" \
-        -d /usr/local/etc/frr -s /usr/sbin/nologin
-
-(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
-    export MAKE=gmake
-    export LDFLAGS="-L/usr/local/lib"
-    export CPPFLAGS="-I/usr/local/include"
-    ./configure \
-        --sysconfdir=/usr/local/etc/frr \
-        --enable-pkgsrcrcdir=/usr/pkg/share/examples/rc.d \
-        --localstatedir=/var/run/frr \
-        --prefix=/usr/local \
-        --enable-ospfclient=yes \
-        --enable-ospfapi=yes \
-        --enable-multipath=64 \
-        --enable-user=frr \
-        --enable-group=frr \
-        --enable-vty-group=frrvty \
-        --enable-configfile-mask=0640 \
-        --enable-logfile-mask=0640 \
-        --enable-rtadv \
-        --enable-fpm \
-        --with-pkg-git-version \
-        --with-pkg-extra-version=-MyOwnFRRVersion
-    gmake
-    gmake check
-    sudo gmake install
-
-Create empty FRR configuration files
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    sudo mkdir /usr/local/etc/frr
-    sudo touch /usr/local/etc/frr/zebra.conf
-    sudo touch /usr/local/etc/frr/bgpd.conf
-    sudo touch /usr/local/etc/frr/ospfd.conf
-    sudo touch /usr/local/etc/frr/ospf6d.conf
-    sudo touch /usr/local/etc/frr/isisd.conf
-    sudo touch /usr/local/etc/frr/ripd.conf
-    sudo touch /usr/local/etc/frr/ripngd.conf
-    sudo touch /usr/local/etc/frr/pimd.conf
-    sudo chown -R frr:frr /usr/local/etc/frr
-    sudo touch /usr/local/etc/frr/vtysh.conf
-    sudo chown frr:frrvty /usr/local/etc/frr/vtysh.conf
-    sudo chmod 640 /usr/local/etc/frr/*.conf
-
-Enable IP & IPv6 forwarding
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Add the following lines to the end of ``/etc/sysctl.conf``:
-
-::
-
-    # Routing: We need to forward packets
-    net.inet.ip.forwarding=1
-    net.inet6.ip6.forwarding=1
-
-**Reboot** or use ``sysctl`` to apply the same config to the running
-system
diff --git a/doc/developer/building-frr-on-freebsd11.rst b/doc/developer/building-frr-on-freebsd11.rst
deleted file mode 100644 (file)
index 87fb302..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-FreeBSD 11
-==========================================
-
-FreeBSD 11 restrictions:
-------------------------
-
--  MPLS is not supported on ``FreeBSD``. MPLS requires a Linux Kernel
-   (4.5 or higher). LDP can be built, but may have limited use without
-   MPLS
-
-Install required packages
--------------------------
-
-Add packages: (Allow the install of the package managment tool if this
-is first package install and asked)
-
-::
-
-    pkg install git autoconf automake libtool gmake gawk json-c pkgconf \
-        bison flex py27-pytest c-ares python3 py-sphinx
-
-Make sure there is no /usr/bin/flex preinstalled (and use the newly
-installed in /usr/local/bin): (FreeBSD frequently provides a older flex
-as part of the base OS which takes preference in path)
-
-::
-
-    rm -f /usr/bin/flex
-
-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 group and user
-^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    pw groupadd frr -g 101
-    pw groupadd frrvty -g 102
-    pw adduser frr -g 101 -u 101 -G 102 -c "FRR suite" \
-        -d /usr/local/etc/frr -s /usr/sbin/nologin
-
-(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
-    export MAKE=gmake
-    export LDFLAGS="-L/usr/local/lib"
-    export CPPFLAGS="-I/usr/local/include"
-    ./configure \
-        --sysconfdir=/usr/local/etc/frr \
-        --enable-pkgsrcrcdir=/usr/pkg/share/examples/rc.d \
-        --localstatedir=/var/run/frr \
-        --prefix=/usr/local \
-        --enable-ospfclient=yes \
-        --enable-ospfapi=yes \
-        --enable-multipath=64 \
-        --enable-user=frr \
-        --enable-group=frr \
-        --enable-vty-group=frrvty \
-        --enable-configfile-mask=0640 \
-        --enable-logfile-mask=0640 \
-        --enable-rtadv \
-        --enable-fpm \
-        --with-pkg-git-version \
-        --with-pkg-extra-version=-MyOwnFRRVersion
-    gmake
-    gmake check
-    sudo gmake install
-
-Create empty FRR configuration files
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    sudo mkdir /usr/local/etc/frr
-    sudo touch /usr/local/etc/frr/zebra.conf
-    sudo touch /usr/local/etc/frr/bgpd.conf
-    sudo touch /usr/local/etc/frr/ospfd.conf
-    sudo touch /usr/local/etc/frr/ospf6d.conf
-    sudo touch /usr/local/etc/frr/isisd.conf
-    sudo touch /usr/local/etc/frr/ripd.conf
-    sudo touch /usr/local/etc/frr/ripngd.conf
-    sudo touch /usr/local/etc/frr/pimd.conf
-    sudo chown -R frr:frr /usr/local/etc/frr
-    sudo touch /usr/local/etc/frr/vtysh.conf
-    sudo chown frr:frrvty /usr/local/etc/frr/vtysh.conf
-    sudo chmod 640 /usr/local/etc/frr/*.conf
-
-Enable IP & IPv6 forwarding
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Add the following lines to the end of ``/etc/sysctl.conf``:
-
-::
-
-    # Routing: We need to forward packets
-    net.inet.ip.forwarding=1
-    net.inet6.ip6.forwarding=1
-
-**Reboot** or use ``sysctl`` to apply the same config to the running
-system
diff --git a/doc/developer/building-frr-on-freebsd9.rst b/doc/developer/building-frr-on-freebsd9.rst
deleted file mode 100644 (file)
index 02279de..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-FreeBSD 9
-=========================================
-
-FreeBSD 9 restrictions:
------------------------
-
--  MPLS is not supported on ``FreeBSD``. MPLS requires a Linux Kernel
-   (4.5 or higher). LDP can be built, but may have limited use without
-   MPLS
-
-Install required packages
--------------------------
-
-Add packages: (Allow the install of the package managment tool if this
-is first package install and asked)
-
-::
-
-    pkg install -y git autoconf automake libtool gmake gawk \
-        pkgconf texinfo json-c bison flex py27-pytest c-ares \
-        python3 py-sphinx
-
-Make sure there is no /usr/bin/flex preinstalled (and use the newly
-installed in /usr/local/bin): (FreeBSD frequently provides a older flex
-as part of the base OS which takes preference in path)
-
-::
-
-    rm -f /usr/bin/flex
-
-For building with clang (instead of gcc), upgrade clang from 3.4 default
-to 3.6 *This is needed to build FreeBSD packages as well - for packages
-clang is default* (Clang 3.4 as shipped with FreeBSD 9 crashes during
-compile)
-
-::
-
-    pkg install clang36
-    pkg delete clang34
-    mv /usr/bin/clang /usr/bin/clang34
-    ln -s /usr/local/bin/clang36 /usr/bin/clang
-
-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 group and user
-^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    pw groupadd frr -g 101
-    pw groupadd frrvty -g 102
-    pw adduser frr -g 101 -u 101 -G 102 -c "FRR suite" \
-        -d /usr/local/etc/frr -s /usr/sbin/nologin
-
-(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
-    export MAKE=gmake
-    export LDFLAGS="-L/usr/local/lib"
-    export CPPFLAGS="-I/usr/local/include"
-    ./configure \
-        --sysconfdir=/usr/local/etc/frr \
-        --enable-pkgsrcrcdir=/usr/pkg/share/examples/rc.d \
-        --localstatedir=/var/run/frr \
-        --prefix=/usr/local \
-        --enable-ospfclient=yes \
-        --enable-ospfapi=yes \
-        --enable-multipath=64 \
-        --enable-user=frr \
-        --enable-group=frr \
-        --enable-vty-group=frrvty \
-        --enable-configfile-mask=0640 \
-        --enable-logfile-mask=0640 \
-        --enable-rtadv \
-        --enable-fpm \
-        --with-pkg-git-version \
-        --with-pkg-extra-version=-MyOwnFRRVersion
-    gmake
-    gmake check
-    sudo gmake install
-
-Create empty FRR configuration files
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    sudo mkdir /usr/local/etc/frr
-    sudo touch /usr/local/etc/frr/zebra.conf
-    sudo touch /usr/local/etc/frr/bgpd.conf
-    sudo touch /usr/local/etc/frr/ospfd.conf
-    sudo touch /usr/local/etc/frr/ospf6d.conf
-    sudo touch /usr/local/etc/frr/isisd.conf
-    sudo touch /usr/local/etc/frr/ripd.conf
-    sudo touch /usr/local/etc/frr/ripngd.conf
-    sudo touch /usr/local/etc/frr/pimd.conf
-    sudo chown -R frr:frr /usr/local/etc/frr
-    sudo touch /usr/local/etc/frr/vtysh.conf
-    sudo chown frr:frrvty /usr/local/etc/frr/vtysh.conf
-    sudo chmod 640 /usr/local/etc/frr/*.conf
-
-Enable IP & IPv6 forwarding
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Add the following lines to the end of ``/etc/sysctl.conf``:
-
-::
-
-    # Routing: We need to forward packets
-    net.inet.ip.forwarding=1
-    net.inet6.ip6.forwarding=1
-
-**Reboot** or use ``sysctl`` to apply the same config to the running
-system
diff --git a/doc/developer/building-frr-on-netbsd6.rst b/doc/developer/building-frr-on-netbsd6.rst
deleted file mode 100644 (file)
index ca0845d..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-NetBSD 6
-========================================
-
-NetBSD 6 restrictions:
-----------------------
-
--  MPLS is not supported on ``NetBSD``. MPLS requires a Linux Kernel
-   (4.5 or higher). LDP can be built, but may have limited use without
-   MPLS
-
-Install required packages
--------------------------
-
-Configure Package location:
-
-::
-
-    PKG_PATH="ftp://ftp.NetBSD.org/pub/pkgsrc/packages/NetBSD/`uname -m`/`uname -r`/All"
-    export PKG_PATH
-
-Add packages:
-
-::
-
-    sudo pkg_add git autoconf automake libtool gmake gawk openssl \
-       pkg-config json-c python27 py27-test python35 py-sphinx
-
-Install SSL Root Certificates (for git https access):
-
-::
-
-    sudo pkg_add mozilla-rootcerts
-    sudo touch /etc/openssl/openssl.cnf
-    sudo mozilla-rootcerts install
-
-Select default Python and py.test
-
-::
-
-    sudo ln -s /usr/pkg/bin/python2.7 /usr/bin/python
-    sudo ln -s /usr/pkg/bin/py.test-2.7 /usr/bin/py.test
-
-Get FRR, compile it and install it (from Git)
----------------------------------------------
-
-Add frr groups and user
-^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    sudo groupadd -g 92 frr
-    sudo groupadd -g 93 frrvty
-    sudo useradd -g 92 -u 92 -G frrvty -c "FRR suite" \
-        -d /nonexistent -s /sbin/nologin 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
-    MAKE=gmake
-    export LDFLAGS="-L/usr/pkg/lib -R/usr/pkg/lib"
-    export CPPFLAGS="-I/usr/pkg/include"
-    ./configure \
-        --sysconfdir=/usr/pkg/etc/frr \
-        --enable-exampledir=/usr/pkg/share/examples/frr \
-        --enable-pkgsrcrcdir=/usr/pkg/share/examples/rc.d \
-        --localstatedir=/var/run/frr \
-        --enable-ospfclient=yes \
-        --enable-ospfapi=yes \
-        --enable-multipath=64 \
-        --enable-user=frr \
-        --enable-group=frr \
-        --enable-vty-group=frrvty \
-        --enable-configfile-mask=0640 \
-        --enable-logfile-mask=0640 \
-        --enable-rtadv \
-        --enable-fpm \
-        --with-pkg-git-version \
-        --with-pkg-extra-version=-MyOwnFRRVersion
-    gmake
-    gmake check
-    sudo gmake install
-
-Create empty FRR configuration files
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    sudo mkdir /var/log/frr
-    sudo mkdir /usr/pkg/etc/frr
-    sudo touch /usr/pkg/etc/frr/zebra.conf
-    sudo touch /usr/pkg/etc/frr/bgpd.conf
-    sudo touch /usr/pkg/etc/frr/ospfd.conf
-    sudo touch /usr/pkg/etc/frr/ospf6d.conf
-    sudo touch /usr/pkg/etc/frr/isisd.conf
-    sudo touch /usr/pkg/etc/frr/ripd.conf
-    sudo touch /usr/pkg/etc/frr/ripngd.conf
-    sudo touch /usr/pkg/etc/frr/pimd.conf
-    sudo chown -R frr:frr /usr/pkg/etc/frr
-    sudo touch /usr/local/etc/frr/vtysh.conf
-    sudo chown frr:frrvty /usr/pkg/etc/frr/*.conf
-    sudo chmod 640 /usr/pkg/etc/frr/*.conf
-
-Enable IP & IPv6 forwarding
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Add the following lines to the end of ``/etc/sysctl.conf``:
-
-::
-
-    # Routing: We need to forward packets
-    net.inet.ip.forwarding=1
-    net.inet6.ip6.forwarding=1
-
-**Reboot** or use ``sysctl`` to apply the same config to the running
-system
-
-Install rc.d init files
-^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    cp pkgsrc/*.sh /etc/rc.d/
-    chmod 555 /etc/rc.d/*.sh
-
-Enable FRR processes
-^^^^^^^^^^^^^^^^^^^^
-
-(Enable the required processes only)
-
-::
-
-    echo "zebra=YES" >> /etc/rc.conf
-    echo "bgpd=YES" >> /etc/rc.conf
-    echo "ospfd=YES" >> /etc/rc.conf
-    echo "ospf6d=YES" >> /etc/rc.conf
-    echo "isisd=YES" >> /etc/rc.conf
-    echo "ripngd=YES" >> /etc/rc.conf
-    echo "ripd=YES" >> /etc/rc.conf
-    echo "pimd=YES" >> /etc/rc.conf
diff --git a/doc/developer/building-frr-on-netbsd7.rst b/doc/developer/building-frr-on-netbsd7.rst
deleted file mode 100644 (file)
index 86242ef..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-NetBSD 7
-========================================
-
-NetBSD 7 restrictions:
-----------------------
-
--  MPLS is not supported on ``NetBSD``. MPLS requires a Linux Kernel
-   (4.5 or higher). LDP can be built, but may have limited use without
-   MPLS
-
-Install required packages
--------------------------
-
-::
-
-    sudo pkgin install git autoconf automake libtool gmake gawk openssl \
-       pkg-config json-c python27 py27-test python35 py-sphinx
-
-Install SSL Root Certificates (for git https access):
-
-::
-
-    sudo pkgin install mozilla-rootcerts
-    sudo touch /etc/openssl/openssl.cnf
-    sudo mozilla-rootcerts install
-
-Select default Python and py.test
-
-::
-
-    sudo ln -s /usr/pkg/bin/python2.7 /usr/bin/python
-    sudo ln -s /usr/pkg/bin/py.test-2.7 /usr/bin/py.test
-
-Get FRR, compile it and install it (from Git)
----------------------------------------------
-
-Add frr groups and user
-^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    sudo groupadd -g 92 frr
-    sudo groupadd -g 93 frrvty
-    sudo useradd -g 92 -u 92 -G frrvty -c "FRR suite" \
-        -d /nonexistent -s /sbin/nologin 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
-    MAKE=gmake
-    export LDFLAGS="-L/usr/pkg/lib -R/usr/pkg/lib"
-    export CPPFLAGS="-I/usr/pkg/include"
-    ./configure \
-        --sysconfdir=/usr/pkg/etc/frr \
-        --enable-exampledir=/usr/pkg/share/examples/frr \
-        --enable-pkgsrcrcdir=/usr/pkg/share/examples/rc.d \
-        --localstatedir=/var/run/frr \
-        --enable-ospfclient=yes \
-        --enable-ospfapi=yes \
-        --enable-multipath=64 \
-        --enable-user=frr \
-        --enable-group=frr \
-        --enable-vty-group=frrvty \
-        --enable-configfile-mask=0640 \
-        --enable-logfile-mask=0640 \
-        --enable-rtadv \
-        --enable-fpm \
-        --with-pkg-git-version \
-        --with-pkg-extra-version=-MyOwnFRRVersion
-    gmake
-    gmake check
-    sudo gmake install
-
-Create empty FRR configuration files
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    sudo mkdir /usr/pkg/etc/frr
-    sudo touch /usr/pkg/etc/frr/zebra.conf
-    sudo touch /usr/pkg/etc/frr/bgpd.conf
-    sudo touch /usr/pkg/etc/frr/ospfd.conf
-    sudo touch /usr/pkg/etc/frr/ospf6d.conf
-    sudo touch /usr/pkg/etc/frr/isisd.conf
-    sudo touch /usr/pkg/etc/frr/ripd.conf
-    sudo touch /usr/pkg/etc/frr/ripngd.conf
-    sudo touch /usr/pkg/etc/frr/pimd.conf
-    sudo chown -R frr:frr /usr/pkg/etc/frr
-    sudo touch /usr/local/etc/frr/vtysh.conf
-    sudo chown frr:frrvty /usr/pkg/etc/frr/*.conf
-    sudo chmod 640 /usr/pkg/etc/frr/*.conf
-
-Enable IP & IPv6 forwarding
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Add the following lines to the end of ``/etc/sysctl.conf``:
-
-::
-
-    # Routing: We need to forward packets
-    net.inet.ip.forwarding=1
-    net.inet6.ip6.forwarding=1
-
-**Reboot** or use ``sysctl`` to apply the same config to the running
-system
-
-Install rc.d init files
-^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    cp pkgsrc/*.sh /etc/rc.d/
-    chmod 555 /etc/rc.d/*.sh
-
-Enable FRR processes
-^^^^^^^^^^^^^^^^^^^^
-
-(Enable the required processes only)
-
-::
-
-    echo "zebra=YES" >> /etc/rc.conf
-    echo "bgpd=YES" >> /etc/rc.conf
-    echo "ospfd=YES" >> /etc/rc.conf
-    echo "ospf6d=YES" >> /etc/rc.conf
-    echo "isisd=YES" >> /etc/rc.conf
-    echo "ripngd=YES" >> /etc/rc.conf
-    echo "ripd=YES" >> /etc/rc.conf
-    echo "pimd=YES" >> /etc/rc.conf
diff --git a/doc/developer/building-frr-on-omnios.rst b/doc/developer/building-frr-on-omnios.rst
deleted file mode 100644 (file)
index 03f3845..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-OmniOS (OpenSolaris)
-====================================================
-
-OmniOS restrictions:
---------------------
-
--  MPLS is not supported on ``OmniOS`` or ``Solaris``. MPLS requires a
-   Linux Kernel (4.5 or higher). LDP can be built, but may have limited
-   use without MPLS
-
-Enable IP & IPv6 forwarding
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    routeadm -e ipv4-forwarding
-    routeadm -e ipv6-forwarding
-
-Install required packages
--------------------------
-
-Add packages:
-
-::
-
-    pkg install \
-      developer/build/autoconf \
-      developer/build/automake \
-      developer/lexer/flex \
-      developer/parser/bison \
-      developer/object-file \
-      developer/linker \
-      developer/library/lint \
-      developer/build/gnu-make \
-      developer/gcc51 \
-      library/idnkit \
-      library/idnkit/header-idnkit \
-      system/header \
-      system/library/math/header-math \
-      git libtool gawk pkg-config
-
-Add additional Solaris packages:
-
-::
-
-    pkgadd -d http://get.opencsw.org/now
-    /opt/csw/bin/pkgutil -U
-    /opt/csw/bin/pkgutil -y -i texinfo
-    /opt/csw/bin/pkgutil -y -i perl
-    /opt/csw/bin/pkgutil -y -i libjson_c_dev
-    /opt/csw/bin/pkgutil -y -i python27 py_pip python27_dev
-
-Add libjson to Solaris equivalent of ld.so.conf
-
-::
-
-    crle -l /opt/csw/lib -u
-
-Add pytest:
-
-::
-
-    pip install pytest
-
-Install Sphinx:::
-
-   pip install sphinx
-
-Select Python 2.7 as default (required for pytest)
-
-::
-
-    rm -f /usr/bin/python
-    ln -s /opt/csw/bin/python2.7 /usr/bin/python
-
-Fix PATH for all users and non-interactive sessions. Edit
-``/etc/default/login`` and add the following default PATH:
-
-::
-
-    PATH=/usr/gnu/bin:/usr/bin:/usr/sbin:/sbin:/opt/csw/bin
-
-Edit ``~/.profile`` and add the following default PATH:
-
-::
-
-    PATH=/usr/gnu/bin:/usr/bin:/usr/sbin:/sbin:/opt/csw/bin
-
-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 group and user
-^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    sudo groupadd -g 93 frr
-    sudo groupadd -g 94 frrvty
-    sudo useradd -g 93 -u 93 -G frrvty -c "FRR suite" \
-        -d /nonexistent -s /bin/false frr
-
-(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
-    export MAKE=gmake
-    export LDFLAGS="-L/opt/csw/lib"
-    export CPPFLAGS="-I/opt/csw/include"
-    export PKG_CONFIG_PATH=/opt/csw/lib/pkgconfig
-    ./configure \
-        --sysconfdir=/etc/frr \
-        --enable-exampledir=/usr/share/doc/frr/examples/ \
-        --localstatedir=/var/run/frr \
-        --sbindir=/usr/lib/frr \
-        --enable-vtysh \
-        --enable-watchfrr \
-        --enable-ospfclient=yes \
-        --enable-ospfapi=yes \
-        --enable-multipath=64 \
-        --enable-user=frr \
-        --enable-group=frr \
-        --enable-vty-group=frrvty \
-        --enable-configfile-mask=0640 \
-        --enable-logfile-mask=0640 \
-        --enable-rtadv \
-        --enable-fpm \
-        --with-pkg-git-version \
-        --with-pkg-extra-version=-MyOwnFRRVersion
-    gmake
-    gmake check
-    sudo gmake install
-
-Enable IP & IPv6 forwarding
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    routeadm -e ipv4-forwarding
-    routeadm -e ipv6-forwarding
diff --git a/doc/developer/building-frr-on-openbsd6.rst b/doc/developer/building-frr-on-openbsd6.rst
deleted file mode 100644 (file)
index 46db25a..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-OpenBSD 6
-=========================================
-
-Install required packages
--------------------------
-
-Configure PKG\_PATH
-
-::
-
-    export PKG_PATH=http://ftp5.usa.openbsd.org/pub/OpenBSD/$(uname -r)/packages/$(machine -a)/
-
-Add packages:
-
-::
-
-    pkg_add git autoconf-2.69p2 automake-1.15.1 libtool bison
-    pkg_add gmake gawk dejagnu openssl json-c py-test py-sphinx
-
-Select Python2.7 as default (required for pytest)
-
-::
-
-    ln -s /usr/local/bin/python2.7 /usr/local/bin/python
-
-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 group and user
-^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    groupadd -g 525 _frr
-    groupadd -g 526 _frrvty
-    useradd -g 525 -u 525 -c "FRR suite" -G _frrvty \
-        -d /nonexistent -s /sbin/nologin _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
-    export AUTOCONF_VERSION="2.69"
-    export AUTOMAKE_VERSION="1.15"
-    ./bootstrap.sh
-    export LDFLAGS="-L/usr/local/lib"
-    export CPPFLAGS="-I/usr/local/include"
-    ./configure \
-        --sysconfdir=/etc/frr \
-        --localstatedir=/var/frr \
-        --enable-pimd \
-        --enable-ospfclient=yes \
-        --enable-ospfapi=yes \
-        --enable-multipath=64 \
-        --enable-user=_frr \
-        --enable-group=_frr \
-        --enable-vty-group=_frrvty \
-        --enable-configfile-mask=0640 \
-        --enable-logfile-mask=0640 \
-        --enable-rtadv \
-        --enable-fpm \
-        --with-pkg-git-version \
-        --with-pkg-extra-version=-MyOwnFRRVersion
-    gmake
-    gmake check
-    doas gmake install
-
-Create empty FRR configuration files
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    doas mkdir /var/frr
-    doas chown _frr:_frr /var/frr
-    doas chmod 755 /var/frr
-    doas mkdir /etc/frr
-    doas touch /etc/frr/zebra.conf
-    doas touch /etc/frr/bgpd.conf
-    doas touch /etc/frr/ospfd.conf
-    doas touch /etc/frr/ospf6d.conf
-    doas touch /etc/frr/isisd.conf
-    doas touch /etc/frr/ripd.conf
-    doas touch /etc/frr/ripngd.conf
-    doas touch /etc/frr/pimd.conf
-    doas touch /etc/frr/ldpd.conf
-    doas touch /etc/frr/nhrpd.conf
-    doas chown -R _frr:_frr /etc/frr
-    doas touch /etc/frr/vtysh.conf
-    doas chown -R _frr:_frrvty /etc/frr/vtysh.conf
-    doas chmod 750 /etc/frr
-    doas chmod 640 /etc/frr/*.conf
-
-Enable IP & IPv6 forwarding
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Add the following lines to the end of ``/etc/rc.conf``:
-
-::
-
-    net.inet6.ip6.forwarding=1      # 1=Permit forwarding of IPv6 packets
-    net.inet6.ip6.mforwarding=1     # 1=Permit forwarding of IPv6 multicast packets
-    net.inet6.ip6.multipath=1       # 1=Enable IPv6 multipath routing
-
-**Reboot** to apply the config to the system
-
-Enable MPLS Forwarding
-^^^^^^^^^^^^^^^^^^^^^^
-
-To enable MPLS forwarding on a given interface, use the following
-command:
-
-::
-
-    doas ifconfig em0 mpls
-
-Alternatively, to make MPLS forwarding persistent across reboots, add
-the "mpls" keyword in the hostname.\* files of the desired interfaces.
-Example:
-
-::
-
-    cat /etc/hostname.em0
-    inet 10.0.1.1 255.255.255.0 mpls
-
-Install rc.d init files
-^^^^^^^^^^^^^^^^^^^^^^^
-
-(create them in /etc/rc.d - no example are included at this time with
-FRR source)
-
-Example (for zebra - store as ``/etc/rc.d/frr_zebra.sh``)
-
-::
-
-    #!/bin/sh
-    #
-    # $OpenBSD: frr_zebra.rc,v 1.1 2013/04/18 20:29:08 sthen Exp $
-
-    daemon="/usr/local/sbin/zebra -d"
-
-    . /etc/rc.d/rc.subr
-
-    rc_cmd $1
-
-Enable FRR processes
-^^^^^^^^^^^^^^^^^^^^
-
-(Enable the required processes only)
-
-::
-
-    echo "frr_zebra=YES" >> /etc/rc.conf
-    echo "frr_bgpd=YES" >> /etc/rc.conf
-    echo "frr_ospfd=YES" >> /etc/rc.conf
-    echo "frr_ospf6d=YES" >> /etc/rc.conf
-    echo "frr_isisd=YES" >> /etc/rc.conf
-    echo "frr_ripngd=YES" >> /etc/rc.conf
-    echo "frr_ripd=YES" >> /etc/rc.conf
-    echo "frr_pimd=YES" >> /etc/rc.conf
-    echo "frr_ldpd=YES" >> /etc/rc.conf
diff --git a/doc/developer/building-frr-on-ubuntu1204.rst b/doc/developer/building-frr-on-ubuntu1204.rst
deleted file mode 100644 (file)
index 459d411..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-Ubuntu 12.04LTS
-===============================================
-
--  MPLS is not supported on ``Ubuntu 12.04`` with default kernel. MPLS
-   requires Linux Kernel 4.5 or higher (LDP can be built, but may have
-   limited use without MPLS) For an updated Ubuntu Kernel, see
-   http://kernel.ubuntu.com/~kernel-ppa/mainline/
-
-Install required packages
--------------------------
-
-Add packages:
-
-::
-
-    apt-get install \
-       git autoconf automake libtool make gawk libreadline-dev texinfo \
-       dejagnu pkg-config libpam0g-dev libjson0-dev flex python-pip \
-       libc-ares-dev python3-dev python3-sphinx install-info
-
-Install newer bison from 14.04 package source (Ubuntu 12.04 package
-source is too old)
-
-::
-
-    mkdir builddir
-    cd builddir
-    wget http://archive.ubuntu.com/ubuntu/pool/main/b/bison/bison_3.0.2.dfsg-2.dsc
-    wget http://archive.ubuntu.com/ubuntu/pool/main/b/bison/bison_3.0.2.dfsg.orig.tar.bz2
-    wget http://archive.ubuntu.com/ubuntu/pool/main/b/bison/bison_3.0.2.dfsg-2.debian.tar.gz
-    tar -jxvf bison_3.0.2.dfsg.orig.tar.bz2
-    cd bison-3.0.2.dfsg/
-    tar xzf ../bison_3.0.2.dfsg-2.debian.tar.gz
-    sudo apt-get build-dep bison
-    debuild -b -uc -us
-    cd ..
-    sudo dpkg -i ./libbison-dev_3.0.2.dfsg-2_amd64.deb ./bison_3.0.2.dfsg-2_amd64.deb
-    cd ..
-    rm -rf builddir
-
-Install newer version of autoconf and automake:
-
-::
-
-    wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
-    tar xvf autoconf-2.69.tar.gz
-    cd autoconf-2.69
-    ./configure --prefix=/usr
-    make
-    sudo make install
-    cd ..
-
-    wget http://ftp.gnu.org/gnu/automake/automake-1.15.tar.gz
-    tar xvf automake-1.15.tar.gz
-    cd automake-1.15
-    ./configure --prefix=/usr
-    make
-    sudo make install
-    cd ..
-
-Install pytest:
-
-::
-
-    pip install pytest
-
-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 -r -g 92 frr
-    sudo groupadd -r -g 85 frrvty
-    sudo adduser --system --ingroup frr --home /var/run/frr/ \
-       --gecos "FRR suite" --shell /sbin/nologin frr
-    sudo usermod -a -G frrvty 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 \
-        --prefix=/usr \
-        --enable-exampledir=/usr/share/doc/frr/examples/ \
-        --localstatedir=/var/run/frr \
-        --sbindir=/usr/lib/frr \
-        --sysconfdir=/etc/frr \
-        --enable-pimd \
-        --enable-watchfrr \
-        --enable-ospfclient=yes \
-        --enable-ospfapi=yes \
-        --enable-multipath=64 \
-        --enable-user=frr \
-        --enable-group=frr \
-        --enable-vty-group=frrvty \
-        --enable-configfile-mask=0640 \
-        --enable-logfile-mask=0640 \
-        --enable-rtadv \
-        --enable-fpm \
-        --with-pkg-git-version \
-        --with-pkg-extra-version=-MyOwnFRRVersion
-    make
-    make check
-    sudo make install
-
-Create empty FRR configuration files
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    sudo install -m 755 -o frr -g frr -d /var/log/frr
-    sudo install -m 775 -o frr -g frrvty -d /etc/frr
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/zebra.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/bgpd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospfd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospf6d.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/isisd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripngd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/pimd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ldpd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/nhrpd.conf
-    sudo install -m 640 -o frr -g frrvty /dev/null /etc/frr/vtysh.conf
-
-Enable IP & IPv6 forwarding
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Edit ``/etc/sysctl.conf`` and uncomment the following values (ignore the
-other settings)
-
-::
-
-    # Uncomment the next line to enable packet forwarding for IPv4
-    net.ipv4.ip_forward=1
-
-    # Uncomment the next line to enable packet forwarding for IPv6
-    #  Enabling this option disables Stateless Address Autoconfiguration
-    #  based on Router Advertisements for this host
-    net.ipv6.conf.all.forwarding=1
-
-**Reboot** or use ``sysctl -p`` to apply the same config to the running
-system
-
-Install the init.d service
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    sudo install -m 755 tools/frr /etc/init.d/frr
-    sudo install -m 644 tools/etc/frr/daemons /etc/frr/daemons
-    sudo install -m 644 tools/etc/frr/daemons.conf /etc/frr/daemons.conf
-    sudo install -m 644 -o frr -g frr tools/etc/frr/vtysh.conf /etc/frr/vtysh.conf
-
-Enable daemons
-^^^^^^^^^^^^^^
-
-| Edit ``/etc/frr/daemons`` and change the value from "no" to "yes" for
-  those daemons you want to start by systemd.
-| For example.
-
-::
-
-    zebra=yes
-    bgpd=yes
-    ospfd=yes
-    ospf6d=yes
-    ripd=yes
-    ripngd=yes
-    isisd=yes
-
-Start the init.d service
-^^^^^^^^^^^^^^^^^^^^^^^^
-
--  /etc/init.d/frr start
--  use ``/etc/init.d/frr status`` to check its status.
diff --git a/doc/developer/building-frr-on-ubuntu1404.rst b/doc/developer/building-frr-on-ubuntu1404.rst
deleted file mode 100644 (file)
index 681cc30..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-Ubuntu 14.04LTS
-===============================================
-
--  MPLS is not supported on ``Ubuntu 14.04`` with default kernel. MPLS
-   requires Linux Kernel 4.5 or higher (LDP can be built, but may have
-   limited use without MPLS) For an updated Ubuntu Kernel, see
-   http://kernel.ubuntu.com/~kernel-ppa/mainline/
-
-Install required packages
--------------------------
-
-Add packages:
-
-::
-
-    apt-get install \
-       git autoconf automake libtool make gawk libreadline-dev texinfo dejagnu \
-       pkg-config libpam0g-dev libjson-c-dev bison flex python-pytest \
-       libc-ares-dev python3-dev python3-sphinx install-info
-
-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 -r -g 92 frr
-    sudo groupadd -r -g 85 frrvty
-    sudo adduser --system --ingroup frr --home /var/run/frr/ \
-       --gecos "FRR suite" --shell /sbin/nologin frr
-    sudo usermod -a -G frrvty 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 \
-        --prefix=/usr \
-        --enable-exampledir=/usr/share/doc/frr/examples/ \
-        --localstatedir=/var/run/frr \
-        --sbindir=/usr/lib/frr \
-        --sysconfdir=/etc/frr \
-        --enable-pimd \
-        --enable-watchfrr \
-        --enable-ospfclient=yes \
-        --enable-ospfapi=yes \
-        --enable-multipath=64 \
-        --enable-user=frr \
-        --enable-group=frr \
-        --enable-vty-group=frrvty \
-        --enable-configfile-mask=0640 \
-        --enable-logfile-mask=0640 \
-        --enable-rtadv \
-        --enable-fpm \
-        --enable-ldpd \
-        --with-pkg-git-version \
-        --with-pkg-extra-version=-MyOwnFRRVersion
-    make
-    make check
-    sudo make install
-
-Create empty FRR configuration files
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    sudo install -m 755 -o frr -g frr -d /var/log/frr
-    sudo install -m 775 -o frr -g frrvty -d /etc/frr
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/zebra.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/bgpd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospfd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospf6d.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/isisd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripngd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/pimd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ldpd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/nhrpd.conf
-    sudo install -m 640 -o frr -g frrvty /dev/null /etc/frr/vtysh.conf
-
-Enable IP & IPv6 forwarding
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Edit ``/etc/sysctl.conf`` and uncomment the following values (ignore the
-other settings)
-
-::
-
-    # Uncomment the next line to enable packet forwarding for IPv4
-    net.ipv4.ip_forward=1
-
-    # Uncomment the next line to enable packet forwarding for IPv6
-    #  Enabling this option disables Stateless Address Autoconfiguration
-    #  based on Router Advertisements for this host
-    net.ipv6.conf.all.forwarding=1
-
-**Reboot** or use ``sysctl -p`` to apply the same config to the running
-system
-
-Install the init.d service
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    sudo install -m 755 tools/frr /etc/init.d/frr
-    sudo install -m 644 tools/etc/frr/daemons /etc/frr/daemons
-    sudo install -m 644 tools/etc/frr/daemons.conf /etc/frr/daemons.conf
-    sudo install -m 644 -o frr -g frr tools/etc/frr/vtysh.conf /etc/frr/vtysh.conf
-
-Enable daemons
-^^^^^^^^^^^^^^
-
-| Edit ``/etc/frr/daemons`` and change the value from "no" to "yes" for
-  those daemons you want to start by systemd.
-| For example.
-
-::
-
-    zebra=yes
-    bgpd=yes
-    ospfd=yes
-    ospf6d=yes
-    ripd=yes
-    ripngd=yes
-    isisd=yes
-
-Start the init.d service
-^^^^^^^^^^^^^^^^^^^^^^^^
-
--  /etc/init.d/frr start
--  use ``/etc/init.d/frr status`` to check its status.
diff --git a/doc/developer/building-frr-on-ubuntu1604.rst b/doc/developer/building-frr-on-ubuntu1604.rst
deleted file mode 100644 (file)
index 69c4e44..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-Ubuntu 16.04LTS
-===============================================
-
--  MPLS is not supported on ``Ubuntu 16.04`` with default kernel. MPLS
-   requires Linux Kernel 4.5 or higher (LDP can be built, but may have
-   limited use without MPLS) For an updated Ubuntu Kernel, see
-   http://kernel.ubuntu.com/~kernel-ppa/mainline/
-
-Install required packages
--------------------------
-
-Add packages:
-
-::
-
-    apt-get install \
-       git autoconf automake libtool make gawk libreadline-dev texinfo dejagnu \
-       pkg-config libpam0g-dev libjson-c-dev bison flex python-pytest \
-       libc-ares-dev python3-dev libsystemd-dev python-ipaddr python3-sphinx \
-       install-info
-
-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 -r -g 92 frr
-    sudo groupadd -r -g 85 frrvty
-    sudo adduser --system --ingroup frr --home /var/run/frr/ \
-       --gecos "FRR suite" --shell /sbin/nologin frr
-    sudo usermod -a -G frrvty 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 \
-        --prefix=/usr \
-        --enable-exampledir=/usr/share/doc/frr/examples/ \
-        --localstatedir=/var/run/frr \
-        --sbindir=/usr/lib/frr \
-        --sysconfdir=/etc/frr \
-        --enable-pimd \
-        --enable-watchfrr \
-        --enable-ospfclient=yes \
-        --enable-ospfapi=yes \
-        --enable-multipath=64 \
-        --enable-user=frr \
-        --enable-group=frr \
-        --enable-vty-group=frrvty \
-        --enable-configfile-mask=0640 \
-        --enable-logfile-mask=0640 \
-        --enable-rtadv \
-        --enable-fpm \
-        --enable-systemd=yes \
-        --with-pkg-git-version \
-        --with-pkg-extra-version=-MyOwnFRRVersion
-    make
-    make check
-    sudo make install
-
-Create empty FRR configuration files
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    sudo install -m 755 -o frr -g frr -d /var/log/frr
-    sudo install -m 775 -o frr -g frrvty -d /etc/frr
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/zebra.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/bgpd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospfd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospf6d.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/isisd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripngd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/pimd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ldpd.conf
-    sudo install -m 640 -o frr -g frr /dev/null /etc/frr/nhrpd.conf
-    sudo install -m 640 -o frr -g frrvty /dev/null /etc/frr/vtysh.conf
-
-Enable IPv4 & IPv6 forwarding
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Edit ``/etc/sysctl.conf`` and uncomment the following values (ignore the
-other settings)
-
-::
-
-    # Uncomment the next line to enable packet forwarding for IPv4
-    net.ipv4.ip_forward=1
-
-    # Uncomment the next line to enable packet forwarding for IPv6
-    #  Enabling this option disables Stateless Address Autoconfiguration
-    #  based on Router Advertisements for this host
-    net.ipv6.conf.all.forwarding=1
-
-Enable MPLS Forwarding (with Linux Kernel >= 4.5)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Edit ``/etc/sysctl.conf`` and the following lines. Make sure to add a
-line equal to ``net.mpls.conf.eth0.input`` or each interface used with
-MPLS
-
-::
-
-    # Enable MPLS Label processing on all interfaces
-    net.mpls.conf.eth0.input=1
-    net.mpls.conf.eth1.input=1
-    net.mpls.conf.eth2.input=1
-    net.mpls.platform_labels=100000
-
-Add MPLS kernel modules
-^^^^^^^^^^^^^^^^^^^^^^^
-
-Add the following lines to ``/etc/modules-load.d/modules.conf``:
-
-::
-
-    # Load MPLS Kernel Modules
-    mpls-router
-    mpls-iptunnel
-
-**Reboot** or use ``sysctl -p`` to apply the same config to the running
-system
-
-Install the systemd service (if rebooted from last step, change directory back to frr directory)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    sudo install -m 644 tools/frr.service /etc/systemd/system/frr.service
-    sudo install -m 644 tools/etc/default/frr /etc/default/frr
-    sudo install -m 644 tools/etc/frr/daemons /etc/frr/daemons
-    sudo install -m 644 tools/etc/frr/daemons.conf /etc/frr/daemons.conf
-    sudo install -m 644 tools/etc/frr/frr.conf /etc/frr/frr.conf
-    sudo install -m 644 -o frr -g frr tools/etc/frr/vtysh.conf /etc/frr/vtysh.conf
-
-Enable daemons
-^^^^^^^^^^^^^^
-
-| Edit ``/etc/frr/daemons`` and change the value from "no" to "yes" for
-  those daemons you want to start by systemd.
-| For example.
-
-::
-
-    zebra=yes
-    bgpd=yes
-    ospfd=yes
-    ospf6d=yes
-    ripd=yes
-    ripngd=yes
-    isisd=yes
-
-Enable the systemd service
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-
--  systemctl enable frr
-
-Start the systemd service
-^^^^^^^^^^^^^^^^^^^^^^^^^
-
--  systemctl start frr
--  use ``systemctl status frr`` to check its status.
diff --git a/doc/developer/building-frr-on-ubuntu1804.rst b/doc/developer/building-frr-on-ubuntu1804.rst
deleted file mode 100644 (file)
index 50e90fc..0000000
+++ /dev/null
@@ -1,249 +0,0 @@
-Ubuntu 18.04 LTS
-================
-
-Install dependencies
---------------------
-
-Required packages
-^^^^^^^^^^^^^^^^^
-
-::
-
-   sudo apt-get install \
-      git autoconf automake libtool make gawk libreadline-dev texinfo \
-      pkg-config libpam0g-dev libjson-c-dev bison flex python-pytest \
-      libc-ares-dev python3-dev libsystemd-dev python-ipaddr python3-sphinx \
-      install-info
-
-Optional packages
-^^^^^^^^^^^^^^^^^
-
-Dependencies for additional functionality can be installed as-desired.
-
-Protobuf
-~~~~~~~~
-
-::
-
-   sudo apt-get install \
-       protobuf-c-compiler \
-       libprotobuf-c-dev
-
-ZeroMQ
-~~~~~~
-
-::
-
-   sudo apt-get install \
-       libzmq5 \
-       libzmq3-dev
-
-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 -r -g 92 frr
-   sudo groupadd -r -g 85 frrvty
-   sudo adduser --system --ingroup frr --home /var/run/frr/ \
-      --gecos "FRR suite" --shell /sbin/nologin frr
-   sudo usermod -a -G frrvty frr
-
-Download source
-^^^^^^^^^^^^^^^
-
-::
-
-   git clone https://github.com/frrouting/frr.git frr
-
-Configure
-^^^^^^^^^
-Options below are provided as an example.
-
-.. seealso:: *Installation* section of user guide
-
-.. code-block:: shell
-
-   cd frr
-   ./bootstrap.sh
-   ./configure \
-       --prefix=/usr \
-       --enable-exampledir=/usr/share/doc/frr/examples/ \
-       --localstatedir=/var/run/frr \
-       --sbindir=/usr/lib/frr \
-       --sysconfdir=/etc/frr \
-       --enable-pimd \
-       --enable-watchfrr \
-       --enable-ospfclient=yes \
-       --enable-ospfapi=yes \
-       --enable-multipath=64 \
-       --enable-user=frr \
-       --enable-group=frr \
-       --enable-vty-group=frrvty \
-       --enable-configfile-mask=0640 \
-       --enable-logfile-mask=0640 \
-       --enable-rtadv \
-       --enable-fpm \
-       --enable-systemd=yes \
-       --with-pkg-git-version \
-       --with-pkg-extra-version=-MyOwnFRRVersion
-
-If optional packages were installed, the associated feature may now be
-enabled.
-
-.. option:: --enable-protobuf
-
-Enable support for protobuf transport
-
-.. option:: --enable-zeromq
-
-Enable support for ZeroMQ transport
-
-Compile
-^^^^^^^
-
-::
-
-   make
-   make check
-   sudo make install
-
-Create empty FRR configuration files
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Although not strictly necessary, it's good practice to create empty
-configuration files _before_ starting FRR. This assures that the permissions 
-are correct. If the files are not already present, FRR will create them.
-
-It's also important to consider _which_ files to create. FRR supports writing
-configuration to a monolithic file, :file:`/etc/frr/frr.conf`.
-
-.. seealso:: *VTYSH* section of user guide
-
-The presence of :file:`/etc/frr/frr.conf` on startup implicitly configures FRR
-to ignore daemon-specific configuration files.
-
-Daemon-specific configuration
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-::
-
-   sudo install -m 755 -o frr -g frr -d /var/log/frr
-   sudo install -m 775 -o frr -g frrvty -d /etc/frr
-   sudo install -m 640 -o frr -g frr /dev/null /etc/frr/zebra.conf
-   sudo install -m 640 -o frr -g frr /dev/null /etc/frr/bgpd.conf
-   sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospfd.conf
-   sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospf6d.conf
-   sudo install -m 640 -o frr -g frr /dev/null /etc/frr/isisd.conf
-   sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripd.conf
-   sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripngd.conf
-   sudo install -m 640 -o frr -g frr /dev/null /etc/frr/pimd.conf
-   sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ldpd.conf
-   sudo install -m 640 -o frr -g frr /dev/null /etc/frr/nhrpd.conf
-
-Monolithic configuration
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-::
-
-   sudo install -m 755 -o frr -g frr -d /var/log/frr
-   sudo install -m 775 -o frr -g frrvty -d /etc/frr
-   sudo install -m 640 -o frr -g frr /dev/null /etc/frr/frr.conf
-
-Enable IPv4 & IPv6 forwarding
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Edit :file:`/etc/sysctl.conf` and uncomment the following values (ignore the
-other settings):
-
-::
-
-   # Uncomment the next line to enable packet forwarding for IPv4
-   net.ipv4.ip_forward=1
-
-   # Uncomment the next line to enable packet forwarding for IPv6
-   #  Enabling this option disables Stateless Address Autoconfiguration
-   #  based on Router Advertisements for this host
-   net.ipv6.conf.all.forwarding=1
-
-Add MPLS kernel modules
-^^^^^^^^^^^^^^^^^^^^^^^
-
-Ubuntu 18.04 ships with kernel 4.15. MPLS modules are present by default.  To
-enable, add the following lines to :file:`/etc/modules-load.d/modules.conf`:
-
-::
-
-   # Load MPLS Kernel Modules
-   mpls_router
-   mpls_iptunnel
-
-Reboot or use ``sysctl -p`` to apply the same config to the running system.
-
-Enable MPLS Forwarding
-^^^^^^^^^^^^^^^^^^^^^^
-
-Edit :file:`/etc/sysctl.conf` and the following lines. Make sure to add a line
-equal to :file:`net.mpls.conf.eth0.input` for each interface used with MPLS.
-
-::
-
-   # Enable MPLS Label processing on all interfaces
-   net.mpls.conf.eth0.input=1
-   net.mpls.conf.eth1.input=1
-   net.mpls.conf.eth2.input=1
-   net.mpls.platform_labels=100000
-
-Install the systemd service
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-   sudo install -m 644 tools/frr.service /etc/systemd/system/frr.service
-   sudo install -m 644 tools/etc/default/frr /etc/default/frr
-   sudo install -m 644 tools/etc/frr/daemons /etc/frr/daemons
-   sudo install -m 644 tools/etc/frr/daemons.conf /etc/frr/daemons.conf
-   sudo install -m 644 tools/etc/frr/frr.conf /etc/frr/frr.conf
-   sudo install -m 644 -o frr -g frr tools/etc/frr/vtysh.conf /etc/frr/vtysh.conf
-
-Enable daemons
-^^^^^^^^^^^^^^
-
-Edit ``/etc/frr/daemons`` and change the value from "no" to "yes" for those
-daemons you want to start by systemd.  For example:
-
-::
-
-   zebra=yes
-   bgpd=yes
-   ospfd=yes
-   ospf6d=yes
-   ripd=yes
-   ripngd=yes
-   isisd=yes
-
-Enable the systemd service
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Enabling the systemd service causes FRR to be started upon boot. To enable it,
-use the following command:
-
-.. code-block:: shell
-
-   systemctl enable frr
-
-Start the systemd service
-^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. code-block:: shell
-
-   systemctl start frr
-
-After starting the service, you can use ``systemctl status frr`` to check its
-status.