Cisco IOS XR Multiprotocol Label Switching Debug Command Reference, Release 3.5
MPLS Forwarding Debug Commands on Cisco IOS XR Software

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

Imposition:
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 
...
Swap:
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