Automatic Creation of RSVP-TE LSPs

This chapter provides information about automatic creation of Resource Reservation Protocol with Traffic Engineering (RSVP-TE) Label Switched Paths (LSPs).

Topics in this chapter include:

Applicability

This feature is applicable to SR OS with no hardware constraints because this is a control-plane feature only.

This chapter was originally written for SR OS Release 11.0.R6, but the CLI in this edition corresponds to SR OS Release 21.2.R1.

Overview

Automatic creation of RSVP-TE LSPs enables the automated creation of point-to-point RSVP-TE LSPs within a single Interior Gateway Protocol (IGP) Intermediate System to Intermediate System (IS-IS) level or Open Shortest Path First (OSPF) area that can subsequently be used by services and/or IGP shortcuts. The feature is divided into two components: creation of an RSVP-TE LSP mesh, and creation of single-hop RSVP-TE LSPs. Although both can be used simultaneously, it is likely that one or the other is used.

When creating an RSVP-TE LSP mesh, the mesh can be full or partial, the extent of which is governed by a prefix list containing the system addresses of all nodes that should form part of the mesh. When using single-hop RSVP-TE LSPs, point-to-point LSPs are established to all directly connected neighbors. The purpose of these single-hop LSPs is to allow for Equal Cost Multi-Path (ECMP) load balancing of traffic using LDP over RSVP, which is not possible using native RSVP LSPs.

The use of automatically created RSVP-TE LSPs avoids manual configuration of RSVP-TE LSP meshes. Even when provisioning tools—such as 5620 SAM—are used to automatically provision these LSPs, auto-mesh still provides a benefit by avoiding increased configuration file sizes.

The use of automatically created Targeted Label Distribution Protocol (T-LDP) sessions is also described when using the automatically created RSVP LSPs for Layer 2 services.

Configuration

Example Topology

The example topology is shown in Example Topology. All routers participate in a single IS-IS Level 2 area that has traffic engineering enabled. Multi-Protocol Label Switching (MPLS) and RSVP are enabled on every interface, but no LSPs are initially provisioned. All routers are Border Gateway Protocol (BGP) speakers and form part of Autonomous System (AS) 64496. PE-5 is a Route Reflector and the remaining routers are IBGP clients for the IPv4, VPN-IPv4, and L2-VPN address families. The objective of this example is to demonstrate how to automatically create transport LSPs using RSVP or LDP over RSVP, and then create services that utilize those LSPs. The exchange of BGP routes is needed for those services.

Figure 1. Example Topology

Automatic Creation of an RSVP-TE LSP Mesh

To start the process of automatically creating an RSVP-TE LSP mesh, the user must create a route policy referencing a prefix-list. This prefix-list contains the system addresses of all nodes that are required to be in the mesh, and can be entered as a series of /32 addresses, or simply as a range as follows. This range encompasses all of the system addresses of the nodes in the example topology because the requirement is to make a full mesh.

configure
    router
        policy-options
            begin
             prefix-list "System-Addresses"
                 prefix 192.0.2.0/24 prefix-length-range 32-32
             exit                      
             policy-statement "Remote-PEs-policy"
                 entry 10
                     from
                         prefix-list "System-Addresses"
                     exit
                     action accept
                     exit
                 exit
             exit
            commit
            exit all

After the route policy is created, the user must create an LSP template containing the common parameters which are used to establish all point-to-point LSPs within the mesh. For an RSVP-TE LSP mesh, the lsp-template must be configured with the creation-time attribute mesh-p2p. Upon creation of the template, CSPF is automatically enabled (and cannot be disabled), and the template must reference a default-path before it can be placed in a no shutdown state. In the example contained in the following output, the template refers to a path named ‟loose-path” that has no strict or loose hops defined, meaning the system will dynamically calculate the path while considering other specified constraints. The LSP template in this output also stipulates fast-reroute facility bypass protection. The default behavior is no node-protect, so this configuration requests link protection only. FRR one-to-one protection is not supported for automatically created RSVP-TE LSPs; so facility bypass is the only form of protection supported. Finally, the template is placed in a no shutdown state.

Next, the user must associate the LSP template with the previously defined route policy, and this is accomplished using the auto-lsp lsp-template command. In this example, the LSP template ‟Full-Mesh-template” is associated with the policy-statement ‟Remote-PEs-policy” that in turn references a prefix-list containing all system addresses in the example topology. Up to five policies can be associated with an LSP template at the same time. If a policy associated with an LSP template is modified in order to add or remove prefixes, the system immediately re-evaluates the policy and the prefix-list to determine if one or more LSPs need to be established, or one or more LSPs need to be torn down.

configure
    router
        mpls
            path "loose-path"              
                no shutdown
            exit
            lsp-template "Full-Mesh-template" mesh-p2p
                default-path "loose-path"
                path-computation-method local-cspf
                fast-reroute facility
                exit
                no shutdown
            exit
            auto-lsp lsp-template "Full-Mesh-template" policy "Remote-PEs-policy" 
            no shutdown
        exit all

When the auto-lsp lsp-template command is entered, the system commences the process of establishing the point-to-point LSPs. The prefixes defined in the prefix list are checked, and if a prefix corresponds to a router ID that is present in the Traffic Engineering Database (TED), the system instantiates a CSPF computed primary path to that prefix using the parameters specified in the LSP template. With the previously defined configuration applied on PE-6, the existence of point-to-point RSVP LSPs to every node in the example topology can be verified as shown in the following output. The LSP name is automatically constructed as TemplateName-DestIPv4Address-TunnelId. The LSP name signaled in the Session Attribute object concatenates the LSP name with the path name (for example Full-Mesh-template-192.0.2.1-61441::loose-path).

*A:PE-6# show router mpls lsp 

===============================================================================
MPLS LSPs (Originating)
===============================================================================
LSP Name                                            Tun     Fastfail  Adm  Opr
  To                                                Id      Config         
-------------------------------------------------------------------------------
Full-Mesh-template-192.0.2.1-61441                  61441   Yes       Up   Up
  192.0.2.1                                                                
Full-Mesh-template-192.0.2.2-61442                  61442   Yes       Up   Up
  192.0.2.2                                                                
Full-Mesh-template-192.0.2.3-61443                  61443   Yes       Up   Up
  192.0.2.3                                                                
Full-Mesh-template-192.0.2.4-61444                  61444   Yes       Up   Up
  192.0.2.4                                                                
Full-Mesh-template-192.0.2.5-61445                  61445   Yes       Up   Up
  192.0.2.5                                                                
-------------------------------------------------------------------------------
LSPs : 5
===============================================================================

The LSP template requests FRR link protection. On PE-6, this protection can be verified by querying each primary LSP. In the following output, the primary LSP to PE-1 (Full-Mesh-template-192.0.2.1-61441) is signaled through PE-5 (192.0.2.5) and PE-3 (192.0.2.3), and the presence of the @ indicator after each hop denotes that link protection is available to the primary path.

*A:PE-6# show router mpls lsp path "Full-Mesh-template-192.0.2.1-61441" detail | match expression "LSP Name|Actual Hops" post-lines 4 
LSP Name    : Full-Mesh-template-192.0.2.1-61441
From             : 192.0.2.6               
To               : 192.0.2.1               
Admin State      : Up                      Oper State        : Up
Path Name   : loose-path
Actual Hops      :                         
    192.168.56.2(192.0.2.6) @                    Record Label        : N/A
 -> 192.168.56.1(192.0.2.5) @                    Record Label        : 524269
 -> 192.168.35.1(192.0.2.3) @                    Record Label        : 524272
 -> 192.168.13.1(192.0.2.1)                      Record Label        : 524273

Finally, it can be verified that the signaled LSPs are placed in the tunnel table and made available to the tunnel table manager so they can be used by applications and services.

*A:PE-6# show router tunnel-table 

===============================================================================
IPv4 Tunnel Table (Router: Base)
===============================================================================
Destination           Owner     Encap TunnelId  Pref   Nexthop        Metric
   Color                                                              
-------------------------------------------------------------------------------
192.0.2.1/32 [B]      rsvp      MPLS  61441     7      192.168.56.1   30
192.0.2.2/32 [B]      rsvp      MPLS  61442     7      192.168.46.1   20
192.0.2.3/32 [B]      rsvp      MPLS  61443     7      192.168.56.1   20
192.0.2.4/32 [B]      rsvp      MPLS  61444     7      192.168.46.1   10
192.0.2.5/32 [B]      rsvp      MPLS  61445     7      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
===============================================================================

When the LSP template is in use and LSPs are instantiated, it is necessary to place the template into a shutdown state to change any parameters that cannot be handled as a Make-Before-Break (MBB). This essentially includes all LSP parameters with the exception of bandwidth and FRR without node-protection. Modification of any other parameters requires a shutdown of the LSP template and a re-signal of the LSP once the LSP template is placed in the no shutdown state again. MBB is supported for timer-based and manual re-signaling of the automatically created LSPs.

Service and Application Verification

With the RSVP-TE LSP mesh in place, it is now possible to create services and applications to utilize those LSPs. These applications and services include Layer 2 and Layer 3 VPNs, resolution of BGP labeled routes and resolution of BGP, IGP, and static routes. However, the automatically created LSPs are not available for explicit binding in a statically provisioned Service Distribution Point (SDP).

IGP Shortcuts

IGP Shortcuts with RSVP-TE Auto-Mesh demonstrates the use of IGP shortcuts. Prefix 172.16.32.0/20 is advertised to PE-1 from an external peer in AS 64510, which PE-1 subsequently advertises into IBGP, imposing Next-Hop-Self in the process. For more details on IGP shortcuts, see the IGP Shortcuts chapter.

Figure 2. IGP Shortcuts with RSVP-TE Auto-Mesh

The objective is for PE-6 to use the automatically created LSP to PE-1 as an IGP shortcut (typically implemented in order to maintain a ‟BGP-free” core). IGP shortcuts for BGP are enabled under the main bgp context using the command next-hop-resolution shortcut-tunnel with options for rsvp, ldp, or bgp. Because the example topology only has (automatically created) RSVP-TE LSPs, this option is selected. Besides rsvp, ldp, and bgp, there are other options, but these are beyond the scope of this chapter.

configure router bgp next-hop-resolution shortcut-tunnel family ?
  - family <family>

 <family>             : ipv4|ipv6

 [no] allow-flex-alg* - Allow/Disallow Flex Algo Fallback
 [no] disallow-igp    - Allow/Disallow IGP shortcuts
 [no] enforce-strict* - Enable/Disable Use of admin-tags for resolving routes for the Next-hop families
      resolution      - Configure resolution state of BGP unlabeled routes to tunnels
      resolution-fil* + Configure specific tunnels to be used for resolving BGP unlabeled routes
configure router bgp next-hop-resolution shortcut-tunnel family ipv4 resolution-filter ?
  - resolution-filter

 [no] bgp             - Use BGP tunnelling for next hop resolution
 [no] ldp             - Use LDP tunnelling for next hop resolution
 [no] mpls-fwd-policy - Use MPLS Forwarding Policy for next hop resolution
 [no] rib-api         - Use RIB-API for next-hop resolution
 [no] rsvp            - Use RSVP tunnelling for next hop resolution
 [no] sr-isis         - Use sr-isis for next hop resolution
 [no] sr-ospf         - Use sr-ospf for next hop resolution
 [no] sr-ospf3        - Use sr-ospf3 for next hop resolution
 [no] sr-policy       - Use sr-policy for next hop resolution
 [no] sr-te           - Use sr-te for next hop resolution
*A:PE-6# configure
    router 
        bgp 
            next-hop-resolution 
                shortcut-tunnel 
                    family ipv4 
                        resolution-filter 
                            rsvp 
                        exit
                        resolution filter
                    exit
                exit
            exit
            exit all

When the shortcuts are enabled, the route-table (and FIB) can be validated to ensure that the programmed next hop is the advertising BGP speaker (as opposed to the IGP next hop), and that traffic is tunneled to that next hop through an RSVP LSP. In this case, the RSVP LSP is the LSP with tunnel ID 61441, which is the LSP to PE-1.

*A:PE-6# show router route-table 172.16.32.0/20 

===============================================================================
Route Table (Router: Base)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric   
-------------------------------------------------------------------------------
172.16.32.0/20                                Remote  BGP       00h00m55s  170
       192.0.2.1 (tunneled:RSVP:61441)                              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
===============================================================================

Layer 3 VPN

Layer 3 VPNs can utilize the automatically created LSPs by using the auto-bind-tunnel feature configured with the rsvp option (possibly in combination with LDP). The option to include both RSVP and LDP allows the system to use an RSVP LSP if one exists, and if not, to revert to an LDP-based LSP. A Virtual Private Routed Network (VPRN) is configured on PE-1 and PE-6. PE-1 is configured with a loopback address of 172.16.1.1/24 and advertises the VPN-IPv4 prefix 172.16.1.0/24 into IBGP, while PE-6 is configured with a loopback address of 172.16.6.1/24 and advertises the VPN-IPv4 prefix 172.16.6.0/24 into IBGP. The VPRN configuration on PE-6 is as follows. The only difference on PE-1 is the IP address assigned to the loopback interface.

*A:PE-6#
configure
    service
        vprn 1 name "VPRN 1" customer 1 create
            route-distinguisher 64496:1
            auto-bind-tunnel
                resolution-filter
                    ldp
                    rsvp
                exit
                resolution filter
            exit            
            vrf-target target:64496:1 
            interface "loopback" create
                address 172.16.6.1/24 
                loopback              
            exit                      
            no shutdown               
        exit
        exit all

Before a VPN-IPv4 prefix is considered valid, the receiving SR OS PE router must be able to resolve the BGP next hop to an LSP in the tunnel table (if not, the prefix is held in Routing Information Base RIB-IN and flagged as invalid). On PE-6, it is possible to verify that the VPN-IPv4 prefix 172.16.1.0/24 received from PE-1 is correctly resolved by looking at the VPRN-specific route table. In the following output, the VPN-IPv4 prefix 172.16.1.0/24 with a next hop of PE-1 (192.0.2.1) is correctly resolved to an RSVP LSP with a tunnel ID of 61441.

*A:PE-6# show router 1 route-table 172.16.1.0/24 

===============================================================================
Route Table (Service: 1)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric   
-------------------------------------------------------------------------------
172.16.1.0/24                                 Remote  BGP VPN   00h00m32s  170
       192.0.2.1 (tunneled:RSVP:61441)                              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
===============================================================================

Layer 2 VPN

As previously described, automatically created RSVP LSPs cannot be referenced by statically provisioned SDPs. Without the ability for SDPs to explicitly reference automatically created RSVP LSPs, there is little value in manually defining SDPs within Layer 2 service constructs (there is little point in referring to an SDP that cannot bind to the underlying RSVP mesh). So, in order to deliver Layer 2 services, there is a requirement to adopt a model within the service construct that permits automatic creation of SDP bindings, and this is achieved using a pseudowire template dictating the characteristics of the SDP. The secondary effect of using pseudowire templates to dynamically create SDPs is that these automatically created SDPs can currently only use LDP or BGP as a transport tunnel, not RSVP. The solution is to enable LDP over RSVP.

This can be implemented using static provisioning of peers as shown in the next output, or it can be done using automatic creation of T-LDP sessions. Regardless of the method, a reciprocal configuration must exist at both peer endpoints. The static per-peer configuration is applied in the targeted-session context specifying the remote peer system IP address, and the keyword tunneling, which enables tunneling of LDP FECs over RSVP LSPs with a far-end address matching that of the T-LDP peer. At a global level, the prefer-tunnel-in-tunnel command is shown, but is only required when a next hop router advertises a FEC over link-level LDP and T-LDP. In this case, by default, the system would prefer the link-level LDP tunnel, so the prefer-tunnel-in-tunnel instructs the system to prefer an LDP over RSVP tunnel if it is available. Although link-layer LDP is not present in the example topology, the command is included because the presence of link-layer LDP is common.

configure
    router
        ldp
            prefer-tunnel-in-tunnel
            targeted-session
                peer 192.0.2.1
                    tunneling
                    exit
                exit
            exit
            no shutdown
        exit all

The following output provides an example demonstrating the automatic creation of T-LDP sessions. No explicit reference is made to specific peers, but rather a peer-template is configured containing the parameters which apply to all T-LDP sessions spawned by this template. In this example, only the tunneling command is required. A peer-template-map is then used to create a mapping between the peer-template (TLDP-Mesh-template) and a policy defining the IP addresses of remote nodes to which T-LDP sessions should be established. In this example, the policy ‟Remote-PEs-policy” is the same policy previously used by the auto-created RSVP LSP mesh.

configure
    router
        ldp
            prefer-tunnel-in-tunnel
            interface-parameters
            exit
            targeted-session
                peer-template "TLDP-Mesh-template"
                    tunneling
                exit
                peer-template-map peer-template "TLDP-Mesh-template" policy "Remote-PEs-policy"
            exit
            no shutdown
        exit all

Regardless of whether T-LDP sessions are explicitly provisioned, or dynamically created using a peer-template, the result is that a targeted LDP session is established which can be used for advertising address and service FECs, and which is capable of tunneling LDP over RSVP.

*A:PE-6# show router ldp targ-peer 192.0.2.1 detail 

===============================================================================
LDP IPv4 Targeted Peers
===============================================================================
-------------------------------------------------------------------------------
192.0.2.1
-------------------------------------------------------------------------------
Admin State        : Up              Oper State           : Up
Last Oper Chg      : 0d 00:01:10     
Hold Time          : 45              Hello Factor         : 3
Oper Hold Time     : 45              
Hello Reduction    : Disabled        Hello Reduction Fctr : 3
Keepalive Timeout  : 40              Keepalive Factor     : 4
Active Adjacencies : 0               Last Modified        : Never
Auto Created       : Yes             
Creator            : template        Name        : TLDP-Mesh-template
Tunneling          : Enabled         
Lsp Name           : None
Mcast-Tunneling    : Disabled        
Lsp Name           : None
Local LSR          : None            32-BitLocalLsr       : Disabled
Local-LSR ID adv.  : Disabled        
Community          : 
BFD Status         : Disabled        
===============================================================================
No. of IPv4 Targeted Peers: 1
===============================================================================

To create VPLS services using dynamically-created SDPs, BGP Auto-Discovery (BGP-AD) must be used together with LDP (or BGP) pseudowire signaling, for more details see the LDP VPLS Using BGP-Auto Discovery chapter.

In the following output, PE-6 uses BGP-AD and LDP signaling. The same configuration is applied on PE-1. The vpls-id is configured in the bgp-ad context. The vpls-id is a network-wide identifier assigned to all VPLS Switch Instances (VSIs) belonging to the same VPLS, and is carried in VPLS Network Layer Reachability Information (NLRI) as an extended community attribute. A second parameter used for BGP-AD and carried in the VPLS NLRI is the VSI-ID, which uniquely identifies each VSI. The VSI-ID is automatically derived from the global ASN, the VPLS service ID, and the system IP address. To automatically create SDPs, the bgp context of the VPLS service refers to a pw-template defining the parameters of the pseudowire. In this example, the use of the hash (entropy) label is enabled in the pseudowire template, and a split-horizon-group, SHG, is applied.

configure
    service
        pw-template 2 name "PW2-template" create
            hash-label
            split-horizon-group "SHG" 
            exit
        exit
        vpls 2 name "VPLS 2" customer 1 create
            bgp
                pw-template-binding 2
                exit
            exit
            bgp-ad
                vpls-id 64496:2
                no shutdown
            exit
            sap 1/1/4:2 create
            exit
            no shutdown
        exit
        exit all

The following output shows the BGP and BGP-AD operational parameters, and shows that an SDP of type BgpAd (32767:4294967295) has been automatically created for vpls 2. Both the SDP and the SAP are operationally up.

*A:PE-6# show service id 2 bgp 

===============================================================================
BGP Information
===============================================================================
Bgp Instance         : 1                    
Vsi-Import           : None
Vsi-Export           : None
Route Dist           : None
Oper Route Dist      : 64496:2
Oper RD Type         : derivedVpls          
Rte-Target Import    : None                 Rte-Target Export: None
Oper RT Imp Origin   : derivedVpls          Oper RT Import   : 64496:2
Oper RT Exp Origin   : derivedVpls          Oper RT Export   : 64496:2

PW-Template Id       : 2                    PW-Template SHG  : None
Oper Group           : None
Mon Oper Group       : None
BFD Template         : None
BFD-Enabled          : no                   BFD-Encap        : ipv4
Import Rte-Tgt       : None
-------------------------------------------------------------------------------
===============================================================================
*A:PE-6# show service id 2 bgp-ad 

-------------------------------------------------------------------------------
BGP Auto-discovery Information
-------------------------------------------------------------------------------
Admin State       : Up                  
Vpls Id           : 64496:2
Prefix            : 192.0.2.6           
-------------------------------------------------------------------------------
*A:PE-6# show service id 2 base | match "Service Access" post-lines 10 
Service Access & Destination Points
-------------------------------------------------------------------------------
Identifier                               Type         AdmMTU  OprMTU  Adm  Opr
-------------------------------------------------------------------------------
sap:1/1/4:2                              q-tag        1518    1518    Up   Up
sdp:32767:4294967295 SB(192.0.2.1)       BgpAd        0       0       Up   Up
===============================================================================
* indicates that the corresponding row element may have been truncated.

To create Epipe services using dynamically created SDPs, two options exist. Either LDP FEC 129 signaling can be used, which in turn dictates the presence of pseudowire routing information, or BGP-VPWS based signaling can be used, for more details, see the BGP Virtual Private Wire Services chapter. This example illustrates the use of BGP VPWS, but in either case, only single-segment pseudowires are supported. The following output shows the configuration requirements for a basic BGP-based Epipe service on PE-6. Once again, a pw-template is used to define the characteristics of the pseudowire, and this template is referenced in the bgp context of the Epipe service. The bgp context is also where the route-distinguisher and route-target values are configured, which are carried in the VPWS NLRI and extended communities respectively. The ve-name, ve-id, and remote-ve-name are all configured in the bgp-vpws context. The ve-id is carried in the VPWS NLRI, and when a PE router receives a VPWS NLRI to try to establish an Epipe service, the ve-id from the NLRI is validated against the ve-id configured in the remote-ve-name. These must match before the Epipe becomes operational.

*A:PE-6#
configure
    service
        pw-template 3 name "PW3-template" create
            hash-label
        exit
        epipe 3 name "Epipe 3" customer 1 create
            bgp
                route-distinguisher 64496:3
                route-target export target:64496:3 import target:64496:3
                pw-template-binding 3
                exit
            exit
            bgp-vpws
                ve-name "PE-6"
                    ve-id 6
                exit
                remote-ve-name "PE-1"
                    ve-id 1
                exit
                no shutdown
            exit
            sap 1/1/4:3 create
            exit
            no shutdown
        exit all

The basic service information is truncated to show only the relevant information in order to verify that the service is operational. SDP (32766:4294967294) has been automatically created and is of type BgpVpws. Both the SDP and the SAP are operationally up.

*A:PE-6# show service id 3 base | match "Service Access" post-lines 10 
Service Access & Destination Points
-------------------------------------------------------------------------------
Identifier                               Type         AdmMTU  OprMTU  Adm  Opr
-------------------------------------------------------------------------------
sap:1/1/4:3                              q-tag        1518    1518    Up   Up
sdp:32766:4294967294 SB(192.0.2.1)       BgpVpws      0       0       Up   Up
===============================================================================

Automatic Creation of RSVP Single-Hop LSPs

As previously discussed, the purpose of a single-hop LSP mesh is to allow for ECMP load balancing of traffic using LDP over RSVP. ECMP load balancing could be implemented using LDP over a partial or full mesh of RSVP-TE LSPs, but the use of single-hop LSPs additionally allows for load balancing across a number of parallel RSVP LSPs between nodes. To illustrate ECMP load balancing over multiple parallel RSVP LSPs, the example topology of Example Topology is modified to include a parallel link between PE-6 and PE-5 as shown in Example Topology for Single-Hop LDP over RSVP with ECMP. In addition, all routers are enabled for ECMP=2, as follows.

configure router ecmp 2
Figure 3. Example Topology for Single-Hop LDP over RSVP with ECMP

Unlike the automatically created RSVP-TE LSP mesh previously described, the automatically created single-hop RSVP-TE LSPs have no requirement for a prefix-list to be referenced containing the prefixes of the remote nodes that form part of the mesh. In the case of automatically created single-hop LSPs, the TE database keeps track of each TE link which comes up to a directly connected IGP neighbor. The system then establishes a single-hop LSP with a destination address matching the router ID of the neighbor and with a strict hop consisting of the address of the interface used by the TE link.

The first requirement is to create an LSP template containing the common parameters used to establish each single-hop LSP. For a single-hop LSP mesh, the lsp-template must be configured with the creation-time attribute one-hop-p2p. Upon creation of the template, cspf is automatically enabled (and cannot be disabled), and the hop-limit is set to a value of 2. The hop limit defines the number of nodes the LSP may traverse, and, because these are single-hop LSPs to adjacent neighbors, a limit of 2 is sufficient. The template must also reference a default-path before it can be placed in the no shutdown state. The following example references a path named ‟loose-path” that has no strict or loose hops defined. When the RSVP PATH message is actually generated to create the one-hop LSP, it contains one strict-hop to the interface address of the neighbor; and as destination the system address of the adjacent node.

The next requirement is to trigger the creation of single-hop LSPs, and this is achieved using the auto-lsp lsp-template command. In this example, the LSP template ‟Single-Hop-template” is referenced, and the command is completed with the keyword one-hop to indicate the creation of single-hop LSPs. Unlike an RSVP-TE mesh, there is no requirement to reference a route policy. In the example, the auto-lsp with LSP template ‟Full-Mesh-template” is removed on all PEs.

configure router mpls no auto-lsp lsp-template "Full-Mesh-template"

The following one-hop LSP template is created on all nodes:

configure 
    router 
        mpls
            path "loose-path"
                no shutdown
            exit
            lsp-template "Single-Hop-template" one-hop-p2p
                default-path "loose-path"
                path-computation-method local-cspf
                hop-limit 2
                no shutdown
            exit
            auto-lsp lsp-template "Single-Hop-template" one-hop
            no shutdown
            exit all

Once the auto-lsp lsp-template command is entered, the system starts the process of establishing the single-hop LSPs. A check is made of the TE database for every TE link to a directly connected IGP neighbor, and a single-hop LSP is established across each TE link. The following output is taken from PE-6 and shows the automatically created single-hop LSPs. The LSP names are automatically constructed as TemplateName-DestIPv4Address-TunnelId. The LSP name signaled in the session attribute object concatenates the LSP name with the path name (for example Single-Hop-template-192.0.2.4-61449::loose-path). Recall from Example Topology for Single-Hop LDP over RSVP with ECMP that PE-6 has a single TE-enabled link to PE-4, and two TE-enabled links to PE-5, so with ECMP=2, there is one LSP to PE-4 (192.0.2.4) and two LSPs to PE-5 (192.0.2.5). However, if ECMP=1, only one single-hop LSP would be signaled to PE-5.

*A:PE-6# show router mpls lsp 

===============================================================================
MPLS LSPs (Originating)
===============================================================================
LSP Name                                            Tun     Fastfail  Adm  Opr
  To                                                Id      Config         
-------------------------------------------------------------------------------
Single-Hop-template-192.0.2.4-61448                 61448   No        Up   Up
  192.0.2.4                                                                
Single-Hop-template-192.0.2.5-61449                 61449   No        Up   Up
  192.0.2.5                                                                
Single-Hop-template-192.0.2.5-61450                 61450   No        Up   Up
  192.0.2.5                                                                
-------------------------------------------------------------------------------
LSPs : 3
===============================================================================

The purpose of single-hop LSPs is to enable ECMP load balancing using LDP over RSVP, so there is a requirement to configure T-LDP sessions between RSVP LSP endpoints. This can be implemented using static peer provisioning, or it can be done using automatic creation of T-LDP sessions, both of which have been previously described and they are therefore not repeated. In this example, the automatic creation of T-LDP sessions approach is used, and T-LDP sessions are created to adjacent neighbors that are capable of tunneling inside RSVP.

*A:PE-6# show router ldp session ipv4 

==============================================================================
LDP IPv4 Sessions
==============================================================================
Peer LDP Id         Adj Type  State         Msg Sent  Msg Recv  Up Time
------------------------------------------------------------------------------
192.0.2.4:0         Targeted  Established   40        41        0d 00:02:41
192.0.2.5:0         Targeted  Established   40        41        0d 00:02:37
------------------------------------------------------------------------------
No. of IPv4 Sessions: 2
==============================================================================

To validate the ECMP load balancing capability, PE-5 is configured to advertise prefix 172.16.5.0/24 to PE-6. In turn, PE-6 is configured for ibgp-multipath to enable load balancing over IGP links to the BGP next hop address, next-hop-resolution shortcut-tunnel resolution-filter ldp to enable tunneling of traffic destined toward the BGP next hop in MPLS, and ecmp 2. For additional information on BGP multipath, see the BGP Multipath chapter.

configure 
    router
        bgp
            ibgp-multipath
            next-hop-resolution
                shortcut-tunnel
                    family ipv4 
                        resolution-filter
                            ldp
                            no rsvp
                        exit
                        resolution filter
                    exit
                exit
            exit
            exit all

The prefix 172.16.5.0/24 advertised by PE-5 is learned on PE-6 and installed in the RIB/FIB with PE-5’s system address (192.0.2.5) as next hop.

*A:PE-6# show router bgp routes 172.16.5.0/24 
===============================================================================
 BGP Router ID:192.0.2.6        AS:64496       Local AS:64496      
===============================================================================
 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
===============================================================================
Flag  Network                                            LocalPref   MED
      Nexthop (Router)                                   Path-Id     IGP Cost
      As-Path                                                        Label
-------------------------------------------------------------------------------
u*>i  172.16.5.0/24                                      100         None
      192.0.2.5                                          None        10
      No As-Path                                                     -
-------------------------------------------------------------------------------
Routes : 1
===============================================================================

Checking the FIB for the next hop address 192.0.2.5, it can be verified that both links are installed as next hop addresses, meaning that ECMP load balancing is active.

*A:PE-6# show router fib 1 192.0.2.5/32 

===============================================================================
FIB Display
===============================================================================
Prefix [Flags]                                              Protocol
  NextHop                                                   
-------------------------------------------------------------------------------
192.0.2.5/32                                                ISIS
  192.168.56.1 (int-PE-6-PE-5) 
  192.168.156.1 (int-PE-6-PE-5-2nd) 
-------------------------------------------------------------------------------
Total Entries : 1
-------------------------------------------------------------------------------
===============================================================================

Conclusion

Automatic creation of RSVP-TE LSPs provides a good solution for reducing the amount of provisioning activity required when configuring RSVP LSPs. However, there are some constraints with regard to the way that services are deployed on top of those LSPs. SDPs cannot explicitly reference automatically-created RSVP LSPs, which means that automatically created SDPs need to be used for Layer 2 services. In turn, automatically-created SDPs can only use LDP or BGP as a transport tunnel (not RSVP), so, in order to use the automatically created RSVP mesh, LDP over RSVP must be used. These caveats need to be fully understood before considering deployment of automatically created RSVP-TE LSPs.