Hi Eric,

On 01/13/2017 08:07 PM, Alexey Kodanev wrote:

Hi Eric,
On 13.01.2017 18:35, Eric Dumazet wrote:

I would suggest to clamp MSS to half the initial window, but I guess
this is impractical since window in SYN/SYNACK are not scaled.

Looks like max_window not correctly initialized for tfo sockets.
On my test machine it has set to '5592320' in tcp_fastopen_create_child().

This diff fixes the issue, the question: is this the right place to do it?

diff --git a/net/ipv4/tcp_fastopen.c b/net/ipv4/tcp_fastopen.c
index 4e777a3..33ed508 100644
--- a/net/ipv4/tcp_fastopen.c
+++ b/net/ipv4/tcp_fastopen.c
@@ -206,6 +206,8 @@ static struct sock *tcp_fastopen_create_child(struct sock *sk,
         */
        tp->snd_wnd = ntohs(tcp_hdr(skb)->window);

+       tp->max_window = tp->snd_wnd;
+
        /* Activate the retrans timer so that SYNACK can be retransmitted.
         * The request socket is not added to the ehash
         * because it's been added to the accept queue directly.


Thanks,
Alexey

Reply via email to