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

如何解决Mellanox Bluefield 2巨帧测试中Scatter offload未配置错误?

解决DPDK 20.11.1下Mellanox BlueField 2巨帧测试的Scatter Offload配置错误

问题原因

Mellanox BlueField 2的mlx5 DPDK驱动在启用巨帧(Jumbo Frame)时,强制要求同时启用Scatter RX Offload。巨帧长度超过常规MTU后,硬件会将其拆分为多个接收段,Scatter Offload用于让驱动正确处理这些分散的数据包段,未配置该offload会导致队列初始化失败。

解决方案

需要在网卡配置的RX offloads中添加DEV_RX_OFFLOAD_SCATTER标志,具体修改如下:

1. 修改默认端口配置

在初始的port_conf结构中,直接为RX offloads添加Scatter支持:

static struct rte_eth_conf port_conf = {
        .rxmode = {
                .mq_mode        = ETH_MQ_RX_RSS,
                .max_rx_pkt_len = 9000,
                .split_hdr_size = 0,
                // 添加DEV_RX_OFFLOAD_SCATTER到默认RX offloads
                .offloads = DEV_RX_OFFLOAD_CHECKSUM | DEV_RX_OFFLOAD_SCATTER,
        },
        .rx_adv_conf = {
                .rss_conf = {
                        .rss_key = NULL,
                        .rss_hf = ETH_RSS_IP | ETH_RSS_UDP |
                                ETH_RSS_TCP | ETH_RSS_SCTP,
                },
        },
        .txmode = {
                .mq_mode = ETH_MQ_TX_NONE,
                .offloads = (DEV_TX_OFFLOAD_CHECKSUM|DEV_TX_OFFLOAD_MULTI_SEGS),

        },
};

2. 或在启用巨帧的分支中添加

如果希望仅在启用巨帧时才开启Scatter Offload,也可以在--enable-jumbo的处理逻辑中添加:

printf("jumbo frame is enabled\n");

// 添加Scatter RX offload
port_conf.rxmode.offloads |= DEV_RX_OFFLOAD_JUMBO_FRAME | DEV_RX_OFFLOAD_SCATTER;
port_conf.txmode.offloads |= DEV_TX_OFFLOAD_MULTI_SEGS;

3. 验证其他配置

  • 确保max_rx_pkt_len设置的值(如8000)不超过硬件支持的最大巨帧长度,BlueField 2通常支持最大9000字节的巨帧。
  • 确认TX侧的DEV_TX_OFFLOAD_MULTI_SEGS已配置(你的代码中已经添加,无需修改),该offload用于支持巨帧的分段发送。

验证修改

重新编译l3fwd-acl后,使用原命令启动:

./l3fwd-acl -l 1,2 -n 4  -- -p 0x3 --config="(0,0,1),(1,0,2)" --rule_ipv4="/root/rule_ipv4.db" --rule_ipv6="/root/rule_ipv6.db" --eth-dest=0,01:00:00:00:00:00 --enable-jumbo --max-pkt-len=8000

此时RX队列初始化不会再出现Scatter offload未配置的错误。

内容的提问来源于stack exchange,提问作者ima

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 03:24:25