MPLS TE CSPF and Path Constraints (Bandwidth, Affinity, TE Metric)
In MPLS TE the tunnel ingress (head-end) decides the path. When no explicit path is given and the tunnel uses path-option dynamic, the head-end runs CSPF to compute the shortest path that satisfies constraints such as bandwidth and color (affinity). This article explains the information CSPF uses and how the constraints take effect, then uses an IOS XR (XRd) lab to watch the path change each time a constraint changes. The overall picture of TE and how to specify an explicit path are covered in What Is MPLS TE (RSVP-TE).
Link attributes flooded by the IGP
OSPF carries TE information in Opaque LSA Type 10 (flooded only within the area), Opaque Type 1 (RFC 3630). There are two TLVs, the Router Address TLV and the Link TLV, and the Link TLV contains these sub-TLVs.
| Type | sub-TLV | Contents |
|---|---|---|
| 5 | Traffic engineering metric | Metric for TE. Can differ from the OSPF cost |
| 6 | Maximum bandwidth | Physical bandwidth of the link |
| 7 | Maximum reservable bandwidth | Upper limit that can be reserved |
| 8 | Unreserved bandwidth | Bandwidth not yet reserved, kept per priority 0-7 |
| 9 | Administrative group | A 32-bit mask, also called the color (Resource Class/Color) |
Bandwidth is expressed in bytes per second (IEEE floating point).
CSPF
The head-end removes the links that violate the constraints from the TED and runs a shortest-path computation over what remains.
| Constraint | Links removed |
|---|---|
| Bandwidth | Links whose unreserved bandwidth is below the request |
| Affinity (color) | Links whose color does not match what the tunnel requires |
On IOS XR the metric used for “shortest” is the TE metric by default. If no TE metric is configured, the IGP cost is advertised as the TE metric, so the result matches the IGP path. Only the head-end decides the path; transit routers do not compute it.
The default affinity excludes colored links
On IOS XR a tunnel without an explicit affinity uses value 0x0 with mask 0xFFFF (the default in Cisco’s command reference). Where a mask bit is 1, the link attribute and the tunnel affinity must match. In other words, a link with any color in the low 16 bits is excluded from tunnels that do not specify an affinity. Use affinity ignore for a tunnel that should disregard color.
A failed recomputation keeps the existing LSP
When a constraint changes, the head-end recomputes the path (reoptimization) and brings up the new LSP before tearing down the old one (make-before-break, RFC 3209 section 2.5). The reservation is shared with the SE (Shared Explicit) style so the old and new LSPs do not count the same bandwidth twice. If no new path is found, the old LSP stays in use. The configuration then holds the new constraint while traffic still follows the old path, so check Last PCALC Error in show mpls traffic-eng tunnels detail.
When reoptimization runs and when it does not
| Trigger | Example | Behavior |
|---|---|---|
| The current LSP no longer satisfies the new constraint | More bandwidth requested, a color that excludes the current path | Recomputes and moves immediately |
| The current LSP still satisfies the constraints, but a better path appeared | A constraint relaxed, the TE metric of another path lowered | Does not move immediately. It moves at periodic reoptimization (3600 seconds by default on IOS XR) or on a manual mpls traffic-eng reoptimize |
Not re-signalling the LSP on every topology change is the default behavior.
Constraint information carried by RSVP-TE
The requested bandwidth is carried in SENDER_TSPEC of Path and FLOWSPEC of Resv. Priorities (Setup / Holding) range from 0 to 7, and 0 is the highest (RFC 3209 section 4.7).
SESSION_ATTRIBUTE comes in a format without affinities (C-Type 7, section 4.7.1) and a format with affinities (C-Type 1, section 4.7.2). When the ERO pins the path with strict hops, transit routers do not choose a path, so the color check can stay in the head-end’s CSPF.
A bandwidth reservation is bookkeeping at each hop. When a Resv passes, the unreserved bandwidth decreases, the IGP re-advertises it, and the next tunnel’s CSPF sees the new value. It does not limit how much traffic is forwarded. Limiting the rate requires policing.
Lab topology
Between PE1 and PE2 there are three paths with the same hop count. Each path has different attributes, so the names of the P routers the tunnel crosses reveal the CSPF decision. The core runs OSPF area 0 and LDP, and CE1 and CE2 attach to the PEs through VRF CUST-A.
| Path | Segment | OSPF cost | Reservable bandwidth | Color (attribute-flags) |
|---|---|---|---|---|
| Upper | PE1 - P1 - P2 - PE2 | 30 | 1 Gbps | 0x1 (RED) |
| Middle | PE1 - P3 - P4 - PE2 | 10 | 100 Mbps | none |
| Lower | PE1 - P5 - P6 - PE2 | 20 | 1 Gbps | 0x2 (BLUE), SRLG 100 |
| Router | Lo0 | Role |
|---|---|---|
| CE1 / CE2 | 1.1.1.1 / 10.10.10.10 | AS 65101 / AS 65102 |
| PE1 | 2.2.2.2 | head-end |
| P1 / P2 | 3.3.3.3 / 4.4.4.4 | Upper path |
| P3 / P4 | 5.5.5.5 / 6.6.6.6 | Middle path |
| P5 / P6 | 7.7.7.7 / 8.8.8.8 | Lower path |
| PE2 | 9.9.9.9 | tail-end |
The IGP shortest path is the middle (30), followed by the lower (60) and the upper (90). The tunnel only builds a path; this article puts no traffic on it. Traffic between CE1 and CE2 follows the LDP middle path in every STEP. Steering traffic into the tunnel is covered in Steering Traffic into MPLS TE Tunnels.
Overview of the test
| STEP | Change | What it shows |
|---|---|---|
| 0 | Initial state (no tunnel) | OSPF floods the link attributes |
| 1 | Create a tunnel with no constraints | CSPF picks the middle, the same as the IGP |
| 2 | Request 200 Mbps of bandwidth | The middle fails on bandwidth, the upper and lower fail on the default affinity: no path. The existing LSP stays |
| 3 | Add affinity ignore |
The color exclusion disappears and the tunnel moves to the lower. 200 Mbps reserved |
| 4 | Set affinity RED (0x1) and remove the bandwidth request | The color moves the tunnel to the upper |
| 5 | Set the TE metric of the lower path to 1 and return to affinity ignore |
CSPF now answers lower, but the tunnel stays on the upper until reoptimized |
| 6 | Remove everything (final state) | Back to the STEP 0 state |
STEP 0: OSPF floods the link attributes
The Opaque LSA that PE1 advertises for its link toward P5 (the lower path).
LS age: 501
Options: (No TOS-capability, DC)
LS Type: Opaque Area Link
Link State ID: 1.0.0.7
Opaque Type: 1
Opaque ID: 7
Advertising Router: 2.2.2.2
LS Seq Number: 80000002
Checksum: 0x8e4b
Length: 212
Link connected to Point-to-Point network
Link ID : 7.7.7.7
(all bandwidths in bytes/sec)
Interface Address : 10.2.7.2
Neighbor Address : 10.2.7.7
Admin Metric : 20
Maximum bandwidth : 125000000
Maximum reservable bandwidth global: 125000000
Number of Priority : 8
Priority 0 : 125000000 Priority 1 : 125000000
Priority 2 : 125000000 Priority 3 : 125000000
Priority 4 : 125000000 Priority 5 : 125000000
Priority 6 : 125000000 Priority 7 : 125000000
Affinity Bit : 0x2
IGP Metric : 20
GMPLS Shared Risked Link Group : Length: 4
Number of SRLGs (1)
[1]: 100
Extended Administrative Group : Length: 8
EAG[0]: 0x2
EAG[1]: 0
EAG[2]: 0
EAG[3]: 0
EAG[4]: 0
EAG[5]: 0
EAG[6]: 0
EAG[7]: 0
Number of Links : 1Admin Metric is the TE metric, Affinity Bit is the color, and Priority 0 to 7 are the unreserved bandwidth per priority. As all bandwidths in bytes/sec says, bandwidth is in bytes per second; 125000000 is 1 Gbps. The SRLG is in this LSA too (SRLG is an FRR attribute and is not covered in this article).
STEP 1: with no constraints, the IGP path
RP/0/RP0/CPU0:PE1#show configuration commit changes last 1
Sun Sep 13 06:07:10.308 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
interface tunnel-te0
ipv4 unnumbered Loopback0
destination 9.9.9.9
record-route
path-option 10 dynamic
!
endRP/0/RP0/CPU0:PE1#show mpls traffic-eng tunnels
Sun Sep 13 06:12:49.398 UTC
Name: tunnel-te0 Destination: 9.9.9.9 Ifhandle:0x1c
Signalled-Name: PE1_t0
Status:
Admin: up Oper: up Path: valid Signalling: connected
path option 10, type dynamic (Basis for Setup, path weight 30)
Accumulative metrics: TE 30 IGP 30 Delay 900000
Accumulative biased metrics: TE 30 IGP 30 Delay 900000
G-PID: 0x0800 (derived from egress interface properties)
Bandwidth Requested: 0 kbps CT0
Creation Time: Sun Sep 13 06:07:09 2026 (00:05:40 ago)
Config Parameters:
Source: router ID (default)
Bandwidth: 0 kbps (CT0) Priority: 7 7 Affinity: 0x0/0xffff
Metric Type: TE (global) Path info (OSPF 1 area 0):
Hop0: 10.2.5.5
Hop1: 10.5.6.6
Hop2: 10.6.9.9
Hop3: 9.9.9.9The path is P3 (10.2.5.5) → P4 (10.5.6.6) → PE2, the middle path, and the path weight is the TE metric total of 30. Affinity: 0x0/0xffff is the default.
STEP 2: requesting bandwidth leaves no path
RP/0/RP0/CPU0:PE1#show configuration commit changes last 1
Sun Sep 13 06:16:58.640 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
interface tunnel-te0
signalled-bandwidth 200000
!
endRP/0/RP0/CPU0:PE1#show mpls traffic-eng tunnels detail
Sun Sep 13 06:25:59.997 UTC
Name: tunnel-te0 Destination: 9.9.9.9 Ifhandle:0x1c
Signalled-Name: PE1_t0
Status:
Admin: up Oper: up Path: valid Signalling: connected
path option 10, type dynamic (Basis for Setup, path weight 30)
Accumulative metrics: TE 30 IGP 30 Delay 900000
Accumulative biased metrics: TE 30 IGP 30 Delay 900000
Change in required resources detected: reroute pending
Bandwidth: 200000 kbps (CT0) Priority: 7 7 Affinity: 0x0/0xffff
Metric Type: TE (global)
Path Selection:
Tiebreaker: Min-fill (default)
Hop-limit: disabled
Cost-limit: disabled
Delay-limit: disabled
Delay-measurement: disabled
Path-invalidation timeout: 10000 msec (default), Action: Tear (default)
Last PCALC Error [Reopt]: Sun Sep 13 06:16:58 2026
Info: No path to destination, 9.9.9.9 (node unreachable)The middle path has only 100 Mbps of reservable bandwidth, so it fails on bandwidth, and the upper and lower paths fail on the default affinity (0x0/0xffff). No link remains, and the recomputation fails with No path to destination. The tunnel is still up, and the middle-path LSP with path weight 30 stays in use.
STEP 3: dropping the color exclusion moves it to the lower path
RP/0/RP0/CPU0:PE1#show configuration commit changes last 1
Sun Sep 13 06:30:08.311 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
interface tunnel-te0
affinity ignore
!
end History:
Tunnel has been up for: 00:29:06 (since Sun Sep 13 06:07:09 UTC 2026)
Current LSP:
Uptime: 00:05:39 (since Sun Sep 13 06:30:36 UTC 2026)
Reopt. LSP:
Last Failure:
LSP not signalled, has no S2Ls
Date/Time: Sun Sep 13 06:30:06 UTC 2026 [00:06:09 ago]
Prior LSP:
ID: 2 Path Option: 10
Removal Trigger: reoptimization completed
Path info (OSPF 1 area 0):
Hop0: 10.2.7.7
Hop1: 10.7.8.8
Hop2: 10.8.9.9
Hop3: 9.9.9.9The path moved to the lower path (P5 → P6). Tunnel has been up for continues from 06:07:09 in STEP 1, and only the LSP uptime starts at 06:30:36. The new LSP was brought up before the old one was removed (make-before-break).
RP/0/RP0/CPU0:PE1#show rsvp interface
Sun Sep 13 06:36:17.067 UTC
*: RDM: Default I/F B/W % : 75% [default] (max resv/bc0), 0% [default] (bc1)
Interface MaxBW (bps) MaxFlow (bps) Allocated (bps) MaxSub (bps)
------------------------- ------------ ------------- -------------------- -------------
GigabitEthernet0/0/0/1 1G 1G 0 ( 0%) 0
GigabitEthernet0/0/0/2 100M 100M 0 ( 0%) 0
GigabitEthernet0/0/0/3 1G 1G 200M ( 20%) 0 200 Mbps is reserved on Gi0/0/0/3 of the lower path. In the capture, the FLOWSPEC of the Resv returned from P5 (No.1490) is 200 Mbps too.
Internet Protocol Version 4, Src: 10.2.7.7, Dst: 10.2.7.2
Message Type: RESV Message. (2)
FLOWSPEC: Controlled Load: Token Bucket, 25000000 bytes/sec.
Token bucket rate: 2.5e+07
LABEL: 2401425000000 bytes per second is 200 Mbps. RSVP also carries bandwidth in bytes per second.
STEP 4: choosing the upper path by color
RP/0/RP0/CPU0:PE1#show configuration commit changes last 1
Sun Sep 13 06:43:45.116 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
interface tunnel-te0
no signalled-bandwidth 200000
affinity 0x1 mask 0x1
no affinity ignore
!
end History:
Tunnel has been up for: 00:44:26 (since Sun Sep 13 06:07:09 UTC 2026)
Current LSP:
Uptime: 00:07:08 (since Sun Sep 13 06:44:27 UTC 2026)
Reopt. LSP:
Last Failure:
LSP not signalled, identical to the [CURRENT] LSP
Date/Time: Sun Sep 13 06:46:45 UTC 2026 [00:04:50 ago]
Prior LSP:
ID: 5 Path Option: 10
Removal Trigger: reoptimization completed
Path info (OSPF 1 area 0):
Hop0: 10.2.3.3
Hop1: 10.3.4.4
Hop2: 10.4.9.9
Hop3: 9.9.9.9Only the upper path has the RED color, so the upper path (90), with the largest cost, was chosen. This is the SESSION_ATTRIBUTE of the Path sent to the upper path at that time (No.2409).
SESSION ATTRIBUTE: SetupPrio 7, HoldPrio 7, Label Recording, SE Style, [PE1_t0]
Length: 28
Object class: SESSION ATTRIBUTE object (207)
C-Type: IPv4 LSP Resource Affinities (7)
Setup priority: 7
Hold priority: 7
Flags: 0x06
.... ...0 = Local protection: Not Desired
.... ..1. = Label recording: Desired
.... .1.. = SE style: Desired
.... 0... = Bandwidth protection: Not Desired
...0 .... = Node protection: Not Desired
Name length: 6
Name: PE1_t0Even with an affinity configured, the C-Type is 7. tshark names it IPv4 LSP Resource Affinities, but in RFC 3209 section 4.7.1 C-Type 7 is the “Format without resource affinities”. The color is evaluated by the head-end’s CSPF and is not carried in Path. SE style: Desired in Flags is the flag that allows the ingress to reroute the tunnel without tearing it down (make-before-break, section 4.7.1).
STEP 5: lowering the TE metric does not move the LSP until reoptimization
The TE metric of the three links of the lower path in the PE1-to-PE2 direction was set to 1. The TE metric is a value of the advertising router, so it goes on PE1, P5 and P6. On PE1 the tunnel returns to affinity ignore.
RP/0/RP0/CPU0:P5#show configuration commit changes last 1
Sun Sep 13 06:55:33.451 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
mpls traffic-eng
interface GigabitEthernet0/0/0/1
admin-weight 1
!
!
endRP/0/RP0/CPU0:P6#show configuration commit changes last 1
Sun Sep 13 06:55:39.397 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
mpls traffic-eng
interface GigabitEthernet0/0/0/1
admin-weight 1
!
!
endRP/0/RP0/CPU0:PE1#show configuration commit changes last 1
Sun Sep 13 06:56:05.673 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
interface tunnel-te0
no affinity 0x1 mask 0x1
affinity ignore
!
mpls traffic-eng
interface GigabitEthernet0/0/0/3
admin-weight 1
!
!
endAbout three minutes later, the CSPF answer was checked on PE1.
RP/0/RP0/CPU0:PE1#show mpls traffic-eng topology path destination 9.9.9.9
Sun Sep 13 06:59:49.383 UTC
Path Setup to 9.9.9.9:
bw 0 (CT0), min_bw 1000000, metric: 3
Accumulated Metrics: TE: 3, IGP: 60, Delay: 900000
Accumulated Biased Metrics: TE: 3, IGP: 60, Delay: 900000
setup_pri 0, hold_pri 0
Affinity: 0x0/0x0
Biased-to explicit path:
Node hop count 3
Hop0:10.2.7.7
Hop1:10.7.8.8
Hop2:10.8.9.9
Hop3:9.9.9.9CSPF returns the lower path (TE 3), which is 60 in IGP cost and longer than the middle (30). At the same time, however, the tunnel is still on the STEP 4 upper-path LSP (Gi0/0/0/1).
History:
Tunnel has been up for: 00:52:39 (since Sun Sep 13 06:07:09 UTC 2026)
Current LSP:
Uptime: 00:15:21 (since Sun Sep 13 06:44:27 UTC 2026)
Reopt. LSP:
Last Failure:
LSP not signalled, identical to the [CURRENT] LSP
Date/Time: Sun Sep 13 06:46:45 UTC 2026 [00:13:03 ago]
Prior LSP:
ID: 5 Path Option: 10
Removal Trigger: reoptimization completed
Current LSP Info:
Instance: 8, Signaling Area: OSPF 1 area 0
In-use path-option: 10
Uptime: 00:15:21 (since Sun Sep 13 06:44:27 UTC 2026)
Outgoing Interface: GigabitEthernet0/0/0/1, Outgoing Label: 24014The current LSP satisfies its constraints, so it does not move even though a better path exists. Reoptimize it manually.
RP/0/RP0/CPU0:PE1#mpls traffic-eng reoptimize 0
Sun Sep 13 07:00:13.466 UTC path option 10, type dynamic (Basis for Setup, path weight 3)
Accumulative metrics: TE 3 IGP 60 Delay 900000
Accumulative biased metrics: TE 3 IGP 60 Delay 900000 Tunnel has been up for: 00:58:19 (since Sun Sep 13 06:07:09 UTC 2026)
Current LSP:
Uptime: 00:05:15 (since Sun Sep 13 07:00:13 UTC 2026)
Reopt. LSP:
Last Failure:
LSP not signalled, identical to the [CURRENT] LSP
Date/Time: Sun Sep 13 06:46:45 UTC 2026 [00:18:43 ago]
Prior LSP:
ID: 8 Path Option: 10
Removal Trigger: reoptimization completed
Path info (OSPF 1 area 0):
Hop0: 10.2.7.7
Hop1: 10.7.8.8
Hop2: 10.8.9.9
Hop3: 9.9.9.9The lower-path LSP came up at the same 07:00:13. The path weight is 3 (TE), 60 in IGP terms. Tunnel has been up for still continues from 06:07:09.
Path history
The hops the tunnel used, from traceroute mpls traffic-eng tunnel-te 0 in each STEP.
| STEP | Tunnel path | Reason |
|---|---|---|
| 1 | Middle (P3 → P4) | No constraints. Lowest TE metric |
| 2 | Stays on middle (P3 → P4) | Recomputation failed with no path. Existing LSP kept |
| 3 | Lower (P5 → P6) | Middle fails on bandwidth, color exclusion removed |
| 4 | Upper (P1 → P2) | Only the upper path has RED |
| 5 | Lower (P5 → P6) | TE metric 3. After manual reoptimization |
Design notes
- Once colors are in use, existing tunnels without an explicit affinity can no longer use colored links, because the IOS XR default mask is 0xFFFF. When adding colors, review the affinity of every tunnel
- A configuration change does not guarantee a path change. A failed recomputation keeps the old LSP, and relaxing a constraint does not move it. Check
Last PCALC Errorand the uptime ofCurrent LSP - The TE metric is a value of the advertising side of a link. Changing only one direction can make the forward and return paths differ
- Reserved bandwidth does not limit forwarded traffic
Lab configuration and show outputs
In each STEP the following files were collected from all ten routers, one file per router. The lab configuration is the ..._run.txt (the final state is in the last STEP).
| File | Contents |
|---|---|
..._show.txt |
show version / show route / show ospf database opaque-area / show mpls traffic-eng tunnels and topology / show rsvp commands / VPN (PEs only) |
..._log.txt |
show logging limited to that STEP |
..._run.txt |
show running-config at that STEP (the lab configuration of that STEP) |
..._ping.txt |
ping (50 packets, 1-second timeout) and traceroute in that STEP |
..._oam.txt |
ping / traceroute mpls traffic-eng tunnel-te 0 and ping / traceroute mpls ipv4 (PE1 and PE2) |
..._trace.txt |
show mpls traffic-eng trace head-end / link and show rsvp trace signalling (eight core routers) |
..._commit.cfg |
Only the configuration actually committed in that STEP, for the routers that changed |
..._debug.txt |
show outputs and mpls traffic-eng reoptimize 0 taken on PE1 around the STEP 5 reoptimization |
STEP 0: Initial state (no tunnel)
| Router | show output | syslog | running-config | ping | OAM | trace | commit |
|---|---|---|---|---|---|---|---|
| CE1 | show | log | run | ping | - | - | - |
| PE1 | show | log | run | ping | oam | trace | - |
| P1 | show | log | run | ping | - | trace | - |
| P2 | show | log | run | - | - | trace | - |
| P3 | show | log | run | ping | - | trace | - |
| P4 | show | log | run | - | - | trace | - |
| P5 | show | log | run | ping | - | trace | - |
| P6 | show | log | run | - | - | trace | - |
| PE2 | show | log | run | ping | oam | trace | - |
| CE2 | show | log | run | ping | - | - | - |
STEP 1: Create a tunnel with no constraints
| Router | show output | syslog | running-config | ping | OAM | trace | commit |
|---|---|---|---|---|---|---|---|
| CE1 | show | log | run | ping | - | - | - |
| PE1 | show | log | run | ping | oam | trace | cfg |
| P1 | show | log | run | ping | - | trace | - |
| P2 | show | log | run | - | - | trace | - |
| P3 | show | log | run | ping | - | trace | - |
| P4 | show | log | run | - | - | trace | - |
| P5 | show | log | run | ping | - | trace | - |
| P6 | show | log | run | - | - | trace | - |
| PE2 | show | log | run | ping | oam | trace | - |
| CE2 | show | log | run | ping | - | - | - |
STEP 2: Request 200 Mbps of bandwidth
| Router | show output | syslog | running-config | ping | OAM | trace | commit |
|---|---|---|---|---|---|---|---|
| CE1 | show | log | run | ping | - | - | - |
| PE1 | show | log | run | ping | oam | trace | cfg |
| P1 | show | log | run | ping | - | trace | - |
| P2 | show | log | run | - | - | trace | - |
| P3 | show | log | run | ping | - | trace | - |
| P4 | show | log | run | - | - | trace | - |
| P5 | show | log | run | ping | - | trace | - |
| P6 | show | log | run | - | - | trace | - |
| PE2 | show | log | run | ping | oam | trace | - |
| CE2 | show | log | run | ping | - | - | - |
STEP 3: Add affinity ignore
| Router | show output | syslog | running-config | ping | OAM | trace | commit |
|---|---|---|---|---|---|---|---|
| CE1 | show | log | run | ping | - | - | - |
| PE1 | show | log | run | ping | oam | trace | cfg |
| P1 | show | log | run | ping | - | trace | - |
| P2 | show | log | run | - | - | trace | - |
| P3 | show | log | run | ping | - | trace | - |
| P4 | show | log | run | - | - | trace | - |
| P5 | show | log | run | ping | - | trace | - |
| P6 | show | log | run | - | - | trace | - |
| PE2 | show | log | run | ping | oam | trace | - |
| CE2 | show | log | run | ping | - | - | - |
STEP 4: Set affinity RED (0x1) and remove the bandwidth request
| Router | show output | syslog | running-config | ping | OAM | trace | commit |
|---|---|---|---|---|---|---|---|
| CE1 | show | log | run | ping | - | - | - |
| PE1 | show | log | run | ping | oam | trace | cfg |
| P1 | show | log | run | ping | - | trace | - |
| P2 | show | log | run | - | - | trace | - |
| P3 | show | log | run | ping | - | trace | - |
| P4 | show | log | run | - | - | trace | - |
| P5 | show | log | run | ping | - | trace | - |
| P6 | show | log | run | - | - | trace | - |
| PE2 | show | log | run | ping | oam | trace | - |
| CE2 | show | log | run | ping | - | - | - |
STEP 5: Set the TE metric of the lower path to 1 and return to affinity ignore
| Router | show output | syslog | running-config | ping | OAM | trace | commit |
|---|---|---|---|---|---|---|---|
| CE1 | show | log | run | ping | - | - | - |
| PE1 | show | log | run | ping | oam | trace | cfg |
| P1 | show | log | run | ping | - | trace | - |
| P2 | show | log | run | - | - | trace | - |
| P3 | show | log | run | ping | - | trace | - |
| P4 | show | log | run | - | - | trace | - |
| P5 | show | log | run | ping | - | trace | cfg |
| P6 | show | log | run | - | - | trace | cfg |
| PE2 | show | log | run | ping | oam | trace | - |
| CE2 | show | log | run | ping | - | - | - |
PE1 before and after reoptimization: debug
STEP 6: Remove everything (final state)
| Router | show output | syslog | running-config | ping | OAM | trace | commit |
|---|---|---|---|---|---|---|---|
| CE1 | show | log | run | ping | - | - | - |
| PE1 | show | log | run | ping | oam | trace | cfg |
| P1 | show | log | run | ping | - | trace | - |
| P2 | show | log | run | - | - | trace | - |
| P3 | show | log | run | ping | - | trace | - |
| P4 | show | log | run | - | - | trace | - |
| P5 | show | log | run | ping | - | trace | cfg |
| P6 | show | log | run | - | - | trace | cfg |
| PE2 | show | log | run | ping | oam | trace | - |
| CE2 | show | log | run | ping | - | - | - |
Full captures of the three links from PE1 (toward P1, P3 and P5). They contain the RSVP and OSPF packets of all STEPs.
Download the full capture between PE1 and P1 (upper path)
Download the full capture between PE1 and P3 (middle path)
Download the full capture between PE1 and P5 (lower path)
References
| Source | Sections used |
|---|---|
| RFC 3209 RSVP-TE: Extensions to RSVP for LSP Tunnels | 2.5 (make-before-break), 4.7 (SESSION_ATTRIBUTE, priorities, formats with and without affinities) |
| RFC 3630 Traffic Engineering (TE) Extensions to OSPF Version 2 | 2.4.2 (Link TLV sub-TLVs), 2.5 (sub-TLV definitions and units) |
| MPLS Command Reference for Cisco NCS 5500 Series - MPLS Traffic Engineering Commands | Command Default (0x0 / 0xFFFF) and Usage Guidelines of affinity |
The 3600-second periodic reoptimization interval is what show mpls traffic-eng tunnels summary showed on the lab router. The lab ran on XRd 26.1.1 (Cisco Modeling Labs).
- What Is MPLS
- MPLS Labels and the Label Stack
- MPLS Label Operations (push / swap / pop) and PHP
- MPLS TTL Processing and MTU
- What Is LDP
- LDP Label Distribution Modes and Label Spaces
- LDP-IGP Synchronization and LDP Session Protection
- LDP Label Advertisement Control (Filtering)
- LDP Session Authentication (TCP MD5)
- MPLS OAM (LSP Ping and LSP Traceroute)
- What Is MPLS TE (RSVP-TE)
- MPLS TE CSPF and Path Constraints (Bandwidth, Affinity, TE Metric)
- Steering Traffic into MPLS TE Tunnels