stedump Utility
The stedump tool is a packet simulator for host NIC steering solutions. It is supported in 5th generation NIC devices and only when using Python v3.4 and above. The dump output of HW steering is used for debugging and troubleshooting.
Using the MFT with the --with-pcap option to install stedump utility requires the following third-party dependencies:
Libraries and header files for the libpcap library
Libraries and header files for Python development library
Package Installer for Python (PIP) available
stedump [-h] --read-file <read_file> [--packet-format <packet_format>] [--output-file <output_file>] [--verbosity <verbosity>] [-v] {live,offline}
Where
-h, --help | Show help message and exit |
--version | Show version information and exit |
--packet-format | Specifies the I/O packet file format (default: hex) |
--output-file | Redirect the output to specific file (default: stdout) |
--verbosity | Increase output verbosity (default: 0) |
--read-file | Specifies the packet(s) filename to read from |
live | Run in live mode. |
offline | Run in offline mode. |
There are three kind of packet formats:
hex - Represents one or more packets separated by a newline in hexadecimal format.
pcap - Represents one or more packets in packet capture format.
raw - Represents a single packet in binary data format.
The pcap packet format is not supported by default, and requires installing MFT with the --with-pcap option.
Offline mode is not supported.
stedump live Usage
stedump live [-h] --device <device> --port <physical_port> {egress,ingress}
Where
-h, --help | Show help message and exit |
-d , --device | Perform operation for a specified MST device |
--port | Specifies the physical port number |
egress | Specifies the packet source to be egress for TX flows |
ingress | Specifies the packet source to be ingress for RX flows |
stedump live egress Usage
stedump live egress [-h] [--reg-a <reg_a_value>] [--virtual-hca-id <virtual_hca_id>] [--sqn <sqn>] [--force-loopback] [--special-root]
Where
-h, --help | Show help message and exit |
--reg-a | Specifies steering register A value (default: 0) |
--virtual-hca-id | Specifies the source virtual HCA ID (default: 0) |
--sqn | Specifies the send queue context number (default: 0) |
--force-loopback | specifies whether to use QP force loopback |
--special-root | specifies whether to use QP special root |
An example of how to run the egress (TX) packet flow:
# stedump --read-file tcp.hex live --device /dev/mst/mt4119_pciconf0 --port 0
egress
PACKET_DATA
C0 C1 C2 C3 C4 C5 A0 A1 A2 A3 A4 A5 08
00
45
00
00
28
00
00
40
00
40
06
34
CB 01
01
01
01
02
02
02
02
10
E1 22
3D 00
00
BA BA 00
00
DE DA 51
23
FF FF AD 29
00
00
STE_MASKED[1
] OUTER: source_qp: 0x40
[HIT] - hit_ix=0x6e
polarity
STE_MASKED[2
] OUTER: encapsulation_type: ROCE
[HIT] - hit_ix=0x6d
polarity
STE_MASKED[3
] : Always Hit
[HIT] - hit_ix=0x2000001a
STE_MASKED[4
] : Always Hit
[HIT] - hit_ix=0xf0000000
STE_MASKED[5
] : Always Hit
[HIT] - hit_ix=0xf0000009
STE_MASKED[6
] OUTER: dmac: c0:c1:c2:c3:c4:c5, l3_type: IPV4
[HIT] - hit_ix=0xf000000e
STE_MASKED[7
] OUTER: sip: 1.1
.1.1
[ACTION] - COUNT { flow_counter_id=0x801199
, gvmi=0x0
}
[ACTION] - MODIFY_HEADER { number_of_re_write_actions:11
, ix=0x57
}
[HIT] - hit_ix=0x1a44c
STE_MASKED[8
] : Always Hit
[ACTION] - COUNT { flow_counter_id=0x2a
, gvmi=0x0
}
[ACTION] - WIRE { }
[HIT] - hit_ix=0x0
[ACTION] - SX TERMINATOR { WIRE }
- STEERING_HOPS - 8
An example of how to run the ingress (RX) packet flow:
# stedump --read-file tcp.hex live --device /dev/mst/mt4119_pciconf0 --port 0
ingress
PACKET_DATA
E0 E1 E2 E3 E4 E5 A0 A1 A2 A3 A4 A5 08
00
45
00
00
5E 00
00
40
00
40
11
34
8A 01
01
01
01
02
02
02
02
04
D2 17
C1 00
4A DC C1 01
80
65
58
CC CE
23
00
61
61
61
61
B0 B1 B2 B3 B4 B5 A0 A1 A2 A3
A4 A5 08
00
45
00
00
28
00
00
40
00
40
06
34
CB
01
01
01
01
02
02
02
02
10
E1 22
3D 00
00
BA BA
00
00
DE DA 51
23
FF FF AD 29
00
00
STE_MASKED[1
] OUTER: encapsulation_type: ROCE
[ACTION] - COUNT { flow_counter_id=0x29
, gvmi=0x0
}
[HIT] - hit_ix=0x2000001a
polarity
STE_MASKED[2
] : Always Hit
[HIT] - hit_ix=0xf0000000
STE_MASKED[3
] : Always Hit
[HIT] - hit_ix=0xf0000009
STE_MASKED[4
] OUTER: dmac: e0:e1:e2:e3:e4:e5, l3_type: IPV4
[HIT] - hit_ix=0xf000000f
STE_MASKED[5
] OUTER: sip: 1.1
.1.1
[ACTION] - COUNT { flow_counter_id=0x801199
, gvmi=0x0
}
[ACTION] - DECAP { L2 }
[ACTION] - MODIFY_HEADER { number_of_re_write_actions:1
, ix=0xd7
}
[HIT] - hit_ix=0xa00001a5
STE_MASKED[6
] : Always Hit
[HIT] - hit_ix=0xa00001a2
STE_MASKED[7
] : Always Hit
[ACTION] - QP { gvmi=0x0
,qp=0x108d
}
[HIT] - hit_ix=0x0
[ACTION] - RX TERMINATOR { }
- STEERING_HOPS - 7