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 |
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 |
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 --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 {
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(+)