image image image image image

On This Page

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.

Prerequisites

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 Usage 

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.

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

--portSpecifies 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