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 --- |