You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DPDK19.11下i40e XL710发包失败:TX描述符219未完成求助

解决DPDK 19.11 + XL710网卡发送失败(TX descriptor未完成)问题

针对你遇到的TX descriptor 219 is not done(port=0 queue=0)报错,结合DPDK 19.11和XL710网卡的特性,可从以下几个方向排查解决:

1. 检查TX描述符环的配置合法性

XL710的i40e驱动对TX描述符环大小有严格要求:

  • 环大小必须是2的幂次,且范围在128~4096之间(DPDK 19.11版本限制)
  • 若当前配置的环大小过小(比如默认256),高负载下容易出现描述符耗尽未回收的情况
  • 建议在初始化时将TX队列环大小设置为1024或2048,示例代码:
    int ret = rte_eth_tx_queue_setup(port_id, 0, 1024, 
                                    rte_eth_dev_socket_id(port_id), NULL);
    if (ret != 0) {
        rte_exit(EXIT_FAILURE, "Failed to setup TX queue\n");
    }
    

2. 验证TSO卸载的参数正确性

启用TSO时,Mbuf的参数配置错误是常见触发点:

  • 必须确保Mbuf的ol_flags包含PKT_TX_TCP_SEG标志
  • tso_segsz需设置为合法值(如1460,对应MTU 1500的TCP分段大小)
  • 需保证IP头、TCP头格式正确,且数据包总长度大于tso_segsz
  • 可添加调试代码校验参数:
    struct rte_mbuf *mbuf = ...; // 待发送的Mbuf
    if (mbuf->ol_flags & PKT_TX_TCP_SEG) {
        if (mbuf->tso_segsz < 536 || mbuf->tso_segsz > 65535) {
            printf("Invalid TSO segment size: %u\n", mbuf->tso_segsz);
        }
    }
    

3. 升级网卡固件版本

当前使用的固件版本6.80存在已知的TSO和描述符处理兼容性问题,建议升级到Intel官方推荐的DPDK 19.11适配版本(如7.10及以上),旧固件可能导致硬件无法正确完成TX描述符的回收。

4. 排查VFIO-PCI驱动的环境配置

  • 确认系统已启用IOMMU,启动参数需添加intel_iommu=on iommu=pt
  • 检查网卡是否被DPDK独占,无其他驱动(如i40e内核驱动)占用资源,可通过dpdk-devbind.py --status确认绑定状态

5. 优化TX发送逻辑

  • 避免单次调用rte_eth_tx_burst发送过多数据包,建议每次发送量不超过TX队列可用描述符的70%
  • 发送前可调用rte_eth_tx_queue_count获取可用描述符数量,动态调整发送批量:
    uint16_t avail = rte_eth_tx_queue_count(port_id, 0);
    uint16_t send_num = RTE_MIN(avail * 7 / 10, num_pkts);
    uint16_t sent = rte_eth_tx_burst(port_id, 0, pkts, send_num);
    

6. 确认rte_eth_tx_prepare的处理完整性

虽然函数返回正常,但需校验其实际处理的数据包数量是否与待发送数量一致:

uint16_t prepared = rte_eth_tx_prepare(port_id, 0, pkts, num_pkts);
if (prepared != num_pkts) {
    printf("TX prepare failed for %u packets\n", num_pkts - prepared);
}

若存在未被正确处理的数据包,需检查Mbuf的合法性(如是否为DPDK分配的Mbuf、数据区是否越界)。

内容的提问来源于stack exchange,提问作者J.Heng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 17:01:05