Single Packet Capture under NX-OS

I had an issue today where I needed to see what device was sending a specific packet to a Nexus 7k.  This was an HSRP packet, in fact it was the devices own HSRP packet (A loop), so I needed to find out more information.  TAC showed me how to accomplish this.  There are a lot of interesting troubleshooting commands that you can do on the line cards themselves, this is true for both the MDS fabrics and the Nexus LAN switches.  The 7k’s have what is called an Embedded Logical Analyzer Module (ELAM).  This is a summary of the steps taken:

ATL-NX7K01# attach module 1
Attaching to module 1 …
To exit type ‘exit’, to abort type ‘$.’
module-1# show hardware internal dev-port-map
————————————————————–
CARD_TYPE:       32 port 10G
>Front Panel ports:32
————————————————————–
Device name             Dev role              Abbr num_inst:
————————————————————–
> Octopus                DEV_QUEUEING           QUEUE  2
> Sotra                  DEV_REWRITE            RWR_1  2
> Metropolis             DEV_REWRITE            RWR_0  4
> Eureka                 DEV_LAYER_2_LOOKUP     L2LKP  1
> Lamira                 DEV_LAYER_3_LOOKUP     L3LKP  1
> R2D2                   DEV_ETHERNET_MAC       MAC_0  8
> Santa-Cruz-Module      DEV_SWITCH_FABRIC      SWICHF 1
> Ashburton              DEV_ETHERNET_MAC       MAC_2  8
> Naxos                  DEV_ETHERNET_MAC       MAC_1  16
> EDC                    DEV_PHY                PHYS   16
+————————————————————–+
+———–+++FRONT PANEL PORT TO ASIC INSTANCE MAP+++——–+
+————————————————————–+
FP port|PHYS |MAC_0 |MAC_1 |MAC_2 |RWR_0 |RWR_1 |L2LKP |L3LKP |QUEUE |SWICHF
1    15      7     15      7      3      0      0      0      1      0
2     0      0      0      0      0      1      0      0      0      0
3    15      7     15      7      3      0      0      0      1      0
4     0      0      0      0      0      1      0      0      0      0
5    14      7     14      7      3      0      0      0      1      0
6     1      0      1      0      0      1      0      0      0      0
7    14      7     14      7      3      0      0      0      1      0
8     1      0      1      0      0      1      0      0      0      0
9    13      6     13      6      3      0      0      0      1      0
10     2      1      2      1      0      1      0      0      0      0
11    13      6     13      6      3      0      0      0      1      0
12     2      1      2      1      0      1      0      0      0      0
13    12      6     12      6      3      0      0      0      1      0
14     3      1      3      1      0      1      0      0      0      0
15    12      6     12      6      3      0      0      0      1      0
16     3      1      3      1      0      1      0      0      0      0
17    11      5     11      5      2      0      0      0      1      0
18     4      2      4      2      1      1      0      0      0      0
19    11      5     11      5      2      0      0      0      1      0
20     4      2      4      2      1      1      0      0      0      0
21    10      5     10      5      2      0      0      0      1      0
22     5      2      5      2      1      1      0      0      0      0
23    10      5     10      5      2      0      0      0      1      0
24     5      2      5      2      1      1      0      0      0      0
25     9      4      9      4      2      0      0      0      1      0
26     6      3      6      3      1      1      0      0      0      0
27     9      4      9      4      2      0      0      0      1      0
28     6      3      6      3      1      1      0      0      0      0
29     8      4      8      4      2      0      0      0      1      0
30     7      3      7      3      1      1      0      0      0      0
31     8      4      8      4      2      0      0      0      1      0
module-1# elam slot 1 asic eureka instance 1
module-1(eureka-elam)# trigger dbus dbi ingress ipv4 if source-ipv4-address 172.16.0.108 destination-ipv4-address 224.0.0.2
module-1(eureka-elam)# show elam slot 1 asic status
EU-DBUS: Configured
EU-RBUS: Dis-Armed
LM-DBUS: Dis-Armed
LM-RBUS: Dis-Armed
module-1(eureka-elam)# start dbus
module-1(eureka-elam)# show elam slot 1 asic status
EU-DBUS: Triggered
EU-RBUS: Dis-Armed
LM-DBUS: Dis-Armed
LM-RBUS: Dis-Armed
module-1(eureka-elam)# show elam slot 4 asic eureka instance 1 dbus
Slot 01 Asic Eureka Instance 01 – Capture Buffer On Dbus:
Status(0x1302), TriggerWord(0x0f4), SampleStored(0x200), CaptureBufferPointer(0x1f5)
[0f3]: 1c6100e1 90020100 0100100a 22004200 00110004 00000100 5e000002 00000c07 ac0105c0
[0f4]: 1c6200e2 0030e000 01ebb1ac 10006ce0 00000207 c107c100 1cc59500 00100364 696dd7cd
seq = 0x12
cos = 0x0
cos_type = 0x0
type = 0x0
status.BPDU = 0x0
ip_field_override = 0x1
no_establish = 0x0
control = 0x0100
{
no_statistics = 0x0
not_usable = 0x0
central_rewrite = 0x0
trusted = 0x0
notify_index_learn = 0x0
notify_new_learn = 0x1
disable_new_learn = 0x0
disable_index_learn = 0x0
dont_forward = 0x0
index_direct = 0x0
dont_learn = 0x0
conditional_learn = 0x0
bundle_bypass = 0x0
tic_qos_trusted_input_class = 0x0
}
control2 = 0x01
{
inband_flow = 0x0
ignore_qoso = 0x0
ignore_qosi = 0x0
ignore_aclo = 0x0
ignore_acli = 0x0
port_qos = 0x0
dont_span = 0x0
cps_capable = 0x1
}
vlan = 0x001
source_flood = 0x0
source_index = 0x00a22
length = 0x0042
compact_format = 0x0 (Ethernet IPv4)
result_control_bits = 0x0
(1:mcast L2 exp, 2: mcast L3 RW, 3: mcast L3&L2 exp, 4:RW, 0 & 5: no RW)
result_l2_fwd_frame = 0x0
result_rdt = 0x0
result_cap1 = 0x0
result_cap2 = 0x0
l3_packet_type = 0x0, (0:Ethernet, 1:IPX, 2-4: IEEE 802.3)
l3_protocol = 0x0   (0:IPv4, 6:IPv6)
l3_protocol_type = 0x11, (1:ICMP, 2:IGMP, 4:IP, 6:TCP, 17:UDP)
protocol_mask = 0x0
destination_flood = 0x0
destination_index = 0x00400
l3_learning = 0x0  (FF=0, MN=0, RF=0, SC=0)
card_type = 0x0
dmac = 01.00.5e.00.00.02
smac = 00.00.0c.07.ac.01
df = 0x0
mf = 0x0
ip_header_length = 0x5
ip_service_type = 0xc0
ip_total_length = 0x30
ip_header_valid = 0x1
ip_checksum_valid = 0x1
l4_header_valid = 0x1
ip_fragment_offset = 0x0000
ip_ttl = 0x01
ip_checksum = 0xebb1
ip_source = 172.016.000.108
ip_destination = 224.000.000.002
udp source port = 0x07c1
udp dest port = 0x07c1
l4_data = 0x001cc5950000100364696d
module-1(eureka-elam)#

 

This entry was posted in Nexus, NX-OS. Bookmark the permalink.

4 Responses to Single Packet Capture under NX-OS

Leave a Reply