0

我们正在尝试在 Connectx-6 LX 上使用发送调度。如果我们没有在数据包缓冲区上设置时间戳,并在大约正确的时间手动发送每个数据包,那么一切正常。但是,如果我们在缓冲区中设置时间戳,则发送前 25 个数据包并在预期时间接收数据包,但所有后续调用都rte_eth_tx_burst返回 0。如果相关,我们将在每个突发中发送一个数据包,时间戳相距 125 us。

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

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

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

4

1 回答 1

0

看起来这是由于没有足够的 TX 描述符造成的,我们只指定了 64,增加到 1024 可以解决问题。

于 2022-02-08T15:15:51.777 回答