Configure an IPv4 Point-to-Point address on the interface. (The concept of
PtP addressing does not exist for IPv6.)
- `local-addr` has no subnet mask since the local side in PtP addressing is
- always a single (/32) address. `peer-addr/prefix` can be an arbitrary subnet
+ ``local-addr`` has no subnet mask since the local side in PtP addressing is
+ always a single (/32) address. ``peer-addr/prefix`` can be an arbitrary subnet
behind the other end of the link (or even on the link in Point-to-Multipoint
setups), though generally /32s are used.
.. clicmd:: multicast
- Enable or disables multicast flag for the interface.
+ Enable or disable multicast flag for the interface.
.. clicmd:: bandwidth (1-10000000)
.. clicmd:: link-detect
- Enable/disable link-detect on platforms which support this. Currently only
+ Enable or disable link-detect on platforms which support this. Currently only
Linux, and only where network interface drivers support reporting
link-state via the ``IFF_RUNNING`` flag.
.. clicmd:: show ip route vrf VRF tables
- This command will dump the routing tables within the vrf scope. If `vrf all`
+ This command will dump the routing tables within the vrf scope. If ``vrf all``
is executed, all routing tables will be dumped.
.. clicmd:: show <ip|ipv6> route summary [vrf VRF] [table TABLENO] [prefix]
over the *Zebra* VRF. One nice feature that is possible by handling *Linux
network namespace* is the ability to name default VRF. At startup, *Zebra*
discovers the available *Linux network namespace* by parsing folder
-`/var/run/netns`. Each file stands for a *Linux network namespace*, but not all
+``/var/run/netns``. Each file stands for a *Linux network namespace*, but not all
*Linux network namespaces* are available under that folder. This is the case for
default VRF. It is possible to name the default VRF, by creating a file, by
executing following commands.
mount --bind /proc/self/ns/net /var/run/netns/vrf0
Above command illustrates what happens when the default VRF is visible under
-`var/run/netns/`. Here, the default VRF file is `vrf0`.
+``/var/run/netns``. Here, the default VRF file is ``vrf0``.
At startup, FRR detects the presence of that file. It detects that the file
statistics information matches the same file statistics information as
-`/proc/self/ns/net` ( through stat() function). As statistics information
-matches, then `vrf0` stands for the new default namespace name.
-Consequently, the VRF naming `Default` will be overridden by the new discovered
-namespace name `vrf0`.
+``/proc/self/ns/net`` ( through stat() function). As statistics information
+matches, then ``vrf0`` stands for the new default namespace name.
+Consequently, the VRF naming ``Default`` will be overridden by the new discovered
+namespace name ``vrf0``.
For those who don't use VRF backend with *Linux network namespace*, it is
possible to statically configure and recompile FRR. It is possible to choose an
alternate name for default VRF. Then, the default VRF naming will automatically
be updated with the new name. To illustrate, if you want to recompile with
-`global` value, use the following command:
+``global`` value, use the following command:
.. code-block:: shell
protocols each have their own way of dictating ECMP policy and their
respective documentation should be read.
-ECMP can be inspected in zebra by doing a `show ip route X` command.
+ECMP can be inspected in zebra by doing a ``show ip route X`` command.
.. code-block:: shell
* via 192.168.161.15, enp39s0, weight 1, 00:00:02
* via 192.168.161.16, enp39s0, weight 1, 00:00:02
-In this example we have 16 way ecmp for the 4.4.4.4/32 route. The `*` character
+In this example we have 16 way ecmp for the 4.4.4.4/32 route. The ``*`` character
tells us that the route is installed in the Data Plane, or FIB.
If you are using the Linux kernel as a Data Plane, this can be inspected
-via a `ip route show X` command:
+via a ``ip route show X`` command:
.. code-block:: shell
Once installed into the FIB, FRR currently has little control over what
nexthops are choosen to forward packets on. Currently the Linux kernel
-has a `fib_multipath_hash_policy` sysctl which dictates how the hashing
+has a ``fib_multipath_hash_policy`` sysctl which dictates how the hashing
algorithm is used to forward packets.
.. _zebra-mpls:
with the longer prefix length is used; if they're equal, the
Multicast RIB takes precedence.
- The `mrib-then-urib` setting is the default behavior if nothing is
+ The ``mrib-then-urib`` setting is the default behavior if nothing is
configured. If this is the desired behavior, it should be explicitly
configured to make the configuration immune against possible changes in
what the default behavior is.
ip prefix-list ANY permit 0.0.0.0/0 le 32
route-map RM1 permit 10
- match ip address prefix-list ANY
- set src 10.0.0.1
+ match ip address prefix-list ANY
+ set src 10.0.0.1
ip protocol rip route-map RM1
ipv6 prefix-list ANY seq 10 permit any
route-map RM6 permit 10
- match ipv6 address prefix-list ANY
- set src 2001:db8:425:1000::3
+ match ipv6 address prefix-list ANY
+ set src 2001:db8:425:1000::3
ipv6 protocol ospf6 route-map RM6
(FIB). Zebra feeds the FIB to the kernel, which allows the IP stack in
the kernel to forward packets according to the routes computed by
FRR. The kernel FIB is updated in an OS-specific way. For example,
-the `Netlink` interface is used on Linux, and route sockets are
+the ``Netlink`` interface is used on Linux, and route sockets are
used on FreeBSD.
The FIB push interface aims to provide a cross-platform mechanism to
Useful sysctl settings
----------------------
-.. option:: net.ipv6.conf.all.use_oif_addrs_only=1
+.. option:: net.ipv6.conf.all.use_oif_addrs_only = 1
When enabled, the candidate source addresses for destinations routed via this interface are
restricted to the set of addresses configured on this interface (RFC 6724 section 4). If
.. clicmd:: zebra on-rib-process script SCRIPT
Set a Lua script for :ref:`on-rib-process-dplane-results` hook call.
- SCRIPT is the basename of the script, without `.lua`.
+ SCRIPT is the basename of the script, without ``.lua``.
Data structures
---------------