tcp: don't use F-RTO on non-recurring timeouts
authorYuchung Cheng <ycheng@google.com>
Mon, 13 Jul 2015 19:10:20 +0000 (12:10 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 16 Jul 2015 00:17:21 +0000 (17:17 -0700)
commitf82b681a511f4d61069e9586a9cf97bdef371ef3
treef609823a121510cd1de4697305b916f674ea0db1
parent5ebc784625ea68a9570d1f70557e7932988cd1b4
tcp: don't use F-RTO on non-recurring timeouts

Currently F-RTO may repeatedly send new data packets on non-recurring
timeouts in CA_Loss mode. This is a bug because F-RTO (RFC5682)
should only be used on either new recovery or recurring timeouts.

This exacerbates the recovery progress during frequent timeout &
repair, because we prioritize sending new data packets instead of
repairing the holes when the bandwidth is already scarce.

Fix it by correcting the test of a new recovery episode.

Signed-off-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_input.c