Table Of Contents
MPLS Safe Label Reuse After Router Restart
Restrictions for MPLS Safe Label Reuse
Information About MPLS Safe Label Reuse
Safe Label Reuse After a Router Restart Feature Description
Persistent Data for MPLS Safe Label Reuse
Persistent Data for MPLS Safe Label Reuse Not Available at Router Restart
Configurable MPLS Safe Label Reuse Parameters
Features Supported for MPLS Safe Label Reuse After Router Restart
How to Configure MPLS Safe Label Reuse Parameters
Disabling and Reenabling MPLS Safe Label Reuse
Disabling MPLS Safe Label Reuse
Reenabling MPLS Safe Label Reuse
Setting the MPLS Safe Label Reuse Timeouts
Setting the MPLS Safe Label Reuse Timeout When Persistent Data Is Found
Setting the MPLS Safe Label Reuse Timeout When Persistent Data Is Not Found
Setting Router Behavior When No Record of MPLS Label Usage Exists
Setting the Allocation Algorithm for MPLS Safe Label Reuse
Displaying Information About MPLS Label Usage
Configuration Examples for MPLS Safe Label Reuse
Disabling and Reenabling MPLS Safe Label Reuse: Example
Setting the MPLS Safe Label Reuse Timeouts: Example
Setting the MPLS Safe Label Reuse Timeout When Persistent Data Is Found: Example
Setting the MPLS Safe Label Reuse Timeout When Persistent Data Is Not Found: Example
Setting Router Behavior When No Record of MPLS Label Usage Exists: Example
Setting the Allocation Algorithm for MPLS Safe Label Reuse: Example
Feature Information for MPLS Safe Label Reuse After Router Restart
MPLS Safe Label Reuse After Router Restart
First Published: June 30, 2006Last Updated: June 30, 2006The MPLS Safe Label Reuse After Router Restart feature provides the means to preserve information about the state of Multiprotocol Label Switching (MPLS) label usage during normal router operation across a router restart. This ensures that the router avoids reusing labels that were in use before the restart until it is safe to do so. The MPLS Safe Label Reuse After Router Restart feature provides a more secure network by preventing network traffic from being forwarded incorrectly during the short period following router restart.
Finding Feature Information in This Module
Your Cisco IOS software release may not support all of the features documented in this module. To reach links to specific feature documentation in this module and to see a list of the releases in which each feature is supported, use the "Feature Information for MPLS Safe Label Reuse After Router Restart" section.
Finding Support Information for Platforms and Cisco IOS Software Images
Use Cisco Feature Navigator to find information about platform support and software image support. Cisco Feature Navigator enables you to determine which Cisco IOS and Catalyst OS software images support a specific software release, feature set, or platform. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn. An account on Cisco.com is not required.
Contents
•
Restrictions for MPLS Safe Label Reuse
•
Information About MPLS Safe Label Reuse
•
How to Configure MPLS Safe Label Reuse Parameters
•
Configuration Examples for MPLS Safe Label Reuse
•
Feature Information for MPLS Safe Label Reuse After Router Restart
Restrictions for MPLS Safe Label Reuse
•
This feature does not track the use and reuse of statically assigned labels.
•
If the steady-state requirement for MPLS labels exceeds half the configured label space, MPLS convergence might be delayed following a non-stateful switchover (SSO) restart. The pool of available labels could be insufficient to meet the demand until the safe-to-reuse timer expires.
•
On rare occasions with redundant platforms, the persistent data required to prevent unsafe label reuse following a restart on the Route Processor (RP) selected as the active RP might not be an up-to-date record of label use prior to the restart. This could occur, if prior to the restart, the:
–
Label usage information on the active RP was updated when the standby RP was inaccessible.
–
Restart occurred before the active RP has the opportunity to update the standby persistent data.
–
RP selected to be the active RP was the standby prior to the restart.
If this occurs, it is undetectable and the MPLS Safe Label Reuse feature cannot prevent unsafe label reuse following such a restart.
Information About MPLS Safe Label Reuse
You should understand the following information before using the MPLS Safe Label Reuse After Router Restart feature:
•
Safe Label Reuse After a Router Restart Feature Description
•
Persistent Data for MPLS Safe Label Reuse
•
Persistent Data for MPLS Safe Label Reuse Not Available at Router Restart
•
Configurable MPLS Safe Label Reuse Parameters
•
Features Supported for MPLS Safe Label Reuse After Router Restart
Safe Label Reuse After a Router Restart Feature Description
If the MPLS Safe Label Reuse feature is not configured, when a router restarts no record of local labels in use prior to the restart is available. Such a router might bind local labels to Forwarding Equivalence Classes (FECs) differently than it did before the restart. If this happens, traffic could be forwarded incorrectly for a short period of time until neighbor routers remove forwarding information based on labels learned from the restarting router prior to its restart.
The MPLS Safe Label Reuse After Router Restart feature, available in Cisco IOS Release 12.0(32)SY and later releases, prevents a restarting router from using local labels that had been in use prior to the restart until it is safe to do so.
With this feature, the router keeps a record of the labels that are in use during normal operation in a persistent data file located on its NVRAM device, which is found on all Cisco IOS platforms. For example:
Router# dir nvram:Directory of nvram:/2044 -rw- 6039 Mar 01 2006 startup-config...1 ---- 122 Apr 22 2006 persistent-data <--- In this file2093048 bytes total (2084909 bytes free)When the router reloads, its persistent data file has a record of the labels in use before the restart. This allows the MPLS label allocator to avoid labels in use before the restart until it is safe to reuse them.
With the MPLS Safe Label Reuse feature, during normal operation, a router updates the persistent-data file as required to represent its label usage to prepare for the next restart.
The MPLS Safe Label Reuse feature is enabled by default in Cisco IOS Release 12.0(32)SY and later releases. However, you can disable the feature and change some aspects of the feature. For information on what aspects you can change, see the "Configurable MPLS Safe Label Reuse Parameters" section.
Note
A switchover restart in MPLS SSO mode will not result in incorrect label reuse because MPLS SSO saves local label bindings across SSO switchovers. However, a router configured in SSO mode might leave SSO mode. While the router operates in non-SSO mode it is at risk for unsafe label reuse should it restart unless the MPLS Safe Label Reuse feature is in use.
Note
MPLS SSO is not supported in Cisco IOS Release 12.0(32)SY.
Persistent Data for MPLS Safe Label Reuse
The router saves and records information about MPLS label usage as persistent data or pdata in the persistent-data file on the NVRAM device. Persistent data about MPLS labels is for groups of labels called label blocks. The persistent data for a label block is called a pblock. The pblock represents the usage state of the labels in the label block. The usage states for pblocks are:
•
In-use—The labels represented by the label block are in use by the MPLS label allocator. Immediately after a restart, the in-use blocks transition to the timing-out state.
•
Free—Label blocks not in use by the MPLS label allocator and available should the label allocator require more labels than available in the in-use label blocks. When the label allocator takes free label blocks, the blocks transition to the in-use state.
•
Timing-out—Label blocks that are not available for allocation until the safe-to-use timer expires. When the timer expires, timing-out blocks transition to the free state.
Immediately following a restart, the router reads the state of the pblocks from the persistent-data file to determine which pblocks, if any, are immediately available for use. The router confines label allocation to pblocks not in use before the restart until the safe-to-use timer expires. If all pblocks are in the in-use state when a restart occurs, no labels are available until the safe-to-use timer expires.
You might be running MPLS applications that require the use of most (or all) labels from the label space. If this is the case, immediately after a restart most (or all) label pblocks would be in the timing-out state and temporarily unavailable. The labels corresponding to these pblocks would not be available until the safe-to-use timer expires.
Note
The default label range is 16 to 100000, which makes 99985 labels available for use. You are unlikely to see delays in label allocation after a router restart, unless your label allocation requirements exceed 49,992. To avoid label allocation delays after a restart, configure a label space (mpls label range command) that is slightly more than twice the size of your label requirements.
Persistent Data for MPLS Safe Label Reuse Not Available at Router Restart
The first time that you download and use Cisco IOS Release12.0(32)SY or a later release that includes the MPLS Safe Label Reuse feature, no MPLS pdata is available at router restart. Hereafter, the router collects and stores information about label use in persistent memory.
You can disable the MPLS Safe Label Reuse feature with the mpls-label-restart configuration mode unsafe command. When you disable the feature, pdata is removed from the persistent data. The next time the router reloads, no pdata exists.
Another reason that pdata might not be available at router restart is a lack of space on the NVRAM device. The amount of pdata the MPLS Safe Label Reuse feature stores in the persistent-data file to track label usage is small. The persistent-data file shares the NVRAM with the router startup configuration file. The Cisco IOS Release 12.0(32)SY implementation of the NVRAM file system gives priority to the startup configuration file. If you save a large running configuration file that requires the entire NVRAM, the configuration file overwrites the persistent-data file.
Configurable MPLS Safe Label Reuse Parameters
The MPLS Safe Label Reuse After Router Restart feature is enabled by default in Cisco IOS Release 12.0(32)SY and later releases. Even though no configuration is required, you can disable the feature and change some parameters that govern its operation.
You Can Disable the Feature
You might want to disable the feature if:
•
The problem of unsafe MPLS label reuse following a router restart is unlikely to occur in your network.
•
The number of MPLS labels available immediately after restart does not meet the need for labels in your network and you are willing to accept the possibility that MPLS traffic might be misforwarded for a short period following a router restart.
See the "Disabling and Reenabling MPLS Safe Label Reuse" section for instructions on disabling the MPLS Safe Label Reuse After Router Restart feature.
You Can Change Timeout Values
Preventing unsafe label reuse depends on a safe-to-use timeout. You can change the timeout values used when a router restarts. There are two timeout values: one used when there is persistent data recording label use prior to the restart and one used when there is not. The default timeout for both is 3 minutes, and you can configure each one.
You might want to change these values to account for the rate at which neighbor routers in your network update their forwarding tables to remove labels learned from the restarting router. For example:
•
If all the neighbor routers are known to be able to detect the restart and to clear stale forwarding information within 30 seconds, then you would want to reduce the timeouts accordingly.
•
If one of the neighbors is known to take 6 minutes to detect the restart and to clear stale forwarding information, you would want to increase the timeout values.
See the "Setting the MPLS Safe Label Reuse Timeouts" section for instructions for setting the timeout period for safe MPLS label reuse.
You Can Set Router Behavior When No Pdata Exists at Restart
If no record of previous label use exists, the default behavior is for the router to proceed as though all MPLS labels were in use before the restart and prevent the allocation of any label until the safe-to-reuse timer expires. You might want to change the router behavior to proceed as though no labels were in use before the reload for the same reasons that you might want to disable the feature:
•
The problem of unsafe MPLS label reuse following a router restart is unlikely to occur in your network.
•
The number of MPLS labels available immediately after restart does not meet the need for labels in your network and you are willing to accept the possibility that MPLS traffic might be misforwarded for a short period following a router restart.
See the "Setting Router Behavior When No Record of MPLS Label Usage Exists" section for information on choosing how the router should proceed when no record of previous label usage exists.
You Can Change the Label Allocation Algorithm
You can also select the method by which the MPLS label allocator allocates pblocks and the labels corresponding to the pblocks. If you do not explicitly configure an allocation algorithm, the platform specifies the default algorithm to be used. Table 1 describes the allocation algorithms provided by the MPLS Safe Label Reuse After Router Restart feature.
See the "Setting the Allocation Algorithm for MPLS Safe Label Reuse" section for information on how to configure an allocation algorithm.
Features Supported for MPLS Safe Label Reuse After Router Restart
MPLS Safe Label Reuse After Router Restart supports the following features for Cisco IOS Release 12.0(32)SY and later releases:
•
All MPLS platforms
•
Single and dual RP configurations
•
Redundancy modes: route processor redundancy (RPR), RPR+, MPLS SSO coexistence, and SSO
•
Any-version-to-any-version restarts, including non-In-Service Software Upgrade (ISSU)- capable-to-ISSU-capable restarts and vice versa
Note
MPLS SSO and ISSU are not supported in Cisco IOS Release 12.0(23)SY.
How to Configure MPLS Safe Label Reuse Parameters
The MPLS Safe Label Reuse feature is enabled by default with Cisco IOS Release 12.0(32)SY and later releases. The MPLS Safe Label Reuse feature ensures the safe reuse of MPLS labels after a router restart.
The following sections describe how to disable and reenable the MPLS Safe Label Reuse feature and how to change configurable parameters for the feature:
•
Disabling and Reenabling MPLS Safe Label Reuse (optional)
•
Setting the MPLS Safe Label Reuse Timeouts (optional)
•
Setting Router Behavior When No Record of MPLS Label Usage Exists (optional)
•
Setting the Allocation Algorithm for MPLS Safe Label Reuse (optional)
•
Displaying Information About MPLS Label Usage (optional)
Disabling and Reenabling MPLS Safe Label Reuse
Perform the following tasks to disable and reenable the MPLS Safe Label Reuse After Router Restart feature.
•
Disabling MPLS Safe Label Reuse
•
Reenabling MPLS Safe Label Reuse
Disabling MPLS Safe Label Reuse
Perform the following task to disable safe MPLS label reuse after a router restart. You might want to disable the MPLS Safe Label Reuse feature if:
•
You judge your network is not susceptible to unsafe label reuse (for example, because you know that neighbor routers always discard the labels learned from a restarting router more quickly than it takes the router to restart).
•
Most or all MPLS labels must be available immediately following a router restart to meet the label allocation needs of your network regardless of the risk of temporarily misforwarding MPLS traffic.
Prerequisites
You must be using Cisco IOS Release 12.0(32)SY or a later release that supports the MPLS Safe Label Reuse After Router Restart feature.
SUMMARY STEPS
1.
enable
2.
configure terminal
3.
mpls label restart
4.
unsafe
5.
end
DETAILED STEPS
Reenabling MPLS Safe Label Reuse
Perform the following task to reenable MPLS safe label reuse after a router restart. You might want to reenable the MPLS Safe Label Reuse feature if after disabling the feature you judge that your network might be susceptible to temporary unsafe label reuse and that the risk is not acceptable.
Prerequisites
You must be using Cisco IOS Release 12.0(32)SY or a later release that supports the MPLS Safe Label Reuse After Router Restart feature.
SUMMARY STEPS
1.
enable
2.
configure terminal
3.
mpls label restart
4.
no unsafe
5.
end
DETAILED STEPS
Setting the MPLS Safe Label Reuse Timeouts
Perform the following tasks to set the MPLS safe label reuse timeouts:
•
Setting the MPLS Safe Label Reuse Timeout When Persistent Data Is Found
•
Setting the MPLS Safe Label Reuse Timeout When Persistent Data Is Not Found
You might want to change the timeout values to account for the rate at which neighbor routers in your network update their forwarding tables to remove labels learned from the restarting router. For example:
•
If all the neighbor routers are known to be able to detect the restart and to clear stale forwarding information within 30 seconds, then you would want to reduce the timeouts accordingly.
•
If one of the neighbors is known to take 6 minutes to detect the restart and to clear stale forwarding information, you would want to increase the timeout values.
Setting the MPLS Safe Label Reuse Timeout When Persistent Data Is Found
Perform the following task to set the MPLS safe label reuse timeout when the router finds persistent data that describes MPLS label usage.
SUMMARY STEPS
1.
enable
2.
configure terminal
3.
mpls label restart
4.
pdata present timeout seconds
5.
end
DETAILED STEPS
Setting the MPLS Safe Label Reuse Timeout When Persistent Data Is Not Found
Perform the following task to set the MPLS safe label reuse timer when the router does not find persistent data that describes MPLS label usage.
SUMMARY STEPS
1.
enable
2.
configure terminal
3.
mpls label restart
4.
pdata absent timeout seconds
5.
end
DETAILED STEPS
Setting Router Behavior When No Record of MPLS Label Usage Exists
Perform the following task to set router behavior when no record of MPLS label usage exists.
The default behavior in this situation is for the router to proceed as if all MPLS labels were in use before the router restarts. This means that no MPLS labels are available after the restart until a safe-to-reuse timer expires.
If you change the state of all MPLS labels to the free state, all labels are available immediately after the restart, but you risk temporarily unsafe label reuse. Packets meant for one destination might be forwarded to a different destination temporarily. You might configure the router to consider all MPLS labels to be in the free state when the router finds no label usage record if:
•
You judge that the risk of restarting without regard to previous label usage is acceptable the few times MPLS pdata might not be available.
•
Your network is not at risk for incorrectly forwarded packets due to the premature reuse of labels following a restart.
•
You require more MPLS labels be available immediately following a router restart than the MPLS Safe Label Reuse After Router Restart feature permits.
SUMMARY STEPS
1.
enable
2.
configure terminal
3.
mpls label restart
4.
pdata absent state free
5.
end
DETAILED STEPS
Setting the Allocation Algorithm for MPLS Safe Label Reuse
Perform the following tasks to set the algorithm to use for the allocation of MPLS labels.
Refer to the "Configurable MPLS Safe Label Reuse Parameters" section for a description of the available allocation algorithms.
SUMMARY STEPS
1.
enable
2.
configure terminal
3.
mpls label restart
4.
allocation {exhaust-available | dense | fractional}
5.
end
DETAILED STEPS
Command or Action PurposeStep 1
enable
Example:Router> enable
Enables privileged EXEC mode.
•
Enter your password if prompted.
Step 2
configure terminal
Example:Router# configure terminal
Enters global configuration mode.
Step 3
mpls label restart
Example:Router(config)# mpls label restart
Enters mpls-label-restart configuration mode to configure parameter settings that govern MPLS label usage following a router restart.
Step 4
allocation {exhaust-available | dense | fractional}
Example:Router(mpls-label-restart)# allocation fractional
Sets the algorithm that the MPLS label allocator uses to allocate pblocks and labels. For a description of the exhaust-available, dense, and fractional algorithms, see the "Configurable MPLS Safe Label Reuse Parameters" section.
To revert to the default algorithm for the platform, use the no allocation command.
Step 5
end
Example:Router(mpls-label-restart)# end
Exits to privileged EXEC mode.
Displaying Information About MPLS Label Usage
Perform the following task to display information about safe MPLS label usage.
SUMMARY STEPS
1.
enable
2.
show mpls label restart
3.
debug mpls pdata restart
4.
exit
DETAILED STEPS
Step 1
enable
Use this command to enable privileged EXEC mode. Enter a password, if required. For example:
Router> enableRouter#Step 2
show mpls label restart
Use this command to display information related to preventing incorrect MPLS label reuse following a router restarts. For example:
Router# show mpls label restart detailConfiguration:Protection enabledSafe to reuse timeouts pdata present: 300 sec; absent: 300 secState pdata absent: InUse;Pblock label alloc method (default is exhaust-available):Exhaust (allocate all labels from InUse pblocks first)State: unsafe to reuse; unsafe time remaining: 143 secPBlocks:Number 32; Prior usage: 6; Inuse: 16; Free: 10; Timingout: 6PBlock allocs/failures before safe: 2/0States (U InUse; F Free; T TimingOut; P InUsePending):[0-31] T T T T T T U U U U U U U U U U U U U U U U F F F F F F F F F FLabel space: [16,200]; Total labels: 185Available: 89; Allocated: 52; Free 37This sample output provides the following information about MPLS safe label reuse:
•
The mechanism to ensure safe MPLS label reuse after a router restart is enabled.
•
The safe-to-reuse timer to use is set to 300 seconds, both when label use pdata is found on restart and when it is not.
•
The state of all MPLS labels in the absence of persistent data is in-use and the labels are unavailable until the timeout expires in 143 seconds.
•
The default platform allocation algorithm is Exhaust Available.
•
The label allocation algorithm is Exhaust Available (allocate all labels from the in-use pblocks first).
•
The MPLS label usage information recorded in the persistent data file.
Step 3
debug mpls pdata restart
Use this command to display debug output that traces actions related to the management and use of MPLS persistent data that controls label use following a router restart. For example:
Router# debug mpls pdata restart16:55:14.699: mpdm: safe to reuse timer16:55:14.699: mpdm: safe to reuse timeout transaction16:55:14.699: mpdm: need to update pdata file16:55:14.699: mpdm: encode in-mem pblock db16:55:14.699: mpdm: aggr set 0: F F F F F F U U U U U U U U U U U U U U U U F F F F F F F F F F16:55:14.699: mpdm: p-data updated16:55:14.699: mpdm: pdata write completion transaction16:55:49.015: mpdm: periodic timer16:55:49.015: mpdm: kill mpdm process16:55:49.015: mpdm: cleanup mpdm process16:56:27.059: mpdm: pblock alloc transaction16:56:27.059: mpdm: need to update pdata file16:56:27.059: mpdm: encode in-mem pblock db16:56:27.059: mpdm: aggr set 0: U U U U F F U U U U U U U U U U U U U U U U F F F F F F F F F F16:56:27.059: mpdm: start mpls pdata process16:56:27.099: mpdm: init mpls pdata process16:56:27.099: mpdm: p-data updated16:56:27.099: mpdm: pdata write completion transaction16:56:27.099: mpdm: mpls_pblocks_avail(aggrset 0, modulo 32)16:56:27.099: mpdm: region 0 new submaps/pblocks: [0] [1] [2] [3]16:56:29.623: mpdm: pblock alloc transaction16:56:29.623: mpdm: need to update pdata file16:56:29.623: mpdm: encode in-mem pblock db16:56:29.623: mpdm: aggr set 0: U U U U U U U U U U U U U U U U U U U U U U U U F F F F F F F F16:56:29.631: mpdm: p-data updated16:56:29.631: mpdm: pdata write completion transaction16:56:29.631: mpdm: mpls_pblocks_avail(aggrset 0, modulo 32)16:56:29.631: mpdm: region 0 new submaps/pblocks: [4] [5] [22] [23]...This sample output provides the following information about MPLS safe label reuse and label allocation:
•
What happens when the safe-to-reuse timer expires (time 16:55:14.699: the pdata file is updated with the new state: FFFFFFUUU. . .FFF (F represents pblocks in the free state, U represents pblocks in the in-use state)
•
A periodic (1 minute) timer expires and notices that the process (mpdm process) used to write to the persistent data file is no longer needed (time 16:55:49.015)
The following two processes are repeated when the label allocator needs more new pblocks (times 16:56:29.623 and 16:56:29.631):
•
The label allocator needs new pblocks; the allocation of pblocks requires an update to the persistent data file; the update requires the mpdm process that is created (time 16:56:27.059)
•
The mpdm process updates the persistent data file; the label manager is notified that the new pblocks it requested are available (time 16:56:27.099)
Step 4
exit
Use this command to exit to user EXEC mode. For example:
Router# exitRouter>
Configuration Examples for MPLS Safe Label Reuse
This section contains the following configuration examples for safe MPLS label reuse:
•
Disabling and Reenabling MPLS Safe Label Reuse: Example
•
Setting the MPLS Safe Label Reuse Timeouts: Example
•
Setting Router Behavior When No Record of MPLS Label Usage Exists: Example
•
Setting the Allocation Algorithm for MPLS Safe Label Reuse: Example
Disabling and Reenabling MPLS Safe Label Reuse: Example
The following configuration example shows how to disable and reenable safe MPLS label reuse.
To disable the MPLS Safe Label Reuse After Router Restart feature:
configure terminal!mpls label restartunsafeendTo reenable the MPLS Safe Label Reuse After Router Restart feature:
configure terminal!mpls label restartno unsafeendSetting the MPLS Safe Label Reuse Timeouts: Example
The following configuration examples show how to set the MPLS safe label reuse timeouts:
•
Setting the MPLS Safe Label Reuse Timeout When Persistent Data Is Found: Example
•
Setting the MPLS Safe Label Reuse Timeout When Persistent Data Is Not Found: Example
Setting the MPLS Safe Label Reuse Timeout When Persistent Data Is Found: Example
The following example shows how to set the MPLS safe label reuse timeout when persistent data is found:
configure terminal!mpls label restartpdata present timeout 250endThe safe-to-reuse timer is set to 250 seconds.
Setting the MPLS Safe Label Reuse Timeout When Persistent Data Is Not Found: Example
The following example shows how to set the MPLS safe label reuse timeout when persistent data is not found:
configure terminal!mpls label restartpdata absent timeout 250endThe safe-to-reuse timer is set to 250 seconds.
Setting Router Behavior When No Record of MPLS Label Usage Exists: Example
The following configuration example shows how to set the router behavior when no record of MPLS label usage exists. The default is for the router to proceed as though all MPLS labels were in use prior to the router restart and therefore unavailable until the safe-to reuse timer expires.
This example shows how to set router behavior to proceed as though all labels are available for allocation immediately following a router restart:
configure terminal!mpls label restartpdata absent state freeendTo return to the default router behavior (all labels are considered to have been in use prior to restart when there is no record of label usage), enter the following:
configure terminal!mpls label restartno pdata absent stateendSetting the Allocation Algorithm for MPLS Safe Label Reuse: Example
The following example shows how to set the allocation algorithm for MPLS safe label reuse:
configure terminal!mpls label restartallocation fractionalendThis example sets the Fractional algorithm for the allocation of MPLS labels by the MPLS label allocator. For a description of the available algorithms, see the "Configurable MPLS Safe Label Reuse Parameters" section.
Additional References
The following sections provide references related to the MPLS Safe Label Reuse After Router Restart feature.
Related Documents
Related Topic Document TitleTasks and concepts related to MPLS and MPLS applications
Cisco IOS Multiprotocol Label Switching Configuration Guide, Release 12.4
Standards
Standard TitleNo new or modified standards are supported by this feature, and support for existing standards has not been modified by this feature.
—
MIBs
RFCs
RFC TitleNo new or modified RFCs are supported by this feature, and support for existing RFCs has not been modified by this feature.
—
Technical Assistance
Command Reference
This section documents new commands only.
allocation
To configure the algorithm that the Multiprotocol Label Switching (MPLS) label allocator uses to allocate persistent blocks (pblocks) and labels, use the allocation command in mpls-label-restart configuration mode. To revert to the platform default allocation, use the no form of this command.
allocation {exhaust-available | dense | fractional}
no allocation
Syntax Description
Command Default
The default allocation method varies from one platform to another. See the "Usage Guidelines" for more information.
Command Modes
mpls-label-restart configuration
Command History
Usage Guidelines
Use this command to configure an algorithm for MPLS label allocation. If you do not configure one, the platform uses its default algorithm. The default algorithm for your platform is displayed in the output of the show mpls label restart command. It is displayed in parentheses, as follows:
Pblock label alloc method (default is exhaust-available): <--- Platform default methodFractional (allocate from lower half of label space when possible) <--- Configured methodSelect the exhaust-available keyword to makes more pblocks available following router restart than the other label allocations algorithms at the cost of a sparsely allocated label space. With the exhaust-available algorithm, the MPLS label allocator requests more blocks only after it has allocated all labels from those in the in-use state and uses no more pblocks than are needed to meet application label requirements.
Select the dense keyword to create a more densely allocated label space. However, the label allocator uses all pblocks. This increases the likelihood of label allocation delays until the safe-to-reuse timer expires following router restart.
Select the fractional keyword as a compromise between the Exhaust Available algorithm (selected with the exhaust-available keyword) and the Dense algorithm (selected with the dense keyword), it:
•
Provides a label space less densely populated than the Dense algorithm does, but more densely populated than the Exhaust Available algorithm does.
•
Tends to use fewer pblocks than the Dense algorithm does, but more pblocks than the Exhaust Available algorithm does.
•
Leaves more available pblocks for immediate use following restart than the Dense algorithm does and fewer pblocks available for immediate use following restart than the Exhaust Available algorithm does.
Examples
The following example shows how to configure the Fractional algorithm for label allocation by the MPLS label allocator:
configure terminalmpls label restartallocation fractionalRelated Commands
Command Descriptionmpls label restart
Enters mpls-label-restart configuration mode to configure parameter settings that govern MPLS label usage following a router restart.
debug mpls pdata restart
To enable debug output that traces actions related to the MPLS Safe Label Reuse After Router Restart feature, use the debug mpls pdata restart command in user EXEC or privileged EXEC mode. To disable debug output related to the MPLS Safe Label Reuse After Router Restart feature, use the no form of this command.
debug mpls pdata restart [detail]
no debug mpls pdata restart [detail]
Syntax Description
detail
(Optional) Enables additional debug output related to the MPLS Safe Label Reuse After Router Restart feature.
Command Default
Debugging is disabled.
Command Modes
User EXEC
Privileged EXECCommand History
Usage Guidelines
Use this command to display information about the Multiprotocol Label Switching (MPLS) label reuse activities following a router restart.
Examples
The following is sample output from the debug mpls pdata restart command. This examples shows the following debug output:
•
What happens when the safe-to-reuse timer expires (time 16:55:14.699: the persistent data or pdata file is updated with the new state: FFFFFFUUU. . .FFF (F represents pblocks in the free state, U represents pblocks in the in-use state).
•
A periodic (1 minute) timer expires and notices that the process (mpdm process) used to write to the persistent data file is no longer needed (time 16:55:49.015)
The following two processes are repeated when the label allocator needs more new pblocks (times 16:56:29.623 and 16:56:29.631):
•
The label allocator needs new pblocks; the allocation of pblocks requires an update to the persistent data file; the update requires the mpdm process that is created (time 16:56:27.059)
•
The mpdm process updates the persistent data file; the label manager is notified that the new pblocks it requested are available (time 16:56:27.099)
Router# debug mpls pdata restart16:55:14.699: mpdm: safe to reuse timer16:55:14.699: mpdm: safe to reuse timeout transaction16:55:14.699: mpdm: need to update pdata file16:55:14.699: mpdm: encode in-mem pblock db16:55:14.699: mpdm: aggr set 0: F F F F F F U U U U U U U U U U U U U U U U F F F F F F F F F F16:55:14.699: mpdm: p-data updated16:55:14.699: mpdm: pdata write completion transaction16:55:49.015: mpdm: periodic timer16:55:49.015: mpdm: kill mpdm process16:55:49.015: mpdm: cleanup mpdm process16:56:27.059: mpdm: pblock alloc transaction16:56:27.059: mpdm: need to update pdata file16:56:27.059: mpdm: encode in-mem pblock db16:56:27.059: mpdm: aggr set 0: U U U U F F U U U U U U U U U U U U U U U U F F F F F F F F F F16:56:27.059: mpdm: start mpls pdata process16:56:27.099: mpdm: init mpls pdata process16:56:27.099: mpdm: p-data updated16:56:27.099: mpdm: pdata write completion transaction16:56:27.099: mpdm: mpls_pblocks_avail(aggrset 0, modulo 32)16:56:27.099: mpdm: region 0 new submaps/pblocks: [0] [1] [2] [3]16:56:29.623: mpdm: pblock alloc transaction16:56:29.623: mpdm: need to update pdata file16:56:29.623: mpdm: encode in-mem pblock db16:56:29.623: mpdm: aggr set 0: U U U U U U U U U U U U U U U U U U U U U U U U F F F F F F F F16:56:29.631: mpdm: p-data updated16:56:29.631: mpdm: pdata write completion transaction16:56:29.631: mpdm: mpls_pblocks_avail(aggrset 0, modulo 32)16:56:29.631: mpdm: region 0 new submaps/pblocks: [4] [5] [22] [23]Related Commands
mpls label restart
To enter mpls-label-restart configuration mode to configure parameter settings that govern Multiprotocol Label Switching (MPLS) label usage following a router restart, use the mpls label restart command in global configuration mode. To return all configurable settings to their default settings, use the no form of this command.
mpls label restart
no mpls label restart
Syntax Description
This command has no arguments or keywords.
Command Default
mpls-label-reuse configuration mode is disabled.
Command Modes
Global configuration
Command History
Usage Guidelines
Use this command to enter mpls-label-restart configuration mode. In this configuration mode, you can enter commands to change the parameters that govern label usage following a router restart, such as the safe-to-use timeout, router behavior when no previous record of label use exists, and the allocation algorithm used by the MPLS label allocator.
To exit mpls-label-restart configuration mode, use the exit or end command.
Examples
The following example shows how to enter mpls-label-restart configuration mode:
configure terminalmpls label restartRelated Commands
pdata absent state free
To set the state of all Multiprotocol Label Switching (MPLS) labels to the free state when no persistent data describing previous MPLS label usage is found during a router restart, use the pdata absent state free command in mpls-label-restart configuration mode. To return to the default state, use the no form of this command.
pdata absent state free
no pdata absent state [free]
Syntax Description
This command has no arguments or keywords.
Command Default
The default state for all MPLS labels is in-use when persistent data describing previous MPLS label usage is not found during a router restart.
Command Modes
mpls-label-restart configuration
Command History
Usage Guidelines
Use this command to instruct a restarting router to proceed as though no labels were in use or all labels were free before the router restart when it finds no MPLS label usage persistent data or pdata.
The default behavior when no label usage persistent data is found when the router restarts is to assume that all MPLS labels were in use before the restart. In this case, no labels are available for allocation until the safe-to-use timer expires.
You might want to change the router behavior to proceed as though no labels were in use before the reload because the problem of unsafe MPLS label reuse following a router restart is unlikely to occur, and if it does, you are willing to accept the possibility of temporarily unsafe label allocation.
Examples
The following example shows how to change the state for all MPLS labels to be free when persistent data describing label usage is not found during a router restart:
configure terminalmpls label restartpdata absent state freeRelated Commands
pdata absent timeout
To set the timeout value for safe Multiprotocol Label Switching (MPLS) label reuse when a restarting router does not find persistent data that describes label usage before the restart, use the pdata absent timeout command in mpls-label-restart configuration mode. To restore the default timeout value, use the no form of this command.
pdata absent timeout seconds
no pdata absent timeout
Syntax Description
Command Default
The default MPLS label reuse timeout value is 180 seconds.
Command Modes
mpls-label-restart configuration
Command History
Usage Guidelines
Routers using Cisco IOS Release 12.0(32)SY and later releases that support the safe-to-reuse MPLS timers are capable of detecting when no MPLS persistent data or pdata is recorded in the persistent data file. Use this command to set a safe-to-reuse timeout for MPLS labels following a router restart when the router finds no MPLS persistent data.
The timeout configured with this command specifies the time to wait before allowing label allocation following a router restart when no label usage information is found in persistent data and the label usage state is configured to be in-use (the default). In this situation, the router will not allocate any labels until the safe-to-reuse timer expires.
You might want to change the default timeout value to account for the rate at which neighbor routers in your network update their forwarding tables to remove labels learned from the restarting router. For example:
•
If all the neighbor routers are known to be able to detect the restart and to clear stale forwarding information within 30 seconds, then you would want to reduce the timeout value accordingly.
•
If one of the neighbors is known to take 6 minutes to detect the restart and to clear stale forwarding information, you would want to increase the timeout value.
The timeout value set by this command can be different from the timeout value used when the router finds MPLS persistent data.
Examples
The following example shows how to set the timeout value for MPLS safe label reuse to 200 seconds when a restarting router does not find persistent data that describes label usage before the restart:
configure terminalmpls label restartpdata absent timeout 200Related Commands
pdata present timeout
To set the timeout value for safe Multiprotocol Label Switching (MPLS) label reuse following a restart when the router finds persistent data that describes label usage before the restart, use the pdata present timeout command in mpls-label-restart configuration mode. To restore the default timeout value, use the no form of this command.
pdata present timeout seconds
no pdata present timeout
Syntax Description
Command Default
The default MPLS label reuse timeout value is 180 seconds.
Command Modes
mpls-label-restart configuration
Command History
Usage Guidelines
Devices using Cisco IOS Release 12.0(32)SY and later releases that support the safe-to-reuse MPLS timers are capable of detecting when MPLS persistent data or pdata is recorded in the persistent data file. Use this command to set the safe-to-reuse timeout for MPLS labels following a router restart when the router finds MPLS persistent data.
The restarting router inspects the state of the MPLS label blocks to determine which blocks, if any, are available for allocation. The router confines label allocation to label blocks that were not in use before the restart and avoids using blocks that were in use until a safe-to-reuse timer expires.
Use the pdata present timeout command to set the safe-to-reuse timeout for the label blocks that the router determined were in the in-use state before the restart. If all label blocks are in the in-use state, no labels are available for allocation until the safe-to-reuse timer expires.
You might want to change the default timeout value to account for the rate at which neighbor routers in your network update their forwarding tables to remove labels learned from the restarting router. For example:
•
If all the neighbor routers are known to be able to detect the restart and to clear stale forwarding information within 30 seconds, then you would want to reduce the timeout value accordingly.
•
If one of the neighbors is known to take 6 minutes to detect the restart and to clear stale forwarding information, you would want to increase the timeout value.
The timeout value set by this command can be different from the timeout value used when the router finds no MPLS persistent data.
Examples
The following example shows how to set the safe-to-reuse MPLS label timeout value to 240 seconds:
configure terminalmpls label restartpdata present timeout 240Related Commands
show mpls label restart
To display information related to preventing unsafe Multiprotocol Label Switching (MPLS) label reuse following a router restart, use the show mpls label restart command in user EXEC or privileged EXEC mode.
show mpls label restart [detail]
Syntax Description
detail
(Optional) Displays more detailed information related to safe label reuse following a router restart.
Command Modes
User EXEC
Privileged EXECCommand History
Usage Guidelines
Use this command to display the settings configured to ensure safe MPLS label reuse after a router restart, whether the safe-to-use timer has elapsed and, if not, how much time is remaining until it elapses, label information recorded in the persistent data file, and information about label allocation, such as the the pblocks in use and the next labels to be allocated. (The pblock represents the usage state of the labels in the label block.)
Examples
The following is sample output from the show mpls label restart command:
Router# show mpls label restartConfiguration:Protection enabledSafe to reuse timeouts pdata present: 300 sec; absent: 300 secState pdata absent: InUse;Pblock label alloc method (default is exhaust-available):Exhaust (allocate all labels from InUse pblocks first)State: unsafe to reuse; unsafe time remaining: 443 secPBlocks:Number 32; Prior usage: 6; Inuse: 16; Free: 10; Timingout: 6PBlock allocs/failures before safe: 2/0States (U InUse; F Free; T TimingOut; P InUsePending):[0-31] T T T T T T U U U U U U U U U U U U U U U U F F F F F F F F F FLabel space: [16,200]; Total labels: 185Available: 89; Allocated: 52; Free 37Table 2 describes the significant fields shown in the display.
The following is sample output from the show mpls label restart detail command:
Router# show mpls label restart detailConfiguration:Protection enabledSafe to reuse timeouts pdata present: 300 sec; absent: 300 secState pdata absent: InUse;Pblock label alloc method (default is exhaust-available):Exhaust (allocate all labels from InUse pblocks first)State: unsafe to reuse; unsafe time remaining: 443 secPBlocks:Number 32; Prior usage: 6; Inuse: 16; Free: 10; Timingout: 6PBlock allocs/failures before safe: 2/0States (U InUse; F Free; T TimingOut; P InUsePending):[0-31] T T T T T T U U U U U U U U U U U U U U U U F F F F F F F F F FLabel space: [16,200]; Total labels: 185Available: 89; Allocated: 52; Free 37Following is the additional information provided when you enter the command with the detail keyword:
Label Allocation StateFirst Last Next LabelsPBlk State Label Label Label Total Free6 InUse 38 198 - 6 07 InUse 39 199 - 6 08 InUse 40 200 - 6 09 InUse 41 169 - 5 010 InUse 42 170 - 5 011 InUse 43 171 - 5 012 InUse 44 172 108 5 313 InUse 45 173 109 5 314 InUse 46 174 110 5 315 InUse 47 175 79 5 416 InUse 16 176 80 6 417 InUse 17 177 81 6 418 InUse 18 178 82 6 419 InUse 19 179 83 6 420 InUse 20 180 84 6 421 InUse 21 181 85 6 4Table 3 describes the significant fields shown in the display.
Related Commands
unsafe
To disable the mechanism that prevents unsafe Multiprotocol Label Switching (MPLS) label reuse after a router restart, use the unsafe command in mpls-label-restart configuration mode. To reenable this mechanism, use the no form of this command.
unsafe
no unsafe
Syntax Description
This command has no arguments or keywords.
Command Default
MPLS safe label reuse is enabled.
Command Modes
mpls-label-restart configuration
Command History
Usage Guidelines
Use this command to disable the mechanism that ensures safe MPLS label reuse after a router restart. The router removes MPLS label use information from the persistent data file and no longer tracks it.
Use the no form of the command to reenable safe MPLS label reuse. Following the next restart, the router again tracks and records MPLS label use information in the persistent data file to ensure safe label reuse following a router restart.
Examples
The following example shows how to disable safe MPLS label reuse after a router restart:
configure terminalmpls label restartunsafeRelated Commands
Command Descriptionmpls label restart
Enters mpls-label-restart configuration mode to configure parameter settings that govern MPLS label usage following a router restart.
Glossary
FEC—Forwarding Equivalence Class. A term defined by the Internet Engineering Task force (IETF) for the set of packets forwarded in the same way by a router. An example of an FEC is the set of IP packets with destination addresses that match a prefix in a router routing table.
label block—A generic term for a set of Multiprotocol Label Switching (MPLS) labels. The precise meaning depends on the context.
pblock—A persistent data object that records the state of a label block.
pdata—persistent data. Data that survives a router restart. Data that is stored in a persistent data file in the Cisco IOS file system.
RP—Route Processor. A generic term for the centralized control unit in a chassis. Platforms usually use a platform-specific term, such as RSP on the Cisco 7500, the PRE on the Cisco 10000, or the SUP+MSFC on the Cisco 7600.
SSO—stateful switchover. SSO refers to the implementation of Cisco IOS software that allows applications and features to maintain a defined state between an active and standby RP. When a switchover occurs, forwarding and sessions are maintained. Along with NSF, SSO makes an RP failure undetectable to the network.
Note
See Internetworking Terms and Acronyms for terms not included in this glossary.
Feature Information for MPLS Safe Label Reuse After Router Restart
Table 4 lists the release history for this feature.
Not all commands may be available in your Cisco IOS software release. For release information about a specific command, see the command reference documentation.
Cisco IOS software images are specific to a Cisco IOS software release, a feature set, and a platform. Use Cisco Feature Navigator to find information about platform support and Cisco IOS software image support. Access Cisco Feature Navigator at http://www.cisco.com/go/fn. You must have an account on Cisco.com. If you do not have an account or have forgotten your username or password, click Cancel at the login dialog box and follow the instructions that appear.
Note
Table 4 lists only the Cisco IOS software release that introduced support for a given feature in a given Cisco IOS software release train. Unless noted otherwise, subsequent releases of that Cisco IOS software release train also support that feature.
Table 4 Feature Information for MPLS Safe Label Reuse After Router Restart
Feature Name Releases Feature InformationMPLS Safe Label Reuse After Router Restart
12.0(32)SY
The MPLS Safe Label Reuse After Router Restart feature provides the means to preserve information about the state of Multiprotocol Label Switching (MPLS) label usage during normal router operation across a router restart. This ensures that the router avoids reusing labels that were in use before the restart until it is safe to do so. The MPLS Safe Label Reuse After Router Restart feature provides a more secure network by removing the possibility that network traffic is forwarded incorrectly during the short period following router restart.
The following sections provide information about this feature:
•
Safe Label Reuse After a Router Restart Feature Description
•
Persistent Data for MPLS Safe Label Reuse
•
Persistent Data for MPLS Safe Label Reuse Not Available at Router Restart
•
Configurable MPLS Safe Label Reuse Parameters
•
Features Supported for MPLS Safe Label Reuse After Router Restart
•
Disabling and Reenabling MPLS Safe Label Reuse
•
Setting the MPLS Safe Label Reuse Timeouts
•
Setting Router Behavior When No Record of MPLS Label Usage Exists
•
Setting the Allocation Algorithm for MPLS Safe Label Reuse
•
Displaying Information About MPLS Label Usage
The following commands were introduced by this feature: allocation, debug mpls pdata restart, mpls label restart, pdata absent state free, pdata absent timeout, pdata present timeout, show mpls label restart, unsafe.
Any Internet Protocol (IP) addresses used in this document are not intended to be actual addresses. Any examples, command display output, and figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses in illustrative content is unintentional and coincidental.
© 2006 Cisco Systems, Inc. All rights reserved.


