summaryrefslogtreecommitdiff
path: root/doc/developer
diff options
context:
space:
mode:
Diffstat (limited to 'doc/developer')
-rw-r--r--doc/developer/Makefile16
-rw-r--r--doc/developer/Makefile.am8
-rw-r--r--doc/developer/building-frr-for-alpine.rst (renamed from doc/developer/building-frr-on-alpine.rst)0
-rw-r--r--doc/developer/building-frr-for-centos6.rst (renamed from doc/developer/building-frr-on-centos6.rst)214
-rw-r--r--doc/developer/building-frr-for-centos7.rst (renamed from doc/developer/building-frr-on-centos7.rst)0
-rw-r--r--doc/developer/building-frr-for-debian8.rst (renamed from doc/developer/building-frr-on-debian8.rst)0
-rw-r--r--doc/developer/building-frr-for-debian9.rst (renamed from doc/developer/building-frr-on-debian9.rst)0
-rw-r--r--doc/developer/building-frr-for-fedora24.rst (renamed from doc/developer/building-frr-on-fedora24.rst)0
-rw-r--r--doc/developer/building-frr-for-freebsd10.rst (renamed from doc/developer/building-frr-on-freebsd10.rst)57
-rw-r--r--doc/developer/building-frr-for-freebsd11.rst133
-rw-r--r--doc/developer/building-frr-for-freebsd9.rst (renamed from doc/developer/building-frr-on-freebsd9.rst)57
-rw-r--r--doc/developer/building-frr-for-netbsd6.rst (renamed from doc/developer/building-frr-on-netbsd6.rst)0
-rw-r--r--doc/developer/building-frr-for-netbsd7.rst (renamed from doc/developer/building-frr-on-netbsd7.rst)0
-rw-r--r--doc/developer/building-frr-for-omnios.rst (renamed from doc/developer/building-frr-on-omnios.rst)0
-rw-r--r--doc/developer/building-frr-for-openbsd6.rst (renamed from doc/developer/building-frr-on-openbsd6.rst)0
-rw-r--r--doc/developer/building-frr-for-openwrt.rst77
-rw-r--r--doc/developer/building-frr-for-ubuntu1204.rst (renamed from doc/developer/building-frr-on-ubuntu1204.rst)0
-rw-r--r--doc/developer/building-frr-for-ubuntu1404.rst (renamed from doc/developer/building-frr-on-ubuntu1404.rst)0
-rw-r--r--doc/developer/building-frr-for-ubuntu1604.rst (renamed from doc/developer/building-frr-on-ubuntu1604.rst)0
-rw-r--r--doc/developer/building-frr-for-ubuntu1804.rst (renamed from doc/developer/building-frr-on-ubuntu1804.rst)0
-rw-r--r--doc/developer/building-frr-on-freebsd11.rst109
-rw-r--r--doc/developer/building-frr-on-lede-openwrt.rst108
-rw-r--r--doc/developer/building.rst2
-rw-r--r--doc/developer/subdir.am72
24 files changed, 489 insertions, 364 deletions
diff --git a/doc/developer/Makefile b/doc/developer/Makefile
new file mode 100644
index 0000000000..38afb43a70
--- /dev/null
+++ b/doc/developer/Makefile
@@ -0,0 +1,16 @@
+all: ALWAYS
+ @$(MAKE) -s -C ../.. developer-html
+help: ALWAYS
+ @$(MAKE) -s -C ../.. doc/help
+pdf: ALWAYS
+ @$(MAKE) -s -C ../.. doc/developer/_build/latexpdf
+info: ALWAYS
+ @$(MAKE) -s -C ../.. doc/developer/_build/texinfo/frr.info
+%: ALWAYS
+ @$(MAKE) -s -C ../.. doc/developer/_build/$@
+
+Makefile:
+ #nothing
+ALWAYS:
+.PHONY: ALWAYS makefiles
+.SUFFIXES:
diff --git a/doc/developer/Makefile.am b/doc/developer/Makefile.am
deleted file mode 100644
index 76758f9242..0000000000
--- a/doc/developer/Makefile.am
+++ /dev/null
@@ -1,8 +0,0 @@
-# This is necessary to support VPATH builds.
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-# This variable is used as the documentation source location in frr-sphinx.mk
-SOURCESDIR = @srcdir@
-
-include @srcdir@/../frr-sphinx.mk
diff --git a/doc/developer/building-frr-on-alpine.rst b/doc/developer/building-frr-for-alpine.rst
index d303784d4e..d303784d4e 100644
--- a/doc/developer/building-frr-on-alpine.rst
+++ b/doc/developer/building-frr-for-alpine.rst
diff --git a/doc/developer/building-frr-on-centos6.rst b/doc/developer/building-frr-for-centos6.rst
index d50376548f..d4c2c3bfd0 100644
--- a/doc/developer/building-frr-on-centos6.rst
+++ b/doc/developer/building-frr-for-centos6.rst
@@ -40,98 +40,96 @@ Install required packages
Add packages:
-::
+.. code-block:: shell
- sudo yum install git autoconf automake libtool make gawk \
+ 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
+Install newer version of bison (CentOS 6 package source is too old) from CentOS
+7:
-::
+.. code-block:: shell
- 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
+ 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)
+Install newer version of autoconf and automake (Package versions are too old):
-::
+.. code-block:: shell
- 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``
+ 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``
+
+.. code-block:: shell
- 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
+ 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
+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``
+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
+ ### 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
-::
+.. code-block:: shell
- sudo yum update
- sudo yum install python27-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**
+**This assumes you want to build and install FRR from source and not using any
+packages**
Add frr groups and user
^^^^^^^^^^^^^^^^^^^^^^^
-::
+.. code-block:: shell
- sudo groupadd -g 92 frr
- sudo groupadd -r -g 85 frrvt
- sudo useradd -u 92 -g 92 -M -r -G frrvt -s /sbin/nologin \
+ 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
@@ -140,7 +138,7 @@ Download Source, configure and compile it
(You may prefer different options on configure statement. These are just
an example.)
-::
+.. code-block:: shell
git clone https://github.com/frrouting/frr.git frr
cd frr
@@ -178,32 +176,50 @@ an example.)
Create empty FRR configuration files
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-::
+.. code-block:: shell
+
+ sudo mkdir /var/log/frr
+ sudo mkdir /etc/frr
+
+For integrated config file:
- 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
+.. code-block:: shell
+
+ sudo touch /etc/frr/frr.conf
+
+For individual config files:
+
+.. note:: Integrated config is preferred to individual config.
+
+.. code-block:: shell
+
+ sudo touch /etc/frr/babeld.conf
+ sudo touch /etc/frr/bfdd.conf
+ sudo touch /etc/frr/bgpd.conf
+ sudo touch /etc/frr/eigrpd.conf
+ sudo touch /etc/frr/isisd.conf
+ sudo touch /etc/frr/ldpd.conf
+ sudo touch /etc/frr/nhrpd.conf
+ sudo touch /etc/frr/ospf6d.conf
+ sudo touch /etc/frr/ospfd.conf
+ sudo touch /etc/frr/pbrd.conf
+ sudo touch /etc/frr/pimd.conf
+ sudo touch /etc/frr/ripd.conf
+ sudo touch /etc/frr/ripngd.conf
+ sudo touch /etc/frr/staticd.conf
+ sudo touch /etc/frr/zebra.conf
+ sudo chown -R frr:frr /etc/frr/
+ sudo touch /etc/frr/vtysh.conf
+ sudo chown frr:frrvty /etc/frr/vtysh.conf
+ sudo chmod 640 /etc/frr/*.conf
Install daemon config file
^^^^^^^^^^^^^^^^^^^^^^^^^^
-::
+.. code-block:: shell
- sudo install -p -m 644 redhat/daemons /etc/frr/
- sudo chown frr:frr /etc/frr/daemons
+ 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
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -214,42 +230,40 @@ 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)
+Edit :file:`/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 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
+ # Controls source route verification
+ net.ipv4.conf.default.rp_filter = 0
Load the modifed sysctl's on the system:
-::
+.. code-block:: shell
- sudo sysctl -p /etc/sysctl.d/90-routing-sysctl.conf
+ sudo sysctl -p /etc/sysctl.d/90-routing-sysctl.conf
Add init.d startup files
^^^^^^^^^^^^^^^^^^^^^^^^
-::
+.. code-block::
- sudo install -p -m 755 redhat/frr.init /etc/init.d/frr
- sudo chkconfig --add frr
+ sudo install -p -m 755 redhat/frr.init /etc/init.d/frr
+ sudo chkconfig --add frr
-Enable frr daemon at startup
+Enable FRR daemon at startup
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-::
+.. code-block::
- sudo chkconfig frr on
+ sudo chkconfig frr on
Start FRR manually (or reboot)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-::
+.. code-block::
- sudo /etc/init.d/frr start
+ sudo /etc/init.d/frr start
diff --git a/doc/developer/building-frr-on-centos7.rst b/doc/developer/building-frr-for-centos7.rst
index 31cd4dcc49..31cd4dcc49 100644
--- a/doc/developer/building-frr-on-centos7.rst
+++ b/doc/developer/building-frr-for-centos7.rst
diff --git a/doc/developer/building-frr-on-debian8.rst b/doc/developer/building-frr-for-debian8.rst
index d1e65a472d..d1e65a472d 100644
--- a/doc/developer/building-frr-on-debian8.rst
+++ b/doc/developer/building-frr-for-debian8.rst
diff --git a/doc/developer/building-frr-on-debian9.rst b/doc/developer/building-frr-for-debian9.rst
index 7dad9a7bd4..7dad9a7bd4 100644
--- a/doc/developer/building-frr-on-debian9.rst
+++ b/doc/developer/building-frr-for-debian9.rst
diff --git a/doc/developer/building-frr-on-fedora24.rst b/doc/developer/building-frr-for-fedora24.rst
index 208c580b63..208c580b63 100644
--- a/doc/developer/building-frr-on-fedora24.rst
+++ b/doc/developer/building-frr-for-fedora24.rst
diff --git a/doc/developer/building-frr-on-freebsd10.rst b/doc/developer/building-frr-for-freebsd10.rst
index 5d14db5fa7..95f09e8c22 100644
--- a/doc/developer/building-frr-on-freebsd10.rst
+++ b/doc/developer/building-frr-for-freebsd10.rst
@@ -78,21 +78,41 @@ an example)
Create empty FRR configuration files
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-::
+.. code-block:: shell
+
+ sudo mkdir /usr/local/etc/frr
+
+For integrated config file:
+
+.. code-block:: shell
+
+ sudo touch /usr/local/etc/frr/frr.conf
+
+For individual config files:
+
+.. note:: Integrated config is preferred to individual config.
+
+.. code-block:: shell
- 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
+ sudo touch /usr/local/etc/frr/babeld.conf
+ sudo touch /usr/local/etc/frr/bfdd.conf
+ sudo touch /usr/local/etc/frr/bgpd.conf
+ sudo touch /usr/local/etc/frr/eigrpd.conf
+ sudo touch /usr/local/etc/frr/isisd.conf
+ sudo touch /usr/local/etc/frr/ldpd.conf
+ sudo touch /usr/local/etc/frr/nhrpd.conf
+ sudo touch /usr/local/etc/frr/ospf6d.conf
+ sudo touch /usr/local/etc/frr/ospfd.conf
+ sudo touch /usr/local/etc/frr/pbrd.conf
+ sudo touch /usr/local/etc/frr/pimd.conf
+ sudo touch /usr/local/etc/frr/ripd.conf
+ sudo touch /usr/local/etc/frr/ripngd.conf
+ sudo touch /usr/local/etc/frr/staticd.conf
+ sudo touch /usr/local/etc/frr/zebra.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
^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -101,9 +121,8 @@ 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
+ # 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
+**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
index 0000000000..ce5941440c
--- /dev/null
+++ b/doc/developer/building-frr-for-freebsd11.rst
@@ -0,0 +1,133 @@
+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)
+
+.. code-block:: shell
+
+ pkg install git autoconf automake libtool gmake gawk json-c pkgconf \
+ bison flex py27-pytest c-ares python3 py36-sphinx texinfo
+
+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)
+
+.. code-block:: shell
+
+ 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
+^^^^^^^^^^^^^^^^^^^^^^
+
+.. code-block:: shell
+
+ 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
+
+
+Download Source, configure and compile it
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+(You may prefer different options on configure statement. These are just
+an example)
+
+.. code-block:: shell
+
+ git clone https://github.com/frrouting/frr.git frr
+ cd frr
+ ./bootstrap.sh
+ setenv MAKE gmake
+ setenv LDFLAGS -L/usr/local/lib
+ setenv CPPFLAGS -I/usr/local/include
+ ln -s /usr/local/bin/sphinx-build-3.6 /usr/local/bin/sphinx-build
+ ./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
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. code-block:: shell
+
+ sudo mkdir /usr/local/etc/frr
+
+For integrated config file:
+
+.. code-block:: shell
+
+ sudo touch /usr/local/etc/frr/frr.conf
+
+For individual config files:
+
+.. note:: Integrated config is preferred to individual config.
+
+.. code-block:: shell
+
+ sudo touch /usr/local/etc/frr/babeld.conf
+ sudo touch /usr/local/etc/frr/bfdd.conf
+ sudo touch /usr/local/etc/frr/bgpd.conf
+ sudo touch /usr/local/etc/frr/eigrpd.conf
+ sudo touch /usr/local/etc/frr/isisd.conf
+ sudo touch /usr/local/etc/frr/ldpd.conf
+ sudo touch /usr/local/etc/frr/nhrpd.conf
+ sudo touch /usr/local/etc/frr/ospf6d.conf
+ sudo touch /usr/local/etc/frr/ospfd.conf
+ sudo touch /usr/local/etc/frr/pbrd.conf
+ sudo touch /usr/local/etc/frr/pimd.conf
+ sudo touch /usr/local/etc/frr/ripd.conf
+ sudo touch /usr/local/etc/frr/ripngd.conf
+ sudo touch /usr/local/etc/frr/staticd.conf
+ sudo touch /usr/local/etc/frr/zebra.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-for-freebsd9.rst
index 02279debea..4f859d3510 100644
--- a/doc/developer/building-frr-on-freebsd9.rst
+++ b/doc/developer/building-frr-for-freebsd9.rst
@@ -91,21 +91,41 @@ an example)
Create empty FRR configuration files
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-::
+.. code-block:: shell
+
+ sudo mkdir /usr/local/etc/frr
+
+For integrated config file:
+
+.. code-block:: shell
+
+ sudo touch /usr/local/etc/frr/frr.conf
+
+For individual config files:
+
+.. note:: Integrated config is preferred to individual config.
+
+.. code-block:: shell
- 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
+ sudo touch /usr/local/etc/frr/babeld.conf
+ sudo touch /usr/local/etc/frr/bfdd.conf
+ sudo touch /usr/local/etc/frr/bgpd.conf
+ sudo touch /usr/local/etc/frr/eigrpd.conf
+ sudo touch /usr/local/etc/frr/isisd.conf
+ sudo touch /usr/local/etc/frr/ldpd.conf
+ sudo touch /usr/local/etc/frr/nhrpd.conf
+ sudo touch /usr/local/etc/frr/ospf6d.conf
+ sudo touch /usr/local/etc/frr/ospfd.conf
+ sudo touch /usr/local/etc/frr/pbrd.conf
+ sudo touch /usr/local/etc/frr/pimd.conf
+ sudo touch /usr/local/etc/frr/ripd.conf
+ sudo touch /usr/local/etc/frr/ripngd.conf
+ sudo touch /usr/local/etc/frr/staticd.conf
+ sudo touch /usr/local/etc/frr/zebra.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
^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -114,9 +134,8 @@ 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
+ # 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
+**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-for-netbsd6.rst
index ca0845d0d0..ca0845d0d0 100644
--- a/doc/developer/building-frr-on-netbsd6.rst
+++ b/doc/developer/building-frr-for-netbsd6.rst
diff --git a/doc/developer/building-frr-on-netbsd7.rst b/doc/developer/building-frr-for-netbsd7.rst
index 86242ef965..86242ef965 100644
--- a/doc/developer/building-frr-on-netbsd7.rst
+++ b/doc/developer/building-frr-for-netbsd7.rst
diff --git a/doc/developer/building-frr-on-omnios.rst b/doc/developer/building-frr-for-omnios.rst
index 03f3845de8..03f3845de8 100644
--- a/doc/developer/building-frr-on-omnios.rst
+++ b/doc/developer/building-frr-for-omnios.rst
diff --git a/doc/developer/building-frr-on-openbsd6.rst b/doc/developer/building-frr-for-openbsd6.rst
index 46db25a025..46db25a025 100644
--- a/doc/developer/building-frr-on-openbsd6.rst
+++ b/doc/developer/building-frr-for-openbsd6.rst
diff --git a/doc/developer/building-frr-for-openwrt.rst b/doc/developer/building-frr-for-openwrt.rst
new file mode 100644
index 0000000000..b9be1b5226
--- /dev/null
+++ b/doc/developer/building-frr-for-openwrt.rst
@@ -0,0 +1,77 @@
+OpenWRT
+=======
+
+Prepare build environment
+-------------------------
+
+For Debian based distributions, run:
+
+::
+
+ sudo apt-get install git build-essential libssl-dev libncurses5-dev \
+ unzip gawk zlib1g-dev subversion mercurial
+
+For other environments, instructions can be found in the
+`official documentation
+<https://wiki.openwrt.org/doc/howto/buildroot.exigence#examples_of_package_installations>`_.
+
+
+Get OpenWRT Sources (from Git)
+------------------------------
+
+.. note::
+ The OpenWRT build will fail if you run it as root. So take care to run it as a nonprivileged user.
+
+Clone the OpenWRT sources and retrieve the package feeds
+
+::
+
+ git clone https://github.com/openwrt/openwrt.git
+ cd openwrt
+ ./scripts/feeds update -a
+ ./scripts/feeds install -a
+ cd feeds/routing
+ git fetch origin pull/319/head
+ git read-tree --prefix=frr/ -u FETCH_HEAD:frr
+ cd ../../package/feeds/routing/
+ ln -sv ../../../feeds/routing/frr .
+ cd ../../..
+
+Configure OpenWRT for your target and select the needed FRR packages in Network -> Routing and Redirection -> frr,
+exit and save
+
+::
+
+ make menuconfig
+
+Then, to compile either a complete OpenWRT image, or the FRR packages, run:
+
+::
+
+ make or make package/frr/compile
+
+It may be possible that on first build ``make package/frr/compile`` not
+to work and it may be needed to run a ``make`` for the entire build
+environment. Add ``V=s`` to get more debugging output.
+
+Work with sources
+-----------------
+
+To update to a newer version, or change other options, you need to edit the ``feeds/routing/frr/Makefile``.
+
+Usage
+-----
+
+Edit ``/usr/sbin/frr.init`` and add/remove the daemons name in section
+``DAEMONS=`` or don't install unneded packages For example: zebra bgpd ldpd
+isisd nhrpd ospfd ospf6d pimd ripd ripngd
+
+Enable the serivce
+^^^^^^^^^^^^^^^^^^
+
+- ``service frr enable``
+
+Start the service
+^^^^^^^^^^^^^^^^^
+
+- ``service frr start``
diff --git a/doc/developer/building-frr-on-ubuntu1204.rst b/doc/developer/building-frr-for-ubuntu1204.rst
index 459d411ebc..459d411ebc 100644
--- a/doc/developer/building-frr-on-ubuntu1204.rst
+++ b/doc/developer/building-frr-for-ubuntu1204.rst
diff --git a/doc/developer/building-frr-on-ubuntu1404.rst b/doc/developer/building-frr-for-ubuntu1404.rst
index 681cc30a3b..681cc30a3b 100644
--- a/doc/developer/building-frr-on-ubuntu1404.rst
+++ b/doc/developer/building-frr-for-ubuntu1404.rst
diff --git a/doc/developer/building-frr-on-ubuntu1604.rst b/doc/developer/building-frr-for-ubuntu1604.rst
index 69c4e44d98..69c4e44d98 100644
--- a/doc/developer/building-frr-on-ubuntu1604.rst
+++ b/doc/developer/building-frr-for-ubuntu1604.rst
diff --git a/doc/developer/building-frr-on-ubuntu1804.rst b/doc/developer/building-frr-for-ubuntu1804.rst
index 50e90fc7ea..50e90fc7ea 100644
--- a/doc/developer/building-frr-on-ubuntu1804.rst
+++ b/doc/developer/building-frr-for-ubuntu1804.rst
diff --git a/doc/developer/building-frr-on-freebsd11.rst b/doc/developer/building-frr-on-freebsd11.rst
deleted file mode 100644
index 87fb30226d..0000000000
--- a/doc/developer/building-frr-on-freebsd11.rst
+++ /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-lede-openwrt.rst b/doc/developer/building-frr-on-lede-openwrt.rst
deleted file mode 100644
index d14754b37f..0000000000
--- a/doc/developer/building-frr-on-lede-openwrt.rst
+++ /dev/null
@@ -1,108 +0,0 @@
-OpenWRT/LEDE
-=============================================
-
-- for the moment because of cross compile problems, master is not
- supported, only up to 3.0
-- LDP can't be built because of missing Perl-XML-LibXML in OpenWRT/LEDE
- tree
-
-Prepare build environment
--------------------------
-
-https://lede-project.org/docs/guide-developer/install-buildsystem
-
-for
-
-Ubuntu 12.04LTS:
-
-::
-
- sudo apt-get install build-essential subversion git-core \
- libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproc \
- libxml-parser-perl mercurial bzr ecj cvs unzip python3-sphinx
-
-Ubuntu 64bit:
-
-::
-
- sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev \
- gawk gcc-multilib flex git-core gettext libssl-dev python3-sphinx
-
-Debian 8 Jessie:
-
-::
-
- sudo apt-get install build-essential libncurses5-dev gawk git subversion \
- libssl-dev gettext unzip zlib1g-dev file python python3-sphinx
-
-Debian 9 Stretch:
-
-::
-
- sudo apt-get install build-essential libncurses5-dev gawk git subversion \
- libssl-dev gettext zlib1g-dev python3-sphinx
-
-Centos x86-64 (some packages require EPEL):
-
-::
-
- yum install subversion binutils bzip2 gcc gcc-c++ gawk gettext flex \
- ncurses-devel zlib-devel zlib-static make patch unzip glibc glibc-devel \
- perl-ExtUtils-MakeMaker glibc-static quilt ncurses-libs sed sdcc bison \
- intltool sharutils wget git-core openssl-devel xz python-sphinx
-
-Fedora 24 - 64Bit:
-
-::
-
- dnf install -y subversion binutils bzip2 gcc gcc-c++ gawk gettext git-core \
- unzip ncurses-devel ncurses-compat-libs zlib-devel zlib-static make \
- flex patch perl-ExtUtils-MakeMaker perl-Thread-Queue glibc glibc-devel \
- glibc-static quilt sed sdcc intltool sharutils bison wget openssl-devel \
- python3-sphinx
-
-Get LEDE Sources (from Git)
----------------------------
-
-LEDE and OpenWRT is planned to remerge and won't cover the similar
-OpenWRT build As normal user: git clone
-https://git.lede-project.org/source.git lede cd lede ./scripts/feeds
-update -a ./scripts/feeds install -a cd feeds/routing git pull origin
-pull/319/head ln -s ../../../feeds/routing/frr/
-../../package/feeds/routing/ cd ../.. make menuconfig
-
-Select the needed target then select needed packages in Network ->
-Routing and Redirection -> frr, exit and save
-
-::
-
- make or make package/frr/compile
-
-It may be possible that on first build ``make package/frr/compile`` not
-to work and it may be needed to run a ``make`` for the entire build
-envronment, add V=s for debugging
-
-Work with sources
------------------
-
-To update the rc1 version or add other options, the Makefile is found in
-feeds/routing/frr
-
-edit: PKG\_VERSION:= PKG\_SOURCE\_VERSION:=
-
-Usage
------
-
-Edit ``/usr/sbin/frr.init`` and add/remove the daemons name in section
-DAEMONS= or don't install unneded packages For example: zebra bgpd ldpd
-isisd nhrpd ospfd ospf6d pimd ripd ripngd
-
-Enable the serivce
-^^^^^^^^^^^^^^^^^^
-
-- service frr enable
-
-Start the service
-^^^^^^^^^^^^^^^^^
-
-- service frr start
diff --git a/doc/developer/building.rst b/doc/developer/building.rst
index 051611a65d..d145849f7f 100644
--- a/doc/developer/building.rst
+++ b/doc/developer/building.rst
@@ -7,7 +7,6 @@ Building FRR
.. toctree::
:maxdepth: 2
- building-frr-on-lede-openwrt
building-frr-on-alpine
building-frr-on-centos6
building-frr-on-centos7
@@ -21,6 +20,7 @@ Building FRR
building-frr-on-netbsd7
building-frr-on-omnios
building-frr-on-openbsd6
+ building-frr-for-openwrt
building-frr-on-ubuntu1204
building-frr-on-ubuntu1404
building-frr-on-ubuntu1604
diff --git a/doc/developer/subdir.am b/doc/developer/subdir.am
new file mode 100644
index 0000000000..43d1290044
--- /dev/null
+++ b/doc/developer/subdir.am
@@ -0,0 +1,72 @@
+#
+# doc/developer
+#
+
+dev_RSTFILES = \
+ doc/developer/bgp-typecodes.rst \
+ doc/developer/bgpd.rst \
+ doc/developer/building-frr-for-openwrt.rst \
+ doc/developer/building-frr-for-alpine.rst \
+ doc/developer/building-frr-for-centos6.rst \
+ doc/developer/building-frr-for-centos7.rst \
+ doc/developer/building-frr-for-debian8.rst \
+ doc/developer/building-frr-for-debian9.rst \
+ doc/developer/building-frr-for-fedora24.rst \
+ doc/developer/building-frr-for-freebsd10.rst \
+ doc/developer/building-frr-for-freebsd11.rst \
+ doc/developer/building-frr-for-freebsd9.rst \
+ doc/developer/building-frr-for-netbsd6.rst \
+ doc/developer/building-frr-for-netbsd7.rst \
+ doc/developer/building-frr-for-omnios.rst \
+ doc/developer/building-frr-for-openbsd6.rst \
+ doc/developer/building-frr-for-ubuntu1204.rst \
+ doc/developer/building-frr-for-ubuntu1404.rst \
+ doc/developer/building-frr-for-ubuntu1604.rst \
+ doc/developer/building-frr-for-ubuntu1804.rst \
+ doc/developer/building.rst \
+ doc/developer/cli.rst \
+ doc/developer/conf.py \
+ doc/developer/hooks.rst \
+ doc/developer/index.rst \
+ doc/developer/library.rst \
+ doc/developer/logging.rst \
+ doc/developer/maintainer-release-build.rst \
+ doc/developer/memtypes.rst \
+ doc/developer/modules.rst \
+ doc/developer/next-hop-tracking.rst \
+ doc/developer/ospf-api.rst \
+ doc/developer/ospf-sr.rst \
+ doc/developer/ospf.rst \
+ doc/developer/workflow.rst \
+ doc/developer/zebra.rst \
+ # end
+
+EXTRA_DIST += \
+ $(dev_RSTFILES) \
+ doc/developer/draft-zebra-00.ms \
+ doc/developer/ldpd-basic-test-setup.md \
+ # end
+
+DEVBUILD = doc/developer/_build
+$(DEVBUILD)/.doctrees/environment.pickle: $(dev_RSTFILES)
+
+#
+# nothing built automatically for "all" target.
+#
+
+#
+# standard targets
+#
+
+developer-info: $(DEVBUILD)/texinfo/frr.info
+developer-html: $(DEVBUILD)/html/.buildinfo
+developer-pdf: $(DEVBUILD)/latexpdf
+
+#
+# hook-in for clean
+#
+
+.PHONY: clean-devdocs
+clean-local: clean-devdocs
+clean-devdocs:
+ -rm -rf "$(DEVBUILD)"