tcp_bbr.c (8dd06ef34b6e2f41b29fbf5fc1663780f2524285) tcp_bbr.c (1b9e2a8c99a5c021041bfb2d512dc3ed92a94ffd)
1/* Bottleneck Bandwidth and RTT (BBR) congestion control
2 *
3 * BBR congestion control computes the sending rate based on the delivery
4 * rate (throughput) estimated from ACKs. In a nutshell:
5 *
6 * On each ACK, update our model of the network path:
7 * bottleneck_bandwidth = windowed_max(delivered / elapsed, 10 round trips)
8 * min_rtt = windowed_min(rtt, 10 seconds)

--- 931 unchanged lines hidden (view full) ---

940 struct tcp_sock *tp = tcp_sk(sk);
941 struct bbr *bbr = inet_csk_ca(sk);
942 bool filter_expired;
943
944 /* Track min RTT seen in the min_rtt_win_sec filter window: */
945 filter_expired = after(tcp_jiffies32,
946 bbr->min_rtt_stamp + bbr_min_rtt_win_sec * HZ);
947 if (rs->rtt_us >= 0 &&
1/* Bottleneck Bandwidth and RTT (BBR) congestion control
2 *
3 * BBR congestion control computes the sending rate based on the delivery
4 * rate (throughput) estimated from ACKs. In a nutshell:
5 *
6 * On each ACK, update our model of the network path:
7 * bottleneck_bandwidth = windowed_max(delivered / elapsed, 10 round trips)
8 * min_rtt = windowed_min(rtt, 10 seconds)

--- 931 unchanged lines hidden (view full) ---

940 struct tcp_sock *tp = tcp_sk(sk);
941 struct bbr *bbr = inet_csk_ca(sk);
942 bool filter_expired;
943
944 /* Track min RTT seen in the min_rtt_win_sec filter window: */
945 filter_expired = after(tcp_jiffies32,
946 bbr->min_rtt_stamp + bbr_min_rtt_win_sec * HZ);
947 if (rs->rtt_us >= 0 &&
948 (rs->rtt_us <= bbr->min_rtt_us ||
948 (rs->rtt_us < bbr->min_rtt_us ||
949 (filter_expired && !rs->is_ack_delayed))) {
950 bbr->min_rtt_us = rs->rtt_us;
951 bbr->min_rtt_stamp = tcp_jiffies32;
952 }
953
954 if (bbr_probe_rtt_mode_ms > 0 && filter_expired &&
955 !bbr->idle_restart && bbr->mode != BBR_PROBE_RTT) {
956 bbr->mode = BBR_PROBE_RTT; /* dip, drain queue */

--- 218 unchanged lines hidden ---
949 (filter_expired && !rs->is_ack_delayed))) {
950 bbr->min_rtt_us = rs->rtt_us;
951 bbr->min_rtt_stamp = tcp_jiffies32;
952 }
953
954 if (bbr_probe_rtt_mode_ms > 0 && filter_expired &&
955 !bbr->idle_restart && bbr->mode != BBR_PROBE_RTT) {
956 bbr->mode = BBR_PROBE_RTT; /* dip, drain queue */

--- 218 unchanged lines hidden ---