summaryrefslogtreecommitdiff
path: root/doc/user
diff options
context:
space:
mode:
Diffstat (limited to 'doc/user')
-rw-r--r--doc/user/bgp.rst182
-rw-r--r--doc/user/conf.py27
-rw-r--r--doc/user/flowspec.rst35
-rw-r--r--doc/user/installation.rst33
-rw-r--r--doc/user/isisd.rst31
-rw-r--r--doc/user/ospfd.rst31
-rw-r--r--doc/user/overview.rst3
-rw-r--r--doc/user/routemap.rst6
8 files changed, 265 insertions, 83 deletions
diff --git a/doc/user/bgp.rst b/doc/user/bgp.rst
index 6dc931e608..9983911581 100644
--- a/doc/user/bgp.rst
+++ b/doc/user/bgp.rst
@@ -900,6 +900,25 @@ BGP GR Peer Mode Commands
at the peer level.
+.. _bgp-shutdown:
+
+Administrative Shutdown
+-----------------------
+
+.. index:: [no] bgp shutdown [message MSG...]
+.. clicmd:: [no] bgp shutdown [message MSG...]
+
+ Administrative shutdown of all peers of a bgp instance. Drop all BGP peers,
+ but preserve their configurations. The peers are notified in accordance with
+ `RFC 8203 <https://tools.ietf.org/html/rfc8203/>`_ by sending a
+ ``NOTIFICATION`` message with error code ``Cease`` and subcode
+ ``Administrative Shutdown`` prior to terminating connections. This global
+ shutdown is independent of the neighbor shutdown, meaning that individually
+ shut down peers will not be affected by lifting it.
+
+ An optional shutdown message `MSG` can be specified.
+
+
.. _bgp-network:
Networks
@@ -1084,6 +1103,41 @@ Redistribution
Redistribute VNC direct (not via zebra) routes to BGP process.
+.. index:: bgp update-delay MAX-DELAY
+.. clicmd:: bgp update-delay MAX-DELAY
+
+.. index:: bgp update-delay MAX-DELAY ESTABLISH-WAIT
+.. clicmd:: bgp update-delay MAX-DELAY ESTABLISH-WAIT
+
+ This feature is used to enable read-only mode on BGP process restart or when
+ a BGP process is cleared using 'clear ip bgp \*'. Note that this command is
+ configured at the global level and applies to all bgp instances/vrfs. It
+ cannot be used at the same time as the "update-delay" command described below,
+ which is entered in each bgp instance/vrf desired to delay update installation
+ and advertisements. The global and per-vrf approaches to defining update-delay
+ are mutually exclusive.
+
+ When applicable, read-only mode would begin as soon as the first peer reaches
+ Established status and a timer for max-delay seconds is started. During this
+ mode BGP doesn't run any best-path or generate any updates to its peers. This
+ mode continues until:
+
+ 1. All the configured peers, except the shutdown peers, have sent explicit EOR
+ (End-Of-RIB) or an implicit-EOR. The first keep-alive after BGP has reached
+ Established is considered an implicit-EOR.
+ If the establish-wait optional value is given, then BGP will wait for
+ peers to reach established from the beginning of the update-delay till the
+ establish-wait period is over, i.e. the minimum set of established peers for
+ which EOR is expected would be peers established during the establish-wait
+ window, not necessarily all the configured neighbors.
+ 2. max-delay period is over.
+
+ On hitting any of the above two conditions, BGP resumes the decision process
+ and generates updates to its peers.
+
+ Default max-delay is 0, i.e. the feature is off by default.
+
+
.. index:: update-delay MAX-DELAY
.. clicmd:: update-delay MAX-DELAY
@@ -1091,12 +1145,17 @@ Redistribution
.. clicmd:: update-delay MAX-DELAY ESTABLISH-WAIT
This feature is used to enable read-only mode on BGP process restart or when
- BGP process is cleared using 'clear ip bgp \*'. When applicable, read-only
- mode would begin as soon as the first peer reaches Established status and a
- timer for max-delay seconds is started.
-
- During this mode BGP doesn't run any best-path or generate any updates to its
- peers. This mode continues until:
+ a BGP process is cleared using 'clear ip bgp \*'. Note that this command is
+ configured under the specific bgp instance/vrf that the feaure is enabled for.
+ It cannot be used at the same time as the global "bgp update-delay" described
+ above, which is entered at the global level and applies to all bgp instances.
+ The global and per-vrf approaches to defining update-delay are mutually
+ exclusive.
+
+ When applicable, read-only mode would begin as soon as the first peer reaches
+ Established status and a timer for max-delay seconds is started. During this
+ mode BGP doesn't run any best-path or generate any updates to its peers. This
+ mode continues until:
1. All the configured peers, except the shutdown peers, have sent explicit EOR
(End-Of-RIB) or an implicit-EOR. The first keep-alive after BGP has reached
@@ -1197,14 +1256,14 @@ Defining Peers
The time in milliseconds that BGP will delay before deciding what peers
can be put into an update-group together in order to generate a single
update for them. The default time is 1000.
-
+
.. _bgp-configuring-peers:
Configuring Peers
^^^^^^^^^^^^^^^^^
-.. index:: [no] neighbor PEER shutdown [message MSG...]
-.. clicmd:: [no] neighbor PEER shutdown [message MSG...]
+.. index:: [no] neighbor PEER shutdown [message MSG...] [rtt (1-65535) [count (1-255)]]
+.. clicmd:: [no] neighbor PEER shutdown [message MSG...] [rtt (1-65535) [count (1-255)]]
Shutdown the peer. We can delete the neighbor's configuration by
``no neighbor PEER remote-as ASN`` but all configuration of the neighbor
@@ -1213,6 +1272,12 @@ Configuring Peers
Optionally you can specify a shutdown message `MSG`.
+ Also, you can specify optionally _rtt_ in milliseconds to automatically
+ shutdown the peer if round-trip-time becomes higher than defined.
+
+ Additional _count_ parameter is the number of keepalive messages to count
+ before shutdown the peer if round-trip-time becomes higher than defined.
+
.. index:: [no] neighbor PEER disable-connected-check
.. clicmd:: [no] neighbor PEER disable-connected-check
@@ -2676,17 +2741,17 @@ daemon project, while :clicmd:`show bgp` command is the new format. The choice
has been done to keep old format with IPv4 routing table, while new format
displays IPv6 routing table.
-.. index:: show ip bgp [wide]
-.. clicmd:: show ip bgp [wide]
+.. index:: show ip bgp [all] [wide|json]
+.. clicmd:: show ip bgp [all] [wide|json]
-.. index:: show ip bgp A.B.C.D [wide]
-.. clicmd:: show ip bgp A.B.C.D [wide]
+.. index:: show ip bgp A.B.C.D [json]
+.. clicmd:: show ip bgp A.B.C.D [json]
-.. index:: show bgp [wide]
-.. clicmd:: show bgp [wide]
+.. index:: show bgp [all] [wide|json]
+.. clicmd:: show bgp [all] [wide|json]
-.. index:: show bgp X:X::X:X [wide]
-.. clicmd:: show bgp X:X::X:X [wide]
+.. index:: show bgp X:X::X:X [json]
+.. clicmd:: show bgp X:X::X:X [json]
These commands display BGP routes. When no route is specified, the default
is to display all BGP routes.
@@ -2708,6 +2773,11 @@ displays IPv6 routing table.
This is especially handy dealing with IPv6 prefixes and
if :clicmd:`[no] bgp default show-nexthop-hostname` is enabled.
+ If _all_ option is specified, _ip_ keyword is ignored, show bgp all and
+ show ip bgp all commands display routes for all AFIs and SAFIs.
+
+ If _json_ option is specified, output is displayed in JSON format.
+
Some other commands provide additional options for filtering the output.
.. index:: show [ip] bgp regexp LINE
@@ -2716,8 +2786,8 @@ Some other commands provide additional options for filtering the output.
This command displays BGP routes using AS path regular expression
(:ref:`bgp-regular-expressions`).
-.. index:: show [ip] bgp summary
-.. clicmd:: show [ip] bgp summary
+.. index:: show [ip] bgp [all] summary [json]
+.. clicmd:: show [ip] bgp [all] summary [json]
Show a bgp peer summary for the specified address family.
@@ -2726,8 +2796,8 @@ and should no longer be used. In order to reach the other BGP routing tables
other than the IPv6 routing table given by :clicmd:`show bgp`, the new command
structure is extended with :clicmd:`show bgp [afi] [safi]`.
-.. index:: show bgp [afi] [safi]
-.. clicmd:: show bgp [afi] [safi]
+.. index:: show bgp [afi] [safi] [all] [wide|json]
+.. clicmd:: show bgp [afi] [safi] [all] [wide|json]
.. index:: show bgp <ipv4|ipv6> <unicast|multicast|vpn|labeled-unicast>
.. clicmd:: show bgp <ipv4|ipv6> <unicast|multicast|vpn|labeled-unicast>
@@ -2743,20 +2813,20 @@ structure is extended with :clicmd:`show bgp [afi] [safi]`.
Additionally, you can also filter this output by route type.
-.. index:: show bgp [afi] [safi] summary
-.. clicmd:: show bgp [afi] [safi] summary
+.. index:: show bgp [afi] [safi] [all] summary [json]
+.. clicmd:: show bgp [afi] [safi] [all] summary [json]
Show a bgp peer summary for the specified address family, and subsequent
address-family.
-.. index:: show bgp [afi] [safi] summary failed [json]
-.. clicmd:: show bgp [afi] [safi] summary failed [json]
+.. index:: show bgp [afi] [safi] [all] summary failed [json]
+.. clicmd:: show bgp [afi] [safi] [all] summary failed [json]
Show a bgp peer summary for peers that are not succesfully exchanging routes
for the specified address family, and subsequent address-family.
-.. index:: show bgp [afi] [safi] summary established [json]
-.. clicmd:: show bgp [afi] [safi] summary established [json]
+.. index:: show bgp [afi] [safi] [all] summary established [json]
+.. clicmd:: show bgp [afi] [safi] [all] summary established [json]
Show a bgp peer summary for peers that are succesfully exchanging routes
for the specified address family, and subsequent address-family.
@@ -2767,14 +2837,14 @@ structure is extended with :clicmd:`show bgp [afi] [safi]`.
This command shows information on a specific BGP peer of the relevant
afi and safi selected.
-.. index:: show bgp [afi] [safi] dampening dampened-paths
-.. clicmd:: show bgp [afi] [safi] dampening dampened-paths
+.. index:: show bgp [afi] [safi] [all] dampening dampened-paths [wide|json]
+.. clicmd:: show bgp [afi] [safi] [all] dampening dampened-paths [wide|json]
Display paths suppressed due to dampening of the selected afi and safi
selected.
-.. index:: show bgp [afi] [safi] dampening flap-statistics
-.. clicmd:: show bgp [afi] [safi] dampening flap-statistics
+.. index:: show bgp [afi] [safi] [all] dampening flap-statistics [wide|json]
+.. clicmd:: show bgp [afi] [safi] [all] dampening flap-statistics [wide|json]
Display flap statistics of routes of the selected afi and safi selected.
@@ -2788,6 +2858,31 @@ structure is extended with :clicmd:`show bgp [afi] [safi]`.
Display statistics of routes of all the afi and safi.
+.. index:: show [ip] bgp [afi] [safi] [all] cidr-only [wide|json]
+.. clicmd:: show [ip] bgp [afi] [safi] [all] cidr-only [wide|json]
+
+ Display routes with non-natural netmasks.
+
+.. index:: show [ip] bgp [afi] [safi] [all] neighbors A.B.C.D [advertised-routes|received-routes|filtered-routes] [json|wide]
+.. clicmd:: show [ip] bgp [afi] [safi] [all] neighbors A.B.C.D [advertised-routes|received-routes|filtered-routes] [json|wide]
+
+ Display the routes advertised to a BGP neighbor or received routes
+ from neighbor or filtered routes received from neighbor based on the
+ option specified.
+
+ If _wide_ option is specified, then the prefix table's width is increased
+ to fully display the prefix and the nexthop.
+
+ This is especially handy dealing with IPv6 prefixes and
+ if :clicmd:`[no] bgp default show-nexthop-hostname` is enabled.
+
+ If _all_ option is specified, _ip_ keyword is ignored and,
+ routes displayed for all AFIs and SAFIs.
+ if afi is specified, with _all_ option, routes will be displayed for
+ each SAFI in the selcted AFI
+
+ If _json_ option is specified, output is displayed in JSON format.
+
.. _bgp-display-routes-by-community:
Displaying Routes by Community Attribute
@@ -2796,14 +2891,14 @@ Displaying Routes by Community Attribute
The following commands allow displaying routes based on their community
attribute.
-.. index:: show [ip] bgp <ipv4|ipv6> community
-.. clicmd:: show [ip] bgp <ipv4|ipv6> community
+.. index:: show [ip] bgp <ipv4|ipv6> [all] community [wide|json]
+.. clicmd:: show [ip] bgp <ipv4|ipv6> [all] community [wide|json]
-.. index:: show [ip] bgp <ipv4|ipv6> community COMMUNITY
-.. clicmd:: show [ip] bgp <ipv4|ipv6> community COMMUNITY
+.. index:: show [ip] bgp <ipv4|ipv6> [all] community COMMUNITY [wide|json]
+.. clicmd:: show [ip] bgp <ipv4|ipv6> [all] community COMMUNITY [wide|json]
-.. index:: show [ip] bgp <ipv4|ipv6> community COMMUNITY exact-match
-.. clicmd:: show [ip] bgp <ipv4|ipv6> community COMMUNITY exact-match
+.. index:: show [ip] bgp <ipv4|ipv6> [all] community COMMUNITY exact-match [wide|json]
+.. clicmd:: show [ip] bgp <ipv4|ipv6> [all] community COMMUNITY exact-match [wide|json]
These commands display BGP routes which have the community attribute.
attribute. When ``COMMUNITY`` is specified, BGP routes that match that
@@ -2820,6 +2915,19 @@ attribute.
match the specified community list. When `exact-match` is specified, it
displays only routes that have an exact match.
+ If _wide_ option is specified, then the prefix table's width is increased
+ to fully display the prefix and the nexthop.
+
+ This is especially handy dealing with IPv6 prefixes and
+ if :clicmd:`[no] bgp default show-nexthop-hostname` is enabled.
+
+ If _all_ option is specified, _ip_ keyword is ignored and,
+ routes displayed for all AFIs and SAFIs.
+ if afi is specified, with _all_ option, routes will be displayed for
+ each SAFI in the selcted AFI
+
+ If _json_ option is specified, output is displayed in JSON format.
+
.. _bgp-display-routes-by-lcommunity:
Displaying Routes by Large Community Attribute
diff --git a/doc/user/conf.py b/doc/user/conf.py
index d8a188b152..1f6f050bcf 100644
--- a/doc/user/conf.py
+++ b/doc/user/conf.py
@@ -16,6 +16,7 @@ import sys
import os
import re
import pygments
+import sphinx
from sphinx.highlighting import lexers
# If extensions (or modules to document with autodoc) are in another directory,
@@ -359,14 +360,36 @@ texinfo_documents = [
with open('../extra/frrlexer.py', 'rb') as lex:
frrlexerpy = lex.read()
+# Parse version string into int array
+def vparse(s):
+ a = []
+
+ for c in s:
+ if c != '.':
+ a.append(int(c))
+
+ while len(a) < 3:
+ a.append(0)
+
+ return a[:3]
+
# custom extensions here
def setup(app):
# object type for FRR CLI commands, can be extended to document parent CLI
# node later on
app.add_object_type('clicmd', 'clicmd')
+
# css overrides for HTML theme
- app.add_stylesheet('overrides.css')
- app.add_javascript('overrides.js')
+ # Note sphinx version differences
+ sver = vparse(sphinx.__version__)
+
+ if sver < vparse('1.8.0') :
+ app.add_stylesheet('overrides.css')
+ app.add_javascript('overrides.js')
+ else:
+ app.add_css_file('overrides.css')
+ app.add_js_file('overrides.js')
+
# load Pygments lexer for FRR config syntax
#
# NB: in Pygments 2.2+ this can be done with `load_lexer_from_file`, but we
diff --git a/doc/user/flowspec.rst b/doc/user/flowspec.rst
index b274afe8a2..d3eb25a7c7 100644
--- a/doc/user/flowspec.rst
+++ b/doc/user/flowspec.rst
@@ -22,6 +22,9 @@ more or less complex combination of the following:
- Layer 3 information: DSCP value, Protocol type, packet length, fragmentation.
- Misc layer 4 TCP flags.
+Note that if originally Flowspec defined IPv4 rules, this is also possible to use
+IPv6 address-family. The same set of combinations as defined for IPv4 can be used.
+
A combination of the above rules is applied for traffic filtering. This is
encoded as part of specific BGP extended communities and the action can range
from the obvious rerouting (to nexthop or to separate VRF) to shaping, or
@@ -31,6 +34,7 @@ The following IETF drafts and RFCs have been used to implement FRR Flowspec:
- :rfc:`5575`
- [Draft-IETF-IDR-Flowspec-redirect-IP]_
+- [Draft-IETF-IDR-Flow-Spec-V6]_
.. _design-principles-flowspec:
@@ -108,9 +112,13 @@ As of today, it is only possible to configure Flowspec on the default VRF.
router bgp <AS>
neighbor <A.B.C.D> remote-as <remoteAS>
+ neighbor <A:B::C:D> remote-as <remoteAS2>
address-family ipv4 flowspec
neighbor <A.B.C.D> activate
- exit
+ exit
+ address-family ipv6 flowspec
+ neighbor <A:B::C:D> activate
+ exit
exit
You can see Flowspec entries, by using one of the following show commands:
@@ -118,6 +126,8 @@ You can see Flowspec entries, by using one of the following show commands:
.. index:: show bgp ipv4 flowspec [detail | A.B.C.D]
.. clicmd:: show bgp ipv4 flowspec [detail | A.B.C.D]
+.. index:: show bgp ipv6 flowspec [detail | A:B::C:D]
+.. clicmd:: show bgp ipv6 flowspec [detail | A:B::C:D]
Per-interface configuration
^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -183,6 +193,28 @@ interfaces are created with private IP addressing scheme.
exit
exit
+Similarly, it is possible to do the same for IPv6 flowspec rules, by using
+an IPv6 extended community. The format is defined on :rfc:`5701`, and that
+community contains an IPv6 address encoded in the attribute, and matches the
+locally configured imported route target IPv6 defined under the appropriate
+BGP VRF instance. Below example defines an IPv6 extended community containing
+`E:F::G:H` address followed by 2 bytes chosen by admin ( here `JJ`).
+
+.. code-block:: frr
+
+ router bgp <ASx>
+ neighbor <A:B::C:D> remote-as <ASz>
+ address-family ipv6 flowspec
+ neighbor A:B::C:D activate
+ exit
+ exit
+ router bgp <ASy> vrf vrf2
+ address-family ipv6 unicast
+ rt6 redirect import <E:F::G:H:JJ>
+ exit
+ exit
+
+
Flowspec monitoring & troubleshooting
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -348,4 +380,5 @@ inside FRRouting.
.. [Draft-IETF-IDR-Flowspec-redirect-IP] <https://tools.ietf.org/id/draft-ietf-idr-flowspec-redirect-ip-02.txt>
.. [Draft-IETF-IDR-Flowspec-Interface-Set] <https://tools.ietf.org/id/draft-ietf-idr-flowspec-interfaceset-03.txt>
+.. [Draft-IETF-IDR-Flow-Spec-V6] <https://tools.ietf.org/id/draft-ietf-idr-flow-spec-v6-10.txt>
.. [Presentation] <https://docs.google.com/presentation/d/1ekQygUAG5yvQ3wWUyrw4Wcag0LgmbW1kV02IWcU4iUg/edit#slide=id.g378f0e1b5e_1_44>
diff --git a/doc/user/installation.rst b/doc/user/installation.rst
index 622af67b0f..0fd33eace8 100644
--- a/doc/user/installation.rst
+++ b/doc/user/installation.rst
@@ -255,12 +255,6 @@ options from the list below.
mind. Specifically turn on -g3 -O0 for compiling options and add inclusion
of grammar sandbox.
-.. option:: --enable-fuzzing
-
- Turn on some compile options to allow you to run fuzzing tools against the
- system. This flag is intended as a developer only tool and should not be
- used for normal operations.
-
.. option:: --disable-snmp
Build without SNMP support.
@@ -528,34 +522,13 @@ Additional kernel modules are also needed to support MPLS forwarding.
features can be found in
http://schd.ws/hosted_files/ossna2017/fe/vrf-tutorial-oss.pdf.
- The following impacts how BGP TCP sockets are managed across VRFs:
-
- .. code-block:: shell
-
- net.ipv4.tcp_l3mdev_accept=0
-
- With this setting a BGP TCP socket is opened per VRF. This setting
- ensures that other TCP services, such as SSH, provided for non-VRF
- purposes are blocked from VRF associated Linux interfaces.
-
- .. code-block:: shell
-
- net.ipv4.tcp_l3mdev_accept=1
-
- With this setting a single BGP TCP socket is shared across the
- system. This setting exposes any TCP service running on the system,
- e.g., SSH, to all VRFs. Generally this setting is not used in
- environments where VRFs are used to support multiple administrative
- groups.
+ A separate BGP TCP socket is opened per VRF.
**Important note** as of June 2018, Kernel versions 4.14-4.18 have a
known bug where VRF-specific TCP sockets are not properly handled. When
running these kernel versions, if unable to establish any VRF BGP
- adjacencies, either downgrade to 4.13 or set
- 'net.ipv4.tcp_l3mdev_accept=1'. The fix for this issue is planned to be
- included in future kernel versions. So upgrading your kernel may also
- address this issue.
-
+ adjacencies, downgrade to 4.13. The issue was fixed in 4.14.57, 4.17.9
+ and more recent kernel versions.
Building
^^^^^^^^
diff --git a/doc/user/isisd.rst b/doc/user/isisd.rst
index 200d00821f..8cbbe0809f 100644
--- a/doc/user/isisd.rst
+++ b/doc/user/isisd.rst
@@ -33,8 +33,8 @@ ISIS router
To start the ISIS process you have to specify the ISIS router. As of this
writing, *isisd* does not support multiple ISIS processes.
-.. index:: [no] router isis WORD
-.. clicmd:: [no] router isis WORD
+.. index:: [no] router isis WORD [vrf NAME]
+.. clicmd:: [no] router isis WORD [vrf NAME]
Enable or disable the ISIS process by specifying the ISIS domain with
'WORD'. *isisd* does not yet support multiple ISIS processes but you must
@@ -202,8 +202,8 @@ ISIS interface
.. _ip-router-isis-word:
-.. index:: [no] <ip|ipv6> router isis WORD
-.. clicmd:: [no] <ip|ipv6> router isis WORD
+.. index:: [no] <ip|ipv6> router isis WORD [vrf NAME]
+.. clicmd:: [no] <ip|ipv6> router isis WORD [vrf NAME]
Activate ISIS adjacency on this interface. Note that the name of ISIS
instance must be the same as the one used to configure the ISIS process (see
@@ -418,8 +418,8 @@ Showing ISIS information
Show topology IS-IS paths to Intermediate Systems, globally, in area
(level-1) or domain (level-2).
-.. index:: show ip route isis
-.. clicmd:: show ip route isis
+.. index:: show isis route [level-1|level-2]
+.. clicmd:: show isis route [level-1|level-2]
Show the ISIS routing table, as determined by the most recent SPF
calculation.
@@ -751,3 +751,22 @@ A Segment Routing configuration, with IPv4, IPv6, SRGB and MSD configuration.
segment-routing prefix 2001:db8:1000::1/128 index 101 explicit-null
!
+ISIS Vrf Configuration Examples
+===============================
+
+A simple vrf example:
+
+.. code-block:: frr
+
+ !
+ interface eth0 vrf RED
+ ip router isis FOO vrf RED
+ isis network point-to-point
+ isis circuit-type level-2-only
+ !
+ router isis FOO vrf RED
+ net 47.0023.0000.0000.0000.0000.0000.0000.1900.0004.00
+ metric-style wide
+ is-type level-2-only
+
+
diff --git a/doc/user/ospfd.rst b/doc/user/ospfd.rst
index 16eaf3be2a..010526b637 100644
--- a/doc/user/ospfd.rst
+++ b/doc/user/ospfd.rst
@@ -310,6 +310,17 @@ To start OSPF process you have to specify the OSPF router.
In some cases it may be more convenient to enable OSPF on a per
interface/subnet basis (:clicmd:`ip ospf area AREA [ADDR]`).
+.. index:: proactive-arp
+.. clicmd:: proactive-arp
+
+.. index:: no proactive-arp
+.. clicmd:: no proactive-arp
+
+ This command enables or disables sending ARP requests to update neighbor
+ table entries. It speeds up convergence for /32 networks on a P2P
+ connection.
+
+ This feature is enabled by default.
.. _ospf-area:
@@ -1071,8 +1082,8 @@ Router Information
Segment Routing
===============
-This is an EXPERIMENTAL support of Segment Routing as per draft
-`draft-ietf-ospf-segment-routing-extensions-24.txt` for MPLS dataplane.
+This is an EXPERIMENTAL support of Segment Routing as per `RFC 8665` for MPLS
+dataplane.
.. index:: [no] segment-routing on
.. clicmd:: [no] segment-routing on
@@ -1085,7 +1096,13 @@ This is an EXPERIMENTAL support of Segment Routing as per draft
.. clicmd:: [no] segment-routing global-block (0-1048575) (0-1048575)
Fix the Segment Routing Global Block i.e. the label range used by MPLS to
- store label in the MPLS FIB.
+ store label in the MPLS FIB for Prefix SID.
+
+.. index:: [no] segment-routing local-block (0-1048575) (0-1048575)
+.. clicmd:: [no] segment-routing local-block (0-1048575) (0-1048575)
+
+ Fix the Segment Routing Local Block i.e. the label range used by MPLS to
+ store label in the MPLS FIB for Adjacency SID.
.. index:: [no] segment-routing node-msd (1-16)
.. clicmd:: [no] segment-routing node-msd (1-16)
@@ -1093,13 +1110,15 @@ This is an EXPERIMENTAL support of Segment Routing as per draft
Fix the Maximum Stack Depth supported by the router. The value depend of the
MPLS dataplane. E.g. for Linux kernel, since version 4.13 it is 32.
-.. index:: [no] segment-routing prefix A.B.C.D/M index (0-65535) [no-php-flag]
-.. clicmd:: [no] segment-routing prefix A.B.C.D/M index (0-65535) [no-php-flag]
+.. index:: [no] segment-routing prefix A.B.C.D/M index (0-65535) [no-php-flag|explicit-null]
+.. clicmd:: [no] segment-routing prefix A.B.C.D/M [index (0-65535)|no-php-flag|explicit-null]
Set the Segment Routing index for the specified prefix. Note that, only
prefix with /32 corresponding to a loopback interface are currently
supported. The 'no-php-flag' means NO Penultimate Hop Popping that allows SR
- node to request to its neighbor to not pop the label.
+ node to request to its neighbor to not pop the label. The 'explicit-null' means that
+ neighbor nodes must swap the incoming label by the MPLS Explicit Null label
+ before delivering the packet.
.. index:: show ip ospf database segment-routing <adv-router ADVROUTER|self-originate> [json]
.. clicmd:: show ip ospf database segment-routing <adv-router ADVROUTER|self-originate> [json]
diff --git a/doc/user/overview.rst b/doc/user/overview.rst
index ac6a1e5a8c..724d1d0b9c 100644
--- a/doc/user/overview.rst
+++ b/doc/user/overview.rst
@@ -31,7 +31,8 @@ information, as well as links to additional resources.
Several distributions provide packages for FRR. Check your distribution's
repositories to find out if a suitable version is available.
-Up-to-date Debian packages are available at https://deb.frrouting.org/.
+Up-to-date Debian & Redhat packages are available at https://deb.frrouting.org/
+& https://rpm.frrouting.org/ respectively.
For instructions on installing from source, refer to the
`developer documentation <http://docs.frrouting.org/projects/dev-guide/en/latest/>`_.
diff --git a/doc/user/routemap.rst b/doc/user/routemap.rst
index f557cbe022..fa5fc248a8 100644
--- a/doc/user/routemap.rst
+++ b/doc/user/routemap.rst
@@ -329,6 +329,12 @@ Route Map Set Command
Set the BGP table to a given table identifier
+.. index:: set sr-te color (1-4294967295)
+.. clicmd:: set sr-te color (1-4294967295)
+
+ Set the color of a SR-TE Policy to be applied to a learned route. The SR-TE
+ Policy is uniquely determined by the color and the BGP nexthop.
+
.. _route-map-call-command:
Route Map Call Command