OVS-DPDK 中是否有针对硬件 LAG 模式实现的补丁?

Is there any patch for hardware LAG mode implementation in OVS-DPDK?

我想在我的 OVS-DPDK 中实现 LACP/LAG 并将其卸载到硬件(硬件滞后)。但是我没有找到任何相关的补丁,你能给我一些我可以继续的建议吗?

详情: 1). OVS版本:2.13.0 2). DPDK 版本 19.11.0 3). OS "美分OS Linux 7" 4).使用虚拟 DPDK 网卡 5).尝试使用滞后 PMD 来实现(这个领域的新手,对这些没有太多深入的了解,因此如果有的话,请搜索补丁)。 6). 运行 在使用 OVS 创建的交换机上滞后

[Edit-2] 基于评论 "X722" but in dpdk I am using the ifc modules

的更新

正在使用的 PCIe NIC 卡 Intel FPGA 100G VF,它通过跳过对像 OVS-DPDK 这样的虚拟交换机的需要,通过 DMA 复制到 virtio VF 端口来使用 virtio vDPA 加速。

简答there is no ready-made support for Hardware Lag orRTE_FLOW through IFC PMD

如果您完成以下

,详细答案是you can
  1. 具有匹配操作的 RTE_FLOW 可以通过启用 dpdk ovs build in compilation and run with other_config:hw-offload=true 卸载到 NIC(如@stackinside 所建议)。但这不适用于 LAG,它适用于精确匹配 table 卸载到 FPGA
  2. 对于硬件 LAG 启用,您需要与 FPGA 工程师合作,通过对 LUT 进行编程来创建 HW LAG FPGA 二进制文件。然后通过对 PF 的自定义 IOCTL 调用(通过管理队列)将此功能公开给 OVS。
  3. 完成该步骤后,您可以通过修改 IFCVF 驱动程序以支持硬件 LAG 来公开 DPDK。

注意:这会将 DMA virtio RX-TX 的实际硬件功能破坏为不同的东西。 ovs-dpdk 中没有可以为 FPGA 创建二进制映像的补丁。

因此您的问题的答案是

[问题-1]我想在我的OVS-DPDK中实现LACP/LAG并将其卸载到硬件(硬件滞后)(描述中有描述)

[Answer] OVS-DPDK

有3种模式LAG/LACP
  1. 通过 OVS-DPDK(软件)逻辑
  2. 通过 DPDK 库(软件)
  3. 通过 OVS-DPDK 硬件卸载(OVS-DPDK 不可知和 OVS-DPDk 感知)

对于 OVS-DPDK 软件逻辑,我要求您检查 red hat ovs-dpdk configuration 并使用 show lacp 1 验证 lag-1 详细信息。

对于 DPDK 库滞后(软件),请添加带有选项 --vdev 'net_bonding0,bond_opt0=..,bond opt1=..' 的 DPDK-LAG 接口,如前所述 dpdk test lag url

对于硬件从

卸载 LAG
  1. 英特尔方面的 ASIC,如 FM10K、FM12K 和 Snow Ridge SoC 具有 LAG,但必须使用 IES 通过 SDK 配置 API。
  2. Mellanox 嵌入式交换机可以创建和维护HW LAG,请参考ovs and not DPDK-OVS LAG over BRIDGE-PHYSICAL
  3. Broadcom、Marvell 和 netrnome 的情况类似。

但是 HW LAG 不是 DPDK 端口或 DPDK 端口表示的一部分。因此,HW 供应商或 ASIC 供应商将通过 SDK 进行自定义调用。

注:list IP FPGA firmware offered by Intel

[问题-2]是使用OVS创建bonds并与dpdk集成实现lag实现(来自评论)

[Answer] 我相信有针对 Broadcom、Marvell、Mellanox 和 netrnome 的 OVS(而不是 ovs-dpdk)的供应商特定补丁。在这些模型中,桥接器有一个特定名称,指向 ASIC 或嵌入式交换机 br-phy。您将与供应商取得联系或查看供应商 github 页面以获取 OVS 补丁。因此步骤将是

  1. 识别正在使用的 ASIC
  2. 从供应商或供应商那里找到 OVS 的补丁 github
  3. 应用补丁并重建 OVS-DPDK
  4. 根据补丁使用正确的桥接设置延迟 example br-phy that is bridge physcial

注意:请求的 ASIC 和供应商信息,因为它不是共享的,所以很难在 Github 中查找。

[EDIT-1] OVS-DPDK 通常依赖于 RTE_FLOW 来进行任何基于硬件的卸载。通过集成 ASIC SDK,供应商或 ASIC 特定 offload/patches 可用于供应商 OVS/OVS-DPDK。

@DeepakSahoo 在评论中分享了 link DPDK NIC(也在评论中)。请尝试识别ASIC并使用lshw -c net -businfo。如果它是通过 RTE_FLOW 或 NIC 特定 DPDK API 的通用访问,我们可以将 LAG 卸载到硬件嵌入式交换机。但如果它不存在,您需要访问 SDK 和库以配置 HW ASIC 或嵌入式交换机,然后从 OVS-DPDK 代码库调用这些调用。我在上面的评论中分享了 mellanox 今天是如何为 OVS 完成的。因此没有供应商或 ASIC 特定的硬件卸载补丁