Flex LSP Overview

Flex LSP also known as Associated Bidirectional LSPs is the combination of static bidirectional MPLS-TP and dynamic MPLS-TE. Flex LSP provides bidirectional label switched paths (LSPs) set up dynamically through Resource Reservation Protocol–Traffic Engineering (RSVP-TE). It does not support non-co routed LSPs.

Flex Label Switched Paths are LSP instances where the forward and the reverse direction paths are setup, monitored and protected independently and associated together during signaling. You use a RSVP Association object to bind the two forward and reverse LSPs together to form either a co-routed or non co-routed associated bidirectional TE tunnel.

You can associate a protecting MPLS-TE tunnel with either a working MPLS-TE LSP, protecting MPLS-TE LSP, or both. The working LSP is the primary LSP backed up by the protecting LSP. When a working LSP goes down, the protecting LSP is automatically activated. You can configure a MPLS-TE tunnel to operate without protection as well.

Effective Cisco IOS XE Release 3.18.1SP, Flex LSP supports inter-area tunnels with non co-routed mode.

Signaling Methods and Object Association for Flex LSPs

This section provides an overview of the association signaling methods for the bidirectional LSPs. Two unidirectional LSPs can be bound to form an associated bidirectional LSP in the following scenarios:

  • No unidirectional LSP exists, and both must be established.
  • Both unidirectional LSPs exist, but the association must be established.
  • One unidirectional LSP exists, but the reverse associated LSP must be established.

Associated Bidirectional Non Co-routed and Co-routed LSPs

This section provides an overview of associated bidirectional non co-routed and co-routed LSPs. Establishment of MPLS TE-LSP involves computation of a path between a head-end node to a tail-end node, signaling along the path, and modification of intermediate nodes along the path. The signaling process ensures bandwidth reservation (if signaled bandwidth is lesser than 0 and programming of forwarding entries).

Path computation is performed by the head-end nodes of both the participating LSPs using Constrained Shortest Path First (CSPF). CSPF is the 'shortest path (measured in terms of cost) that satisfies all relevant LSP TE constraints or attributes, such as required bandwidth, priority and so on.

Associated Bidirectional Non Co-routed LSPs: A non co-routed bidirectional TE LSP follows two different paths, that is, the forward direction LSP path is different than the reverse direction LSP path. Here is an illustration.

In the above topology:

  • The outer paths (in green) are working LSP pairs.
  • The inner paths (in red) are protecting LSP pairs.
  • Router 1 sets up working LSP to Router 3 and protecting LSP to Router 3 independently.
  • Router 3 sets up working LSP to Router 1 and protecting LSP to Router 1 independently.
Non co-routed bidirectional TE LSP is available by default, and no configuration is required.

Note


In case of non co-routed LSPs, the head-end nodes relax the constraint on having identical forward and reverse paths. Hence, depending on network state you can have identical forward and reverse paths, though the bidirectional LSP is co-routed.

Associated Bidirectional Co-routed LSPs: A co-routed bidirectional TE LSP denotes a bidirectional tunnel where the forward direction LSP and reverse direction LSP must follow the same path, for example, the same nodes and paths. Here is an illustration.

In the above topology:
  • Paths at the top of the figure (in green) indicate working co-routed LSP pairs.
  • Paths at the bottom of the figure (in red) indicate protecting co-routed LSP pairs.
  • Router 1 sets up working LSP to Router 3 (in red) after performing bidirectional CSPF and sends reverse explicit route object (ERO) to Router 3. Node Router 3 uses the received reverse ERO to set up reverse red working LSP to Router 1.
  • Router 3 sets up protecting LSP to Router 1 (in green) after performing bidirectional CSPF and sends reverse ERO to Router 1. Node Router 1 uses the received reverse ERO to set up reverse green protecting LSP to Router 3.

Restrictions for Flex LSP

  • Exp-null over Flex-LSP is not supported.

  • Flex-LSP does not support tunnel statistics.

  • VC (layer 2 VPN ckts) statistics are not supported.

  • It is recommended to configure for the following timers for Flex-LSP deployments:

    mpls traffic-eng reoptimize timers frequency 120

    mpls traffic-eng reoptimize timers delay installation 30

    mpls traffic-eng reoptimize timers delay cleanup 90

  • The no mpls ip propagate-tcl command is not recommended with Flex-LSP. The PREC value of BFD control packet is set to “0”. Therefore, packet prioritization cannot be done at midpoints and BFD flap can occur with traffic congestions.

  • It is recommended to configure BFD timers as 10x3 during cable pull testing or in Flex LSP feature deployments.

  • 50-msec convergence is not guaranteed for local shut.

  • 50-msec convergence is not guaranteed without WRAP protection. WRAP protection is mandatory to achieve 50-msec convergence for remote failures.

  • 50-msec convergence is expected with a maximum of 30 Flex-LSP tunnels that use the same egress interface.

  • With scale and multiple other feature mix-ups, it is possible to see higher convergence.

  • TE NSR and IGP NSR are mandatory for RSP switchover.

  • Flex LSP is supported with the IPv4 template.

  • The ip rsvp signalling hello command is not mandatory and it can cause a large punt during the cutover and can lead to unexpected results like BFD flapping.

  • VPLS over Flex-LSP is not supported.

  • Both IGP and FRR must be configured as clients for single-hop BFD when the WRAP protection is enabled; only FRR cannot be the only client that is configured at midpoint.

  • Layer 3 VPN over Flex-LSP is not supported.

  • It is recommended to configure 10x3 BFD timers for cable failures, to achieve 50 msec of convergence.

  • It is recommended to configure 10x3 BFD timers for cable failures, to achieve 50 msec of convergence.

  • Dynamic diverse paths are not supported for Flex LSP Tunnel.

  • The Diverse node SRLG path option is not supported.

  • The protect dynamic SRLG path is diverse from the primary path and thus the shortest path is not always chosen.

  • When the constraint for the protect path of Flex-LSP tunnel does not meet, it will wait in the REQUESTED state.

Restrictions for Non Co-routed Inter-Area Flex LSP Tunnels

  • The dynamic path option feature for TE tunnels (tunnel mpls traffic-eng path-option number dynamic) is not supported for inter-area tunnels. An explicit path identifying the area border routers (ABRs) is required.

  • The MPLS TE AutoRoute feature (tunnel mpls traffic-eng autoroute announce) is not supported for inter-area tunnels.

  • Tunnel affinity (tunnel mpls traffic-eng affinity) is not supported for inter-area tunnels.

  • Tunnel metric (tunnel mpls traffic-eng path-selection metric) is not supported for inter-area tunnels.

  • BFD is not supported with non co-routed inter-area flex LSP tunnels.

How to Configure Co-routed Flex LSPs

A co-routed bidirectional packet LSP is a combination of two LSPs (one in the forward direction and the other in reverse direction) sharing the same path between a pair of ingress and egress nodes. It is established using the extensions to RSVP-TE. This type of LSP can be used to carry any of the standard types of MPLS-based traffic, including Layer 2 VPNs and Layer 2 circuits. You can configure a single BFD session for the bidirectional LSP (that is, you do not need to configure a BFD session for each LSP in each direction). You can also configure a single standby bidirectional LSP to provide a backup for the primary bidirectional LSP.

The configuration includes the following steps:

  1. Enable basic MPLS Traffic Engineering on hostname PE1.

  2. Map L2VPN pseudowire to a specific FLEX LSP tunnel.

  3. Configure Flex LSP.

  4. Enable BFD.

  5. Enable Wrap and Fault OAM.

  6. Enable BDIs on a core-facing interface.

Configuring Co-routed Flex LSPs

Before you begin

  • You must have symmetric source and destination TE router IDs in order for bidirectional LSPs to be associated.

  • Tunnels attributes must be configured identically on both sides of co-routed bidirectional LSP.


Note


Up to 250 Flex LSP tunnels are supported.


Procedure

1. Enable basic MPLS Traffic Engineering on hostname PE1:


mpls traffic-eng tunnels
mpls traffic-eng fault-oam
mpls traffic-eng nsr
router ospf 100
 router-id 10.1.1.1
 nsr
 mpls traffic-eng router-id Loopback0
 mpls traffic-eng area 0
2. Map L2VPN pseudowire to a specific Flex LSP tunnel:
template type pseudowire mpls-te1 (mpls-te1 can be any name)
encapsulation mpls
preferred-path interface Tunnel1 disable-fallback 
bandwidth 100    

template type pseudowire mpls-te4
encapsulation mpls
preferred-path interface Tunnel4 disable-fallback
bandwidth 100

3. Configure Flex LSP:


interface Tunnel1
bandwidth 1000
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 22.22.22.22
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng priority 7 7
tunnel mpls traffic-eng bandwidth 1000
tunnel mpls traffic-eng path-option 1 explicit name BDI1 bandwidth 1000
tunnel mpls traffic-eng path-option protect 1 explicit name BACKUP1 bandwidth 1000
tunnel mpls traffic-eng bidirectional association id 1 source-address 11.11.11.11 global-id
1
tunnel mpls traffic-eng bidirectional association type co-routed
ip explicit-path name BDI1 enable
next-address 1.11.1.1
next-address 10.1.2.2
next-address 2.22.1.22
ip explicit-path name BACKUP1 enable
next-address 10.3.11.1.10
next-address 10.4.22.22

Note


To bring up the bi-directional tunnels, association ID, source address and global ID must match on both sides of the tunnel.


4. Enable BFD


bfd-template single-hop BFD_FLEX
interval min-tx 50 min-rx 50 multiplier 3
interface Tunnel1
tunnel mpls traffic-eng bfd encap-mode gal BFD_FLEX

5. Enable Wrap and Fault OAM

interface Tunnel1
tunnel mpls traffic-eng bidirectional association type co-routed fault-oam wrap-protection

6. Enable BDIs on core-facing interface:

interface BDI1
ip address 1.11.1.11 255.255.255.0
ip ospf 1 area 0 
mpls traffic-eng tunnels


interface BDI4 
ip address 1.11.4.11 255.255.255.0 
ip ospf 1 area 0
mpls traffic-eng tunnels

interface GigabitEthernet0/3/1 
ip address 10.3.11.11 255.255.255.0 
ip ospf 1 area 0
mpls traffic-eng tunnels

interface GigabitEthernet0/3/0 
service instance 1 ethernet 
encapsulation dot1q 1 
rewrite ingress tag pop 1 symmetric 
bridge-domain 1 
service instance 4 ethernet 
encapsulation dot1q 4
rewrite ingress tag pop 1 symmetric 
bridge-domain 4
End

Note


NOTE: Since VLANs are not supported, to represent a VLAN interface, BDI must be used towards core-facing interface.


Verifying the Co-routed Flex LSP Configuration

To verify the FLEX LSP tunnel summary, use the show mpls traffic-eng tunnels bidirectional-associated concise command in MPLS tunnel-te interface.

Router# show mpls traffic-eng tunnels summary
Signalling Summary:
    LSP Tunnels Process:            running
    Passive LSP Listener:           running
    RSVP Process:                   running
    Forwarding:                     enabled
    auto-tunnel:
    p2p    Disabled (0), id-range:62336-64335
 
    Periodic reoptimization:        every 3600 seconds, next in 2942 seconds
    Periodic FRR Promotion:         Not Running
    Periodic auto-bw collection:    every 300 seconds, next in 243 seconds
    SR tunnel max label push:       1 labels
    P2P:
      Head: 100 interfaces,   0 active signalling attempts, 0 established
            87733091 activations,  87733091 deactivations
            144287155 failed activations
            0 SSO recovery attempts, 0 SSO recovered
      Midpoints: 0, Tails: 0
 
    P2MP:
      Head: 0 interfaces,   0 active signalling attempts, 0 established
            0 sub-LSP activations,  0 sub-LSP deactivations
            0 LSP successful activations,  0 LSP deactivations
            0 SSO recovery attempts, LSP recovered: 0 full, 0 partial, 0 fail
      Midpoints: 0, Tails: 0
 
Bidirectional Tunnel Summary:
    Tunnel Head: 100 total, 0 connected, 100 associated, 100 co-routed
    LSPs Head:   0 established, 0 proceeding, 0 associated, 0 standby
    LSPs Mid:    0 established, 0 proceeding, 0 associated, 0 standby
    LSPs Tail:   0 established, 0 proceeding, 0 associated, 0 standby

To verify the co-routed LSP, use the Show mpls traffic-eng tunnel bidirectional co-routed command.

Router#Show mpls traffic-eng tunnel bidirectional co-routed  

Name: tunnel-te2  Destination: 192.168.0.3
  Status:
    Admin:    up Oper:   up   Path:  valid   Signalling: connected
    path option 1,  type dynamic  (Basis for Setup, path weight 3 (reverse 3))
    Bandwidth Requested: 80000 kbps  CT0
Config Parameters:
    Association Type: Single Sided Bidirectional LSPs, Co-routed: Yes
    Association ID: 100, Source: 9.9.9.9[, Global ID: 9]
    Reverse Bandwidth: 2 kbps CT0, Standby: 2 kbps CT0
    BFD Fast Detection: Enabled
    BFD Parameters: Min-interval 10000 ms, Multiplier 3 (default)
     BFD Bringup Timeout: Interval 60 seconds (default)
     BFD Initial Dampening: 16000 ms (default)
     BFD Maximum Dampening: 600000 ms (default)
     BFD Secondary Dampening: 20000 ms (default)
     Periodic LSP Ping: Interval 120 seconds (default)
     BFD Encap Mode: IP (default) | GAL
    Soft Preemption: Enabled, Current Status: Preemption not pending

How to Configure Non Co-routed Inter-area Flex LSP Tunnels


Note


The working and protect LSPs for PE1 (head-end) is different from PE2 (tail-end).


At PE1 (head-end):

interface Tunnel1001
 ip unnumbered Loopback0
 mpls ip
 tunnel mode mpls traffic-eng
 tunnel destination 10.1.1.1
 tunnel mpls traffic-eng priority 7 7
 tunnel mpls traffic-eng bandwidth 200
 tunnel mpls traffic-eng path-option 1 explicit name ThruHunG verbatim
 tunnel mpls traffic-eng path-option protect 1 explicit name PROT1 verbatim
 tunnel mpls traffic-eng bidirectional association id 1001 source-address 10.1.1.1 global-id 1001
!
interface Tunnel1002
 ip unnumbered Loopback0
 mpls ip
 tunnel mode mpls traffic-eng
 tunnel destination 10.1.1.1
 tunnel mpls traffic-eng priority 7 7
 tunnel mpls traffic-eng bandwidth 200
 tunnel mpls traffic-eng path-option 1 explicit name ThruHunG verbatim
 tunnel mpls traffic-eng path-option protect 1 explicit name PROT1 verbatim
 tunnel mpls traffic-eng bidirectional association id 1002 source-address 10.1.1.1 global-id 1002

ip explicit-path name ThruTenG enable
 next-address loose 22.1.1.2
 next-address loose 10.1.1.1
 next-address loose 10.1.1.1
!
ip explicit-path name ThruHunG enable
 next-address loose 23.1.1.2
 next-address loose 10.1.1.1
 next-address loose 10.1.1.1

ip explicit-path name PROT1 enable
 next-address loose 30.1.1.2
 next-address loose 40.1.1.1
 next-address loose 10.1.1.1

At PE2 (tail-end):

interface Tunnel1001
 ip unnumbered Loopback0
 mpls ip
 tunnel mode mpls traffic-eng
 tunnel destination 4.4.4.4
 tunnel mpls traffic-eng priority 7 7
 tunnel mpls traffic-eng bandwidth 200
 tunnel mpls traffic-eng path-option 1 explicit name ThruTenG verbatim
 tunnel mpls traffic-eng path-option protect 1 explicit name PROT2 verbatim
 tunnel mpls traffic-eng bidirectional association id 1001 source-address 10.1.1.1 global-id 1001
!
interface Tunnel1002
 ip unnumbered Loopback0
 mpls ip
 tunnel mode mpls traffic-eng
 tunnel destination 4.4.4.4
 tunnel mpls traffic-eng priority 7 7
 tunnel mpls traffic-eng bandwidth 200
 tunnel mpls traffic-eng path-option 1 explicit name ThruTenG verbatim
 tunnel mpls traffic-eng path-option protect 1 explicit name PROT2 verbatim
 tunnel mpls traffic-eng bidirectional association id 1002 source-address 10.1.1.1 global-id 1002

ip explicit-path name ThruTenG enable
 next-address loose 10.1.1.2
 next-address loose 22.1.1.1
 next-address loose 4.4.4.4
!
ip explicit-path name ThruHunG enable
 next-address loose 10.1.1.2
 next-address loose 23.1.1.1
 next-address loose 4.4.4.4

ip explicit-path name PROT2 enable
 next-address loose 41.1.1.2
 next-address loose 31.1.1.1
 next-address loose 4.4.4.4

Configuring OSFP for Non Co-routed Flex LSP


Note


Add the new area into OSPF based on where you want the Inter-area to run.


router ospf 1
 router-id 3.3.3.3
 nsr
 nsf cisco
 microloop avoidance
 passive-interface Loopback0
 network 3.3.3.3 0.0.0.0 area 0
 mpls traffic-eng router-id Loopback0
 mpls traffic-eng area 0
 mpls traffic-eng area 1

Verifying the Non Co-routed Inter-area Flex LSP Tunnels

At the PE1

Router# show mpls traffic-eng tunnels tunnel 1001 

Name: PE1_t1001                           (Tunnel1001) Destination: 4.4.4.4
  Status:
    Admin: up         Oper: up     Path: valid       Signalling: connected
    path option 1, type explicit (verbatim) ThruTenG (Basis for Setup, path weight 0)
    Path Protection: Requested
    path protect option 1, type explicit (verbatim) PROT2 (Basis for Protect, path weight 0)

  Config Parameters:
    Bandwidth: 200      kbps (Global)  Priority: 7  7   Affinity: 0x0/0xFFFF
    Metric Type: TE (default)
    AutoRoute: disabled LockDown: disabled Loadshare: 200 [10000000] bw-based
    auto-bw: disabled
    Association Type: Double Sided Bidirectional LSPs, Co-routed: NO
    Association ID: 1001, Source: 10.1.1.1, Global ID: 1001
    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: enabled 

  InLabel  :  -
  OutLabel : BDI100, 242
  Next Hop : 10.1.1.2
  Reverse Associated LSP Information: 
    Signaled Name: 4.4.4.4 1001
    Tunnel: 1001, Source: 4.4.4.4, Dest: 10.1.1.1, LSP: 9 State: Up
  Lockout Info: 
    Locked out: No
    Lockout Originated By: None
  Association: 
    Association Type: Double Sided Bidirectional LSPs
    Association ID: 1001 Source: 10.1.1.1
  Extended Association: 
    Global source: 1001
    Extended ID: None
  RSVP Signalling Info:
       Src 10.1.1.1, Dst 4.4.4.4, Tun_Id 1001, Tun_Instance 9
    RSVP Path Info:
      My Address: 10.1.1.1   
      Explicit Route: 10.1.1.2 10.1.1.2* 22.1.1.1* 4.4.4.4* 
      Record   Route: 
      Tspec: ave rate=200 kbits, burst=1000 bytes, peak rate=200 kbits
    RSVP Resv Info:
      Record   Route:  22.1.1.2 22.1.1.1
      Fspec: ave rate=200 kbits, burst=1000 bytes, peak rate=200 kbits
  Shortest Unconstrained Path Info:
    Path Weight: 2 (TE)
    Explicit Route: 11.1.1.2 20.1.1.1 4.4.4.4 
  Reason for the tunnel being down: Bidirectional: standby error from [10.1.1.1][UNK] LSP[8]

  History:
    Tunnel:
      Time since created: 7 minutes, 51 seconds
      Number of LSP IDs (Tun_Instances) used: 9
    Current LSP: [ID: 9]
      Uptime: 5 minutes, 59 seconds

At PE2

Router# show mpls traffic-eng tunnels tunnel 1001 

Name: PE2_t1001                           (Tunnel1001) Destination: 10.1.1.1
  Status:
    Admin: up         Oper: up     Path: valid       Signalling: connected
    path option 1, type explicit (verbatim) ThruHunG (Basis for Setup, path weight 0)
    Path Protection: Requested
    path protect option 1, type explicit (verbatim) PROT1 (Basis for Protect, path weight 0)

  Config Parameters:
    Bandwidth: 200      kbps (Global)  Priority: 7  7   Affinity: 0x0/0xFFFF
    Metric Type: TE (default)
    AutoRoute: disabled LockDown: disabled Loadshare: 200 [10000000] bw-based
    auto-bw: disabled
    Association Type: Double Sided Bidirectional LSPs, Co-routed: NO
    Association ID: 1001, Source: 10.1.1.1, Global ID: 1001
    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: enabled 

  InLabel  :  -
  OutLabel : BDI221, 980
  Next Hop : 23.1.1.2
  Reverse Associated LSP Information: 
    Signaled Name: 10.1.1.1 1001
    Tunnel: 1001, Source: 10.1.1.1, Dest: 4.4.4.4, LSP: 9 State: Up
  Lockout Info: 
    Locked out: No
    Lockout Originated By: None
  Association: 
    Association Type: Double Sided Bidirectional LSPs
    Association ID: 1001 Source: 10.1.1.1
  Extended Association: 
    Global source: 1001
    Extended ID: None
  RSVP Signalling Info:
       Src 4.4.4.4, Dst 10.1.1.1, Tun_Id 1001, Tun_Instance 9
    RSVP Path Info:
      My Address: 23.1.1.1   
      Explicit Route: 23.1.1.2 23.1.1.2* 10.1.1.1* 10.1.1.1* 
      Record   Route: 
      Tspec: ave rate=200 kbits, burst=1000 bytes, peak rate=200 kbits
    RSVP Resv Info:
      Record   Route:  10.1.1.2 10.1.1.1
      Fspec: ave rate=200 kbits, burst=1000 bytes, peak rate=200 kbits
  Shortest Unconstrained Path Info:
    Path Weight: 2 (TE)
    Explicit Route: 20.1.1.2 11.1.1.1 10.1.1.1 
  Reason for the tunnel being down: Bidirectional: standby error from [4.4.4.4][UNK] LSP[8]

  History:
    Tunnel:
      Time since created: 8 minutes, 9 seconds
      Time since path change: 6 minutes, 10 seconds
      Number of LSP IDs (Tun_Instances) used: 9
    Current LSP: [ID: 9]
      Uptime: 6 minutes, 10 seconds

Troubleshooting Flex LSP

Step 1: Verifying that the Flex LSP Tunnel is in UP State
Router# show mpls traffic-eng tunnels bidirectional-associated association id 1 

P2P TUNNELS/LSPs: 
Name: RP1_t3                              (Tunnel3) Destination: 10.5.0.1 
  Status: 
    Admin: up         Oper: up     Path: valid       Signalling: connected 
    path option 2, type explicit expl_route_m2_tail (Basis for Setup, path weight 40) 
    path option 3, type explicit expl_route_m3_tail 
    Path Protection: 0 Common Link(s), 0 Common Node(s) 
    path protect option 2, type explicit expl_route_m3_tail (Basis for Protect, path weight 40) 
    path protect option 3, type list name xtd 
    Lockout Info: 
      Locked Out: No 
  Config Parameters: 
    Bandwidth: 500      kbps (Global)  Priority: 7  7   Affinity: 0x0/0xFFFF 
    Metric Type: TE (default) 
    AutoRoute: disabled LockDown: disabled Loadshare: 500 [4000000] bw-based 
    auto-bw: disabled 
    Association Type: Single Sided Bidirectional LSPs, Co-routed: YES 
    Association ID: 1, Source: 2.3.4.5, Global ID: 6 
    Fault-OAM: disabled 
  Active Path Option Parameters: 
    State: explicit path option 2 is active 
    BandwidthOverride: disabled  LockDown: disabled  Verbatim: disabled 
  InLabel  :  - 
  OutLabel : Ethernet0/0, 16 
  Next Hop : 10.1.2.2 
-------~Full Output not provided ~-------
    

Step 2: Verifying RSVP Signaling

Router# show ip rsvp sender detail  
PATH: 
  Tun Dest:   10.255.255.1  Tun ID: 15  Ext Tun ID: 10.255.255.8 
  Tun Sender: 10.255.255.8  LSP ID: 40 
  Path refreshes: 
    arriving: from PHOP 10.5.2.1 on Et0/1 every 30000 msecs. Timeout in 136 sec 
    sent:     to   NHOP 10.1.4.1 on Ethernet0/0 
  Session Attr:  
    Setup Prio: 7, Holding Prio: 7 
    Flags: (0x4) SE Style 
    Session Name: R3_t15  
  ERO: (incoming) 
    10.5.2.2 (Strict IPv4 Prefix, 8 bytes, /32) 
    10.1.4.2 (Strict IPv4 Prefix, 8 bytes, /32) 
    10.1.4.1 (Strict IPv4 Prefix, 8 bytes, /32) 
    10.255.255.1 (Strict IPv4 Prefix, 8 bytes, /32) 
  ERO: (outgoing) 
    10.1.4.1 (Strict IPv4 Prefix, 8 bytes, /32) 
    10.255.255.1 (Strict IPv4 Prefix, 8 bytes, /32) 
  ASSOCIATION: 
    Extended Association type: Single sided provisioned bidirectional LSPs IPv4 
    Association ID: 1, Source: 10.1.1.1 
    Global source: 0 
    ExtID[0]: 0xAFFFF08 
    ExtID[1]: 0x28 
-------~Full Output not provided ~-------

Step 3: Verifying RSVP Reservation

Router# show ip rsvp reservation detail 
Reservation: 
  Tun Dest:   10.255.255.1  Tun ID: 15  Ext Tun ID: 10.255.255.8 
  Tun Sender: 10.255.255.8  LSP ID: 327 
  Resv refreshes: 
    arriving: from NHOP 10.1.4.1 on Et0/0 every 30000 msecs. Timeout in 382 sec 
  Next Hop: 10.1.4.1 on Ethernet0/0 
  Label: 23 (outgoing) 
  Reservation Style is Shared-Explicit, QoS Service is Controlled-Load 
  Resv ID handle: 1200040C. 
  Created: 11:08:07 EST Fri Aug 28 2015 
  Average Bitrate is 0 bits/sec, Maximum Burst is 1K bytes 
  Min Policed Unit: 0 bytes, Max Pkt Size: 1500 bytes 
  Status: 
  Policy: Accepted. Policy source(s): MPLS/TE 
Reservation: 
  Tun Dest:   10.255.255.8  Tun ID: 15  Ext Tun ID: 10.255.255.1 
  Tun Sender: 10.255.255.1  LSP ID: 338 
  Resv refreshes: 
    arriving: from NHOP 10.5.2.1 on Et0/1 every 30000 msecs. Timeout in 382 sec 
  Next Hop: 10.5.2.1 on Ethernet0/1 
  Label: 17 (outgoing) 
  Reservation Style is Shared-Explicit, QoS Service is Controlled-Load 
  Resv ID handle: 05000410. 
  Created: 11:08:07 EST Fri Aug 28 2015 
  Average Bitrate is 0 bits/sec, Maximum Burst is 1K bytes 
  Min Policed Unit: 0 bytes, Max Pkt Size: 1500 bytes 
  RRO: 
    10.3.2.2/32, Flags:0x0 (No Local Protection) 
    10.3.2.1/32, Flags:0x0 (No Local Protection) 
  Status: 
  Policy: Accepted. Policy source(s): MPLS/TE

Step 4: Verifying Wrap Functionality

Router# show mpls traffic-eng tunnels  
P2P TUNNELS/LSPs: 
Name: R1_t15                              (Tunnel15) Destination: 10.255.255.8 
  Status: 
    Admin: up         Oper: up     Path: valid       Signalling: connected 
    path option 1, type explicit Primary (Basis for Setup, path weight 60) 
    path option 2, type dynamic 
    Path Protection: 0 Common Link(s), 0 Common Node(s) 
    path protect option 1, type explicit Secondary (Basis for Protect, path weight 40) 
    Lockout Info: 
      Locked Out: No 
  Config Parameters: 
    Bandwidth: 0        kbps (Global)  Priority: 7  7   Affinity: 0x0/0xFFFF 
    Metric Type: TE (default) 
    AutoRoute: enabled  LockDown: disabled Loadshare: 0 [0] bw-based 
    auto-bw: disabled 
    Association Type: Single Sided Bidirectional LSPs, Co-routed: YES 
    Association ID: 1, Source: 10.1.1.1 
    Fault-OAM: enabled, Path-Protection: ready, Wrap-Protection: enabled, Wrap-Capable: Yes 
    FlexLSP Event History: 
  Active Path Option Parameters: 
    State: explicit path option 1 is active 
    BandwidthOverride: disabled  LockDown: disabled  Verbatim: disabled
Router# show mpls traffic-eng tunnels protection  
P2P TUNNELS: 
R1_t15 
  LSP Head, Tunnel15, Admin: up, Oper: up 
  Src 10.255.255.1, Dest 10.255.255.8, Instance 34 
  Fast Reroute Protection: None 
  Lockout Info: 
    Locked Out: No 
  Path Protection: Backup lsp in use. 
  Prior Working LSP details: 
    LSP ID: 33 (Delayed Clean) 
    Deactivates In: (2796) ms 
    InLabel  :  - 
    OutLabel : Ethernet0/1, 16 
    Next Hop : 10.1.4.2 
    Reverse Associated LSP Information:  
        Signaled Name: 10.255.255.8 15 
        Tunnel: 15, Source: 10.255.255.8, Dest: 10.255.255.1, LSP: 29 State: Up 
    Lockout Info:  
        Locked out: No 
        Lockout Originated By: None 
    Association:  
        Association Type: Single Sided Bidirectional LSPs 
        Association ID: 1 Source: 10.1.1.1 
-------~Full Output not provided ~-------

Step 5: Verifying BFD and OAM Operations

Router# show mpls traffic-eng tunnels detail | sec Fault
    Fault-OAM: enabled, Path-Protection: no protection, Wrap-Protection: disabled, Wrap-Capable: No
    Fault-OAM Events:
      LSP 4638 (deleted) bfd-delete, 
          at 07:32:08 IST Fri Jun 3 2016 (1 days, 8 hours, 35 mins, 30 secs ago)
      LSP 4638 (deleted) fault-delete, 
          at 07:32:08 IST Fri Jun 3 2016 (1 days, 8 hours, 35 mins, 30 secs ago)
      LSP 4638 (working) bfd-up, 
          at 10:15:31 IST Thu Jun 2 2016 (2 days, 5 hours, 52 mins, 7 secs ago)
      LSP 4637 (working) bfd-delete, 
          at 10:15:20 IST Thu Jun 2 2016 (2 days, 5 hours, 52 mins, 18 secs ago)
      LSP 4637 (working) fault-delete, 
          at 10:15:20 IST Thu Jun 2 2016 (2 days, 5 hours, 52 mins, 18 secs ago)
      LSP 4636 (working) bfd-delete, 
          at 10:15:17 IST Thu Jun 2 2016 (2 days, 5 hours, 52 mins, 21 secs ago)
      LSP 4636 (working) fault-delete, 
          at 10:15:17 IST Thu Jun 2 2016 (2 days, 5 hours, 52 mins, 21 secs ago)
-------~Full Output not provided ~-------
Router# show mpls fault-oam session end-point detail  
  MPLS Fault-OAM End-point Sessions 
===================================== 
    Session handle : 0x6 
    Client handle : 0x2B9FAE02B750 
    Local label : 18 
    Tunnel interface : Tunnel3 (0x15) 
    Tunnel number : 3 
    LSP number : 49 
    Global ID : 0 
    Node ID : 10.1.0.1 
    Local event : Fault Clear 
    Sender Information 
        Fault source : End-point 
        Refresh seconds : 20 
        Initial count : 0 
        Fault type : CLR 
        Tx Fault-CLR count : 0 
        Tx Fault-AIS count : 0 
        Tx Fault-LDI count : 0 
        Tx Fault-LKR count : 0 
        Tx Lockout-CLR count : 0 
        Tx Lockout count : 0 
        Tx Error count : 0 
    Receiver Information 
        Source global ID : 0 
        Source node ID : 0 
        Source intf number : 0 
        Fault type : CLR 
        Rx Fault-CLR count : 0 
        Rx Fault-AIS count : 0 
        Rx Fault-LDI count : 0 
        Rx Fault-LKR count : 0 
        Rx Lockout-CLR count : 0 
        Rx Lockout count : 0 
        Rx Error count : 0 
    -------~Full Output not provided ~-------

Step 6: Verifying that Pseudowire is in UP State

Router# show mpls l2transport vc vcid 1            (HEAD router)
 
Local intf     Local circuit              Dest address    VC ID      Status
-------------  -------------------------- --------------- ---------- ----------
Gi6            Eth VLAN 30                53.0.0.1        1          UP        
 #show mpls l2transport vc vcid 1 detail 
Local interface: Gi6 up, line protocol up, Eth VLAN 30 up
  Interworking type is Ethernet
  Destination address: 53.0.0.1, VC ID: 1, VC status: up
    Output interface: Tu10, imposed label stack {29 29780}
    Preferred path: Tunnel10,  active
    Required BW = 15000, Admitted BW = 15000
    Default path: ready
    Next hop: point2point
  Create time: 00:01:13, last status change time: 00:01:13
    Last label FSM state change time: 00:01:13
  Signaling protocol: LDP, peer 53.0.0.1:0 up
    Targeted Hello: 52.0.0.1(LDP Id) -> 53.0.0.1, LDP is UP
    Graceful restart: configured and enabled
    Non stop routing: configured and not enabled

    -------~Full Output not provided ~-------

Use the show adjacency tunnel internal command to view the software forwarding of the tunnel:

Router# show adjacency tunnel1 internal | i lsp-num

          GigabitEthernet0/5/2 55.0.0.1 label 21 lsp-num 20
          Path protected by GigabitEthernet0/5/3 label 22 lsp-num 21
          Reopt of working: Null0 0.0.0.0 label none lsp-num 0
          Reopt of protect: Null0 label none lsp-num 0

Flex LSP Phase 2

Flex LSP phase 2 is supported from Cisco IOS XE Everest 16.5.1. Flex LSP, also known as Associated Bidirectional Label Switched Paths (LSPs), are LSP instances where the forward and the reverse direction paths are set up, monitored, protected independently, and associated together during signaling. The RSVP Association aims to bind the forward and reverse LSPs together to form either a co-routed or a non co-routed associated bidirectional traffic engineering (TE) tunnel.

The Cisco IOS XE Everest 16.5.1 supports only co-routed Flex LSP tunnels. Flex LSP Phase 2 supports the following features:

  • Shared Risk Link Groups (SRLGs) Protection – SRLGs indicate situations where links in a network share a common fiber (or a common physical attribute). If one link fails, the other links in the group may also fail. Links in this group have a shared risk.

    The MPLS-TE SRLG Protection feature enhances backup tunnel path selection so that a backup tunnel avoids using links that are in the same SRLG as interfaces the backup tunnel is protecting.

  • Non-revertive

  • Sticky

  • Hop count and Cost max limit – Each path from the tunnel source node (head-end) to destination node (tail-end) has a number of characteristics, including node hop count and accumulated path cost. Node hop count is the number of nodes along a path excluding the source node.

    To ensure that the selected path does not exceed the specified hop count, configure a maximum node hop count.

    Each link segment along the path has an associated path cost. Accumulated path cost is the sum of the path cost of all link segments. In the co-routed tunnel case, the accumulated path cost includes both, the forward and reverse link cost. To ensure that the selected path does not exceed the specified cost value, configure a cost max limit.

  • ECMP min-fill, max-fill – Path calculation selects a path with the lowest accumulated path cost. Sometimes there are multiple paths from the tunnel source node to the destination node, and all these paths may have the same accumulated (and lowest) path cost. These paths are referred to as “Equal Cost Multi Path” (ECMP). In this scenario, path calculation must use other tiebreakers (such as, node hop count and path minimum bandwidth) to select one path. Max-fill is a tiebreaker method that selects, from all ECMPs, a path with the least head room, but can still accommodate the path request. This method has the effect of packing the links. Min-fill is a tiebreaker method that selects, from all ECMPs, a path with the most head room, and which has a load balance effect over time.

  • Restore path option – The restore path option signals a restore LSP after a double failure of both, primary and protect LSPs.

Flex LSP SRLG and Exclude Option for Explicit Path

Use the following commands to configure SRLG on an interface:

Router(config)# interface Ethernet0/1
Router(config-if)# srlg gid <1-4294967295>

SRLG values configured on MPLS TE enabled interfaces are flooded through IGP (IS-IS or OSPF), and are used by MPLS TE in the following scenarios:

  • Restrict protection path to avoid SRLGs of links in the working path.

    Router(config)# interface Tunnel100
    Router(config-if)# tunnel mpls traffic-eng path-option protect 1 diverse srlg lockdown
  • Exclude SRLG in IP Explicit Path.

    Router(config)# ip explicit-path name EXAMPLE
    Router(cfg-ip-expl-path)# exclude-srlg A.B.C.D
    

    The exclude-srlg command specifies an address to get SRLGs from for exclusion.


Note


For bidirectional co-routed LSP, both ends of the tunnel must be configured with the same exclude options in explicit path. Otherwise, it is considered a configuration error.



Note


Only 32 SRLG values can be configured on an interface. Also, MPLS TE only accepts up to 400 SRLG values configured on a system.


Configuring Flex LSP SRLG and Exclude Option

On the MPLS-TE enabled interface:

!
interface GigabitEthernet0/3/0
 srlg gid 10
 srlg gid 20
 srlg gid 30
 srlg gid 40
 srlg gid 50
 ip address 102.103.1.1 255.255.255.0
 ip ospf 1 area 0
 negotiation auto
 mpls ip
 mpls traffic-eng tunnels
 ip rsvp bandwidth 200000 120000 sub-pool 120000
 ip rsvp signalling hello graceful-restart

Enable the SRLG on the Flex LSP tunnel:

!
interface Tunnel1
bandwidth 100000
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 54.4.4.4
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng priority 7 7
tunnel mpls traffic-eng bandwidth 100000000
tunnel mpls traffic-eng path-option 1 explicit name SRLG
tunnel mpls traffic-eng path-option protect 1 diverse srlg lockdown
tunnel mpls traffic-eng bidirectional association id 1 source-address 52.2.2.2 global-id 1
tunnel mpls traffic-eng bidirectional association type co-routed fault-oam wrap-protection

To enable explicit path SRLG:

ip explicit-path name SRLG enable
 exclude-srlg 102.103.1.1

Verifying the Flex LSP SRLG and Exclude Option

To view the SRLG values in the topology:

Router# show mpls traffic-eng topology 52.2.2.2

IGP Id: 52.2.2.2, MPLS TE Id:52.2.2.2 Router Node (ospf 1  area 0) id 16
      link[0]: Broadcast, DR: 102.104.2.2, nbr_node_id:17, gen:54, nbr_p:4640A034
      frag_id: 2, Intf Address: 102.104.2.1
      TE metric: 1, IGP metric: 1, attribute flags: 0x0
      SRLGs: None 
      physical_bw: 1000000 (kbps), max_reservable_bw_global: 200000 (kbps)
      max_reservable_bw_sub: 120000 (kbps)

                             Global Pool       Sub Pool
           Total Allocated   Reservable        Reservable
           BW (kbps)         BW (kbps)         BW (kbps)
           ---------------   -----------       ----------
    bw[0]:            0           200000           120000
    bw[1]:            0           200000           120000
    bw[2]:            0           200000           120000
    bw[3]:            0           200000           120000
    bw[4]:            0           200000           120000
    bw[5]:            0           200000           120000
    bw[6]:            0           200000           120000
    bw[7]:            0           200000           120000

      link[1]: Broadcast, DR: 102.103.1.2, nbr_node_id:13, gen:54, nbr_p:4640A36C
      frag_id: 1, Intf Address: 102.103.1.1
      TE metric: 1, IGP metric: 1, attribute flags: 0x0
      SRLGs: 10 20 30 40 50 
      physical_bw: 1000000 (kbps), max_reservable_bw_global: 200000 (kbps)
      max_reservable_bw_sub: 120000 (kbps)
Router# show mpls traffic-eng link-management advertisements 
Flooding Status:      ready
Configured Areas:     1
IGP Area[1] ID::  ospf 1  area 0
  System Information::
    Flooding Protocol:    OSPF
  Header Information::
    IGP System ID:        52.2.2.2
    MPLS TE Router ID:    52.2.2.2
    Flooded Links:        2
  Link ID::  0 (GigabitEthernet0/3/0)
    Link Subnet Type:     Broadcast
    Link IP Address:      102.103.1.1
    Designated Router:    102.103.1.2
    TE metric:            1
    IGP metric:           1
    SRLGs:                10 20 30 40 50 
    Physical Bandwidth:   1000000 kbits/sec
    Res. Global BW:       200000 kbits/sec
    Res. Sub BW:          120000 kbits/sec
    Downstream::

Flex LSP Non-Revertive 1:1 Path Protection

Currently, MPLS-TE path protection is triggered every time a fail is detected on a working path (assuming a protect path is configured and available). Once the fail is resolved, TE switches back traffic to the working path. The process of switching back the traffic to the working path is done in a make-before-break fashion but it still does not guarantee that traffic jitter or delay is not introduced (due to different path lengths between working and protect paths). This jitter is not desirable in delay-intolerant applications like Circuit Emulation (CEM).

In Cisco IOS XE Everest 16.5.1, TE no longer switches back to the working path when the working path is restored. Instead, the protected path continues to be the working path. This behavior is achieved by configuring a specific attribute, [non-revertive], to the protecting path-options.

However, if the non-revertive option is configured, TE switches back to the working path.

This is the sequence of actions for MPLS TE when the non-revertive protect path is configured:

  1. Detects failure on the current path.

  2. Switches to the protect path. The protect path now becomes the active non-revertive path (that is, the path carrying traffic).

  3. Signals a new path and marks it as pending. This new pending path must be diverse from the active path, only if the diverse option is configured on the protect path option.

  4. Re-optimizes this pending path periodically (but at the same time ensures this is diverse from the active non-revertive protect path).

  5. Switches over to the pending path, if the active path fails [traffic is wrapped]. Marks pending path as active path. Re-signals a protect path for the new active path.

  6. You can force traffic to a pending path by running the command mpls traffic-eng switch non-revertive.

    In this case, the pending path becomes the current active path and the non-revertive path is re-signaled as a protect path for the new current path.

Configuring Flex LSP Non-Revertive Path Protection

The following command is used to configure the non-revertive path protection:

[no] tunnel mpls traffic-eng path-option protect [preference] {diverse | explicit {identifier [id] | name [name]} | list {identifier [id] | name [name]}} [non-revertive] 

The following sample configuration illustrates a co-routed Flex LSP enabled with the non-revertive option:


Note


Non-revertive must be configured on the both ends of a Flex Tunnel.


Router(config)# interface tunnel 1000
Router (config-if)# ip unnumbered loopback0
Router(config-if)# tunnel mode mpls traffic-eng
Router(config-if)# tunnel destination 56.6.6.6
Router(config-if)# tunnel mpls traffic-eng bidir association type co-routed fault-oam wrap
Router(config-if)# tunnel mpls traffic-eng bidir association id 1000 source 55.5.5.5 global 1000
Router(config-if)# tunnel mpls traffic-eng path-selection hop-limit 5
Router(config-if)# tunnel mpls traffic-eng bandwidth 200
Router(config-if)# tunnel mpls traffic-eng autoroute announce
Router (config-if)# tunnel mpls traffic-eng path-option 10 dynamic
Router(config-if)# tunnel mpls traffic-eng path-option protect 10 diverse non-revertive lockdown

Verifying Flex LSP Non-Revertive Path Protection

Router# show mpls traffic-eng tunnels tunnel 1000 detail

Name: Router_t1000                           (Tunnel1000) Destination: 56.6.6.6
  Status:
    Admin: up         Oper: up     Path: valid       Signalling: connected
    path option 10, type dynamic (Basis for Setup, path weight 40)
    Path Protection: 0 Common Link(s), 0 Common Node(s)
    path protect option 10, (LOCKDOWN) (NON-REVERTIVE) type diverse (Basis for Protect, path weight 80)
    Lockout Info:
      Locked Out: No

  Config Parameters:
    Bandwidth: 200      kbps (Global)  Priority: 7  7   Affinity: 0x0/0xFFFF
    Metric Type: TE (default)
    Path-selection Tiebreaker:
      Global: not set   Tunnel Specific: not set   Effective: min-fill (default)
    Hop Limit: 5
    Cost Limit: disabled
    Path-invalidation timeout: 45000 msec (default), Action: Tear
    AutoRoute: enabled  LockDown: disabled Loadshare: 200 [10000000] bw-based
    auto-bw: disabled
    Protection non-revertive

After non-revertive protect path takes over, and primary path is re-signaled, the primary path is in pending reroute stage as below:

Router# show mpls traffic-eng tunnels tunnel 2222
Name: RP1_t2222                           (Tunnel2222) Destination: 10.11.0.5
  Status:
    Admin: up         Oper: up     Path: valid       Signalling: connected
    path protect option 1, type explicit expl_route_m3_m22 (Basis for Protect, path weight 61)
    path option 1, type dynamic (Basis for Setup, path weight 62)
    path option 2, type explicit expl_route_m4
    Pending Non Revertive is active. Roles switched
    Path Protection: 0 Common Link(s), 0 Common Node(s)
    path protect option 1, type explicit expl_route_m3_m22 (Basis for Protect, path weight 61)
    path protect option 2, type explicit expl_route_m3_m22
    Lockout Info:
      Locked Out: No

  Config Parameters:
    Bandwidth: 2        kbps (Global)  Priority: 7  7   Affinity: 0x0/0xFFFF
    Metric Type: TE (default)
    Path-invalidation timeout: 45000 msec (default), Action: Tear
    AutoRoute: disabled LockDown: disabled Loadshare: 2 [1000000000] bw-based
    auto-bw: disabled
    Protection non-revertive
    Association Type: Single Sided Bidirectional LSPs, Co-routed: YES
    Association ID: 2222, Source: 2.3.4.5, Global ID: 6
    Reverse Bandwidth: 2 kbps, Standby: 2 kbps
    Fault-OAM: enabled, Path-Protection: not ready, Wrap-Protection: disabled, Wrap-Capable: No
  Active Path Option Parameters:
    State: explicit path option 1 is active
    BandwidthOverride: disabled  LockDown: disabled  Verbatim: disabled
  InLabel  :  -
  OutLabel : Ethernet0/2, 17
  Next Hop : 10.2.0.3

Reverse Associated LSP Information: 
    Signaled Name: 10.11.0.5 2222
    Tunnel: 2222, Source: 10.11.0.5, Dest: 10.11.0.1, LSP: 20 State: Up
  Lockout Info: 
    Locked out: No
    Lockout Originated By: None
  Association: 
    Association Type: Single Sided Bidirectional LSPs
    Association ID: 2222 Source: 2.3.4.5
    Protecting
  Extended Association: 
    Global source: 6
    Extended ID: 
    0x0A0B0005 (10.11.0.5)
    0x00000014 (0.0.0.20)
    0x00000013 (0.0.0.19)
    0x00000000 (0.0.0.0)
  RSVP Signalling Info:
       Src 10.11.0.1, Dst 10.11.0.5, Tun_Id 2222, Tun_Instance 20
    RSVP Path Info:
      My Address: 10.2.0.1   
      Explicit Route: 10.2.0.3 10.99.0.3 10.99.0.22 10.7.0.22 
                      10.7.0.5 10.11.0.5 
      Record   Route:   NONE
      Tspec: ave rate=2 kbits, burst=1000 bytes, peak rate=2 kbits
    RSVP Resv Info:
      Record   Route:   NONE
      Fspec: ave rate=2 kbits, burst=1000 bytes, peak rate=2 kbits
  Shortest Unconstrained Path Info:
    Path Weight: 60 (TE)
    Explicit Route: 10.2.0.1 10.2.0.3 10.5.0.3 10.5.0.33 
                    10.8.0.33 10.8.0.5 10.11.0.5 
  History:
    Tunnel:
      Time since created: 1 hours, 1 minutes
      Time since path change: 56 minutes, 11 seconds
      Number of LSP IDs (Tun_Instances) used: 20
   
 Current LSP: [ID: 20]
      Uptime: 59 minutes, 56 seconds
      Selection: protected failure
    Non Revert LSP: [ID: 33]
      Uptime: 37 seconds
    Prior LSP: [ID: 19]
      ID: path option unknown
      Removal Trigger: path tear
Router# show mpls traffic-eng tunnels tunnel 2222 protection
Router_t2222
  LSP Head, Tunnel2222, Admin: up, Oper: up
  Src 10.11.0.1, Dest 10.11.0.5, Instance 20
  Fast Reroute Protection: None
  Lockout Info:
    Locked Out: No
  Pending Non Revertive is active. Roles switched
  Path Protection: 0 Common Link(s), 0 Common Node(s)
    Primary lsp path:10.2.0.1 10.2.0.3  Note this is the active non-revertive protect path
                     10.99.0.3 10.99.0.22 
                     10.7.0.22 10.7.0.5 
                     10.11.0.5 
    Protect lsp path:10.3.0.1 10.3.0.4  Note this is the pending path ready to protect active non-revertive
                     10.6.0.4 10.6.0.44 
                     10.9.0.44 10.9.0.5 
                     10.11.0.5 
    Path Protect Parameters:
      Bandwidth: 2        kbps (Global)  Priority: 7  7   Affinity: 0x0/0xFFFF
      Metric Type: TE (default)
    InLabel  :  -
    OutLabel : Ethernet0/3, 19
    Next Hop : 10.3.0.4
    Reverse Associated LSP Information: 
        Signaled Name: 10.11.0.5 2222
        Tunnel: 2222, Source: 10.11.0.5, Dest: 10.11.0.1, LSP: 29 State: Up
    Lockout Info: 
        Locked out: No
        Lockout Originated By: None
    Association: 
        Association Type: Single Sided Bidirectional LSPs
        Association ID: 2222 Source: 2.3.4.5
    Extended Association: 
        Global source: 6
        Extended ID: 
        0x0A0B0005 (10.11.0.5)
        0x0000001D (0.0.0.29)
        0x00000000 (0.0.0.0)
        0x00000000 (0.0.0.0)
    RSVP Signalling Info:
         Src 10.11.0.1, Dst 10.11.0.5, Tun_Id 2222, Tun_Instance 33
      RSVP Path Info:
        My Address: 10.3.0.1   
        Explicit Route: 10.3.0.4 10.6.0.4 10.6.0.44 10.9.0.44 
                        10.9.0.5 10.11.0.5 
        Record   Route:   NONE
        Tspec: ave rate=2 kbits, burst=1000 bytes, peak rate=2 kbits
      RSVP Resv Info:
        Record   Route:   NONE
        Fspec: ave rate=2 kbits, burst=1000 bytes, peak rate=2 kbits

Flex LSP Sticky

Some tunnel configuration changes (for example, bandwidth) or network events (for example, link failure along the path, a higher priority LSP that preempts the current LSP, or a lockout event on a link along the path) can trigger a new LSP to be signaled. In such instances, the current LSP is switched over to the new LSP in a make-before-break manner.

If the tunnel is running on protect LSP make-before-break is not supported.

The new LSP may have a different path, and lockdown does not prevent this path change. This path change can cause packet jitter that may be unacceptable to Circuit Emulation (CEM) services.

To avoid switching over to a new LSP, a new keyword – sticky is introduced in Cisco IOS XE Everest 16.5.1.

tunnel mpls traffic-eng path-option 1 dynamic {lockdown {sticky}]
Router(config-if)# tunnel mpls traffic-eng path-option 1 dynamic lockdown ?
  bandwidth  override the bandwidth configured on the tunnel
  sticky     stay on the same path after change in required resources

You can configure lockdown as one of LSP attributes, which in turn is extended with the sticky option.

Router(config)#mpls traffic-eng lsp attributes EXAMPLE
Router(config-lsp-attr)#lockdown ?
  sticky  stay on the same path after change in required resources

Note


The sticky option can be configured only on the primary path option.


Once configured, the protect path option with the same path option index is also sticky. This means that either both primary and protect paths are sticky or none of them are sticky.

Use the following command in EXEC mode to manually trigger rerouting the sticky primary and protect path to override the sticky behavior:

mpls traffic-eng reroute {Tunnel <num>}
Router# mpls traffic-eng ?
fast-reroute  fast-reroute command
reoptimize    reoptimize traff-eng tunnels
reroute       allow traff-eng tunnels with sticky path to reroute
setup-timer   set up timer expiration

Restrictions

  • A primary or protect path becomes sticky if the LSP is connected.

  • If the path is for Flex LSP tunnel, the LSP must be bi-directionally connected.

  • If BFD is configured, the LSP must be BFD connected.

Configuring Flex LSP Sticky Option


Note


Both ends of a Flex LSP tunnel must have the same sticky configuration.


!
interface Tunnel1000
 ip unnumbered Loopback0
 tunnel mode mpls traffic-eng
 tunnel destination 56.6.6.6
 tunnel mpls traffic-eng autoroute announce
 tunnel mpls traffic-eng priority 7 7
 tunnel mpls traffic-eng bandwidth 200 
 tunnel mpls traffic-eng path-option 10 dynamic lockdown sticky
 tunnel mpls traffic-eng path-option protect 10 diverse non-revertive lockdown
 tunnel mpls traffic-eng bidirectional association id 1000 source-address 55.5.5.5 global-id 1000
 tunnel mpls traffic-eng bidirectional association type co-routed fault-oam wrap-protection
end

Note


The flex LSP sticky option also works with the primary path as an explicit path, and the protect path is dynamic.


Verifying the Flex LSP Sticky Option

Router# show mpls traffic-eng tunnels tunnel 1000 detail 

Name: asr167_t1000                        (Tunnel1000) Destination: 54.4.4.4
  Status:
    Admin: up         Oper: up     Path: valid       Signalling: connected
    path option 10, (LOCKDOWN & STICKY) type dynamic (Basis for Setup, path weight 4)
    Path Protection: 0 Common Link(s), 0 Common Node(s)
    path protect option 10, (LOCKDOWN & STICKY) type diverse (Basis for Protect, path weight 8)
    Lockout Info:
      Locked Out: No

  Config Parameters:
    Bandwidth: 200      kbps (Global)  Priority: 7  7   Affinity: 0x0/0xFFFF
    Metric Type: TE (default)
    Path-selection Tiebreaker:
      Global: not set   Tunnel Specific: not set   Effective: min-fill (default)
    Hop Limit: disabled
    Cost Limit: disabled
    Path-invalidation timeout: 10000 msec (default), Action: Tear
    AutoRoute: enabled  LockDown(Sticky): enabled  Loadshare: 200 [10000000] bw-based
    auto-bw: disabled
    Association Type: Single Sided Bidirectional LSPs, Co-routed: YES
    Association ID: 1000, Source: 56.6.6.6, Global ID: 1000
    Reverse Bandwidth: 200 kbps, Standby: 200 kbps
    Fault-OAM: enabled, Path-Protection: ready, Wrap-Protection: enabled, Wrap-Capable: Yes
    Fault-OAM Events:
  Active Path Option Parameters:
    State: dynamic path option 10 is active
    BandwidthOverride: disabled  LockDown(Sticky): enabled   Verbatim: disabled
  Binding SID: 28
  Node Hop Count: 2

  InLabel  :  -
  OutLabel : GigabitEthernet0/0/1, 121
  Next Hop : 102.106.12.1
  Reverse Associated LSP Information: 
    Signaled Name: 54.4.4.4 1000
    Tunnel: 1000, Source: 54.4.4.4, Dest: 56.6.6.6, LSP: 13 State: Up
  Lockout Info: 
    Locked out: No
    Lockout Originated By: None
  Association: 
    Association Type: Single Sided Bidirectional LSPs
    Association ID: 1000 Source: 56.6.6.6
  Extended Association: 
    Global source: 1000
    Extended ID: 
    0x36040404 (54.4.4.4)
    0x0000000D (0.0.0.13)
    0x00000000 (0.0.0.0)
    0x00000000 (0.0.0.0)
  RSVP Signalling Info:
       Src 56.6.6.6, Dst 54.4.4.4, Tun_Id 1000, Tun_Instance 18
    RSVP Path Info:
      My Address: 102.106.12.2   
      Explicit Route: 102.106.12.1 102.104.2.1 102.104.2.2 54.4.4.4 
      Record   Route:   NONE
      Tspec: ave rate=200 kbits, burst=1000 bytes, peak rate=200 kbits
    RSVP Resv Info:
      Record   Route:   NONE
      Fspec: ave rate=200 kbits, burst=1000 bytes, peak rate=200 kbits
  Shortest Unconstrained Path Info:
    Path Weight: 4 (TE)
    Explicit Route: 102.106.12.2 102.106.12.1 102.104.2.1 102.104.2.2 
                    54.4.4.4 
  Sticky Primary Path Info:
    Path Option Index: 10
    Explicit Route: 102.106.12.2 102.106.12.1 102.104.2.1 102.104.2.2 
                    54.4.4.4 

  History:
    Tunnel:
      Time since created: 42 seconds
      Time since path change: 21 seconds
      Number of LSP IDs (Tun_Instances) used: 18
    Current LSP: [ID: 18]
      Uptime: 21 seconds
    Prior LSP: [ID: 16]
      ID: path option unknown
      Removal Trigger: path error
Router# show mpls traffic-eng tunnels tunnel 1000 protection 
asr167_t1000
  LSP Head, Tunnel1000, Admin: up, Oper: up
  Src 56.6.6.6, Dest 54.4.4.4, Instance 18
  Fast Reroute Protection: None
  Lockout Info:
    Locked Out: No
  Path Protection: 0 Common Link(s), 0 Common Node(s)
    Primary lsp path: 102.106.12.2 102.106.12.1 102.104.2.1 102.104.2.2 
                      54.4.4.4 
    Protect lsp path: 101.106.1.2 101.106.1.1 101.105.7.1 101.105.7.2 
                      103.105.9.2 103.105.9.1 103.104.10.1 103.104.10.2 
                      54.4.4.4 
    Path Protect Parameters:
      Bandwidth: 200      kbps (Global)  Priority: 7  7   Affinity: 0x0/0xFFFF
      Metric Type: TE (default)
    InLabel  :  -
    OutLabel : GigabitEthernet0/0/2, 133
    Next Hop : 101.106.1.1
    Reverse Associated LSP Information: 
        Signaled Name: 54.4.4.4 1000
        Tunnel: 1000, Source: 54.4.4.4, Dest: 56.6.6.6, LSP: 15 State: Up
    Lockout Info: 
        Locked out: No
        Lockout Originated By: None
    Association: 
        Association Type: Single Sided Bidirectional LSPs
        Association ID: 1000 Source: 56.6.6.6
        Protecting
    Extended Association: 
        Global source: 1000
        Extended ID: 
        0x38060606 (56.6.6.6)
        0x00000013 (0.0.0.19)
        0x00000012 (0.0.0.18)
        0x00000000 (0.0.0.0)
    RSVP Signalling Info:
         Src 56.6.6.6, Dst 54.4.4.4, Tun_Id 1000, Tun_Instance 19
      RSVP Path Info:
        My Address: 101.106.1.2   
        Explicit Route: 101.106.1.1 101.105.7.1 101.105.7.2 103.105.9.2 
                        103.105.9.1 103.104.10.1 103.104.10.2 54.4.4.4 
        Record   Route:   NONE
        Tspec: ave rate=200 kbits, burst=1000 bytes, peak rate=200 kbits
      RSVP Resv Info:
        Record   Route:   NONE
        Fspec: ave rate=200 kbits, burst=1000 bytes, peak rate=200 kbits
  Sticky Protect Path Info:
    Path Option Index: 10
    Explicit Route: 101.106.1.2 101.106.1.1 101.105.7.1 101.105.7.2 
                    103.105.9.2 103.105.9.1 103.104.10.1 103.104.10.2 
                    54.4.4.4

Flex LSP Hop Count and Cost-Max Limit

In some scenarios, path hop count is used as an estimate of path delay between a source node and destination node.

The hop-limit is the number of nodes in the path, excluding the headend. For example, a single-hop tunnel has a headend router and a tailend router, but no mid-node routers, a two-hop tunnel has a single mid-node router and atailend router, and so on.

You can configure the hop-limit applicable to a specific tunnel. For example,

Router(config)# interface tunnel 1400
Router(config-if)# tunnel mpls traffic-eng path-selection hop-limit <1-255> 

Consider the following simple topology with only the path cost and path hop count. The number indicated along each link segment is the link cost.

Without any hop-limit, the best path from Router A to Router E as selected by PCALC is [A, C, D, E] since this path has lower accumulated path cost than the other path [A, B, E]. If hop-limit is set to two, then the best path that can pass this check is [A, B, E] even though it has higher accumulated path cost.

Figure 1. Topology: Hop Count and Path Cost

Flex LSP Cost-Max Limit

In some scenarios, accumulated path cost is used as an estimate for path delay between a source node and destination node. The intent is to ensure that the accumulated path cost of a chosen path is not higher than a configured limit. A cost limit check is added after the CSPF determines the best path (lowest cost path that satisfied the path request constraints) from source node to destination node, and that for path verification.


Note


Ensure that the accumulated path cost for co-routed bidirectional LSP includes both, forward and reverse path cost.


To configure the hop-limit that is applicable to a specific tunnel, use:

Router(config)# interface tunnel 1400
Router(config-if)# tunnel mpls traffic-eng path-selection cost-limit <1-4294967295>  

Configuring Flex LSP Hop Count and Cost-Max Limit

Configure each end of the co-routed bi-directional LSP independently. Ensure that cost-limit and hop-limit on both ends are configured in the same way.

Router(config)# interface tunnel 1000
Router(config-if)# ip unnumbered loopback0
Router(config-if)# tunnel mode mpls traffic-eng
Router(config-if)# tunnel destination 56.6.6.6
Router(config-if)# tunnel mpls traffic-eng bidir association type co-routed fault-oam wrap
Router(config-if)# tunnel mpls traffic-eng bidir association id 1000 source 55.5.5.5 global 1000
Router(config-if)# tunnel mpls traffic-eng path-selection hop-limit 5
Router(config-if)# tunnel mpls traffic-eng bandwidth 200
Router(config-if)# tunnel mpls traffic-eng autoroute announce
Router(config-if)# tunnel mpls traffic-eng path-option 10 dynamic
Router(config)# interface tunnel 3000
Router(config-if)# ip unnumbered loopback0
Router(config-if)# tunnel mode mpls traffic-eng
Router(config-if)# tunnel destination 56.6.6.6
Router(config-if)# tunnel mpls traffic-eng bidir association type co-routed fault-oam wrap
Router(config-if)# tunnel mpls traffic-eng bidir association id 3000 source 55.5.5.5 global 3000
Router(config-if)# tunnel mpls traffic-eng path-selection cost-limit 50
Router(config-if)# tunnel mpls traffic-eng bandwidth 200
Router(config-if)# tunnel mpls traffic-eng autoroute announce
Router(config-if)# tunnel mpls traffic-eng path-option 10 dynamic

Verifying Flex LSP Hop Count and Cost-Max Limit

Router# show mpls traffic-eng tunnels tunnel 1000 detail

Name: Router_t1000                           (Tunnel1000) Destination: 56.6.6.6
  Status:
    Admin: up         Oper: up     Path: valid       Signalling: connected
    path option 10, type dynamic (Basis for Setup, path weight 40)
    Lockout Info:
      Locked Out: No

  Config Parameters:
    Bandwidth: 200      kbps (Global)  Priority: 7  7   Affinity: 0x0/0xFFFF
    Metric Type: TE (default)
    Path-selection Tiebreaker:
      Global: not set   Tunnel Specific: not set   Effective: min-fill (default)
    Hop Limit: 5
Router# show mpls traffic-eng tunnels tunnel 3000 detail

Name: Router_t3000                           (Tunnel3000) Destination: 56.6.6.6
  Status:
    Admin: up         Oper: up     Path: valid       Signalling: connected
    path option 10, type dynamic (Basis for Setup, path weight 40)
    Lockout Info:
      Locked Out: No

  Config Parameters:
    Bandwidth: 200      kbps (Global)  Priority: 7  7   Affinity: 0x0/0xFFFF
    Metric Type: TE (default)
    Path-selection Tiebreaker:
      Global: not set   Tunnel Specific: not set   Effective: min-fill (default)
    Hop Limit: disabled
    Cost Limit: 50

Note


The accumulated path cost for co-routed bidirectional LSP includes both, forward and reverse path cost.


Flex LSP ECMP min-fill, max-fill, random

MPLS TE chooses the least utilized path given the same accumulated path cost and hop count. However, in Cisco IOS XE Everest 16.5.1, you can steer traffic to an alternate path, depending on:

Tie-breaker 1: min-fill (choose least-utilized path)

  • Smaller path cost value

  • Larger path minimum bandwidth

  • Smaller hop count value

  • Lexicographically selects a greater path bandwidth vector (bandwidth value is sorted in ascending order)

Tie-breaker 2: max-fill (choose most-utilized path)

  • Smaller path cost value

  • Smaller path minimum bandwidth

  • Smaller hop count value

  • Lexicographically selects a smaller path bandwidth vector (bandwidth value is sorted in ascending order)

Tie-breaker 3: random

  • Smaller path cost value

  • Smaller hop count value

  • Randomly selects a path regardless of the path bandwidth value (as long as it satisfies the request constraints)

The key decision criterion is still path cost; the tie-breakers evaluate, in sequence, until a path is selected. The random tie-breaker does not take the available link bandwidth into consideration.

Configuring Flex LSP ECMP min-fill and max-fill

ECMP can be configured globally or specifically to a tunnel. Tunnel specific configuration override the global tiebreaker selection. The default selection algorithm is min-fill.

For a Flex LSP co-routed tunnel, the same path-selection tiebreaker should be configured on each end of the bi-directional LSP.

Global Configuration Command

Router(config)# mpls traffic-eng path-selection tiebreaker ?
  max-fill  Use max-fill tiebreaker
  min-fill  Use min-fill tiebreaker
  random    Use random tiebreaker

Use the no mpls traffic-eng path-selection tiebreaker command to remove the global configuration.

Tunnel-Specific Configuration Commands

Configure path selection tiebreaker that is applicable to a specific tunnel. Tunnel specific configuration override global tiebreaker configuration.

Router(config)# interface tunnel 1400
Router(config-if)# tunnel mpls traffic-eng path-selection tiebreaker ?
  max-fill  Use max-fill tiebreaker
  min-fill  Use min-fill tiebreaker
  random    Use random tiebreaker

Use the no tunnel mpls traffic-eng path-selection tiebreaker command to remove the tunnel-specific configuration.

Router(config)# interface tunnel 2000
Router(config-if)# ip unnumbered loopback0
Router(config-if)# tunnel mode mpls traffic-eng
Router(config-if)# tunnel destination 56.6.6.6
Router(config-if)# tunnel mpls traffic-eng bidir association type co-routed fault-oam wrap
Router(config-if)# tunnel mpls traffic-eng bidir association id 2000 source 55.5.5.5 global 2000
Router(config-if)# tunnel mpls traffic-eng path-select tie min-fill
Router(config-if)# tunnel mpls traffic-eng bandwidth 5000
Router(config-if)# tunnel mpls traffic-eng autoroute announce
Router(config-if)# tunnel mpls traffic-eng path-option 10 dynamic
Router(config)# interface tunnel 2000
Router(config-if)# ip unnumbered loopback0
Router(config-if)# tunnel mode mpls traffic-eng
Router(config-if)# tunnel destination 56.6.6.6
Router(config-if)# tunnel mpls traffic-eng bidir association type co-routed fault-oam wrap
Router(config-if)# tunnel mpls traffic-eng bidir association id 2000 source 55.5.5.5 global 2000
Router(config-if)# tunnel mpls traffic-eng path-select tie max-fill
Router(config-if)# tunnel mpls traffic-eng bandwidth 5000
Router(config-if)# tunnel mpls traffic-eng autoroute announce
Router(config-if)# tunnel mpls traffic-eng path-option 10 dynamic

Verifying the Flex LSP ECMP min-fill and max-fill

Global Commands

To display the current global tiebreaker value.

  • If the global tiebreaker is not set, the effective tiebreaker is the default setting (min-fill).

  • If the global tiebreaker is set, it is the effective tiebreaker as well.

Router# show mpls traffic-eng path-selection tiebreaker 

Global Path Selection Tiebreaker
---------------------------------------------
Configured Tiebreaker: not set
Effective Tiebreaker: min-fill (default)

Tunnel-Specific Commands

To display current tiebreaker configuration of a tunnel:

Router# show mpls traffic-eng tunnels tunnel 1400 path-selection tiebreaker 
Tunnel Name                  Global     Tunnel Specific      Effective 
Router_t1400                 not set    max-fill             max-fill  

To display the tiebreaker:

Router# show mpls traffic-eng tunnels tunnel 2000 detail

Name: Router_t2000                           (Tunnel2000) Destination: 56.6.6.6
  Status:
    Admin: up         Oper: up     Path: valid       Signalling: connected
    path option 10, type dynamic (Basis for Setup, path weight 80)
    Lockout Info:
      Locked Out: No

  Config Parameters:
    Bandwidth: 5000     kbps (Global)  Priority: 7  7   Affinity: 0x0/0xFFFF
    Metric Type: TE (default)
    Path-selection Tiebreaker:
      Global: not set   Tunnel Specific: min-fill   Effective: min-fill
    Hop Limit: 5
    Cost Limit: disabled
    Path-invalidation timeout: 45000 msec (default), Action: Tear
    AutoRoute: enabled  LockDown: disabled Loadshare: 5000 [400000] bw-based
    auto-bw: disabled
    Association Type: Single Sided Bidirectional LSPs, Co-routed: YES

Use the debug mpls traffic-eng path ecmp command to display the ECMP-related debug information, such as for BWV comparison when all other tiebreakers failed to yield a selected path. Use this command in conjunction with the debug mpls traffic-eng path spf or debug mpls traffic-eng path lookup commands.

Restore Path Option

The restore path option signals a restore LSP after the double failure of both, primary and protect LSPs. The restore LSP is signaled only after both, primary and protect LSPs fail or are administratively down and it is destroyed when the primary LSP comes back up. If the sticky option is configured, and both, primary and protect LSPs fail, restore LSP is destroyed when either the primary or protect LSP comes up. Also, restore LSP can be SRLG capable if it is configured.


Note


Traffic loss is expected and acceptable until the restore LSP is signaled and established.


When the primary LSP recovers, traffic is automatically switched back to the primary LSP (make-before-break scenario) and restore LSP is torn down. If the sticky option is configured in the path option, protect LSP can recover before the primary LSP. In this case, traffic reverted to the protect LSP and the restore LSP is torn down.

To enable restore LSP for a tunnel, configure the restore path option under the tunnel interface using the command:

tunnel mpls traffic-eng path-option restore <index> [dynamic | explicit]

Multiple restore path options can be configured on a tunnel. However, only the restore path option with the same index as the path option used by primary LSP is used for establishing the restore LSP. For example, after primary and protect LSPs associated with the path option index X are administratively down, restore LSP is signaled using the restore path option with index X, if it is configured. Else, no restore LSP is signaled.


Note


Restore path option is supported for unidirectional, bidirectional co-routed, or non co-routed tunnels. It is not supported for lockout, sticky, and non-revertive modes.


Configuring the Restore Path Option

tunnel mpls traffic-eng path-option restore <index> [dynamic | explicit]
Router(config-if)# tunnel mpls traffic-eng path-option ?         
  <1-1000> preference for this path option
  protect   a path protection setup option
  restore   a path restore setup option

Verifying the Restore Path Option

The following is an example of the information displayed for the tunnel when restore LSP is carrying traffic:

Router# show mpls traffic-eng tunnels Tunnel 100
Name: iolA_t100                           (Tunnel100) Destination: 192.168.1.4
  Status:
    Admin: up         Oper: up     Path: valid       Signalling: connected
    path restore option 1, type dynamic (Basis for Restore, path weight 40)
    path option 1, (LOCKDOWN & STICKY) type dynamic
    Path Protection: Requested
    path protect option 1, (LOCKDOWN & STICKY) type diverse
    Path Restore: Restore lsp in use.
    path restore option 1, type dynamic (Basis for Restore, path weight 40)
    Lockout Info:
      Locked Out: No
Router# show running-config interface tunnel 1000
Building configuration...

Current configuration: 675 bytes
!
interface Tunnel1000
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 56.6.6.6
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng priority 7 7
tunnel mpls traffic-eng bandwidth 200
tunnel mpls traffic-eng path-option 10 dynamic lockdown sticky
tunnel mpls traffic-eng path-option protect 10 diverse non-revertive lockdown
tunnel mpls traffic-eng path-option restore 10 dynamic
tunnel mpls traffic-eng bidirectional association id 1000 source-address 55.5.5.5 global-id 1000
tunnel mpls traffic-eng bidirectional association type co-routed fault-oam wrap-protection
tunnel mpls traffic-eng bfd encap-mode gal flex_bfd
Router# show mpls traffic-eng tunnels tunnel 1000

Name: Router_t1000 (Tunnel1000) Destination: 56.6.6.6
Status:
Admin: up Oper: up Path: valid Signalling: connected
path restore option 10, type dynamic (Basis for Restore, path weight 6)
path option 10, (LOCKDOWN & STICKY) type dynamic
Path Protection: Requested
path protect option 10, (LOCKDOWN & STICKY) type (NON-REVERTIVE)diverse
Path Restore: Restore lsp in use.
path restore option 10, type dynamic (Basis for Restore, path weight 6)
Lockout Info:
Locked Out: No

Config Parameters:
Bandwidth: 200 kbps (Global) Priority: 7 7 Affinity: 0x0/0xFFFF
Metric Type: TE (default)
Path-selection Tiebreaker:
Global: not set Tunnel Specific: not set Effective: min-fill (default)
Hop Limit: disabled
Cost Limit: disabled
Path-invalidation timeout: 10000 msec (default), Action: Tear
AutoRoute: enabled LockDown: disabled Loadshare: 200 [10000000] bw-based
auto-bw: disabled
Association Type: Single Sided Bidirectional LSPs, Co-routed: YES
Association ID: 1000, Source: 55.5.5.5, Global ID: 1000
Reverse Bandwidth: 200 kbps, Standby: 200 kbps
Fault-OAM: enabled, Path-Protection: no protection, Wrap-Protection: enabled, Wrap-Capable: No
BFD:
Mode: GAL
Template: flex_bfd
BFD Counters:
Session create: 14
Session delete: 11
Session create error: 0
Session delete error: 0
Active Path Option Parameters:
State: dynamic path option 10 is active
BandwidthOverride: disabled LockDown: disabled Verbatim: disabled
Node Hop Count: 3

InLabel: -
OutLabel: GigabitEthernet0/3/0, 21
Next Hop: 101.105.1.1
Reverse Associated LSP Information:
Signaled Name: 56.6.6.6 1000
Tunnel: 1000, Source: 56.6.6.6, Dest: 55.5.5.5, LSP: 133 State: Up
Lockout Info:
Locked out: No
Lockout Originated By: None
Association:
Association Type: Single Sided Bidirectional LSPs
Association ID: 1000 Source: 55.5.5.5
Restoring
Extended Association:
Global source: 1000
Extended ID:
0x38060606 (56.6.6.6)
0x00000085 (0.0.0.133)
0x00000000 (0.0.0.0)
0x00000005 (0.0.0.5)
RSVP Signalling Info:
Src 55.5.5.5, Dst 56.6.6.6, Tun_Id 1000, Tun_Instance 91
RSVP Path Info:
My Address: 101.105.1.2
Explicit Route: 101.105.1.1 101.102.6.1 101.102.6.2 102.106.2.1
102.106.2.2 56.6.6.6
Record Route: NONE
Tspec: ave rate=200 kbits, burst=1000 bytes, peak rate=200 kbits
RSVP Resv Info:
Record Route: NONE
Fspec: ave rate=200 kbits, burst=1000 bytes, peak rate=200 kbits
Shortest Unconstrained Path Info:
Path Weight: 6 (TE)
Explicit Route: 101.105.5.2 101.105.5.1 101.102.6.1 101.102.6.2
102.106.2.1 102.106.2.2 56.6.6.6
Sticky Primary Path Info:
Path Option Index: 10
Explicit Route: 102.105.12.2 102.105.12.1 102.106.2.1 102.106.2.2
56.6.6.6
Reason for the tunnel being down: Bidirectional: standby error from [56.6.6.6][TAIL] LSP[73]

History:
Tunnel:
Time since created: 34 minutes, 3 seconds
Time since path change: 4 seconds
Number of LSP IDs (Tun_Instances) used: 91
Current LSP: [ID: 91]
Uptime: 9 seconds
Selection:
Prior LSP: [ID: 77]
ID: path option 10 [102]
Removal Trigger: path verification failed
Last Error: CTRL:: Explicit path has unknown address, 102.105.12.2

Re-optimization with Tunnel Bandwidth Modification on Flex-LSP Protect Path

Table 1. Feature History

Feature Name

Release Information

Description

Re-optimization with Tunnel Bandwidth Modification on Flex-LSP Protect Path

Cisco IOS XE Bengaluru 17.4.1

This feature supports Make Before Break (MBB) functionality and thus ensures there is no traffic loss when a MPLS Flex LSP tunnel runs on protect LSP (if working LSP goes down) and the tunnel bandwidth is modified.

When the working LSP comes up, use the following command to manually switch from the working to protect LSP:

mpls traffic-eng switch tunnel tunnel-ID

Prior to Cisco IOS XE Bengaluru Release 17.4.1, when a MPLS Flex LSP tunnel used to run on the protect LSP (when the working LSP would go down) and the tunnel bandwidth was modified, the existing LSP was replaced by a new LSP. The new LSP reflected the tunnel bandwidth, but there was a traffic loss of two seconds. This happened because Make Before Break (MBB) functionality was only supported on the working LSP and not on the protect LSP.

Starting with Cisco IOS XE Bengaluru Release 17.4.1, the MBB functionality is supported on the protect LSP. Thus, when a working LSP goes down, the tunnel does not break and continues with the old bandwidth. You need to manually bring up the working LSP to experience the new bandwidth. When the working LSP comes up, use the following command to manually switch from the working to the protect LSP:

mpls traffic-eng switch tunnel tunnel-ID .

This configuration switches the traffic from protect to working. Thus, both the working and protect LSP reflect the new bandwidth. This in turn ensures no traffic loss.

Configuration Example: Flex LSP MBB Support on Protect Path

Prerequisites of Configuration:
  • You must configure the Flex LSP tunnel as sticky and non-revertive.

  • The tunnel must run on the protect LSP and not on the working LSP.

The following example shows the Flex LSP MBB on protect path configuration:

Router#show run interface tunnel2200
interface Tunnel2200
 ip unnumbered Loopback1
 tunnel mode mpls traffic-eng
 tunnel destination 21.21.21.21
 tunnel mpls traffic-eng path-option 1 dynamic attributes modern-plane1-sticky
 tunnel mpls traffic-eng path-option protect 1 diverse non-revertive lockdown attributes modern-plane1-sticky
 tunnel mpls traffic-eng path-option restore 1 dynamic
 tunnel mpls traffic-eng bidirectional association id 2200 source-address 2.2.0.1 global-id 2200
 tunnel mpls traffic-eng bidirectional association type co-routed fault-oam wrap-protection
 tunnel mpls traffic-eng bfd encap-mode gal FlexBfd
end

Router#show run | s modern-plane1-sticky
mpls traffic-eng lsp attributes modern-plane1-sticky
 lockdown sticky

Router#configure terminal 
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#interface tunnel2200
Router(config-if)#tunnel mpls traffic-eng bandwidth 100
Router(config-if)#
Aug 14 20:26:39.354 IST: %BFD-6-BFD_SESS_DESTROYED: BFD-SYSLOG: bfd_session_destroyed,  ld:489 neigh proc:MPLS-TE-GAL, handle:9 active^Z
Aug 14 20:26:39.412 IST: %MPLS_TE-5-TUN: Tunnel2200:New bandwidth configs are not applied, bring up primary and switch to primary using 'mpls traffic-eng switch tunnel' command to apply new bandwidth changes
Aug 14 20:26:40.211 IST: %BFD-6-BFD_SESS_CREATED: BFD-SYSLOG: bfd_session_created, neigh Label: 9982 proc:MPLS-TE-GAL, idb:Tunnel2200 handle:12 act
Aug 14 20:26:40.554 IST: %SYS-5-CONFIG_I: Configured from console by console
Aug 14 20:26:40.927 IST: %BFDFSM-6-BFD_SESS_UP: BFD-SYSLOG: BFD session ld:490 handle:12 is going UP
Router#
Router#show run interface tunnel2200
interface Tunnel2200
 ip unnumbered Loopback1
 tunnel mode mpls traffic-eng
 tunnel destination 21.21.21.21
 tunnel mpls traffic-eng bandwidth 100
 tunnel mpls traffic-eng path-option 1 dynamic attributes modern-plane1-sticky
 tunnel mpls traffic-eng path-option protect 1 diverse non-revertive lockdown attributes modern-plane1-sticky
 tunnel mpls traffic-eng path-option restore 1 dynamic
 tunnel mpls traffic-eng bidirectional association id 2200 source-address 2.2.0.1 global-id 2200
 tunnel mpls traffic-eng bidirectional association type co-routed fault-oam wrap-protection
 tunnel mpls traffic-eng bfd encap-mode gal FlexBfd
end
Router#

Router#mpls traffic-eng switch tunnel 2200
Router#
Aug 14 20:30:10.359 IST: %BFDFSM-6-BFD_SESS_DOWN: BFD-SYSLOG: BFD session ld:459 handle:417,is going Down Reason: DETECT TIMER EXPIRED
Aug 14 20:31:40.398 IST: %BFD-6-BFD_SESS_DESTROYED: BFD-SYSLOG: bfd_session_destroyed,  ld:459 neigh proc:MPLS-TE-GAL, handle:417 active
Aug 14 20:31:40.753 IST: %BFD-6-BFD_SESS_CREATED: BFD-SYSLOG: bfd_session_created, neigh Label: 10105 proc:MPLS-TE-GAL, idb:Tunnel2200 handle:9 act
Aug 14 20:31:41.623 IST: %BFDFSM-6-BFD_SESS_UP: BFD-SYSLOG: BFD session ld:491 handle:9 is going UP
Router#
Router#

Verification of Flex LSP MBB Support on Protect Path Configuration

Use the show mpls traffic-eng tunnels Tunnel tunnel-ID command to view the details of the specified tunnel ID:

Router#show mpls traffic-eng tunnels tunnel tunnel ID

Name: Router_t2200                        (Tunnel2200) Destination: 21.21.21.21
  Status:
    Admin: up         Oper: up     Path: valid       Signalling: connected
    path protect option 1, (LOCKDOWN & STICKY) type  (NON-REVERTIVE)diverse (Basis for Protect, path weight 80)
      Path-option attribute: modern-plane1-sticky
        Change in required resources detected: reroute pending (sticky)
        Currently Signalled Parameters:
          Bandwidth: 0        kbps (Global)  Priority: 7  7   Affinity: 0x0/0xFFFF
          Metric Type: TE (default)
    path option 1, (LOCKDOWN & STICKY) type dynamic (Basis for Setup, path weight 40)
      Path-option attribute: modern-plane1-sticky
    Pending Non Revertive is signaled. Roles switched
    Path Protection: 0 Common Link(s), 0 Common Node(s)
    path protect option 1, (LOCKDOWN & STICKY) type  (NON-REVERTIVE)diverse (Basis for Protect, path weight 80)
      Path-option attribute: modern-plane1-sticky
    path restore option 1, type dynamic
    Lockout Info:
      Locked Out: No

  Config Parameters:
    Bandwidth: 100      kbps (Global)  Priority: 7  7   Affinity: 0x0/0xFFFF
    Metric Type: TE (default)
    Path-selection Tiebreaker:
      Global: not set   Tunnel Specific: not set   Effective: min-fill (default)
    Hop Limit: disabled
    Cost Limit: disabled
    Path-invalidation timeout: 10000 msec (default), Action: Tear
    AutoRoute: disabled LockDown(Sticky): enabled  Loadshare: 100 [20000000] bw-based
    auto-bw: disabled
    Attribute-set: modern-plane1-sticky
    Protection non-revertive
    Association Type: Single Sided Bidirectional LSPs, Co-routed: YES
    Association ID: 2200, Source: 2.2.0.1, Global ID: 2200
    Reverse Bandwidth: 0 kbps, Standby: 0 kbps
    Fault-OAM: enabled, Path-Protection: not ready, Wrap-Protection: enabled, Wrap-Capable: Yes
    BFD:
      Mode: GAL
      Template: FlexBfd 
      BFD Counters:
        Session create: 7
        Session delete: 5
        Session create error: 0
        Session delete error: 0
  Active Path Option Parameters:
    State: diverse path option 1 is active
    BandwidthOverride: disabled  LockDown(Sticky): enabled   Verbatim: disabled
  Node Hop Count: 4

  InLabel  :  -
  OutLabel : BDI125, 1390
  Next Hop : 14.0.3.1
  Reverse Associated LSP Information: 
    Signaled Name: 21.21.21.21 2200
    Tunnel: 2200, Source: 21.21.21.21, Dest: 25.25.25.25, LSP: 2682 State: Up
  Lockout Info: 
    Locked out: No
    Lockout Originated By: None
  Association: 
    Association Type: Single Sided Bidirectional LSPs
    Association ID: 2200 Source: 2.2.0.1
    Protecting
  Extended Association: 
    Global source: 2200
    Extended ID: 
    0x15151515 (21.21.21.21)
    0x00000A7A (0.0.10.122)
    0x00000A79 (0.0.10.121)
    0x00000003 (0.0.0.3)
  RSVP Signalling Info:
       Src 25.25.25.25, Dst 21.21.21.21, Tun_Id 2200, Tun_Instance 193
    RSVP Path Info:
      My Address: 14.0.3.2   
      Explicit Route: 14.0.3.1 14.0.2.1 14.0.1.1 14.0.0.1 
                      21.21.21.21 
      Record   Route:   NONE
      Tspec: ave rate=0 kbits, burst=1000 bytes, peak rate=0 kbits
    RSVP Resv Info:
      Record   Route:   NONE
      Fspec: ave rate=0 kbits, burst=0 bytes, peak rate=0 kbits
  Shortest Unconstrained Path Info:
    Path Weight: 40 (TE)
    Explicit Route: 14.0.4.2 14.0.5.2 21.21.21.21 
  Sticky Primary Path Info:
    Path Option Index: 1
    Explicit Route: 14.0.11.1 14.0.6.2 21.21.21.21 
          
  History:
    Tunnel:
      Time since created: 12 hours, 48 minutes
      Time since path change: 4 minutes, 43 seconds
      Number of LSP IDs (Tun_Instances) used: 193
    Current LSP: [ID: 193]
      Uptime: 12 hours, 32 minutes
      Selection: protected failure
    Pend Non Revert LSP: [ID: 196]
      Uptime: 1 minutes, 11 seconds
    Prior LSP: [ID: 192]
      ID: path option unknown
      Removal Trigger: unspecified
Router#    
Router#

Router#show mpls traffic-eng tun t 2200

Name: Router_t2200                        (Tunnel2200) Destination: 21.21.21.21
  Status:
    Admin: up         Oper: up     Path: valid       Signalling: connected
    path option 1, (LOCKDOWN & STICKY) type dynamic (Basis for Setup, path weight 40)
      Path-option attribute: modern-plane1-sticky
    Path Protection: 0 Common Link(s), 0 Common Node(s)
    path protect option 1, (LOCKDOWN & STICKY) type  (NON-REVERTIVE)diverse (Basis for Protect, path weight 80)
      Path-option attribute: modern-plane1-sticky
    path restore option 1, type dynamic
    Lockout Info:
      Locked Out: No

  Config Parameters:
    Bandwidth: 100      kbps (Global)  Priority: 7  7   Affinity: 0x0/0xFFFF
    Metric Type: TE (default)
    Path-selection Tiebreaker:
      Global: not set   Tunnel Specific: not set   Effective: min-fill (default)
    Hop Limit: disabled
    Cost Limit: disabled
    Path-invalidation timeout: 10000 msec (default), Action: Tear
    AutoRoute: disabled LockDown(Sticky): enabled  Loadshare: 100 [20000000] bw-based
    auto-bw: disabled
    Attribute-set: modern-plane1-sticky
    Protection non-revertive
    Association Type: Single Sided Bidirectional LSPs, Co-routed: YES
    Association ID: 2200, Source: 2.2.0.1, Global ID: 2200
    Reverse Bandwidth: 0 kbps, Standby: 0 kbps
    Fault-OAM: enabled, Path-Protection: ready, Wrap-Protection: enabled, Wrap-Capable: Yes
    BFD:
      Mode: GAL
      Template: FlexBfd 
      BFD Counters:
        Session create: 8
        Session delete: 6
        Session create error: 0
        Session delete error: 0
  Active Path Option Parameters:
    State: dynamic path option 1 is active
    BandwidthOverride: disabled  LockDown(Sticky): enabled   Verbatim: disabled
  Node Hop Count: 2

  InLabel  :  -
  OutLabel : TenGigabitEthernet0/0/0, 1267
  Next Hop : 14.0.11.1
  Reverse Associated LSP Information: 
    Signaled Name: 21.21.21.21 2200
    Tunnel: 2200, Source: 21.21.21.21, Dest: 25.25.25.25, LSP: 2687 State: Up
  Lockout Info: 
    Locked out: No
    Lockout Originated By: None
  Association: 
    Association Type: Single Sided Bidirectional LSPs
    Association ID: 2200 Source: 2.2.0.1
  Extended Association: 
    Global source: 2200
    Extended ID: 
    0x19191919 (25.25.25.25)
    0x000000C4 (0.0.0.196)
    0x00000000 (0.0.0.0)
    0x00000001 (0.0.0.1)
  RSVP Signalling Info:
       Src 25.25.25.25, Dst 21.21.21.21, Tun_Id 2200, Tun_Instance 196
    RSVP Path Info:
      My Address: 14.0.11.2   
      Explicit Route: 14.0.11.1 14.0.6.2 21.21.21.21 
      Record   Route:   NONE
      Tspec: ave rate=100 kbits, burst=1000 bytes, peak rate=100 kbits
    RSVP Resv Info:
      Record   Route:   NONE
      Fspec: ave rate=100 kbits, burst=0 bytes, peak rate=100 kbits
  Shortest Unconstrained Path Info:
    Path Weight: 40 (TE)
    Explicit Route: 14.0.4.2 14.0.5.2 21.21.21.21 
  Sticky Primary Path Info:
    Path Option Index: 1
    Explicit Route: 14.0.11.1 14.0.6.2 21.21.21.21 

  History:
    Tunnel:
      Time since created: 12 hours, 53 minutes
      Time since path change: 1 minutes, 59 seconds
      Number of LSP IDs (Tun_Instances) used: 196
    Current LSP: [ID: 196]
      Uptime: 5 minutes, 29 seconds
      Selection: Non Revertive
    Prior LSP: [ID: 193]
      ID: path option unknown
      Removal Trigger: configuration changed (medium)