diff mbox series

[ovs-dev,v6] netdev-dpdk: Disable outer udp checksum offload for ice/i40e driver.

Message ID 1711095597-5729-1-git-send-email-junwang01@cestc.cn
State Accepted
Commit 6f93d8e62f13271201cc4b8ab3c8dd121390c94f
Headers show
Series [ovs-dev,v6] netdev-dpdk: Disable outer udp checksum offload for ice/i40e driver. | expand

Checks

Context Check Description
ovsrobot/apply-robot success apply and check: success
ovsrobot/github-robot-_Build_and_Test success github build: passed
ovsrobot/intel-ovs-compilation success test: success

Commit Message

Jun Wang March 22, 2024, 8:19 a.m. UTC
Fixing the issue of incorrect outer UDP checksum in packets sent by
E810 or X710.We disable RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM,but also
disable all the dependent offloads like
RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO and
RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO.

Fixes: 084c8087292c ("userspace: Support VXLAN and GENEVE TSO.")
Reported-at: https://github.com/openvswitch/ovs-issues/issues/321

Signed-off-by: Jun Wang <junwang01@cestc.cn>
---
v2: Modify the format
v3: Add Fixes and Reported
v4: Modify Signed-off-by
v5: Add disbale i40e driver and vxlan/geneve tso offload
v6: Modify subject
---
 lib/netdev-dpdk.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

Comments

Ilya Maximets March 22, 2024, 9:59 p.m. UTC | #1
On 3/22/24 09:19, Jun Wang wrote:
> Fixing the issue of incorrect outer UDP checksum in packets sent by
> E810 or X710.We disable RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM,but also
> disable all the dependent offloads like
> RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO and
> RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO.
> 
> Fixes: 084c8087292c ("userspace: Support VXLAN and GENEVE TSO.")
> Reported-at: https://github.com/openvswitch/ovs-issues/issues/321
> 
> Signed-off-by: Jun Wang <junwang01@cestc.cn>
> ---
> v2: Modify the format
> v3: Add Fixes and Reported
> v4: Modify Signed-off-by
> v5: Add disbale i40e driver and vxlan/geneve tso offload
> v6: Modify subject
> ---

Thanks!  Applied and backported to branch-3.3.

Best regards, Ilya Maximets.
diff mbox series

Patch

diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index 29a6bf0..2111f77 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
@@ -1354,6 +1354,18 @@  dpdk_eth_dev_init(struct netdev_dpdk *dev)
         info.tx_offload_capa &= ~RTE_ETH_TX_OFFLOAD_TCP_CKSUM;
     }
 
+    if (!strcmp(info.driver_name, "net_ice")
+        || !strcmp(info.driver_name, "net_i40e")) {
+        /* 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/ice or net/i40e port.", netdev_get_name(&dev->up));
+        info.tx_offload_capa &= ~RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM;
+        info.tx_offload_capa &= ~RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO;
+        info.tx_offload_capa &= ~RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO;
+    }
+
     if (info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_IPV4_CKSUM) {
         dev->hw_ol_features |= NETDEV_TX_IPV4_CKSUM_OFFLOAD;
     } else {