summaryrefslogtreecommitdiff
path: root/net/hsr/hsr_slave.h
diff options
context:
space:
mode:
authorFlorian Westphal <fw@strlen.de>2016-10-28 18:43:11 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-11-21 10:06:39 +0100
commit74e53a3a053fc6dd6fc83b4dc4cda2524931b3e3 (patch)
treecf3b68f3e9cb35dd27866bca67eee804474ac99f /net/hsr/hsr_slave.h
parent86429bd405de5741df4127096deae0b1d90b68f1 (diff)
dctcp: avoid bogus doubling of cwnd after loss
[ Upstream commit ce6dd23329b1ee6a794acf5f7e40f8e89b8317ee ] If a congestion control module doesn't provide .undo_cwnd function, tcp_undo_cwnd_reduction() will set cwnd to tp->snd_cwnd = max(tp->snd_cwnd, tp->snd_ssthresh << 1); ... which makes sense for reno (it sets ssthresh to half the current cwnd), but it makes no sense for dctcp, which sets ssthresh based on the current congestion estimate. This can cause severe growth of cwnd (eventually overflowing u32). Fix this by saving last cwnd on loss and restore cwnd based on that, similar to cubic and other algorithms. Fixes: e3118e8359bb7c ("net: tcp: add DCTCP congestion control algorithm") Cc: Lawrence Brakmo <brakmo@fb.com> Cc: Andrew Shewmaker <agshew@gmail.com> Cc: Glenn Judd <glenn.judd@morganstanley.com> Acked-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net/hsr/hsr_slave.h')
0 files changed, 0 insertions, 0 deletions