Neal Cardwell 016818d076 tcp: TCP Fast Open Server - take SYNACK RTT after completing 3WHS
When taking SYNACK RTT samples for servers using TCP Fast Open, fix
the code to ensure that we only call tcp_valid_rtt_meas() after we
receive the ACK that completes the 3-way handshake.

Previously we were always taking an RTT sample in
tcp_v4_syn_recv_sock(). However, for TCP Fast Open connections
tcp_v4_conn_req_fastopen() calls tcp_v4_syn_recv_sock() at the time we
receive the SYN. So for TFO we must wait until tcp_rcv_state_process()
to take the RTT sample.

To fix this, we wait until after TFO calls tcp_v4_syn_recv_sock()
before we set the snt_synack timestamp, since tcp_synack_rtt_meas()
already ensures that we only take a SYNACK RTT sample if snt_synack is
non-zero. To be careful, we only take a snt_synack timestamp when
a SYNACK transmit or retransmit succeeds.

Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-09-22 15:47:10 -04:00
..
2012-09-06 14:21:10 -04:00
2012-04-15 12:37:19 -04:00
2011-10-19 03:10:46 -04:00
2012-09-19 15:40:15 -04:00
2012-07-30 14:53:21 -07:00
2012-07-31 18:42:43 -07:00
2012-01-20 14:17:26 -05:00
2012-01-20 14:17:26 -05:00
2012-05-17 14:59:59 -04:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2012-03-11 23:42:51 -07:00
2012-04-15 12:37:19 -04:00