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
- 具有匹配操作的 RTE_FLOW 可以通过启用
dpdk ovs build in compilation and run with other_config:hw-offload=true
卸载到 NIC(如@stackinside 所建议)。但这不适用于 LAG,它适用于精确匹配 table 卸载到 FPGA - 对于硬件 LAG 启用,您需要与 FPGA 工程师合作,通过对 LUT 进行编程来创建 HW LAG FPGA 二进制文件。然后通过对 PF 的自定义 IOCTL 调用(通过管理队列)将此功能公开给 OVS。
- 完成该步骤后,您可以通过修改 IFCVF 驱动程序以支持硬件 LAG 来公开 DPDK。
注意:这会将 DMA virtio RX-TX 的实际硬件功能破坏为不同的东西。 ovs-dpdk 中没有可以为 FPGA 创建二进制映像的补丁。
因此您的问题的答案是
[问题-1]我想在我的OVS-DPDK中实现LACP/LAG并将其卸载到硬件(硬件滞后)(描述中有描述)
[Answer] OVS-DPDK
有3种模式LAG/LACP- 通过 OVS-DPDK(软件)逻辑
- 通过 DPDK 库(软件)
- 通过 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- 英特尔方面的 ASIC,如 FM10K、FM12K 和 Snow Ridge SoC 具有 LAG,但必须使用 IES 通过 SDK 配置 API。
- Mellanox 嵌入式交换机可以创建和维护HW LAG,请参考ovs and not DPDK-OVS LAG over BRIDGE-PHYSICAL
- 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 补丁。因此步骤将是
- 识别正在使用的 ASIC
- 从供应商或供应商那里找到 OVS 的补丁 github
- 应用补丁并重建 OVS-DPDK
- 根据补丁使用正确的桥接设置延迟
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 特定的硬件卸载补丁