summaryrefslogtreecommitdiff
path: root/doc/user
diff options
context:
space:
mode:
Diffstat (limited to 'doc/user')
-rw-r--r--doc/user/basic.rst17
-rw-r--r--doc/user/bgp.rst37
-rw-r--r--doc/user/ipv6.rst23
-rw-r--r--doc/user/pim.rst8
-rw-r--r--doc/user/setup.rst16
-rw-r--r--doc/user/zebra.rst182
6 files changed, 227 insertions, 56 deletions
diff --git a/doc/user/basic.rst b/doc/user/basic.rst
index edcfce45ad..5b7786de18 100644
--- a/doc/user/basic.rst
+++ b/doc/user/basic.rst
@@ -86,6 +86,15 @@ Basic Config Commands
debugging. Note that the existing code logs its most important messages with
severity ``errors``.
+ .. warning::
+
+ FRRouting uses the ``writev()`` system call to write log messages. This
+ call is supposed to be atomic, but in reality this does not hold for
+ pipes or terminals, only regular files. This means that in rare cases,
+ concurrent log messages from distinct threads may get jumbled in
+ terminal output. Use a log file and ``tail -f`` if this rare chance is
+ inacceptable to your setup.
+
.. index::
single: no log file [FILENAME [LEVEL]]
single: log file FILENAME [LEVEL]
@@ -104,14 +113,6 @@ Basic Config Commands
deprecated ``log trap`` command) will be used. The ``no`` form of the command
disables logging to a file.
- .. note::
-
- If you do not configure any file logging, and a daemon crashes due to a
- signal or an assertion failure, it will attempt to save the crash
- information in a file named :file:`/var/tmp/frr.<daemon name>.crashlog`.
- For security reasons, this will not happen if the file exists already, so
- it is important to delete the file after reporting the crash information.
-
.. index::
single: no log syslog [LEVEL]
single: log syslog [LEVEL]
diff --git a/doc/user/bgp.rst b/doc/user/bgp.rst
index d84bffc3c6..2b3cc9e535 100644
--- a/doc/user/bgp.rst
+++ b/doc/user/bgp.rst
@@ -414,7 +414,11 @@ Require policy on EBGP
.. index:: [no] bgp ebgp-requires-policy
.. clicmd:: [no] bgp ebgp-requires-policy
- This command requires incoming and outgoing filters to be applied for eBGP sessions. Without the incoming filter, no routes will be accepted. Without the outgoing filter, no routes will be announced.
+ This command requires incoming and outgoing filters to be applied
+ for eBGP sessions. Without the incoming filter, no routes will be
+ accepted. Without the outgoing filter, no routes will be announced.
+
+ This is enabled by default.
Reject routes with AS_SET or AS_CONFED_SET types
------------------------------------------------
@@ -904,6 +908,17 @@ Networks
.. index:: no network A.B.C.D/M
.. clicmd:: no network A.B.C.D/M
+.. index:: [no] bgp network import-check
+.. clicmd:: [no] bgp network import-check
+
+ This configuration modifies the behavior of the network statement.
+ If you have this configured the underlying network must exist in
+ the rib. If you have the [no] form configured then BGP will not
+ check for the networks existence in the rib. For versions 7.3 and
+ before frr defaults for datacenter were the network must exist,
+ traditional did not check for existence. For versions 7.4 and beyond
+ both traditional and datacenter the network must exist.
+
.. _bgp-route-aggregation:
Route Aggregation
@@ -1474,6 +1489,17 @@ AS path access list is user defined AS path.
.. index:: no bgp as-path access-list WORD permit|deny LINE
.. clicmd:: no bgp as-path access-list WORD permit|deny LINE
+.. _bgp-bogon-filter-example:
+
+Bogon ASN filter policy configuration example
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. code-block:: frr
+
+ bgp as-path access-list 99 permit _0_
+ bgp as-path access-list 99 permit _23456_
+ bgp as-path access-list 99 permit _1310[0-6][0-9]_|_13107[0-1]_
+
.. _bgp-using-as-path-in-route-map:
Using AS Path in Route Map
@@ -2646,7 +2672,14 @@ structure is extended with :clicmd:`show bgp [afi] [safi]`.
These commands display BGP routes for the specific routing table indicated by
the selected afi and the selected safi. If no afi and no safi value is given,
- the command falls back to the default IPv6 routing table
+ the command falls back to the default IPv6 routing table.
+ For EVPN prefixes, you can display the full BGP table for this AFI/SAFI
+ using the standard `show bgp [afi] [safi]` syntax.
+
+.. index:: show bgp l2vpn evpn route [type <macip|2|multicast|3|es|4|prefix|5>]
+.. clicmd:: show bgp l2vpn evpn route [type <macip|2|multicast|3|es|4|prefix|5>]
+
+ Additionally, you can also filter this output by route type.
.. index:: show bgp [afi] [safi] summary
.. clicmd:: show bgp [afi] [safi] summary
diff --git a/doc/user/ipv6.rst b/doc/user/ipv6.rst
index f3f064b850..d1477ddcdb 100644
--- a/doc/user/ipv6.rst
+++ b/doc/user/ipv6.rst
@@ -91,6 +91,29 @@ Router Advertisement
Default: enabled
.. index::
+ single: ipv6 nd ra-retrans-interval (0-4294967295)
+ single: no ipv6 nd retrans-interval [(0-4294967295)]
+.. clicmd:: [no] ipv6 nd ra-retrans-interval [(0-4294967295)]
+
+ The value to be placed in the retrans timer field of router advertisements
+ sent from the interface, in msec. Indicates the interval between router
+ advertisement retransmissions. Setting the value to zero indicates that
+ the value is unspecified by this router. Must be between zero or 4294967295
+ msec.
+ Default: ``0``
+
+.. index::
+ single: ipv6 nd ra-hop-limit (0-255)
+ single: no ipv6 nd ra-hop-limit [(0-255)]
+.. clicmd:: [no] ipv6 nd ra-hop-limit [(0-255)]
+
+ The value to be placed in the hop count field of router advertisements sent
+ from the interface, in hops. Indicates the maximum diameter of the network.
+ Setting the value to zero indicates that the value is unspecified by this
+ router. Must be between zero or 255 hops.
+ Default: ``64``
+
+.. index::
single: ipv6 nd ra-lifetime (0-9000)
single: no ipv6 nd ra-lifetime [(0-9000)]
.. clicmd:: [no] ipv6 nd ra-lifetime [(0-9000)]
diff --git a/doc/user/pim.rst b/doc/user/pim.rst
index f0ec2d26ff..2944e0b705 100644
--- a/doc/user/pim.rst
+++ b/doc/user/pim.rst
@@ -178,6 +178,14 @@ Certain signals have special meanings to *pimd*.
the existing IGMP general query timer.If no version is provided in the cli,
it will be considered as default v2 query.This is a hidden command.
+.. index:: [no] ip igmp watermark-warn (10-60000)
+.. clicmd:: [no] ip igmp watermark-warn (10-60000)
+
+ Configure watermark warning generation for an igmp group limit. Generates
+ warning once the configured group limit is reached while adding new groups.
+ 'no' form of the command disables the warning generation. This command is
+ vrf aware. To configure per vrf, enter vrf submode.
+
.. _pim-interface-configuration:
PIM Interface Configuration
diff --git a/doc/user/setup.rst b/doc/user/setup.rst
index 6d61a970d2..f60a66b9fd 100644
--- a/doc/user/setup.rst
+++ b/doc/user/setup.rst
@@ -6,6 +6,22 @@ Basic Setup
After installing FRR, some basic configuration must be completed before it is
ready to use.
+Crash logs
+----------
+
+If any daemon should crash for some reason (segmentation fault, assertion
+failure, etc.), it will attempt to write a backtrace to a file located in
+:file:`/var/tmp/frr/<daemon>[-<instance>].<pid>/crashlog`. This feature is
+not affected by any configuration options.
+
+The crashlog file's directory also contains files corresponding to per-thread
+message buffers in files named
+:file:`/var/tmp/frr/<daemon>[-<instance>].<pid>/logbuf.<tid>`. In case of a
+crash, these may contain unwritten buffered log messages. To show the contents
+of these buffers, pipe their contents through ``tr '\0' '\n'``. A blank line
+marks the end of valid unwritten data (it will generally be followed by
+garbled, older log messages since the buffer is not cleared.)
+
Daemons Configuration File
--------------------------
After a fresh install, starting FRR will do nothing. This is because daemons
diff --git a/doc/user/zebra.rst b/doc/user/zebra.rst
index 520080e83a..9dfd08f733 100644
--- a/doc/user/zebra.rst
+++ b/doc/user/zebra.rst
@@ -736,43 +736,30 @@ these cases, the FIB needs to be maintained reliably in the fast path
as well. We refer to the component that programs the forwarding plane
(directly or indirectly) as the Forwarding Plane Manager or FPM.
-The FIB push interface comprises of a TCP connection between zebra and
-the FPM. The connection is initiated by zebra -- that is, the FPM acts
-as the TCP server.
-
.. program:: configure
The relevant zebra code kicks in when zebra is configured with the
-:option:`--enable-fpm` flag. Zebra periodically attempts to connect to
-the well-known FPM port. Once the connection is up, zebra starts
-sending messages containing routes over the socket to the FPM. Zebra
-sends a complete copy of the forwarding table to the FPM, including
-routes that it may have picked up from the kernel. The existing
-interaction of zebra with the kernel remains unchanged -- that is, the
-kernel continues to receive FIB updates as before.
-
-The encapsulation header for the messages exchanged with the FPM is
-defined by the file :file:`fpm/fpm.h` in the frr tree. The routes
-themselves are encoded in Netlink or protobuf format, with Netlink
-being the default.
-
-Protobuf is one of a number of new serialization formats wherein the
-message schema is expressed in a purpose-built language. Code for
-encoding/decoding to/from the wire format is generated from the
-schema. Protobuf messages can be extended easily while maintaining
-backward-compatibility with older code. Protobuf has the following
-advantages over Netlink:
-
-- Code for serialization/deserialization is generated automatically. This
- reduces the likelihood of bugs, allows third-party programs to be integrated
- quickly, and makes it easy to add fields.
-- The message format is not tied to an OS (Linux), and can be evolved
- independently.
-
-As mentioned before, zebra encodes routes sent to the FPM in Netlink
-format by default. The format can be controlled via the FPM module's
-load-time option to zebra, which currently takes the values `Netlink`
-and `protobuf`.
+:option:`--enable-fpm` flag and started with the module (``-M fpm``
+or ``-M dplane_fpm_nl``).
+
+.. note::
+
+ The ``fpm`` implementation attempts to connect to ``127.0.0.1`` port ``2620``
+ by default without configurations. The ``dplane_fpm_nl`` only attempts to
+ connect to a server if configured.
+
+Zebra periodically attempts to connect to the well-known FPM port (``2620``).
+Once the connection is up, zebra starts sending messages containing routes
+over the socket to the FPM. Zebra sends a complete copy of the forwarding
+table to the FPM, including routes that it may have picked up from the kernel.
+The existing interaction of zebra with the kernel remains unchanged -- that
+is, the kernel continues to receive FIB updates as before.
+
+The default FPM message format is netlink, however it can be controlled
+with the module load-time option. The modules accept the following options:
+
+- ``fpm``: ``netlink`` and ``protobuf``.
+- ``dplane_fpm_nl``: none, it only implements netlink.
The zebra FPM interface uses replace semantics. That is, if a 'route
add' message for a prefix is followed by another 'route add' message,
@@ -782,6 +769,121 @@ replaces the information sent in the first message.
If the connection to the FPM goes down for some reason, zebra sends
the FPM a complete copy of the forwarding table(s) when it reconnects.
+For more details on the implementation, please read the developer's manual FPM
+section.
+
+FPM Commands
+============
+
+``fpm`` implementation
+----------------------
+
+.. index:: fpm connection ip A.B.C.D port (1-65535)
+.. clicmd:: fpm connection ip A.B.C.D port (1-65535)
+
+ Configure ``zebra`` to connect to a different FPM server than
+ ``127.0.0.1`` port ``2620``.
+
+
+.. index:: no fpm connection ip A.B.C.D port (1-65535)
+.. clicmd:: no fpm connection ip A.B.C.D port (1-65535)
+
+ Configure ``zebra`` to connect to the default FPM server at ``127.0.0.1``
+ port ``2620``.
+
+
+.. index:: show zebra fpm stats
+.. clicmd:: show zebra fpm stats
+
+ Shows the FPM statistics.
+
+ Sample output:
+
+ ::
+
+ Counter Total Last 10 secs
+
+ connect_calls 3 2
+ connect_no_sock 0 0
+ read_cb_calls 2 2
+ write_cb_calls 2 0
+ write_calls 1 0
+ partial_writes 0 0
+ max_writes_hit 0 0
+ t_write_yields 0 0
+ nop_deletes_skipped 6 0
+ route_adds 5 0
+ route_dels 0 0
+ updates_triggered 11 0
+ redundant_triggers 0 0
+ dests_del_after_update 0 0
+ t_conn_down_starts 0 0
+ t_conn_down_dests_processed 0 0
+ t_conn_down_yields 0 0
+ t_conn_down_finishes 0 0
+ t_conn_up_starts 1 0
+ t_conn_up_dests_processed 11 0
+ t_conn_up_yields 0 0
+ t_conn_up_aborts 0 0
+ t_conn_up_finishes 1 0
+
+
+.. index:: clear zebra fpm stats
+.. clicmd:: clear zebra fpm stats
+
+ Reset statistics related to the zebra code that interacts with the
+ optional Forwarding Plane Manager (FPM) component.
+
+
+``dplane_fpm_nl`` implementation
+--------------------------------
+
+.. index:: fpm address <A.B.C.D|X:X::X:X> [port (1-65535)]
+.. clicmd:: fpm address <A.B.C.D|X:X::X:X> [port (1-65535)]
+
+ Configures the FPM server address. Once configured ``zebra`` will attempt
+ to connect to it immediately.
+
+
+.. index:: no fpm address [<A.B.C.D|X:X::X:X> [port (1-65535)]]
+.. clicmd:: no fpm address [<A.B.C.D|X:X::X:X> [port (1-65535)]]
+
+ Disables FPM entirely. ``zebra`` will close any current connections and
+ will not attempt to connect to it anymore.
+
+
+.. index:: show fpm counters [json]
+.. clicmd:: show fpm counters [json]
+
+ Show the FPM statistics (plain text or JSON formatted).
+
+ Sample output:
+
+ ::
+
+ FPM counters
+ ============
+ Input bytes: 0
+ Output bytes: 308
+ Output buffer current size: 0
+ Output buffer peak size: 308
+ Connection closes: 0
+ Connection errors: 0
+ Data plane items processed: 0
+ Data plane items enqueued: 0
+ Data plane items queue peak: 0
+ Buffer full hits: 0
+ User FPM configurations: 1
+ User FPM disable requests: 0
+
+
+.. index:: clear fpm counters
+.. clicmd:: clear fpm counters
+
+ Reset statistics related to the zebra code that interacts with the
+ optional Forwarding Plane Manager (FPM) component.
+
+
.. _zebra-dplane:
Dataplane Commands
@@ -899,18 +1001,6 @@ zebra Terminal Mode Commands
total number of route nodes in the table. Which will be higher than
the actual number of routes that are held.
-.. index:: show zebra fpm stats
-.. clicmd:: show zebra fpm stats
-
- Display statistics related to the zebra code that interacts with the
- optional Forwarding Plane Manager (FPM) component.
-
-.. index:: clear zebra fpm stats
-.. clicmd:: clear zebra fpm stats
-
- Reset statistics related to the zebra code that interacts with the
- optional Forwarding Plane Manager (FPM) component.
-
.. index:: show nexthop-group rib [ID] [vrf NAME] [singleton [ip|ip6]]
.. clicmd:: show nexthop-group rib [ID] [vrf NAME]