在SR-IOV虚拟功能VFNIC之间转发数据包

问题描述

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

VF and VM Configuration

我的物理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)。