DPDK UDP数据包传输问题-错误UDP长度大于IP有效负载长度

时间:2019-04-20 03:37:42

标签: rhel7 dpdk

我们最近已升级到DPDK 18.08版本。 升级到最新版本后,观察到UDP数据包传输错误,少数数据包出现问题。

传输大小为28个字节和48个字节的UDP数据包时,未发现任何问题。 我试图在使用rte_kni_tx_burst将其发送到内核之前,在程序中打印数据包长度计算。 数据包长度的计算对我来说似乎是正确的。

1.) 
size_udp:48
sizeof(struct udp_hdr):8
size_ApplMsg:40
udphdr->dgram_len:12288
m->data_len:82
size_ip:68
l2_data_shift:14

2.)
size_udp:28
sizeof(struct udp_hdr):8
size_ApplMsg:20
udphdr->dgram_len:7168
 m->data_len:62
 ip->total_length:12288
 size_ip:48
l2_data_shift:14

Packets with UDP size 736 are not getting transmitted to the receiving end and getting dropped.

3.)
 size_udp:736
 sizeof(struct udp_hdr):8
size_ApplMsg:728
udphdr->dgram_len:57346
 m->data_len:770 
size_ip:756 
l2_data_shift:14

在我的程序中,MTU也设置为1500。因此,传输小于1500字节MTU的736字节UDP数据应该不是问题。

我试图增加内核缓冲区的大小,但这没有帮助。 netstat -su->输出显示0个发送/接收缓冲区错误。

DPDK 18.08中有关UDP数据包的更改是什么? 请建议我是否需要考虑调整udp,卸载udp流量以解决此问题。

谢谢

0 个答案:

没有答案