TE Tunnel Soft Preemption

Load mpls.te.soft.preemption.initial.cfg

#IOS-XE
config replace flash:mpls.te.soft.preemption.initial.cfg

#IOS-XR (XR11, XR12 only)
configure
load bootflash:mpls.te.soft.preemption.initial.cfg
commit replace
y

There are two bidirectional LSPs:

  • XR11-CSR8 requesting 500M at priority 7

  • XR12-CSR8 requesting 750M at priority 6

    • Currently shutdown

Configure XR11 and XR12 so that when XR12 brings up its LSP, it allows XR11 to do make-before-break.

Answer

#XR11, XR12
mpls traffic-eng
 soft-preemption
!
int tunnel-te 1
 soft-preemption

Explanation

By default, when one LSP preempts another, the LSP that is being preempted is forcefully torn down. If a second path-option exists, it would be more graceful if the headend of the to-be-preempted LSP can do make-before-break and reserve a new LSP along a less-optimal path.

This feature is enabled using soft-preemption. It is only available on IOS-XR. When the preempting router “kicks off” the worse-priority LSP, the router signals to the existing headend that this is about to occur so that it can do make-before-break and gracefully establish a new path. The router does this using a PATH ERROR message that contains code 34/1, which means reroute/flow soft-preempted. This is different from the normal PATH ERROR message which is 2/5 meaning policy control failure/flow was preempted.

Note that I could not get this to work correctly on XRv. Perhaps the feature isn’t implemented fully? Also this is not mentioned in Russo’s study guide, so it’s possible I’m not using the feature correctly too. When XR12 preempt’s XR11’s tunnel, I get packet loss between XR13-XR14, and I see XR11 forcefully tear down the LSP in response to XR12’s error 2/5.

Last updated