Contents

Introduction

Prerequisites

Requirements

Components Used

Network Diagram

Capturing MPLS Frames with Flanker ASIC

Triggering the ELAM

Verify

Introduction

This document describes how to perform an ELAM packet capture on Nexus 7000 (linecards F3) using Flanker ASIC for MPLS-labeled packets.

Prerequisites

ELAM knowledge for Nexus7000 platform.

Requirements

Cisco recommends knowledge of these topics:

- ELAM on Nexus7000

- Multiprotocol Label Switching (MPLS)

Components Used

The modules and versions being used:

Hardware: N77-F324FQ-25

Version: 7.3(4)D1(1)

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, ensure that you understand the potential impact of any command.

Network Diagram

Capturing MPLS Frames with Flanker ASIC

Triggering the ELAM

MPLS header:

To send a ICMP from CAT-6500-PE to N7K-PE, you need to confirm the number of labels the packet is going to have when arriving at the N7K-P. In this case, it has 2, the outer and inner.

From CAT-6500-PE, you know it uses label 19 to send the traffic toward CAT-9500-P.

On the CAT-9500-P, you can confirm which label to use to send the traffic to the N7K-P.

The label from Catalyst in this case is:

CAT-9500-P#show mpls  forwarding-table

Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop

Label      Label      or Tunnel Id     Switched      interface

<...>

19         44        10.249.200.42/32 61446         Fo1/1/2    10.224.80.65      <<<<<<<<<

21         No Label   10.224.80.0/30   0             Fo1/1/2    10.224.80.65

22         No Label   10.224.66.88/30  0             Fo1/1/2    10.224.80.65

N7K-P:

First, confirm from which interface you are receiving the traffic. In this case, on the N7K-P, the traffic is received from interface eth6/6.

Here is how the packet is arriving at the Nexus N7K-P with 2 labels:

Packet from Wireshark

You can apply the trigger in the N7K-P to capture the traffic:

To get the instance used on the ELAM, check the L2LKP column of the port where the traffic is being received.

attach module 6

module-6# sh hardware internal dev-port-m

--------------------------------------------------------------

CARD_TYPE:       24 port 40G

>Front Panel ports:24

--------------------------------------------------------------

Device name             Dev role              Abbr num_inst:

--------------------------------------------------------------

> Flanker Eth Mac Driver DEV_ETHERNET_MAC       MAC_0  12

> Flanker Fwd Driver     DEV_LAYER_2_LOOKUP     L2LKP  12

> Flanker Xbar Driver    DEV_XBAR_INTF          XBAR_INTF 12

> Flanker Queue Driver   DEV_QUEUEING           QUEUE  12

> Sacramento Xbar ASIC   DEV_SWITCH_FABRIC      SWICHF 2

> Flanker L3 Driver      DEV_LAYER_3_LOOKUP     L3LKP  12

> EDC                    DEV_PHY                PHYS   8

> NCP Manager            DEV_UNDEFINED          (null) 12

+-----------------------------------------------------------------------+

+----------------+++FRONT PANEL PORT TO ASIC INSTANCE MAP+++------------+

+-----------------------------------------------------------------------+

FP port |  PHYS | MAC_0 | L2LKP | L3LKP | QUEUE |SWICHF

1               0       0       0       0       0,1

2               0       0       0       0       0,1

3               1       1       1       1       0,1

4               1       1       1       1       0,1

5       0       2       2       2       2       0,1

6       0       2       2       2       2       0,1     <<<<<<<< Port 6 mapped to L2KP 2

7       1       3       3       3       3       0,1

8       1       3       3       3       3       0,1

9       2       4       4       4       4       0,1

10      2       4       4       4       4       0,1

11      3       5       5       5       5       0,1

12      3       5       5       5       5       0,1

13      4       6       6       6       6       0,1

<...>

Where:

- label-count - Number of labels in the packet we are matching

- destination-ipv4-address - Destination IP address

- lbl0-lbl - Outer label for MPLS

- mlh-type - 7 for MPLS

- l4 protocol - 1 for ICMP

On the Nexus N77-P:

elam asic flanker instance 2

layer2

trigger dbus ipv4 ingress if label-count 2 destination-ipv4-address 10.253.142.226 lbl0-lbl 44 mlh-type 7 l4-protocol 1

trigger rbus ingress if trig

start

Note: Only outer label trigger is possible for F3 linecards.

Verify

Confirm the ELAM got triggered.

module-6(fln-l2-elam)# status

ELAM Slot 6 instance 2: L2 DBUS Configuration: trigger dbus ipv4 ingress if label-count 2 destination-ipv4-address 10.253.142.226 lbl0-lbl 44 mlh-type 7 l4-protocol 1

L2 DBUS: Triggered

ELAM Slot 6 instance 2: L2 RBUS Configuration: trigger rbus ingress if trig

L2 RBUS: Triggered

Confirm the sequence number is the same for rbus and dbus.

module-6(fln-l2-elam)# sh dbus | i seq ; sh rbus | i seq

sequence-number : 0xb8 vl : 0x0

l2-rbus-trigger : 0x1 sequence-number : 0xb8

To confirm the egress interface, you can check the di-ltl-index on the rbus output.

module-6(fln-l2-elam)# sh rbus | i i di-

lcpu-ff-valid       : 0x0             sup-di-vqi          : 0x0

md-di-vld           : 0x0             rc                  : 0x0

di-ltl-index        : 0xe00           l3-multicast-di     : 0xe00

With the index, you can enter into the VDC where you are receiving the traffic, and decode it to find the egress interface.

N7K-P# sh system internal pixm info ltl 0xe00 <

PC_TYPE    PORT    LTL      RES_ID       LTL_FLAG      CB_FLAG    PC_NODE_FLAG

MEMB_CNT

------------------------------------------------------------------------------

Normal    Po1   0x0e00    0x16000000   0x00000000   0x00000002   0x00000000   1

RBH Mode: NON-MODULO

Member rbh rbh_cnt

Eth1/5   0x000000ff   0x08

CBL Check States: Ingress: Enabled; Egress: Enabled

VLAN| BD| BD-St              | CBL St & Direction:

--------------------------------------------------

0 | 0x0 | EXCLUDE_IF_FROM_BD  | FORWARDING (Both)

1 | 0x0 | EXCLUDE_IF_FROM_BD  | BLOCKING   (Both)

Member info

------------------

Type            LTL

---------------------------------

PORT_CHANNEL   Po1

In this case, ethernet 1/5 is the egress interface which is a member of port-channel 1. With this, you can confirm the forwarding decision is correct.

interface Ethernet1/5

mtu 9216

logging event port link-status

channel-group 1 mode active

no shutdow

Matches with control plane.

N7K-P# show mpls switching

Legend:

(P)=Protected, (F)=FRR active, (*)=more labels in stack.

In-Label   Out-Label   FEC name         Out-Interface  Next-Hop

VRF default

44         Pop Label   10.249.200.42/32 Po1           10.22.80.40