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: dev@dpdk.org Reporter: junwang01@cestc.cn 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"} diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index d7f0aa1f5835b5c51ed0a2c8cd84079f388ca9ce..1f50676e55687f6ccdaccb7f5403c82569fb2041 100644 --- a/lib/netdev-dpdk.c +++ b/lib/netdev-dpdk.c @@ -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; } -- You are receiving this mail because: You are the assignee for the bug.