Re: [PATCH net v2] tcp: fix TCP_USER_TIMEOUT with zero window

From: Enke Chen
Date: Mon Jan 18 2021 - 23:59:11 EST


On Mon, Jan 18, 2021 at 08:02:21PM -0800, Jakub Kicinski wrote:
> On Fri, 15 Jan 2021 14:30:58 -0800 Enke Chen wrote:
> > From: Enke Chen <enchen@xxxxxxxxxxxxxxxxxxxx>
> >
> > The TCP session does not terminate with TCP_USER_TIMEOUT when data
> > remain untransmitted due to zero window.
> >
> > The number of unanswered zero-window probes (tcp_probes_out) is
> > reset to zero with incoming acks irrespective of the window size,
> > as described in tcp_probe_timer():
> >
> > RFC 1122 4.2.2.17 requires the sender to stay open indefinitely
> > as long as the receiver continues to respond probes. We support
> > this by default and reset icsk_probes_out with incoming ACKs.
> >
> > This counter, however, is the wrong one to be used in calculating the
> > duration that the window remains closed and data remain untransmitted.
> > Thanks to Jonathan Maxwell <jmaxwell37@xxxxxxxxx> for diagnosing the
> > actual issue.
> >
> > In this patch a new timestamp is introduced for the socket in order to
> > track the elapsed time for the zero-window probes that have not been
> > answered with any non-zero window ack.
> >
> > Fixes: 9721e709fa68 ("tcp: simplify window probe aborting on USER_TIMEOUT")
> > Reported-by: William McCall <william.mccall@xxxxxxxxx>
> > Co-developed-by: Neal Cardwell <ncardwell@xxxxxxxxxx>
> > Signed-off-by: Neal Cardwell <ncardwell@xxxxxxxxxx>
> > Signed-off-by: Enke Chen <enchen@xxxxxxxxxxxxxxxxxxxx>
> > Reviewed-by: Yuchung Cheng <ycheng@xxxxxxxxxx>
> > Reviewed-by: Eric Dumazet <edumazet@xxxxxxxxxx>
>
> I take it you got all these tags off-list? I don't see them on the v1
> discussion.

Yes, the tags have been approved off-list by those named.

>
> Applied to net, thanks!

Thanks. -- Enke