aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJohn Heffner <jheffner@napa.none>2008-04-25 01:43:57 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2008-05-01 14:44:32 -0700
commite8a8637fe11a48ca358a8839bbe8ddb871cd30e1 (patch)
treed652cb644b5c0a7f71dc4d215ca21a3090ea9a48 /include
parent36b9699b534c7fa75258426ea137c23f4dca9bc0 (diff)
TCP: Increase the max_burst threshold from 3 to tp->reordering.
[ Upstream commit: dd9e0dda66ba38a2ddd1405ac279894260dc5c36 ] This change is necessary to allow cwnd to grow during persistent reordering. Cwnd moderation is applied when in the disorder state and an ack that fills the hole comes in. If the hole was greater than 3 packets, but less than tp->reordering, cwnd will shrink when it should not have. Signed-off-by: John Heffner <jheffner@napa.none> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'include')
-rw-r--r--include/net/tcp.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/include/net/tcp.h b/include/net/tcp.h
index 4fd3eb2f8ec..d69d12e3c04 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -776,11 +776,14 @@ extern void tcp_enter_cwr(struct sock *sk, const int set_ssthresh);
extern __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst);
/* Slow start with delack produces 3 packets of burst, so that
- * it is safe "de facto".
+ * it is safe "de facto". This will be the default - same as
+ * the default reordering threshold - but if reordering increases,
+ * we must be able to allow cwnd to burst at least this much in order
+ * to not pull it back when holes are filled.
*/
static __inline__ __u32 tcp_max_burst(const struct tcp_sock *tp)
{
- return 3;
+ return tp->reordering;
}
/* Returns end sequence number of the receiver's advertised window */