Restrictions for SR-TE
-
SR-TE statistics counters are not supported on the Cisco ASR 900 RSP2 module.
-
The Cisco ASR 900 routers with RSP2 module support five label stacks.
-
In the default SDM template, Cisco ASR 900 Router with RSP3 module can push a maximum of 4 MPLS labels in the egress direction. This includes service labels (L3VPN, L2VPN, 6PE/6VPE), RFC 3107 BGP-LU label and SR labels for FRR primary or backup paths. In default template, packet recirculation within forwarding ASIC is not used.
-
Effective Cisco IOS XE Gibraltar 16.11.1, Cisco ASR 900 Router with RSP3 module can push a maximum of seven MPLS labels in the egress direction when segment routing traffic engineering is being used. This is supported through the template sr_5_label_push_enable. This template uses packet recirculation within forwarding ASIC. For more information, see Support for Seven SR-TE Lables.
Note |
All five labels cannot be part of the SR-TE Tunnel label stack. One label must be a service label. |
-
Cisco ASR 900 routers with RSP3 module support seven-label stack with recirculation.
-
The routers do not support unequal load balancing when using the load-share option.
-
ECMP at single SR-TE tunnel level is not supported.
-
SR-TE FRR with PoCH as the primary path is not supported. However, you can provision SR-TE tunnel without FRR over PoCH and backup tunnel over PoCH.
-
The SR-TE dynamic tunnels do not support node protection. Therefore, node protection cannot achieve less than 50ms convergence with dynamic SR-TE tunnels.
-
Limitations for SR-TE statistics counter:
-
Statistics counter for ECMP to first hop node is not supported.
-
Statistics counters for traffic steered over PFP policy is not supported.
-
Statistics counters for Labelled Traffic over PDP SR policy is not supported.
-
For L2VPN prefixes going over more than one auto-route tunnels, an ECMP LB path is formed with SR-TE. Since this is a preselection, only one path is picked up for L2VPN.
-
Per-SR Policy, per TC Aggregate traffic counter (POL.TC)—Per-traffic class aggregate counters per-SR policy is not supported.
-
Per-SR Policy labelled steered aggregate traffic counter (POL.BSID)—Per-binding SID aggregate counters per SR-policy is not supported.
-
Per-SR Policy, Per-Segment-List aggregate traffic counter (POL.SL)—Multiple segment list is not supported.
-
Per-SR Policy, Per-Segment-List, Per-Path aggregate traffic counter (POL.SL.INT.E)—Multiple segment lists and tunnels pointing to ECMP next-hop is not supported.
-
Statistics counters under BGP-PIC-EDGE is not supported in this release.
-
Segment Routing Recirculation for TI-LFA
Prior to Cisco IOS XE Gibraltar 16.11.1, the Cisco ASR 900 routers with RSP2 module support five label stacks, whereas the Cisco ASR 900 routers with RSP3 module support four label stacks from which only one label can be used as the SR-TE transport label and one label as TI-LFA label
However, effective Cisco IOS XE Gibraltar 16.11.1, the Cisco ASR 900 routers with RSP3 module support a sven-label stack and more than one SR-TE label in both, the primary and backup paths.
This increase in number of labels is achieved by recirculating the FRR backup path.
The following table indicates the supported label combinations:
Service |
Transport |
TI-LFA |
Recirculation in Backup |
---|---|---|---|
0 |
3 |
0 |
NA |
0 |
2 |
1 |
Yes |
0 |
2 |
2 |
Yes |
0 |
1 |
1 |
No |
0 |
1 |
2 |
Yes |
1 |
3 |
0 |
NA |
1 |
2 |
1 |
Yes |
1 |
2 |
2 |
Yes |
1 |
1 |
1 |
No |
1 |
1 |
2 |
Yes |
2 |
2 |
1 |
Yes |
2 |
2 |
2 |
Yes |
2 |
1 |
1 |
No |
2 |
1 |
2 |
Yes |
Restrictions
-
For all unsupported OCE chains, a download error message is displayed.
-
PIC core is not supported over SR-TE tunnel PIC edge is not supported.
-
VPLS over SR-TE is not supported.
-
ECMP over SR-TE is not supported.
-
6PE and 6VPE are not supported with three and four transport labels.
-
Three transport labels (without TI-LFA) are not supported
-
Segment routing in Active/Active QoS template is not supported
Support for Seven SR-TE Lables
Effective Cisco IOS XE Gibraltar 16.11.1, the Cisco ASR900 routers with RSP3 module support up to four transport labels along with one to two service labels. The following table indicates the number and type of labels that can be used:
Service |
Transport |
TI-LFA |
Recirculation in Backup |
---|---|---|---|
0 |
4 |
1 |
Yes |
0 |
4 |
2 |
Yes |
0 |
3 |
1 |
No |
0 |
3 |
2 |
Yes |
0 |
2 |
1 |
Yes |
0 |
2 |
2 |
Yes |
0 |
1 |
1 |
No |
0 |
1 |
2 |
Yes |
1 |
4 |
1 |
Yes |
1 |
4 |
2 |
Yes |
1 |
3 |
1 |
No |
1 |
3 |
2 |
Yes |
1 |
2 |
1 |
Yes |
1 |
2 |
2 |
Yes |
1 |
1 |
1 |
No |
1 |
1 |
2 |
Yes |
2 |
4 |
NA |
Not Supported |
2 |
3 |
NA |
Not Supported |
2 |
2 |
1 |
No |
2 |
2 |
2 |
Yes |
2 |
1 |
1 |
No |
2 |
1 |
2 |
Yes |
3 |
1 |
NA |
Not supported |
Configuring SR-TE Tunnels
Configuration of Exp path
enable
Router1(cfg-ip-expl-path)# index 1 next-label 16003
Explicit Path name Router1-Router3-AG1:
1: next-label 16003
Router1(cfg-ip-expl-path)# index 2 next-label 16006
Explicit Path name Router1-Router3-AG1:
1: next-label 16003
2: next-label 16006
Router1(cfg-ip-expl-path)# end
Tunnel configuration:
config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)# interface Tunnel1
Router1(config-if)# ip unnumbered Loopback1
Router1(config-if)# tunnel destination 6.6.6.6
Router1(config-if)# tunnel mode mpls traffic-eng
Router1(config-if)# tunnel mpls traffic-eng autoroute announce
Router1(config-if)# tunnel mpls traffic-eng path-option 1 explicit name Router1-Router3-AG1 segment-routing
Router1(config-if)# end
Router#
Verifying SR-TE Tunnels
Router1# show mpls traffic-eng tunnel tun1
Name: CS1_t1 (Tunnel1) Destination: 6.6.6.6
Status:
Admin: up Oper: up Path: valid Signalling: connected
path option 1, (SEGMENT-ROUTING) type explicit CS1-CS3-AG1 (Basis for Setup)
Config Parameters:
Bandwidth: 0 kbps (Global) Priority: 7 7 Affinity: 0x0/0xFFFF
Metric Type: TE (default)
Path Selection:
Protection: any (default)
Path-selection Tiebreaker:
Global: not set Tunnel Specific: not set Effective: min-fill (default)
Hop Limit: disabled [ignore: Explicit Path Option with all Strict Hops]
Cost Limit: disabled
Path-invalidation timeout: 10000 msec (default), Action: Tear
AutoRoute: enabled LockDown: disabled Loadshare: 0 [0] bw-based
auto-bw: disabled
Fault-OAM: disabled, Wrap-Protection: disabled, Wrap-Capable: No
Active Path Option Parameters:
State: explicit path option 1 is active
BandwidthOverride: disabled LockDown: disabled Verbatim: disabled
History:
Tunnel:
Time since created: 1 minutes, 2 seconds
Time since path change: 47 seconds
Number of LSP IDs (Tun_Instances) used: 14
Current LSP: [ID: 14]
Uptime: 47 seconds
Prior LSP: [ID: 1]
ID: path option unknown
Removal Trigger: unspecified
Tun_Instance: 14
Segment-Routing Path Info (isis level-1)
Segment0[Node]: 3.3.3.3, Label: 16003
Segment1[Node]: 6.6.6.6, Label: 16006
Router#
Configuring a Path Option for a TE Tunnel
The segment-routing keyword indicates that the specified path is programmed as an SR path.
Router(config)# interface tunnel 100
Router(config-if)# tunnel mpls traffic-eng path-option 1 explicit name foo segment-routing
Router(config-if)# tunnel mpls traffic-eng path-option 2 dynamic segment-routing
Router(config-if)# tunnel mpls traffic-eng path-option 3 segment-routing
When the path-option type for an operational SR tunnel is changed from SR to non-SR (for example, dynamic ), the existing forwarding entry of the tunnel is deleted.
Segment Routing can be enabled or disabled on an existing secondary or an in-use path-option. If the tunnel uses a signaled RSVP-TE explicit path-option and segment routing is enabled on that tunnel, the RSVP-TE LSP is torn, and the SR-TE LSP is instantiated using the same path-option. Conversely, if segment routing is disabled on a path-option that is in use by the primary LSP, the tunnel goes down intermittently and a new RSVP-TE LSP is signaled using the same explicit path.
If the “segment-routing” path-option is enabled on a secondary path-option (that is, not in use by the tunnel’s primary LSP), the tunnel is checked to evaluate if the newly specified SR-TE LSP path-option is valid and more favorable to use for the tunnel primary LSP.
Configuring SR Explicit Path Hops
For intra-area LSPs, the explicit path can be specified as a list of IP addresses:
Router(config)# ip explicit-path name foo
Router(config-ip-expl-path)# index 10 next-address 1.1.1.1 --> node address
Router(config-ip-expl-path)# index 20 next-address 12.12.12.2 --> link address
The explicit path can also be specified as segment-routing SIDs:
(config)# ip explicit-path name foo
(config-ip-expl-path)# index 10 next-label 20
The following SR-TE explicit path hops are supported:
-
IP addresses
-
MPLS labels
-
Mix of IP addresses and MPLS labels
Note |
IP addresses cannot be used after using the label in MIXED_PATH. |
Use Case: Segment Routing Traffic Engineering Basic Configuration
Consider the following topology:
Configuration at the headend router, R1:
interface GigabitEthernet0/02
ip address 100.101.1.1 255.255.255.0
ip router isis 1
isis network point-to-point
negotiation auto
mpls traffic-eng tunnels
router isis 1
net 49.0001.0010.0100.1001.00
is-type level-1
ispf level-1
metric-style wide
log-adjacency-changes
segment-routing mpls
segment-routing prefix-sid-map advertise-local
mpls traffic-eng router-id Loopback1
mpls traffic-eng level-1
Configuration at the tailend router, R6
interface GigabitEthernet0/02
ip address 100.101.1.1 255.255.255.0
ip router isis 1
isis network point-to-point
negotiation auto
mpls traffic-eng tunnels
router isis 1
net 49.0001.0060.0600.6006.00
ispf level-1
metric-style wide
log-adjacency-changes
segment-routing mpls
segment-routing prefix-sid-map advertise-local
mpls traffic-eng router-id Loopback1
mpls traffic-eng level-1
Explicit Path SR-TE Tunnel 1
Consider tunnel 1 based only on IP addresses:
ip explicit-path name IP_PATH1
next-address 2.2.2.2
next-address 3.3.3.3
next-address 6.6.6.6
!
interface Tunnel1
ip unnumbered Loopback1 poll point-to-point
tunnel mode mpls traffic-eng
tunnel destination 6.6.6.6
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng priority 6 6
tunnel mpls traffic-eng path-option 10 explicit name IP_PATH1 segment-routing
tunnel mpls traffic-eng path-selection metric igp
tunnel mpls traffic-eng 10
end
Explicit Path SR-TE Tunnel 2
Consider tunnel 2 based on node SIDs
ip explicit-path name IA_PATH
next-label 114
next-label 115
next-label 116
!
interface Tunnel2
ip unnumbered Loopback1 poll point-to-point
tunnel mode mpls traffic-eng
tunnel destination 6.6.6.6
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng priority 6 6
tunnel mpls traffic-eng bandwidth 10000 class-type 1
tunnel mpls traffic-eng path-option 10 explicit name NODE_PATH segment-routing
tunnel mpls traffic-eng path-selection metric igp
tunnel mpls traffic-eng 10
end
Explicit Path SR-TE Tunnel 3
Consider that tunnel 3 is based on a mix of IP addresses and label
ip explicit-path name MIXED_PATH enable
next-address 2.2.2.2
next-address 3.3.3.3
next-label 115
next-label 116
!
interface Tunnel3
ip unnumbered Loopback1 poll point-to-point
tunnel mode mpls traffic-eng
tunnel destination 6.6.6.6
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng priority 6 6
tunnel mpls traffic-eng path-option 10 explicit name MIXED_PATH segment-routing
tunnel mpls traffic-eng path-selection metric igp
tunnel mpls traffic-eng 10
Dynamic Path SR-TE Tunnel 4
Consider that tunnel 4is based on adjacency SIDs
interface Tunnel4
ip unnumbered Loopback1 poll point-to-point
tunnel mode mpls traffic-eng
tunnel destination 6.6.6.6
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng priority 6 6
tunnel mpls traffic-eng bandwidth 10000 class-type 1
tunnel mpls traffic-eng path-option 10 dynamic segment-routing
tunnel mpls traffic-eng path-selection metric igp
tunnel mpls traffic-eng 10
end
Dynamic Path SR-TE Tunnel 5
Consider that tunnel 5 is based on Node SIDs
interface Tunnel5
ip unnumbered Loopback1 poll point-to-point
tunnel mode mpls traffic-eng
tunnel destination 6.6.6.6
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng priority 6 6
tunnel mpls traffic-eng path-option 10 segment-routing
tunnel mpls traffic-eng path-selection metric igp
tunnel mpls traffic-eng 10
Verifying Configuration of the SR-TE Tunnels
Use the show mpls traffic-eng tunnels tunnel-number command to verify the configuration of the SR-TE tunnels.
Verifying Tunnel 1
Name: R1_t1 (Tunnel1) Destination: 6.6.6.6
Status:
Admin: up Oper: up Path: valid Signalling: connected
path option 10, (SEGMENT-ROUTING) type explicit IP_PATH (Basis for Setup)
Config Parameters:
Bandwidth: 0 kbps (Global) Priority: 6 6 Affinity: 0x0/0xFFFF
Metric Type: IGP (interface)
Path Selection:
Protection: any (default)
Path-invalidation timeout: 45000 msec (default), Action: Tear
AutoRoute: enabled LockDown: disabled Loadshare: 10 [200000000]
auto-bw: disabled
Fault-OAM: disabled, Wrap-Protection: disabled, Wrap-Capable: No
Active Path Option Parameters:
State: explicit path option 10 is active
BandwidthOverride: disabled LockDown: disabled Verbatim: disabled
History:
Tunnel:
Time since created: 6 days, 19 hours
Time since path change: 2 seconds
Number of LSP IDs (Tun_Instances) used: 1814
Current LSP: [ID: 1814]
Uptime: 2 seconds
Selection: reoptimization
Prior LSP: [ID: 1813]
ID: path option unknown
Removal Trigger: configuration changed
Tun_Instance: 1814
Segment-Routing Path Info (isis level-1)
Segment0[Node]: 4.4.4.4, Label: 114
Segment1[Node]: 5.5.5.5, Label: 115
Segment2[Node]: 6.6.6.6, Label: 116
Verifying Tunnel 2
Name: R1_t2 (Tunnel1) Destination: 6.6.6.6
Status:
Admin: up Oper: up Path: valid Signalling: connected
path option 10, (SEGMENT-ROUTING) type explicit IA_PATH (Basis for Setup)
Config Parameters:
Bandwidth: 0 kbps (Global) Priority: 6 6 Affinity: 0x0/0xFFFF
Metric Type: IGP (interface)
Path Selection:
Protection: any (default)
Path-invalidation timeout: 45000 msec (default), Action: Tear
AutoRoute: enabled LockDown: disabled Loadshare: 10 [200000000]
auto-bw: disabled
Fault-OAM: disabled, Wrap-Protection: disabled, Wrap-Capable: No
Active Path Option Parameters:
State: explicit path option 10 is active
BandwidthOverride: disabled LockDown: disabled Verbatim: disabled
History:
Tunnel:
Time since created: 6 days, 19 hours, 1 minutes
Time since path change: 1 seconds
Number of LSP IDs (Tun_Instances) used: 1815
Current LSP: [ID: 1815]
Uptime: 1 seconds
Prior LSP: [ID: 1814]
ID: path option unknown
Removal Trigger: configuration changed
Tun_Instance: 1815
Segment-Routing Path Info (isis level-1)
Segment0[ - ]: Label: 114
Segment1[ - ]: Label: 115
Segment2[ - ]: Label: 116
Verifying Tunnel 3
Name: R1_t3 (Tunnel1) Destination: 6.6.6.6
Status:
Admin: up Oper: up Path: valid Signalling: connected
path option 10, (SEGMENT-ROUTING) type explicit MIXED_PATH (Basis for Setup)
Config Parameters:
Bandwidth: 0 kbps (Global) Priority: 6 6 Affinity: 0x0/0xFFFF
Metric Type: IGP (interface)
Path Selection:
Protection: any (default)
Path-invalidation timeout: 45000 msec (default), Action: Tear
AutoRoute: enabled LockDown: disabled Loadshare: 10 [200000000]
auto-bw: disabled
Fault-OAM: disabled, Wrap-Protection: disabled, Wrap-Capable: No
Active Path Option Parameters:
State: explicit path option 10 is active
BandwidthOverride: disabled LockDown: disabled Verbatim: disabled
History:
Tunnel:
Time since created: 6 days, 19 hours, 2 minutes
Time since path change: 2 seconds
Number of LSP IDs (Tun_Instances) used: 1816
Current LSP: [ID: 1816]
Uptime: 2 seconds
Selection: reoptimization
Prior LSP: [ID: 1815]
ID: path option unknown
Removal Trigger: configuration changed
Tun_Instance: 1816
Segment-Routing Path Info (isis level-1)
Segment0[Node]: 2.2.2.2, Label: 112
Segment1[Node]: 3.3.3.3, Label: 113
Segment2[ - ]: Label: 115
Segment3[ - ]: Label: 116
Verifying Tunnel 4
Name: R1_t4 (Tunnel1) Destination: 6.6.6.6
Status:
Admin: up Oper: up Path: valid Signalling: connected
path option 10, (SEGMENT-ROUTING) type dynamic (Basis for Setup, path weight 30)
Config Parameters:
Bandwidth: 0 kbps (Global) Priority: 6 6 Affinity: 0x0/0xFFFF
Metric Type: IGP (interface)
Path Selection:
Protection: any (default)
Path-invalidation timeout: 45000 msec (default), Action: Tear
AutoRoute: enabled LockDown: disabled Loadshare: 10 [200000000]
auto-bw: disabled
Fault-OAM: disabled, Wrap-Protection: disabled, Wrap-Capable: No
Active Path Option Parameters:
State: dynamic path option 10 is active
BandwidthOverride: disabled LockDown: disabled Verbatim: disabled
History:
Tunnel:
Time since created: 6 days, 19 hours
Time since path change: 2 seconds
Number of LSP IDs (Tun_Instances) used: 1813
Current LSP: [ID: 1813]
Uptime: 2 seconds
Prior LSP: [ID: 1806]
ID: path option unknown
Removal Trigger: configuration changed
Tun_Instance: 1813
Segment-Routing Path Info (isis level-1)
Segment0[Link]: 192.168.2.1 - 192.168.2.2, Label: 17
Segment1[Link]: 192.168.4.2 - 192.168.4.1, Label: 25
Segment2[Link]: 192.168.8.1 - 192.168.8.2, Label: 300
Verifying Tunnel 5
Name: R1_t5 (Tunnel1) Destination: 6.6.6.6
Status:
Admin: up Oper: up Path: valid Signalling: connected
path option 10, type segment-routing (Basis for Setup)
Config Parameters:
Bandwidth: 0 kbps (Global) Priority: 6 6 Affinity: 0x0/0xFFFF
Metric Type: IGP (interface)
Path Selection:
Protection: any (default)
Path-invalidation timeout: 45000 msec (default), Action: Tear
AutoRoute: enabled LockDown: disabled Loadshare: 10 [200000000]
auto-bw: disabled
Fault-OAM: disabled, Wrap-Protection: disabled, Wrap-Capable: No
Active Path Option Parameters:
State: segment-routing path option 10 is active
BandwidthOverride: disabled LockDown: disabled Verbatim: disabled
History:
Tunnel:
Time since created: 6 days, 19 hours, 4 minutes
Time since path change: 14 seconds
Number of LSP IDs (Tun_Instances) used: 1817
Current LSP: [ID: 1817]
Uptime: 14 seconds
Selection: reoptimization
Prior LSP: [ID: 1816]
ID: path option unknown
Removal Trigger: configuration changed
Tun_Instance: 1817
Segment-Routing Path Info (isis level-1)
Segment0[Node]: 6.6.6.6, Label: 116