DPDK - RSS 卸载(哈希计算):ETH_RSS_IPV6_EX - 解释

DPDK - RSS Offloads (Hash Calculations): ETH_RSS_IPV6_EX - Explanation

所以我目前正在努力了解如何在 DPDK(数据平面开发工具包)中进行接收端缩放 (RSS) 卸载。因此,基本上根据我的理解,根据您选择的卸载,它会计算一个哈希值并使用该值将您的数据包放置在特定队列上进行处理,该队列绑定到特定的 CPU 核心。

所以我对此有 2 个疑问:

如果您需要任何澄清或详细说明,请随时提出。

提前致谢。

Edit_1(回应Vipin的评论):

  1. 我正在这个结构中启用 RSS (ETH_RSS_IPV6_EX):

    静态结构rte_eth_conf port_conf = { .rx 模式 = { .mq_mode = ETH_MQ_RX_RSS, .max_rx_pkt_len = RTE_ETHER_MAX_LEN, .split_hdr_size = 0, .offloads = DEV_RX_OFFLOAD_CHECKSUM, }, .rx_adv_conf = { .rss_conf = { .rss_key = NULL, .rss_hf = ETH_RSS_IPV6_EX, //ETH_RSS_IP //原始, //AU: Changing Hash Application }, }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, }, };

  2. 我用的DPDK版本是20.08.

  3. 正在使用的网卡是 Mellanox ConnectX-5

  4. 我正在使用 DPDK l3fwd 应用程序作为基础并在其上进行测试。

如评论中所述,ETH_RSS_IPV6_EX 是通用占位符。并非所有 driver 都支持相同的内容。因此,根据 PMD,将支持 driver 和固件 extended features,例如基于 SRC-IP/DST-IP 或某些字段的 RSS。示例 ETH_RSS_IPV6_TCP 将在 IPV6 中包含 TCP 时使用,而 ETH_RSS_IPV6_TCP_EX 将在扩展 TCP header.

时使用

注意:igb和ixgbe支持_EX而i40e不支持,你查一下intel NIC. DPDK mail thread discussion。因此,不要指望每个 NIC 都具有相同的 RSS

功能集

好的,伙计们,我联系了 Mellanox 支持人员,他们回复说他们已经与他们的 DPDK 专家核实并报告说他们不支持 RSS 卸载中的 IPv6 扩展 headers 支持,因此零散列的原因是在使用 IPV6_EX RSS 卸载时进行计算。

我问 Mellanox 的问题是关于 ConnectX-5 和 ConnectX-6 的。

感谢@Vipin 的支持