The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.
This document describes SRv6 Flex-Algo with TI-LFA and uLoop Avoidance.
Feature Information for SRv6 Flex-Algo with TI-LFA and uLoop Avoidance
The table below provides the feature history for SRv6 Flex-Algo with TI-LFA and uLoop Avoidance.
Table 1.
Feature
Release
Description
SRv6 Flex-Algo with TI-LFA and uLoop Avoidance
Cisco IOS XE 17.18.1a
From Cisco IOS XE 17.18.1a, Flexible Algorithm enhances SRv6 by including functions like Topology Independent Loop-Free Alternate
(TI-LFA) and microloop (uLoop) avoidance. This feature improves network resilience and efficiency.
SRv6 Flex-Algo with TI-LFA and uLoop Avoidance
A SRv6 flexible algorithm is a feature that
extends the capabilities of SRv6.
allows traffic engineering and optimization.
improves network resilience and efficiency by incorporating functionalities like Topology Independent Loop-Free Alternate
(TI-LFA) and uLoop (microloop) Avoidance.
In SRv6, the network forwards data using SRv6 SIDs and SRv6 Locators. SIDs are assigned from the locators, and forwarding
entries for them exist only on the device where they are created. Locators help with network-wide reachability and forward
traffic for the SIDs. Therefore, a locator represents an algorithm-specific path to a certain destination node in the SRv6
domain. Each node can advertise multiple SRv6 locators - one for each Flex-Algo it participates in, in addition to locators
for the default algorithm (algo-0).
SRv6 flex-algo FRR and TI-LFA
Flex-Algo FRR and TI-LFA are network performance features that
improve network performance by allowing network operators to compute backups within the Flex-Algo topology, and
ensure that traffic can be rerouted quickly in the event of link or node failures.
The Forwarding Information Base (FIB) entries will include Flex-Algo specific End SIDs and End.X SIDs, which are essential
for accurate traffic forwarding across the network.
SRv6 Flex-Algo Microloop-Avoidance
A Flex-Algo Microloop-Avoidance is a process that
integrates specific processing into existing IPv6 uLoop routines,
ensures that Forwarding Information Base (FIB) entries are tailored for each flexible algorithm by incorporating End SIDs
and End.X SIDs, and
is crucial for maintaining seamless traffic flow and avoiding microloops during network updates or changes.
Prerequisites for SRv6 Flex-Algo with TI-LFA and uLoop Avoidance
SRv6 must be enabled on the router before the Flexible Algorithm functionality is activated.
Restrictions for SRv6 Flex-Algo with TI-LFA and uLoop Avoidance
Only up to 8 SRv6 flex-algo will be supported.
SRv6 deployments are supported only at one level. Leaking locators between levels or redistribution of locators is not supported.
Configure SRv6 IS-IS flexible algorithm
TI-LFA and uLoop Avoidance settings are inherited from the Algo zero configuration in Flex-Algos. You cannot modify these
settings for each Flex-Algo, instead, you can only disable them. For more information, see ISIS - SRv6: uLoop Avoidance and IPv6 Loop-Free Alternate Fast Reroute
The following is an example of how to configure the SRv6 IS-IS flexible algorithm. The below example shows how to configure
three flexible-algorithms. Algo 128 runs IGP metric, Algo 129 runs with delay metric and Algo runs with 133 TE metric.
ipv6 unicast-routing
ipv6 cef
!
interface Loopback0
ip address 1.1.1.1 255.255.255.255
ipv6 address 111::111/128
!
segment-routing srv6
locators
locator loc1
prefix FCCC:CCC1:A1::/48
format usid-f3216
locator F128
prefix FCCC:F128:A1::/48
format usid-f3216
algorithm 128
locator F129
prefix FCCC:F129:A1::/48
format usid-f3216
algorithm 129
locator F133
prefix FCCC:F133:A1::/48
format usid-f3216
algorithm 133
!
router isis 1
net 50.1234.1721.1600.1001.00
is-type level-2-only
router-id Loopback0
metric-style wide
affinity-map BLACK bit-position 255
affinity-map BLUE bit-position 0
affinity-map GREEN bit-position 8
flex-algo 128
advertise-definition
priority 250
affinity
exclude-any
name BLUE
exit-fa-affinity-attr
!
!
flex-algo 129
advertise-definition
metric-type delay
priority 250
affinity
include-all
name BLACK
!
flex-algo 133
advertise-definition
metric-type te
priority 250
affinity
include-any
name GREEN
!
address-family ipv6
router-id Loopback0
segment-routing srv6
locator loc1
locator F128
locator F129
locator F133
fast-reroute per-prefix level-2 all
fast-reroute ti-lfa level-2
interface Ethernet1/3
ipv6 address 15:15::1/64
ipv6 router isis 1
bfd interval 50 min_rx 50 multiplier 3
isis network point-to-point
isis te-metric flex-algo 10 level-2
isis ipv6 metric 10
isis ipv6 bfd
isis affinity flex-algo
name BLACK
name GREEN
name BLUE
performance-measurement
interface Ethernet1/3
delay-measurement
next-hop ipv6 15:15::2
Verify SRv6 Flex-Algo with TI-LFA and uLoop Avoidance
Verify the configuration by using show commands to check the status and details of Flex-Algo settings:
The following is a sample output of the show isis ipv6 rib flex-algo value command showing all the IS-IS IPv6 local RIB information:
Router# sh isis ipv6 rib flex-algo 128
IS-IS IPv6 process 1, local RIB
Repair path attributes:
DS - Downstream, LC - Linecard-Disjoint, NP - Node-Protecting
PP - Primary-Path, SR - SRLG-Disjoint
Flex-algo 128
* CAFE:F128:606::/48
Algorithm: 128
via FE80::A8BB:CCFF:FE02:5E20/Ethernet0/2, type L2 metric 10 tag 0
(installed)
repair path: via FE80::A8BB:CCFF:FE02:5A10/Ethernet0/1 metric: 130 (DS,SR)
TI-LFA link-protecting
SRv6-Fwd-Id 25165861
P node: r604 SID CAFE:0:604:: uN (PSP/USD)
Q node: r605 SID CAFE:0:604:E002:: uA (PSP/USD)
repair source: r606, metric to pfx: 150
The following is a sample output of the show isis ipv6 flex-algo command showing all the information regarding IS-IS IPv6 flexible algorithm running in multi-topology mode. If ISIS IPv6
routing runs in single-topology mode, use the show isis flex-algo command.
Router# show isis ipv6 flex-algo 128
Tag 1:
IS-IS Flex-Algo Database
Flex-Algo count: 2
Use delay metric advertisement: Application, Legacy
IS-IS Level-2
Delay metric: Inactive
Flex-Algo 128:
Topology-2
IS-IS Level-2
Definition Priority: 128
Definition Source: r601.00
Definition Equal to Local: Yes
Definition Metric Type: IGP
Definition Flex-Algo Prefix Metric: No
Disabled: No
Microloop Avoidance Timer Running: No
Local Priority: 128
FRR Disabled: No
Microloop Avoidance Disabled: No
The following is a sample output of the show isis ipv6 topology flex-algovalue command showing information regarding the IS-IS paths to intermediate systems running in multi-topology mode.If ISIS IPv6
routing runs in single-topology mode, use the command show isis topology flex-algo.
The following is a sample output of the sh isis ipv6 fast-reroute summary flex-algo command showing information regarding the IS-IS fast-reroute summary flex-algo:
Router# sh isis ipv6 fast-reroute summary flex-algo 128
Tag 1:
Flex-algo 128
IPv6 Fast-Reroute Protection Summary:
Prefix Counts: Total Protected Coverage
High priority: 0 0 0%
Normal priority: 18 12 66%
Total: 18 12 66%
Use the show isis ipv6 microloop-avoidance flex-algo command to display the current uLoop flex-algo status.
Router# sh isis ipv6 microloop-avoidance flex-algo 128
Tag: 1
Algo State Delay Running(L1/L2)
128 Segment-Routing 5000 NA/FALSE
Following is the example output for show isis srv6 locators command
Router# sh isis srv6 locators
ISIS SRv6 Locators:
Tag 1:
Name Algo Prefix Level
---- ---- ------ -----
A 0 CAFE:0:601::/48 1-2
F128 128 CAFE:F128:601::/48 1-2
Following is the example output for show isis node locators command
Router# sh isis node locators r601.00
Tag 1:
ISIS level-2 node information for r601.00
SRv6 locator cache:
(MT-2) CAFE:0:601::/48, Algorithm: 0
LSP 0, Index 1, Seq 0x45
Metric: 0, Algoritm: 0
End SID: CAFE:0:601:: uN (PSP/USD)
(MT-2) CAFE:F128:601::/48, Algorithm: 128
LSP 0, Index 1, Seq 0x45
Metric: 0, Algoritm: 128
End SID: CAFE:F128:601:: uN (PSP/USD)
Following is the example output for sh isis node internal lsp locators command
Router# sh isis node internal lsp locators r601.00
Tag 1:
ISIS level-2 node information for r601.00
LSP r601.00-00 (1111.1111.1111.00-00) Seq 0x49 locator list:
(MT-2) CAFE:F128:601::/48, Algo 128
(MT-2) CAFE:0:601::/48, Algo 0
Monitor SRv6 Flex-Algo with TI-LFA and uLoop Avoidance
After configuring SRv6 Flex-Algo, monitor its performance and behavior using the following commands:
Use show isis ipv6 fast-reroute summary flex-algo [number] command to monitor Fast-reroute coverage and status.
Use show isis ipv6 microloop-avoidance flex-algo [number] command to check microloop avoidance settings.
Traffic steering
ISIS creates the Flex-Algo forwarding plane, which is different from the algo-0 forwarding plane due to metric and affinity
constraints. The forwarding plane in SRv6 was established by installing locator IPv6 prefixes into the routing table. From
Cisco IOS XE 17.17.1a, users can steer VPN traffic routed by BGP to Flex-Algo by instructing BGP to use a locator for the
specific VRF that belongs to Flex-Algo. For example, locator F255 belongs to flex-algo 255 and is used for traffic in VRF
V6.
Configure traffic steering
The following sample configuration shows how to configure Traffic Steering