Skip to main content
  1. Network Articles/
  2. MPLS Articles/

MPLS TE CSPF and Path Constraints (Bandwidth, Affinity, TE Metric)

Table of Contents

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).

STEP 0 PE1 show ospf database opaque-area (link PE1 to P5, excerpt)
  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 : 1

Admin 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

Configuration committed on PE1 in STEP 1
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
!
end
STEP 1 PE1 show mpls traffic-eng tunnels (excerpt)
RP/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)
STEP 1 PE1 show mpls traffic-eng tunnels (path)
  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.9

The 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

Configuration committed on PE1 in STEP 2
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
!
end
STEP 2 PE1 show mpls traffic-eng tunnels detail (excerpt)
RP/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

Configuration committed on PE1 in STEP 3
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
STEP 3 PE1 show mpls traffic-eng tunnels (excerpt)
  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.9

The 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).

STEP 3 PE1 show rsvp interface
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.

STEP 3 No.1490 RESV (P5 to PE1, tshark -V excerpt)
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: 24014
Download the pcap of the packet in the tshark output above (No.1490 RESV)

25000000 bytes per second is 200 Mbps. RSVP also carries bandwidth in bytes per second.

STEP 4: choosing the upper path by color

Configuration committed on PE1 in STEP 4
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
STEP 4 PE1 show mpls traffic-eng tunnels (excerpt)
  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.9

Only 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).

STEP 4 No.2409 PATH SESSION_ATTRIBUTE (PE1 to P1, tshark -V excerpt)
        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_t0
Download the pcap of the packet in the tshark output above (No.2409 PATH)

Even 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.

Configuration committed on P5 in STEP 5
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
 !
!
end
Configuration committed on P6 in STEP 5
RP/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
 !
!
end
Configuration committed on PE1 in STEP 5
RP/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
 !
!
end

About three minutes later, the CSPF answer was checked on PE1.

STEP 5 PE1 show mpls traffic-eng topology path destination 9.9.9.9
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.9

CSPF 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).

STEP 5 PE1 show mpls traffic-eng tunnels 0 detail (before reoptimization, excerpt)
  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: 24014

The current LSP satisfies its constraints, so it does not move even though a better path exists. Reoptimize it manually.

STEP 5 PE1 manual reoptimization
RP/0/RP0/CPU0:PE1#mpls traffic-eng reoptimize 0

Sun Sep 13 07:00:13.466 UTC
STEP 5 PE1 show mpls traffic-eng tunnels (after reoptimization, excerpt)
    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 
STEP 5 PE1 show mpls traffic-eng tunnels (after reoptimization, path)
    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.9

The 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 Error and the uptime of Current 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).