2015-11-15 23 views
0

我是DPDK的新手,我试图编写自己的应用程序,它可以以线速捕捉数据包。我可以使用dpdk ring和lcore的默认内核空间libpcap long吗?或者我可以使用属于dpdk包的librte_pmd_pcap。如何在我们自己的dpdk应用程序中使用dpdk的librte_pmd_pcap进行数据包捕获?

Librte_pmd_pcap在内部使用内核空间libpcap。

我不知道如何在我自己的dpdk应用程序中使用librte_pmd_pcap。 有人可以帮助我在我们自己的dpdk应用程序中使用librte_pmd_pcap来捕获TCP数据包。

*我测试了dpdk软件包附带的testpmd应用程序,testpmd工作正常。我需要你的帮助来编写我自己的dpdk应用程序。提前致谢。

+0

我能够将rte_eth_pcap.c包含到应用程序代码并访问api。这使我可以在我的应用程序中使用-vdev EAL选项。 – Immortalisai

回答

1

我能够将rte_eth_pcap.c包含到应用程序代码并访问api。这使我可以在我的应用程序中使用-vdev EAL选项。

1

如果通过“librte_pmd_pcap”指的是this source file,它使用libpcap,这是一个用户模式库;它不是内核的一部分。它在它支持的操作系统(复数)上使用内核模式机制;它在* BSD,OS X和Solaris 11上使用BPF;它在Linux上使用PF_PACKET套接字(除非你在一个古老的Linux上,在这种情况下它使用SOCK_PACKET套接字);

您可以直接使用libpcap,它将使用与使用libpcap的任何其他代码相同的内核机制,包括链接到的代码。

相关问题