Segment Routing ECMP for ISIS or OSPF
Overview
Segment Routing (SR) is a source-based routing technique where you can specify a route in a network through which a packet is sent. The path that a particular packet needs to traverse is represented by one or more segments (nodes and links).
Equal Cost Multipath (ECMP) refers to single-hop, equal-cost links between adjacent nodes with a forwarding mechanism for routing traffic along multiple paths of equal cost. For ECMP enabled devices, OcNOS uses Forwarding Plane Load Balancing and installs the maximum number of ECMP routes supported by the kernel. This allows for load balancing to be performed with more than one next-hop to reach a destination.
SR with ECMP support for Intermediate System to Intermediate System (ISIS) and Open Shortest Path First (OSPF), selects all the valid equal-cost next-hop peers of an IP prefix and creates ECMP Incoming Label Maps (ILM) and FEC-to-NHLFE (FTN) entries for that prefix with all the IS-IS/OSPF SR next-hops in the forwarding plane.
Feature Characteristics
The main characteristics of SR ECMP are as follows:
• Distributes packets across multiple logical paths (LSP) carrying qualified traffic over MPLS underlay using SR as a transport. The traffic is distributed based on a collection of such LSPs, known as an ECMP set.
• Uses an internal hashing algorithm by the forwarding plane to distribute traffic among multiple next-hops, assigning the traffic flow to a particular next-hop.
• When TI-LFA is enabled, IGP adds the ECMP next-hops as primary and computes and adds a backup for each of the ECMP next-hops in the FTN and ILM entry of the prefix.
• When TI-LFA is disabled, IGP computes and adds all the ECMP next-hops in the FTN and ILM entry of the prefix.
Note: Load balancing on ECMP next-hops does not guarantee equal distribution of traffic across the ECMP paths. Load balancing in the hardware is done using hashing of a combination of headers in the traffic streams, such as src, dst mac, ip pair and so on. The unique combination of such headers may result in the same hash which in turn results in the same ECMP next-hop. This causes unequal distribution of traffic within the ECMP next-hop interfaces.
Benefits
The key benefits of SR ECMP are as follows:
• Distributes traffic across multiple equal-cost paths, effectively balancing the load, optimizing resource utilization throughout the network, and preventing congestion.
• Reroutes traffic to alternative equal-cost paths in case of a link or node failure, thus reducing downtime and maintaining continuous service.
• Offers redundancy by utilizing multiple paths such that if one path becomes unavailable, traffic is redirected to other paths seamlessly, bolstering network resilience and reliability, when TI-LFA is enabled.
Prerequisites
The SR ECMP feature can be enabled on the following devices:
• OcNOS devices that support ISIS/OSPF Segment Routing.
• OcNOS devices that support MPLS services such as VPLS,VPWS,L3VPN,6PE,6VPE and EVPN (ELINE,ELAN,ETREE).
Configuration
The following configuration enables ECMP with ISIS-SR for L3VPN and EVPN ELINE services.
Topology
This topology includes Edge nodes - DUT1 and DUT2, Intermediate nodes - DUT2, DUT3, DUT4, and DUT5 and Target Groups 1 and 2.
The ECMP Label Switched Path (LSP) derived from the above topology is as follows:
Source | Destination | ECMP | Path | Cost |
---|
DUT1 | DUT2 | YES | DUT1-DUT2 | 30 |
| | | DUT1-DUT4-DUT2 | 30 |
DUT1 | DUT6 | YES | DUT1-DUT2-DUT3-DUT6 | 1040 |
| | | DUT1-DUT4-DUT5-DUT6 | 1040 |
To configure SR ECMP functionality on PE nodes with ISIS as IGP, follow the steps mentioned below:
1. Configure loop-back interface.
1. Access interface configuration mode for the loopback interface (interface lo).
2. Assign an IPv4 address to the loopback interface using the IPv4 address command followed by the desired IPv4 address and subnet mask (ipv6 address 10.84.166.1/32).
3. Assign appropriate prefix-sid index for the loopback interface (prefix-sid index 100 no-php).
4. Configure IS-IS for IPv4 on the loopback interface using the ip router isis command, specifying the IS-IS process ID (ip router isis 1).
DUT1(config)#interface lo
DUT1(config-if)# ip address 127.0.0.1/8
DUT1(config-if)# ip address 10.84.166.1/32 secondary
DUT1(config-if)# ipv6 address ::1/128
DUT1(config-if)# prefix-sid index 100 no-php
DUT1(config-if)# ip router isis 1
DUT1(config-if)# exit
2. Configure network interface.
1. Access interface configuration mode for the desired network interface (interface xe9 and xe7).
2. Assign an IPv4 address to the loopback interface using the ipv4 address command followed by the desired IPv4 address and subnet mask (ip address 10.11.22.1/30).
3. Configure the MTU for the interface (mtu 9216).
4. Configure IS-IS for IPv4 on the interface using the IP router ISIS command, specifying the IS-IS process ID (ip router isis 1).
DUT1(config)#interface xe9
DUT1(config-if)# load-interval 30
DUT1(config-if)# ip address 10.11.22.1/30
DUT1(config-if)# mtu 9216
DUT1(config-if)# label-switching
DUT1(config-if)# ip router isis 1
DUT1(config-if)#
DUT1(config-if)#exit
3. In global configuration mode, perform the following as shown in the configuration snapshots below:
1. Configure ISIS Settings
2. Perform the BGP Configuration
3. Create IP VRF:
4. Define the L3VPN access intf configuration and IP VRF mapping.
5. Create MAC VRF.
6. Define the ELINE instance and with the MAC VRF Mapping and access intf configuration
7. Enable ECMP for SR entities for FTN as its PE Edge node using the command mpls ftn-ecmp sr
Note: Use ECMP SR for ILM in case of P transit nodes.
Configuration Snapshot
Edge Nodes (DUT1 and DUT6)
DUT1#sh run
!
! Software version: UFI_S9510-30XC-OcNOS-SP-PLUS-6.6.0.99-Alpha 10/ 07/2024 21:37:20
!
! Last configuration change at 00:10:29 UTC Thu Nov 16 2023 by root
!
feature netconf-ssh vrf management
feature netconf-tls vrf management
no feature netconf-ssh
no feature netconf-tls
service password-encryption
!
logging console 5
logging level all 5
snmp-server enable traps link linkDown
snmp-server enable traps link linkUp
!
hardware-profile statistics voq-full-color enable
hardware-profile statistics cfm-ccm enable
!
qos enable
!
mpls ilm-ecmp sr
mpls ftn-ecmp sr
!
hostname DUT1
no ip domain-lookup
ip domain-lookup vrf management
tfo Disable
errdisable cause stp-bpdu-guard
no feature telnet vrf management
no feature telnet
feature ssh vrf management
no feature ssh
feature dns relay
ip dns relay
ipv6 dns relay
feature ntp vrf management
ntp enable vrf management
!
evpn mpls enable
!
evpn mpls irb
!
ip vrf management
!
ip vrf vrf701
rd 10:701
route-target both 10:701
!
mac vrf ELINE_DUT1_DUT6_501
rd 10.84.166.1:501
route-target both 501:501
!
evpn mpls vtep-ip-global 10.84.166.1
!
evpn mpls id 501 xconnect target-mpls-id 1501
host-reachability-protocol evpn-bgp ELINE_DUT1_DUT6_501
!
router ldp
targeted-peer ipv4 10.84.166.6
exit-targeted-peer-mode
!
interface ce0
!
interface ce1
!
interface eth0
ip vrf forwarding management
ip address dhcp
!
interface lo
ip address 127.0.0.1/8
ip address 10.84.166.1/32 secondary
ipv6 address ::1/128
prefix-sid index 100 no-php
ip router isis 1
!
interface lo.management
ip vrf forwarding management
ip address 127.0.0.1/8
ipv6 address ::1/128
!
interface xe2
!
interface xe3
!
interface xe4
!
interface xe5
!
interface xe6
!
interface xe7
speed 10g
load-interval 30
ip address 10.11.44.1/30
mtu 9216
label-switching
ip ospf network point-to-point
ip router isis 1
!
interface xe8
!
interface xe9
load-interval 30
ip address 10.11.22.1/30
mtu 9216
label-switching
ip router isis 1
isis wide-metric 20
!
interface xe10
!
interface xe11
!
interface xe12
!
interface xe13
!
interface xe14
mtu 9216
!
interface xe14.501 switchport
description ELINE_DUT1_DUT6_501
encapsulation dot1q 501
load-interval 30
mtu 9216
access-if-evpn
map vpn-id 501
!
interface xe14.701
encapsulation dot1q 701
load-interval 30
ip vrf forwarding vrf701
ip address 100.7.1.1/24
mtu 9216
!
interface xe15
!
interface xe16
!
interface xe17
!
interface xe18
!
interface xe19
!
interface xe20
!
interface xe21
!
interface xe22
!
interface xe23
!
interface xe24
!
interface xe25
!
interface xe26
!
interface xe27
!
interface xe28
!
interface xe29
!
exit
!
router isis 1
is-type level-1
metric-style wide
mpls traffic-eng router-id 10.84.166.1
mpls traffic-eng level-1
capability cspf
bfd all-interfaces
net 49.0001.0000.0001.0011.00
isis segment-routing global block 20000 23000
segment-routing mpls
!
router bgp 65010
bgp router-id 10.84.166.1
neighbor 10.84.166.6 remote-as 65010
neighbor 10.84.166.6 update-source lo
!
address-family vpnv4 unicast
neighbor 10.84.166.6 activate
exit-address-family
!
address-family l2vpn evpn
neighbor 10.84.166.6 activate
exit-address-family
!
address-family ipv4 vrf vrf701
redistribute connected
neighbor 100.7.1.2 remote-as 101
neighbor 100.7.1.2 activate
exit-address-family
!
exit
!
!
end
DUT1#
DUT1#
Transit Nodes (DUT2, DUT3, DUT4, and DUT5)
DUT2#
DUT2#sh run
!
! Software version: EC_AS5916-54X-OcNOS-SP-MPLS-6.5.3.86-Alpha 10/1 3/2024 14:39:27
!
! Last configuration change at 13:12:58 UTC Mon Oct 14 2024 by ocno s
!
feature netconf-ssh vrf management
feature netconf-tls vrf management
no feature netconf-ssh
no feature netconf-tls
service password-encryption
!
logging console 5
logging level all 5
snmp-server enable traps link linkDown
snmp-server enable traps link linkUp
!
hardware-profile statistics ingress-acl enable
!
qos enable
!
mpls ilm-ecmp sr
!
hostname DUT2
no ip domain-lookup
ip domain-lookup vrf management
tfo Disable
errdisable cause stp-bpdu-guard
no feature telnet vrf management
no feature telnet
feature ssh vrf management
no feature ssh
feature dns relay
ip dns relay
ipv6 dns relay
feature ntp vrf management
ntp enable vrf management
!
ip vrf management
!
interface ce0
load-interval 30
ip address 10.22.55.1/30
mtu 9216
label-switching
ip ospf network point-to-point
ip router isis 1
!
interface ce1
!
interface ce2
!
interface ce3
!
interface ce4
!
interface ce5
!
interface eth0
ip vrf forwarding management
ip address 192.168.3.10/24
!
interface lo
ip address 127.0.0.1/8
ip address 10.84.166.2/32 secondary
ipv6 address ::1/128
prefix-sid index 200 no-php
ip router isis 1
!
interface lo.management
ip vrf forwarding management
ip address 127.0.0.1/8
ipv6 address ::1/128
!
interface xe0
load-interval 30
ip address 10.22.44.1/30
mtu 9216
label-switching
ip ospf network point-to-point
ip router isis 1
!
interface xe1
!
interface xe2
!
interface xe3
!
interface xe4
!
interface xe5
!
interface xe6
load-interval 30
ip address 10.11.22.2/30
mtu 9216
label-switching
ip ospf network point-to-point
ip router isis 1
isis wide-metric 20
!
interface xe7
!
interface xe8
load-interval 30
ip address 10.22.33.1/30
mtu 9216
label-switching
ip ospf network point-to-point
ip router isis 1
!
interface xe9
!
interface xe10
!
interface xe11
!
interface xe12
!
interface xe13
!
interface xe14
!
interface xe15
!
interface xe16
!
interface xe17
!
interface xe18
!
interface xe19
!
interface xe20
!
interface xe21
!
interface xe22
!
interface xe23
!
interface xe24
!
interface xe25
!
interface xe26
!
interface xe27
!
interface xe28
!
interface xe29
!
interface xe30
!
interface xe31
!
interface xe32
!
interface xe33
!
interface xe34
!
interface xe35
!
interface xe36
!
interface xe37
!
interface xe38
!
interface xe39
!
interface xe40
!
interface xe41
!
interface xe42
!
interface xe43
!
interface xe44
!
interface xe45
!
interface xe46
!
interface xe47
!
exit
!
router isis 1
is-type level-1-2
metric-style wide
mpls traffic-eng router-id 10.84.166.2
mpls traffic-eng level-1
mpls traffic-eng level-2
capability cspf
bfd all-interfaces
net 49.0001.0000.0001.0022.00
redistribute isis level-2 into level-1
isis segment-routing global block 20000 23000
segment-routing mpls
!
ip route vrf management 0.0.0.0/0 192.168.3.1 eth0
!
!
end
DUT2#
Validation
Validation of SR-ECMP on DUT1[Edge Router]
Here are the show outputs that display the ISISv4 neighbour and routing information with ECMP for DUT1.
DUT1#sh clns neighbors
Total number of L1 adjacencies: 2
Total number of L2 adjacencies: 0
Total number of adjacencies: 2
Tag 1: VRF : default
System Id Interface SNPA State Holdtime Type Protocol
0000.0001.0044 xe7 b86a.97c8.3dcb Up 19 L1 IS-IS
0000.0001.0022 xe9 80a2.352b.7008 Up 19 L1 IS-IS
DUT1#
DUT1#sh clns neighbors detail
Total number of L1 adjacencies: 2
Total number of L2 adjacencies: 0
Total number of adjacencies: 2
Tag 1: VRF : default
System Id Interface SNPA State Holdtime Type Protocol
0000.0001.0044 xe7 b86a.97c8.3dcb Up 21 L1 IS-IS
L1 Adjacency ID: 1
L2 Adjacency ID: 2
Uptime: 00:04:27
Area Address(es): 49.0001
IP Address(es): 10.11.44.2
Level-1 Protocols Supported: IPv4
Bidirectional Forwarding Detection is enabled
Adjacency advertisement: Advertise
Adjacency SID: 26880, ILM ID: 3
0000.0001.0022 xe9 80a2.352b.7008 Up 21 L1 IS-IS
L1 Adjacency ID: 1
L2 Adjacency ID: 2
Uptime: 00:04:27
Area Address(es): 49.0001
IP Address(es): 10.11.22.2
Level-1 Protocols Supported: IPv4
Bidirectional Forwarding Detection is enabled
Adjacency advertisement: Advertise
Adjacency SID: 26881, ILM ID: 4
DUT1#
DUT1#sh ip route 10.84.166.6/32
VRF: Default, Routing entry for 10.84.166.6/32
Known via "isis", distance 115, metric 1040, External Route Tag: 0, installed 00:22:23, best
Last update 00:22:23 ago
* 10.11.22.2, via xe9
* 10.11.44.2, via xe7
DUT1#
The following show outputs displays the validation for L3VPN.
DUT1#sh ip bgp vpnv4 all neighbors
BGP neighbor is 10.84.166.6, remote AS 65010, local AS 65010, internal link, peer index: 4
BGP version 4, local router ID 10.84.166.1, remote router ID 10.84.166.6
BGP state = Established, up for 01:18:17
Last read 00:00:06, hold time is 90, keepalive interval is 30 seconds
Neighbor capabilities:
Route refresh: advertised and received (old and new)
Address family VPNv4 Unicast: advertised and received
Address family L2VPN EVPN: advertised and received
Received 351 messages, 0 notifications, 0 in queue
Sent 333 messages, 1 notifications, 0 in queue
Route refresh request: received 0, sent 0
Minimum time between advertisement runs is 5 seconds
Update source is lo
For address family: VPNv4 Unicast BGP table version 9, neighbor version 9
Index 1, Offset 0, Mask 0x2
AIGP is enabled
Community attribute sent to this neighbor (both)
Large Community attribute sent to this neighbor
1 accepted prefixes
1 announced prefixes
For address family: L2VPN EVPN BGP table version 6, neighbor version 6
Index 1, Offset 0, Mask 0x2
Community attribute sent to this neighbor (both)
Large Community attribute sent to this neighbor
1 accepted prefixes
Accepted AD:1 MACIP:0 MCAST:0 ESI:0 PREFIX:0
1 announced prefixes
Connections established 3; dropped 2
Local host: 10.84.166.1, Local port: 179
Foreign host: 10.84.166.6, Foreign port: 40371
TCP MSS: (0), Advertise TCP MSS: (1460), Send TCP MSS: (1460), Receive TCP MSS: (536)
Sock FD : (29)
Nexthop: 10.84.166.1 lo
Nexthop global: :: lo
Nexthop local: :: lo
BGP connection: non shared networkLast Reset: 01:19:41, due to Hold Timer Expired (Notification sent)
Notification Error Message: (Hold Timer Expired/No sub-error code)
DUT1#sh mpls vrf-forwarding-table
Codes: > - installed FTN, * - selected FTN, p - stale FTN, ! - using backup, B - BGP FTN
(m) - Service mapped over multipath transport
(e) - Service mapped over LDP ECMP or SR ECMP
Code FEC FTN-ID VRF-ID Nhlfe-ID Pri Out-Label Out-Intf Nexthop UpTime
B> 200.7.1.0/24 1 2 51 Yes 25600 - 10.84.166.6 00:05:18
DUT1#
The following show output displays the validation for EVPN ELINE.
DUT1#show bgp l2vpn evpn summary
BGP router identifier 10.84.166.1, local AS number 65010
BGP table version is 6
1 BGP AS-PATH entries
0 BGP community entries
Neighbor V AS MsgRcv MsgSen TblVer InQ OutQ Up/Down State/PfxRcd AD MACIP MCAST ESI PREFIX-ROUTE
10.84.166.6 4 65010 353 336 6 0 0 01:19:10 1 1 0 0 0 0
Total number of neighbors 1
Total number of Established sessions 1
DUT1#sh evpn mpls xconnect
EVPN Xconnect Info
========================
AC-AC: Local-Cross-connect
AC-NW: Cross-connect to Network
AC-UP: Access-port is up
AC-DN: Access-port is down
NW-UP: Network is up
NW-DN: Network is down
NW-SET: Network and AC both are up
Local Remote Connection-Details
================================ ============ ===================================================================================
VPN-ID EVI-Name MTU VPN-ID Source Destination PE-IP MTU Type NW-Status
================================ ============ ===================================================================================
501 ---- 9216 1501 xe14.501 --- Single Homed Port --- 10.84.166.6 9216 AC-NW NW-SET
Total number of entries are 1
DUT1#sh evpn mpls xconnect tunnel label
EVPN-MPLS Network tunnel labels
(*) in Policy - tunnel-policy inherited from mac-vrf
(e) - Service mapped over MPLS Multipath/ECMP
================+===========+=========+=========+===============+=========+=========+============+=========+============+=========
Local Remote Local Remote MPLS-Multipath Underlay
Destination Status VPWS-ID VPWS-ID Policy UC-Label UC-Label Grp-Name NHLFE-ix NW-Intf NW-Label
================+===========+=========+=========+===============+=========+=========+============+=========+============+=========
10.84.166.6 Installed 501 1501 -- 26240 26240 -- 40 NA(e) NA(e)
Total number of entries are 1
DUT1#
DUT1#sh evpn mpls xconnect tunnel
EVPN-MPLS Network tunnel Entries
Source Destination Status Up/Down Update local-evpn-id remote-evpn-id
========================================================================================================
10.84.166.1 10.84.166.6 Installed 00:08:06 00:08:06 501 1501
Total number of entries are 1
DUT1#
The following show output displays the ECMP validation for ISIS-SR.
This command displays the ILM-ID, FTN-ID, In-Label & Out-Label for all the IS-IS routes which have ILM/FTN entry installed. For the ECMP prefix 10.84.166.6//32, only one ILM/FTN entry will be installed, but Out-Label will be separate for each nexthop.2
DUT1#sh ip isis route prefix 10.84.166.6/32 detail
Codes: C - connected, E - external, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, D - discard, e - external metric
** - invalid
Tag 1: VRF : default
Destination Metric ILM-ID FTN-ID In-Label Next-Hop Interface Tag Out-Label
ia 10.84.166.6/32 1040 9 5 20600 10.11.44.2 xe7 0 20600
10.11.22.2 xe9 0 20600
Src: 0000.0001.0022 Ifindex 10016
Src: 0000.0001.0044 Ifindex 10014
DUT1#
This command displays In-Label and Out-Label of all next-hops of the FEC.
DUT1#sh isis segment-routing label detail
Tag 1 Segment-Routing: Label Table
FEC In-Label Out-Label Out-Intf Nexthop Dependent Tunnels
10.84.166.4/32 20400 20400 xe7 10.11.44.2
10.84.166.2/32 20200 20200 xe7 10.11.44.2
20200 xe9 10.11.22.2
10.84.166.1/32 20100 N/A lo 127.0.0.1
10.84.166.3/32 20300 20300 xe7 10.11.44.2
20300 xe9 10.11.22.2
10.11.44.2/32 26880 3 xe7 10.11.44.2
10.84.166.5/32 20500 20500 xe7 10.11.44.2
20500 xe9 10.11.22.2
10.84.166.6/32 20600 20600 xe7 10.11.44.2
20600 xe9 10.11.22.2
10.11.22.2/32 26881 3 xe9 10.11.22.2
DUT1#
Validate ECMP FTN, For the ECMP prefix 10.84.166.6/32, a single FTN entry is created with all the ECMP nexthops.
DUT1#show mpls forwarding-table 10.84.166.6/32
Codes: > - installed FTN, * - selected FTN, p - stale FTN, ! - using backup
B - BGP FTN, K - CLI FTN, (t) - tunnel, P - SR Policy FTN, (b) - bypass,
L - LDP FTN, R - RSVP-TE FTN, S - SNMP FTN, I - IGP-Shortcut,
U - unknown FTN, O - SR-OSPF FTN, i - SR-ISIS FTN, k - SR-CLI FTN
(m) - FTN mapped over multipath transport, (e) - FTN is ECMP
FTN-ECMP LDP: Disabled, SR: Enabled
Code FEC FTN-ID Nhlfe-ID Tunnel-ID Pri Out-Label Out-Intf ELC Nexthop UpTime
i> 10.84.166.6/32 5 40 - (e) - - - - 00:23:09
38 0 Yes 20600 xe7 No 10.11.44.2 -
17 0 Yes 20600 xe9 No 10.11.22.2 -
DUT1#
Validate ECMP FTN, For the ECMP prefix 10.84.166.6/32, a single FTN entry is created with all the ECMP nexthops. For each nexthop, a cross-connect is created
DUT1#sh mpls ftn-table 10.84.166.6/32
Primary FTN entry with FEC: 10.84.166.6/32, id: 5, row status: Active, Tunnel-Policy: N/A, State: Installed
CreateTime: 00:23:22, UpTime: 00:23:22, LastUpdate: N/A
Owner: ISIS-SR, distance: 115, Action-type: Redirect to LSP, Exp-bits: 0x0, Incoming DSCP: none
Tunnel id: 0, Protected LSP id: 0, LSP-type: Primary, Description: N/A, , Color: 0
Cross connect ix: 8, in intf: - in label: 0 out-segment ix: 38 refcount: 1
Owner: ISIS-SR, Persistent: No, Admin Status: Up, Oper Status: Up
Out-segment with ix: 38, owner: ISIS-SR, Stale: NO, refcount: 6, out intf: xe7, out label: 20600
Nexthop addr: 10.11.44.2 cross connect ix: 8, op code: Push
Cross connect ix: 8, in intf: - in label: 0 out-segment ix: 17 refcount: 1
Owner: ISIS-SR, Persistent: No, Admin Status: Up, Oper Status: Up
Out-segment with ix: 17, owner: ISIS-SR, Stale: NO, refcount: 5, out intf: xe9, out label: 20600
Nexthop addr: 10.11.22.2 cross connect ix: 8, op code: Push
Dependent service info (count 1):
[CONFIRM_VRF] ftn_ix 1 owner BGP prefix 200.7.1.0/24 nhlfe_ix 51 vrf 2
DUT1#
Validation of SR-ECMP on DUT2[Transit Router]
This command displays the ILM-ID, FTN-ID, In-Label & Out-Label for all the IS-IS routes which have ILM/FTN entry installed. For the ECMP prefix 10.84.166.6//32, only one ILM entry will be installed, but Out-Label will be separate for each next-hop.
DUT1#sh ip isis route prefix 10.84.166.6/32 detail
Codes: C - connected, E - external, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, D - discard, e - external metric
** - invalid
Tag 1: VRF : default
Destination Metric ILM-ID FTN-ID In-Label Next-Hop Interface Tag Out-Label
ia 10.84.166.6/32 1040 9 5 20600 10.11.44.2 xe7 0 20600
10.11.22.2 xe9 0 20600
Src: 0000.0001.0022 Ifindex 10016
Src: 0000.0001.0044 Ifindex 10014
DUT1#
For the ECMP prefix 10.84.166.6/32, a single ILM entry is created with all the ECMP next-hops.
DUT2#sh mpls ilm-table 10.84.166.6/32
Codes: > - installed ILM, * - selected ILM, p - stale ILM, ! - using backup
K - CLI ILM, T - MPLS-TP, s - Stitched ILM
S - SNMP, L - LDP, R - RSVP, C - CRLDP
B - BGP , K - CLI , V - LDP_VC, I - IGP_SHORTCUT
O - OSPF/OSPF6 SR, i - ISIS SR, k - SR CLI
P - SR Policy, U - unknown
ILM-ECMP LDP: Disabled, SR: Enabled
Code FEC/VRF/L2CKT ILM-ID In-Label Out-Label In-Intf Out-Intf/VRF Nexthop pri UpTime
i> 10.84.166.6/32 8 20600 20600 N/A ce0 10.22.55.2 Yes 00:25:39
20600 20600 N/A xe8 10.22.33.2 Yes -
DUT2#
CLI Commands
The Segment Routing ECMP feature introduces the following configuration commands.
mpls ilm-ecmp sr
Use this command to enable programming of SR ILM entry as ECMP in hardware. This command applies only to data-plane and IGP ECMP calculation does not depend on this CLI. Only if this command is enabled, SR ILM entry will be installed as ECMP entry in hardware with all the ECMP next-hops.
Use no parameter of this command to disable programming of SR ILM entry as ECMP in hardware. When no parameter of this command is executed, the installed SR ECMP ILM entry will be changed to SR non-ECMP ILM entry.
Command Syntax
mpls ilm-ecmp sr
no mpls ilm-ecmp sr
Parameters
None
Default
Disabled
Command Mode
Configure mode
Applicability
Introduced the mpls ilm-ecmp sr parameter in the OcNOS version 6.5.3.
Example
The following sequence of commands is used to enable programming of SR ILM entry as ECMP in hardware.
#configure terminal
(config)#mpls ilm-ecmp sr
(config)#
mpls ftn-ecmp sr
Use this command to enable programming of SR FTN entry as ECMP in hardware. This command applies only to data-plane and IGP ECMP calculation doesn't depend on this CLI. Only if this command is enabled, SR FTN entry will be installed as ECMP entry in hardware with all the ECMP nexthops.
Use no parameter of this command to disable programming of SR FTN entry as ECMP in hardware. When no parameter of this command is executed, the installed SR ECMP FTN entry will be changed to SR non-ECMP ILM entry.
Command Syntax
mpls ftn-ecmp sr
no mpls ftn-ecmp sr
Parameters
None
Default
Disabled
Command Mode
Configure mode
Applicability
Introduced the mpls ftn-ecmp sr parameter in the OcNOS version 6.5.3.
Example
The following sequence of commands is used to enable programming of SR FTN entry as ECMP in hardware.
#configure terminal
(config)#mpls ftn-ecmp sr
(config)#
show ip isis route prefix A.B.C.D/M
Use this command to display the ISIS routing table of the specified IPv4 prefix.
Command Syntax
show ip isis (WORD|) route ((prefix A.B.C.D/M)|)
Parameters
WORD | Information for a single ISIS area. |
Prefix | Prefix. |
A.B.C.D/M | IPv4 prefix. |
Command Mode
Privileged exec mode
Applicability
This command was introduced in OcNOS version 6.5.3.
Example
The following example displays the ISIS routing table of the specified IPv4 prefix.
#show ip isis route prefix 10.10.10.10/32
Codes: C - connected, E - external, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, D - discard, e - external metric
** - invalid
Tag 100: VRF : default
Destination Metric Next-Hop Interface Tag
L1 10.10.10.10/32 110 2.15.1.15 xe5 0
2.10.1.10 xe11 0
#
show ip isis route detail
Use this command to display the MPLS information (ILM-ID, FTN-ID, In-label & Out-label) of the specified IS-IS IPv4 route or all the IS-IS IPv4 routes.
Command Syntax
show ip isis (WORD|) route ((prefix A.B.C.D/M)|) detail
Parameters
WORD | Information for a single ISIS area. |
Prefix | Prefix. |
A.B.C.D/M | IPv4 prefix. |
Command Mode
Privileged exec mode
Applicability
This command was introduced in OcNOS version 6.5.3.
Example
The following example displays the MPLS information of the specified prefix.
#show ip isis route prefix 10.10.10.10/32 detail
Codes: C - connected, E - external, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, D - discard, e - external metric
** - invalid
Tag 100: VRF : default
Destination Metric ILM-ID FTN-ID In-Label Next-Hop
Interface Tag Out-Label
L1 10.10.10.10/32 110 3 1 16010 2.15.1.15
xe5 0 16010
2.10.1.10
xe11 0 16010
Src: 0000.0000.0010 Ifindex 10011
Src: 0000.0000.0010 Ifindex 10005
#
When the command is executed without prefix parameter, MPLS information of all the IS-IS prefixes are displayed
#show ip isis route detail
Codes: C - connected, E - external, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, D - discard, e - external metric
** - invalid
Tag 100: VRF : default
Destination Metric ILM-ID FTN-ID In-Label Next-Hop
Interface Tag Out-Label
C 2.2.2.2/32 10 1 -- 16002 --
lo 0 --
Src: Connected IS-IS Interface
C 2.10.1.0/24 100 -- -- -- --
xe11 0 --
Src: Connected IS-IS Interface
C 2.15.1.0/24 50 -- -- -- --
xe5 0 --
Src: Connected IS-IS Interface
L1 10.10.10.10/32 110 3 1 16010 2.15.1.15
xe5 0 16010
2.10.1.10
xe11 0 16010
Src: 0000.0000.0010 Ifindex 10011
Src: 0000.0000.0010 Ifindex 10005
L1 10.15.1.0/24 100 -- -- -- 2.15.1.15
xe5 0 --
Src: 0000.0000.0015 Ifindex 10005
L1 15.15.15.15/32 60 5 2 16015 2.15.1.15
xe5 0 16015
Src: 0000.0000.0015 Ifindex 10005
#
show ip isis route tilfa prefix A.B.C.D/M
Use this command to display the MPLS information (SR outgoing label, PQ node, Backup outgoing label, Bypass trunk ID, Backup out-interface & Protection-type) of all ECMP next-hops of the specified IPv4 prefix. This is an enhancement to the existing command show ip isis route tilfa to insert prefix as an optional parameter.
Command Syntax
show ip isis route (WORD|) tilfa ((prefix A.B.C.D/M)|)
Parameters
WORD | Information for a single ISIS area. |
Prefix | Prefix. |
A.B.C.D/M | IPv4 prefix. |
Command Mode
Privileged exec mode
Applicability
This command was introduced in OcNOS version 6.5.3.
Example
#show ip isis route tilfa prefix 10.10.10.10/32
Tag : 100 VRF : default
Codes : L1 - IS-IS level-1, L2 - IS-IS level-2,
C - Connected Routes, ia - IS-IS inter area
10.10.10.10/32
Route type: L1, FTN-ix :1 ILM-ix :3
SR Incoming Label : 16010
Primary Path Nexthop : 2.10.1.10, xe11
SR outgoing Label : 16010
PQ node : 15.15.15.15
Backup outgoing Label: 16010
Bypass_trunk id : 2202
Backup out interface : xe5
Protection Type : Link Protecting
Primary Path Nexthop : 2.15.1.15, xe5
SR outgoing Label : 16010
PQ node : 10.10.10.10
Backup outgoing Label: 3
Bypass_trunk id : 2201
Backup out interface : xe11
Protection Type : Node Protecting
Trunk : 2201 :10.10.10.10_nh_10011_ALG0 FTN-ix : 3 ref_cnt:3
Number Of outgoing label : 1
16010
Nexthop address : 2.10.1.10
#
show isis tilfa pq (WORD|)
Use this command to display the PQ nodes of all the ECMP next-hops of the specified vertex. This is an enhancement to the isis tilfa pq command to insert system-id/hostname as an optional parameter.
Command Syntax
show isis (WORD|) tilfa pq (WORD|)
Parameters
WORD | Information for a single ISIS area. |
WORD | System-ID xxxx.xxxx.xxxx or hostname. |
Command Mode
Privileged exec mode
Applicability
This command was introduced in OcNOS version 6.5.3.
Example
When the command is executed by specifying system-id parameter:
#show isis tilfa pq 7010.00-00
Tag 100: Level-1 Link State Database:
Node: 7010.00-00
Interface xe5
P node: 0000.0000.0010 primary dist:100
P node: 0000.0000.0015 primary dist:150
Q node: 0000.0000.0010
Q node: 0000.0000.0015
Node Protecting P Nodes
P node: 0000.0000.0010 primary dist:100
PQ Node: 7010.00-00 backup dist:100
PQ Node (Node Protection): 7010.00-00 backup dist:100
Interface xe11
P node: 0000.0000.0010 primary dist:100
P node: 0000.0000.0015 primary dist:50
Q node: 0000.0000.0010
Q node: 0000.0000.0015
Node Protecting P Nodes
P node: 0000.0000.0015 primary dist:50
PQ Node: 7015.00-00 backup dist:50
No PQ Node found on backup path (Node Protection)
#
When the command is executed by specifying hostname parameter:
#show isis tilfa pq 7010
Tag 100: Level-1 Link State Database:
Node: 7010.00-00
Interface xe5
P node: 0000.0000.0010 primary dist:100
P node: 0000.0000.0015 primary dist:150
Q node: 0000.0000.0010
Q node: 0000.0000.0015
Node Protecting P Nodes
P node: 0000.0000.0010 primary dist:100
PQ Node: 7010.00-00 backup dist:100
PQ Node (Node Protection): 7010.00-00 backup dist:100
Interface xe11
P node: 0000.0000.0010 primary dist:100
P node: 0000.0000.0015 primary dist:50
Q node: 0000.0000.0010
Q node: 0000.0000.0015
Node Protecting P Nodes
P node: 0000.0000.0015 primary dist:50
PQ Node: 7015.00-00 backup dist:50
No PQ Node found on backup path (Node Protection)
#
show ip ospf route detail
Use this command to display the MPLS information (ILM-ID, FTN-ID, In-label & Out-label) of the specified OSPF IPv4 route or all the OSPF IPv4 routes.
Command Syntax
show ip ospf (<0-65535>|) route (((A.B.C.D | A.B.C.D/M |) detail) | )
Parameters
<0-65535> | Router process identifier. |
A.B.C.D | Single route. |
A.B.C.D/M | Single exact match route. |
Command Mode
Privileged exec mode
Applicability
This command was introduced in OcNOS version 6.5.3.
Example
The following example displays the MPLS information of all the OSPFv2 routes if a prefix parameter is not specified.
#show ip ospf route detail
OSPF process 100:
Codes: C - connected, D - Discard, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
OSPF LFA attributes:
P - Primary, SP - Secondary-Path, LP - Link Protecting,
NP - Node Protecting, BID - Broadcast Link Protecting
DP - Downstream Protecting
Destination Metric Nexthop Interface Area ILM-ID FTN-ID In-Label Out-Label
C 2.2.2.2/32 1 connected lo 0.0.0.0
C 2.10.1.0/24 100 connected xe11 0.0.0.0
C 2.15.1.0/24 50 connected xe5 0.0.0.0
O 10.10.10.10/32 101 2.10.1.10 xe11 0.0.0.0 8 5 19010 19010
2.15.1.15 xe5 0.0.0.0 8 5 19010 19010
O 10.15.1.0/24 100 2.15.1.15 xe5 0.0.0.0
O 15.15.15.15/32 51 2.15.1.15 xe5 0.0.0.0 10 6 19015 19015
#
The following example displays the MPLS information of the specified OSPFv2 route if a prefix parameter is specified:
#show ip ospf route 10.10.10.10/32 detail
OSPF process 100:
Codes: C - connected, D - Discard, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
OSPF LFA attributes:
P - Primary, SP - Secondary-Path, LP - Link Protecting,
NP - Node Protecting, BID - Broadcast Link Protecting
DP - Downstream Protecting
Destination Metric Nexthop Interface Area ILM-ID FTN-ID In-Label Out-Label
O 10.10.10.10/32 101 2.10.1.10 xe11 0.0.0.0 8 5 19010 19010
2.15.1.15 xe5 0.0.0.0 8 5 19010 19010
show hsl hw unit 0 encap-db LSP_ENCAP_ID
Use this command to display information on the lsp_encap entry installed in the hardware. This is an enhancement to the show hsl hw unit 0 encap-db command to insert LSP_ENCAP_ID as an optional parameter.
Command Syntax
show hsl hw unit 0 encap-db (LSP_ENCAP_ID|)
Parameters
Command Mode
Privileged exec mode
Applicability
This command was introduced in OcNOS version 6.5.3.
Example
#show hsl hw unit 0 encap-db 0x40002044
label_array[0]:
Entropy enabled : NO
flags : 8229(0x2025)
flags2 : 0(0x0)
label : 16010
qos_map_id : 537133060
exp : 0
ttl : 64
pkt_pri : 0
pkt_cfi : 0
tunnel_id : 1073750084(0x40002044)
l3_intf_id : 4106(0x100a)
MPLS labelaction : BCM_MPLS_EGRESS_ACTION_PUSH
egress_failover_id : 0(0x0)
egress_failover_if_id : 0(0x0)
outlif_counting_profile : 0(0x0)
spl_label_push_type : bcmMplsSpecialLabelPushNone
encap_access :
estimated_encap_size : 0(0x0)
#
Below are the revised commands. For more details, refer to the
Segment Routing Commands chapter.
Troubleshooting
1. If SR ILM entry is not installed as ECMP in hardware:
• Check if mpls ilm-ecmp sr command is enabled.
• Check if ECMP next-hops exist for that FEC in ISIS route table show ip isis route detail or OSPF route table show ip ospf route detail
2. If SR FTN entry is not installed as ECMP in hardware:
• Check if mpls ftn-ecmp sr command is enabled.
• Check if ECMP next-hops exist for the FEC in ISIS route table show ip isis route detail or OSPF route table show ip ospf route detail.
3. If traffic is not load-balanced among the ECMP next-hops:
• Increase the number of flows, as load balancing depends on the internal hash computed by BCM. Note that lesser flows may lead to the same outgoing interface for different flows.
Glossary
The following provides definitions for key terms or abbreviations and their meanings used throughout this document:
Key Terms/Acronym | Description |
Label switched path (LSP) | A sequence of routers that co-operatively perform MPLS operations for a packet stream. |
Topology-Independent Loop-Free Alternate (TI-LFA) | The ability to provide a loop free backup path irrespective of the topologies used in the network. |
FEC-to-NHLFE (FTN) | A mapping from the forwarding equivalence class (FEC) of incoming packets to the corresponding Next Hop Label Forwarding Entry (NHLFE) in MPLS. |
Incoming Label Map (ILM) | A mapping from incoming labels to corresponding Next Hop Label Forwarding Entry (NHLFE) in MPLS. |
Interior Gateway Protocol (IGP) | An intra-domain protocol used to exchange network reachability and routing information among devices. |
Forward Error Correction (FEC) | A system of error control that allows the receiver to correct some errors without having to request a re-transmission of data. |