我正在尝试捕获来自dpdk接口的数据包。使用pdump+testpmd,能够捕获数据包。但是,如果将Wireshark与testpmd一起使用,上述操作将失败。
任何建议都将受到高度赞赏。谢谢
使用Ubuntu v 18+、DPDK v 19+ Wireshark v 3+
发布于 2019-03-21 18:34:10
一旦将物理接口从内核绑定到DPDK驱动程序(igb_uio、uio_pci_generic、vfio-pci),它就会从内核netdev中删除,用于物理功能和虚拟功能。这些NIC端口可以通过UIO驱动程序访问,并且具有PMD的DPDK之类的应用程序可以探测和初始化设备(使用some exceptions)。
如果你想通过Wireshark使用这个端口,不幸的是你必须使用bind it back to the kernel。您还可以使用DPDK将数据包捕获到.pcap文件中,并使用Wireshark offline进行分析-如果这符合您的需要。
编辑-1\f25 UIO DPDK bind -1\f6有两种捕获信息包的方式
rte_pdump_init应用程序接口,并使用DPDK示例dpdk-pdump为所需队列捕获RX或TX数据包。--vdev=net_pcap0,iface=[kernel nic interface instance]启动DPDK rte_eal_init
注意:在选项2中,可以运行Wireshark并捕获数据包。但是会失去性能和DPDK特定的功能。
发布于 2019-12-21 01:49:22
解决方案是使用pdump应用程序。正如其他人所提到的,一旦DPDK应用程序获得了网卡的所有权,内核将看不到数据包,也不会触发tcpdump钩子。该文档解释了如何: i)编译支持pdump和pcap的dpdk;ii)启用您的主进程-应用程序-将数据包信息提供给辅助进程- pdump sample application。
然后,可以将生成的pcap与wireshark一起使用。
https://stackoverflow.com/questions/55153654
复制相似问题