Connectx-6 LX scheduled sending 只发送25包

Connectx-6 LX scheduled sending only sending 25 packets

我们正在尝试在 Connectx-6 LX 上使用发送计划。如果我们不在数据包缓冲区上设置时间戳,并在大致正确的时间手动发送每个数据包,一切正常。但是,如果我们在缓冲区中设置时间戳,则会发送前 25 个数据包,并在预期时间接收数据包,但所有后续调用 rte_eth_tx_burst return 0。如果相关,我们将发送单个数据包在每个突发中,时间戳相隔 125 us。

我们已尝试将时间戳设置为较低的值,并且数据包已正确传输,并且正如预期的那样 tx_pp_timestamp_past_errors 值增加了。我们还设置了高值,这也适用于 tx_pp_timestamp_future_errors 递增。

知道从哪里开始调试吗?我看不到任何 API 会给出 rte_eth_tx_burst 失败的错误代码。

我们在 Ubuntu 20.04 上使用 DPDK 21.08 和 5.4.3.1 Mellanox 驱动程序。

看起来这是因为没有足够的 TX 描述符,我们只指定了 64,增加到 1024 解决了这个问题。