[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20160630.081607.555906539070578914.davem@davemloft.net>
Date: Thu, 30 Jun 2016 08:16:07 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: avagin@...nvz.org
Cc: netdev@...r.kernel.org, linux-kernel@...r.kernel.org,
criu@...nvz.org, xemul@...allels.com, kuznet@....inr.ac.ru,
jmorris@...ei.org, yoshfuji@...ux-ipv6.org, kaber@...sh.net
Subject: Re: [PATCH] tcp: add an ability to dump and restore window
parameters
From: Andrey Vagin <avagin@...nvz.org>
Date: Mon, 27 Jun 2016 15:33:56 -0700
> We found that sometimes a restored tcp socket doesn't work.
>
> A reason of this bug is incorrect window parameters and in this case
> tcp_acceptable_seq() returns tcp_wnd_end(tp) instead of tp->snd_nxt. The
> other side drops packets with this seq, because seq is less than
> tp->rcv_nxt ( tcp_sequence() ).
>
> Data from a send queue is sent only if there is enough space in a
> window, so when we restore unacked data, we need to expand a window to
> fit this data.
>
> This was in a first version of this patch:
> "tcp: extend window to fit all restored unacked data in a send queue"
>
> Then Alexey recommended me to restore window parameters instead of
> adjusted them according with data in a sent queue. This sounds resonable.
>
> rcv_wnd has to be restored, because it was reported to another side
> and the offered window is never shrunk.
> One of reasons why we need to restore snd_wnd was described above.
>
> Cc: Pavel Emelyanov <xemul@...allels.com>
> Cc: "David S. Miller" <davem@...emloft.net>
> Cc: Alexey Kuznetsov <kuznet@....inr.ac.ru>
> Cc: James Morris <jmorris@...ei.org>
> Cc: Hideaki YOSHIFUJI <yoshfuji@...ux-ipv6.org>
> Cc: Patrick McHardy <kaber@...sh.net>
> Signed-off-by: Andrey Vagin <avagin@...nvz.org>
Applied to net-next, thanks.
Powered by blists - more mailing lists