【问题标题】:How to use librte_pmd_pcap of dpdk in our own dpdk app for packet capturing?如何在我们自己的dpdk应用中使用dpdk的librte_pmd_pcap进行抓包?
【发布时间】:2015-11-15 08:34:57
【问题描述】:

我是 DPDK 的新手,我正在尝试编写自己的应用程序,它会以线速捕获数据包。我可以将默认的内核空间 libpcap long 与 dpdk ring 和 lcore 一起使用吗?或者我可以使用 dpdk 包中的 librte_pmd_pcap。

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

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

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

【问题讨论】:

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

标签: network-programming intel libpcap packet-capture dpdk


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-12-06
      • 2020-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多