Lines Matching refs:bw
93 struct minmax bw; /* Max recent delivery rate in pkts/uS << 24 */ member
219 return minmax_get(&bbr->bw); in bbr_max_bw()
256 static unsigned long bbr_bw_to_pacing_rate(struct sock *sk, u32 bw, int gain) in bbr_bw_to_pacing_rate() argument
258 u64 rate = bw; in bbr_bw_to_pacing_rate()
270 u64 bw; in bbr_init_pacing_rate_from_rtt() local
279 bw = (u64)tp->snd_cwnd * BW_UNIT; in bbr_init_pacing_rate_from_rtt()
280 do_div(bw, rtt_us); in bbr_init_pacing_rate_from_rtt()
281 sk->sk_pacing_rate = bbr_bw_to_pacing_rate(sk, bw, bbr_high_gain); in bbr_init_pacing_rate_from_rtt()
285 static void bbr_set_pacing_rate(struct sock *sk, u32 bw, int gain) in bbr_set_pacing_rate() argument
289 unsigned long rate = bbr_bw_to_pacing_rate(sk, bw, gain); in bbr_set_pacing_rate()
359 static u32 bbr_bdp(struct sock *sk, u32 bw, int gain) in bbr_bdp() argument
374 w = (u64)bw * bbr->min_rtt_us; in bbr_bdp()
412 static u32 bbr_inflight(struct sock *sk, u32 bw, int gain) in bbr_inflight() argument
416 inflight = bbr_bdp(sk, bw, gain); in bbr_inflight()
519 u32 acked, u32 bw, int gain) in bbr_set_cwnd() argument
531 target_cwnd = bbr_bdp(sk, bw, gain); in bbr_set_cwnd()
561 u32 inflight, bw; in bbr_is_next_cycle_phase() local
570 bw = bbr_max_bw(sk); in bbr_is_next_cycle_phase()
580 inflight >= bbr_inflight(sk, bw, bbr->pacing_gain)); in bbr_is_next_cycle_phase()
587 inflight <= bbr_inflight(sk, bw, BBR_UNIT); in bbr_is_next_cycle_phase()
657 static void bbr_lt_bw_interval_done(struct sock *sk, u32 bw) in bbr_lt_bw_interval_done() argument
664 diff = abs(bw - bbr->lt_bw); in bbr_lt_bw_interval_done()
669 bbr->lt_bw = (bw + bbr->lt_bw) >> 1; /* avg 2 intvls */ in bbr_lt_bw_interval_done()
676 bbr->lt_bw = bw; in bbr_lt_bw_interval_done()
692 u64 bw; in bbr_lt_bw_sampling() local
754 bw = (u64)delivered * BW_UNIT; in bbr_lt_bw_sampling()
755 do_div(bw, t); in bbr_lt_bw_sampling()
756 bbr_lt_bw_interval_done(sk, bw); in bbr_lt_bw_sampling()
764 u64 bw; in bbr_update_bw() local
784 bw = div64_long((u64)rs->delivered * BW_UNIT, rs->interval_us); in bbr_update_bw()
797 if (!rs->is_app_limited || bw >= bbr_max_bw(sk)) { in bbr_update_bw()
799 minmax_running_max(&bbr->bw, bbr_bw_rtts, bbr->rtt_cnt, bw); in bbr_update_bw()
1029 u32 bw; in bbr_main() local
1033 bw = bbr_bw(sk); in bbr_main()
1034 bbr_set_pacing_rate(sk, bw, bbr->pacing_gain); in bbr_main()
1035 bbr_set_cwnd(sk, rs, rs->acked_sacked, bw, bbr->cwnd_gain); in bbr_main()
1055 minmax_reset(&bbr->bw, bbr->rtt_cnt, 0); /* init max bw to 0 */ in bbr_init()
1113 u64 bw = bbr_bw(sk); in bbr_get_info() local
1115 bw = bw * tp->mss_cache * USEC_PER_SEC >> BW_SCALE; in bbr_get_info()
1117 info->bbr.bbr_bw_lo = (u32)bw; in bbr_get_info()
1118 info->bbr.bbr_bw_hi = (u32)(bw >> 32); in bbr_get_info()