Lines Matching refs:bw
62 struct minmax bw; /* Max recent delivery rate in pkts/uS << 24 */ member
163 return minmax_get(&bbr->bw); in bbr_max_bw()
188 static u32 bbr_bw_to_pacing_rate(struct sock *sk, u32 bw, int gain) in bbr_bw_to_pacing_rate() argument
190 u64 rate = bw; in bbr_bw_to_pacing_rate()
202 u64 bw; in bbr_init_pacing_rate_from_rtt() local
211 bw = (u64)tp->snd_cwnd * BW_UNIT; in bbr_init_pacing_rate_from_rtt()
212 do_div(bw, rtt_us); in bbr_init_pacing_rate_from_rtt()
213 sk->sk_pacing_rate = bbr_bw_to_pacing_rate(sk, bw, bbr_high_gain); in bbr_init_pacing_rate_from_rtt()
223 static void bbr_set_pacing_rate(struct sock *sk, u32 bw, int gain) in bbr_set_pacing_rate() argument
227 u32 rate = bbr_bw_to_pacing_rate(sk, bw, gain); in bbr_set_pacing_rate()
301 static u32 bbr_target_cwnd(struct sock *sk, u32 bw, int gain) in bbr_target_cwnd() argument
316 w = (u64)bw * bbr->min_rtt_us; in bbr_target_cwnd()
384 u32 acked, u32 bw, int gain) in bbr_set_cwnd() argument
397 target_cwnd = bbr_target_cwnd(sk, bw, gain); in bbr_set_cwnd()
419 u32 inflight, bw; in bbr_is_next_cycle_phase() local
428 bw = bbr_max_bw(sk); in bbr_is_next_cycle_phase()
438 inflight >= bbr_target_cwnd(sk, bw, bbr->pacing_gain)); in bbr_is_next_cycle_phase()
445 inflight <= bbr_target_cwnd(sk, bw, BBR_UNIT); in bbr_is_next_cycle_phase()
521 static void bbr_lt_bw_interval_done(struct sock *sk, u32 bw) in bbr_lt_bw_interval_done() argument
528 diff = abs(bw - bbr->lt_bw); in bbr_lt_bw_interval_done()
533 bbr->lt_bw = (bw + bbr->lt_bw) >> 1; /* avg 2 intvls */ in bbr_lt_bw_interval_done()
540 bbr->lt_bw = bw; in bbr_lt_bw_interval_done()
556 u64 bw; in bbr_lt_bw_sampling() local
618 bw = (u64)delivered * BW_UNIT; in bbr_lt_bw_sampling()
619 do_div(bw, t); in bbr_lt_bw_sampling()
620 bbr_lt_bw_interval_done(sk, bw); in bbr_lt_bw_sampling()
628 u64 bw; in bbr_update_bw() local
648 bw = (u64)rs->delivered * BW_UNIT; in bbr_update_bw()
649 do_div(bw, rs->interval_us); in bbr_update_bw()
662 if (!rs->is_app_limited || bw >= bbr_max_bw(sk)) { in bbr_update_bw()
664 minmax_running_max(&bbr->bw, bbr_bw_rtts, bbr->rtt_cnt, bw); in bbr_update_bw()
791 u32 bw; in bbr_main() local
795 bw = bbr_bw(sk); in bbr_main()
796 bbr_set_pacing_rate(sk, bw, bbr->pacing_gain); in bbr_main()
798 bbr_set_cwnd(sk, rs, rs->acked_sacked, bw, bbr->cwnd_gain); in bbr_main()
818 minmax_reset(&bbr->bw, bbr->rtt_cnt, 0); /* init max bw to 0 */ in bbr_init()
868 u64 bw = bbr_bw(sk); in bbr_get_info() local
870 bw = bw * tp->mss_cache * USEC_PER_SEC >> BW_SCALE; in bbr_get_info()
872 info->bbr.bbr_bw_lo = (u32)bw; in bbr_get_info()
873 info->bbr.bbr_bw_hi = (u32)(bw >> 32); in bbr_get_info()