ConnectX6 DPDK dpdk-testpmd Receive error len error checksum UDP packet performance is very low!

I use Ixia to construct two streams

flow1 udp 64size small packet

flow2 udp 64size small packet error len error checksum

​Ixia Send per second 30G bps 57 million pps

./dpdk-testpmd -l 4-22 -n 8 – -i --rxq 19 --txq 19 --nb-cores 18 --rxd 2048 --txd 2048 --portmask 0xff

set fwd rxonly

start

Recive per second 3G bps 5 million pps

Only about one tenth was received!

rx_discards_phy drop

mlx5------------------------------------------------------------------------------------------------------------------------------------

When I change the flow2 to no problem udp, It’s all normal

Recive per second 29.4G bps 57 million pps

rx_discards_phy no drop

server

dell poweredge r750

[root@localhost proc]# lscpu

Architecture: x86_64

CPU op-mode(s): 32-bit, 64-bit

Byte Order: Little Endian

CPU(s): 64

On-line CPU(s) list: 0-63

Thread(s) per core: 1

Core(s) per socket: 32

Socket(s): 2

NUMA node(s): 2

Vendor ID: GenuineIntel

CPU family: 6

Model: 106

Model name: Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz

Stepping: 6

CPU MHz: 2900.000

BogoMIPS: 5800.00

Virtualization: VT-x

L1d cache: 48K

L1i cache: 32K

L2 cache: 1280K

L3 cache: 55296K

NUMA node0 CPU(s): 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62

NUMA node1 CPU(s): 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63

Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb cat_l3 invpcid_single intel_pt ssbd mba ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq md_clear pconfig spec_ctrl intel_stibp flush_l1d arch_capabilities

MLX ConnectX6 100G PCIE4 x16

TCP also has this problem!

Unable to close tcp udp checksum offloads

static struct rte_eth_conf port_conf = {

.rxmode = {

.mq_mode = RTE_ETH_MQ_RX_RSS,

.split_hdr_size = 0,

.offloads = 0,

},​

​.offloads set 0

​After receiving the correct cksum TCP packet, the will be print RTE_MBUF_F_RX_L4_CKSUM_GOOD

This indicates that TCP cksum offload is not closed!!

Hi Li,

Just a quick clarification should this issue needs in depth debugging, a support case with a valid support contract would be needed.

I believe something is missing from your statement:

When I change the flow2 to no problem udp, It’s all normal

Receive per second 29.4G bps 57 million pps”

Can you elaborate what are you changing?

I also noticed that FW “20.32.1010” was not flashed, can you flash it and re-test accordingly?

Have you consulted the performance report from “http://core.dpdk.org/perf-reports/” to make sure your server is properly tunned?

(Mellanox NIC Performance Report).

Sophie.

Are you as well using the latest DPDK version?

Reference link: http://core.dpdk.org/download/

no problem udp

The UDP package length and verification are correct

​Ixia auto Calculated

FW 20.32.1010 ​20.30.1004 I’ve tested them all,All have this problem!

​I tested 20.32.1010 first. After there was a problem, I downgraded to 20.30.1004.

I saw it many times https://doc.dpdk.org/guides/nics/mlx5.html, https://fast.dpdk.org/doc/perf/DPDK_21_08_Mellanox_NIC_performance_report.pdf.

The test package of this report should send the correct checksum and the correct length package.

I think this problem is the efficiency of the network card in the process of processing data packets.

When an incorrect checksum or wrong length is received, the network card may have some processing, resulting in packet loss of the network card hardware.

I use dpdk 21.11.0 and dpdk 20.11.3 (LTS) versions, which have this problem.

It should not be the problem of dpdk setting.

Please help me!

Do you need any more data from me?

I previously posted though I did not see an answer from it.

You have 2 flows with same UDP size packet, what exactly are you changing that simulate this issue?

This is not clear to me.

I believe something is missing from your statement:

When I change the flow2 to no problem udp, It’s all normal

Receive per second 29.4G bps 57 million pps”

Can you elaborate what are you changing?

Sophie.

when there is a problem.

udp head​

udp-len: Fixed settings 123​(This is the wrong value)

udp-checksum: Fixed settings 456 (This is the wrong value)

When I change the flow2 to no problem udp.

udp head​

udp-len: ​Ixia auto Calculated correct

udp-checksum: ​Ixia auto Calculated correct

I changed a network card MCX614106A-CCA_Ax still has this problem!

Device #1:


Device Type: ConnectX6

Part Number: MCX614106A-CCA_Ax

Description: ConnectX-6 EN adapter card; 100GbE; dual-port QSFP56; Socket Direct 2x PCIe3.0 x16; tall bracket; ROHS R6

PSID: MT_0000000220

PCI Device Name: 0000:ca:00.0

Base GUID: 0c42a103005f8570

Base MAC: 0c42a15f8570

Versions: Current Available

FW 20.30.1004 N/A

PXE 3.6.0301 N/A

UEFI 14.23.0017 N/A

Status: No matching image found