首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决Mellanox中Jumbo帧测试中未配置的分散卸载问题

如何解决Mellanox中Jumbo帧测试中未配置的分散卸载问题
EN

Stack Overflow用户
提问于 2022-08-11 12:20:36
回答 1查看 111关注 0票数 0

如何解决在Bluefield Mellanox 2中测试Jumboframes的分散卸载配置错误?DPDK版本- 20.11.1

错误详细信息:

代码语言:javascript
复制
Initializing rx queues on lcore 1 ... rxq=0,0,0 mlx5_pci: port 0 Rx queue 0: Scatter offload is not configured )
mlx5_pci: port 0 unable to allocate queue index 0
EAL: Error - exiting with code: 1
  Cause: rte_eth_rx_queue_setup: err=-12,port=0*

./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

编辑了l3fwd-acl示例,以启用大型Edited测试。

代码语言:javascript
复制
static struct rte_eth_conf port_conf = {
        .rxmode = {
                .mq_mode        = ETH_MQ_RX_RSS,
                .max_rx_pkt_len = 9000,
                .split_hdr_size = 0,
                .offloads = DEV_RX_OFFLOAD_CHECKSUM,
        },
        .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),

        },
};

if (!strncmp(lgopts[option_index].name,
                                        OPTION_ENBJMO, sizeof(OPTION_ENBJMO))) {
                                struct option lenopts = {
                                        "max-pkt-len",
                                        required_argument,
                                        0,
                                        0
                                };

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

                                port_conf.rxmode.offloads |=
                                                DEV_RX_OFFLOAD_JUMBO_FRAME;
                                port_conf.txmode.offloads |=
                                                DEV_TX_OFFLOAD_MULTI_SEGS;

 /*
                                 * if no max-pkt-len set, then use the
                                 * default value RTE_ETHER_MAX_LEN
                                 */
                                if (0 == getopt_long(argc, argvopt, "",
                                                &lenopts, &option_index)) {
                                        ret = parse_max_pkt_len(optarg);
                                        if ((ret < 64) ||
                                                (ret > MAX_JUMBO_PKT_LEN)) {
                                                printf("invalid packet "
                                                        "length\n");
                                                print_usage(prgname);
                                                return -1;
                                        }
                                        port_conf.rxmode.max_rx_pkt_len = ret;
                                }
                                printf("set jumbo frame max packet length "
                                        "to %u\n",
                                        (unsigned int)
                                        port_conf.rxmode.max_rx_pkt_len);
                        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-16 06:59:31

通过将rx模式卸载更改为DEV_RX_OFFLOAD_SCATTER,以接收分段mbufs和RX和Tx描述符值以解决问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73320565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档