Information About MPLS TE Class-Based Tunnel Selection
CBTS enables you to dynamically route and forward traffic with different class of service (CoS) values onto different TE tunnels between the same tunnel headend and the same tailend.
The set of TE (or DS-TE) tunnels from the same headend to the same tailend that you configure to carry different CoS values is referred to as a tunnel bundle. After configuration, CBTS dynamically routes and forwards each packet into the tunnel that does the following:
- Carries the CoS of the packet
- Contains the right headend for the destination of the packet
CBTS can distribute all CoS values on eight different tunnels.
CBTS also allows the TE tunnels of a tunnel bundle to exit headend routers through different interfaces.
This section includes the following topics:
Incoming Traffic Supported by Class-Based Tunnel Selection
CBTS supports the following types of incoming packets:
- At a provider edge (PE) router—Unlabeled packets that enter a virtual private network (VPN) routing and forwarding (VRF) instance interface
- At a provider core (P) router—Unlabeled and MPLS-labeled packets that enter a non-VRF interface
CoS Attributes for Class-Based Tunnel Selection
CBTS supports tunnel selection based on the value of the EXP field that the headend router imposes on the packet. Before imposing this value, the router considers the input modular quality of service (QoS) command-line interface (CLI) (MQC). If the input MQC modifies the EXP field value, CBTS uses the modified value for its tunnel selection.
Packets may enter the headend from multiple incoming interfaces. These interfaces can come from different customers that have different DiffServ policies. In such cases, operators use input MQC to apply their own DiffServ policies and mark imposed EXP values accordingly. CBTS can operate consistently for all customers by considering the EXP values marked by the operator.
Note If the output MQC modifies the EXP field, CBTS ignores the change in the EXP value.
CBTS allows up to eight different tunnels on which it can distribute all classes of service.
Routing Protocols and Class-Based Tunnel Selection
CBTS routes and forwards packets to MPLS TE tunnels for specified destinations through the following routing protocols:
- Intermediate System-to-Intermediate System (IS-IS) with autoroute configured
- Open Shortest Path First (OSPF) with autoroute configured
- Static routing
- Border Gateway Protocol (BGP) with recursion configured on the next hop with packets forwarded on the tunnel through IS-IS, OSPF, or static routing
Tunnel Selection with Class-Based Tunnel Selection
This section includes the following topics:
EXP Mapping Configuration
With CBTS, you can configure each tunnel with any of the following:
- The same EXP information configured as it was before the CBTS feature was introduced with no EXP-related information
- One or more EXP values for the tunnel to carry
- A property that allows the carrying of all EXP values not currently allocated to any up-tunnel (default)
- One or more EXP values for the tunnel to carry, and the default property that allows the carrying of all EXP values not currently allocated to any up-tunnel
The default property (all EXP values not currently allocated to any up-tunnel) enables you to avoid explicitly listing all possible EXP values. The default property also enables you to indicate tunnel preferences on which to force certain EXP values, if the tunnel carrying those EXP values goes down.
You can configure each tunnel independently of any other tunnel. CBTS does not try to perform any consistency check for EXP configuration.
This feature allows configurations for the following situations:
- Not all EXP values are explicitly allocated to tunnels.
- Multiple tunnels have the default property.
- Some tunnels have EXP values configured and others do not have any values configured.
- A given EXP value is configured on multiple tunnels.
Tunnel Selection for EXP Values
This section includes the following topics:
Tunnel Selection Process
Tunnel selection with this feature is a two-step process:
1. For a given prefix, routing (autoroute, static routes) occurs exactly as it did without the CBTS feature. The router selects the set of operating tunnels that have the best metrics, regardless of the EXP-related information configured on the tunnel.
2. CBTS maps all of the EXP values to the selected set of tunnels:
- If a given EXP value is configured, CBTS does the following:
– If only one of the tunnels is configured in the selected set, CBTS maps the EXP value onto that tunnel.
– If two or more of the tunnels in the selected set are configured, CBTS arbitrarily maps the EXP value onto one of these tunnels. CBTS selects the tunnel on which the lowest EXP value is explicitly configured and picks the tunnel that has the lowest tunnel ID.
- If a given EXP value is not configured on any of the tunnels in the selected set, CBTS does the following:
– If only one of the tunnels in the selected set is configured as a default, CBTS maps the EXP value onto that tunnel.
– If two or more of the tunnels in the selected set are configured as defaults, CBTS arbitrarily maps the EXP value onto one of these tunnels.
– If no tunnel in the selected set of tunnels is configured as a default, CBTS does not map the EXP value onto any specific tunnel. Instead, CBTS performs CoS-unaware load balancing of that EXP information across all tunnels in the selected set.
CBTS relies on autoroute, which selects only tunnels that are on the Shortest Path First (SPF) to the destination. Therefore, CBTS does not introduce any risk of routing loops.
Tunnel Selection Examples
The following examples show various tunnel configurations and indicate how CBTS maps packets that carry EXP values onto these tunnels. Each example describes a different configuration.
Example 1—Default Tunnel Configured
The following example shows the following parameters on tunnels T1 and T2:
- T1: exp = 5, autoroute
- T2: exp = default, autoroute
If T1 and T2 are next-hop interfaces for prefix P, CBTS maps the packets onto the tunnels as follows:
- Packets with <Dest = P, exp = 5> onto T1
- Packets with <Dest = P, exp = anything-other-than-5> onto T2
Example 2— EXP Values Configured on Two Tunnels; One Default Tunnel
The following example shows the following parameters on tunnels T1, T2, and T3:
- T1: exp = 5, autoroute
- T2: exp = 3 and 4, autoroute
- T3: exp = default, autoroute
If T1, T2, and T3 are next-hop interfaces for prefix P, CBTS maps the packets onto the tunnels as follows:
- Packets with <Dest = P, exp = 5> onto T1
- Packets with <Dest = P, exp = 3 or 4> onto T2
- Packets with <Dest = P, exp = 0, 1, 2, 6, or 7> onto T3
Example 3—More than One Tunnel with the Same EXP
The following example shows the following parameters on tunnels T1, T2, and T3:
- T1: exp = 5, autoroute
- T2: exp = 5, autoroute
- T3: exp = default, autoroute
If T1, T2, and T3 are next-hop interfaces for prefix P, CBTS maps the packets onto the tunnels as follows:
- Packets with <Dest = P, exp = 5> onto T1 (arbitrary selection)
- Packets with <Dest = P, exp = anything-other-than-5> onto T3
- No packets onto T2
Example 4—Static Route Configured
The following example shows the following parameters on tunnels T1 and T2:
- T1: exp = 5, autoroute
- T2: exp = 3
- Static route to P on T2
If prefix P is behind the T1 and T2 tailend router, CBTS maps the packets onto the tunnels as follows:
- Packets with <Dest = P, exp = anything> onto T2
- No packets onto T1
Static routes are preferred over dynamic routes; therefore, the router chooses only T2 as the selected set of tunnels.
Example 5—Metrics Configured on Tunnels
The following example shows the following parameters on tunnels T1 and T2:
- T1: exp = 5, autoroute, relative metric –2
- T2: exp = 3, autoroute, relative metric –3
CBTS maps the packets onto the tunnels as follows:
- Packets with <Dest = P, exp = anything> onto T2
- No packets onto T1
The autoroute tunnel selection algorithm selects the tunnel with the best metric; therefore, the router selects only T2 as the selected set of tunnels.
Example 6—No Default or Metric Configuration
The following example shows the following parameters on tunnels T1 and T2:
- T1: exp = 5, autoroute
- T2: exp = 3, autoroute
If T1 and T2 are the next-hop interfaces for prefix P, CBTS maps the packets onto the tunnels as follows:
- Packets with <Dest = P, exp = 5> onto T1
- Packets with <Dest = P, exp = 3> onto T2
- Packets with <Dest = P, exp = anything-other-than-3-or-5> onto T2
If a packet arrives with an EXP value that is different from any value configured for a tunnel, the packet goes in to the default tunnel. If no default tunnel is configured, the packet goes in to the tunnel that is configured with the lowest EXP value.
Multipath with Non-TE Paths and MPLS TE CBTS
For a given prefix in the routing process, the router might select a set of paths that includes both TE tunnels and non-TE-tunnel paths (SPF paths). For example, internal Border Gateway Protocol (iBGP) multipath might be activated and result in multiple BGP next hops for that prefix, where one BGP next hop is reachable through TE tunnels and other BGP next hops are reachable through non-TE-tunnel paths.
An equal cost IGP path might also exist over TE tunnels and over a non-TE tunnel path. For example, a TE tunnel metric might be modified to be equal to the SPF path.
In these situations, CBTS maps traffic as follows:
- If a given EXP value is configured on one or more of the tunnels in the selected set, CBTS maps the EXP value onto that tunnel or one of those tunnels.
- If a given EXP value is not configured on any of the tunnels in the selected set but one or more of the tunnels is configured as a default in the selected set, CBTS maps the EXP value onto that tunnel or one of those tunnels.
- If a given EXP value is not configured on any of the tunnels from the selected set and no tunnel in the selected set is configured as a default, CBTS performs CoS-unaware load balancing of that EXP value across all the possible paths, including all of the TE tunnels of the selected set and the non-TE paths.
- If the routing process allocates all EXP values to tunnels or if a default is used, routing does not use the non-TE paths unless all TE tunnels are down.
MPLS TE Class-Based Tunnel Selection and Policy-Based Routing
If you configure both policy-based routing (PBR) over TE tunnels (in non-VRF environments) and CBTS, the PBR overrides CBTS. PBR is an input process that the router performs ahead of regular forwarding.
Tunnel Failure Handling
This section includes the following topics:
Tunnel Up or Down
For CBTS operation, the important question is whether the tunnel interface is up or down, not whether the current TE label switched path (LSP) is up or down. For example, a TE LSP might go down but is reestablished by the headend because another path option exists. The tunnel interface does not go down during the transient period while the TE LSP is reestablished. Because the tunnel interface does not go down, the corresponding EXP does not get rerouted onto another tunnel during the transient period.
Behavior When a Tunnel Goes Down
When a tunnel used by CBTS for forwarding goes down, the feature adjusts its tunnel selection for the affected EXP values. It reapplies the tunnel selection algorithm to define the behavior of packets for all EXP values, as shown in the examples that follow.
Example 1—Tunnel Other than the Default Tunnel Goes Down
The following example shows the following parameters on tunnels T1, T2, and T3:
- T1: exp = 5, autoroute
- T2: exp = 3 and 4, autoroute
- T3: exp = default, autoroute
If T1, T2, and T3 are next-hop interfaces for prefix P and Tunnel T1 goes down, CBTS maps the packets onto the tunnels as follows:
- Packets with <Dest = P, exp = 3, 4> onto T2 (as before)
- Packets with <Dest = P, exp = 0, 1, 2, 6, or 7> onto T3 (as before)
- Packets with <Dest = P, exp = 5> onto T3
Example 2—Default Tunnel Goes Down
The following example shows the following parameters on tunnels T1, T2, and T3:
- T1: exp = 5, autoroute
- T2: exp = 3 and 4, autoroute
- T3: exp = default, autoroute
If T1, T2, and T3 are next-hop interfaces for prefix P and Tunnel T3 goes down, CBTS maps the packets onto the tunnels as follows:
- Packets with <Dest = P, exp = 5> onto T1 (as before)
- Packets with <Dest = P, exp = 3, 4> onto T2 (as before)
- Packets with <Dest = P, exp = 0, 1, 2, 6, or 7> onto T1 and T2, following existing CoS-unaware load balancing
Example 3—Two Default Tunnels Are Configured
The following example shows the following parameters on tunnels T1, T2, and T3:
- T1: exp = 5, autoroute
- T2: exp = 3, 4, and default, autoroute
- T3: exp = 0, 1, 2, 6, 7, and default, autoroute
If T1, T2, and T3 are next-hop interfaces for prefix P and Tunnel T3 goes down, CBTS maps the packets onto the tunnels as follows:
- Packets with <Dest = P, exp = 5> onto T1 (as before)
- Packets with <Dest = P, exp = 3, 4> onto T2 (as before)
- Packets with <Dest = P, exp = 0, 1, 2, 6, or 7> onto T2
If tunnel T2 goes down, CBTS maps the packets onto the tunnels as follows:
- Packets with <Dest = P, exp = 5> onto T1 (as before)
- Packets with <Dest = P, exp = 0, 1, 2, 6, or 7> onto T3 (as before)
- Packets with <Dest = P, exp = 3, or 4> onto T3
If tunnel T1 goes down, CBTS maps the packets onto the tunnels as follows:
- Packets with <Dest = P, exp = 3, or 4> onto T2 (as before)
- Packets with <Dest = P, exp = 0, 1, 2, 6, or 7> onto T3 (as before)
- Packets with <Dest = P, exp = 5> onto either T2 or T3, but not both
Example 3 shows that the EXP default option is configured on two tunnels to ensure that nonvoice traffic is never redirected onto the voice tunnel (T1).
Misordering of Packets
In DiffServ, packets from a given flow might get marked with EXP values that are different from each other but belong to the same CoS value because of in-contract and out-of-contract marking of packets. These values of EXP bits are referred to as EXP-in and EXP-out.
If the packets for EXP-in are sent on a different tunnel than packets for EXP-out, the packets could get misordered within the same flows. For that reason, CBTS enables you to ensure that EXP-in and EXP-out never get mapped onto different tunnels.
CBTS enables you to configure EXP-in and EXP-out to be transported on the same tunnel when that tunnel is up to ensure that the feature does not introduce misordering of packets. If a tunnel failure occurs, the tunnel selection algorithm ensures that if EXP-in and EXP-out were carried on the same tunnel before the failure, that they are still carried on a single tunnel after the failure. Therefore, CBTS protects against nontransient misordering even in the event of a tunnel failure.
Note CBTS does not try to force EXP-in and EXP-out packets to be carried on the same tunnel. You must configure CBTS so that EXP-in and EXP-out packets are carried on the same tunnel. This configuration is comparable to the regular DiffServ situation, where you must ensure that EXP-in and EXP-out packets are configured to go in the same queue.
Fast Reroute and Class-Based Tunnel Selection
CBTS enables Fast Reroute (FRR) protection on tunnels for which you configure CoS-based selection.
CBTS operation with FRR does not change the number of or the way in which FRR backup tunnels might be used. The operation of FFR is the same as when CBTS is not activated. After you configure primary tunnels from a given headend to a given tailend, you can use FRR in the same way whether you activate CoS-based tunnel selection or not. The independence of these features includes the following considerations:
- None of the tunnels use FRR.
- All of the x tunnels are FRR-protected and share the same backup tunnel if the traffic goes out the same interface.
- Some of the x tunnels are not FRR-protected; the remaining tunnels are FRR-protected and share the same backup tunnel if the traffic goes out the same interface.
- Some of the x tunnels are not FRR-protected; the remaining tunnels are FRR-protected and are protected by different backup tunnels (for example, if the traffic goes out different interfaces or if the traffic goes out the same interface). Bandwidth guarantees exist on the backup tunnels.
FRR protects a given tunnel in exactly the same way as if CBTS were not configured on the tunnel.
DS-TE Tunnels and Class-Based Tunnel Selection
CBTS operates over tunnels using DS-TE. The tunnels on which CoS-based selection is performed can each arbitrarily and independently use a bandwidth from the global pool or the subpool.
Reoptimization and Class-Based Tunnel Selection
CBTS allows tunnels on which CoS-based selection is performed to be reoptimized. Reoptimization does not affect CBTS operation.