DPDK在一个端口上收到太多rx_crc_errors

时间:2020-11-11 12:41:27

标签: dpdk

什么会导致DPDK端口中出现rx_crc_erros? 这是软件吗?还是与端口或来自另一端的流量相关的硬件?

DPDK版本:19.02 PMD:I40E

此端口正在客户网络上运行,值得一提的是,这是唯一具有此行为的端口(4个端口),因此这可能是路由器/流量问题,但我无法验证

使用dpdk-proc-info获取此数据 enter image description here

无法执行任何其他活动,因为该活动正在客户网站上运行

1 个答案:

答案 0 :(得分:0)

DPDK I40E PMD仅具有启用或禁用端口CRC的选项。因此,可以完全排除DPDK I40E PMD导致4个端口中的1个端口出现CRC错误的假设。

`RX数据包通过ASIC在每个端口上进行CRC验证,然后通过DMA到mbuf进行数据包缓冲。 PMD将解密器状态复制到mbuf结构(其中之一是CRC)。数据包描述符向驱动程序(Kernel / DPDK-PMD)指示数据包缓冲区的CRC结果。因此,给定端口上的CRC错误可能是由于以下原因引起的,

  • 连接到ASIC的端口有故障(非常罕见)
  • SFP+未正确连接(可能)。
  • 不是推荐的SFP +(可能)。
  • 来自另一端的流量正在发送CRC数据包作为错误。

需要通过以下方式隔离问题

  1. 将端口绑定到Linux驱动程序i40e,并通过ethtool -S [port]检查统计信息。
  2. 通过与工作端口互换来检查SFP +在故障端口上的兼容性。
  3. 再次重新安装SFP +。
  4. 在工作端口和故障端口之间交换数据电缆。然后检查错误是否存在。

如果以上所有4种情况都仅在故障端口上出现错误,则说明NIC卡实际上在4个端口中只有3个工作端口。NIC卡需要更换,或者其中一个应完全忽略该故障端口。 Hence this is not a DPDK PMD or library issue