mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-04-30 22:26:28 +00:00
doc: add isisd flex-algo documentation
Add the isisd flex-algo documentation Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
This commit is contained in:
parent
b95f9f37ea
commit
cba6998236
@ -316,12 +316,12 @@ Showing ISIS information
|
|||||||
Show the ISIS database globally, for a specific LSP id without or with
|
Show the ISIS database globally, for a specific LSP id without or with
|
||||||
details.
|
details.
|
||||||
|
|
||||||
.. clicmd:: show isis topology [level-1|level-2]
|
.. clicmd:: show isis topology [level-1|level-2] [algorithm (128-255)]
|
||||||
|
|
||||||
Show topology IS-IS paths to Intermediate Systems, globally, in area
|
Show topology IS-IS paths to Intermediate Systems, globally, in area
|
||||||
(level-1) or domain (level-2).
|
(level-1) or domain (level-2).
|
||||||
|
|
||||||
.. clicmd:: show isis route [level-1|level-2] [prefix-sid|backup]
|
.. clicmd:: show isis route [level-1|level-2] [prefix-sid|backup] [algorithm (128-255)]
|
||||||
|
|
||||||
Show the ISIS routing table, as determined by the most recent SPF
|
Show the ISIS routing table, as determined by the most recent SPF
|
||||||
calculation.
|
calculation.
|
||||||
@ -422,7 +422,7 @@ Known limitations:
|
|||||||
MPLS dataplane. E.g. for Linux kernel, since version 4.13 the maximum value
|
MPLS dataplane. E.g. for Linux kernel, since version 4.13 the maximum value
|
||||||
is 32.
|
is 32.
|
||||||
|
|
||||||
.. clicmd:: segment-routing prefix <A.B.C.D/M|X:X::X:X/M> <absolute (16-1048575)|index (0-65535) [no-php-flag|explicit-null] [n-flag-clear]
|
.. clicmd:: segment-routing prefix <A.B.C.D/M|X:X::X:X/M> [algorithm (128-255)] <absolute (16-1048575)|index (0-65535) [no-php-flag|explicit-null] [n-flag-clear]
|
||||||
|
|
||||||
prefix. The 'no-php-flag' means NO Penultimate Hop Popping that allows SR
|
prefix. The 'no-php-flag' means NO Penultimate Hop Popping that allows SR
|
||||||
node to request to its neighbor to not pop the label. The 'explicit-null'
|
node to request to its neighbor to not pop the label. The 'explicit-null'
|
||||||
@ -431,11 +431,163 @@ Known limitations:
|
|||||||
clear the Node flag that is set by default for Prefix-SIDs associated to
|
clear the Node flag that is set by default for Prefix-SIDs associated to
|
||||||
loopback addresses. This option is necessary to configure Anycast-SIDs.
|
loopback addresses. This option is necessary to configure Anycast-SIDs.
|
||||||
|
|
||||||
.. clicmd:: show isis segment-routing node
|
.. clicmd:: show isis segment-routing node [algorithm (128-255)]
|
||||||
|
|
||||||
Show detailed information about all learned Segment Routing Nodes.
|
Show detailed information about all learned Segment Routing Nodes.
|
||||||
|
|
||||||
.. _debugging-isis:
|
.. _isis-flex-algo:
|
||||||
|
|
||||||
|
Flex-Algos (Flex-Algo)
|
||||||
|
======================
|
||||||
|
|
||||||
|
*isisd* supports some features of
|
||||||
|
`RFC 9350 <https://tools.ietf.org/html/rfc9350>`_ on an MPLS Segment-Routing
|
||||||
|
dataplane. The compatibility has been tested against Cisco.
|
||||||
|
|
||||||
|
IS-IS uses by default the `Shortest-Path-First` algorithm that basically
|
||||||
|
calculates paths based on the shortest total metric to the destinations.
|
||||||
|
Flex-Algo allows new algorithms to run in parallel to compute paths in different
|
||||||
|
manners, based on metrics (IGP metric or a new type of metrics such as Traffic
|
||||||
|
Engineering (TE) metric and minimum delay...) and constraints. New metric types
|
||||||
|
are not yet implemented but constraints are already operational. Constraints can
|
||||||
|
restrict paths to links with specific affinities or avoid links with specific
|
||||||
|
affinities. Combinations of these are also possible.
|
||||||
|
|
||||||
|
The administrator can configure up to 128 Flex-Algos in an IS-IS area.
|
||||||
|
To do so, it defines a set of Flex-Algo Definitions (FAD) which
|
||||||
|
have the following characteristics:
|
||||||
|
|
||||||
|
- a numeric identifier (ID) between 128 and 255 inclusive
|
||||||
|
- a set of constraints (basically, include or exclude a certain given set of
|
||||||
|
links, designated by a admin-group)
|
||||||
|
- the calculation type (only the `Shortest-Path-First` is currently supported)
|
||||||
|
- the metric type (only the IGP inherited metric type is currently supported)
|
||||||
|
- some additional flags (not supported for the moment).
|
||||||
|
|
||||||
|
A subset of routers advertises the Flex-Algo Definitions (FAD) to the other
|
||||||
|
routers within an area. In order to use a common set of FADs, each router runs a
|
||||||
|
FAD election process for each locally configured algorithm, using the following
|
||||||
|
rules:
|
||||||
|
|
||||||
|
- If a locally configured FAD is not advertised to the area, the router does not
|
||||||
|
participate in the particular flex algorithm.
|
||||||
|
- If a given flex algorithm is running, the participation in this particular
|
||||||
|
flex algorithm stops when its advertisements are over.
|
||||||
|
- A router includes its own FAD in the election process if and only if it is
|
||||||
|
advertised to the other routers.
|
||||||
|
- If only one router advertises the FAD, the FAD is elected.
|
||||||
|
- If several FADs are advertised with different priorities, the one with the
|
||||||
|
highest priority value is selected.
|
||||||
|
- If there are multiple advertisements of the FAD with the same highest
|
||||||
|
priority, the FAD of the router with the highest IS-IS system-ID is
|
||||||
|
selected.
|
||||||
|
|
||||||
|
Routers only use the specifications of the elected FAD regardless of the locally
|
||||||
|
configured definitions. If a router does not support one of the FAD
|
||||||
|
characteristics, it stops participating in the Flex-Algo.
|
||||||
|
|
||||||
|
For each running Flex-Algo, the Segment-Routing SIDs must be
|
||||||
|
configured with values unique to the algorithm. It allows routers to identify
|
||||||
|
which flex algorithm they must use for a given packet.
|
||||||
|
|
||||||
|
The following commands configure Flex-Algo at the 'router isis' configuration
|
||||||
|
level. Segment-Routing prefixes must be configured for the Flex-Algo.
|
||||||
|
|
||||||
|
.. clicmd:: flexible-algorithm (128-255)
|
||||||
|
|
||||||
|
Add a Flex-Algo Definition (FAD) and enter the FAD configuration
|
||||||
|
level. The algorithm ID value is in the range of 128 to 255 inclusive.
|
||||||
|
|
||||||
|
.. clicmd:: no flexible-algorithm (128-255)
|
||||||
|
|
||||||
|
Unconfigure a Flex-Algo Definition.
|
||||||
|
|
||||||
|
.. clicmd:: affinity-map NAME bit-position (0-255)
|
||||||
|
|
||||||
|
Add the specified 'affinity-map'. Affinity-map definitions are used in
|
||||||
|
FADs and in interfaces admin-group definition.
|
||||||
|
|
||||||
|
Affinity-maps format in advertisement TLVs use the extended admin-group
|
||||||
|
format defined in the RFC7308 section 2.2. The extended admin-group uses a
|
||||||
|
256 bits field. If an affinity-map is set, the bit at the extended
|
||||||
|
admin-group 'bit-position' is set 1, else it is set to 0.
|
||||||
|
|
||||||
|
The following commands configure Flex-Algo at the 'router isis' and
|
||||||
|
'flexible-algorithm (128-255)' configuration level.
|
||||||
|
|
||||||
|
.. clicmd:: advertise-definition
|
||||||
|
|
||||||
|
Advertise the current FAD to other IS-IS routers by using specific IS-IS
|
||||||
|
TLVs. By default, the definition is is not shared with other routers.
|
||||||
|
|
||||||
|
A router can advertise a FAD without participating in the Flex-Algo.
|
||||||
|
|
||||||
|
.. clicmd:: priority (0-255)
|
||||||
|
|
||||||
|
Set the specified 'priority' in the current FAD advertisements .
|
||||||
|
|
||||||
|
.. clicmd:: metric-type [igp|te|delay]
|
||||||
|
|
||||||
|
Set the 'metric-type' for the current FAD. 'igp' is
|
||||||
|
the default value and refers to the classic 'Shortest-Path-First' algorithm.
|
||||||
|
If the 'te' or the 'delay' metric is selected, the value is advertised but
|
||||||
|
the flex algorithm is disabled locally because these types are not currently
|
||||||
|
supported.
|
||||||
|
|
||||||
|
.. clicmd:: no metric-type
|
||||||
|
|
||||||
|
Reset the 'metric-type' to the default 'igp' metric.
|
||||||
|
|
||||||
|
.. clicmd:: affinity exclude-any NAME
|
||||||
|
|
||||||
|
Add the specified affinity to the list of exclude-any affinities. The
|
||||||
|
Flex-Algo will compute paths that exclude the segments with any of
|
||||||
|
the specified affinities.
|
||||||
|
|
||||||
|
.. clicmd:: no affinity exclude-any NAME
|
||||||
|
|
||||||
|
Remove the specified affinity to the list of exclude-any affinities.
|
||||||
|
|
||||||
|
.. clicmd:: affinity include-all NAME
|
||||||
|
|
||||||
|
Add the specified affinity to the list of include-all affinities. The
|
||||||
|
Flex-Algo will compute paths that include the segments with all
|
||||||
|
the specified affinities.
|
||||||
|
|
||||||
|
.. clicmd:: no affinity include-all NAME
|
||||||
|
|
||||||
|
Remove the specified affinity to the list of include-all affinities.
|
||||||
|
|
||||||
|
.. clicmd:: affinity include-any NAME
|
||||||
|
|
||||||
|
Add the specified affinity to the list of include-any affinities. The
|
||||||
|
Flex-Algo will compute paths that include the segments with any of
|
||||||
|
the specified affinities.
|
||||||
|
|
||||||
|
.. clicmd:: no affinity include-any NAME
|
||||||
|
|
||||||
|
Remove the specified affinity to the list of include-any affinities.
|
||||||
|
|
||||||
|
The following commands configure Flex-Algo at the 'interface' configuration
|
||||||
|
level.
|
||||||
|
|
||||||
|
.. clicmd:: isis affinity flex-algo NAME
|
||||||
|
|
||||||
|
Add the specified affinity to the interface.
|
||||||
|
|
||||||
|
.. clicmd:: no isis affinity flex-algo NAME
|
||||||
|
|
||||||
|
Remove the specified affinity from the interface.
|
||||||
|
|
||||||
|
The following command show Flex-Algo information:
|
||||||
|
|
||||||
|
.. clicmd:: show isis flex-algo [(128-255)]
|
||||||
|
|
||||||
|
Show information about the elected FADs
|
||||||
|
|
||||||
|
'show isis route', 'show isis topology' and 'show isis segment-routing node'
|
||||||
|
includes an 'algorithm (128-255)' optional argument. See
|
||||||
|
:ref:`showing-isis-information` and :ref:`isis-segment-routing`.
|
||||||
|
|
||||||
Debugging ISIS
|
Debugging ISIS
|
||||||
==============
|
==============
|
||||||
|
Loading…
Reference in New Issue
Block a user