summaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_hybla.c
diff options
context:
space:
mode:
authorFlorian Westphal <fw@strlen.de>2016-11-21 14:18:38 +0100
committerDavid S. Miller <davem@davemloft.net>2016-11-21 13:20:17 -0500
commite97991832a4ea4a5f47d65f068a4c966a2eb5730 (patch)
tree870e5c09c37890d286872c9ae22382d6bf336b37 /net/ipv4/tcp_hybla.c
parent85f7e7508a1d288b513493196ef406c6c06134e1 (diff)
downloadlinux-e97991832a4ea4a5f47d65f068a4c966a2eb5730.tar.gz
linux-e97991832a4ea4a5f47d65f068a4c966a2eb5730.tar.bz2
linux-e97991832a4ea4a5f47d65f068a4c966a2eb5730.zip
tcp: make undo_cwnd mandatory for congestion modules
The undo_cwnd fallback in the stack doubles cwnd based on ssthresh, which un-does reno halving behaviour. It seems more appropriate to let congctl algorithms pair .ssthresh and .undo_cwnd properly. Add a 'tcp_reno_undo_cwnd' function and wire it up for all congestion algorithms that used to rely on the fallback. Cc: Eric Dumazet <edumazet@google.com> Cc: Yuchung Cheng <ycheng@google.com> Cc: Neal Cardwell <ncardwell@google.com> Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_hybla.c')
-rw-r--r--net/ipv4/tcp_hybla.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/ipv4/tcp_hybla.c b/net/ipv4/tcp_hybla.c
index 083831e359df..0f7175c3338e 100644
--- a/net/ipv4/tcp_hybla.c
+++ b/net/ipv4/tcp_hybla.c
@@ -166,6 +166,7 @@ static void hybla_cong_avoid(struct sock *sk, u32 ack, u32 acked)
static struct tcp_congestion_ops tcp_hybla __read_mostly = {
.init = hybla_init,
.ssthresh = tcp_reno_ssthresh,
+ .undo_cwnd = tcp_reno_undo_cwnd,
.cong_avoid = hybla_cong_avoid,
.set_state = hybla_state,