我正在尝试测试 XDP 程序,但客户端提供的测试环境由一台服务器和在其上运行的 qemu 来宾组成,并充当流量生成器(使用 scapy 或 DPDK)。为了让这个测试成功运行,来自来宾的数据包应该到达/被注入到主机的 NIC 驱动程序(XDP 在本机模式下工作)。是否有任何配置/黑客可以使流量从访客传输到主机驱动程序?
编辑: 正如@vipin 建议的那样,一些要点需要清除,
无论如何,我有一个解决办法就是在实验室设置中添加一个物理路由器,这对于这个阶段的测试来说已经足够了。
答案 0 :(得分:0)
Linux 中支持的 XDP(Express Data Path)是针对 RX 端的,并且有针对 TX 的补丁,但没有集成。基于当前的更新,XDP-eBPF 在物理网卡上。所以物理网卡上的所有RX数据包都被处理了。
但根据共享的问题 packets from the guest should arrive/be injected to the NIC driver ( XDP working in native mode ) of the host.
。如果需要为来自 GUEST OS 的流量运行逻辑,则必须将 XDP 加载到 emulator or TAP or Bridge
接口。这将允许基于内核 NIC id 将数据包重定向到物理 NIC。