Re: [PATCH] tcp: bug fix Fast Open client retransmission
From: David Miller <davem@davemloft.net>
Date: 2012-12-07 19:41:10
From: Neal Cardwell <ncardwell@google.com> Date: Thu, 6 Dec 2012 14:50:58 -0500
On Thu, Dec 6, 2012 at 1:45 PM, Yuchung Cheng [off-list ref] wrote:quoted
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 <redacted> ---Acked-by: Neal Cardwell <ncardwell@google.com>
Applied.