summaryrefslogtreecommitdiffstats
path: root/tools/spi
diff options
context:
space:
mode:
authorYuchung Cheng <ycheng@google.com>2019-04-29 15:46:18 -0700
committerDavid S. Miller <davem@davemloft.net>2019-05-01 11:47:54 -0400
commit794200d66273cbfa32cab2dbcd59a5db6b57a5d1 (patch)
tree3d9c21b1511fb25b416aebb848df76b400405050 /tools/spi
parent8c3cfe19feac41065bb88bc14b36c318b26847a9 (diff)
downloadlinux-794200d66273cbfa32cab2dbcd59a5db6b57a5d1.tar.gz
linux-794200d66273cbfa32cab2dbcd59a5db6b57a5d1.tar.bz2
linux-794200d66273cbfa32cab2dbcd59a5db6b57a5d1.zip
tcp: undo cwnd on Fast Open spurious SYNACK retransmit
This patch makes passive Fast Open reverts the cwnd to default initial cwnd (10 packets) if the SYNACK timeout is spurious. Passive Fast Open uses a full socket during handshake so it can use the existing undo logic to detect spurious retransmission by recording the first SYNACK timeout in key state variable retrans_stamp. Upon receiving the ACK of the SYNACK, if the socket has sent some data before the timeout, the spurious timeout is detected by tcp_try_undo_recovery() in tcp_process_loss() in tcp_ack(). But if the socket has not send any data yet, tcp_ack() does not execute the undo code since no data is acknowledged. The fix is to check such case explicitly after tcp_ack() during the ACK processing in SYN_RECV state. In addition this is checked in FIN_WAIT_1 state in case the server closes the socket before handshake completes. Signed-off-by: Yuchung Cheng <ycheng@google.com> Signed-off-by: Neal Cardwell <ncardwell@google.com> Signed-off-by: Soheil Hassas Yeganeh <soheil@google.com> Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'tools/spi')
0 files changed, 0 insertions, 0 deletions