[TCP]: fix congestion window update when using TSO deferal
authorStephen Hemminger <shemminger@osdl.org>
Fri, 11 Nov 2005 00:53:30 +0000 (16:53 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 11 Nov 2005 00:53:30 +0000 (16:53 -0800)
commitf4805eded7d38c4e42bf473dc5eb2f34853beb06
tree1f7e0e90642e775b4e8c2c47d84e2df8ce2de3c3
parent6e6ece5dc6022e8086c565498d23511bbceda811
[TCP]: fix congestion window update when using TSO deferal

TCP peformance with TSO over networks with delay is awful.
On a 100Mbit link with 150ms delay, we get 4Mbits/sec with TSO and
50Mbits/sec without TSO.

The problem is with TSO, we intentionally do not keep the maximum
number of packets in flight to fill the window, we hold out to until
we can send a MSS chunk. But, we also don't update the congestion window
unless we have filled, as per RFC2861.

This patch replaces the check for the congestion window being full
with something smarter that accounts for TSO.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/tcp.h
net/ipv4/tcp_bic.c
net/ipv4/tcp_cong.c
net/ipv4/tcp_highspeed.c
net/ipv4/tcp_htcp.c
net/ipv4/tcp_hybla.c
net/ipv4/tcp_output.c
net/ipv4/tcp_scalable.c