Path MTU discovery (MTU probing).  If MTU probing is enabled,
        this is the initial MSS used by the connection.
 
+tcp_mtu_probe_floor - INTEGER
+       If MTU probing is enabled this caps the minimum MSS used for search_low
+       for the connection.
+
+       Default : 48
+
 tcp_min_snd_mss - INTEGER
        TCP SYN and SYNACK messages usually advertise an ADVMSS option,
        as described in RFC 1122 and RFC 6691.
 
        int sysctl_tcp_l3mdev_accept;
 #endif
        int sysctl_tcp_mtu_probing;
+       int sysctl_tcp_mtu_probe_floor;
        int sysctl_tcp_base_mss;
        int sysctl_tcp_min_snd_mss;
        int sysctl_tcp_probe_threshold;
 
                .extra1         = &tcp_min_snd_mss_min,
                .extra2         = &tcp_min_snd_mss_max,
        },
+       {
+               .procname       = "tcp_mtu_probe_floor",
+               .data           = &init_net.ipv4.sysctl_tcp_mtu_probe_floor,
+               .maxlen         = sizeof(int),
+               .mode           = 0644,
+               .proc_handler   = proc_dointvec_minmax,
+               .extra1         = &tcp_min_snd_mss_min,
+               .extra2         = &tcp_min_snd_mss_max,
+       },
        {
                .procname       = "tcp_probe_threshold",
                .data           = &init_net.ipv4.sysctl_tcp_probe_threshold,
 
        net->ipv4.sysctl_tcp_min_snd_mss = TCP_MIN_SND_MSS;
        net->ipv4.sysctl_tcp_probe_threshold = TCP_PROBE_THRESHOLD;
        net->ipv4.sysctl_tcp_probe_interval = TCP_PROBE_INTERVAL;
+       net->ipv4.sysctl_tcp_mtu_probe_floor = TCP_MIN_SND_MSS;
 
        net->ipv4.sysctl_tcp_keepalive_time = TCP_KEEPALIVE_TIME;
        net->ipv4.sysctl_tcp_keepalive_probes = TCP_KEEPALIVE_PROBES;
 
        } else {
                mss = tcp_mtu_to_mss(sk, icsk->icsk_mtup.search_low) >> 1;
                mss = min(net->ipv4.sysctl_tcp_base_mss, mss);
-               mss = max(mss, 68 - tcp_sk(sk)->tcp_header_len);
+               mss = max(mss, net->ipv4.sysctl_tcp_mtu_probe_floor);
                mss = max(mss, net->ipv4.sysctl_tcp_min_snd_mss);
                icsk->icsk_mtup.search_low = tcp_mss_to_mtu(sk, mss);
        }