NVIDIA Firmware Tools (MFT) Documentation v4.20.0

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

Copy
Copied!
            

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:

  1. hex - Represents one or more packets separated by a newline in hexadecimal format.

  2. pcap - Represents one or more packets in packet capture format.

  3. raw - Represents a single packet in binary data format.

Warning

The pcap packet format is not supported by default, and requires installing MFT with the --with-pcap option.

Warning

Offline mode is not supported.

stedump live Usage

Copy
Copied!
            

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

Copy
Copied!
            

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:

Copy
Copied!
            

# 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:

Copy
Copied!
            

# 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

© Copyright 2023, NVIDIA. Last updated on May 23, 2023.