DPDK 在一个端口上得到太多 rx_crc_errors
DPDK getting too many rx_crc_errors on one port
什么可能导致 DPDK 端口中的 rx_crc_erros?
是软件的事吗?或者与端口或来自另一端的流量相关的硬件?
DPDK 版本:19.02
PMD: I40E
此端口在客户网络上 运行,值得一提的是这是唯一具有此行为的端口(共 4 个),因此这可能是 router/traffic 的事情,但我无法验证
使用 dpdk-proc-info 获取此数据
无法执行任何其他操作 activity,因为这是 运行 在客户站点上
DPDK I40E PMD 只有在端口上启用或禁用 CRC 的选项。因此,可以完全排除 DPDK I40E PMD 导致 4 个端口中的 1 个端口出现 CRC 错误的假设。
'RX 数据包由每个端口的 ASIC 验证 CRC,然后 DMA 到 mbuf 用于数据包缓冲区。 PMD 将描述符状态复制到 mbuf 结构(其中之一是 CRC)。数据包描述符向驱动程序指示数据包缓冲区的 CRC 结果 (Kernel/DPDK-PMD)。因此,由于以下原因,可能会出现给定端口上的 CRC 错误
- 连接ASIC的端口故障(极少数情况)
SFP+
未正确连接(可能)。
- SFP+ 不是推荐的(可能)。
- 来自另一端的流量正在发送错误的 CRC 数据包。
需要通过
来隔离问题
- 将端口绑定到 Linux 驱动程序
i40e
并通过 ethtool -S [port]
. 检查统计信息
- 检查 SFP+ 在故障端口上的兼容性,方法是更换工作正常的端口。
- 重新安装 SFP+。
- 交换工作端口和故障端口之间的数据线。然后检查是否存在错误。
如果以上4种情况都只出现在故障端口,那么网卡确实只有4个工作端口中的3个,需要更换网卡或者干脆忽略故障端口。 Hence this is not a DPDK PMD or library issue
.
什么可能导致 DPDK 端口中的 rx_crc_erros? 是软件的事吗?或者与端口或来自另一端的流量相关的硬件?
DPDK 版本:19.02 PMD: I40E
此端口在客户网络上 运行,值得一提的是这是唯一具有此行为的端口(共 4 个),因此这可能是 router/traffic 的事情,但我无法验证
使用 dpdk-proc-info 获取此数据
无法执行任何其他操作 activity,因为这是 运行 在客户站点上
DPDK I40E PMD 只有在端口上启用或禁用 CRC 的选项。因此,可以完全排除 DPDK I40E PMD 导致 4 个端口中的 1 个端口出现 CRC 错误的假设。
'RX 数据包由每个端口的 ASIC 验证 CRC,然后 DMA 到 mbuf 用于数据包缓冲区。 PMD 将描述符状态复制到 mbuf 结构(其中之一是 CRC)。数据包描述符向驱动程序指示数据包缓冲区的 CRC 结果 (Kernel/DPDK-PMD)。因此,由于以下原因,可能会出现给定端口上的 CRC 错误
- 连接ASIC的端口故障(极少数情况)
SFP+
未正确连接(可能)。- SFP+ 不是推荐的(可能)。
- 来自另一端的流量正在发送错误的 CRC 数据包。
需要通过
来隔离问题- 将端口绑定到 Linux 驱动程序
i40e
并通过ethtool -S [port]
. 检查统计信息
- 检查 SFP+ 在故障端口上的兼容性,方法是更换工作正常的端口。
- 重新安装 SFP+。
- 交换工作端口和故障端口之间的数据线。然后检查是否存在错误。
如果以上4种情况都只出现在故障端口,那么网卡确实只有4个工作端口中的3个,需要更换网卡或者干脆忽略故障端口。 Hence this is not a DPDK PMD or library issue
.