在 SR-IOV 虚拟功能 (VF) NIC 之间转发数据包

Forward packets between SR-IOV Virtual Function (VF) NICs

我有一个支持英特尔 SR-IOV 的英特尔 82599ES 10G 网卡。我已经成功地为它创建了 8 个虚拟功能 (VF) 并分配给了 2 qemu/kvm 个虚拟机(每个虚拟机有 2 个 VF)。两个虚拟机 运行 DPDK 应用程序(一个是 warp17,另一个是我的自定义应用程序)都使用分配的 VF。我需要做的是通过使用 warp17 发送流量来测试我的自定义 DPDK 应用程序。我的测试设置看起来像这样, 红色箭头代表交通路径。

我的物理 NIC (PF) 使用 dpdk 轮询模式驱动程序 (igb_uio)。我需要做的是在 VF 之间路由流量,如红色箭头所示。我认为 https://doc.dpdk.org/guides/prog_guide/switch_representation.html 已经解释了切换行为,但我无法理解。 warp17 和我的自定义 dpdk 应用程序都可以在物理硬件上完美运行。我想做的是虚拟化我的测试设置以保留资源。有没有人尝试过这样的配置?

X710 fortville 和 Ninatic 82599ES ASIC 都没有内部桥接或转发 VERBfeature。最好的选择是让软件虚拟交换机(如 SPPOVS-DPDK 或自定义应用程序通过 virtio 或 tap 转发数据包。

如果您仍想使用物理 NIC 或 x710 或 82599ES,您将需要在另一端建立连接,并且 运行 将数据包定向到相关 VF 的逻辑(修改 dst mac)。

Edit-1:(根据 DPDK 20.11)VEB 虚拟以太网桥接是一个选项,但需要特定的 NIC 固件和驱动程序才能在 PF 上创建 VEB,然后传播到 VF。完成后网卡无法接收来自外部世界的数据包