Skip to contentSkip to conversation

"net_txgbe" have not implemented outer UDP checksum offload, but the capability flag has been set.

DPDK/ethdev Bug 1529 [email protected] 1 participant 1 message Aug 29, 2024 Library code

lore
Share & tools
lore
#0 lore raw

https://bugs.dpdk.org/show_bug.cgi?id=1529

Bug ID: 1529
Summary: "net_txgbe" have not implemented outer UDP checksum
offload, but the capability flag has been set.
Product: DPDK
Version: 24.07
Hardware: All
OS: All
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: ethdev
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---

In OVS-DPDK, when using the Wangxun RP1000 network card, I found that the card supports outer UDP checksum offload according to the capabilities retrieved by OVS-DPDK. However, in actual testing, the outer UDP checksum of the transmitted packets is incorrect. After I manually disabled RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM in the OVS code, the traffic was normal. So, does this mean that the card does not actually support outer UDP checksum offload, but the capability is enabled in the DPDK code? Or is there a bug in the implementation logic?

Before modification in OVS:

status : {bus_info="bus_name=pci, vendor_id=8088, device_id=1001",
driver_name=net_txgbe, if_descr="DPDK 23.11.0 net_txgbe", if_type="6", link_speed="10Gbps", max_hash_mac_addrs="4096", max_mac_addrs="128", max_rx_pktlen="1618", max_rx_queues="128", max_tx_queues="128", max_vfs="0", max_vmdq_pools="64", min_rx_bufsize="1024", n_rxq="2", n_txq="5", numa_id="0", port_no="0", rx-steering=rss, rx_csum_offload="true", tx_geneve_tso_offload="true", tx_ip_csum_offload="true", tx_out_ip_csum_offload="true", tx_out_udp_csum_offload="true", tx_sctp_csum_offload="true", tx_tcp_csum_offload="true", tx_tcp_seg_offload="true", tx_udp_csum_offload="true", tx_vxlan_tso_offload="true"}

After modification in OVS:

status : {bus_info="bus_name=pci, vendor_id=8088, device_id=1001",
driver_name=net_txgbe, if_descr="DPDK 23.11.0 net_txgbe", if_type="6", link_speed="10Gbps", max_hash_mac_addrs="4096", max_mac_addrs="128", max_rx_pktlen="1618", max_rx_queues="128", max_tx_queues="128", max_vfs="0", max_vmdq_pools="64", min_rx_bufsize="1024", n_rxq="2", n_txq="5", numa_id="0", port_no="0", rx-steering=rss, rx_csum_offload="true", tx_geneve_tso_offload="true", tx_ip_csum_offload="true", tx_out_ip_csum_offload="true", tx_out_udp_csum_offload="false", tx_sctp_csum_offload="true", tx_tcp_csum_offload="true", tx_tcp_seg_offload="true", tx_udp_csum_offload="true", tx_vxlan_tso_offload="true"}

lib/netdev-dpdk.c +0 -0

index d7f0aa1f5835b5c51ed0a2c8cd84079f388ca9ce..1f50676e55687f6ccdaccb7f5403c82569fb2041 100644

lib/netdev-dpdk.c +3 -2
@@ -2050,12 +2050,13 @@ dpdk_eth_offload_config(struct netdev_dpdk *dev,
     }
 
     if (!strcmp(info->driver_name, "net_i40e")
-        || !strcmp(info->driver_name, "net_iavf")) {
+        || !strcmp(info->driver_name, "net_iavf")
+        || !strcmp(info->driver_name, "net_txgbe")) {
         /* FIXME: Driver advertises the capability but doesn't seem
          * to actually support it correctly.  Can remove this once
          * the driver is fixed on DPDK side. */
         VLOG_INFO("%s: disabled Tx outer udp checksum offloads for a "
-                  "net/i40e or net/iavf port.",
+                  "net/i40e or net/iavf or net_txgbe port.",
                   netdev_get_name(&dev->up));
         info->tx_offload_capa &= ~RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM;
     }
Signature · 2 lines
You are receiving this mail because:
You are the assignee for the bug.