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