我是DPDK的新手,这是我刚刚被分配到的新项目。
有一个硬件流量生成器设备,通过以太网连接到PC。目前的情况如下:
- 将数据从流量生成器发送到PC,
- DPDK 接收它,然后相应地处理它,
- 最后,数据被发送回流量生成器。
目标是:
- 将数据从流量生成器发送到PC,
- DPDK 接收它,然后相应地处理它,
- DPDK 输出由 python 脚本处理,然后发送到相应的端口。
我们遇到的问题是找到一个关于如何从 DPDK 获取输出的想法,因为它希望将流量直接发送到流量生成器的端口。
提前感谢您的答案和建议!
有多种选项可以将 DPDK 与其他应用程序集成,例如:
-
点击/点击轮询模式驱动程序:https://doc.dpdk.org/guides/nics/tap.html
DPDK 应用程序可以将流量转发到一个抽头 vdev 并从另一个抽头轮询。而python或其他应用程序可以从一个内核接口读取数据包并发送到另一个内核接口。
-
KNI 轮询模式驱动程序:https://doc.dpdk.org/guides/nics/kni.html
与上述相同,但使用专有(更快(驱动程序。
-
Libpcap 轮询模式驱动程序:https://doc.dpdk.org/guides/nics/pcap_ring.html
DPDK应用程序可以将pcap格式的数据包发送到Unix套接字,而python应用程序可以从套接字读取数据。
请注意,上面列出的所有选项都无法处理每秒超过 1M 的数据包,更不用说 Python 性能了。即使是处理 1M 个数据包也将是一个挑战......
如果您需要处理超过 1M 的 PPS,您可能应该寻找其他地方,几乎没有选择......
虽然这个问题有点太宽泛了,但我希望现在你有一些提示来寻找;)