Commit 23316b95 authored by Jiri Bohac's avatar Jiri Bohac Committed by Todd Kjos
Browse files

UPSTREAM: Revert "xfrm: xfrm_state_mtu should return at least 1280 for ipv6"

commit a6d95c5a upstream.

This reverts commit b515d263.

Commit b515d263 ("xfrm: xfrm_state_mtu
should return at least 1280 for ipv6") in v5.14 breaks the TCP MSS
calculation in ipsec transport mode, resulting complete stalls of TCP
connections. This happens when the (P)MTU is 1280 or slighly larger.

The desired formula for the MSS is:
MSS = (MTU - ESP_overhead) - IP header - TCP header

However, the above commit clamps the (MTU - ESP_overhead) to a
minimum of 1280, turning the formula into
MSS = max(MTU - ESP overhead, 1280) -  IP header - TCP header

With the (P)MTU near 1280, the calculated MSS is too large and the
resulting TCP packets never make it to the destination because they
are over the actual PMTU.

The above commit also causes suboptimal double fragmentation in
xfrm tunnel mode, as described in
https://lore.kernel.org/netdev/20210429202529.codhwpc7w6kbudug@dwarf.suse.cz/



The original problem the above commit was trying to fix is now fixed
by commit 6596a022 ("xfrm: fix MTU
regression").

Bug: 232198719
Signed-off-by: default avatarJiri Bohac <jbohac@suse.cz>
Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Change-Id: If9f9f1015f1a494775f79efe7e84a37b63e48d3c
Signed-off-by: default avatarLina Wang <lina.wang@mediatek.com>
parent f165597e
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment