Usage Guidelines
 
                           		
                           
                              
                                 |  Note
 | 
  It is recommended that you use the 
                                          		  mpls oam  global configuration command instead of this command. 
                                          		
                                        
 | 
                           
 
                           		
                            Use the 
                              		   
                                 			 ping mpls  command to validate, test, or troubleshoot IPv4 LDP LSPs, IPv4 Resource Reservation Protocol (RSVP) TE tunnels, and AToM
                              VCs. 
                              		
                           
 
                           		
                           With the introduction of Cisco IOS-XE Release 3.6, the 
                              		  interval  keyword value range changed from 0 to 3,600,000 ms to 0 or 100 to 3,600,000 ms between successive MPLS echo requests. 
                              		
                           
 
                           		
                            
                              		   UDP Destination Address Usage 
                              		
                           
 
                           		
                            The destination address is a valid 127/8 address. You have the option to specify a single x.y.z-address 
                                 		   or a range of numbers from 0.0.0 to 
                              		  x.y.z , where 
                              		  x , 
                              		  y , and 
                              		  z are numbers from 0 to 255 and correspond to the 127.x.y.z 
                                 		   destination address. 
                              		
                           
 
                           		
                            The MPLS echo request destination address in the UDP packet is not used to forward the MPLS packet to the destination router.
                              The label stack that is used to forward the echo request routes the MPLS packet to the destination router. The 127/8 address
                              guarantees that the packets are routed to the local host (the default loopback address of the router processing the address)
                              if the UDP packet destination address is used for forwarding. 
                              		
                           
 
                           		
                            In addition, the destination address is used to adjust load balancing when the destination address of the IP payload is used
                              for load balancing. 
                              		
                           
 
                           		
                            
                              		   Time-to-Live Usage 
                              		
                           
 
                           		
                            The time-to-live value indicates the maximum number of hops a packet should take to reach its destination. The value in the
                              TTL field in a packet is decremented by 1 each time the packet travels through a router. 
                              		
                           
 
                           		
                            For MPLS LSP ping, the TTL is a value after which the packet is discarded and an MPLS echo reply is sent back to the originating
                              router. 
                              		
                           
 
                           		
                            For MPLS multipath LSP traceroute, the TTL is a maximum time-to-live value and is used to discover the number of downstream
                              hops to the destination router. MPLS LSP traceroute incrementally increases the TTL value in its MPLS echo requests (TTL =
                              1, 2, 3, 4, ...) to accomplish this. 
                              		
                           
 
                           		
                            
                              		   Downstream Map TLVs 
                              		
                           
 
                           		
                            The presence of a downstream map in an echo request is interpreted by the responding transit (not egress) router to include
                              downstream map information in the echo reply. Specify the 
                              		  ttl  and 
                              		  dsmap  keywords to cause TTL expiry during LSP ping to interrogate a transit router for downstream information. 
                              		
                           
 
                           		
                            
                              		   Pseudowire Usage 
                              		
                           
 
                           		
                            The following keywords are not available with the 
                              		  ping mpls pseudowire  command: 
                              		
                           
 
                           		
                           
                              - 
                                  
                                    			  
                                       				dsmap 
                                       			   
                                    		  
                                  
- 
                                  
                                    			  
                                       				flags 
                                       			   
                                    		  
                                  
- 
                                  
                                    			  
                                       				force-explicit-null 
                                       			   
                                    		  
                                  
- 
                                  
                                    			  
                                       				output 
                                       			   
                                    		  
                                  
- 
                                  
                                    			  
                                       				revision 
                                       			   
                                    		  
                                  
- 
                                  
                                    			  
                                       				ttl 
                                       			   
                                    		  
                                  
 The 
                              		  ping mpls pseudowire  command is not supported when flow label (FAT) is enabled. If you enter the 
                              		  ping mpls pseudowire  command when FAT is enabled the following message is displayed: 
                              		
                           
 
                           		
% Pseudowire Target Not Supported 
 
                           		 
                              		   Revision Keyword Usage 
                              		
                           
 
                           		
                            The 
                              		  revision  keyword allows you to issue a 
                              		  ping mpls ipv4 , 
                              		  ping mpls pseudowire , or 
                              		  trace mpls traffic-eng  command based on the format of the TLV. The table below lists the revision option and usage guidelines for each option. 
                              		
                           
 
                           		
                           
                              Table 2. Revision Options and Option Usage Guidelines
                              
                                 
                                 
                              
                              
                                 
                                    |  Revision Option 
                                          				  
                                        |  Option Usage Guidelines 
                                          				  
                                        | 
                              
                              
                                 
                                    |  11 
                                          				  
                                        |  Not supported in Cisco IOS Release 12.4(11)T or later releases. 
                                          				  
                                         Version 1 (draft-ietf-mpls-ping-03). 
                                          				  
                                         For a device running Cisco IOS Release 12.0(27)S3 or a later release, you must use the 
                                          					 revision 1  keyword when you send LSP ping or LSP traceroute commands to devices running Cisco IOS Release 12.0(27)S1 or 12.0(27)S2.
                                          
                                          				  
                                        | 
                                 
                                    |  2 
                                          				  
                                        |  Version 2 functionality was replaced by Version 3 functionality before an image was released. 
                                          				  
                                        | 
                                 
                                    |  3 
                                          				  
                                        |  Version 3 (draft-ietf-mpls-ping-03). 
                                          				  
                                        
                                          
                                              For a device implementing Version 3 (Cisco IOS Release 12.0(27)S3 or a later release), you must use the 
                                                						revision 1  keyword when you send the LSP 
                                                						ping  or LSP 
                                                						traceroute  command to a device implementing Version 1 (that is, either Cisco IOS Release 12.0(27)S1 or Release 12.0(27)S2). 
                                                					 
                                             
                                              A 
                                                						ping mpls 
                                                   						  mpls pseudowire  command does not work with devices running Cisco IOS Release 12.0(27)S1 or Release 12.0(27)S2. 
                                                					 
                                              | 
                                 
                                    |  4 
                                          				  
                                        | 
                                             
                                                 Version 8 (draft-ietf-mpls-ping-08)--Applicable before Cisco IOS Release 12.4(11)T. All echo packet’s TLVs are formatted
                                                   as specified in Version 8. 
                                                   					 
                                                
                                                 RFC 4379 compliant--Applicable after Cisco IOS Release 12.4(11)T. All echo packet’s TLVs are formatted as specified in RFC
                                                   4379. 
                                                   					 
                                                 | 
                              
                           
                            
                           		
                           With the introduction of Cisco IOS 
                              		
                           
 
                           	 
                        
                        
                           Examples
 
                           		
                            The following example shows how to use the 
                              		  ping mpls  command to test connectivity of an IPv4 LDP LSP: 
                              		
                           
 
                           		
Router# ping mpls ipv4 10.131.191.252/32 repeat 5 exp 5 verbose
Sending 5, 100-byte MPLS Echos to 10.131.191.252, timeout is 2 seconds:
Codes:
    '!' - success, 'Q' - request not sent, '.' - timeout,
    'L' - labeled output interface, 'B' - unlabeled output interface,
    'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
    'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label,
    'P' - no rx intf label prot, 'p' - premature termination of LSP,
    'R' - transit router, 'X' - unknown return code, 'x' - return code 0
Type escape sequence to abort.
!     10.131.191.230, return code 3
!     10.131.191.230, return code 3
!     10.131.191.230, return code 3
!     10.131.191.230, return code 3
!     10.131.191.230, return code 3
Success rate is 100 percent (5/5), round-trip min/avg/max = 100/102/112 ms
 
                           		 The following example shows how to invoke the 
                              		  ping mpls  command in the interactive mode to check MPLS LSP connectivity: 
                              		
                           
 
                           		
Router# ping
Protocol [ip]: mpls
Target IPv4, pseudowire or traffic-eng [ipv4]: ipv4
Target IPv4 address: 10.131.159.252
Target mask: 255.255.255.255
Repeat count [5]: 1
Datagram size [100]:
Timeout in seconds [2]:
Send interval in msec [0]:
Extended commands? [no]: yes
Destination address or destination start address: 127.0.0.1
Destination end address: 127.0.0.1
Destination address increment: 0.0.0.1
Source address:
EXP bits in mpls header [0]:
Pad TLV pattern [ABCD]:
Time To Live [255]:
Reply mode ( 2-ipv4 via udp, 3-ipv4 via udp with router alert) [2]:
Reply ip header DSCP bits [0]:
Verbose mode? [no]: yes
Sweep range of sizes? [no]:
Sending 1, 100-byte MPLS Echos to 10.131.159.252/32,
      timeout is 2 seconds, send interval is 0 msec:
Codes:
    '!' - success, 'Q' - request not sent, '.' - timeout,
    'L' - labeled output interface, 'B' - unlabeled output interface,
    'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
    'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label,
    'P' - no rx intf label prot, 'p' - premature termination of LSP,
    'R' - transit router, 'X' - unknown return code, 'x' - return code 0
Type escape sequence to abort.
Destination address 127.0.0.1
!   10.131.159.245, return code 3
Destination address 127.0.0.1
!   10.131.159.245, return code 3
Destination address 127.0.0.1
!   10.131.159.245, return code 3
Success rate is 100 percent (3/3), round-trip min/avg/max = 40/48/52 ms
 
                           		
                              
                                 |  Note
 | 
  The “Destination end address” and “Destination address increment” prompts display only if you enter an address at the “Destination
                                          address or destination start address” prompt. Also, the “Sweep min size,” “Sweep max size,” and “Sweep interval” prompts display
                                          only if you enter “yes” at the “Sweep range of sizes? [no]” prompt. 
                                          		
                                        
 | 
                           
 
                           		
                            The following example shows how to determine the destination address of an AToM VC: 
                              		
                           
 
                           		
Router# show mpls l2transport vc
Local intf     Local circuit           Dest address    VC ID      Status    
-------------  ----------------------- --------------- ---------- ----------
Et2/0          Ethernet                10.131.191.252 
 333        UP        
Router# show mpls l2transport vc detail
Local interface: Et2/0 up, line protocol up, Ethernet up
  Destination address: 10.131.191.252, VC ID: 333, VC status: up
    Preferred path: not configured  
    Default path: active
    Tunnel label: imp-null, next hop 10.131.159.246
    Output interface: Et1/0, imposed label stack {16}
  Create time: 06:46:08, last status change time: 06:45:51
  Signaling protocol: LDP, peer 10.131.191.252:0 up
    MPLS VC labels: local 16, remote 16
    Group ID: local 0, remote 0
    MTU: local 1500, remote 1500
    Remote interface description: 
  Sequencing: receive disabled, send disabled
  VC statistics:
    packet totals: receive 0, send 0
    byte totals:   receive 0, send 0
    packet drops:  receive 0, send 0
 
                           		 This 
                              		   
                                 			 ping mpls pseudowire  command can be used to test the connectivity of the AToM VC 333 discovered in the preceding 
                              		  show  command: 
                              		
                           
 
                           		
Router# ping mpls pseudowire 10.131.191.252 333 repeat 200 size 1400 
Sending 1, 100-byte MPLS Echos to 10.131.191.252, timeout is 2 seconds:
Codes:
    '!' - success, 'Q' - request not sent, '.' - timeout,
    'L' - labeled output interface, 'B' - unlabeled output interface,
    'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
    'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label,
    'P' - no rx intf label prot, 'p' - premature termination of LSP,
    'R' - transit router, 'X' - unknown return code, 'x' - return code 0
Type escape sequence to abort.
!
Success rate is 100 percent (1/1), round-trip min/avg/max = 92/92/92 ms
 
                           		 This ping is particularly useful because the VC might be up and the LDP session between the PE and its downstream neighbor
                              might also be up, but LDP might be configured somewhere in between. In such cases, you can use an LSP ping to verify that
                              the LSP is actually up. 
                              		
                           
 
                           		
                            A related point concerns the situation when a pseudowire has been configured to use a specific TE tunnel. For example: 
                              		
                           
 
                           		
Router# show running-config interface ethernet 2/0
Building configuration...
Current configuration : 129 bytes
!
interface Ethernet2/0
 no ip address
 no ip directed-broadcast
 no cdp enable
xconnect 10.131.191.252 333 pw-class test1
end
Router# show running-config 
| begin pseudowire 
pseudowire-class test1
 encapsulation mpls
 preferred-path interface Tunnel0 
 
                           		 In such cases, you can use an LSP ping to verify the connectivity of the LSP that a certain pseudowire is taking, be it LDP
                              based or a TE tunnel: 
                              		
                           
 
                           		
Router#
 
ping mpls pseudowire 10.131.191.252 333 repeat 200 size 1400
Sending 200, 1400-byte MPLS Echos to 10.131.191.252, timeout is 2 seconds:
Codes:
    '!' - success, 'Q' - request not sent, '.' - timeout,
    'L' - labeled output interface, 'B' - unlabeled output interface,
    'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
    'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label,
    'P' - no rx intf label prot, 'p' - premature termination of LSP,
    'R' - transit router, 'X' - unknown return code, 'x' - return code 0
Type escape sequence to abort.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 100 percent (200/200), round-trip min/avg/max = 72/85/112 ms
 
                           		 You can also use the 
                              		   
                                 			 ping mpls  command to verify the maximum packet size that can be successfully sent. The following command uses a packet size of 1500
                              bytes: 
                              		
                           
 
                           		
Router# ping mpls pseudowire 10.131.191.252 333 repeat 5 size 1500 
Sending 5, 1500-byte MPLS Echos to 10.131.191.252, timeout is 2 seconds:
Codes:
    '!' - success, 'Q' - request not sent, '.' - timeout,
    'L' - labeled output interface, 'B' - unlabeled output interface,
    'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
    'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label,
    'P' - no rx intf label prot, 'p' - premature termination of LSP,
    'R' - transit router, 'X' - unknown return code, 'x' - return code 0
Type escape sequence to abort.
QQQQQ
Success rate is 0 percent (0/5)
 
                           		 The Qs indicate that the packets are not sent. 
                              		
                           
 
                           		
                            The following command uses a packet size of 1476 bytes: 
                              		
                           
 
                           		
Router# ping mpls pseudowire 10.131.191.252 333 repeat 5 size 1476
Sending 5, 1476-byte MPLS Echos to 10.131.191.252, timeout is 2 seconds:
Codes:
    '!' - success, 'Q' - request not sent, '.' - timeout,
    'L' - labeled output interface, 'B' - unlabeled output interface,
    'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
    'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label,
'P' - no rx intf label prot, 'p' - premature termination of LSP,
    'R' - transit router, 'X' - unknown return code, 'x' - return code 0
Type escape sequence to abort.
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 80/83/92 ms
 
                           		 The following example shows how to test the connectivity of an MPLS TE tunnel: 
                              		
                           
 
                           		
Router# ping mpls traffic-eng tunnel tun3 repeat 5 verbose 
Sending 5, 100-byte MPLS Echos to Tunnel3, 
     timeout is 2 seconds, send interval is 0 msec:
Codes:
    '!' - success, 'Q' - request not sent, '.' - timeout,
    'L' - labeled output interface, 'B' - unlabeled output interface,
    'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
    'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label,
    'P' - no rx intf label prot, 'p' - premature termination of LSP,
    'R' - transit router, 'X' - unknown return code, 'x' - return code 0
Type escape sequence to abort.
!   10.131.159.198, return code 3
!   10.131.159.198, return code 3
!   10.131.159.198, return code 3
!   10.131.159.198, return code 3
!   10.131.159.198, return code 3
Success rate is 100 percent (5/5), round-trip min/avg/max = 32/37/40 ms
 
                           		 The MPLS LSP ping feature is useful if you want to verify TE tunnels before actually mapping traffic onto them. 
                              		
                           
 
                           		
                            The following example shows a 
                              		  ping mpls  command that specifies segment 2 of a multisegment pseudowire: 
                              		
                           
 
                           		
Router# ping mpls pseudowire 10.131.191.252 333 segment 2