summaryrefslogtreecommitdiff
path: root/doc/user
diff options
context:
space:
mode:
Diffstat (limited to 'doc/user')
-rw-r--r--doc/user/bgp-linkstate.rst146
-rw-r--r--doc/user/bgp.rst16
-rw-r--r--doc/user/conf.py1
-rw-r--r--doc/user/mgmtd.rst2
-rw-r--r--doc/user/ospfd.rst8
-rw-r--r--doc/user/pbr.rst4
6 files changed, 166 insertions, 11 deletions
diff --git a/doc/user/bgp-linkstate.rst b/doc/user/bgp-linkstate.rst
new file mode 100644
index 0000000000..59e37b19f7
--- /dev/null
+++ b/doc/user/bgp-linkstate.rst
@@ -0,0 +1,146 @@
+.. _bgp-link-state:
+
+BGP Link-State
+==============
+
+Overview
+--------
+
+BGP Link-State (BGP-LS) is an extension of the BGP protocol designed to
+redistribute information from an IGP database to a remote controller (most
+likely a Path Computation Element - PCE). BGP-LS does nothing more than
+transport IGP information. Therefore, it cannot be used to replace a Link State
+routing protocol like OSPF and IS-IS.
+
+Historically, the only way to get a network controller to collect an IGP
+database was to have it participate in the IGP itself as if it were a standard
+router. Since the controllers were usually located far from the IGP area,
+tunnels such as GRE were used to connect the controllers to the IGP area. This
+method was so impractical that an alternative solution was imagined: using the
+already deployed inter-domain BGP protocol to redistribute the various IGP
+databases.
+
+BGP Link-State as defined in `RFC7752
+<https://www.rfc-editor.org/rfc/rfc7752.html>`_ uses the AFI 16388 and SAFI 71.
+The BGP Link-State pseudo-prefixes distributed by the `NLRI (Network Layer
+Reachability Information)` uniquely define the following
+IGP information:
+
+- Nodes
+- Link
+- IPv4 Prefix
+- IPv6 Prefix
+
+They are called descriptors. In addition, a new type of BGP Attributes called
+"BGP-LS attributes" carries the other information related to a descriptor.
+
+NLRI and attribute information for BGP-LS is organized using the TLV format
+already used by IS-IS LSPs and OSPF opaque LSAs. The `list of TLV code points
+<https://www.iana.org/assignments/bgp-ls-parameters/bgp-ls-parameters.xhtml#node-descriptor-link-descriptor-prefix-descriptor-attribute-tlv>`_
+is maintained by IANA.
+
+Current implementation
+----------------------
+
+The current version can participate in BGP Link-State AFI / SAFI with
+third-party routers and forward the BGP Link-State descriptors and attributes to
+other routers. However, it can not generate BGP Link-State data from OSPF and
+IS-IS.
+
+IANA maintains a `registry of BGP-LS NRLI descriptor types
+<https://www.iana.org/assignments/bgp-ls-parameters/bgp-ls-parameters.xhtml#nlri-types>`_.
+Only the following RFC7752 NRLI types are supported by the current version:
+
+- Nodes
+- Link
+- IPv4 Prefix
+- IPv6 Prefix
+
+The BGP-LS attribute TLVs for these NLRI types are transmitted as is to other
+routers which means that all the current and future version are already
+supported.
+
+Show commands
+-------------
+
+The following configuration enables the negotiation of the link-state AFI / SAFI
+with the 192.0.2.2 eBGP peer.
+
+.. code-block:: frr
+
+ router bgp 65003
+ neighbor 192.0.2.2 remote-as 65002
+ neighbor 192.0.2.2 update-source 192.0.2.3
+ !
+ address-family link-state link-state
+ neighbor 192.0.2.2 activate
+ neighbor 192.0.2.2 route-map PERMIT-ALL in
+ neighbor 192.0.2.2 route-map PERMIT-ALL out
+ exit-address-family
+ exit
+ !
+ route-map PERMIT-ALL permit 1
+
+The BGP-LS table can be displayed.
+
+.. code-block:: frr
+
+ frr# show bgp link-state link-state
+ BGP table version is 8, local router ID is 192.0.2.3, vrf id 0
+ Default local pref 100, local AS 65003
+ Network Next Hop Metric LocPrf Weight Path
+ *> Node OSPFv2 ID:0x20 Local{AS:65001 ID:0 Area:0 Rtr:10.10.10.10:1.1.1.1}/48
+ 0 65002 65001 i
+ *> IPv4-Prefix OSPFv2 ID:0x20 Local{AS:65001 ID:0 Area:0 Rtr:10.10.10.10:1.1.1.1} Prefix{IPv4:89.10.11.0/24}/64
+ 0 65002 65001 i
+ *> IPv6-Prefix ISIS-L2 ID:0x20 Local{AS:65001 ID:0 Rtr:0000.0000.1003.00} Prefix{IPv6:12:12::12:12/128 MT:2}/74
+ 0 65002 65001 i
+ *> IPv6-Prefix OSPFv3 ID:0x20 Local{AS:65001 ID:0 Area:0 Rtr:10.10.10.10} Prefix{OSPF-Route-Type:1 IPv6:12:12::12:12/128 MT:2}/74
+ 0 65002 65001 i
+ *> Node OSPFv2 ID:0x20 Local{AS:65001 ID:0 Area:0 Rtr:10.10.10.10}/48
+ 0 65002 65001 i
+ *> Node ISIS-L1 ID:0x20 Local{AS:65001 ID:0 Rtr:0000.0000.1003.00}/48
+ 0 65002 65001 i
+ *> Link ISIS-L1 ID:0x20 Local{AS:65001 ID:0 Rtr:0000.0000.1001} Remote{AS:65001 ID:0 Rtr:0000.0000.1000} Link{IPv4:10.1.0.1 Neigh-IPv4:10.1.0.2 IPv6:2001::1 Neigh-IPv6:2001::2 MT:0,2}/132
+ 0 65002 65001 i
+
+The "detail-routes" allows displaying the BGP-LS attributes as well.
+
+.. code-block:: frr
+
+ frr# show bgp link-state link-state detail-routes
+ (...)
+ BGP routing table entry for Link ISIS-L1 ID:0x20 Local{AS:65001 ID:0 Rtr:0000.0000.1001} Remote{AS:65001 ID:0 Rtr:0000.0000.1000} Link{IPv4:10.1.0.1 Neigh-IPv4:10.1.0.2 IPv6:2001::1 Neigh-IPv6:2001::2 MT:0,2}/116, version 1
+ Paths: (1 available, best #1)
+ Advertised to non peer-group peers:
+ 192.0.2.1 192.0.2.3
+ 65001
+ :: from 192.0.2.1 (192.0.2.1)
+ Origin IGP, valid, external, best (First path received)
+ Last update: Mon Apr 17 15:45:42 2023
+ BGP-LS attributes:
+ IPv4 Router-ID of Local Node: 1.1.1.1
+ IPv4 Router-ID of Remote Node: 10.10.10.10
+ Maximum link bandwidth: 1410.07 Mbps
+ Max. reservable link bandwidth: 1410.07 Mbps
+ Unreserved bandwidth:
+ [0]: 1410.07 Mbps [1]: 1410.07 Mbps
+ [2]: 1410.07 Mbps [3]: 1410.07 Mbps
+ [4]: 1410.07 Mbps [5]: 1410.07 Mbps
+ [6]: 1410.07 Mbps [7]: 1410.07 Mbps
+ TE Default Metric: 100
+ IGP Metric: 10
+ Adjacency SID:
+ Flags: 0b00110000
+ Weight: 0
+ SID: 15000
+ Unidirectional Link Delay: 8500 microseconds
+ Min/Max Unidirectional Link Delay: 8000/9000 microseconds
+ Application-Specific Link Attributes:
+ SABM Flags : 0b00010000 00000000 00000000 00000000
+ UDABM Flags: 0b00000000 00000000 00000000 00000000
+ Administrative group: 0x00000001
+ TE Default Metric: 100
+ Min/Max Unidirectional Link Delay: 8000/9000 microseconds
+ Extended Administrative Group: 0x00000001
+
diff --git a/doc/user/bgp.rst b/doc/user/bgp.rst
index ba6c160560..1431cbdd28 100644
--- a/doc/user/bgp.rst
+++ b/doc/user/bgp.rst
@@ -818,6 +818,10 @@ from eBGP peers, :ref:`bgp-route-selection`.
MED as an intra-AS metric to steer equal-length AS_PATH routes to, e.g.,
desired exit points.
+.. [#med-transitivity-rant] For some set of objects to have an order, there *must* be some binary ordering relation that is defined for *every* combination of those objects, and that relation *must* be transitive. I.e.:, if the relation operator is <, and if a < b and b < c then that relation must carry over and it *must* be that a < c for the objects to have an order. The ordering relation may allow for equality, i.e. a < b and b < a may both be true and imply that a and b are equal in the order and not distinguished by it, in which case the set has a partial order. Otherwise, if there is an order, all the objects have a distinct place in the order and the set has a total order)
+.. [bgp-route-osci-cond] McPherson, D. and Gill, V. and Walton, D., "Border Gateway Protocol (BGP) Persistent Route Oscillation Condition", IETF RFC3345
+.. [stable-flexible-ibgp] Flavel, A. and M. Roughan, "Stable and flexible iBGP", ACM SIGCOMM 2009
+.. [ibgp-correctness] Griffin, T. and G. Wilfong, "On the correctness of IBGP configuration", ACM SIGCOMM 2002
.. _bgp-graceful-restart:
@@ -1814,6 +1818,13 @@ Configuring Peers
and is not displayed.
The `bgp default l2vpn-evpn` form of the command is displayed.
+.. clicmd:: bgp default link-state
+
+ This command allows the user to specify that the link-state link-state
+ address family is turned on by default or not. This command defaults to off
+ and is not displayed.
+ The `bgp default link-state` form of the command is displayed.
+
.. clicmd:: bgp default show-hostname
This command shows the hostname of the peer in certain BGP commands
@@ -5213,10 +5224,7 @@ Show command json output:
.. include:: flowspec.rst
-.. [#med-transitivity-rant] For some set of objects to have an order, there *must* be some binary ordering relation that is defined for *every* combination of those objects, and that relation *must* be transitive. I.e.:, if the relation operator is <, and if a < b and b < c then that relation must carry over and it *must* be that a < c for the objects to have an order. The ordering relation may allow for equality, i.e. a < b and b < a may both be true and imply that a and b are equal in the order and not distinguished by it, in which case the set has a partial order. Otherwise, if there is an order, all the objects have a distinct place in the order and the set has a total order)
-.. [bgp-route-osci-cond] McPherson, D. and Gill, V. and Walton, D., "Border Gateway Protocol (BGP) Persistent Route Oscillation Condition", IETF RFC3345
-.. [stable-flexible-ibgp] Flavel, A. and M. Roughan, "Stable and flexible iBGP", ACM SIGCOMM 2009
-.. [ibgp-correctness] Griffin, T. and G. Wilfong, "On the correctness of IBGP configuration", ACM SIGCOMM 2002
+.. include:: bgp-linkstate.rst
.. _bgp-fast-convergence:
diff --git a/doc/user/conf.py b/doc/user/conf.py
index 728f9c9364..40accc1bd2 100644
--- a/doc/user/conf.py
+++ b/doc/user/conf.py
@@ -130,6 +130,7 @@ exclude_patterns = [
"rpki.rst",
"routeserver.rst",
"ospf_fundamentals.rst",
+ "bgp-linkstate.rst",
"flowspec.rst",
"snmptrap.rst",
"wecmp_linkbw.rst",
diff --git a/doc/user/mgmtd.rst b/doc/user/mgmtd.rst
index 737eb57c85..42bc860b72 100644
--- a/doc/user/mgmtd.rst
+++ b/doc/user/mgmtd.rst
@@ -356,7 +356,7 @@ MGMT Show commands
Currenlty supported values for 'candidate' and 'running' only
('operational' shall be supported in future soon).
-.. clicmd:: show mgmt database-contents [candidate|operation|running] [xpath WORD] [file WORD] json|xml
+.. clicmd:: show mgmt datastore-contents [candidate|operation|running] [xpath WORD] [file WORD] json|xml
This command dumps the subtree pointed by the xpath in JSON or XML format. If filepath is
not present then the tree will be printed on the shell.
diff --git a/doc/user/ospfd.rst b/doc/user/ospfd.rst
index 26b2b43971..d61522b051 100644
--- a/doc/user/ospfd.rst
+++ b/doc/user/ospfd.rst
@@ -314,7 +314,7 @@ To start OSPF process you have to specify the OSPF router.
This command controls the ospf instance's socket buffer sizes. The
'no' form resets one or both values to the default.
-
+
.. clicmd:: no socket-per-interface
Ordinarily, ospfd uses a socket per interface for sending
@@ -603,9 +603,9 @@ Interfaces
Specify that HMAC cryptographic authentication must be used on this interface
using a key chain. Overrides any authentication enabled on a per-area basis
- (:clicmd:`area A.B.C.D authentication message-digest`)
+ (:clicmd:`area A.B.C.D authentication message-digest`).
- * ``KEYCHAIN``: Specifies the name of the key chain that contains the authentication
+ ``KEYCHAIN``: Specifies the name of the key chain that contains the authentication
key(s) and cryptographic algorithms to be used for OSPF authentication. The key chain
is a logical container that holds one or more authentication keys,
allowing for key rotation and management.
@@ -621,7 +621,7 @@ Interfaces
Example:
- .. code:: frr
+ .. code:: sh
r1(config)#key chain temp
r1(config-keychain)#key 13
diff --git a/doc/user/pbr.rst b/doc/user/pbr.rst
index d0513018e3..83abfa220e 100644
--- a/doc/user/pbr.rst
+++ b/doc/user/pbr.rst
@@ -28,8 +28,8 @@ documented elsewhere.
.. _nexthop-groups:
-Nexthop Groups
-==============
+PBR Nexthop Groups
+==================
A nexthop group is a list of ECMP nexthops used to forward packets
when a pbr-map is matched.