Lines Matching refs:bw
91 struct minmax bw; /* Max recent delivery rate in pkts/uS << 24 */ member
192 return minmax_get(&bbr->bw); in bbr_max_bw()
221 static u32 bbr_bw_to_pacing_rate(struct sock *sk, u32 bw, int gain) in bbr_bw_to_pacing_rate() argument
223 u64 rate = bw; in bbr_bw_to_pacing_rate()
235 u64 bw; in bbr_init_pacing_rate_from_rtt() local
244 bw = (u64)tp->snd_cwnd * BW_UNIT; in bbr_init_pacing_rate_from_rtt()
245 do_div(bw, rtt_us); in bbr_init_pacing_rate_from_rtt()
246 sk->sk_pacing_rate = bbr_bw_to_pacing_rate(sk, bw, bbr_high_gain); in bbr_init_pacing_rate_from_rtt()
256 static void bbr_set_pacing_rate(struct sock *sk, u32 bw, int gain) in bbr_set_pacing_rate() argument
260 u32 rate = bbr_bw_to_pacing_rate(sk, bw, gain); in bbr_set_pacing_rate()
338 static u32 bbr_target_cwnd(struct sock *sk, u32 bw, int gain) in bbr_target_cwnd() argument
353 w = (u64)bw * bbr->min_rtt_us; in bbr_target_cwnd()
419 u32 acked, u32 bw, int gain) in bbr_set_cwnd() argument
432 target_cwnd = bbr_target_cwnd(sk, bw, gain); in bbr_set_cwnd()
454 u32 inflight, bw; in bbr_is_next_cycle_phase() local
463 bw = bbr_max_bw(sk); in bbr_is_next_cycle_phase()
473 inflight >= bbr_target_cwnd(sk, bw, bbr->pacing_gain)); in bbr_is_next_cycle_phase()
480 inflight <= bbr_target_cwnd(sk, bw, BBR_UNIT); in bbr_is_next_cycle_phase()
556 static void bbr_lt_bw_interval_done(struct sock *sk, u32 bw) in bbr_lt_bw_interval_done() argument
563 diff = abs(bw - bbr->lt_bw); in bbr_lt_bw_interval_done()
568 bbr->lt_bw = (bw + bbr->lt_bw) >> 1; /* avg 2 intvls */ in bbr_lt_bw_interval_done()
575 bbr->lt_bw = bw; in bbr_lt_bw_interval_done()
591 u64 bw; in bbr_lt_bw_sampling() local
653 bw = (u64)delivered * BW_UNIT; in bbr_lt_bw_sampling()
654 do_div(bw, t); in bbr_lt_bw_sampling()
655 bbr_lt_bw_interval_done(sk, bw); in bbr_lt_bw_sampling()
663 u64 bw; in bbr_update_bw() local
683 bw = (u64)rs->delivered * BW_UNIT; in bbr_update_bw()
684 do_div(bw, rs->interval_us); in bbr_update_bw()
697 if (!rs->is_app_limited || bw >= bbr_max_bw(sk)) { in bbr_update_bw()
699 minmax_running_max(&bbr->bw, bbr_bw_rtts, bbr->rtt_cnt, bw); in bbr_update_bw()
841 u32 bw; in bbr_main() local
845 bw = bbr_bw(sk); in bbr_main()
846 bbr_set_pacing_rate(sk, bw, bbr->pacing_gain); in bbr_main()
847 bbr_set_cwnd(sk, rs, rs->acked_sacked, bw, bbr->cwnd_gain); in bbr_main()
867 minmax_reset(&bbr->bw, bbr->rtt_cnt, 0); /* init max bw to 0 */ in bbr_init()
918 u64 bw = bbr_bw(sk); in bbr_get_info() local
920 bw = bw * tp->mss_cache * USEC_PER_SEC >> BW_SCALE; in bbr_get_info()
922 info->bbr.bbr_bw_lo = (u32)bw; in bbr_get_info()
923 info->bbr.bbr_bw_hi = (u32)(bw >> 32); in bbr_get_info()