tcp: add new tcp_mtu_probe_floor sysctl
authorJosh Hunt <johunt@akamai.com>
Wed, 7 Aug 2019 23:52:29 +0000 (19:52 -0400)
committerDavid S. Miller <davem@davemloft.net>
Fri, 9 Aug 2019 20:03:30 +0000 (13:03 -0700)
commitc04b79b6cfd714144f6a2cf359603d82ee631e62
tree3ef5597a3400666cfb0362c0ab1abbd666b87da3
parent3a5e523479c49b082b8ac291a1a9fbd035c06df5
tcp: add new tcp_mtu_probe_floor sysctl

The current implementation of TCP MTU probing can considerably
underestimate the MTU on lossy connections allowing the MSS to get down to
48. We have found that in almost all of these cases on our networks these
paths can handle much larger MTUs meaning the connections are being
artificially limited. Even though TCP MTU probing can raise the MSS back up
we have seen this not to be the case causing connections to be "stuck" with
an MSS of 48 when heavy loss is present.

Prior to pushing out this change we could not keep TCP MTU probing enabled
b/c of the above reasons. Now with a reasonble floor set we've had it
enabled for the past 6 months.

The new sysctl will still default to TCP_MIN_SND_MSS (48), but gives
administrators the ability to control the floor of MSS probing.

Signed-off-by: Josh Hunt <johunt@akamai.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Documentation/networking/ip-sysctl.txt
include/net/netns/ipv4.h
net/ipv4/sysctl_net_ipv4.c
net/ipv4/tcp_ipv4.c
net/ipv4/tcp_timer.c