Configuring MPLS Segment Routing OAM

This chapter contains information about configuring MPLS Segment Routing OAM

Overview of MPLS Segment Routing OAM

MPLS OAM provides two main functions for diagnostics purposes:

  1. MPLS ping

  2. MPLS traceroute

OAM draws the information from different information sources of each FEC type to help diagnose the issues. The Nil-FEC forwarding equivalence class type is not associated with a protocol like the other FEC types or an actual forwarding equivalence class, for example, LDP. Nil-FEC does not query BGP or other routing protocols in the control plane, but it validates the data plane programming.

To enable MPLS OAM on Cisco Nexus 3000 Series switches, use the feature mpls oam CLI command. Use the no feature mpls oam CLI command to disable MPLS OAM on Cisco Nexus 3000 Series switches.

Segment Routing OAM Support for LSP Ping and Traceroute

The Nil-FEC LSP ping and traceroute operations are extensions of regular MPLS ping and traceroute. Nil-FEC LSP Ping/Traceroute functionality supports segment routing and MPLS Static. It also acts as an additional diagnostic tool for all other LSP types. This feature allows operators to provide the ability to freely test any label stack by allowing them to specify the following:

  • Label stack

  • Outgoing interface

  • Nexthop address

In case of segment routing, each segment nodal label and adjacent label along the routing path is put into the label stack of an echo request message from the initiator Label Switch Router (LSR); MPLS data plane forwards this packet to the label stack target, and the label stack target sends the echo message back.

Use the ping mpls nil-fec labels comma-separated-labels [output {interface tx-interface} [nexthop nexthop-ip-addr]] CLI command to execute a ping. Use the traceroute mpls nil-fec labels comma-separated-labels [output {interface tx-interface} [nexthop nexthop-ip-addr]] CLI command to execute a traceroute.

Guidelines and Limitations

See the following guidelines and limitations for configuring MPLS OAM Nil-FEC:

  • Cisco Nexus 3500 Series switches do not support MPLS OAM on Cisco NX-OS Release 7.0(3)I7(2) and the previous releases.

  • A maximum of 4 labels can be specified in the ping mpls nil-fec and traceroute mpls nil-fec commands. This value is enforced by querying the platform and currently Cisco Nexus 3000 Series switches limit the label stack to 5. It means that for a nil-FEC echo request, you can specify a maximum of 4 labels because internally an extra explicit-null is added.

  • The nexthop specified in the ping and traceroute commands must be a connected nexthop on the originator and it should not be a recursive nexthop.

  • There is no support for treetrace.

  • Nil-FEC does not carry any information to identify the intended target. The packet may mis-forward at an incorrect node but the validation may return success if the packet ends up at a node after popping the non-null labels.

  • Nil-FEC operates on forwarding the information alone. It cannot detect the inconsistencies between the control plane and the forwarding plane by definition.

  • Nil-FEC ping and traceroute is not supported for deaggregator (per-VRF) labels. This includes the BGP EVPN-Layer 3 deaggregator labels.

  • On Cisco Nexus 3000 Series switches that use Broadcom chipsets, there is no support to allow the software to send a query to determine which ECMP a packet takes. It means that for MPLS traceroutes that traverse one of these switches may display an error at the next hop if there is more than one ECMP as displayed in the following example:

    D 2 6.0.0.2 MRU 1496 [Labels: 2003/explicit-null Exp: 0/0] 4 ms
  • When you use an OAM to test a BGP EPE LSP, for example, the last label in the ping or trace-route label stack is an EPE label, the OAM will return a success if the final router has OAM enabled and MPLS enabled on the incoming interface.

    For example, in a network set up of A---B---C, A and B are in the segment routing network, B is configured as PE, C is configured as CE, and B is configured with C as a BGP EPE peer using egress-engineering on B, then C must have OAM enabled and MPLS forwarding enabled on the incoming interface.

Examples for Using Ping and Traceroute CLI Commands

Using CLI to Execute a Ping

Use the ping mpls nil-fec labels comma-separated-labels [output {interface tx-interface} [nexthop nexthop-ip-addr]] CLI command to execute a ping.

For example, the following command sends an MPLS packet with the outermost two labels in the label stack being 2001 and 2000 out the interface Ethernet 1/1 with a nexthop IP address of 4.0.0.2:

switch# ping mpls nil-fec labels 2001,2000 output interface e1/1 nexthop 4.0.0.2

It is mandatory that the nexthop is a connected nexthop; it is not recursively resolved.

The above CLI format is a simplified version. The [output {interface tx-interface} [nexthop nexthop-ip-addr]] is mandatory to be present in the VSH server.

switch# ping mpls nil-fec labels 1,2 ?
output Output options
switch# ping mpls nil-fec labels 1,2
^% Invalid command at '^' marker.

Using CLI to Execute a Traceroute

Use the following CLI command to execute a traceroute:

traceroute mpls nil-fec labels <comma-separated-labels> output interface <tx-interface> nexthop <nexthop-ip-addr>

Displaying Show Statistics

Use the following command to display the statistics about the echo requests sent by the local MPLS OAM service:

show mpls oam echo statistics