我正在研究MellanoxConnectX-5卡,并在CentOS 8 (4.18.0-147.5.1.el8_1.x86_64)中使用DPDK 20.11。
我想测试DEV_TX_OFFLOAD_VXLAN_TNL_TSO卸载,我想问的是数据包结构应该是什么样子(我正在使用替罪羊),我应该将它发送到DPDK应用程序,这样这个卸载就会开始工作并执行分段(因为它是一个VXLAN_TNL_TSO)。
我正在修改dpdk-ip_ inside示例,并在port_conf中添加了:port_conf
static struct rte_eth_conf port_conf = {
.rxmode = {
.max_rx_pkt_len = JUMBO_FRAME_MAX_SIZE,
.split_hdr_size = 0,
.offloads = (DEV_RX_OFFLOAD_CHECKSUM |
DEV_RX_OFFLOAD_SCATTER |
DEV_RX_OFFLOAD_JUMBO_FRAME),
},
.txmode = {
.mq_mode = ETH_MQ_TX_NONE,
.offloads = (DEV_TX_OFFLOAD_IPV4_CKSUM |
DEV_TX_OFFLOAD_VXLAN_TNL_TSO
),
},
};在ol_flags:
ol_flags |= (PKT_TX_IPV4 | PKT_TX_IP_CKSUM | PKT_TX_TUNNEL_VXLAN );简而言之,如果有人能帮我做两件事,来测试这个卸货,那就太好了:
发布于 2021-01-19 09:33:51
注意:基于3小时调试会话,澄清了title和question共享是不正确的。因此,将重新编辑问题,以将实际需求反映为how enable DPDK port with TCP-TSO offloads for tunnelled VXLAN packets。
对第一个问题的回答是,将分组发送到用于TSO的DPDK和接收分段业务的替身设置是什么?
ethtool -K [scapy interface] rx off tx off tso off gso off gro off lro off禁用SCAPY接口上所有与TSO相关的卸载9000 )less than interface MTU。tcpdump -eni [scapy interface] -Q in的方向标志运行tcpdump用于入口流量对于示例应用程序中所需设置的第二个问题的答案如下
testpmd应用程序可以支持基于NIC支持的HW和SW卸载。tep_termination,但是需要vhost接口(VM)或DPDK来实现同样的功能。tx_offload API检查dev_get_info能力。rx_burst接收数据包,并确保数据包为ipv4、UDP、VXLAN (隧道),nb_segs为1。ol_flags标记为PKT_TX_IPV4 | PKT_TX_TUNNEL_VXLAN | PKT_TX_TUNNEL_IP。对于UDP内部有效载荷PKT_TX_TUNNEL_UDP。DPDK MTU (1500 as default) - l3_len - l4_len这将使支持HW TSO卸载的PMD能够更新作为多个数据包传输的给定有效负载的描述符中的适当字段。对于我们的测试用例来说,9000字节的发送数据包将被转换为7* 1500字节的数据包。这可以作为部分tcpdump来观察。
注意:
tep_termination和test_pmd中。https://stackoverflow.com/questions/65731241
复制相似问题