summaryrefslogtreecommitdiffstats
path: root/net/dccp/timer.c
diff options
context:
space:
mode:
authorYuchung Cheng2012-12-06 09:45:32 +0100
committerDavid S. Miller2012-12-07 20:39:28 +0100
commit93b174ad71b08e504c2cf6e8a58ecce778b77a40 (patch)
treef9e7fd386880ae14d4625de9801a57c5bf5fa105 /net/dccp/timer.c
parentMerge tag 'mmc-fixes-for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/gi... (diff)
downloadkernel-qcow2-linux-93b174ad71b08e504c2cf6e8a58ecce778b77a40.tar.gz
kernel-qcow2-linux-93b174ad71b08e504c2cf6e8a58ecce778b77a40.tar.xz
kernel-qcow2-linux-93b174ad71b08e504c2cf6e8a58ecce778b77a40.zip
tcp: bug fix Fast Open client retransmission
If SYN-ACK partially acks SYN-data, the client retransmits the remaining data by tcp_retransmit_skb(). This increments lost recovery state variables like tp->retrans_out in Open state. If loss recovery happens before the retransmission is acked, it triggers the WARN_ON check in tcp_fastretrans_alert(). For example: the client sends SYN-data, gets SYN-ACK acking only ISN, retransmits data, sends another 4 data packets and get 3 dupacks. Since the retransmission is not caused by network drop it should not update the recovery state variables. Further the server may return a smaller MSS than the cached MSS used for SYN-data, so the retranmission needs a loop. Otherwise some data will not be retransmitted until timeout or other loss recovery events. Signed-off-by: Yuchung Cheng <ycheng@google.com> Acked-by: Neal Cardwell <ncardwell@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dccp/timer.c')
0 files changed, 0 insertions, 0 deletions