mirror of
https://github.com/openvswitch/ovs
synced 2025-09-03 15:55:19 +00:00
netdev-dpdk: Disable outer UDP checksum offload for ice/i40e driver.
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: 084c808729
("userspace: Support VXLAN and GENEVE TSO.")
Reported-at: https://github.com/openvswitch/ovs-issues/issues/321
Signed-off-by: Jun Wang <junwang01@cestc.cn>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
This commit is contained in:
@@ -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 {
|
||||
|
Reference in New Issue
Block a user