netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH next] tcp: fastopen: fix rcv_wup initialization for TFO server on SYN/data
@ 2016-08-30 15:55 Neal Cardwell
  2016-08-30 15:59 ` Neal Cardwell
  2016-09-01 23:40 ` David Miller
  0 siblings, 2 replies; 3+ messages in thread
From: Neal Cardwell @ 2016-08-30 15:55 UTC (permalink / raw)
  To: David Miller
  Cc: netdev, Neal Cardwell, Yuchung Cheng, Eric Dumazet,
	Soheil Hassas Yeganeh

Yuchung noticed that on the first TFO server data packet sent after
the (TFO) handshake, the server echoed the TCP timestamp value in the
SYN/data instead of the timestamp value in the final ACK of the
handshake. This problem did not happen on regular opens.

The tcp_replace_ts_recent() logic that decides whether to remember an
incoming TS value needs tp->rcv_wup to hold the latest receive
sequence number that we have ACKed (latest tp->rcv_nxt we have
ACKed). This commit fixes this issue by ensuring that a TFO server
properly updates tp->rcv_wup to match tp->rcv_nxt at the time it sends
a SYN/ACK for the SYN/data.

Reported-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Soheil Hassas Yeganeh <soheil@google.com>
Fixes: 168a8f58059a ("tcp: TCP Fast Open Server - main code path")
---
 net/ipv4/tcp_fastopen.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/net/ipv4/tcp_fastopen.c b/net/ipv4/tcp_fastopen.c
index 54d9f9b..62a5751 100644
--- a/net/ipv4/tcp_fastopen.c
+++ b/net/ipv4/tcp_fastopen.c
@@ -226,6 +226,7 @@ static struct sock *tcp_fastopen_create_child(struct sock *sk,
 	tcp_fastopen_add_skb(child, skb);
 
 	tcp_rsk(req)->rcv_nxt = tp->rcv_nxt;
+	tp->rcv_wup = tp->rcv_nxt;
 	/* tcp_conn_request() is sending the SYNACK,
 	 * and queues the child into listener accept queue.
 	 */
-- 
2.8.0.rc3.226.g39d4020

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH next] tcp: fastopen: fix rcv_wup initialization for TFO server on SYN/data
  2016-08-30 15:55 [PATCH next] tcp: fastopen: fix rcv_wup initialization for TFO server on SYN/data Neal Cardwell
@ 2016-08-30 15:59 ` Neal Cardwell
  2016-09-01 23:40 ` David Miller
  1 sibling, 0 replies; 3+ messages in thread
From: Neal Cardwell @ 2016-08-30 15:59 UTC (permalink / raw)
  To: David Miller
  Cc: Netdev, Neal Cardwell, Yuchung Cheng, Eric Dumazet,
	Soheil Hassas Yeganeh

Sorry, there's a typo in the subject line: that should be "net" rather
than "next" (I'm proposing "net" since it's a bug fix).

Looks like "git am" strips this mistake, but I'm happy to resubmit if it helps.

thanks,
neal

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH next] tcp: fastopen: fix rcv_wup initialization for TFO server on SYN/data
  2016-08-30 15:55 [PATCH next] tcp: fastopen: fix rcv_wup initialization for TFO server on SYN/data Neal Cardwell
  2016-08-30 15:59 ` Neal Cardwell
@ 2016-09-01 23:40 ` David Miller
  1 sibling, 0 replies; 3+ messages in thread
From: David Miller @ 2016-09-01 23:40 UTC (permalink / raw)
  To: ncardwell; +Cc: netdev, ycheng, edumazet, soheil

From: Neal Cardwell <ncardwell@google.com>
Date: Tue, 30 Aug 2016 11:55:23 -0400

> Yuchung noticed that on the first TFO server data packet sent after
> the (TFO) handshake, the server echoed the TCP timestamp value in the
> SYN/data instead of the timestamp value in the final ACK of the
> handshake. This problem did not happen on regular opens.
> 
> The tcp_replace_ts_recent() logic that decides whether to remember an
> incoming TS value needs tp->rcv_wup to hold the latest receive
> sequence number that we have ACKed (latest tp->rcv_nxt we have
> ACKed). This commit fixes this issue by ensuring that a TFO server
> properly updates tp->rcv_wup to match tp->rcv_nxt at the time it sends
> a SYN/ACK for the SYN/data.
> 
> Reported-by: Yuchung Cheng <ycheng@google.com>
> Signed-off-by: Neal Cardwell <ncardwell@google.com>
> Signed-off-by: Yuchung Cheng <ycheng@google.com>
> Signed-off-by: Eric Dumazet <edumazet@google.com>
> Signed-off-by: Soheil Hassas Yeganeh <soheil@google.com>
> Fixes: 168a8f58059a ("tcp: TCP Fast Open Server - main code path")

Applied to 'net', thanks.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-09-01 23:40 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-30 15:55 [PATCH next] tcp: fastopen: fix rcv_wup initialization for TFO server on SYN/data Neal Cardwell
2016-08-30 15:59 ` Neal Cardwell
2016-09-01 23:40 ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).