Yuchung Cheng
93b174ad71
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>
2012-12-07 14:39:28 -05:00
..
2012-01-05 10:51:44 -06:00
2012-09-24 14:39:16 -04:00
2012-06-25 16:44:12 -07:00
2012-06-12 15:50:24 -07:00
2012-03-07 22:52:24 -08:00
2012-09-10 15:30:41 -04:00
2012-10-02 11:11:09 -07:00
2012-09-28 11:11:16 -04:00
2012-06-17 16:29:38 -07:00
2012-10-04 15:53:48 -04:00
2010-08-20 01:42:59 -07:00
2011-07-06 02:52:16 -07:00
2012-08-30 03:00:18 +02:00
2009-08-12 21:54:50 -07:00
2011-04-24 10:54:56 -07:00
2012-06-08 14:27:23 -07:00
2011-01-13 21:48:25 -08:00
2012-08-09 16:18:06 -07:00
2011-11-30 18:51:03 -05:00
2012-08-14 21:49:42 -07:00
2009-03-24 23:32:03 -07:00
2011-08-08 14:26:29 -04:00
2012-10-26 22:52:42 +02:00
2012-08-30 03:00:16 +02:00
2012-06-01 14:18:29 -04:00
2012-09-14 09:57:43 -07:00
2012-08-10 16:52:54 -07:00
2012-04-15 12:44:40 -04:00
2011-10-06 15:49:51 -04:00
2012-04-05 05:08:04 -04:00
2010-11-08 13:50:08 -08:00
2012-04-15 12:44:40 -04:00
2010-06-03 03:21:52 -07:00
2012-07-05 01:12:14 -07:00
2012-04-15 12:44:40 -04:00
2011-12-01 11:41:06 -05:00
2012-07-19 10:43:03 -07:00
2012-08-22 14:21:38 -07:00
2009-03-27 00:16:21 -07:00
2012-06-29 01:36:36 -07:00
2011-11-29 13:17:03 -05:00
2012-10-08 17:42:36 -04:00
2011-05-12 17:46:56 -04:00
2011-03-31 11:26:23 -03:00
2012-09-10 15:30:41 -04:00
2010-08-21 23:05:39 -07:00
2012-10-01 17:01:46 -04:00
2012-04-15 12:44:40 -04:00
2012-08-20 13:53:09 +02:00
2012-05-16 15:16:56 -04:00
2011-11-14 00:19:42 -05:00
2012-05-15 20:14:35 -04:00
2012-07-16 03:44:56 -07:00
2012-07-26 15:50:39 -07:00
2012-07-19 11:02:03 -07:00
2012-08-06 13:33:21 -07:00
2012-09-27 18:12:37 -04:00
2012-09-19 17:23:28 -04:00
2012-06-19 21:22:05 -07:00
2012-09-24 16:31:37 -04:00
2011-12-14 13:34:55 -05:00
2012-07-10 22:40:14 -07:00
2012-09-28 14:40:49 -04:00
2012-07-18 08:59:58 -07:00
2012-08-14 14:28:32 -07:00
2012-10-04 13:58:26 -04:00
2012-08-10 10:35:07 +09:00
2012-08-26 19:13:55 +02:00
2010-02-16 23:05:38 -08:00
2012-10-01 17:01:57 -04:00
2012-09-19 17:23:28 -04:00
2011-04-24 10:54:56 -07:00
2011-03-31 11:26:23 -03:00
2012-05-17 18:45:20 -04:00
2011-10-31 19:32:32 -04:00
2012-04-15 12:44:40 -04:00
2009-12-26 20:43:57 -08:00
2012-05-15 20:14:35 -04:00
2012-09-17 13:13:24 -04:00
2012-09-10 11:29:17 +02:00
2012-06-26 21:06:11 -07:00
2010-06-03 03:21:52 -07:00
2010-04-23 13:35:55 +09:00
2012-08-09 16:18:06 -07:00
2012-08-07 16:24:55 -07:00
2012-10-06 03:04:45 +09:00
2011-05-27 13:41:33 -04:00
2012-07-05 02:21:55 -07:00
2012-09-17 18:08:54 -07:00
2012-09-10 15:30:41 -04:00
2012-09-14 09:57:43 -07:00
2010-03-30 22:02:32 +09:00
2009-08-19 23:08:22 +04:00
2011-05-17 14:16:58 -04:00
2010-12-21 12:43:16 -08:00
2012-04-15 12:44:40 -04:00
2012-07-26 15:50:39 -07:00
2009-03-21 19:06:50 -07:00
2010-09-08 13:42:22 -07:00
2012-05-19 01:08:16 -04:00
2012-04-16 23:53:11 -04:00
2012-07-17 12:16:39 +02:00
2012-08-31 20:02:19 -04:00
2011-03-27 17:59:04 -07:00
2012-10-08 17:42:36 -04:00
2012-07-20 11:06:59 -07:00
2012-08-14 21:55:28 -07:00
2012-09-24 15:52:33 -04:00
2011-10-21 05:22:42 -04:00
2012-08-06 13:40:47 -07:00
2012-10-02 13:38:27 -07:00
2012-04-10 10:04:07 -07:00
2012-12-07 14:39:28 -05:00
2012-06-09 14:56:12 -07:00
2011-08-30 17:39:01 -04:00
2012-04-28 22:21:51 -04:00
2012-03-12 17:05:21 -07:00
2009-10-07 16:39:43 -04:00
2012-04-15 12:44:40 -04:00
2012-05-16 15:17:08 -04:00
2012-04-15 12:44:40 -04:00
2010-04-22 16:12:36 -07:00
2012-11-13 09:15:07 +01:00