You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OVS-DPDK搭配Intel SR-IOV虚拟功能(VF)使用时发包报错问题咨询

OVS-DPDK对接Intel X710 SR-IOV VF端口TX报错问题分析

问题复现操作步骤

  • 网卡端口绑定UIO驱动:物理功能(PF)端口绑定igb_uio,虚拟功能(VF)端口绑定vfio_pci
  • 将绑定完成的DPDK端口添加到OVS,命名为dpdkport
  • 向OVS添加vhostuser端口
  • 配置流规则,将报文从vhostuser端口转发到dpdkport
  • 运行pktgen或testpmd等DPDK报文生成工具向vhostuser端口发流,报文经OVS转发后通过dpdkport发送到物理网卡

问题现象

上述流程对接PF端口时运行完全正常,切换为SR-IOV VF端口后报文发送全部失败。通过ovs-ofctl dump-ports查看端口统计,TX方向错误数暴涨,无成功发送报文。

错误日志

执行命令:

ovs-ofctl dump-ports ovs-br0 dpdk-p0

返回结果:

OFPST_PORT reply (xid=0x4): 1 ports port  "dpdk-p0": rx pkts=0, bytes=0, drop=0, errs=0, frame=?, over=?, crc=? tx pkts=0, bytes=0, drop=0, errs=317971312, coll=? 

根因排查方向

1. VF权限配置问题

X710的VF默认未开启杂合模式、VLAN过滤允许、MAC地址修改权限,如果OVS转发的报文目的MAC不是VF的默认MAC、或者带VLAN标签,会被VF硬件直接丢弃,表现为TX err计数上涨。
解决办法:在PF所在宿主机执行命令配置VF权限,以PF为eth0、VF编号为0为例:

ip link set eth0 vf 0 trust on
ip link set eth0 vf 0 spoofchk off
ip link set eth0 vf 0 promisc on

2. DPDK驱动兼容性问题

确认使用的DPDK版本与i40e PMD驱动版本匹配X710网卡的固件版本,X710 VF在老版本DPDK中存在TX队列初始化异常的已知问题,建议将网卡固件升级到6.8以上版本,DPDK升级到19.11 LTS及以上版本。

3. OVS DPDK端口配置问题

检查OVS添加DPDK端口时的配置参数,是否指定了错误的队列数、MTU值:

  • VF的队列数不能超过该VF分配的最大队列数,X710单个VF默认最大队列数为4
  • 如果发送报文长度超过VF配置的MTU,也会被直接丢弃触发TX err

4. 大页配置一致性问题

确认OVS、DPDK报文生成工具使用的大页尺寸、大页内存节点一致,跨NUMA节点访问大页内存会导致报文传输失败,VXLAN/GRE等隧道报文还会因为分片错误触发硬件丢弃。

内容的提问来源于stack exchange,提问作者Micheal XIV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 09:36:03