tcp_bbr: fix quantization code to not raise cwnd if not probing bandwidth
authorKevin(Yudong) Yang <yyd@google.com>
Thu, 26 Sep 2019 14:30:05 +0000 (10:30 -0400)
committerDavid S. Miller <davem@davemloft.net>
Fri, 27 Sep 2019 18:37:50 +0000 (20:37 +0200)
commit6b3656a60f2067738d1a423328199720806f0c44
treec4f1c8c356afb67f007c8fccf97e4d159d804bd2
parent94e7e5da388de3b25d6066748323438bc9b37625
tcp_bbr: fix quantization code to not raise cwnd if not probing bandwidth

There was a bug in the previous logic that attempted to ensure gain cycling
gets inflight above BDP even for small BDPs. This code correctly raised and
lowered target inflight values during the gain cycle. And this code
correctly ensured that cwnd was raised when probing bandwidth. However, it
did not correspondingly ensure that cwnd was *not* raised in this way when
*not* probing for bandwidth. The result was that small-BDP flows that were
always cwnd-bound could go for many cycles with a fixed cwnd, and not probe
or yield bandwidth at all. This meant that multiple small-BDP flows could
fail to converge in their bandwidth allocations.

Fixes: 3c346b233c68 ("tcp_bbr: fix bw probing to raise in-flight data for very small BDPs")
Signed-off-by: Kevin(Yudong) Yang <yyd@google.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Acked-by: Yuchung Cheng <ycheng@google.com>
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
Acked-by: Priyaranjan Jha <priyarjha@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_bbr.c