2015-11-15 22 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的任何其他代碼相同的內核機制,包括鏈接到的代碼。

相關問題