CISCO NCS 540 Series Network Convergence System User Guide
- June 14, 2024
- Cisco
Table of Contents
- Prerequisites for Flexible Algorithm
- Building Blocks of Segment Routing Flexible Algorithm
- Configuring Flexible Algorithm
- Example: Configuring IS-IS Flexible Algorithm
- Example: Configuring OSPF Flexible Algorithm
- Example: Traffic Steering to Flexible Algorithm Paths
- Delay Normalization
- Documents / Resources
CISCO NCS 540 Series Network Convergence System User Guide
Segment Routing Flexible Algorithm allows operators to customize IGP shortest path computation according to their own needs. An operator can assign custom SR prefix-SIDsto realize forwarding beyond link-cost based SPF. As a result, Flexible Algorithm provides a traffic engineered path automatically computed by the IGP to any destination reachable by the IGP.
The SR architecture associates prefix-SIDs to an algorithm which defines how the path is computed. Flexible Algorithm allows for user-defined algorithms where the IGP computes paths based on a user-defined combination of metric type and constraint.
This document describes the IS-IS and OSPF extensions to support Segment Routing Flexible Algorithm on an MPLS data-plane.
Prerequisites for Flexible Algorithm
Segment routing must be enabled on the router before the Flexible Algorithm functionality is activated.
Building Blocks of Segment Routing Flexible Algorithm
Thissection describesthe building blocksthat are required to support theSR Flexible Algorithm functionality in IS-IS and OSPF.
Flexible Algorithm Definition
Many possible constraints may be used to compute a path over a network. Some networks are deployed with multiple planes. A simple form of constraint may be to use a particular plane. A more sophisticated form of constraint can include some extended metric, like delay, as described in [RFC7810]. Even more advanced case could be to restrict the path and avoid links with certain affinities. Combinations of these are also possible.
To provide a maximum flexibility, the mapping between the algorithm value and its meaning can be defined by the user. When all the routers in the domain have the common understanding what the particular algorithm value represents, the computation for such algorithm is consistent and the traffic is not subject to looping. Here, since the meaning of the algorithm is not defined by any standard, but is defined by the user, it is called a Flexible Algorithm.
Flexible Algorithm Membership
An algorithm defines how the best path is computed by IGP. Routers advertise the support for the algorithm as a node capability. Prefix-SIDs are also advertised with an algorithm value and are tightly coupled with the algorithm itself.
An algorithm is a one octet value. Values from 128 to 255 are reserved for user defined values and are used for Flexible Algorithm representation.
Flexible Algorithm Definition Advertisement
To guarantee the loop free forwarding for paths computed for a particular Flexible Algorithm, all routers in the network must share the same definition of the Flexible Algorithm. This is achieved by dedicated router(s) advertising the definition of each Flexible Algorithm. Such advertisement is associated with the priority to make sure that all routers will agree on a single and consistent definition for each Flexible Algorithm.
Definition of Flexible Algorithm includes:
- Metric type
- Affinity constraints
- Exclude SRLG constraint
To enable the router to advertise the definition for the particular Flexible Algorithm, advertise-definition command is used. At least one router in the area, preferably two for redundancy, must advertise the Flexible Algorithm definition. Without the valid definition being advertised, the Flexible Algorithm will not be functional.
Flexible Algorithm Link Attribute Advertisement
Various link attributes may be used during the Flexible Algorithm path calculation. For example, include or exclude rules based on link affinities can be part of theFlexible Algorithm definition, as defined in IETFdraft draft-ietf-lsr-flex-algo.
Link attribute advertisements used during Flexible Algorithm calculation must use the Application Specific Link Attribute (ASLA) advertisements, as defined in RFC8919 (IS-IS) and RFC8920 (OSPF). In the case of IS-IS, if the L-Flag isset in the ASLA advertisement, then legacy advertisements(IS-IS Extended Reachability TLV) are used instead.
The mandatory use of ASLA advertisements applies to the following link attributes:
- Minimum Unidirectional Link Delay
- TE Default Metric
- Administrative Group
- Extended Administrative Group
- Shared Risk Link Group
Flexible Algorithm Prefix-SID Advertisement
To be able to forward traffic on a Flexible Algorithm specific path, all routers participating in the Flexible Algorithm will install a MPLS labeled path for the Flexible Algorithm specific SID that is advertised for the prefix. Only prefixes for which the Flexible Algorithm specific Prefix-SID is advertised is subject to Flexible Algorithm specific forwarding.
Calculation of Flexible Algorithm Path
Table 1: Feature History Table
Feature Name | Release Information | Feature Description |
---|---|---|
OSPF: Microloop Avoidance for Flexible Algorithm | Release 7.4.1 | This feature |
extends the current OSPF Flexible Algorithm functionality to support Microloop Avoidance.
Table 2: Feature History Table
Feature Name | Release Information | Feature Description |
---|---|---|
OSPF: Microloop Avoidance for Flexible Algorithm | Release 7.3.2 | This feature |
extends the current OSPF Flexible Algorithm functionality to support Microloop
Avoidance.
OSPF: TI-LFA for Flexible Algorithm| Release 7.3.1| This feature extends the
current OSPF Flexible Algorithm functionality to support TI-LFA.
A router may compute path for multipleFlexible Algorithms. A router must be configured to support particular Flexible Algorithm before it can compute any path for such Flexible Algorithm. A router must have a valid definition of the Flexible Algorithm before Flexible Algorithm is used.
The router usesthe following rulesto prune linksfrom the topology during theFlexible Algorithm computation:
- All nodes that don’t advertise support for Flexible Algorithm are pruned from the topology.
- Affinities:
- Check if any exclude affinity rule is part of the Flexible Algorithm Definition. If such exclude rule exists, check if any color that is part of the exclude rule is also set on the link. If such a color is set, the link must be pruned from the computation.
- Check if any include-any affinity rule is part of theFlexible Algorithm Definition. Ifsuch include any rule exists, check if any color that is part of the include-any rule is also set on the link. If no such color is set, the link must be pruned from the computation.
- Check if any include-all affinity rule is part of theFlexible Algorithm Definition. If such include-all rule exists, check if all colors that are part of the include-all rule are also set on the link. If all such colors are not set on the link, the link must be pruned from the computation
Note
See Flexible Algorithm Affinity Constraint.
- If the Flexible Algorithm definition includes an “exclude SRLG” rule, then all links that are part of such SRLG are pruned from the topology.
Note
See Configuring Flexible Algorithm with Exclude SRLG Constraint, on page
13.
- Router uses the metric that is part of the Flexible Algorithm definition. If the metric isn’t advertised for the particular link, the link is pruned from the topology
LoopFree Alternate (LFA) paths, TI-LFA backup paths, and Microloop Avoidance paths for particular Flexible Algorithm are computed using the same constraints as the calculation of the primary paths for such Flexible Algorithm. These paths usePrefix-SIDs advertised specifically forsuchFlexible Algorithm in order to enforce a backup or microloop avoidance path.
Configuring Microloop Avoidance for Flexible Algorithm
By default, Microloop Avoidance perFlexible Algorithm instance follows Microloop Avoidance configuration for algo-0.For information about configuring Microloop Avoidance,see ConfigureSegment Routing Microloop Avoidance.
You can disable Microloop Avoidance for Flexible Algorithm using the following
commands:
router isis instance flex-algo algo microloop avoidance disable
router ospf process flex-algo algo microloop avoidance disable
Configuring LFA / TI-LFA for Flexible Algorithm
By default, LFA/TI-LFA per Flexible Algorithm instance follows LFA/TI-LFA configuration for algo-0. For information about configuring TI-LFA, see Configure Topology-Independent Loop-Free Alternate (TI LFA).
You can disable TI-LFA for Flexible Algorithm using the following commands:
router isis instance flex-algo algo fast-reroute disable
router ospf process flex-algo algo fast-reroute disable
Installation of Forwarding Entries for Flexible Algorithm Paths
Flexible Algorithm path to any prefix must be installed in the forwarding using the Prefix-SID that was advertised for such Flexible Algorithm. If the Prefix-SID for Flexible Algorithm is not known, such Flexible Algorithm path is not installed in forwarding for such prefix
Only MPLS to MPLS entries are installed for a Flexible Algorithm path. No IP to IP or IP to MPLS entries are installed. These follow the native IPG paths computed based on the default algorithm and regular IGP metrics.
Flexible Algorithm Prefix-SID Redistribution
Table 3: Feature History Table
Feature Name | Release Information | Feature Description |
---|---|---|
Flexible Algorithm Prefix-SID Redistribution for External Route Propagation | ||
Release 7.5.2 | You can now propagate flexible algorithm prefix-SIDs and their |
algorithm-specific metric between different IGP domains, such as OSPF to IS-IS RIP to OSPF. Withthis functionality enabling interdomain traffic engineering, you can export flexible algorithm labels from the OSPF domain to other domains and import the labels from other domains into OSPF.The show ospf route flex-algo command has been modified to include additional attributes to indicate the external routes.
Prefix redistribution from IS-IS to another IS-IS instance or protocol was limited to SR algorithm 0 (regular SPF) prefix SIDs; SR algorithm 1 (Strict SPF) and SR algorithms 128-255 (Flexible Algorithm) prefixSIDs were not redistributed along with the prefix. The Segment Routing IS-IS Flexible Algorithm Prefix SID Redistribution feature allows redistribution of strict and flexible algorithms prefixSIDs from IS-ISto another IS-IS instance or protocols. This feature is enabled automatically when you configure redistribution of IS IS Routes with strict or flexible algorithm SIDs.
Configuration Example
The following example shows how to configure redistribute and flexible algorithm to enable external routes.
RP/0/RP0/CPU0:ios(config)#router ospf 1
RP/0/RP0/CPU0:ios(config-ospf)#segment-routing mpls
RP/0/RP0/CPU0:ios(config-ospf)#segment-routing forwarding mpls
RP/0/RP0/CPU0:ios(config-ospf)#redistribute isis 2 route-policy loopback-type
RP/0/RP0/CPU0:ios(config-ospf)#flex-algo 240
RP/0/RP0/CPU0:ios(config-ospf-flex-algo)#metric-type delay
RP/0/RP0/CPU0:ios(config-ospf-flex-algo)#prefix-metric
RP/0/RP0/CPU0:ios(config-ospf-flex-algo)#advertise-definition
Verification
This following show output displays the route-type as ‘Extern’ for the external routes.
Router#show ospf routes flex-algo 240 route-type external detail
Route Table of ospf-1 with router ID 192.168.0.2 (VRF default)
Algorithm 240
Route entry for 192.168.4.3/32, Metric 220, SID 536, Label 16536
Priority : Medium
Route type : Extern Type 1
Last updated : Apr 25 14:30:12.718
Flags: Inuse
Prefix Contrib Algo 240 SID 536
From 192.168.0.4 Route-type 5
Total Metric : 220 Base metric 20 FAPM 20
Contrib Flags : Inuse, Reachable
SID Flags : PHP off, Index, Global, Valid
Path: 10.1.1.3, from 192.168.0.4, via GigabitEthernet0/2/0/2
Out Label : 16536
Weight : 0
Area : 0
Path: 10.1.2.3, from 192.168.0.4, via GigabitEthernet0/2/0/3
Out Label : 16536
Weight : 0
Area : 0
Path: 10.2.1.5, from 192.168.0.4, via GigabitEthernet0/2/0/4
Out Label : 16536
Weight : 0
Area : 0
Route entry for 192.168.4.5/32, Metric 120, SID 556, Label 16556
Priority : Medium
Route type : Extern Type 1
Last updated : Apr 25 14:30:12.724
Flags: Inuse
Prefix Contrib Algo 240 SID 556
From 192.168.0.3 Route-type 5
Total Metric : 120 Base metric 1 FAPM 20
Contrib Flags : Inuse, Reachable
SID Flags : PHP off, Index, Global, Valid
Path: 10.1.1.3, from 192.168.0.3, via GigabitEthernet0/2/0/2
Out Label : 16556
Weight : 0
Area : 0
Path: 10.1.2.3, from 192.168.0.3, via GigabitEthernet0/2/0/3
Out Label : 16556
Weight : 0
Area : 0
The following show output displays label information for flexible algorithm and its corresponding metric as added in RIB:
RP/0/RP0/CPU0:ios# show route 192.168.0.2/32 detail
Wed Apr 6 16:24:46.021 IST
Routing entry for 192.168.0.2/32
Known via “ospf 1”, distance 110, metric 2, labeled SR, type intra area
Installed Apr 6 15:51:57.973 for 00:32:48
Routing Descriptor Blocks
10.10.10.2, from 192.168.0.2, via GigabitEthernet0/2/0/0, Protected
Route metric is 2
Label: 0x3 (3)
Tunnel ID: None
Binding Label: None
Extended communities count: 0
Path id:1 Path ref count:0
NHID:0x1(Ref:1)
Backup path id:65
OSPF area: 1
10.11.11.2, from 192.168.0.2, via GigabitEthernet0/2/0/1, Backup (Local-LFA)
Route metric is 6
Label: 0x3 (3)
Tunnel ID: None
Binding Label: None
Extended communities count: 0
Path id:65 Path ref count:1
NHID:0x2(Ref:1)
OSPF area:
Route version is 0x12 (18)
Local Label: 0x3ee6 (16102)
Local Label Algo Set (ID, Label, Metric): (1, 16202, 0),(128, 17282, 2)
IP Precedence: Not Set
QoS Group ID: Not Set
Flow-tag: Not Set
Fwd-class: Not Set
Route Priority: RIB_PRIORITY_NON_RECURSIVE_MEDIUM (7) SVD Type
RIB_SVD_TYPE_LOCAL
Download Priority 1, Download Version 38
No advertising protos
Flexible Algorithm Prefix Metric
Table 4: Feature History Table
Feature Name | Release Information | Feature Description |
---|---|---|
Prefix Metric support for OSPF Flexible Algorithm | Release 7.5.1 | This feature |
extends the current OSPF Flexible Algorithm functionality to introduce a Flexible Algorithm-specific prefix-metric in the OSPF prefix advertisement. The prefix-metric provides a way to compute the best end-to-end Flexible Algorithm optimized paths across multiple areas or domains.
A limitation of the existing Flexible Algorithm functionality in IS-IS and OSPF is the inability to compute the best path to a prefix in a remote area or remote IGP domain. Prefixes are advertised between IS-IS areas, OSPF processes, or between protocol domains, but the existing prefix metric does not reflect any of the constraints used for Flexible Algorithm path. Although the best Flexible Algorithm path can be computed to the inter-area or redistributed prefix inside the area, the path may not represent the overall best path through multiple areas or IGP domains.
The Flexible Algorithm Prefix Metric feature introduces a Flexible Algorithm- specific prefix-metric in the IS-IS and OSPF prefix advertisement. The prefix- metric provides a way to compute the best end-to-end Flexible Algorithm optimized paths across multiple areas or domains.
Note
The Flexible Algorithm definition must be consistent between domains or
areas. Refer to section 8 and section 9 in IETF draft
https://datatracker.ietf.org/doc/draft-ietf-lsr-flex-algo
Configuring Flexible Algorithm
Table 5: Feature History Table
Feature Name | Release Information | Feature Description |
---|---|---|
TE Metric Support for IS-IS Flex Algo | Release 7.4.1 | Flexible Algorithm |
allows for user-defined algorithms where the IGP computes paths based on a user-defined combination of metric type (path optimization objective) and constraint.This feature adds support for TE metric as a metric type for IS-IS Flexible Algorithm. This allows the TE metric, along with IGP and delay metrics, to be used when running shortest path computations.
The following IS-IS and OSPF configuration sub-mode is used to configure
Flexible Algorithm:
router isis instance flex-algo algo
router ospf process flex-algo algo
algo—value from 128 to 255
Configuring Flexible Algorithm Definitions
The following commands are used to configure Flexible Algorithm definition
under the flex-algo sub-mode:
router isis instance flex-algo algo metric-type {delay | te}
router ospf process flex-algo algo metric-type {delay | te-metric}
Note
By default the IGP metric is used. If delay or TE metric is enabled, the
advertised delay or TE metric on the link is used as a metric for Flexible
Algorithm computation
Note
See Flexible Algorithm Link Attribute Advertisement Behavior, on page 10
for TE metric behaviors.
-
router isis instance flex-algo algo affinity { include-any | include-all | exclude-any}
name1, name2, …
router ospf process flex-algo algo affinity { include-any | include-all | exclude-any}
name1, name2, …
name—name of the affinity map -
router isis instance flex-algo algo priority priority value
router ospf process flex-algo algo priority priority value
priority value—priority used during the Flexible Algorithm definition election. -
IS-IS
metric-type delay
Note
By default the regular IGP metric is used. If delay metric is enabled, the
advertised delay on the link is used as a metric for Flexible Algorithm
computation.
OSPF
metric-type {delay | te-metric}
Note
By default the regular IGP metric is used. If delay or TE metric is
enabled, the advertised delay or TE metric on the link is used as a metric
forFlexible Algorithm computation.
-
affinity {include-any | include-all | exclude-any} name1, name2, …
name—name of the affinity map -
priority priority value
priority value—priority used during the Flexible Algorithm definition election.
The following command is used to to include the Flexible Algorithm prefix metric in the advertised Flexible
Algorithm definition in IS-IS and OSPF :
router isis instance flex-algo algo prefix-metric
router ospf process flex-algo algo prefix-metric
The following command is used to enable advertisement of the Flexible Algorithm definition in IS-IS: router isis instance flex-algo algo advertise- definition
Configuring Affinity
The following command is used for defining the affinity-map. Affinity-map
associates the name with the particular bit positions in the Extended Admin
Group bitmask.
router isis instance flex-algo algo affinity-map name bit-position bit number
router ospf process flex-algo algo affinity-map name bit-position bit number
name—name of the affinity-map
Configuring Prefix-SID Advertisement
The following command is used to advertise prefix-SID for default and strict-
SPF algorithm:
router isis instance interface type interface-path-id address-family {ipv4 |
ipv6} [unicast] prefix-sid [strict-spf | algorithm algorithm-number] [index |
absolute] sid value
router ospf process area area interface Loopback interface-instance prefix-sid
[strict-spf| algorithm algorithm-number] [index | absolute] sid value
- algorithm-number—Flexible Algorithm number
- sid value—SID valu
Flexible Algorithm Link Attribute Advertisement Behavior
Table 6: Feature History Table
Feature Name | Release Information | Feature Description |
---|---|---|
Advertisement of Link Attributes for IS-IS Flexible Algorithm | Release 7.4.1 |
Link attribute advertisements used during Flexible Algorithm path calculation must use the Application-Specific Link Attribute (ASLA) advertisements, as defined in IETF draftdraft-ietf-lsr-flex- algo.This feature introduces support for ASLA advertisements during IS-IS Flexible Algorithm path calculation.
The following tables explain the behaviors for advertising (transmitting) and processing (receiving) Flexible Algorithm link attributes.
Table 7: OSPF
Link Attribute | Transmit | Receive |
---|---|---|
Link Delay Metric | IOS XR OSPF Flex Algo implementation advertises the link | |
delay metric value using the OSPF ASLA sub-TLV with the F-bit set. | IOS XR |
OSPF only uses the link delay metric advertised in the ASLA sub-TLV for Flex
Algo.ASLA sub-TLV is supported with non-zero-length or with zero-length
Application Identifier Bit Masks.
Link TE Metric| IOS XR OSPF Flex Algo implementation advertises the link TE
metric value using the OSPF ASLA sub-TLV with the F-bit set.The link TE metric
values advertised are configured under SR-TE.| IOS XR OSPF only uses the TE
metric advertised in the ASLA sub-TLV for Flex Algo.ASLA sub-TLV is supported
with non-zero-length or with zero-length Application Identifier Bit Masks.
Link Admin Group/Extended Admin Group| IOS XR OSPF Flex Algo implementation
advertises the link admin group value using both link admin group (AG) and
link extended admin group (EAG) encoding using the OSPF ASLA sub-TLV with the
F-bit set.The link admin group values advertised can be configured directly
under the IGP and are therefore FA-specific. Otherwise, they will be derived
from the link admin group values configured under SR-TE.| IOS XR OSPF only
uses the AG/EAG (either one or both) advertised in the ASLA sub-TLV for Flex
Algo.ASLA sub-TLV is supported with non-zero-length or with zero-length
Application Identifier Bit Masks.
Table 8: IS-IS
Link Delay Metric| IOS XR IS-IS Flex Algo implementation advertises the link
delay metric value using the IS-IS Extended Reachability TLV only.| IOS XR IS-
IS Flex Algo implementation processes the link delay metric value received in
the IS-IS Extended Reachability TLV only.
---|---|---
Link Extended Admin Group| IOS XR IS-IS Flex Algo implementation advertises
the affinity value using the link extended admin group TLV using the IS-IS
ASLA.| IOS XR IS-IS Flex Algo implementation processes the affinity value
received in the link extended admin group TLV in the IS-IS ASLA.
Link SRLG| IOS XR IS-IS LFA implementation advertises the link SRLG value in
the IS-IS ASLA.| IOS XR IS-IS LFA implementation processes the link SRLG value
received in the IS-IS ASLA.
Table 9: IS-IS
Link Attribute | Transmit | Receive |
---|---|---|
Link Delay Metric | IOS XR IS-IS Flex Algo implementation advertises the link |
delay metric value using both the IS-IS Extended Reachability TLV and
theIS-IS ASLA.| By default, IOS XR IS-IS Flex Algo implementation prefers the
link delay metric value received in the IS-IS ASLA. Otherwise, it will use
link delay metric value received in the IS-IS Extended Reachability TLV.ASLA
sub-TLV is supported with non-zero-length or with zero-length Application
Identifier Bit Masks.If the incoming ASLA includes the L-Flag, implementation
derives the link delay metric value from the IS-IS Extended Reachability
TLV.You can configure the IOS XR IS-IS Flex Algo implementation to strictly
use the link delay metric value received in the IS-IS ASLA. See Configuring
Strict IS-IS ASLA Link Attribute, on page 13.
Link TE Metric| IOS XR IS-IS Flex Algo implementation advertises the link TE
metric value using the IS-IS ASLA.The link TE metric values advertised can be
configured directly under the IGP and are therefore FA-specific.Otherwise,
they will be derived from the link TE metric values configured under SR-TE.See
Configuring FlexibleAlgorithm-Specific TE Metric, on page 13.| IOS XR IS-IS
Flex Algo implementation processes the link TE metric value received in the
IS-IS ASLA.ASLA sub-TLV is supported with non-zero-length or with zero-length
Application Identifier Bit Masks.If incoming ASLA includes the L-Flag,
implementation derives the link TE metric value from the IS-IS Extended
Reachability TLV.
Link Admin Group/Extended Admin Group| IOS XR IS-IS Flex Algo implementation
advertises the affinity value as both the link admin group (AG) TLV and the
link extended admin group (EAG) TLV using the IS-IS ASLA when its value falls
within the first 32 bits. Otherwise, the affinity value is advertised only as
link EAG TLV using the IS-IS ASLA.The admin group values advertised are
configured directly under the IGP and are therefore FA-specific.| IOS XR IS-IS
Flex Algo implementation processes the affinity value received as either the
link admin group TLV or link extended admin group TLV in the IS-IS ASLA.ASLA
sub-TLV is supported with non-zero-length or with zero-length Application
Identifier Bit Masks.If incoming ASLA includes the L-Flag, implementation
derives the affinity value from the IS-IS Extended Reachability TLV.
Configuring Strict IS-IS ASLA Link Attribute
Use the following command to configure the IOS XR IS-IS Flex Algo
implementation to strictly use the link delay metric value received in the IS-
IS ASLA:
router isis instance-id receive application flex-algo delay app-only
Configuring Flexible Algorithm-Specific TE Metric
Use the following command to configure theFlexible Algorithm-specific TE
metric value under IS-IS, where metric_value is from 1 to 16777214:
router isis instance interface type interface-path-id address-family {ipv4 |
ipv6} [unicast] te-metric flex-algo metric_value [level {1 | 2}]
The following example shows how to configure the Flexible Algorithm-specific
TE metric value to 50:
Router(config)# router isis 1
Router(config-isis)# interface HundredGigE 0/0/0/2
Router(config-isis-if)# address-family ipv4 unicast
Router(config-isis-if-af)# te-metric flex-algo 50
Configuring Flexible Algorithm with Exclude SRLG Constraint
Table 10: Feature History Table
Feature Name | Release Information | Feature Description |
---|---|---|
Flexible Algorithm to Exclude SRLGs for OSPF | Release 7.5.2 | You can now |
configure the flexible algorithm to exclude any link belonging to the Shared
Risk Link Groups (SRLGs) from the path computation for OSPF. The ability to
exclude the at-risk links ensures that the rest of the links in the network
remain unaffected.
IS-IS Flexible Algorithm: Exclude-SRLG Constraint| Release 7.5.1| This feature
allows the Flexible Algorithm definition to specify Shared Risk Link Groups
(SRLGs) that the operator wants to exclude during the Flex-Algorithm path
computation. The ability to exclude the at-risk links ensures that the rest of
the links in the network remain unaffected.This allows the setup of disjoint
paths between two or more Flex Algos by leveraging deployed SRLG
configurations.
This feature allows the Flexible Algorithm definition to specify Shared Risk Link Groups (SRLGs) that the operator wants to exclude during the Flex- Algorithm path computation. A set of links that share a resource whose failure can affect all links in the set constitute aSRLG. AnSRLG provides an indication of which links in the network might be at risk from the same failure.
This allows the setup of disjoint paths between two or more Flex Algos by leveraging deployed SRLG configurations. For example, multiple Flex Algos could be defined by excluding all SRLGs except one. Each FA will prune the links belonging to the excluded SRLGs from its topology on which it computes its paths.
This provides a new alternative to creating disjoint paths with FA, in addition to leveraging FA with link admin group (affinity) constraints.
The Flexible Algorithm definition (FAD) can advertise SRLGs that you want to exclude during the Flexible Algorithm path computation. The IS-IS Flexible Algorithm Exclude SRLG Sub-TLV (FAESRLG) is used to advertise the exclude rule that is used during the Flexible Algorithm path calculation, as specified in IETF draft https://datatracker.ietf.org/doc/draft-ietf-lsr-flex-algo/
TheFlexible Algorithm path computation checks if an “excludeSRLG” rule is part of theFAD. If an “exclude SRLG” rule exists, it then checks if the link is part of an SRLG that is also part of the “exclude SRLG” rule. If the link is part of an excluded SRLG, the link is pruned from the path computation.
The figure below shows a topology configured with the following flex algos:
- Flex algo 128: metric IGP and exclude SRLG X constraint
- Flex algo 129: metric IGP and exclude SRLG Y constraint
The horizontal links between nodes 3 and 4 and between 2 and 5 are part of SRLG group X. The diagonal links between nodes 3 and 5 and between 2 and 4 are part of SRLG group Y. As a result, traffic from node 1 to node 6’s FA 128 prefix SID (16806) avoids interfaces part of SRLG X. While traffic from node 1 to node 6’s FA 129 prefix SID (16906) avoids interfaces part of SRLG Y.
Note
See Constraintssection in the Configure SR-TE Policies chapter for
information about configuringSR policies with Flex-Algo constraints.
Figure 1: Flex Algo with Exclude SRLG Constraint
Configuration
Use the router isis instance address-family ipv4 unicast advertise application flex-algo link-attributes srlg command to enable the Flexible Algorithm ASLA- specific advertisement of SRLGs.
Use the router isis instance flex-algo algo srlg exclude-any srlg-name . . . srlg-name command to configure theSRLG constraint which is advertised in theFlexible Algorithm definition (FAD) if theFAD advertisement is enabled under the flex-algo sub-mode. You can specify up to 32 SRLG names.
The SRLG configuration (value and port mapping) is performed under the global SRLG sub-mode. Refer to MPLS Traffic Engineering Shared Risk Link Groups for more information.
Example
The following example shows how to enable theFlexible Algorithm ASLA-specific
advertisement ofSRLGs and to exclude SRLG groups from Flexible Algorithm path
computation:
RP/0/RP0/CPU0:router(config)# srlg
RP/0/RP0/CPU0:router(config-srlg)# interface HunGigE0/0/0/0
RP/0/RP0/CPU0:router(config-srlg-if)# name groupX
RP/0/RP0/CPU0:router(config-srlg-if)# exit
RP/0/RP0/CPU0:router(config-srlg)# interface TenGigE0/0/0/1
RP/0/RP0/CPU0:router(config-srlg-if)# name groupX
RP/0/RP0/CPU0:router(config-srlg-if)# exit
RP/0/RP0/CPU0:router(config-srlg)# interface HunGigE0/0/1/0
RP/0/RP0/CPU0:router(config-srlg-if)# name groupY
RP/0/RP0/CPU0:router(config-srlg-if)# exit
RP/0/RP0/CPU0:router(config-srlg)# interface TenGigE0/0/1/1
RP/0/RP0/CPU0:router(config-srlg-if)# name groupY
RP/0/RP0/CPU0:router(config-srlg-if)# exit
RP/0/RP0/CPU0:router(config-srlg)# name groupX value 100
RP/0/RP0/CPU0:router(config-srlg)# name groupY value 200
RP/0/RP0/CPU0:router(config-srlg)# exit
RP/0/RP0/CPU0:router(config)# router isis 1
RP/0/RP0/CPU0:router(config-isis)# address-family ipv4 unicast
RP/0/RP0/CPU0:router(config-isis-af)# advertise application flex-algo link-
attributes srlg
RP/0/RP0/CPU0:router(config-isis-af)# exit
RP/0/RP0/CPU0:router(config-isis)# flex-algo 128
RP/0/RP0/CPU0:router(config-isis-flex-algo)# advertise-definition
RP/0/RP0/CPU0:router(config-isis-flex-algo)# srlg exclude-any groupX
RP/0/RP0/CPU0:router(config-isis-flex-algo)# exit
RP/0/RP0/CPU0:router(config-isis)# flex-algo 129
RP/0/RP0/CPU0:router(config-isis-flex-algo)# advertise-definition
RP/0/RP0/CPU0:router(config-isis-flex-algo)# srlg exclude-any groupY
RP/0/RP0/CPU0:router(config-isis-flex-algo)# commit
RP/0/RP0/CPU0:router(config-isis-flex-algo)# exit
RP/0/RP0/CPU0:router(config-isis)#
The following example shows how to enable theFlexible Algorithm ASLA-specific advertisement ofSRLGs and to exclude SRLG groups from Flexible Algorithm path computation for OSPF:
RP/0/RP0/CPU0:router(config)# srlg
RP/0/RP0/CPU0:router(config-srlg)# interface HunGigE0/0/0/0
RP/0/RP0/CPU0:router(config-srlg-if)# name groupX
RP/0/RP0/CPU0:router(config-srlg-if)# exit
RP/0/RP0/CPU0:router(config-srlg)# interface TenGigE0/0/0/1
RP/0/RP0/CPU0:router(config-srlg-if)# name groupX
RP/0/RP0/CPU0:router(config-srlg-if)# exit
RP/0/RP0/CPU0:router(config-srlg)# interface HunGigE0/0/1/0
RP/0/RP0/CPU0:router(config-srlg-if)# name groupY
RP/0/RP0/CPU0:router(config-srlg-if)# exit
RP/0/RP0/CPU0:router(config-srlg)# interface TenGigE0/0/1/1
RP/0/RP0/CPU0:router(config-srlg-if)# name groupY
RP/0/RP0/CPU0:router(config-srlg-if)# exit
RP/0/RP0/CPU0:router(config-srlg)# name groupX value 100
RP/0/RP0/CPU0:router(config-srlg)# name groupY value 200
RP/0/RP0/CPU0:router(config-srlg)# exit
RP/0/0/CPU0:r1(config)#router ospf 1
RP/0/0/CPU0:r1(config-ospf)#flex-algo 128
RP/0/0/CPU0:r1(config-ospf-flex-algo)#srlg exclude-any
RP/0/0/CPU0:r(config-ospf-flex-algo-srlg-exclude-any)#groupX
RP/0/0/CPU0:r(config-ospf-flex-algo-srlg-exclude-any)#groupY
RP/0/0/CPU0:r(config-ospf-flex-algo-srlg-exclude-any)#commit
Verification
The following example shows how to verify the number of SRLGs excluded for OSPF
RP/0/RP0/CPU0:router# show ospf topology summary
Process ospf-1
Instance default
Router ID : 192.168.0.1
Number of Areas : 1
Number of Algos : 1
Max Path count : 16
Route count : 10
SR Global Block : 16000 – 23999
Area 0
Number of Nodes : 6
Algo 128
FAD Advertising Router : 192.168.0.1
FAD Area ID : 0
Algo Type : 0
Metric Type : 0
Number of Exlclude SRLGs : (2)
FAPM supported : No
Example: Configuring IS-IS Flexible Algorithm
router isis 1
affinity-map red bit-position 65
affinity-map blue bit-position 8
affinity-map green bit-position 201
flex-algo 128
advertise-definition
affinity exclude-any red
affinity include-any blue
!
flex-algo 129
affinity exclude-any green
!
!
address-family ipv4 unicast
segment-routing mpls
!
interface Loopback0
address-family ipv4 unicast
prefix-sid algorithm 128 index 100
prefix-sid algorithm 129 index 101
!
!
interface GigabitEthernet0/0/0/0
affinity flex-algo red
!
interface GigabitEthernet0/0/0/1
affinity flex-algo blue red
!
interface GigabitEthernet0/0/0/2
affinity flex-algo blue
!
Example: Configuring OSPF Flexible Algorithm
router ospf 1
flex-algo 130
priority 200
affinity exclude-any
red
blue
!
metric-type delay
!
flex-algo 140
affinity include-all
green
!
affinity include-any
red
!
!
interface Loopback0
prefix-sid index 10
prefix-sid strict-spf index 40
prefix-sid algorithm 128 absolute 16128
prefix-sid algorithm 129 index 129
prefix-sid algorithm 200 index 20
prefix-sid algorithm 210 index 30
!
!
interface GigabitEthernet0/0/0/0
flex-algo affinity
color red
color blue
!
!
affinity-map
color red bit-position 10
color blue bit-position 11
!
Example: Traffic Steering to Flexible Algorithm Paths
BGP Routes on PE – Color Based Steering
SR-TE On Demand Next-Hop (ODN) feature can be used to steer the BGP traffic
towards the Flexible Algorithm paths.
The following example configuration shows how to setup BGP steering local
policy, assuming two router:
R1 (2.2.2.2) and R2 (4.4.4.4), in the topology.
Configuration on router R1:
vrf Test
address-family ipv4 unicast
import route-target
1:150
!
export route-policy SET_COLOR_RED_HI_BW
export route-target
1:150
!
interface Loopback0
ipv4 address 2.2.2.2 255.255.255.255
!
interface Loopback150
vrf Test
ipv4 address 2.2.2.222 255.255.255.255
!
interface TenGigE0/1/0/3/0
description exr1 to cxr1
ipv4 address 10.0.20.2 255.255.255.0
!
extcommunity-set opaque color129-red-igp
129
end-set
!
route-policy PASS
pass
end-policy
!
route-policy SET_COLOR_RED_HI_BW
set extcommunity color color129-red-igp
pass
end-policy
!
router isis 1
is-type level-2-only
net 49.0001.0000.0000.0002.00
log adjacency changes
affinity-map RED bit-position 28
flex-algo 128
priority 228
!
address-family ipv4 unicast
metric-style wide
advertise link attributes
router-id 2.2.2.2
segment-routing mpls
!
interface Loopback0
address-family ipv4 unicast
prefix-sid index 2
prefix-sid algorithm 128 index 282
!
interface TenGigE0/1/0/3/0
point-to-point
address-family ipv4 unicas
!
router bgp 65000
bgp router-id 2.2.2.2
address-family ipv4 unicast
!
address-family vpnv4 unicast
retain route-target all
!
neighbor-group RR-services-group
remote-as 65000
update-source Loopback0
address-family ipv4 unicast
!
address-family vpnv4 unicast
!
!
neighbor 4.4.4.4
use neighbor-group RR-services-group
!
vrf Test
rd auto
address-family ipv4 unicast
redistribute connected
!
segment-routing
traffic-eng
logging
policy status
!
segment-list sl-cxr1
index 10 mpls label 16294
!
policy pol-foo
color 129 end-point ipv4 4.4.4.4
candidate-paths
preference 100
explicit segment-list sl-cxr1
!
Configuration on router R2:
vrf Test
address-family ipv4 unicast
import route-target
1:150
!
export route-policy SET_COLOR_RED_HI_BW
export route-target
1:150
!
interface TenGigE0/1/0/1
description cxr1 to exr1
ipv4 address 10.0.20.1 255.255.255.0
!
extcommunity-set opaque color129-red-igp
129
end-set
!
route-policy PASS
pass
end-policy
!
route-policy SET_COLOR_RED_HI_BW
set extcommunity color color129-red-igp
pass
end-policy
!
router isis 1
is-type level-2-only
net 49.0001.0000.0000.0004.00
log adjacency changes
affinity-map RED bit-position 28
affinity-map BLUE bit-position 29
affinity-map GREEN bit-position 30
flex-algo 128
priority 228
!
flex-algo 129
priority 229
!
flex-algo 130
priority 230
!
address-family ipv4 unicast
metric-style wide
advertise link attributes
router-id 4.4.4.4
segment-routing mpls
!
interface Loopback0
address-family ipv4 unicast
prefix-sid index 4
prefix-sid algorithm 128 index 284
prefix-sid algorithm 129 index 294
prefix-sid algorithm 130 index 304
!
!
interface GigabitEthernet0/0/0/0
point-to-point
address-family ipv4 unicast
!
!
interface TenGigE0/1/0/1
point-to-point
address-family ipv4 unicast
!
!
router bgp 65000
bgp router-id 4.4.4.4
address-family ipv4 unicast
!
address-family vpnv4 unicast
!
neighbor-group RR-services-group
remote-as 65000
update-source Loopback0
address-family ipv4 unicast
!
address-family vpnv4 unicast
!
!
neighbor 10.1.1.1
use neighbor-group RR-services-group
!
neighbor 2.2.2.2
use neighbor-group RR-services-group
!
vrf Test
rd auto
address-family ipv4 unicast
redistribute connected
!
neighbor 25.1.1.2
remote-as 4
address-family ipv4 unicast
route-policy PASS in
route-policy PASS out
!
segment-routing
!
end
Delay Normalization
Table 11: Feature History Table
Feature Name | Release Information | Feature Description |
---|---|---|
SR-TE Delay Normalization for OSPF | Release 7.3.1 | This feature extends the |
current Delay Normalization feature to support OSPF.
Performance measurement (PM) measures various link characteristics like packet loss and delay. Such characteristics can be used by IS-IS as a metric for Flexible Algorithm computation. Low latency routing using dynamic delay measurement is one of the primary use cases for Flexible Algorithm technology.
Delay is measured in microseconds. If delay values are taken as measured and used as link metrics during the IS-IS topology computation, some valid ECMP paths might be unused because of the negligible difference in the link delay.
The Delay Normalization feature computes a normalized delay value and uses the
normalized value instead.
This value is advertised and used as a metric during the Flexible Algorithm
computation.
The normalization is performed when the delay is received from the delay measurement component. When the next value is received, it is normalized and compared to the previous saved normalized value. If the values are different, then the LSP generation is triggered.
The following formula is used to calculate the normalized value:
- Dm – measured Delay
- Int – configured normalized Interval
- Off – configured normalized Offset (must be less than the normalized interval Int)
- Dn – normalized Delay
- a = Dm / Int (rounded down)
- b = a * Int + Off
If the measured delay (Dm) is less than or equal to b, then the normalized delay (Dn) is equal to b. Otherwise, Dn is b + Int.
Example
The following example shows a low-latency service. The intent isto avoid high-
latency links(1-6, 5-2). Links 1-2 and 5-6 are both low-latency links. The
measured latency is not equal, but the difference is insignificant.
We can normalize the measured latency before it is advertised and used by IS-IS. Consider a scenario with the following:
- Interval = 10
- Offset = 3
The measured delays will be normalized as follows:
-
Dm = 29
a = 29 / 10 = 2 (2.9, rounded down to 2)
b = 2 * 10 + 3 = 23
In this case, Dm (29) is greater than b (23); so Dn is equal to b+I (23 + 10) = 33
-
Dm = 31
a = 31 / 10 = 3 (3.1, rounded down to 3)
b = 3 * 10 + 3 = 33
In this case, Dm (31) is less than b (33); so Dn is b = 33
The link delay between 1-2 and 5-6 is normalized to 33.
Configuration
Delay normalization is disabled by default. To enable and configure delay
normalization, use the delay normalize interval interval [offset offset]
command.
- interval – The value of the normalize interval in microseconds.
- offset – The value of the normalized offset in microseconds. This value must be smaller than the value of normalized interval.
IS-IS Configuration
router isis 1
interface GigEth 0/0/0/0
delay normalize interval 10 offset 3
address-family ipv4 unicast
metric 77
OSPF Configuration
router ospf 1
area 0
interface GigabitEthernet0/0/0/0
delay normalize interval 10 offset 3
Documents / Resources
|
CISCO NCS 540 Series Network Convergence
System
[pdf] User Guide
NCS 540 Series Network Convergence System, NCS 540 Series, Network Convergence
System, Convergence System
---|---
|
CISCO NCS 540 Series Network Convergence
System
[pdf] User Guide
NCS 540 Series Network Convergence System, NCS 540 Series, Network Convergence
System, Convergence System
Read User Manual Online (PDF format)
Read User Manual Online (PDF format) >>