tcp: avoid cwnd moderation in undo
commitedc45d1e743b8b5a9366b7cafb53c80f4267fe1f
authorYuchung Cheng <ycheng@google.com>
Mon, 14 Mar 2011 10:57:03 +0000 (14 10:57 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 21 Apr 2011 21:32:33 +0000 (21 14:32 -0700)
tree4c8a9e762a3071ad3af9e24b92c312ed9d649188
parenta83f2b584b54a123c408692eb19e0c97022be607
tcp: avoid cwnd moderation in undo

[ Upstream commit 67d4120a1793138bc9f4a6eb61d0fc5298ed97e0 ]

In the current undo logic, cwnd is moderated after it was restored
to the value prior entering fast-recovery. It was moderated first
in tcp_try_undo_recovery then again in tcp_complete_cwr.

Since the undo indicates recovery was false, these moderations
are not necessary. If the undo is triggered when most of the
outstanding data have been acknowledged, the (restored) cwnd is
falsely pulled down to a small value.

This patch removes these cwnd moderations if cwnd is undone
  a) during fast-recovery
b) by receiving DSACKs past fast-recovery

Signed-off-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
net/ipv4/tcp_input.c