s2n-quic icon indicating copy to clipboard operation
s2n-quic copied to clipboard

fix(s2n-quic-core): don't reduce lower bounds during BBR startup

Open WesleyRosenblum opened this issue 2 years ago • 0 comments

Description of changes:

This change fixes the behavior of BBR during Startup so that when loss is encountered during Startup, the short term data volume and data rate bounds are not updated. The original code assumed the BBRIsProbingBW() function mentioned (but not defined) in the BBR RFC should return true only if BBR is in the ProbeBW state. After looking at the TCP Linux BBR implementation and the Chromium implementation, this is not correct.

The text at the beginning section 4.5.6.3 also makes this clear:

When not explicitly accelerating to probe for bandwidth (Drain, ProbeRTT, ProbeBW_DOWN, ProbeBW_CRUISE), BBR responds to loss by slowing down to some extent.

Testing:

Added a unit test

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

WesleyRosenblum avatar Sep 24 '22 00:09 WesleyRosenblum