Table Of Contents
MPLS Forwarding Debug Commands on Cisco IOS XR Software
debug mpls lsd
debug mpls lsd bcdl
debug mpls lsd fpi
debug mpls lsd lib
debug mpls packet
MPLS Forwarding Debug Commands on Cisco IOS XR Software
This chapter describes the commands used to debug Multiprotocol Label Switching (MPLS) Forwarding on Cisco IOS XR software.
debug mpls lsd
To display information related to Label Switching Database (LSD) interactions, use the debug mpls lsd command in EXEC mode. To disable debugging, use the no form of this command.
debug mpls lsd [chkpt | client | edm | errors | frr | im type instance | label state | process | redist
| rewrite state | timers]
no debug mpls lsd [chkpt | client | edm | errors | frr | im type instance | label state | process |
redist | rewrite state | timers]
Syntax Description
chkpt
|
(Optional) Displays info related to LSD interactions with the checkpoint infrastructure. Allocated labels are checkpointed and are recovered when the LSD process restarts.
|
client
|
(Optional) Displays calls by clients to the server.
|
edm
|
(Optional) Displays the External Data Manager (EDM) and access of LSD data using SysDB.
|
errors
|
(Optional) Displays LSD errors and unexpected events.
|
frr
|
(Optional) Displays fast reroute (FRR) events.
|
im
|
(Optional) Displays Interface Manager (IM) and interface-related event information.
|
type
|
Interface type. For more information, use the question mark (?) online help function.
|
instance
|
Either a physical interface instance or a virtual interface instance as follows:
• Physical interface instance. Naming notation is rack/slot/module/port and a slash between values is required as part of the notation.
– rack: Chassis number of the rack.
– slot: Physical slot number of the modular services card or line card.
– module: Module number. A physical layer interface module (PLIM) is always 0.
– port: Physical port number of the interface.
Note In references to a Management Ethernet interface located on a route processor card, the physical slot number is alphanumeric (RP0 or RP1) and the module is CPU0. Example: interface MgmtEth0/RP1/CPU0/0.
• Virtual interface instance. Number range varies depending on interface type.
For more information about the syntax for the router, use the question mark (?) online help function.
|
label state
|
(Optional) Displays label events and state changes.
|
process
|
(Optional) Displays LSD process startup and termination information.
|
redist
|
(Optional) Displays rewrite redistribution information.
|
rewrite state
|
(Optional) Displays rewrite events and state changes.
|
timers
|
(Optional) Displays LSD timers.
|
Defaults
No default behavior or values
Command Modes
EXEC
Command History
Release
|
Modification
|
Release 3.2
|
This command was introduced on the Cisco CRS-1 and Cisco XR 12000 Series Router.
|
Release 3.3.0
|
No modification.
|
Release 3.4.0
|
No modification.
|
Release 3.5.0
|
No modification.
|
Usage Guidelines
To use this command, you must be in a user group associated with a task group that includes the proper task IDs. For detailed information about user groups and task IDs, see the Configuring AAA Services on Cisco IOS XR Software module of the Cisco IOS XR System Security Configuration Guide.
Debugging output is assigned high priority in the CPU process and, therefore, can affect system performance. For more information about the impact on system performance when using debug commands, refer to Using Debug Commands on Cisco IOS XR Software.
Note
The debug mpls lsd command also acts as a submode that lets you enter command keywords and arguments without preceding this data with "debug mpls lsd."
Task ID
Task ID
|
Operations
|
mpls-te
|
read
|
mpls-ldp
|
read
|
mpls-static
|
read
|
Examples
The following example shows sample output for the debug mpls lsd command:
RP/0/RP0/CPU0:router# debug mpls lsd
RP/0/RP0/CPU0:router(debug-mpls-lsd)#errors
RP/0/RP0/CPU0:router(debug-mpls-lsd)#lib errors
RP/0/RP0/CPU0:router(debug-mpls-lsd)#bcdl ppi errors
RP/0/RP0/CPU0:router(debug-mpls-lsd)#
RP/0/RP0/CPU0:router(debug-mpls-lsd)#exit
RP/0/RP0/CPU0:router(debug)#exit
debug mpls lsd bcdl
To display Bulk Content DownLoader (BCDL) distribution information about MPLS forwarding entries sent to the forwarding layer, use the debug mpls lsd bcdl command in EXEC mode. To disable debugging, use the no form of this command.
debug mpls lsd bcdl ppi [errors] [location location]
no debug mpls lsd bcdl ppi [errors] [location location]
Syntax Description
ppi
|
Displays Bulk Content Downloader (BCDL) producer plugin (PPI) library information.
|
errors
|
(Optional) Displays errors and unexpected events in the LSD client library.
|
location location
|
(Optional) Displays output on a specified node. The location argument (node-id) is expressed in the rack/slot/module notation.
|
Defaults
No default behavior or values
Command Modes
EXEC
Command History
Release
|
Modification
|
Release 3.2
|
This command was introduced on the Cisco CRS-1 and Cisco XR 12000 Series Router.
|
Release 3.3.0
|
No modification.
|
Release 3.4.0
|
No modification.
|
Release 3.5.0
|
No modification.
|
Usage Guidelines
To use this command, you must be in a user group associated with a task group that includes the proper task IDs. For detailed information about user groups and task IDs, see the Configuring AAA Services on Cisco IOS XR Software module of the Cisco IOS XR System Security Configuration Guide.
Debugging output is assigned high priority in the CPU process and, therefore, can affect system performance. For more information about the impact on system performance when using debug commands, refer to Using Debug Commands on Cisco IOS XR Software.
The bcdl_agent process generates the associated debug messages. There is one bcdl_agent process dedicated to LSD. This process participates with LSD to distribute MPLS forwarding entries to the data plane.
Note
The debug mpls lsd command also acts as a submode that lets you enter command keywords and arguments without preceding this data with "debug mpls lsd."
Task ID
Task ID
|
Operations
|
mpls-te
|
read
|
mpls-ldp
|
read
|
mpls-static
|
read
|
Examples
The example shows sample output for the debug mpls lsd bcdl command using the ppi keyword to enable debugging for the MPLS LSD PPI library. In this example, the bcdl_agent process which communicates with LSD is restarted. Use the show proc bcdl agent command to view the Job ID of the particular bcdl_agent instance. The debug output shows that the bcdl_agent connects to LSD and reads six updates.
RP/0/RP0/CPU0:router# debug mpls lsd bcdl ppi
RP/0/RP0/CPU0:router#proc restart 112
RP/0/RP0/CPU0:router#RP/0/0/CPU0:Aug 10 13:40:57.224 : bcdl_agent[112]: DBG-BcdlPpi:
bcdl_open_func:234, pc=122, base_name=mpls_lsd, parent_conn=0
RP/0/0/CPU0:Aug 10 13:40:57.259: bcdl_agent[112]: DBG-BcdlPpi: bcdl_open_func:313, BA
connect success, datum=0x0, fd=0x10
RP/0/0/CPU0:Aug 10 13:40:58.260: bcdl_agent[112]: DBG-BcdlPpi: bcdl_read_func:386,
conn=8045234, len=63488
RP/0/0/CPU0:Aug 10 13:40:58.261: bcdl_agent[112]: DBG-BcdlPpi: bcdl_read_func:418, BA read
success, read_status=0x9, updates=6
debug mpls lsd fpi
To display debug info related to MPLS forwarding entries at the control plane, use the debug mpls lsd fpi command in EXEC mode. To use the no form of this command. To disable debugging, use the no form of this command.
debug mpls lsd fpi {label | ipv4 | te | admin | all}
no debug mpls lsd fpi {label | ipv4 | te | admin | all}
Syntax Description
label
|
Displays information about MPLS label swap forwarding.
|
ipv4
|
Displays information about LDP forwarding
|
te
|
Displays information about MPLS tunnel head forwarding
|
admin
|
Displays information about administrative control forwarding.
|
all
|
Displays all MPLS forwarding types.
|
Defaults
No default behavior or values
Command Modes
EXEC
Command History
Release
|
Modification
|
Release 3.2
|
This command was introduced on the Cisco CRS-1 and Cisco XR 12000 Series Router.
|
Release 3.3.0
|
No modification.
|
Release 3.4.0
|
No modification.
|
Release 3.5.0
|
No modification.
|
Usage Guidelines
To use this command, you must be in a user group associated with a task group that includes the proper task IDs. For detailed information about user groups and task IDs, see the Configuring AAA Services on Cisco IOS XR Software module of the Cisco IOS XR System Security Configuration Guide.
Debugging output is assigned high priority in the CPU process and, therefore, can affect system performance. For more information about the impact on system performance when using debug commands, refer to Using Debug Commands on Cisco IOS XR Software.
A large volume of debug messages may be generated when you create, modify, or delete multiple MPLS forwarding entries.
Task ID
Task ID
|
Operations
|
mpls-te
|
read
|
mpls-ldp
|
read
|
mpls-static
|
read
|
Examples
The example shows uses the debug mpls lsd fpi admin command to clear MPLS forwarding counters and the relative clear command to display the results.
RP/0/RP0/CPU0:router# debug mpls lsd fpi admin
RP/0/RP0/CPU0:Aug 10 14:13:44.043: mpls_lsd[315]: DBG-FPI-Admin:
lsd_admin_fpi_clear_stats:400, Adding Admin_FPI: 'clear_stats'
RP/0/RP0/CPU0:Aug 10 14:13:44.044: mpls_lsd[315]: DBG-FPI-Admin: admin_fpi_insert:155,
Rewrite=80b01a8 inserted (main thread) (code=0x3)
RP/0/RP0/CPU0:router# clear mpls forw counters
debug mpls lsd lib
To display Label Switching Database (LSD) client library events, use the debug mpls lsd lib command in EXEC mode. To disable debugging, use the no form of this command.
debug mpls lsd lib [errors] [process process] [location location]
no debug mpls lsd lib [errors] [process process] [location location]
Syntax Description
errors
|
(Optional) Displays calls made by clients to clients.
|
process process
|
(Optional) Display debug output generated by an LSD client process.
|
location location
|
(Optional) Displays output on a specified node. The location argument (node-id) is expressed in the rack/slot/module notation.
|
Defaults
No default behavior or values
Command Modes
EXEC
Command History
Release
|
Modification
|
Release 3.2
|
This command was introduced on the Cisco CRS-1 and Cisco XR 12000 Series Router.
|
Release 3.3.0
|
No modification.
|
Release 3.4.0
|
No modification.
|
Release 3.5.0
|
No modification.
|
Usage Guidelines
To use this command, you must be in a user group associated with a task group that includes the proper task IDs. For detailed information about user groups and task IDs, see the Configuring AAA Services on Cisco IOS XR Software module of the Cisco IOS XR System Security Configuration Guide.
Debugging output is assigned high priority in the CPU process and, therefore, can affect system performance. For more information about the impact on system performance when using debug commands, refer to Using Debug Commands on Cisco IOS XR Software.
Debug messages are generated by the LSD client process.
Task ID
Task ID
|
Operations
|
mpls-te
|
read
|
Examples
The example shows sample output for the debug mpls lsd lib command. In the example, we enable debugging for the MPLS LSD client library (specifically for LDP). The debug output shows communication between LDP and LSD when LDP is configured for the first time, including one interface:
RP/0/RP0/CPU0:router# debug mpls lsd lib process mpls_ldp
RP/0/RP0/CPU0:router(config)#mpls ldp
RP/0/RP0/CPU0:router(config-ldp)#int pos 0/1/0/0
RP/0/RP0/CPU0:router(config-ldp-if)#end
Uncommitted changes found, commit them before exiting(yes/no/cancel)? [cancel]:yes
RP/0/0/CPU0:Aug 10 13:47:42.294: mpls_ldp[313]: DBG-Lib: lsd_connect:519, conn_info=0,
notify_fn=805d67c
RP/0/0/CPU0:Aug 10 13:47:42.328: mpls_ldp[313]: DBG-Lib: lsd_client_server_connect:292
RP/0/0/CPU0:Aug 10 13:47:42.344: mpls_ldp[313]: DBG-Lib: lsd_client_server_connect:339,
Connect successful after 1 attempt(s)
RP/0/0/CPU0:Aug 10 13:47:42.345: mpls_ldp[313]: DBG-Lib:
lsd_client_conn_notifier_handler:420, conn_info=7e000120, cond=0x1000
RP/0/0/CPU0:Aug 10 13:47:42.347: mpls_ldp[313]: DBG-Lib: lsd_mpls_app_register2:679,
flags=0x0, app_type=4, recovery=(300s,0ms)
RP/0/0/CPU0:Aug 10 13:47:42.356: mpls_ldp[313]: DBG-Lib: lsd_mpls_app_clean:2410,
flags=0x8
RP/0/0/CPU0:Aug 10 13:47:45.283: mpls_ldp[313]: DBG-Lib: lsd_mpls_interface_enable:785,
ifh=0x2000400
debug mpls packet
To display troubleshooting information for MPLS packet forwarding, use the debug mpls packet command in EXEC mode. To disable debugging, use the no form of this command.
debug mpls packet [detail | drop | location node-id]
no debug mpls packet [detail | drop | location node-id]
Syntax Description
detail
|
(Optional) Displays detailed information about internal data-structures.
|
drop
|
(Optional) Displays information about dropped packets.
|
location node-id
|
(Optional) Display debugging information for a given debug flag on a given node. The node-id argument is entered in the rack/slot/module notation.
|
d
Defaults
The default value is "all" (locations).
Command Modes
EXEC
Command History
Release
|
Modification
|
Release 3.2
|
This command was introduced on the Cisco CRS-1 and Cisco XR 12000 Series Router.
|
Release 3.3.0
|
No modification.
|
Release 3.4.0
|
No modification.
|
Release 3.5.0
|
No modification.
|
Usage Guidelines
To use this command, you must be in a user group associated with a task group that includes the proper task IDs. For detailed information about user groups and task IDs, see the Configuring AAA Services on Cisco IOS XR Software module of the Cisco IOS XR System Security Configuration Guide.
Debugging output is assigned high priority in the CPU process and, therefore, can affect system performance. For more information about the impact on system performance when using debug commands, refer to Using Debug Commands on Cisco IOS XR Software.
Use the debug mpls packet command when observing incorrect functionality or trying to debug problems related to MPLS packet forwarding.
Task ID
Task ID
|
Operations
|
mpls-te
|
read
|
mpls-ldp
|
read
|
mpls-static
|
read
|
Examples
The following example shows sample output from the debug mpls packet command for MPLS netio forwarding (imposition/swap/disposition):
RP/0/RP0/CPU0:router# debug mpls packet location 0/2/0
RP/0/RP0/CPU0:Aug 3 09:20:20.553: netio[54]: mpls_rewrite: IMPOSITION: proto 12 tos 0 eos
1 (pinf_ttl 255, ip_ttl 255)
RP/0/RP0/CPU0:Aug 3 09:20:20.553: netio[54]: mpls_rewrite: out_label 16, out_intf
POS0_2_0_0
RP/0/RP0/CPU0:ios#RP/0/RP0/CPU0:Aug 3 09:20:57.329: netio[54]: mpls_switch: received an
mpls packet on POS0_2_0_0 (old pnum 12)
RP/0/RP0/CPU0:Aug 3 09:20:57.330: netio[54]: mpls_switch: mpls in_label 16 tos 0 eos 1 ttl
254 len 136
RP/0/RP0/CPU0:Aug 3 09:20:57.331: netio[54]: mpls_fint_rewrite: gin_label=16, out_label=0
Dispostion (ultimate hop):
LC/0/1/0:Aug 3 09:36:01.892: netio[54]: mpls_switch: received an mpls packet on POS0_1_0_0
(old pnum 12)
LC/0/1/0:Aug 3 09:36:01.892: netio[54]: mpls_switch: mpls in_label 0 tos 0 eos 1 ttl 253
len 136
LC/0/1/0:Aug 3 09:36:01.893: netio[54]: mpls_switch: DISPOSITION (ultimate hop): out_if
encap chains for proto 12 (pinf_ttl 254, ip_ttl 254)
Dispostion (penultimate hop):
RP/0/RP0/CPU0:Aug 3 09:23:30.938: netio[54]: mpls_switch: received an mpls packet on
POS0_2_0_0 (old pnum 12)
RP/0/RP0/CPU0:Aug 3 09:23:30.938: netio[54]: mpls_switch: mpls in_label 16 tos 0 eos 1 ttl
254 len 136
RP/0/RP0/CPU0:Aug 3 09:23:30.940: netio[54]: mpls_fint_rewrite: POP
RP/0/RP0/CPU0:Aug 3 09:23:30.940: netio[54]: mpls_fint_rewrite: gin_label=16, out_label=3