[TCP]: Fix ratehalving with bidirectional flows
authorIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
Tue, 31 Jul 2007 02:48:37 +0000 (19:48 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Tue, 31 Jul 2007 09:28:30 +0000 (02:28 -0700)
commit1e757f9996114f713a79d3fbcd08739efcfc5c34
tree169b4399c718ec6bf178ad1d77d8b8bf27d1d714
parent143cf35324548df54563b19d0444e0fe170027f8
[TCP]: Fix ratehalving with bidirectional flows

Actually, the ratehalving seems to work too well, as cwnd is
reduced on every second ACK even though the packets in flight
remains unchanged. Recoveries in a bidirectional flows suffer
quite badly because of this, both NewReno and SACK are affected.

After this patch, rate halving is performed for ACK only if
packets in flight was supposedly changed too.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_input.c