DPDK 19.11.10:1500Bytes 的 UDP 校验和硬件卸载正确,但 9000Bytes(巨型帧)的 UDP 校验和硬件卸载不正确

DPDK 19.11.10: UDP checksum hardware offload for 1500Bytes is correct but UDP checksum hardware offload for 9000Bytes (JUMBO FRAME) is incorrect

提问人:Das 提问时间:10/5/2023 更新时间:10/5/2023 访问量:43

问:

我正在使用 intel NIC X710 开发 DPDK 19.11.10。

我正在尝试通过卸载到硬件来计算 UDP 校验和。如果数据包大小为 1500Bytes,则 UDP 校验和正确,如果数据包大小为 9000Bytes(JUMBO FRAME),则 UDP 校验和不正确。

这是我的代码:

   /*Port configuration*/
   rxmode = {
      .max_rx_pkt_len = 9614,
      .offloads = (DEV_RX_OFFLOAD_JUMBO_FRAME),
   }

   txmode = {
      .offloads = (DEV_TX_OFFLOAD_IPV4_CKSUM |
      DEV_TX_OFFLOAD_UDP_CKSUM | DEV_TX_OFFLOAD_TCP_CKSUM),
   }

   /* mb is mbuf packet to transmit */
   mb->ol_flags = PKT_TX_IPV4 | PKT_TX_IP_CKSUM | PKT_TX_UDP_CKSUM;
   mb->l2_len = sizeof(struct ether_hdr);
   mb->l3_len = sizeof(struct ipv4_hdr);

这些是我使用过的标志。

为什么我看到巨型帧的校验和不正确?

c udp 英特尔 校验和 dpdk

评论


答: 暂无答案