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
-rw-r--r--doc/developer/workflow.rst10
25 files changed, 499 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)"
diff --git a/doc/developer/workflow.rst b/doc/developer/workflow.rst
index 358cb9ac7b..d316de0f38 100644
--- a/doc/developer/workflow.rst
+++ b/doc/developer/workflow.rst
@@ -135,6 +135,11 @@ systems. Once the automated tests succeed, other developers will review your
code for quality and correctness. After any concerns are resolved, your code
will be merged into the branch it was submitted against.
+The title of the pull request should provide a high level technical
+summary of the included patches. The description should provide
+additional details that will help the reviewer to understand the context
+of the included patches.
+
Patch Submission via Mailing List
---------------------------------
@@ -330,6 +335,11 @@ Guidelines for code review
- For a PR you marked with "Changes requested", please respond to updates in a
timely manner to avoid impeding the flow of development.
+- Rejected or obsolete PRs are generally closed by the submitter based
+ on requests and/or agreement captured in a PR comment. The comment
+ may originate with a reviewer or document agreement reached on Slack,
+ the Development mailing list, or the weekly technical meeting.
+
Coding Practices & Style
========================