Vmware 无法通过vmxnet3使用DPDK接收数据包
我已经实现了一个简单的代码,使用DPDK将数据包从一台机器发送到另一台机器。 当我使用E1000E时,我能够接收数据包。但是当我使用vmxnet3时,在接收器端,根据以太网统计数据接收错误的数据包。rte_eth_rx_burst()不接收任何数据包。 有办法解决这个问题吗?为什么数据包是错误的 更新:vmxnet3正在正确接收非DPDK数据包,但对于我们的自定义生成器发送的DPDK数据包,它仍然被归类为错误。ESXI和Vcenter中的安全性是否发生了变化?我使用vcenter 6+为早期版本的ESXI工作 [EDIT-1]根据评论共享的详细信息 VMShpere版本:7Vmware 无法通过vmxnet3使用DPDK接收数据包,vmware,dpdk,Vmware,Dpdk,我已经实现了一个简单的代码,使用DPDK将数据包从一台机器发送到另一台机器。 当我使用E1000E时,我能够接收数据包。但是当我使用vmxnet3时,在接收器端,根据以太网统计数据接收错误的数据包。rte_eth_rx_burst()不接收任何数据包。 有办法解决这个问题吗?为什么数据包是错误的 更新:vmxnet3正在正确接收非DPDK数据包,但对于我们的自定义生成器发送的DPDK数据包,它仍然被归类为错误。ESXI和Vcenter中的安全性是否发生了变化?我使用vcenter 6+为早期版本
[基于实时调试的回答]使用e1000e或vmxnet3设备的DPDK端没有问题。基于当前调试,基于vsphere上的切换 使用内核驱动程序调试vmnext3,显示
它会失败
tcpdump
进行调试显示VM-1没有从VM-2的交换机接收数据包。当接收到来自VM-1的数据包时DPDK l2fwd/testpmd/skeleton甚至示例应用程序的行为也是如此。因此,带有vmxnet3的DPDK 18.11.11 LTS在发送或接收数据包方面没有问题。原因很多,您能否分享以下信息,如VMsphere版本、连接到vmxnet3的VMsphere交换机详细信息、DPDK版本、来宾操作系统版本、数据包mac dest地址、vmxnext3地址、使用的DPDK应用程序、,使用选项
--log level=pmd,8和--log level=8运行时,vswitch仅在10gbps NIC支持的两个虚拟机之间连接。DPDK verion使用的是18.11,来宾操作系统:Ubuntu 20.04(也尝试了Ubuntu 16.04),数据包mac地址根据目标VM更改,我使用以太网统计数据验证了这一点,没有正确的mac地址,目标将不会显示任何数据包(甚至没有错误数据包)。DPDK应用程序是定制的数据包生成器和接收器。刚刚使用了数据包形成后的rte_eth_tx_突发和rte_eth_rx_突发。谢谢@avinashkrc请使用上述信息和剩余信息更新问题(没有DPDK,vmxnet3数据包是否被接收?像l2fwd/skeleton这样的标准DPDK应用程序是否能够发送和接收?日志级别的结果是什么)。您好,l2fwd在转发给其他人之前需要先发送数据包,如果我错了,请纠正我。我还没有检查骨架。我更新的其他详细信息您可以始终使用vdev端口,如tap、kni或任何pcap PMD作为第二个端口进行测试。示例examples/l2fwd/build/l2fwd-c0xf0--vdev=net_tap0,iface=mytestport--p0x3-t1
。然后在另一个终端运行ifconfig mytestport up;ping\u i mytestport 12.12.12.12.