Как использовать librte_pmd_pcap из dpdk в нашем собственном приложении dpdk для захвата пакетов?

Я новичок в DPDK, я пытаюсь написать свое собственное приложение, которое будет захватывать пакеты на скорости передачи данных. Могу ли я использовать libpcap long пространства ядра по умолчанию с кольцом dpdk и lcore. Или я могу использовать librte_pmd_pcap, который является частью пакета dpdk.

Librte_pmd_pcap внутренне использует libpcap пространства ядра.

И я не знаю, как использовать librte_pmd_pcap в моем собственном приложении dpdk. Может ли кто-нибудь помочь мне использовать librte_pmd_pcap в нашем собственном приложении dpdk для захвата пакетов tcp.

* Я протестировал приложение testpmd, которое поставляется с пакетом dpdk, testpmd работает нормально. Мне нужна ваша помощь в написании моего собственного приложения dpdk. Заранее спасибо.


person Isai selvan    schedule 15.11.2015    source источник
comment
Мне удалось включить rte_eth_pcap.c в код приложения и получить доступ к API. И это позволило мне использовать опцию EAL -vdev для моего приложения.   -  person Isai selvan    schedule 19.03.2017


Ответы (2)


Мне удалось включить rte_eth_pcap.c в код приложения и получить доступ к API. И это позволило мне использовать опцию EAL -vdev для моего приложения.

person Isai selvan    schedule 19.03.2017

Если под «librte_pmd_pcap» вы имеете в виду этот исходный файл использует libpcap, библиотеку user-mode; это не часть ядра. Он использует механизмы режима ядра в операционных системах (во множественном числе), которые он поддерживает; он использует BPF в *BSD, OS X и Solaris 11; он использует сокеты PF_PACKET в Linux (если вы не используете древний Linux, и в этом случае он использует сокеты SOCK_PACKET); и т.д..

Вы можете использовать libpcap напрямую, который будет использовать тот же механизм ядра, что и любой другой код, использующий libpcap, включая код, на который я ссылался.

person Community    schedule 15.11.2015