https://github.com/torvalds/linux
Revision 1d000323940137332d4d62c6332b6daf5f07aba7 authored by Emeel Hakim on 18 October 2021, 12:31:19 UTC, committed by Saeed Mahameed on 20 October 2021, 17:42:51 UTC
Current Work Queue Entry (WQE) checksum (csum) flags in the ethernet segment (eseg) in case of IPsec crypto offload datapath are not aligned with PRM/HW expectations. Currently the driver always sets the l3_inner_csum flag in case of IPsec because of the wrong usage of skb->encapsulation as indicator for inner IPsec header since skb->encapsulation is always ON for IPsec packets since IPsec itself is an encapsulation protocol. The above forced a failing attempts of calculating csum of non-existing segments (like in the IP|ESP|TCP packet case which does not have an l3_inner) which led to lots of packet drops hence the low throughput. Fix by using xo->inner_ipproto as indicator for inner IPsec header instead of skb->encapsulation in addition to setting the csum flags as following: * Tunnel Mode: * Pkt: MAC IP ESP IP L4 * CSUM: l3_cs | l3_inner_cs | l4_inner_cs * * Transport Mode: * Pkt: MAC IP ESP L4 * CSUM: l3_cs [ | l4_cs (checksum partial case)] * * Tunnel(VXLAN TCP/UDP) over Transport Mode * Pkt: MAC IP ESP UDP VXLAN IP L4 * CSUM: l3_cs | l3_inner_cs | l4_inner_cs Fixes: f1267798c980 ("net/mlx5: Fix checksum issue of VXLAN and IPsec crypto offload") Signed-off-by: Emeel Hakim <ehakim@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
1 parent d10457f
Tip revision: 1d000323940137332d4d62c6332b6daf5f07aba7 authored by Emeel Hakim on 18 October 2021, 12:31:19 UTC
net/mlx5e: IPsec: Fix work queue entry ethernet segment checksum flags
net/mlx5e: IPsec: Fix work queue entry ethernet segment checksum flags
Tip revision: 1d00032
File | Mode | Size |
---|---|---|
automarkup.py | -rw-r--r-- | 10.0 KB |
cdomain.py | -rw-r--r-- | 7.6 KB |
kernel_abi.py | -rw-r--r-- | 4.9 KB |
kernel_feat.py | -rw-r--r-- | 4.4 KB |
kernel_include.py | -rwxr-xr-x | 8.4 KB |
kerneldoc.py | -rw-r--r-- | 6.3 KB |
kernellog.py | -rw-r--r-- | 585 bytes |
kfigure.py | -rw-r--r-- | 18.4 KB |
load_config.py | -rw-r--r-- | 2.1 KB |
maintainers_include.py | -rwxr-xr-x | 7.3 KB |
parallel-wrapper.sh | -rw-r--r-- | 876 bytes |
parse-headers.pl | -rwxr-xr-x | 8.4 KB |
requirements.txt | -rw-r--r-- | 31 bytes |
rstFlatTable.py | -rwxr-xr-x | 13.0 KB |
Computing file changes ...