IGP Shortcuts

This chapter provides information about IGP shortcuts.

Topics in this chapter include:

Applicability

This chapter is applicable to SR OS when the feature is not related to BGP. There are no other prerequisites for this configuration. This chapter was initially written for SR OS Release 12.0.R3, but the MD-CLI in the current edition corresponds to SR OS Release 21.2.R1.

Overview

Interior Gateway Protocols (IGPs) are routing protocols that operate inside an Autonomous System (AS). An AS is a network domain that is managed under a single administration. Because the scope of operation of an IGP is usually within an AS, IGPs are also called intra-AS protocols. The purpose of an IGP is to provide reachability information to destination nodes that are inside the domain. IGPs can be one or more of a variety of protocols, including routing protocols such as Routing Information Protocol (RIP) version 1 or 2, Open Shortest Path First (OSPF), and Intermediate System to Intermediate System (IS-IS).

IGPs such as OSPF and IS-IS are link-state protocols that use a Shortest Path First (SPF) algorithm to compute the shortest path tree to all nodes in a network. The results of such computations indicate the destination node, next hop address, and output interface, where the output interface is a physical interface. Optionally, Multi-Protocol Label Switching (MPLS) Label Switched Paths (LSPs) can be included in the SPF algorithm on the node performing the calculations, as LSPs behave as logical interfaces directly connected to remote nodes in the network. Because the SPF algorithm treats the LSPs in the same way as a physical interface (being a potential output interface), the computation results could be to select a destination node together with an output LSP, using the LSP as a shortcut through the network to the destination node.

Normal SPF Tree Sourced by PE-1 shows a normal SPF tree sourced by PE-1 (Provider Edge-1).

Figure 1. Normal SPF Tree Sourced by PE-1

If there is an LSP that connects PE-1 to PE-5, and IGP shortcuts are configured on PE-1, the SPF tree will be as shown in SPF Tree Sourced by PE-1 Using LSP Shortcuts.

Figure 2. SPF Tree Sourced by PE-1 Using LSP Shortcuts

IGP shortcuts are enabled on a per router basis; SPF computations are independent and irrelevant to other routers, so there is no need to enable shortcuts on every single router.

The example topology used in this example is shown in Example Topology. The setup consists of six 7750 service routers. There is a single AS and a single IGP area. The following configuration tasks should be completed first:

  • IS-IS or OSPF on all interfaces within the AS (configuration has been done using IS-IS but using OSPF shows exactly the same behavior).

  • Label Distribution Protocol (LDP) and Resource Reservation Protocol (RSVP) on all interfaces within the AS.

    Figure 3. Example Topology

In all figures, Lb stands for Loopback and Sys stands for the system IP addresses.

Configuration

The first step is to configure the IGP (IS-IS) on all nodes, where IS-IS redistributes route reachability to all routers. To facilitate IS-IS configuration, all routers are L2-L1 capable within the same IS-IS area-id so there is only a single topology area in the network (all routers share the same topology). Traffic engineering (TE) is enabled on the IGP as it is a requirement for RSVP. The metric is using the default values: because no reference bandwidth command is used, the default metric of 10 is applicable on all interfaces. The configuration for PE-2 is as follows.

[/]
A:admin@PE-2# configure {
    router "Base" {
        interface "int-PE-2-PE-1" {
            port 1/1/2
            ipv4 {
                primary {
                    address 192.168.12.2
                    prefix-length 30
                }
            }
        }
        interface "int-PE-2-PE-3" {
            port 1/1/3
            ipv4 {
                primary {
                    address 192.168.23.1
                    prefix-length 30
                }
            }
        }
        interface "int-PE-2-PE-4" {
            port 1/1/1
            ipv4 {
                primary {
                    address 192.168.24.1
                    prefix-length 30
                }
            }
        }
        interface "system" {
            ipv4 {
                primary {
                    address 192.0.2.2
                    prefix-length 32
                }
            }
        }
        isis 0 {
            admin-state enable
            traffic-engineering true
            area-address [49.0001]
            interface "int-PE-2-PE-1" {
                interface-type point-to-point
            }
            interface "int-PE-2-PE-3" {
                interface-type point-to-point
            }
            interface "int-PE-2-PE-4" {
                interface-type point-to-point
            }
            interface "system" {
                passive true
            }
        }
    }
}

The configuration for the other nodes is similar. The IP addresses can be derived from Example Topology.

The global route table (GRT) for PE-2 is as follows:

[/]
A:admin@PE-2# show router route-table

===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric   
-------------------------------------------------------------------------------
192.0.2.1/32                                  Remote  ISIS      00h02m31s  15
       192.168.12.1                                                 10
192.0.2.2/32                                  Local   Local     00h02m32s  0
       system                                                       0
192.0.2.3/32                                  Remote  ISIS      00h02m05s  15
       192.168.23.2                                                 10
192.0.2.4/32                                  Remote  ISIS      00h01m51s  15
       192.168.24.2                                                 10
192.0.2.5/32                                  Remote  ISIS      00h01m31s  15
       192.168.23.2                                                 20
192.0.2.6/32                                  Remote  ISIS      00h01m09s  15
       192.168.24.2                                                 20
192.168.12.0/30                               Local   Local     00h02m32s  0
       int-PE-2-PE-1                                                0
192.168.13.0/30                               Remote  ISIS      00h02m31s  15
       192.168.12.1                                                 20
192.168.23.0/30                               Local   Local     00h02m32s  0
       int-PE-2-PE-3                                                0
192.168.24.0/30                               Local   Local     00h02m32s  0
       int-PE-2-PE-4                                                0
192.168.35.0/30                               Remote  ISIS      00h02m05s  15
       192.168.23.2                                                 20
192.168.45.0/30                               Remote  ISIS      00h01m51s  15
       192.168.24.2                                                 20
192.168.46.0/30                               Remote  ISIS      00h01m51s  15
       192.168.24.2                                                 20
192.168.56.0/30                               Remote  ISIS      00h01m31s  15
       192.168.23.2                                                 30
-------------------------------------------------------------------------------
No. of Routes: 14
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

LDP and RSVP Shortcuts

Interface Label Distribution Protocol (iLDP) is enabled on all interfaces (except system interfaces, which is not allowed) in all routers. The configuration on all nodes is similar and the IP addresses are derived from Example Topology. The configuration of PE-4 is as follows:

[/]
A:admin@PE-4# configure {
    router "Base" {
        ldp {
            interface-parameters {
                interface "int-PE-4-PE-2" {
                    ipv4 {
                    }
                }
                interface "int-PE-4-PE-5" {
                    ipv4 {
                    }
                }
                interface "int-PE-4-PE-6" {
                    ipv4 {
                    }
                }
            }
        }
    }
}

With iLDP enabled, PE-4 establishes iLDP sessions with its directly connected neighbors, as follows:

[/]
A:admin@PE-4# show router ldp session ipv4

==============================================================================
LDP IPv4 Sessions
==============================================================================
Peer LDP Id         Adj Type  State         Msg Sent  Msg Recv  Up Time
------------------------------------------------------------------------------
192.0.2.2:0         Link      Established   54        54        0d 00:01:54
192.0.2.5:0         Link      Established   49        50        0d 00:01:36
192.0.2.6:0         Link      Established   42        43        0d 00:01:19
------------------------------------------------------------------------------
No. of IPv4 Sessions: 3
============================================================================== 

The following tunnel table shows that there is a Label Switched Path (LSP) to every other router. The reason is that the LDP label distribution mode is downstream unsolicited (DU) by default, originating label bindings for system addresses only (which are used by iLDP as transport address by default). The command also shows the preference of the LSPs (where the preference is 9 for LDP) and the metric of the LSPs (the metric is inherited from the IGP, each hop counts as a metric of 10), as follows. The metric to destinations PE-1 and PE-3 is 20 because there are two hops in between (PE-4 is two hops away from PE-1 and PE-3).

[/]
A:admin@PE-4# show router tunnel-table

===============================================================================
IPv4 Tunnel Table (Router: Base)
===============================================================================
Destination           Owner     Encap TunnelId  Pref   Nexthop        Metric
   Color                                                              
-------------------------------------------------------------------------------
192.0.2.1/32          ldp       MPLS  65538     9      192.168.24.1   20
192.0.2.2/32          ldp       MPLS  65537     9      192.168.24.1   10
192.0.2.3/32          ldp       MPLS  65539     9      192.168.24.1   20
192.0.2.5/32          ldp       MPLS  65540     9      192.168.45.2   10
192.0.2.6/32          ldp       MPLS  65541     9      192.168.46.2   10
-------------------------------------------------------------------------------
Flags: B = BGP or MPLS backup hop available
       L = Loop-Free Alternate (LFA) hop available
       E = Inactive best-external BGP route
       k = RIB-API or Forwarding Policy backup hop
=============================================================================== 

In order to configure RSVP shortcuts, RSVP must be enabled on all interfaces where traffic engineering is required, but in this example, MPLS and RSVP are enabled on all interfaces of the network. By default, MPLS is enabled on the system interface, therefore, it need not be configured explicitly. When RSVP is in admin-state enable , it is automatically configured on the interfaces where MPLS is configured. The configuration for PE-6 is as follows.

[/]
A:admin@PE-6# configure {
    router "Base" {
        mpls {
            admin-state enable
            interface "int-PE-6-PE-4" {
            }
            interface "int-PE-6-PE-5" {
            }
        }
        rsvp {
            admin-state enable
            interface "int-PE-6-PE-4" {
            }
            interface "int-PE-6-PE-5" {
            }
        }
    }
}

The configuration of the other nodes is similar. The IP addresses can be derived from Example Topology. Because there are no RSVP LSPs configured yet, the tunnel table has no RSVP LSPs and only contains LDP LSPs.

LDP Static Route (IP Tunneled in LDP Tunnel)

Using LDP LSP shortcuts for static route resolution enables forwarding of IPv4 packets over LDP LSPs instead of using a regular IP next hop. In other words, the traffic to the resolved static routes is forwarded using MPLS LDP LSP rather than plain IP.

The configuration defines a static route pointing to the destination PE (remote loopback, which is an indirect next hop in the example), and explicitly indicates that it should use LDP rather than IGP. Taking PE-1 and PE-6 as an example, two loopback interfaces are configured (172.16.X.1/32), where X = PE number, and a static route is defined according to the preceding explanation. The following shows the configuration on PE-1.

[/]
A:admin@PE-1# configure {
    router "Base" {
        interface "loopback" {
            ipv4 {
                primary {
                    address 172.16.1.1
                    prefix-length 32
                }
            }
            loopback
        }
        static-routes {
            route 172.16.6.1/32 route-type unicast {
                indirect 192.0.2.6 {
                    admin-state enable
                    tunnel-next-hop {
                        disallow-igp true
                        resolution filter
                        resolution-filter {
                            ldp true
                        }
                    }
                }
            }
        }
    }
}

Looking at the GRT or forwarding information base (FIB), there are two new entries corresponding to the two configured loopback interfaces. One entry has the protocol set to LOCAL (the local loopback on the PE), and the other entry has the protocol set to STATIC, where the next hop is reached using an LDP LSP.

[/]
A:admin@PE-1# show router fib 1

===============================================================================
FIB Display
===============================================================================
Prefix [Flags]                                              Protocol
  NextHop                                                   
-------------------------------------------------------------------------------
172.16.1.1/32                                               LOCAL
  172.16.1.1 (loopback) 
172.16.6.1/32                                               STATIC
  192.0.2.6 (Transport:LDP)
192.0.2.1/32                                                LOCAL
  192.0.2.1 (system) 
192.0.2.2/32                                                ISIS
  192.168.12.2 (int-PE-1-PE-2) 
192.0.2.3/32                                                ISIS
  192.168.13.2 (int-PE-1-PE-3) 
192.0.2.4/32                                                ISIS
  192.168.12.2 (int-PE-1-PE-2) 
192.0.2.5/32                                                ISIS
  192.168.13.2 (int-PE-1-PE-3) 
192.0.2.6/32                                                ISIS
  192.168.12.2 (int-PE-1-PE-2) 
192.168.12.0/30                                             LOCAL
  192.168.12.0 (int-PE-1-PE-2) 
192.168.13.0/30                                             LOCAL
  192.168.13.0 (int-PE-1-PE-3) 
192.168.23.0/30                                             ISIS
  192.168.12.2 (int-PE-1-PE-2) 
192.168.24.0/30                                             ISIS
  192.168.12.2 (int-PE-1-PE-2) 
192.168.35.0/30                                             ISIS
  192.168.13.2 (int-PE-1-PE-3) 
192.168.45.0/30                                             ISIS
  192.168.12.2 (int-PE-1-PE-2) 
192.168.46.0/30                                             ISIS
  192.168.12.2 (int-PE-1-PE-2) 
192.168.56.0/30                                             ISIS
  192.168.13.2 (int-PE-1-PE-3) 
-------------------------------------------------------------------------------
Total Entries : 16
-------------------------------------------------------------------------------
===============================================================================

The following output shows that a ping sourced by the loopback interface on PE-1 is able to reach the loopback interface on PE-6, and traceroute demonstrates that the traffic is following the LDP LSP. The ping and traceroute traffic cannot follow the IGP path because the static route command states that the IGP is disallowed when no LDP LSP toward PE-6 is available (also, the loopback interfaces are not enabled on IS-IS).

[/]
A:admin@PE-1# ping 172.16.6.1 source ping 172.16.6.1 source-address 172.16.1.1
PING 172.16.6.1 56 data bytes
64 bytes from 172.16.6.1: icmp_seq=1 ttl=64 time=3.18ms.
64 bytes from 172.16.6.1: icmp_seq=2 ttl=64 time=3.30ms.
. 64 bytes from 172.16.6.1: icmp_seq=3 ttl=64 time=3.03ms.
. 64 bytes from 172.16.6.1: icmp_seq=4 ttl=64 time=3.25ms.
. 64 bytes from 172.16.6.1: icmp_seq=5 ttl=64 time=2.72ms.

---- 172.16.6.1 PING Statistics ----
5 packets transmitted, 5 packets received, 0.00% packet loss
round-trip min = 2.72ms, avg = 3.10ms, max = 3.30ms, stddev = 0.208ms
[/]
A:admin@PE-1# traceroute 172.16.6.1 source traceroute 172.16.6.1 source-address 172.16.1.1
traceroute to 172.16.6.1 from 172.16.1.1, 30 hops max, 40 byte packets
  1  0.0.0.0  * * * 
  2  0.0.0.0  * * * 
  3  172.16.6.1 (172.16.6.1)    2.79 ms  2.35 ms  2.61 ms

With the traceroute command, there are three hops from PE-1 to PE-6. There is no information regarding IP for the first two hops because the traffic is encapsulated in an MPLS LSP. The reason why the hops are displayed even when there is an MPLS LSP tunnel is because by default, the SR router propagates (copies) the Time To Live (TTL) from the IP header in the MPLS header. This is known as uniform mode.

However, a service provider might not want to show how many MPLS hops (nodes) there are in their network if a traceroute command is executed from outside their network. To prevent internal hops being shown, no propagate commands are needed in the LDP configuration, as follows. This is known as pipe mode.

[/]
A:admin@PE-1# configure {
    router "Base" {
        ldp {
            shortcut-local-ttl-propagate false
            shortcut-transit-ttl-propagate false 
        }
    }
}

When TTL propagation is disabled, the hops are not displayed any longer when running the traceroute command.

[/]
A:admin@PE-1# traceroute 172.16.6.1 source traceroute 172.16.6.1 source-address 172.16.1.1
traceroute to 172.16.6.1 from 172.16.1.1, 30 hops max, 40 byte packets
  1  172.16.6.1 (172.16.6.1)    1.86 ms  2.04 ms  1.96 ms 

For more information about uniform mode and pipe mode, see the ‟Tunneling of ICMP Reply Packets over MPLS LSPs” chapter in the 7450 ESS, 7750 SR, and 7950 XRS MPLS Advanced Configuration Guide for Classic CLI.

RSVP Static Route (IP Tunneled in RSVP Tunnel)

Using RSVP LSP shortcuts for static route resolution enables forwarding of IPv4 packets over RSVP LSPs instead of using a regular IP next hop. In other words, the traffic to the resolved static routes is forwarded using an MPLS RSVP LSP rather than plain IP.

The configuration defines a static route pointing to a destination PE (remote loopback, which is an indirect next hop in the example), and explicitly indicates that it should use RSVP rather than IGP. Taking PE-6 and PE-1 as an example, two loopback interfaces are configured (172.16.X.1/32), where X = PE number, and a static route is defined according to the preceding explanation. The following shows the configuration on PE-6.

[/]
A:admin@PE-6# configure {
    router "Base" {
        static-routes {
            route 172.16.1.1/32 route-type unicast {
                indirect 192.0.2.1 {
                    admin-state enable
                    tunnel-next-hop {
                        disallow-igp true
                        resolution filter
                        resolution-filter {
                            rsvp-te { }
                        }
                    }
                }
            }
        }
    }
}

Also, an RSVP LSP needs to be configured with the system interface of PE-1 as the destination:

[/]
A:admin@PE-6# configure {
    router "Base" {
        mpls {
            path "loose_path" {
                admin-state enable
            }
            lsp "LSP-PE-6-PE-1" {
                admin-state enable
                to 192.0.2.1
                type p2p-rsvp
                primary "loose_path" { }
            }
        }
    }
}

In the LSP tunnel table, an RSVP LSP is created:

[/]
A:admin@PE-6# show router tunnel-table

===============================================================================
IPv4 Tunnel Table (Router: Base)
===============================================================================
Destination           Owner     Encap TunnelId  Pref   Nexthop        Metric
   Color                                                              
-------------------------------------------------------------------------------
192.0.2.1/32          rsvp      MPLS  1         7      192.168.46.1   30
192.0.2.1/32          ldp       MPLS  65539     9      192.168.46.1   30
192.0.2.2/32          ldp       MPLS  65538     9      192.168.46.1   20
192.0.2.3/32          ldp       MPLS  65541     9      192.168.56.1   20
192.0.2.4/32          ldp       MPLS  65537     9      192.168.46.1   10
192.0.2.5/32          ldp       MPLS  65540     9      192.168.56.1   10
-------------------------------------------------------------------------------
Flags: B = BGP or MPLS backup hop available
       L = Loop-Free Alternate (LFA) hop available
       E = Inactive best-external BGP route
       k = RIB-API or Forwarding Policy backup hop
===============================================================================

The default RSVP preference is 7 (preferred over that of LDP, which is 9) and the metric reflects that this LSP spans 3 hops (for a dynamic LSP not using constrained shortest path first (CSPF), the metric is inherited from IGP). See the RSVP Shortcut for IGP Route Resolution section for more details about the metric applied in LSPs.

The RSVP LSP is used to resolve the indirect next hop (PE-1 system address) in the static route (the LSP used is identified with the tunnel ID, in this case 1), therefore, the route for prefix 172.16.1.1 in the GRT looks as follows:

[/]
A:admin@PE-6# show router route-table 172.16.1.1

===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric
-------------------------------------------------------------------------------
172.16.1.1/32                                 Remote  Static    00h00m00s  5
       192.0.2.1 (tunneled:RSVP:1)                                  1
-------------------------------------------------------------------------------
No. of Routes: 1
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

As in the LDP shortcut with static route example, between PE-6 and PE-1, TTL propagation is disabled, as follows.

[/]
A:admin@PE-1# configure {
    router "Base" {
        ldp {
            shortcut-local-ttl-propagate false
            shortcut-transit-ttl-propagate false 
        }
    }
}

The output is the following when running a traceroute:

[/]
A:admin@PE-6# traceroute 172.16.1.1 source traceroute 172.16.1.1 source-address 172.16.6.1
traceroute to 172.16.1.1 from 172.16.6.1, 30 hops max, 40 byte packets
  1  172.16.1.1 (172.16.1.1)    2.81 ms  3.24 ms  3.02 ms 

The two static routes that have been defined to use the LDP and RSVP shortcuts follow the static routes default values and have a preference of 5 and a metric of 1.

LDP Shortcut for IGP Route Resolution

Using LDP shortcuts for IGP route resolution enables forwarding of packets to IGP learned routes over an LDP LSP. The default is to disable the LDP shortcut across all interfaces in the node.

When LDP shortcuts are enabled, LDP populates the Route Table Manager (RTM) with next hop entries corresponding to all prefixes for which it activated an LDP Forwarding Equivalence Class (FEC). For a prefix, two route entries are populated in the RTM. One corresponds to the LDP shortcut next hop and has an owner of LDP. The other one is the regular IP next hop. The LDP shortcut next hop always takes preference over the regular IP next hop for forwarding user packets and specific control packets over an outgoing interface to the route next hop.

When LDP has activated a FEC for a prefix and programmed the RTM, it also programs the ingress tunnel table in the line card with the LDP tunnel information.

When an IPv4 packet is received on an ingress network interface and the preferred RTM entry corresponds to an LDP shortcut, a subscriber Internet Enhanced Service (IES) interface, or a regular IES interface, the lookup of the packet by the ingress line card results in the packet being sent labeled with the label stack corresponding to the Next Hop Label Forwarding Entry (NHLFE) of the LDP LSP. If the preferred RTM entry corresponds to an IP next hop, the IPv4 packet is forwarded unlabeled. The activation of the FEC by LDP is done by performing an exact match with an IGP route prefix in the RTM, but it can also be done by performing a longest prefix match with an IGP route in the RTM if the aggregate-prefix-match option is enabled globally in LDP.

Handling of Control Packets

All control plane packets will not see the LDP shortcut route entry in the RTM with the exception of the following control packets which will be forwarded over an LDP shortcut when enabled:

  • A locally generated or in transit ICMP ping and UDP traceroute of an IGP route. The transit message appears as a user packet to the ingress LER node.

  • A locally generated response to a received ICMP ping or UDP traceroute message.

All other control plane packets that require an RTM lookup and have knowledge of which destination is reachable over the LDP shortcut will continue to be forwarded over the IP next hop route in the RTM.

Handling of Multicast Packets

LDP shortcuts apply to unicast FEC types and are used for forwarding IP unicast packets in the data path. IP multicast packets forwarded over an multicast Label Distribution Protocol (mLDP) Point-to-Multi-Point (P2MP) LSP make use of a multicast FEC and thus cannot make use of the LDP unicast shortcut.

ECMP Considerations

When Equal Cost Multi-Path (ECMP) is enabled and multiple equal cost next hops exist for the IGP route, the ingress line card will spray the packets for this route based on the hashing routine supported for IPv4 packets. When the preferred RTM entry corresponds to an LDP shortcut route, spraying is performed across the multiple next hops for the LDP FEC. The FEC next hops can either be direct link LDP neighbors, or T-LDP (targeted LDP) neighbors reachable over RSVP LSPs in the case of LDP-over-RSVP, but not both. This is as per ECMP for LDP in the existing implementation. When the preferred RTM entry corresponds to a regular IP route, spraying will be performed across regular IP next hops for the prefix. Spraying across regular IP next hops and LDP shortcut next hops concurrently is not supported.

Configuring IGP LDP shortcuts is straightforward, and only applies to the node where there is interest to provision the LDP shortcut. In this example, only PE-1 is provisioned with LDP shortcuts, as follows:

[/]
A:admin@PE-1# configure {
    router "Base" {
        ldp {
            ldp-shortcut {
                ipv4 true
            }
        }
    }
}

Now, all tunnel LSPs that resolve an IGP next hop will replace the IP next hops, as shown in the following output:

[/]
A:admin@PE-1# show router route-table

===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric   
-------------------------------------------------------------------------------
192.0.2.1/32                                  Local   Local     00h50m05s  0
       system                                                       0
192.0.2.2/32                                  Remote  LDP       00h00m00s  9
       192.168.12.2 (tunneled)                                      10
192.0.2.3/32                                  Remote  LDP       00h00m00s  9
       192.168.13.2 (tunneled)                                      10
192.0.2.4/32                                  Remote  LDP       00h00m00s  9
       192.168.12.2 (tunneled)                                      20
192.0.2.5/32                                  Remote  LDP       00h00m00s  9
       192.168.13.2 (tunneled)                                      20
192.0.2.6/32                                  Remote  LDP       00h00m00s  9
       192.168.12.2 (tunneled)                                      30
192.168.12.0/30                               Local   Local     00h50m05s  0
       int-PE-1-PE-2                                                0
192.168.13.0/30                               Local   Local     00h50m05s  0
       int-PE-1-PE-3                                                0
192.168.23.0/30                               Remote  ISIS      00h49m41s  15
       192.168.12.2                                                 20
192.168.24.0/30                               Remote  ISIS      00h49m41s  15
       192.168.12.2                                                 20
192.168.35.0/30                               Remote  ISIS      00h49m20s  15
       192.168.13.2                                                 20
192.168.45.0/30                               Remote  ISIS      00h49m06s  15
       192.168.12.2                                                 30
192.168.46.0/30                               Remote  ISIS      00h49m06s  15
       192.168.12.2                                                 30
192.168.56.0/30                               Remote  ISIS      00h48m46s  15
       192.168.13.2                                                 30
-------------------------------------------------------------------------------
No. of Routes: 14
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================
[/]
A:admin@PE-1# show router fib 1

===============================================================================
FIB Display
===============================================================================
Prefix [Flags]                                              Protocol
  NextHop                                                   
-------------------------------------------------------------------------------
192.0.2.1/32                                                LOCAL
  192.0.2.1 (system) 
192.0.2.2/32                                                LDP
  192.0.2.2 (Transport:LDP)
192.0.2.3/32                                                LDP
  192.0.2.3 (Transport:LDP)
192.0.2.4/32                                                LDP
  192.0.2.4 (Transport:LDP)
192.0.2.5/32                                                LDP
  192.0.2.5 (Transport:LDP)
192.0.2.6/32                                                LDP
  192.0.2.6 (Transport:LDP)
192.168.12.0/30                                             LOCAL
  192.168.12.0 (int-PE-1-PE-2) 
192.168.13.0/30                                             LOCAL
  192.168.13.0 (int-PE-1-PE-3) 
192.168.23.0/30                                             ISIS
  192.168.12.2 (int-PE-1-PE-2) 
192.168.24.0/30                                             ISIS
  192.168.12.2 (int-PE-1-PE-2) 
192.168.35.0/30                                             ISIS
  192.168.13.2 (int-PE-1-PE-3) 
192.168.45.0/30                                             ISIS
  192.168.12.2 (int-PE-1-PE-2) 
192.168.46.0/30                                             ISIS
  192.168.12.2 (int-PE-1-PE-2) 
192.168.56.0/30                                             ISIS
  192.168.13.2 (int-PE-1-PE-3) 
-------------------------------------------------------------------------------
Total Entries : 14
-------------------------------------------------------------------------------
===============================================================================

Applying LDP IGP shortcuts only on PE-1 implies that IP traffic from PE-1 to any of the system addresses of the rest of the nodes will use the LDP shortcut, however, the traffic replied from any PE back to PE-1 will be native IP because IGP shortcuts have not been provisioned in the other nodes.

RSVP Shortcut for IGP Route Resolution

Using RSVP LSP shortcuts when resolving IGP routes enables forwarding of packets to IGP learned routes over an RSVP LSP. The use of RSVP shortcuts for resolving IGP routes is enabled at the IS-IS (or OSPF) routing protocol level or at the LSP level, and instructs IS-IS and OSPF to include RSVP LSPs originating on this node and terminating on the system address (router ID) of a remote node and considers them as direct links. RSVP LSPs with a destination address corresponding to an interface address or any other loopback interface address of a remote node are automatically not considered by IS-IS or OSPF.

By default, RSVP shortcuts are disabled in all IGP instances.

RSVP LSPs are included in the IGP SPF computation with the following characteristics:

  • RSVP LSP is modeled as a point-to-point link IP interface and its metric is used in the computation of the shortest path of IGP routes

  • Next hop and interface include the NHLFE of the shortcut LSP when the IGP path cost using the RSVP LSP is the best.

  • Shortcuts are not used when the destination RSVP LSP is in a different IGP area. In addition, IGP adjacencies across an RSVP LSP are not supported.

RSVP shortcuts are enabled at IGP instance level as follows:

[/]
A:admin@<all PEs># configure {
    router "Base" {
        isis 0 {
            igp-shortcut {
                admin-state enable
                tunnel-next-hop {
                    family ipv4 {
                        resolution filter
                        resolution-filter {
                            rsvp true
                        }
                    }
                }
            }
        }
    }
}

The configuration can be done at the IGP level or per LSP level. When RSVP shortcuts are enabled at the IGP instance level, all RSVP LSPs originating on this node are eligible by default. The user can, however, exclude a specific RSVP LSP from being used as a shortcut for resolving IGP routes by entering the command (e.g. on PE-6):

[/]
A:admin@PE-6# configure {
    router "Base" {
        mpls {
            lsp "LSP-PE-6-PE-1" {
                delete igp-shortcut
            }
        }
    }
}

As RSVP shortcuts can coexist with LDP shortcuts or IP next hops, SPF computation and path selection follows the procedures in RFC 3906:

  • SPF picks the RSVP shortcut next hop if there is an RSVP LSP directly to that address regardless of the path cost compared to the IGP next hop.

  • SPF picks the RSVP shortcut next hop or the IGP next hop based on path lowest cost if there is an IGP path to the prefix that does not go via the tail-end of the LSP.

  • If the IGP next hop is picked, then it can be an LDP shortcut next hop or a regular IP next hop. The LDP shortcut next hop always has preference over the regular IP next hop.

Handling of Control Packets

All control plane packets requiring an RTM lookup and whose destination is reachable over the RSVP shortcut are forwarded over the shortcut. This is because the RTM keeps a single route entry for each prefix, except if there is ECMP over different outgoing interfaces. Interface bound control packets are not impacted by the RSVP shortcut because RSVP LSPs with a destination address different than the router ID are not included by IGP in its SPF calculation.

RSVP shortcuts for IGP shortcut resolution should only be used with CSPF LSPs or with fully explicit path non-CSPF LSPs. RSVP hop-by-hop Path messages will try to use the shortcut and consequently LSPs without CSPF enabled, or that use a loose/empty hop path, will not come up. However, LSPs with CSPF enabled or using a strict hop path will come up. This is because in the former case, the RTM lookup to get the next hop results in using the shortcut and so the path messages are sent directly to the destination of the LSP, where they are dropped. With CSPF enabled, the next hop (and the entire path) is provided by CSPF and the path messages are sent unlabeled to the directly connected neighbor which corresponds to the next hop of the destination of the LSP. Similar processing occurs if a strict hop path is used, as is the case in the following example.

Handling of Multicast Packets

IP multicast packets cannot be forwarded over an RSVP shortcut, they can only be forwarded over an RSVP P2MP LSP. However, RSVP shortcut routes appear in the RTM and are seen by all applications when they are the best route. When the Reverse Path Forwarding (RPF) check for the source of the multicast packet matches an RSVP shortcut route, the check will pass if both the RSVP shortcut and the multicast-import options are enabled in the IGP, as follows, because the RTM is populated with next hops only and not with tunnels (RPFs will fail for source prefixes resolved to a tunnel NH).

[/]
A:admin@PE-6# configure {
    router "Base" {
        isis multicast-import ?

 multicast-import

 ipv4                  - Submit IPv4 routes into the multicast RPF of the RTM
 ipv6                  - Submit IPv6 routes into the multicast RPF of the RTM

The unicast RTM can still use the tunnel next hop for the same prefix. SPF keeps track of both the direct first hop and the tunneled first hop of a node which is added to the Dijkstra tree.

ECMP Considerations

When ECMP is enabled and multiple equal cost paths exist for the route over a set of tunnel next hops based on the hashing routine supported for IPv4 packets, there are two possibilities:

  • Destination is tunnel endpoint: the system selects the tunnel with lowest tunnel ID (IP next hop is never used).

  • Destination is different from the tunnel endpoint: it selects tunnel endpoints when the LSP metric is not greater than the IGP cost and it prefers tunnel endpoint over IP next hop.

ECMP is not performed across the IP and tunnel next hops simultaneously.

RSVP Shortcuts Configuration

Configuring RSVP LSP shortcuts is straightforward, and only applies to the node where there is interest to provision the RSVP shortcut. Two LSPs, from PE-6 to PE-1 and from PE-1 to PE-6, with strict hops, are provisioned according to LSPs Between PE-1 and PE-6.

Figure 4. LSPs Between PE-1 and PE-6

The configuration on PE-1 and PE-6 is similar (replacing the IP addresses), so only the configuration for PE-6 is shown:

[/]
A:admin@PE-6# configure {
    router "Base" {
        isis 0 {
            igp-shortcut {
                admin-state enable
                tunnel-next-hop {
                    family ipv4 {
                        resolution filter
                        resolution-filter {
                            rsvp true
                        }
                    }
                }
            }
        }
    }
}
[/]
A:admin@PE-6# configure {
    router "Base" {
        mpls {
            path "path-to-PE-1" {
                admin-state enable
                hop 10 {
                    ip-address 192.0.2.5
                    type strict
                }
                hop 20 {
                    ip-address 192.0.2.3
                    type strict
                }
                hop 30 {
                    ip-address 192.0.2.2
                    type strict
                }
                hop 40 {
                    ip-address 192.0.2.1
                    type strict
                }
            }
            lsp "LSP-PE-6-PE-1-strict" {
                admin-state enable
                to 192.0.2.1
                type p2p-rsvp
                primary "path-to-PE-1" { }
            }
        }
    }
}

The GRT output shows the change in the next hop, using an RSVP shortcut:

[/]
A:admin@PE-6# show router route-table

===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric   
-------------------------------------------------------------------------------
192.0.2.1/32                                  Remote  ISIS      00h00m32s  15
       192.0.2.1 (tunneled:RSVP:2)                                  16777215
192.0.2.2/32                                  Remote  ISIS      00h58m17s  15
       192.168.46.1                                                 20
192.0.2.3/32                                  Remote  ISIS      00h58m17s  15
       192.168.56.1                                                 20
192.0.2.4/32                                  Remote  ISIS      00h58m17s  15
       192.168.46.1                                                 10
192.0.2.5/32                                  Remote  ISIS      00h58m17s  15
       192.168.56.1                                                 10
192.0.2.6/32                                  Local   Local     00h58m18s  0
       system                                                       0
192.168.12.0/30                               Remote  ISIS      00h58m17s  15
       192.168.46.1                                                 30
192.168.13.0/30                               Remote  ISIS      00h58m17s  15
       192.168.56.1                                                 30
192.168.23.0/30                               Remote  ISIS      00h58m17s  15
       192.168.46.1                                                 30
192.168.24.0/30                               Remote  ISIS      00h58m17s  15
       192.168.46.1                                                 20
192.168.35.0/30                               Remote  ISIS      00h58m17s  15
       192.168.56.1                                                 20
192.168.45.0/30                               Remote  ISIS      00h58m17s  15
       192.168.46.1                                                 20
192.168.46.0/30                               Local   Local     00h58m18s  0
       int-PE-6-PE-4                                                0
192.168.56.0/30                               Local   Local     00h58m18s  0
       int-PE-6-PE-5                                                0
-------------------------------------------------------------------------------
No. of Routes: 14
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
=============================================================================== 

The RSVP LSP in the output has a metric of 16777215, the LSP administrative metric matches the maximum value allowed for an IS-IS link using the wide-metric (24-bit value with a range of [0 — 16777215]). The following metric rules apply:

  • A dynamic strict path non-CSPF LSP has the maximum metric (16777215).

  • A dynamic CSPF LSP has a metric equal to the cumulative IGP cost.

    • If the user enabled the use of the TE metric on this LSP ([/] A:admin@<a PE># configure { router "Base" { mpls { lsp <LSP Name> { path-computation-method local-cspf metric-type te } } } }), then the metric for the LSP is the maximum (16777215).

    • If the user enabled the use of the TE metric on this LSP and provisioned a specific metric on the lsp ([/] A:admin@<a PE># configure { router "Base" { mpls { lsp <LSP Name> { path-computation-method local-cspf metric-type te metric <value> } } } }), then the metric for the LSP is the one provisioned. When configuring the metric of an LSP, the parameter ‟metric-type” is not required.

  • A static LSP has a maximum metric (16777215).

  • Manual and dynamic bypass LSPs have the maximum metric (16777215).

The RSVP shortcuts section detailed the importance of the LSP metric when using CSPF LSPs or when importing RSVP tunnel links into the IGP. The LSP metric can be inherited from the IGP, or can be manually modified by configuring a specific LSP metric or relative metric offset. Because IP and LDP FECs resolve to RSVP LSPs when the metric is equal or lower compared to the regular routing metric, configuring a specific static LSP metric (lower than the IGP metric) or relative metric offset is strongly recommended when using RSVP shortcuts, so that the GRT and LDP FEC resolution will always prefer the RSVP LSP shortcuts when the CSPF path computation is not using the shortest path.

For the preceding example, the first rule applies.

Advertising RSVP LSP Tunnel Links in the IGP: Forwarding Adjacency Feature

If configured, an RSVP LSP can also be advertised into the IGP similar to regular links so that other routers in the network can include that RSVP LSP into their SPF computations. The forwarding adjacency feature can be enabled independently from the RSVP shortcut feature in CLI. If both are configured for an IGP instance, the forwarding adjacency takes precedence. An RSVP LSP must exist in the reverse direction in order for the advertised link to pass the bi-directional link check and be usable by other routers in the network. However, this is not required for the node which originates the LSP. The LSP is advertised as an unnumbered point-to-point link and the Link State Protocol data unit (LSP) and Link State Advertisement (LSA) have no traffic engineering opaque sub-TLVs as per RFC 3906.

Reusing the RSVP IGP shortcuts set up previously (PE-1 and PE-6 RSVP IGP shortcut example according to LSPs Between PE-1 and PE-6), the outcome is a route linked with an RSVP LSP as next hop, as follows:

[/]
A:admin@PE-6# show router route-table 192.0.2.1/32

===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric
-------------------------------------------------------------------------------
192.0.2.1/32                                  Remote  ISIS      00h02m25s  15
       192.0.2.1 (tunneled:RSVP:2)                                  16777215
-------------------------------------------------------------------------------
No. of Routes: 1
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

The route tunneled through RSVP has a metric of 16777215, so it is not used by PE-6 GRT to reach any other routes because the metric is very high. After enabling the forwarding adjacency feature (tunnel links) to use shortcuts in the configuration, PE-1 and PE-6 have a direct connection through the RSVP LSP (as a virtual link). This configuration command must be executed in both routers.

[/]
A:admin@PE-1(&6)# configure {
    router "Base" {
        isis 0 {
            advertise-tunnel-link
        }
    }
}

When the shortcut is advertised by IS-IS, the route will disappear from the RTM because the metric of the shortcut is greater than the IGP cost.

[/]
A:admin@PE-6# show router route-table 192.0.2.1/32

===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric
-------------------------------------------------------------------------------
192.0.2.1/32                                  Remote  ISIS      00h01m22s  15
     192.168.46.1                                             30
-------------------------------------------------------------------------------
No. of Routes: 1
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

If the LSP is reconfigured to use a metric equal to or smaller than the IGP cost, the router PE-6 will use the RSVP shortcut again. In the example, the LSP is reconfigured with a metric of 30 (e.g. on PE-6):

[/]
A:admin@PE-6# configure {
    router "Base" {
        mpls {
            lsp "LSP-PE-6-PE-1-strict" {
                metric 30
            }
        }
    }
}

Now the shortcut shows up as the preferred next hop to reach PE-1 from PE-6.

[/]
A:admin@PE-6# show router route-table 192.0.2.1/32

===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric   
-------------------------------------------------------------------------------
192.0.2.1/32                                  Remote  ISIS      00h00m53s  15
       192.0.2.1 (tunneled:RSVP:2)                                  30
-------------------------------------------------------------------------------
No. of Routes: 1
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

As explained earlier, this could be combined with ECMP, so if ECMP is configured to 2, the system shows the two equal cost paths.

[/]
A:admin@PE-6# configure {
    router "Base" {
        ecmp 2
    }
}

[/]
A:admin@PE-6# show router route-table 192.0.2.1/32

===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric   
-------------------------------------------------------------------------------
192.0.2.1/32                                  Remote  ISIS      00h00m21s  15
       192.0.2.1 (tunneled:RSVP:2)                                  30
192.0.2.1/32                                  Remote  ISIS      00h00m21s  15
       192.168.46.1                                                 30
-------------------------------------------------------------------------------
No. of Routes: 2
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

The GRT on PE-4 displays the route to reach PE-1 (192.0.2.1/32) with a metric of 20 via PE-2 as next hop. Although PE-6 is announcing the RSVP LSP-PE-6-PE-1 to the other routers, the LSP shortcut is not used by PE-4, because the metric to reach PE-6 (10) plus the metric of the LSP shortcut from PE-6 to PE-1 (metric 30) is greater than 20.

[/]
A:admin@PE-4# show router route-table

===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric   
-------------------------------------------------------------------------------
192.0.2.1/32                                  Remote  ISIS      01h06m15s  15
       192.168.24.1                                                 20
192.0.2.2/32                                  Remote  ISIS      01h06m15s  15
       192.168.24.1                                                 10
192.0.2.3/32                                  Remote  ISIS      01h06m15s  15
       192.168.24.1                                                 20
192.0.2.4/32                                  Local   Local     01h06m16s  0
       system                                                       0
192.0.2.5/32                                  Remote  ISIS      01h05m50s  15
       192.168.45.2                                                 10
192.0.2.6/32                                  Remote  ISIS      01h05m33s  15
       192.168.46.2                                                 10
192.168.12.0/30                               Remote  ISIS      01h06m15s  15
       192.168.24.1                                                 20
192.168.13.0/30                               Remote  ISIS      01h06m15s  15
       192.168.24.1                                                 30
192.168.23.0/30                               Remote  ISIS      01h06m15s  15
       192.168.24.1                                                 20
192.168.24.0/30                               Local   Local     01h06m16s  0
       int-PE-4-PE-2                                                0
192.168.35.0/30                               Remote  ISIS      01h05m50s  15
       192.168.45.2                                                 20
192.168.45.0/30                               Local   Local     01h06m16s  0
       int-PE-4-PE-5                                                0
192.168.46.0/30                               Local   Local     01h06m16s  0
       int-PE-4-PE-6                                                0
192.168.56.0/30                               Remote  ISIS      01h05m33s  15
       192.168.45.2                                                 20
-------------------------------------------------------------------------------
No. of Routes: 14
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

If the metric of the LSP LSP-PE-6-PE-1 is modified to a value between 1 and 9, there is a better metric (less than 20) so that PE-4 will change the next hop via PE-6. First the metric of the LSP is modified to 9:

[/]
A:admin@PE-6# configure {
    router "Base" {
        mpls {
            lsp "LSP-PE-6-PE-1-strict" {
                metric 9
            }
        }
    }
}

The GRT on PE-4 shows that the next hop to reach PE-1 has changed, from next hop PE-2 to next hop PE-6 (therefore, using the LSP shortcut), and the metric is 19 (10 to reach PE-6 plus metric 9 of the LSP PE-6-PE-1 shortcut):

[/]
A:admin@PE-4# show router route-table 192.0.2.1/32

===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric   
-------------------------------------------------------------------------------
192.0.2.1/32                                  Remote  ISIS      00h00m29s  15
       192.168.46.2                                                 19
-------------------------------------------------------------------------------
No. of Routes: 1
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

Because the metric of the LSP shortcut was modified to a value of 9, the GRT of PE-6 shows that the next hops of several routes have changed and are also using the shortcut LSP PE-6-PE-1 because the metric is better than the regular IS-IS metric. IGP shortcuts will not be used to resolve prefixes downstream of the LSP endpoint when the LSP metric is higher than the underlying IGP cumulative metric.

[/]
A:admin@PE-6# show router route-table

===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
         Next Hop[Interface Name]                                    Metric   
-------------------------------------------------------------------------------
192.0.2.1/32                                  Remote  ISIS      00h00m54s  15
       192.0.2.1 (tunneled:RSVP:2)                                  9
192.0.2.2/32                                  Remote  ISIS      00h00m54s  15
       192.0.2.1 (tunneled:RSVP:2)                                  19
192.0.2.3/32                                  Remote  ISIS      00h00m54s  15
       192.0.2.1 (tunneled:RSVP:2)                                  19
192.0.2.4/32                                  Remote  ISIS      00h02m06s  15
       192.168.46.1                                                 10
192.0.2.5/32                                  Remote  ISIS      00h02m06s  15
       192.168.56.1                                                 10
192.0.2.6/32                                  Local   Local     01h08m12s  0
       system                                                       0
192.168.12.0/30                               Remote  ISIS      00h00m54s  15
       192.0.2.1 (tunneled:RSVP:2)                                  19
192.168.13.0/30                               Remote  ISIS      00h00m54s  15
       192.0.2.1 (tunneled:RSVP:2)                                  19
192.168.23.0/30                               Remote  ISIS      00h00m54s  15
       192.0.2.1 (tunneled:RSVP:2)                                  29
192.168.24.0/30                               Remote  ISIS      00h02m06s  15
       192.168.46.1                                                 20
192.168.35.0/30                               Remote  ISIS      00h02m06s  15
       192.168.56.1                                                 20
192.168.45.0/30                               Remote  ISIS      00h02m06s  15
       192.168.46.1                                                 20
192.168.46.0/30                               Local   Local     01h08m12s  0
       int-PE-6-PE-4                                                0
192.168.56.0/30                               Local   Local     01h08m12s  0
       int-PE-6-PE-5                                                0
-------------------------------------------------------------------------------
No. of Routes: 14
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

There are also cases where an LDP FEC can resolve to an RSVP LSP, if the user enables the LDP-over-RSVP feature or IGP shortcut feature when prefer-tunnel-in-tunnel is set to true in LDP and the endpoint of the RSVP LSP matches the FEC prefix. For those cases, the metric to the prefix is the sum of the RSVP LSP metric and the remaining IGP path cost.

RSVP LSP Role As Outcome of LSP Level and IGP Level Configuration Options provides a summary of the outcome when configuring the forwarding adjacency, LDPoRSVP and RSVP shortcut options at both the IGP instance level and at the LSP level.

Table 1. RSVP LSP Role As Outcome of LSP Level and IGP Level Configuration Options

IGP Instance Level Configurations

LSP Level Configuration

advertise-tunnel-link enabled/rsvp-shortcut enabled/ldp-over-rsvp enabled

advertise-tunnel-link enabled/rsvp-shortcut enabled/ldp-over-rsvp disabled

advertise-tunnel-link enabled/rsvp-shortcut disabled/ldp-over-rsvp disabled

advertise-tunnel-link disabled/rsvp-shortcut disabled/ldp-over-rsvp disabled

advertise-tunnel-link disabled/rsvp-shortcut enabled/ldp-over-rsvp enabled

advertise-tunnel-link disabled/rsvp-shortcut disabled/ldp-over-rsvp enabled

igp-shortcut enabled/ldp-over-rsvp enabled

Forwarding Adjacency

Forwarding Adjacency

Forwarding Adjacency

None

IGP

Shortcut

LDP-over-RSVP

igp-shortcut enabled/ldp-over-rsvp disabled

Forwarding Adjacency

Forwarding Adjacency

Forwarding Adjacency

None

IGP

Shortcut

None

igp-shortcut disabled/ldp-over-rsvp enabled

None

None

None

None

None

LDP-over-RSVP

igp-shortcut disabled/ldp-over-rsvp disabled

None

None

None

None

None

None

LSP Relative Metric

It is possible to use relative metrics for IGP shortcuts as per RFC 3906, Calculating Interior Gateway Protocol (IGP) Routes Over Traffic Engineering Tunnels, with the following command (e.g. on PE-6):

[/]
A:admin@PE-6# configure {
    router "Base" {
        mpls {
            lsp "LSP-PE-6-PE-1-strict" {
                igp-shortcut ?

 admin-state           - Administrative state of the LSP to be used as a shortcut while resolving IGP routes

 Choice: igp-choice
 lfa-type             :- Specific RSVP LSP by IS-IS and OSPF routing protocols to assign as shortcut or as forwarding adjacency
 relative-metric      :- Shortest IGP cost between the endpoints of the LSP plus the configured offset

[/]
A:admin@PE-6# configure {
    router "Base" {
        mpls {
            lsp "LSP-PE-6-PE-1-strict" {
                igp-shortcut {
                    lfa-type ?

 lfa-type <keyword>
 <keyword>  - (lfa-protect|lfa-only)

    Specific RSVP LSP by IS-IS and OSPF routing protocols to assign as shortcut or as forwarding adjacency

[/]
A:admin@PE-6# configure {
    router "Base" {
        mpls {
            lsp "LSP-PE-6-PE-1-strict" {
                igp-shortcut {
                    relative-metric ?

 relative-metric <number>
 <number>  - <-10..10>

    Shortest IGP cost between the endpoints of the LSP plus the configured offset

When this feature is enabled, IGP applies the shortest IGP cost between the endpoints of the LSP, plus the value of a configured offset when computing the cost of the prefix that is resolved to the LSP.

The offset value is optional and can have a value between -10 and 10, and defaults to zero (0). An offset value of zero (0) is used when the relative metric option is enabled without specifying the offset parameter value. The minimum net cost for the prefix is capped to the value of one (1) after applying the offset:

Prefix cost = max (1, IGP Cost + relative metric offset)

The relative-metric option is ignored when advertise-tunnel-link is enabled in IS-IS or OSPF. In that case, the IGP advertises the LSP as a P2P unnumbered link using the LSP operational metric.

The relative-metric option is mutually exclusive with the lfa-protect (Loop-Free Alternate (LFA)) or the lfa-only options. An LSP with relative-metric option enabled cannot be included in the LFA SPF and vice versa when RSVP shortcuts are enabled in the IGP (see chapter LDP/IP FRR LFA for IGP Shortcut Using IS-IS/OSPF for more information).

The offset can be used to enforce the preference of the shortcut path over the other paths for the prefix. Using an example, a new CSPF LSP with empty path and relative metric of -10 is created between PE-6 and PE-1. Whereas the operational or absolute metric is 30 (IGP cost and populated in the Tunnel Table Manager, TTM), the metric that the RTM shows is 20 after applying the offset:

[/]
A:admin@PE-6# configure {
    router "Base" {
        mpls {
            admin-state enable
            lsp "LSP-PE-6-PE-1-loose" {
                to 192.0.2.1
                type p2p-rsvp
                primary "loose_path" { }
                path-computation-method local-cspf
                igp-shortcut {
                       relative-metric -10
                }
            }
        }
    }
}
[/]
A:admin@PE-6# show router tunnel-table 192.0.2.1

===============================================================================
IPv4 Tunnel Table (Router: Base)
===============================================================================
Destination           Owner     Encap TunnelId  Pref   Nexthop        Metric
   Color                                                              
-------------------------------------------------------------------------------
192.0.2.1/32          rsvp      MPLS  1         7      192.168.46.1   30
192.0.2.1/32          rsvp      MPLS  2         7      192.168.56.1   16777215
192.0.2.1/32          ldp       MPLS  65546     9      192.168.46.1   30
-------------------------------------------------------------------------------
Flags: B = BGP or MPLS backup hop available
       L = Loop-Free Alternate (LFA) hop available
       E = Inactive best-external BGP route
       k = RIB-API or Forwarding Policy backup hop
===============================================================================
[/]
A:admin@PE-6# show router route-table 192.0.2.1

===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric
-------------------------------------------------------------------------------
192.0.2.1/32                                  Remote  ISIS      00h03m11s  15
       192.168.46.1                                                 20
-------------------------------------------------------------------------------
No. of Routes: 1
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

LDP/IP FRR LFA for IGP Shortcut Using IS-IS/OSPF

MPLS LDP/IP FRR LFA for IGP shortcuts allows for the use of RSVP LSP-based IGP shortcuts as Loop-Free Alternate (LFA) backups, this way expanding the coverage of the IP Fast-Reroute (FRR) and the LDP FRR capabilities for IS-IS and OSPF prefixes. For a detailed description about IP and LDP FRR, see chapter MPLS LDP FRR using ISIS as IGP.

When an RSVP LSP is used as a shortcut by IS-IS or OSPF, it is included by the SPF as a P2P link and it can also be optionally advertised into the rest of the network by the IGP.

Two LSP-level configuration options are provided:

  • The lfa-protect option includes the RSVP LSP in both the main SPF and the LFA SPFs. If the prefix primary next hop (NH) is tunneled, no LFA NH is computed. The protection in this case is provided by RSVP FRR. If the prefix primary NH is direct, then an LFA NH is computed. A direct LFA NH is preferred over a tunneled LFA NH. Within each LFA NH type, node protection is preferred over link protection. The configuration command is:

    [/]
    A:admin@<a PE># configure {
        router "Base" {
            mpls {
                lsp "<LSP Name>" {
                    igp-shortcut {
                        lfa-type lfa-protect
                    }
                }
            }
        }
    }
    
  • The lfa-only option includes the LSP in the LFA SPFs only so that the introduction of IGP shortcuts does not impact the main SPF decision. The prefix primary NH is always direct and the prefix LFA NH is computed. A direct LFA NH is preferred over a tunneled LFA NH. Within each LFA NH type, node protection is preferred over link protection. The configuration command is:

    [/]
    A:admin@<a PE># configure {
        router "Base" {
            mpls {
                lsp "<LSP Name>" {
                    igp-shortcut {
                        lfa-type lfa-only
                    }
                }
            }
        }
    }
    

LDP/IP FRR is a local decision, so it can be enabled per node and there are no interoperability issues with other nodes. In the topology, PE-2 is provisioned with IS-IS LFA (OSPF configuration for the rest of this section is similar):

[/]
A:admin@PE-2# configure {
    router "Base" {
        isis 0 {
            loopfree-alternate { }
        }
    }
}

The second item to configure is whether LDP or IP FRR is provisioned. To configure IP FRR, the command is:

[/]
A:admin@PE-2# configure {
    routing-options {
        ip-fast-reroute true
    }
}

To configure LDP FRR, the following command is used:

[/]
A:admin@PE-2# configure {
    router "Base" {
        ldp {
            fast-reroute
        }
    }
}

Although not shown, it is recommended to enable IGP-LDP synchronization per interface to avoid possible traffic black-holes.

LFA is enabled in all routers of the topology. The following command shows the LFA coverage on PE-2 where four nodes out of five are protected (80%) and seven of the ten prefixes are protected (70%). IPv4 prefixes are protected (IPv6 is not configured). The following output shows L1 and L2 because this node is provisioned as an L1-L2 IS-IS router.

[/]
A:admin@PE-2# show router isis lfa-coverage

===============================================================================
Rtr Base ISIS Instance 0 LFA Coverage
===============================================================================
Topology         Level   Node           IPv4                IPv6
-------------------------------------------------------------------------------
IPV4 Unicast     L1      4/5(80%)       7/10(70%)           0/0(0%)
IPV6 Unicast     L1      0/0(0%)        0/0(0%)             0/0(0%)
IPV4 Multicast   L1      0/0(0%)        0/0(0%)             0/0(0%)
IPV6 Multicast   L1      0/0(0%)        0/0(0%)             0/0(0%)
IPV4 Unicast     L2      4/5(80%)       7/10(70%)           0/0(0%)
IPV6 Unicast     L2      0/0(0%)        0/0(0%)             0/0(0%)
IPV4 Multicast   L2      0/0(0%)        0/0(0%)             0/0(0%)
IPV6 Multicast   L2      0/0(0%)        0/0(0%)             0/0(0%)
===============================================================================

PE-2, PE-3, PE-4, and PE-5 share the same results, whereas only PE-1 and PE-6 have a coverage of 100% as shown in the following output.

[/]
A:admin@PE-1# show router isis lfa-coverage

===============================================================================
Rtr Base ISIS Instance 0 LFA Coverage
===============================================================================
Topology         Level   Node           IPv4                IPv6
-------------------------------------------------------------------------------
IPV4 Unicast     L1      5/5(100%)      11/11(100%)         0/0(0%)
IPV6 Unicast     L1      0/0(0%)        0/0(0%)             0/0(0%)
IPV4 Multicast   L1      0/0(0%)        0/0(0%)             0/0(0%)
IPV6 Multicast   L1      0/0(0%)        0/0(0%)             0/0(0%)
IPV4 Unicast     L2      5/5(100%)      11/11(100%)         0/0(0%)
IPV6 Unicast     L2      0/0(0%)        0/0(0%)             0/0(0%)
IPV4 Multicast   L2      0/0(0%)        0/0(0%)             0/0(0%)
IPV6 Multicast   L2      0/0(0%)        0/0(0%)             0/0(0%)
===============================================================================

Taking a deeper look into the IS-IS LFA on PE-2, it can be seen that the node which is not protected is PE-4 (system address 192.0.2.4, because it is the one missing):

[/]
A:admin@PE-2# show router route-table alternative | match LFA pre-lines 2
192.0.2.1/32                                  Remote  ISIS      01h21m18s  15
       192.168.12.1                                                 10
       192.168.23.2 (LFA)                                           20
192.0.2.3/32                                  Remote  ISIS      01h20m52s  15
       192.168.23.2                                                 10
       192.168.12.1 (LFA)                                           20
192.0.2.5/32                                  Remote  ISIS      01h20m18s  15
       192.168.23.2                                                 20
       192.168.24.2 (LFA)                                           20
192.0.2.6/32                                  Remote  ISIS      01h19m56s  15
       192.168.24.2                                                 20
       192.168.23.2 (LFA)                                           30
192.168.13.0/30                               Remote  ISIS      01h21m18s  15
       192.168.12.1                                                 20
       192.168.23.2 (LFA)                                           30
192.168.35.0/30                               Remote  ISIS      01h20m52s  15
       192.168.23.2                                                 20
       192.168.12.1 (LFA)                                           30
192.168.56.0/30                               Remote  ISIS      01h20m18s  15
       192.168.23.2                                                 30
       192.168.24.2 (LFA)                                           30
Flags: n = Number of times nexthop is repeated
       Backup = BGP backup route
       LFA = Loop-Free Alternate nexthop

LFA is improved by taking advantage of RSVP shortcuts when it is properly provisioned. The reason why PE-4 cannot be protected with an LFA path is because the direct NH is using the direct link between PE-2 and PE-4 (the shortest IGP) and the intended LFA path through PE-3 is not valid (when LFA tries to find an alternate path via PE-3, the IGP cost from PE-3 to PE-4 is the same going via PE-5 as the path back via PE-2, invalidating that LFA calculation because there is a loop). This is normal because PE-2, PE-3, PE-4 and PE-5 are forming a ring. LFA coverage is increased by adding a link between PE-2 and PE-5, which can be done using a physical link or a virtual link with an RSVP shortcut. From the two possible options (lfa-only and lfa-protect), a new LSP ‟LSP-PE-2-PE-5” is configured with igp-shortcut lfa-only.

[/]
A:admin@PE-2# configure {
    router "Base" {
        mpls {
            admin-state enable
            path "path-to-PE-5" {
                admin-state enable
                hop 10 {
                    ip-address 192.0.2.3
                    type strict
                }
                hop 20 {
                    ip-address 192.0.2.5
                    type strict
                }
            }
            lsp "LSP-PE-2-PE-5" {
                admin-state enable
                to 192.0.2.5
                type p2p-rsvp
                primary "path-to-PE-5" { }
                igp-shortcut {
                       lfa-type lfa-only
                }
            }
        }
    }
}
Figure 5. RSVP Shortcuts LFA Use Case Example

Now the LFA coverage is 100% on PE-2 as shown by the following output:

[/]
A:admin@PE-2# show router isis lfa-coverage

===============================================================================
Rtr Base ISIS Instance 0 LFA Coverage
===============================================================================
Topology         Level   Node           IPv4                IPv6
-------------------------------------------------------------------------------
IPV4 Unicast     L1      5/5(100%)      10/10(100%)         0/0(0%)
IPV6 Unicast     L1      0/0(0%)        0/0(0%)             0/0(0%)
IPV4 Multicast   L1      0/0(0%)        0/0(0%)             0/0(0%)
IPV6 Multicast   L1      0/0(0%)        0/0(0%)             0/0(0%)
IPV4 Unicast     L2      5/5(100%)      10/10(100%)         0/0(0%)
IPV6 Unicast     L2      0/0(0%)        0/0(0%)             0/0(0%)
IPV4 Multicast   L2      0/0(0%)        0/0(0%)             0/0(0%)
IPV6 Multicast   L2      0/0(0%)        0/0(0%)             0/0(0%)
=============================================================================== 

The GRT details the prefix information after the new LFA calculation using the lfa-only option (the shortcut is used by LFA SPF). The metric from PE-2 to PE-4 is the maximum plus the IGP cost (16777215 + 10) and the shortcut is also used to protect the rest of the previously unprotected prefixes:

[/]
A:admin@PE-2# show router route-table alternative | match LFA pre-lines 2
192.0.2.1/32                                  Remote  ISIS      01h23m27s  15
       192.168.12.1                                                 10
       192.168.23.2 (LFA)                                           20
192.0.2.3/32                                  Remote  ISIS      01h23m01s  15
       192.168.23.2                                                 10
       192.168.12.1 (LFA)                                           20
192.0.2.4/32                                  Remote  ISIS      01h22m47s  15
       192.168.24.2                                                 10
       192.0.2.5 (LFA) (tunneled:RSVP:1)                            16777225
192.0.2.5/32                                  Remote  ISIS      01h22m27s  15
       192.168.23.2                                                 20
       192.168.24.2 (LFA)                                           20
192.0.2.6/32                                  Remote  ISIS      01h22m05s  15
       192.168.24.2                                                 20
       192.168.23.2 (LFA)                                           30
192.168.13.0/30                               Remote  ISIS      01h23m27s  15
       192.168.12.1                                                 20
       192.168.23.2 (LFA)                                           30
192.168.35.0/30                               Remote  ISIS      01h23m01s  15
       192.168.23.2                                                 20
       192.168.12.1 (LFA)                                           30
192.168.45.0/30                               Remote  ISIS      01h22m47s  15
       192.168.24.2                                                 20
       192.0.2.5 (LFA) (tunneled:RSVP:1)                            16777235
192.168.46.0/30                               Remote  ISIS      01h22m47s  15
       192.168.24.2                                                 20
       192.0.2.5 (LFA) (tunneled:RSVP:1)                            16777235
192.168.56.0/30                               Remote  ISIS      01h22m27s  15
       192.168.23.2                                                 30
       192.168.24.2 (LFA)                                           30
Flags: n = Number of times nexthop is repeated
       Backup = BGP backup route
       LFA = Loop-Free Alternate nexthop

The tunnel table shows the RSVP LSP used as a shortcut and its operational metric.

[/]
A:admin@PE-2# show router tunnel-table 192.0.2.5

===============================================================================
IPv4 Tunnel Table (Router: Base)
===============================================================================
Destination           Owner     Encap TunnelId  Pref   Nexthop        Metric
   Color                                                              
-------------------------------------------------------------------------------
192.0.2.5/32          rsvp      MPLS  1         7      192.168.23.2   16777215
192.0.2.5/32 [L]      ldp       MPLS  65540     9      192.168.23.2   20
-------------------------------------------------------------------------------
Flags: B = BGP or MPLS backup hop available
       L = Loop-Free Alternate (LFA) hop available
       E = Inactive best-external BGP route
       k = RIB-API or Forwarding Policy backup hop
===============================================================================

If the LSP ‟LSP-PE-2-PE-5” is provisioned with lfa-protect instead of lfa-only, the result is that the LSP "LSP-PE-2-PE-5‟ is used by normal SPF to define the primary NH and it is not used by LFA SPF anymore.

[/]
A:admin@PE-2# configure {
    router "Base" {
        mpls {
            lsp "LSP-PE-2-PE-5" {
                igp-shortcut {
                    lfa-type lfa-protect
                }
            }
        )
    )
}

The coverage when lfa-protect is used also shows a 100% for nodes and 100% for prefixes, as follows.

[/]
A:admin@PE-2# show router isis lfa-coverage

===============================================================================
Rtr Base ISIS Instance 0 LFA Coverage
===============================================================================
Topology         Level   Node           IPv4                IPv6
-------------------------------------------------------------------------------
IPV4 Unicast     L1      5/5(100%)      9/9(100%)           0/0(0%)
IPV6 Unicast     L1      0/0(0%)        0/0(0%)             0/0(0%)
IPV4 Multicast   L1      0/0(0%)        0/0(0%)             0/0(0%)
IPV6 Multicast   L1      0/0(0%)        0/0(0%)             0/0(0%)
IPV4 Unicast     L2      5/5(100%)      9/9(100%)           0/0(0%)
IPV6 Unicast     L2      0/0(0%)        0/0(0%)             0/0(0%)
IPV4 Multicast   L2      0/0(0%)        0/0(0%)             0/0(0%)
IPV6 Multicast   L2      0/0(0%)        0/0(0%)             0/0(0%)
===============================================================================

In this case, the GRT looks as follows, the main difference being that now PE-5 (192.0.2.5) has a direct shortcut from PE-2:

[/]
A:admin@PE-2# show router route-table alternative

===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric   
      Alt-NextHop                                                Alt-      
                                                                Metric     
-------------------------------------------------------------------------------
192.0.2.1/32                                  Remote  ISIS      01h24m50s  15
       192.168.12.1                                                 10
       192.168.23.2 (LFA)                                           20
192.0.2.2/32                                  Local   Local     01h24m51s  0
       system                                                       0
192.0.2.3/32                                  Remote  ISIS      01h24m24s  15
       192.168.23.2                                                 10
       192.168.12.1 (LFA)                                           20
192.0.2.4/32                                  Remote  ISIS      01h24m10s  15
       192.168.24.2                                                 10
       192.0.2.5 (LFA) (tunneled:RSVP:1)                            16777225
192.0.2.5/32                                  Remote  ISIS      00h00m45s  15
       192.0.2.5 (tunneled:RSVP:1)                                  16777215
192.0.2.6/32                                  Remote  ISIS      01h23m28s  15
       192.168.24.2                                                 20
       192.168.23.2 (LFA)                                           30
192.168.12.0/30                               Local   Local     01h24m51s  0
       int-PE-2-PE-1                                                0
192.168.13.0/30                               Remote  ISIS      01h24m50s  15
       192.168.12.1                                                 20
       192.168.23.2 (LFA)                                           30
192.168.23.0/30                               Local   Local     01h24m51s  0
       int-PE-2-PE-3                                                0
192.168.24.0/30                               Local   Local     01h24m51s  0
       int-PE-2-PE-4                                                0
192.168.35.0/30                               Remote  ISIS      01h24m24s  15
       192.168.23.2                                                 20
       192.168.12.1 (LFA)                                           30
192.168.45.0/30                               Remote  ISIS      01h24m10s  15
       192.168.24.2                                                 20
       192.0.2.5 (LFA) (tunneled:RSVP:1)                            16777235
192.168.46.0/30                               Remote  ISIS      01h24m10s  15
       192.168.24.2                                                 20
       192.0.2.5 (LFA) (tunneled:RSVP:1)                            16777235
192.168.56.0/30                               Remote  ISIS      00h00m45s  15
       192.168.24.2                                                 30
       192.168.23.2 (LFA)                                           40
-------------------------------------------------------------------------------
No. of Routes: 14
Flags: n = Number of times nexthop is repeated
       Backup = BGP backup route
       LFA = Loop-Free Alternate nexthop
       S = Sticky ECMP requested
===============================================================================

Rules Determining the Installation of Shortcuts into the RTM

Although it was already mentioned in the RSVP-TE LSP shortcut for IGP route resolution section, the rules determining how shortcuts are installed into the RTM are (sorted by higher priority):

  • RSVP shortcut.

  • LDP shortcut.

  • IGP route with regular IP next hop.

  • The implementation is compliant with RFC 3906.

To check the rules, the network configuration is iLDP in all interfaces with LDP shortcuts enabled, there is also an RSVP LSP from PE-6 to PE-3 available but RSVP shortcuts are disabled. The topology is shown in Network Topology to Verify Installation of Shortcuts into the RTM.

Figure 6. Network Topology to Verify Installation of Shortcuts into the RTM

The following RSVP LSP is needed between PE-6 and PE-3.

[/]
A:admin@PE-6# configure {
    router "Base" {
        ldp {
            ldp-shortcut {
                ipv4 true
            }
        }
    }
}
[/]
A:admin@PE-6# configure {
    router "Base" {
        isis 0 {
            delete loopfree-alternate
            igp-shortcut {
                tunnel-next-hop {
                    family ipv4 {
                        resolution-filter {
                            rsvp false
                        }
                        resolution none
                    }
                }
                admin-state disable
            }
        }
    }
}
[/]
A:admin@PE-6# configure {
    router "Base" {
        mpls {
            path "loose_path" {
                admin-state enable
            }
            lsp "LSP-PE-6-PE-3" {
                admin-state enable
                to 192.0.2.3
                type p2p-rsvp
                primary "loose_path" { }
                path-computation-method local-cspf
            }
        }
    }
}

The routes in the routing table on PE-6 are the following:

[/]
A:admin@PE-6# show router route-table

===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric   
-------------------------------------------------------------------------------
192.0.2.1/32                                  Remote  LDP       00h00m00s  9
       192.168.56.1 (tunneled)                                      30
192.0.2.2/32                                  Remote  LDP       00h00m00s  9
       192.168.56.1 (tunneled)                                      30
192.0.2.3/32                                  Remote  LDP       00h00m00s  9
       192.168.56.1 (tunneled)                                      20
192.0.2.5/32                                  Remote  LDP       00h00m00s  9
       192.168.56.1 (tunneled)                                      10
192.0.2.6/32                                  Local   Local     01h28m21s  0
       system                                                       0
192.168.12.0/30                               Remote  ISIS      00h02m08s  15
       192.168.56.1                                                 40
192.168.13.0/30                               Remote  ISIS      00h19m24s  15
       192.168.56.1                                                 30
192.168.23.0/30                               Remote  ISIS      00h02m08s  15
       192.168.56.1                                                 30
192.168.35.0/30                               Remote  ISIS      00h22m14s  15
       192.168.56.1                                                 20
192.168.56.0/30                               Local   Local     01h28m21s  0
       int-PE-6-PE-5                                                0
-------------------------------------------------------------------------------
No. of Routes: 10
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
=============================================================================== 

The tunnel table shows the LSPs available for the shortcuts, and therefore, these are used in the GRT for LDP (but not for RSVP):

[/]
A:admin@PE-6# show router tunnel-table

===============================================================================
IPv4 Tunnel Table (Router: Base)
===============================================================================
Destination           Owner     Encap TunnelId  Pref   Nexthop        Metric
   Color                                                              
-------------------------------------------------------------------------------
192.0.2.1/32          ldp       MPLS  65547     9      192.168.56.1   30
192.0.2.2/32          ldp       MPLS  65544     9      192.168.56.1   30
192.0.2.3/32          rsvp      MPLS  4         7      192.168.56.1   20
192.0.2.3/32          ldp       MPLS  65545     9      192.168.56.1   20
192.0.2.5/32          ldp       MPLS  65540     9      192.168.56.1   10
-------------------------------------------------------------------------------
Flags: B = BGP or MPLS backup hop available
       L = Loop-Free Alternate (LFA) hop available
       E = Inactive best-external BGP route
       k = RIB-API or Forwarding Policy backup hop
=============================================================================== 

So far, LDP shortcuts are preferred over the IGP next hops for the system addresses (router ID). After enabling RSVP shortcuts in the IS-IS context, the changes in the GRT are:

[/]
A:admin@PE-6# configure {
    router "Base" {
        isis 0 {
            igp-shortcut {
                admin-state enable
                tunnel-next-hop {
                    family ipv4 {
                        resolution filter
                        resolution-filter {
                            rsvp true
                        }
                    }
                }
            }
        }
    }
}
[/]
A:admin@PE-6# show router route-table next-hop-type tunneled

===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric   
-------------------------------------------------------------------------------
192.0.2.1/32                                  Remote  ISIS      00h00m27s  15
       192.0.2.3 (tunneled:RSVP:4)                                  30
192.0.2.2/32                                  Remote  ISIS      00h00m27s  15
       192.0.2.3 (tunneled:RSVP:4)                                  30
192.0.2.3/32                                  Remote  ISIS      00h00m27s  15
       192.0.2.3 (tunneled:RSVP:4)                                  20
192.0.2.5/32                                  Remote  LDP       00h00m30s  9
       192.168.56.1 (tunneled)                                      10
192.168.12.0/30                               Remote  ISIS      00h00m27s  15
       192.0.2.3 (tunneled:RSVP:4)                                  40
192.168.13.0/30                               Remote  ISIS      00h00m27s  15
       192.0.2.3 (tunneled:RSVP:4)                                  30
192.168.23.0/30                               Remote  ISIS      00h00m27s  15
       192.0.2.3 (tunneled:RSVP:4)                                  30
-------------------------------------------------------------------------------
No. of Routes: 7
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

The GRT shows that PE-6 is using an LDP shortcut to reach PE-5, but PE-6 is using the RSVP shortcut to reach not only PE-3’s system address, but also PE-1 and PE-2 routes (including all interfaces) which were behind the RSVP LSP shortcut.

In summary, the behavior is:

  1. When resolving a prefix, SPF picks the RSVP shortcut next hop if there is an RSVP LSP directly to that address regardless of the IGP path cost compared to the IGP next hop. When multiple RSVP LSPs to that address exist and all have the same lowest metric, if ECMP is enabled on the system, the LSP with the lowest tunnel ID is chosen. In this example, if LSP ‟LSP-PE-6-PE-3” is provisioned with a metric of 100 (IGP metric is 20), the GRT shows that the PE-3 system address is reachable via the LSP.

    [/]
    A:admin@PE-6# show router route-table 192.0.2.3
    
    ===============================================================================
    Route Table (Router: Base)
    ===============================================================================
    Dest Prefix[Flags]                            Type    Proto     Age        Pref
          Next Hop[Interface Name]                                    Metric   
    -------------------------------------------------------------------------------
    192.0.2.3/32                                  Remote  ISIS      00h00m53s  15
           192.0.2.3 (tunneled:RSVP:4)                                  100
    -------------------------------------------------------------------------------
    No. of Routes: 1
    Flags: n = Number of times nexthop is repeated
           B = BGP backup route available
           L = LFA nexthop available
           S = Sticky ECMP requested
    ===============================================================================
    
  2. SPF also picks the RSVP LSP shortcut if both the LSP path and the IGP path to the prefix are via the tail-end of the LSP. This is regardless of the path cost compared to the IGP next hop. When paths over multiple RSVP shortcuts have the same lowest cost, if ECMP is enabled on the system, the LSP with the lowest tunnel ID is chosen. In this example, 192.168.13.0 and 192.168.23.0 are using the shortcut but 192.168.12.0 is not.

    [/]
    A:admin@PE-6# show router route-table
    
    ===============================================================================
    Route Table (Router: Base)
    ===============================================================================
    Dest Prefix[Flags]                            Type    Proto     Age        Pref
          Next Hop[Interface Name]                                    Metric   
    -------------------------------------------------------------------------------
    192.0.2.1/32                                  Remote  LDP       00h00m53s  9
           192.168.56.1 (tunneled)                                      30
    192.0.2.2/32                                  Remote  LDP       00h00m53s  9
           192.168.56.1 (tunneled)                                      30
    192.0.2.3/32                                  Remote  ISIS      00h00m53s  15
           192.0.2.3 (tunneled:RSVP:4)                                  100
    192.0.2.5/32                                  Remote  LDP       00h01m25s  9
           192.168.56.1 (tunneled)                                      10
    192.0.2.6/32                                  Local   Local     01h29m45s  0
           system                                                       0
    192.168.12.0/30                               Remote  ISIS      00h00m53s  15
           192.168.56.1                                                 40
    192.168.13.0/30                               Remote  ISIS      00h00m53s  15
           192.0.2.3 (tunneled:RSVP:4)                                  110
    192.168.23.0/30                               Remote  ISIS      00h00m53s  15
           192.0.2.3 (tunneled:RSVP:4)                                  110
    192.168.35.0/30                               Remote  ISIS      00h23m39s  15
           192.168.56.1                                                 20
    192.168.56.0/30                               Local   Local     01h29m45s  0
           int-PE-6-PE-5                                                0
    -------------------------------------------------------------------------------
    No. of Routes: 10
    Flags: n = Number of times nexthop is repeated
           B = BGP backup route available
           L = LFA nexthop available
           S = Sticky ECMP requested
    ===============================================================================
    

LDP/RSVP LSP Shortcut for BGP NH Resolution

Using LDP/RSVP LSP shortcuts for resolving BGP next hops allows IPv4 packet forwarding to routes resolved via a BGP next hop using an LDP/RSVP LSP instead of using a regular IP next hop. In the network topology of Example Topology, both PE-3 and PE-6 have a single peer configured, initially without any shortcuts enabled under the bgp context. Also, one static route is configured in PE-3 and PE-6 and that is redistributed into BGP. The relevant configuration on PE-3 is the following:

[/]
A:admin@PE-3# configure {
    router "Base" {
        interface "int-static-route" {
            ipv4 {
                primary {
                    address 172.16.33.1
                    prefix-length 30
                }
            }
            port 1/1/4:33
        }
        autonomous-system 65536
        static-routes {
            route 10.10.10.0/24 route-type unicast {
                next-hop "172.16.33.2" {
                    admin-state enable
                }
            }
        }
    }
}

[/]
A:admin@PE-3# configure {
    policy-options {
        policy-statement "static-routes-policy" {
            description "export static-routes for I-BGP"
            entry 10 {
                from {
                    protocol {
                        name [static]
                    }
                }
                to {
                    protocol {
                        name [bgp]
                    }
                }
                action {
                    action-type accept
                    next-hop self
                }
            }
            default-action {
                action-type reject
            }
        }
    }
}

[/]
A:admin@PE-3# configure {
    router "Base" {
        bgp {
            export {
                policy ["static-routes-policy"]
            }
            group "ibgp" {
                peer-as 65536
            }
            neighbor 192.0.2.6 {
                group "ibgp"
            }
        }
    }
}

Checking the static route received on PE-6 via BGP, the next hop is the PE-3 system address:

[/]
A:admin@PE-6# show router bgp routes 10.10.10.0/24 detail
===============================================================================
 BGP Router ID:192.0.2.6        AS:65536       Local AS:65536      
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP IPv4 Routes
===============================================================================
Original Attributes

Network        : 10.10.10.0/24
Nexthop        : 192.0.2.3
Path Id        : None
From           : 192.0.2.3
Res. Protocol  : ISIS                   Res. Metric    : 20
Res. Nexthop   : 192.168.56.1
Local Pref.    : 100                    Interface Name : int-PE-6-PE-5
Aggregator AS  : None                   Aggregator     : None
Atomic Aggr.   : Not Atomic             MED            : None
AIGP Metric    : None                   IGP Cost       : 20
Connector      : None
Community      : No Community Members
Cluster        : No Cluster Members
Originator Id  : None                   Peer Router Id : 192.0.2.3
Fwd Class      : None                   Priority       : None
Flags          : Used Valid Best Incomplete In-RTM 
Route Source   : Internal
AS-Path        : No As-Path
Route Tag      : 0                      
Neighbor-AS    : n/a
Orig Validation: NotFound               
Source Class   : 0                      Dest Class     : 0
Add Paths Send : Default                
RIB Priority   : Normal                 
Last Modified  : 00h01m32s              

Modified Attributes

---snip---

-------------------------------------------------------------------------------
Routes : 1
===============================================================================

Three of the BGP peering configuration possibilities are LDP, RSVP, or BGP. The other resolution filter options are related to segment routing and are beyond the scope of this chapter. In case both LDP and RSVP are included in the filter, RSVP is preferred. Disabling the IGP is also allowed (meaning that unless there is a shortcut, the BGP peering will not fall back to IGP):

[/]
A:admin@PE-6# configure {
    router "Base" {
        bgp {
            next-hop-resolution {
                shortcut-tunnel {
                    family ipv4 {
                        resolution ?

 resolution <keyword>
 <keyword>  - (none|filter|any)
 Default    - none

    Resolution mode for binding BGP routes to tunnel types

[/]
A:admin@PE-6# configure {
    router "Base" {
        bgp {
            next-hop-resolution {
                shortcut-tunnel {
                    family ipv4 {
                        resolution-filter ?

 resolution-filter

 bgp                   - Use BGP tunneling for next-hop resolution
 ldp                   - Use LDP tunneling for next-hop resolution
 mpls-fwd-policy       - Use MPLS forwarding policy for next-hop resolution
 rib-api               - Use RIB API gRPC service for next-hop resolution
 rsvp                  - Use RSVP tunneling for next-hop resolution
 sr-isis               - Use IS-IS SR tunneling for next-hop resolution
 sr-ospf               - Use OSPF SR tunneling for next-hop resolution
 sr-ospf3              - Use OSPFv3 SR tunneling for next-hop resolution
 sr-policy             - Use SR policies for next-hop resolution
 sr-te                 - Use SR-TE tunneling for next-hop resolution

When enabling LDP shortcuts on PE-6, the output changes showing the detail of the received BGP route indicating that the next hop is resolved using LDP:

configure {
    router "Base" {
        bgp {
            next-hop-resolution {
                shortcut-tunnel {
                    family ipv4 {
                    resolution-filter {
                        ldp true
                    }
                    resolution filter
                    }
                }
            }
        }
    }
}

[/]
A:admin@PE-6# show router bgp routes 10.10.10.0/24 detail
===============================================================================
 BGP Router ID:192.0.2.6        AS:65536       Local AS:65536      
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP IPv4 Routes
===============================================================================
Original Attributes

Network        : 10.10.10.0/24
Nexthop        : 192.0.2.3
Path Id        : None
From           : 192.0.2.3
Res. Protocol  : LDP                    Res. Metric    : 20
Res. Nexthop   : 192.0.2.3 (LDP)
Local Pref.    : 100                    Interface Name : NotAvailable
Aggregator AS  : None                   Aggregator     : None
Atomic Aggr.   : Not Atomic             MED            : None
AIGP Metric    : None                   IGP Cost       : 20
Connector      : None
Community      : No Community Members
Cluster        : No Cluster Members
Originator Id  : None                   Peer Router Id : 192.0.2.3
Fwd Class      : None                   Priority       : None
Flags          : Used Valid Best Incomplete In-RTM 
Route Source   : Internal
AS-Path        : No As-Path
Route Tag      : 0                      
Neighbor-AS    : n/a
Orig Validation: NotFound               
Source Class   : 0                      Dest Class     : 0
Add Paths Send : Default                
RIB Priority   : Normal                 
Last Modified  : 00h02m32s              

Modified Attributes

---snip---

-------------------------------------------------------------------------------
Routes : 1
===============================================================================

The GRT output command also shows that the route is reachable using LDP (indicated as tunneled):

[/]
A:admin@PE-6# show router route-table next-hop-type tunneled

===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric   
-------------------------------------------------------------------------------
10.10.10.0/24                                 Remote  BGP       00h00m30s  170
       192.0.2.3 (tunneled)                                         20
-------------------------------------------------------------------------------
No. of Routes: 1
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

The previously created LSP LSP-PE-6-PE-3 is up and running:

[/]
A:admin@PE-6# show router mpls lsp "LSP-PE-6-PE-3" path detail

===============================================================================
MPLS LSP LSP-PE-6-PE-3 Path  (Detail)
===============================================================================
Legend : 
    @ - Detour Available              # - Detour In Use
    b - Bandwidth Protected           n - Node Protected
    s - Soft Preemption           
    S - Strict                        L - Loose
    A - ABR                           + - Inherited
===============================================================================
-------------------------------------------------------------------------------
LSP LSP-PE-6-PE-3
Path loose_path
-------------------------------------------------------------------------------
LSP Name    : LSP-PE-6-PE-3
From             : 192.0.2.6               
To               : 192.0.2.3               
Admin State      : Up                      Oper State        : Up
Path Name   : loose_path
Path LSP ID      : 9216                    Path Type         : Primary
Path Admin       : Up                      Path Oper         : Up
Out Interface    : 1/1/1                   Out Label         : 524283
Path Up Time     : 0d 00:13:27             Path Down Time    : 0d 00:00:00
Retry Limit      : 0                       Retry Timer       : 30 sec
Retry Attempt    : 0                       Next Retry In     : 0 sec

---snip---

Adspec           : Disabled                Oper Adspec       : Disabled
PathCompMethod   : local-cspf              OperPathCompMethod: local-cspf
MetricType       : igp                     Oper MetricType   : igp
Least Fill       : Disabled                Oper LeastFill    : Disabled
FRR              : Disabled                Oper FRR          : Disabled
Propagate Adm Grp: Disabled                Oper Prop Adm Grp : Disabled
Inter-area       : False                   

---snip---

Adaptive         : Enabled                 Oper Metric       : 100
Preference       : n/a                     
Path Trans       : 1                       CSPF Queries      : 1
Failure Code     : noError
Failure Node : n/a
Explicit Hops    :                         
    No Hops Specified
Actual Hops      :                         
    192.168.56.2(192.0.2.6)                      Record Label        : N/A
 -> 192.168.56.1(192.0.2.5)                      Record Label        : 524283
 -> 192.168.35.1(192.0.2.3)                      Record Label        : 524284
Computed Hops    :                         
    192.168.56.2(S)   
 -> 192.168.56.1(S)   
 -> 192.168.35.1(S)   
Resignal Eligible: False                   
Last Resignal    : n/a                     CSPF Metric       : 20
===============================================================================

After adding resolution-filter rsvp to the shortcut-tunnel configuration in the bgp context, the output shows that the BGP peer is reachable using an RSVP LSP (switched from LDP to RSVP because RSVP is preferred):

[/]
A:admin@PE-6# configure {
    router "Base" {
        bgp {
            next-hop-resolution {
                shortcut-tunnel {
                    family ipv4 {
                        resolution-filter {
                            ldp true
                            rsvp true
                        }
                        resolution filter
                    }
                }
            }
        }
    }
}

[/]
A:admin@PE-6# show router bgp routes 10.10.10.0/24 detail
===============================================================================
 BGP Router ID:192.0.2.6        AS:65536       Local AS:65536      
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP IPv4 Routes
===============================================================================
Original Attributes

Network        : 10.10.10.0/24
Nexthop        : 192.0.2.3
Path Id        : None                   
From           : 192.0.2.3
Res. Protocol  : RSVP                   Res. Metric    : 100
Res. Nexthop   : 192.0.2.3 (RSVP LSP: 4)
Local Pref.    : 100                    Interface Name : NotAvailable
Aggregator AS  : None                   Aggregator     : None
Atomic Aggr.   : Not Atomic             MED            : None
AIGP Metric    : None                   IGP Cost       : 100
Connector      : None
Community      : No Community Members
Cluster        : No Cluster Members
Originator Id  : None                   Peer Router Id : 192.0.2.3
Fwd Class      : None                   Priority       : None
Flags          : Used Valid Best Incomplete In-RTM 
Route Source   : Internal
AS-Path        : No As-Path
Route Tag      : 0                      
Neighbor-AS    : n/a
Orig Validation: NotFound               
Source Class   : 0                      Dest Class     : 0
Add Paths Send : Default                
RIB Priority   : Normal                 
Last Modified  : 00h03m59s              

Modified Attributes

---snip---              

-------------------------------------------------------------------------------
Routes : 1
===============================================================================

The GRT output command also shows that the route is reachable using RSVP (indicated as tunneled:RSVP:4):

[/]
A:admin@PE-6# show router route-table next-hop-type tunneled

===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric   
-------------------------------------------------------------------------------
10.10.10.0/24                                 Remote  BGP       00h00m33s  170
       192.0.2.3 (tunneled:RSVP:4)                                  100
-------------------------------------------------------------------------------
No. of Routes: 1
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

If the RSVP LSP is disabled, the system reverts back to the LDP LSP:

configure {
    router "Base" {
        mpls {
            lsp "LSP-PE-6-PE-3" {
                admin-state disable
            }
        }
    }
}
[/]
A:admin@PE-6# show router bgp routes 10.10.10.0/24 detail
===============================================================================
 BGP Router ID:192.0.2.6        AS:65536       Local AS:65536      
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP IPv4 Routes
===============================================================================
Original Attributes

Network        : 10.10.10.0/24
Nexthop        : 192.0.2.3
Path Id        : None                   
From           : 192.0.2.3
Res. Protocol  : LDP                    Res. Metric    : 20
Res. Nexthop   : 192.0.2.3 (LDP)
Local Pref.    : 100                    Interface Name : NotAvailable
Aggregator AS  : None                   Aggregator     : None
Atomic Aggr.   : Not Atomic             MED            : None
AIGP Metric    : None                   IGP Cost       : 20
Connector      : None
Community      : No Community Members
Cluster        : No Cluster Members
Originator Id  : None                   Peer Router Id : 192.0.2.3
Fwd Class      : None                   Priority       : None
Flags          : Used Valid Best Incomplete In-RTM 
Route Source   : Internal
AS-Path        : No As-Path
Route Tag      : 0                      
Neighbor-AS    : n/a
Orig Validation: NotFound               
Source Class   : 0                      Dest Class     : 0
Add Paths Send : Default                
RIB Priority   : Normal                 
Last Modified  : 00h04m21s              

Modified Attributes

---snip---              

-------------------------------------------------------------------------------
Routes : 1
===============================================================================

When the shortcut tunnel with resolution-filter rsvp is enabled at the BGP level, all RSVP LSPs originating on this node are eligible to be used by default as long as the destination address of the LSP corresponds to that of the BGP next hop for that prefix. It is also possible to exclude a specific RSVP LSP from BGP next hop resolution, similar to the exclusion of a specific RSVP LSP being used as a shortcut for resolving IGP routes. In this example, if the RSVP LSP LSP-PE-6-PE-3 is excluded to be eligible for BGP next hop resolution, it reverts back to LDP.

[/]
A:admin@PE-6# configure {
    router "Base" {
        mpls {
            lsp "LSP-PE-6-PE-3" {
                admin-state enable
                delete bgp-shortcut
            }
        )
    )
}
[/]
A:admin@PE-6# show router route-table 10.10.10.0

===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric   
-------------------------------------------------------------------------------
10.10.10.0/24                                 Remote  BGP       00h00m29s  170
       192.0.2.3 (tunneled:RSVP:4)                                  100
-------------------------------------------------------------------------------
No. of Routes: 1
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

If the configuration is using disallow-igp, and neither LDP nor RSVP LSPs are available, the remote route received via BGP is removed from the GRT although the BGP peer session remains up. A field in the detailed show BGP route output indicates that the next hop is ‟Unresolved”:

[/]
A:admin@PE-6# configure {
    router "Base" {
        bgp {
            next-hop-resolution {
                shortcut-tunnel {
                    family ipv4 {
                        disallow-igp true
                    }
                }
            }
        }
    }
}
[/]
A:admin@PE-6# configure {
    router "Base" {
        ldp {
            admin-state disable
        }
    }
}
[/]
A:admin@PE-6# show router bgp routes 10.10.10.0/24 detail 
===============================================================================
 BGP Router ID:192.0.2.6        AS:65536       Local AS:65536      
===============================================================================
 Legend -
 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid
                 l - leaked, x - stale, > - best, b - backup, p - purge
 Origin codes  : i - IGP, e - EGP, ? - incomplete

===============================================================================
BGP IPv4 Routes
===============================================================================
Original Attributes

Network        : 10.10.10.0/24
Nexthop        : 192.0.2.3
Path Id        : None                   
From           : 192.0.2.3
Res. Protocol  : INVALID                Res. Metric    : 0
Res. Nexthop   : Unresolved
Local Pref.    : 100                    Interface Name : NotAvailable
Aggregator AS  : None                   Aggregator     : None
Atomic Aggr.   : Not Atomic             MED            : None
AIGP Metric    : None                   IGP Cost       : 0
Connector      : None
Community      : No Community Members
Cluster        : No Cluster Members
Originator Id  : None                   Peer Router Id : 192.0.2.3
Fwd Class      : None                   Priority       : None
Flags          : Invalid Incomplete Nexthop-Unresolved 
Route Source   : Internal
AS-Path        : No As-Path
Route Tag      : 0                      
Neighbor-AS    : n/a
Orig Validation: NotFound               
Source Class   : 0                      Dest Class     : 0
Add Paths Send : Default                
RIB Priority   : Normal                 
Last Modified  : 00h10m33s              

Modified Attributes

---snip---              

-------------------------------------------------------------------------------
Routes : 1
===============================================================================

Because the route is unresolved, it does not appear in the GRT:

[/]
A:admin@PE-6# show router route-table 10.10.10.0 

===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric   
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
No. of Routes: 0
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

MPLS/GRE Shortcut for BGP NH Resolution within a VRF

Using RSVP/LDP or GRE shortcuts for resolving BGP next hops within a Virtual Private Routed Network (VPRN), also known as auto-bind-tunnel, allows a VPRN service to automatically resolve the BGP next hop for VPRN routes to an MPLS LSP or a GRE tunnel. Three possible mechanisms exist to provide transport tunnels for forwarding traffic between PE routers within an RFC 4364, BGP/MPLS IP Virtual Private Networks (VPNs), network:

  • RSVP-TE protocol to create tunnel LSPs between PE routers.

  • LDP protocol to create tunnel LSPs between PE routers.

  • GRE tunnels between PE routers.

These transport tunneling mechanisms provide the flexibility to use dynamically created LSPs where the service tunnels are automatically bound (the auto-bind-tunnel feature), and the ability to provide certain VPN services with their own transport tunnels by explicitly binding SDPs if desired. All services using the auto-bind-tunnel feature use the same set of LSPs, which does not allow for alternate tunneling mechanisms (like GRE) or the ability to craft sets of LSPs with bandwidth reservations for specific customers, as is available with explicit SDPs for the service.

The auto-bind-tunnel configuration is as follows:

[/]
A:admin@PE-2# configure {
    service {
        vprn "NON_EXISTING_VPRN" {
            bgp-ipvpn {
                mpls {
                    auto-bind-tunnel
                    ?

 allow-flex-algo-      - Enable flexible algorithm fallback
  fallback
 apply-groups          - Apply a configuration group at this level
 apply-groups-exclude  - Exclude a configuration group at this level
 ecmp                  - Maximum ECMP routes allowed
 enforce-strict-       - Allow enforcement of strict tunnel tagging
  tunnel-tagging
 resolution            - Resolution method for tunnel selection
 resolution-filter     + Enter the resolution-filter context
 weighted-ecmp         - Allow weighted load-balancing

[/]
A:admin@PE-2# configure {
    service {
        vprn "NON_EXISTING_VPRN" {
            bgp-ipvpn {
                mpls {
                    auto-bind-tunnel {
                        resolution ?

 resolution <keyword>
 <keyword>  - (none|filter|any)
 Default    - none

    Resolution method for tunnel selection
[/]
A:admin@PE-2# configure {
    service {
        vprn "NON_EXISTING_VPRN" {
            bgp-ipvpn {
                mpls {
                    auto-bind-tunnel {
                        resolution-filter ?

 resolution-filter

 bgp                   - Use BGP tunneling for next-hop resolution
 gre                   - Use GRE tunneling for next-hop resolution
 ldp                   - Use LDP tunneling for next-hop resolution
 mpls-fwd-policy       - Use MPLS forwarding policy for next-hop resolution
 rib-api               - Use RIB API gRPC service for next-hop resolution
 rsvp                  - Use RSVP tunneling for next-hop resolution
 sr-isis               - Use IS-IS SR tunneling for next-hop resolution
 sr-ospf               - Use OSPF SR tunneling for next-hop resolution
 sr-ospf3              - Use OSPFv3 SR tunneling for next-hop resolution
 sr-policy             - Use SR policies for next-hop resolution
 sr-te                 - Use SR-TE tunneling for next-hop resolution
 udp                   - Use MPLS over UDP tunneling for next-hop resolution

Parameter descriptions:

  • ldp — Specifies LDP-based LSPs should be used to resolve the BGP next hop for VPRN routes in an associated VPRN instance.

  • gre — Specifies GRE-based tunnels to be used to resolve the BGP next hop for VPRN routes in an associated VPRN instance. GRE is out of the scope regarding shortcuts, refer to SR OS documentation for further details.

  • rsvp — Specifies RSVP-TE LSPs should be used to resolve the BGP next hop for VPRN routes in an associated VPRN instance.

  • the remaining parameters are beyond the scope of this chapter.

In all cases, if an explicit spoke-SDP is specified in the VPRN, it is always preferred over automatically selected tunnels (even if the SDP is down, the route becomes inactive; there is no fallback to the automatic selection).

The network is configured according to the topology shown in Shortcuts Within a VRF Topology Network. Four PEs (PE-1, PE-2, PE-4, and PE-5) are connected forming a meshed IP-VPN (named VPRN_1), using a route reflector on PE-3 for MP-BGP peering. All PEs have LDP tunnels enabled so at a minimum all can establish LDP shortcut tunnels to the others. In order to have not only LDP but also RSVP-TE LSPs and static SDPs (using an RSVP LSP) in the network, a mix of tunneling methods is configured. For brevity, the configuration of PE-2 only is given, providing the details about the shortcuts created by auto-bind-tunnel. PE-2 has a static SDP (RSVP-based) with PE-1, an RSVP LSP with PE-4, and an LDP LSP with PE-5. Every PE has a CE connected, so each PE has an interface connected to the CE as well as a static route to a CE LAN (although redistribution routing policies are needed, they are not shown for brevity).

Figure 7. Shortcuts Within a VRF Topology Network

On PE-2, VPRN1 is configured as follows:

configure {
    service {
        sdp 1 {
            admin-state enable
            far-end {
                ip-address 192.0.2.1
            }
            delivery-type mpls
            lsp "LSP-PE-2-PE-1"
        }
        vprn "VPRN_1" {
            admin-state enable
            service-id 1
            customer "1"
            bgp-ipvpn {
                mpls {
                    admin-state enable
                    route-distinguisher "65536:1"
                    vrf-import {
                        policy ["VPN1-import"]
                    }
                    vrf-export {
                        policy ["VPN1-export"]
                    }
                    auto-bind-tunnel {
                          resolution filter
                          resolution-filter {
                                gre true
                                ldp true
                                rsvp true
                          }
                    }
                }
            }
            interface "to-CE-2" {
                ipv4 {
                    primary {
                        address 172.16.2.1
                        prefix-length 24
                    }
                }
                sap 1/1/4:1 { }
            }
            static-routes {
                route 172.16.22.0/24 route-type unicast {
                    next-hop "172.16.2.2" {
                        admin-state enable
                    }
                }
            }
            spoke-sdp 1:1
        }
    }
}

As previously mentioned, regarding IP-VPN meshed connectivity, the configuration shows that there is a static SDP 1 (pointing to PE-1), and the rest of the configuration is just auto-bind-tunnel. On PE-2, the connectivity toward the other PEs in the network can be verified by checking VPRN_1:

[/]
A:admin@PE-2# show router 1 route-table

===============================================================================
Route Table (Service: 1)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric   
-------------------------------------------------------------------------------
172.16.1.0/24                                 Remote  BGP VPN   00h01m14s  170
       192.0.2.1 (tunneled)                                         0
172.16.2.0/24                                 Local   Local     00h09m06s  0
       to-CE-2                                                      0
172.16.4.0/24                                 Remote  BGP VPN   00h01m14s  170
       192.0.2.4 (tunneled:RSVP:3)                                  10
172.16.5.0/24                                 Remote  BGP VPN   00h01m14s  170
       192.0.2.5 (tunneled)                                         20
172.16.11.0/24                                Remote  BGP VPN   00h01m14s  170
       192.0.2.1 (tunneled)                                         0
172.16.22.0/24                                Remote  Static    00h09m07s  5
       172.16.2.2                                                   1
172.16.44.0/24                                Remote  BGP VPN   00h01m14s  170
       192.0.2.4 (tunneled:RSVP:3)                                  10
172.16.55.0/24                                Remote  BGP VPN   00h01m14s  170
       192.0.2.5 (tunneled)                                         20
-------------------------------------------------------------------------------
No. of Routes: 8
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

As can be seen, there are eight routes because every PE has two routes (one direct PE-CE interface and one static route), so six routes are received from other PEs via MP-BGP. The VPRN_1 routing table can be understood by looking at the tunnel table (active LSPs for remote system IDs):

[/]
A:admin@PE-2# show router tunnel-table

===============================================================================
IPv4 Tunnel Table (Router: Base)
===============================================================================
Destination           Owner     Encap TunnelId  Pref   Nexthop        Metric
   Color                                                              
-------------------------------------------------------------------------------
192.0.2.1/32          sdp       MPLS  1         5      192.0.2.1      0
192.0.2.1/32          rsvp      MPLS  2         7      192.168.12.1   10
192.0.2.1/32          ldp       MPLS  65537     9      192.168.12.1   10
192.0.2.3/32          ldp       MPLS  65538     9      192.168.23.2   10
192.0.2.4/32          rsvp      MPLS  3         7      192.168.24.2   10
192.0.2.4/32          rsvp      MPLS  4         7      192.168.24.2   16777215
192.0.2.4/32          ldp       MPLS  65545     9      192.168.24.2   10
192.0.2.5/32          ldp       MPLS  65542     9      192.168.23.2   20
192.0.2.6/32          ldp       MPLS  65546     9      192.168.24.2   20
-------------------------------------------------------------------------------
Flags: B = BGP or MPLS backup hop available
       L = Loop-Free Alternate (LFA) hop available
       E = Inactive best-external BGP route
       k = RIB-API or Forwarding Policy backup hop
===============================================================================

The tunnel table shows one entry per LSP per remote PE. The following tunnel selection rules apply:

  • SDP has the lowest (best) preference, followed by RSVP and then by LDP.

  • If the preference is the same, the lowest metric is selected (ECMP is possible with LDP).

PE-2 has three possibilities to reach PE-1 (192.0.2.1): an SDP tunnel ID 1 with preference 5, an RSVP tunnel ID 2 with preference 7, and an LDP LSP with preference 9. Because SDP tunnel ID 1 has the lowest preference, it is the chosen option. PE-2 has three possibilities to reach PE-4 (192.0.2.4): an RSVP tunnel ID 3 with preference 7 and metric 10, an RSVP tunnel ID 4 with preference 7 and metric 16777215, and an LDP LSP with preference 9; so RSVP tunnel ID 3 is selected. PE-2 only has one option to reach PE-5 and PE-6 (192.0.2.5 and 192.0.2.6) using an LDP LSP.

The following FIB for router VPRN_1 on PE-2 provides more detailed information on the tunneling:

[/]
A:admin@PE-2# show router 1 fib 1

===============================================================================
FIB Display
===============================================================================
Prefix [Flags]                                              Protocol
  NextHop                                                   
-------------------------------------------------------------------------------
172.16.1.0/24                                               BGP_VPN
  192.0.2.1 (VPRN Label:524281 Transport:SDP:1)
172.16.2.0/24                                               LOCAL
  172.16.2.0 (to-CE-2) 
172.16.4.0/24                                               BGP_VPN
  192.0.2.4 (VPRN Label:524280 Transport:RSVP LSP:3)
172.16.5.0/24                                               BGP_VPN
  192.0.2.5 (VPRN Label:524282 Transport:LDP)
172.16.11.0/24                                              BGP_VPN
  192.0.2.1 (VPRN Label:524281 Transport:SDP:1)
172.16.22.0/24                                              STATIC
  172.16.2.2 (to-CE-2) 
172.16.44.0/24                                              BGP_VPN
  192.0.2.4 (VPRN Label:524280 Transport:RSVP LSP:3)
172.16.55.0/24                                              BGP_VPN
  192.0.2.5 (VPRN Label:524282 Transport:LDP)
-------------------------------------------------------------------------------
Total Entries : 8
-------------------------------------------------------------------------------
===============================================================================

The FIB shows the chosen transport tunnel, specifying SDP ID, RSVP Tunnel ID, and LDP, as well as service label information linked to the routes.

Static SDP tunnels are preferred over dynamic tunnels (RSVP or LDP auto-bind-tunnel). When the static SDP 1 is shut down or the LSP goes down (there is no fallback to dynamic tunneling), the associated routes are removed:

[/]
A:admin@PE-2# configure {
    service {
        sdp 1 {
            admin-state disable
        }
    }
}
[/]
A:admin@PE-2# show router 1 fib 1

===============================================================================
FIB Display
===============================================================================
Prefix [Flags]                                              Protocol
  NextHop                                                   
-------------------------------------------------------------------------------
172.16.2.0/24                                               LOCAL
  172.16.2.0 (to-CE-2) 
172.16.4.0/24                                               BGP_VPN
  192.0.2.4 (VPRN Label:524280 Transport:RSVP LSP:3)
172.16.5.0/24                                               BGP_VPN
  192.0.2.5 (VPRN Label:524282 Transport:LDP)
172.16.22.0/24                                              STATIC
  172.16.2.2 (to-CE-2) 
172.16.44.0/24                                              BGP_VPN
  192.0.2.4 (VPRN Label:524280 Transport:RSVP LSP:3)
172.16.55.0/24                                              BGP_VPN
  192.0.2.5 (VPRN Label:524282 Transport:LDP)
-------------------------------------------------------------------------------
Total Entries : 6
-------------------------------------------------------------------------------
===============================================================================

To avoid this fallback issue, the configuration is modified and the manual spoke-SDPs are removed from the configuration of PE-1 and PE-2; the rest of the configuration remains the same. Now the connectivity between PE-1 and PE-2 is using an RSVP LSP, as shown in the PE-1 following output (RSVP LSP which was used by SDP 1 has disappeared):

[/]
A:admin@PE-1# configure {
    service {
        vprn "VPRN_1" {
            delete spoke-sdp 1:1
        }
    }
}
[/]
A:admin@PE-2# configure {
    service {
        vprn "VPRN_1" {
            delete spoke-sdp 1:1
        }
    }
}
*A:PE-1# show router 1 route-table 

===============================================================================
Route Table (Service: 1)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric   
-------------------------------------------------------------------------------
172.16.1.0/24                                 Local   Local     00h14m16s  0
       to-CE-1                                                      0
172.16.2.0/24                                 Remote  BGP VPN   00h00m23s  170
       192.0.2.2 (tunneled:RSVP:2)                                  10
172.16.4.0/24                                 Remote  BGP VPN   00h00m23s  170
       192.0.2.4 (tunneled)                                         20
172.16.5.0/24                                 Remote  BGP VPN   00h00m23s  170
       192.0.2.5 (tunneled)                                         20
172.16.11.0/24                                Remote  Static    00h14m16s  5
       172.16.1.2                                                   1
172.16.22.0/24                                Remote  BGP VPN   00h00m23s  170
       192.0.2.2 (tunneled:RSVP:2)                                  10
172.16.44.0/24                                Remote  BGP VPN   00h00m23s  170
       192.0.2.4 (tunneled)                                         20
172.16.55.0/24                                Remote  BGP VPN   00h00m23s  170
       192.0.2.5 (tunneled)                                         20
-------------------------------------------------------------------------------
No. of Routes: 8
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested
===============================================================================

If RSVP is disabled, the connectivity falls back to LDP as the output shows:

configure {
    router "Base" {
        mpls {
            admin-state disable
        }
    }
}
[/]
A:admin@PE-1# show router 1 fib 1

===============================================================================
FIB Display
===============================================================================
Prefix [Flags]                                              Protocol
  NextHop                                                   
-------------------------------------------------------------------------------
172.16.1.0/24                                               LOCAL
  172.16.1.0 (to-CE-1) 
172.16.2.0/24                                               BGP_VPN
  192.0.2.2 (VPRN Label:524281 Transport:LDP)
172.16.4.0/24                                               BGP_VPN
  192.0.2.4 (VPRN Label:524280 Transport:LDP)
172.16.5.0/24                                               BGP_VPN
  192.0.2.5 (VPRN Label:524282 Transport:LDP)
172.16.11.0/24                                              STATIC
  172.16.1.2 (to-CE-1) 
172.16.22.0/24                                              BGP_VPN
  192.0.2.2 (VPRN Label:524281 Transport:LDP)
172.16.44.0/24                                              BGP_VPN
  192.0.2.4 (VPRN Label:524280 Transport:LDP)
172.16.55.0/24                                              BGP_VPN
  192.0.2.5 (VPRN Label:524282 Transport:LDP)
-------------------------------------------------------------------------------
Total Entries : 8
-------------------------------------------------------------------------------
===============================================================================

If LDP is disabled, the connectivity falls back to GRE as the output shows:

[/]
A:admin@PE-1# configure {
    router "Base" {
        ldp {
            admin-state disable
        }
    }
}
*A:PE-1# show router 1 fib 1 

===============================================================================
FIB Display
===============================================================================
Prefix [Flags]                                              Protocol
  NextHop                                                   
-------------------------------------------------------------------------------
172.16.1.0/24                                               LOCAL
  172.16.1.0 (to-CE-1) 
172.16.2.0/24                                               BGP_VPN
  192.0.2.2 (VPRN Label:524280 Transport:GRE)
172.16.4.0/24                                               BGP_VPN
  192.0.2.4 (VPRN Label:524280 Transport:GRE)
172.16.5.0/24                                               BGP_VPN
  192.0.2.5 (VPRN Label:524286 Transport:GRE)
172.16.11.0/24                                              STATIC
  172.16.1.2 (to-CE-1) 
172.16.22.0/24                                              BGP_VPN
  192.0.2.2 (VPRN Label:524280 Transport:GRE)
172.16.44.0/24                                              BGP_VPN
  192.0.2.4 (VPRN Label:524280 Transport:GRE)
172.16.55.0/24                                              BGP_VPN
  192.0.2.5 (VPRN Label:524286 Transport:GRE)
-------------------------------------------------------------------------------
Total Entries : 8
-------------------------------------------------------------------------------
===============================================================================

Conclusion

IGP shortcuts provide a variety of shortcuts in IP, MPLS, and IP-VPN scenarios to customers who want to use new options for building routing topologies. Because IGP shortcuts are enabled on a per router basis, SPF computations are independent and irrelevant to other routers, so there is no need to enable shortcuts globally. This network example shows the configuration of IGP shortcuts together with the associated show outputs which can be used for verification and troubleshooting.