RSVP-TE LER

RSVP-TE, the Resource Reservation Protocol (RSVP) for Traffic Engineering (TE), is used to distribute MPLS labels for steering traffic and reserving bandwidth. The Label Edge Router (LER) feature implements the headend functionality, such as, RSVP-TE tunnels can originate at an LER which is used to steer traffic into the tunnel.

To Configure RSVP-TE LER

To configure RSVP-TE LER, use thetraffic-engineering mode to configure the rsvp command.

Example
switch(config)# router traffic-engineering
switch(config-te)# rsvp
switch(config-te-rsvp)

In the RSVP-TE submode, the configuration has three components.

  • Global configuration
  • Path specifications
  • Tunnel specifications

Global Configuration

In global configuration, all settings apply to all configured tunnels. Path specifications describe a set of constraints for paths. These are referenced from tunnel specifications to describe which path each tunnel can take.

Path Specifications

Path specifications are explicit and dynamic which differ in whether they involve a Constrained Shortest Path First (CSPF) search procedure to find a path in the network topology known to the headend. A path specification of a certain name is only either explicit or dynamic, such as, they share a namespace.

Explicit Path Specifications

In an explicit path specification, the operator provides all hops in the path explicitly. The given path is used directly as the Explicit Route Object (ERO) in RSVP Path messages. All hops are implicitly strict hops. Explicit loose hops are not supported.

Example

The submode to configure explicit paths is entered by specifying the name and the explicit keyword.
switch(config-te-rsvp)# path MyPath explicit
switch(config-te-rsvp-path-expl-MyPath)#

To explicitly specify the order of each hop, use the RSVP-TE explicit path configuration mode. In this example, hop 10.0.12.2. then hop 10.0.34.4 is specified.

Example
switch(config-te-rsvp-path-expl-MyPath)# hop 10.0.12.2
switch(config-te-rsvp-path-expl-MyPath)# hop 10.0.34.4

Adding hops with before and after keywords creates a unique internal ordering which will be represented in a canonical form using neither before nor after in the show running-config.

Example

Using the keyword before, the configuration places hop 10.0.23.3 before 10.0.34.4. Then, using the keyword after the configuration places hop 10.0.45.5 after 10.0.34.4.
switch(config-te-rsvp-path-expl-MyPath)# hop 10.0.23.3 before 10.0.34.4
switch(config-te-rsvp-path-expl-MyPath)# hop 10.0.45.5 after 10.0.34.4

When it is no longer necessary to have a hop order use the no hop command.

Example

Use the no hop 10.0.12.2 command when removing hops.
switch(config-te-rsvp-path-expl-MyPath)# no hop 10.0.12.2

Theshow active command explains what is currently happening with the configuration

Example

The currently active configuration is retrieved with the show active command.
switch(config-te-rsvp-path-expl-MyPath)# show active
router traffic-engineering
   rsvp
      path MyPath explicit
         hop 10.0.23.3
         hop 10.0.34.4
         hop 10.0.45.5

The show pending command explains what happens when exiting the submode.

Example

The pending configuration that becomes active upon exiting the submode is retrieved with the show pending command.

switch(config-te-rsvp-path-expl-MyPath)# show pending
   hop 10.0.23.3
   hop 10.0.44.4
   hop 10.0.45.5

Theshow diff command displays the differences between the show active and show pending commands.

Example

The difference between these two commands is that they are retrieved with the show diff command.
switch(config-te-rsvp-path-expl-MyPath)# show diff
 hop 10.0.23.3
-hop 10.0.34.4
+hop 10.0.44.4
 hop 10.0.45.5
switch(config-te-rsvp-path-expl-MyPath)#

When you want to keep all your saved changes, use the exit command.

Example

The change in the submode only takes effect when the submode is exited normally.
switch(config-te-rsvp-path-expl-MyPath)# exit
switch(config-te-rsvp)#

when you do not want to save any changes, use the abort command.

Example

Changes are discarded when the submode is aborted.
switch(config-te-rsvp-path-expl-MyPath)# abort
switch(config-te-rsvp)#

Dynamic Path Specifications

In a dynamic path specification, the operator provides constraints with which a Constained Shortest Path First (CSPF) procedure finds a path in the network topology. Effectively, the path specification serves as a template to get instantiated together with other tunnel constraints (like bandwidth requirements). The CSPF result is a list of strict hops which form the ERO.

Example

The submode to configure dynamic paths is entered by specifying the name of the path, in this example MyPath, and use the dynamic keyword.
switch(config-te-rsvp)# path MyPath dynamic
switch(config-te-rsvp-path-dyn-MyPath)#

Exclude hop constraints specifies that CSPF must not choose the selected address on the path. Each excluding hops expresses that neither end of a link in the path may have the specified address. Note that other interfaces on the same node may be used.

Example

This example excludes hop 10.0.56.6.
switch(config-te-rsvp-path-dyn-MyPath)# hop 10.0.56.6 exclude

Include hop constraints are supported and specify that these hops have to be included in the computed path in a certain order. By default, a hop is strict, meaning that in the computed path it has to appear directly after the previously specified hop. when a hop is loose it allows other hops to be filled by the CSPF procedure. The keywords before and after work as in the submode for explicit paths.

Example

In the following example hop 10.0.23.3 must be included in the path.

switch(config-te-rsvp-path-dyn-MyPath)# hop 10.0.23.3

In the following example hop 10.0.45.5 loose shows the hop does not have to be in any particular order.

switch(config-te-rsvp-path-dyn-MyPath)# hop 10.0.45.5 loose

The following example shows hop 10.0.12.2 comes before 10.0.23.3.

switch(config-te-rsvp-path-dyn-MyPath)# hop 10.0.12.2 before 10.0.23.3

The following example shows hop 10.0.67.7 comes loose after 10.0.45.5.

switch(config-te-rsvp-path-dyn-MyPath)# hop 10.0.67.7 loose after 10.0.45.5

Administrative group constraints are specified to restrict CSPF path computation to links that match a set of admin groups. Their IDs are globally significant and the specification contains lists and ranges of admin groups to include or exclude. In particular, every chosen link for a dynamic path must be in all of the admin groups specified in the include all range, must be in one of the admin groups specified in the include any range, and must not be in any of those in the exclude range. The admin group range starts at 0 and ends at 31. On the wire, the admin-group of 0 is translated to 0x1, 1 is translated to 0x2.

Example

In this example include 1 and anything inbetween 2-4, and exclude 7 and 9.
switch(config-te-rsvp-path-dyn-MyPath)# administrative-group include all 1 include any 2-4 exclude 7,9

Administrative group constraints are specified using a name as an alias mapped to a numerical value. The mapping is configured under the global TE mode.

These names are directly used to configure administrative group constraints in addition to the existing numerical format. The admin group constraints for the dynamic path are configured using the following RSVP LER CLI.

Example

In this example the administartive-group includes all blue and anything between 2-4 red, and excludes 7 green.
switch(config-te-rsvp-path-dyn-MyPath)# administrative-group include all blue include any 2-4,red exclude green,7

The list of administrative groups is provided as a comma-separated input without spaces.

The submode for dynamic paths has the same commit/abort semantics and show commands as the submode for explicit paths.

Local Interface

Use the local-interface Loopback command to derive the source IP address for RSVP-TE tunnels. This is a mandatory setting.

Example
switch(config-te-rsvp)# local-interface Loopback 0

A few settings are taken from the global mpls rsvp configuration like Fast-Reroute (FRR) mode and soft preemption. The SRLG setting from the global mpls rsvp configuration is also used to specify if the secondary path of a tunnel is set up by excluding SRLGs of all the links in the primary path as additional constraints, therefore allowing the secondary path to be disjoint from the primary path.

Tunnel Specifications

A tunnel needs a specification of which tunnel to go to.

Example

In this example, MyTunnel is the name of the submode tunnel to use.
switch(config-te-rsvp)# tunnel MyTunnel
switch(config-te-rsvp-tunnel-MyTunnel)#

Basic Tunnel Configuration

Each tunnel must have a tunnel destination IP.

Example

The this example the selected destination IP is 10.2.2.2.
switch(config-te-rsvp-tunnel-MyTunnel)# destination ip 10.2.2.2

Adding Path Specifications

A tunnel needs to specify along the path in which its LSPs are established. Therefore, a path specification is referenced by its name and configures the primary LSP.

Example

The specified name for the path is MyPath.
switch(config-te-rsvp-tunnel-MyTunnel)# path MyPath

A secondary LSP is specified which provides a fallback in case the primary LSP is not available. The secondary LSP is either established on-demand cold standby once the primary is not available or pre-signaled hot standby regardless. Configuring a secondary path is optional.

Example

To configure the secondary path, in this example, the name MyOtherPath is selected as a seconday path and is configured to be pre-signaled.
switch(config-te-rsvp-tunnel-MyTunnel)# path MyOtherPath secondary pre-signaled

Only one secondary path can be configured, per tunnel.

Bandwidth Specification

Use the bandwidth command to reserve bandwidth along the path. The bandwidth isexplicitly configured.

Example

In this example, a bandwidth of 10 mbps is selected as the reserve bandwidth for the myTunnel tunnel path.
switch(config-te-rsvp-tunnel-myTunnel)# bandwidth 10 mbps

Available units are bps, kbps, mbps, and gbps. By default, no bandwidth reservation is signaled, such as a bandwidth of0 bps.

An alternative to explicit bandwidth configuration is to use the autobandwidth feature which specifies the minimum and maximum bandwidth to be used for the tunnel and otherwise adjusts bandwidth with an adjustment period based on the observed traffic going over the tunnel. The adjustment period is an optional parameter measured in seconds. The default adjustment period is 0 . A special value meaning that the algorithm decides when to adjust bandwidth based on statistical measurements (the actual adjustment cannot happen more frequently than the sampling, which occurs every 30 seconds).

Example

In this example the bandwidth is set to auto with a minimum of 1 mbps and a maximum of 5 mbps, and has an adjustment-period of 60 seconds.
switch(config-te-rsvp-tunnel-myTunnel)# bandwidth auto min 1 mbps max 5 mbps adjustment-period 60

The adjustment period is specified in seconds.

Tunnel Priorities

Setup and hold priorities from 0 to 7 are configured for the tunnel, where 0 means most preferred, and 7 means least preferred.

Example

In this example, the setup priority is configured of 5 and the hold priority is configured of 3.
switch(config-te-rsvp-tunnel-myTunnel)# priority setup 5 hold 3

The CLI does not impose restrictions on the priority values. Therefore, hold priority should be more preferred than setup priority to avoid cycles where an LSP is continuously established and immediately preempted.

Enabling The Tunnel

By default, a tunnel is not enabled, so it needs to be explicitly enabled.

Example

Use the no shutdown command to explicitly enable the tunnel.
switch(config-te-rsvp-tunnel-MyTunnel)# no shutdown

As for path specifications, the submode provides show active, show pending and show diff commands. It has abort/commit semantics.

When you want to keep all your saved changes, use the exit command.

Example

The change in the submode only takes effect when the submode is exited normally.
switch(config-te-rsvp-tunnel-MyTunnel)# exit
switch(config-te-rsvp)#

when you do not want to save any changes, use the abort command.

Example

Changes are discarded if the submode is aborted.
switch(config-te-rsvp-tunnel-MyTunnel)# abort
switch(config-te-rsvp)#