mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-04-28 13:20:12 +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
|
||||
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
|
||||
(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
|
||||
calculation.
|
||||
@ -422,7 +422,7 @@ Known limitations:
|
||||
MPLS dataplane. E.g. for Linux kernel, since version 4.13 the maximum value
|
||||
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
|
||||
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
|
||||
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.
|
||||
|
||||
.. _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
|
||||
==============
|
||||
|
Loading…
Reference in New Issue
Block a user