• Neal Cardwell's avatar
    tcp_bbr: cut pacing rate only if filled pipe · 4aea287e
    Neal Cardwell authored
    In bbr_set_pacing_rate(), which decides whether to cut the pacing
    rate, there was some code that considered exiting STARTUP to be
    equivalent to the notion of filling the pipe (i.e.,
    bbr_full_bw_reached()). Specifically, as the code was structured,
    exiting STARTUP and going into PROBE_RTT could cause us to cut the
    pacing rate down to something silly and low, based on whatever
    bandwidth samples we've had so far, when it's possible that all of
    them have been small app-limited bandwidth samples that are not
    representative of the bandwidth available in the path. (The code was
    correct at the time it was written, but the state machine changed
    without this spot being adjusted correspondingly.)
    
    Fixes: 0f8782ea ("tcp_bbr: add BBR congestion control")
    Signed-off-by: default avatarNeal Cardwell <ncardwell@google.com>
    Signed-off-by: default avatarYuchung Cheng <ycheng@google.com>
    Signed-off-by: default avatarSoheil Hassas Yeganeh <soheil@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    4aea287e
tcp_bbr.c 32.9 KB