BBR_UNIT
(((bw * (uint64_t)bbr_hptsi_gain[BBR_SUB_GAIN]) / (uint64_t)BBR_UNIT) > rate)) {
gain_calc = (rate * BBR_UNIT) / bw;
if (gain_calc < BBR_UNIT)
gain_calc = BBR_UNIT;
bbr->r_ctl.rc_bbr_hptsi_gain = BBR_UNIT;
(bbr->r_ctl.rc_bbr_hptsi_gain > BBR_UNIT)) {
tar = bbr_get_a_state_target(bbr, BBR_UNIT);
bbr->r_ctl.rc_bbr_hptsi_gain = BBR_UNIT;
bbr->r_ctl.rc_bbr_cwnd_gain = BBR_UNIT;
bbr->r_ctl.rc_bbr_cwnd_gain = BBR_UNIT;
bbr->r_ctl.rc_bbr_hptsi_gain = BBR_UNIT;
bbr->r_ctl.rc_bbr_cwnd_gain = BBR_UNIT;
bbr->r_ctl.rc_bbr_hptsi_gain = BBR_UNIT;
target = bbr_get_target_cwnd(bbr, bbr_get_bw(bbr), BBR_UNIT);
if (optval <= BBR_UNIT)
static int32_t bbr_high_gain = BBR_UNIT * 2885 / 1000 + 1;
static int32_t bbr_startup_lower = BBR_UNIT * 1500 / 1000 + 1;
static int32_t bbr_drain_gain = BBR_UNIT * 1000 / 2885;
static int32_t bbr_cwnd_gain = BBR_UNIT * 2;
(BBR_UNIT *5 / 4),
(BBR_UNIT * 3 / 4),
BBR_UNIT,
BBR_UNIT,
BBR_UNIT,
BBR_UNIT,
BBR_UNIT,
BBR_UNIT
bbr->r_ctl.rc_bbr_hptsi_gain = BBR_UNIT;
cwnd = (uint32_t)(((bdp * ((uint64_t)gain)) + (uint64_t)(BBR_UNIT - 1)) / ((uint64_t)BBR_UNIT));
divor = (uint64_t)USECS_IN_SECOND * (uint64_t)BBR_UNIT;
(uint64_t)BBR_UNIT);
if (bbr->r_ctl.rc_bbr_hptsi_gain > BBR_UNIT) {
} else if (bbr->r_ctl.rc_bbr_hptsi_gain < BBR_UNIT) {
bw /= (uint64_t)BBR_UNIT;
cur_delay = bbr_get_pacing_delay(bbr, BBR_UNIT,
if (bbr->r_ctl.rc_bbr_hptsi_gain != BBR_UNIT) {
bw /= BBR_UNIT;
tso_len = bbr_get_pacing_length(bbr, BBR_UNIT, bbr->r_ctl.bbr_hptsi_segments_delay_tar, bw);
if (bbr->r_ctl.rc_bbr_hptsi_gain > BBR_UNIT) {
} else if (bbr->r_ctl.rc_bbr_hptsi_gain < BBR_UNIT) {
bbr->r_ctl.rc_bbr_hptsi_gain = BBR_UNIT;
bbr->r_ctl.rc_bbr_cwnd_gain = BBR_UNIT;