QEMU 来宾如何将数据包发送到主机的 NIC?

how QEMU guest can send packets to NIC of the host?

我正在尝试测试 XDP 程序,但测试环境是由客户端提供的,其中包括一台服务器和 qemu guest 运行ning 在其上并充当流量生成器(使用 scapy 或 DPDK)。为了让这个测试 运行 成功,来自来宾的数据包应该 arrive/be 注入主机的 NIC 驱动程序(XDP 在本机模式下工作)。有什么 configs/hacks 可以使流量从来宾到主机驱动程序吗?

编辑: 按照@vipin 的建议清除一些要点,

无论如何,我有一个变通办法,就是在实验室设置中添加一个物理路由器,这对于这个测试阶段来说已经足够了。

Linux支持的XDP(Express Data Path)是针对RX端的,TX有补丁但没有集成。基于当前的更新,XDP-eBPF 在物理 NIC 上。所以物理NIC上的所有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。