dpdk - 从 RX 环接收并在 TX 路径上释放的 DPDK 缓冲区
问题描述
考虑一个 DPDK 程序,其中每个 EAL 线程:
- 在自己的 RX 队列上接收数据包
- 就地修改缓冲区
- 将其放回 TX 环上以将其回显给发送者
RX 缓冲区没有被明确地释放,因为它们在 TX 环上被重新使用。依靠 NIC 处理的 TX 队列来释放 RX 环中的条目是一种好习惯吗?
解决方案
成功放入 Tx 队列的缓冲区将由 PMD 释放。这是唯一的选择,所以是的,这是一个很好的做法。
但请注意,将数据包突发放入 Tx 队列可能会失败,因为队列可能由于某种原因已满。因此,如果在 之后有任何未排队的数据包rte_eth_tx_burst()
,则必须手动释放这些数据包,否则必须重试传输。
推荐阅读
- c# - 在 VFP 中完成 dll 的 WCF 中的 com 引用出错
- python - 使用 Astropy 打开 FITS 文件会导致 FileNotFoundError
- c - 返回值时赋值
- c# - 尝试调用另一个类方法时出错
- botframework - Microsoft BotFramework-WebChat 收到两条欢迎消息
- android - Kotlin 泛型异常
- flutter - 如果用户在颤动中单击后退按钮,如何打开特定屏幕?
- php - 如何在 cakephp 3 中保存数据并保存到 joinTable
- triggers - 有人可以解释一下在 cassandra v3.11 中创建触发器的步骤吗?
- azure - 通过测试用例 ID 获取结果