]> git.puffer.fish Git - mirror/frr.git/commitdiff
doc: add FreeBSD 13 build docs 12466/head
authorDavid Lamparter <equinox@opensourcerouting.org>
Thu, 8 Dec 2022 13:17:17 +0000 (14:17 +0100)
committerDavid Lamparter <equinox@opensourcerouting.org>
Thu, 8 Dec 2022 13:19:34 +0000 (14:19 +0100)
Some minor changes since FreeBSD 11, mostly fewer extra sauce.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
doc/developer/building-frr-for-freebsd13.rst [new file with mode: 0644]
doc/developer/building.rst
doc/developer/subdir.am

diff --git a/doc/developer/building-frr-for-freebsd13.rst b/doc/developer/building-frr-for-freebsd13.rst
new file mode 100644 (file)
index 0000000..0bc8277
--- /dev/null
@@ -0,0 +1,122 @@
+FreeBSD 13
+==========
+
+FreeBSD 13 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
+-  PIM for IPv6 is not currently supported on ``FreeBSD``.
+
+Install required packages
+-------------------------
+
+Add packages: (Allow the install of the package management tool if this
+is first package install and asked)
+
+.. code-block:: shell
+
+   pkg install git autoconf automake libtool gmake json-c pkgconf \
+      bison py39-pytest c-ares py39-sphinx texinfo libunwind libyang2
+
+.. include:: building-libunwind-note.rst
+
+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
+   export MAKE=gmake LDFLAGS=-L/usr/local/lib 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-multipath=64 \
+       --enable-user=frr \
+       --enable-group=frr \
+       --enable-vty-group=frrvty \
+       --enable-configfile-mask=0640 \
+       --enable-logfile-mask=0640 \
+       --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.
index c687ba8dc8054b07bcda5ce31fff247bafa1faaf..2d8cc209b0057a79abf4a7b9bfd26f6b4792758d 100644 (file)
@@ -16,9 +16,10 @@ Building FRR
    building-frr-for-debian9
    building-frr-for-fedora
    building-frr-for-opensuse
+   building-frr-for-freebsd9
    building-frr-for-freebsd10
    building-frr-for-freebsd11
-   building-frr-for-freebsd9
+   building-frr-for-freebsd13
    building-frr-for-netbsd6
    building-frr-for-netbsd7
    building-frr-for-openbsd6
index c8654d6725c82b93eb4714fc926c78ce81ddd852..9cf14a1966c2e5a2547e144886b2c474b334abf3 100644 (file)
@@ -14,6 +14,7 @@ dev_RSTFILES = \
        doc/developer/building-frr-for-opensuse.rst \
        doc/developer/building-frr-for-freebsd10.rst \
        doc/developer/building-frr-for-freebsd11.rst \
+       doc/developer/building-frr-for-freebsd13.rst \
        doc/developer/building-frr-for-freebsd9.rst \
        doc/developer/building-frr-for-netbsd6.rst \
        doc/developer/building-frr-for-netbsd7.rst \