背景
使用 DPDK 20.11 编译出的 DPVS,查看是否支持 博通100G网卡。
检查
基本信息查看
(1) 博通网卡驱动
(2) 网卡的pci
(3) 网卡的设备id,厂商id (4)网卡类型查看
lspci -s 4b:00.0 -vvv 如上,型号为 BCM957508-P2100G。单卡双口100G。
(5)博通官网信息查看
参见:博通官网
BCM957508-P2100G Data Sheet
(6) 查看DPDK 20.11,是否支持该网卡,以及对应的PDM驱动
注:也可以通过查看DPDK 20.11 的官方文档,查看是否支持博通 100G网卡。
处理
dpdk-devbind
绑定igb_uio驱动。绑定之前,确保接口down掉。 支持的 PMD如下: 参见:dpdk22.03 BNXT Poll Mode Driver
dpdk-devbind -u xxx
dpdk-debbind -b igb-uio xxx
性能报告
博通网卡在DPDK中的性能测试报告
参见:各个网卡在 DPDK各个版本的 PERFORMANCE REPORTS
问题
rte_flow_validate 失败
rte_flow_validate 时,不允许action为 queue 且 queue_id 为的0的rte_flow 。 原因:
感觉像是说: 之前RSS和FDIR不可以共同配置到一个网卡上。之前如果RSS disable,那么非0号rx_queue用来fdir/flow bifurcation, 0号队列接收剩余的所有包(相对于0号rx_queue给RSS使用)。后来RSS可以和FDIR共存,那么还是0号队列依然是给RSS使用,其他的非0 rx_queue可以用来设置RSS以及FDIR规则。这样改的目的是,代码改动简单。
上面的rx_queue是否为0,从DPDK19.11至今(2022.3)是一直存在的。 上面作者临时给了一个未经过验证的草稿的 Patch。
参考:dpdk commit
rte_flow_crete 时没有区分tcp/udp
两条rte_flow,一个是tcp的,一个是udp,先后执行 rte_flow_crate 插入,则插入第二条时,会报existed 的错误。
总结
DPVS适配博通100G网卡需要改动挺大。主要是rx_queue 0 不允许设置 FDIR(rte_flow) .
参考
|