tcp_snd_cwnd
return tcp_snd_cwnd(tp) < tp->snd_ssthresh;
((tcp_snd_cwnd(tp) >> 1) +
(tcp_snd_cwnd(tp) >> 2)));
return tcp_snd_cwnd(tp) < 2 * tp->max_packets_out;
tcp_snd_cwnd(tcp_sk(sk)),
__entry->snd_cwnd = tcp_snd_cwnd(tp);
tcp_packets_in_flight(tp) < tcp_snd_cwnd(tp) &&
info->tcpi_snd_cwnd = tcp_snd_cwnd(tp);
return tcp_snd_cwnd(tcp_sk(sk));
bw = (u64)tcp_snd_cwnd(tp) * BW_UNIT;
bbr->prior_cwnd = tcp_snd_cwnd(tp); /* this cwnd is good enough */
bbr->prior_cwnd = max(bbr->prior_cwnd, tcp_snd_cwnd(tp));
u32 cwnd = tcp_snd_cwnd(tp);
u32 cwnd = tcp_snd_cwnd(tp), target_cwnd = 0;
tcp_snd_cwnd_set(tp, min(tcp_snd_cwnd(tp), bbr_cwnd_min_target));
extra_acked = min(extra_acked, tcp_snd_cwnd(tp));
tcp_snd_cwnd_set(tp, max(tcp_snd_cwnd(tp), bbr->prior_cwnd));
bictcp_update(ca, tcp_snd_cwnd(tp));
if (tcp_snd_cwnd(tp) < ca->last_max_cwnd && fast_convergence)
ca->last_max_cwnd = (tcp_snd_cwnd(tp) * (BICTCP_BETA_SCALE + beta))
ca->last_max_cwnd = tcp_snd_cwnd(tp);
if (tcp_snd_cwnd(tp) <= low_window)
return max(tcp_snd_cwnd(tp) >> 1U, 2U);
return max((tcp_snd_cwnd(tp) * beta) / BICTCP_BETA_SCALE, 2U);
tcp_snd_cwnd(tp));
WRITE_ONCE(tp->snd_ssthresh, tcp_snd_cwnd(tp));
tcp_snd_cwnd(tp));
WRITE_ONCE(tp->snd_ssthresh, tcp_snd_cwnd(tp));
ca->shadow_wnd = max(ca->shadow_wnd, tcp_snd_cwnd(tp));
ca->shadow_wnd = min(ca->shadow_wnd, tcp_snd_cwnd(tp));
prior_snd_cwnd = tcp_snd_cwnd(tp);
incr = tcp_snd_cwnd(tp) - prior_snd_cwnd;
return max(2U, (tcp_snd_cwnd(tp) * min(1024U, backoff_beta)) >> 10);
return tcp_snd_cwnd(tp);
ca->shadow_wnd = min(ca->shadow_wnd >> 1, tcp_snd_cwnd(tp));
return max3(2U, ca->shadow_wnd, tcp_snd_cwnd(tp) >> 1);
return max(2U, tcp_snd_cwnd(tp) >> 1);
ca->shadow_wnd = tcp_snd_cwnd(tp);
ca->shadow_wnd = tcp_snd_cwnd(tp);
u32 cwnd = min(tcp_snd_cwnd(tp) + acked, tp->snd_ssthresh);
acked -= cwnd - tcp_snd_cwnd(tp);
tcp_snd_cwnd_set(tp, tcp_snd_cwnd(tp) + 1);
tcp_snd_cwnd_set(tp, tcp_snd_cwnd(tp) + delta);
tcp_snd_cwnd_set(tp, min(tcp_snd_cwnd(tp), tp->snd_cwnd_clamp));
tcp_cong_avoid_ai(tp, tcp_snd_cwnd(tp), acked);
return max(tcp_snd_cwnd(tp) >> 1U, 2U);
return max(tcp_snd_cwnd(tp), tp->prior_cwnd);
bictcp_update(ca, tcp_snd_cwnd(tp), acked);
if (tcp_snd_cwnd(tp) < ca->last_max_cwnd && fast_convergence)
ca->last_max_cwnd = (tcp_snd_cwnd(tp) * (BICTCP_BETA_SCALE + beta))
ca->last_max_cwnd = tcp_snd_cwnd(tp);
return max((tcp_snd_cwnd(tp) * beta) / BICTCP_BETA_SCALE, 2U);
if (tcp_snd_cwnd(tp) < hystart_low_window)
ca->delay_min, hystart_ack_delay(sk), tcp_snd_cwnd(tp));
tcp_snd_cwnd(tp));
WRITE_ONCE(tp->snd_ssthresh, tcp_snd_cwnd(tp));
tcp_snd_cwnd(tp));
WRITE_ONCE(tp->snd_ssthresh, tcp_snd_cwnd(tp));
ca->loss_cwnd = tcp_snd_cwnd(tp);
return max(tcp_snd_cwnd(tp) - ((tcp_snd_cwnd(tp) * ca->dctcp_alpha) >> 11U), 2U);
ca->loss_cwnd = tcp_snd_cwnd(tp);
WRITE_ONCE(tp->snd_ssthresh, max(tcp_snd_cwnd(tp) >> 1U, 2U));
return max(tcp_snd_cwnd(tp), ca->loss_cwnd);
if (tcp_snd_cwnd(tp) > hstcp_aimd_vals[ca->ai].cwnd) {
while (tcp_snd_cwnd(tp) > hstcp_aimd_vals[ca->ai].cwnd &&
} else if (ca->ai && tcp_snd_cwnd(tp) <= hstcp_aimd_vals[ca->ai-1].cwnd) {
while (ca->ai && tcp_snd_cwnd(tp) <= hstcp_aimd_vals[ca->ai-1].cwnd)
if (tcp_snd_cwnd(tp) < tp->snd_cwnd_clamp) {
if (tp->snd_cwnd_cnt >= tcp_snd_cwnd(tp)) {
tp->snd_cwnd_cnt -= tcp_snd_cwnd(tp);
tcp_snd_cwnd_set(tp, tcp_snd_cwnd(tp) + 1);
return max(tcp_snd_cwnd(tp) - ((tcp_snd_cwnd(tp) * hstcp_aimd_vals[ca->ai].md) >> 8), 2U);
if (ca->packetcount >= tcp_snd_cwnd(tp) - (ca->alpha >> 7 ? : 1) &&
return max((tcp_snd_cwnd(tp) * ca->beta) >> 7, 2U);
if ((tp->snd_cwnd_cnt * ca->alpha)>>7 >= tcp_snd_cwnd(tp)) {
if (tcp_snd_cwnd(tp) < tp->snd_cwnd_clamp)
tcp_snd_cwnd_set(tp, tcp_snd_cwnd(tp) + 1);
increment = ca->rho2_7ls / tcp_snd_cwnd(tp);
tcp_snd_cwnd_set(tp, tcp_snd_cwnd(tp) + (increment >> 7));
tcp_snd_cwnd_set(tp, tcp_snd_cwnd(tp) + 1);
if (increment == 0 && odd == 0 && tp->snd_cwnd_cnt >= tcp_snd_cwnd(tp)) {
tcp_snd_cwnd_set(tp, tcp_snd_cwnd(tp) + 1);
tcp_snd_cwnd_set(tp, min(tcp_snd_cwnd(tp), tp->snd_ssthresh));
tcp_snd_cwnd_set(tp, min(tcp_snd_cwnd(tp), tp->snd_cwnd_clamp));
if (tcp_snd_cwnd(tp) < win_thresh) {
if (delta >= tcp_snd_cwnd(tp)) {
tcp_snd_cwnd_set(tp, min(tcp_snd_cwnd(tp) + delta / tcp_snd_cwnd(tp),
decr = (tcp_snd_cwnd(tp) * ca->beta) >> BETA_SHIFT;
return max(tcp_snd_cwnd(tp) - decr, 2U);
if (tcp_snd_cwnd(tp) < tp->snd_ssthresh / 2)
rate *= max(tcp_snd_cwnd(tp), tp->packets_out);
tp->prior_cwnd = tcp_snd_cwnd(tp);
tcp_snd_cwnd(tp), tcp_left_out(tp),
tcp_snd_cwnd(tp), tcp_left_out(tp),
tp->prior_cwnd = tcp_snd_cwnd(tp);
val = (u64)tcp_snd_cwnd(tp) * tcp_mss_to_mtu(sk, tp->mss_cache);
tcp_snd_cwnd_set(tp, tcp_snd_cwnd(tp) + 1);
if (tcp_packets_in_flight(tp) >= tcp_snd_cwnd(tp))
nr_segs = max_t(u32, TCP_INIT_CWND, tcp_snd_cwnd(tp));
tcp_snd_cwnd(tp),
tcp_snd_cwnd(tp), lp->remote_hz, lp->owd_min, lp->owd_max,
tcp_snd_cwnd_set(tp, max(tcp_snd_cwnd(tp) >> 1U, 1U));
if (val && (tcp_snd_cwnd(tp) >> 1) > val)
tcp_snd_cwnd(tp) >> 1);
if (tcp_snd_cwnd(tp) > val)
tcp_snd_cwnd(tp));
max(tcp_snd_cwnd(tp) >> 1, tp->snd_ssthresh));
tcp_metric_set(tm, TCP_METRIC_CWND, (val + tcp_snd_cwnd(tp)) >> 1);
cnt = tcp_snd_cwnd(tp) << -ca->cwnd_growth_factor;
cnt = max(4U, tcp_snd_cwnd(tp) >> ca->cwnd_growth_factor);
return max((tcp_snd_cwnd(tp) * nv_loss_dec_factor) >> 10, 2U);
if (ca->nv_catchup && tcp_snd_cwnd(tp) >= nv_min_cwnd) {
if (tcp_snd_cwnd(tp) > max_win) {
if (tcp_snd_cwnd(tp) - max_win > 2) {
dec = max(2U, ((tcp_snd_cwnd(tp) - max_win) *
tcp_snd_cwnd_set(tp, tcp_snd_cwnd(tp) - dec);
} else if (tcp_snd_cwnd(tp) <= max_win - nv_pad_buffer) {
if (tcp_snd_cwnd(tp) < nv_min_cwnd)
tcp_snd_cwnd(tp) > tcp_packets_in_flight(tp)) {
u32 cwnd = tcp_snd_cwnd(tp);
if (win_used < tcp_snd_cwnd(tp)) {
tcp_snd_cwnd_set(tp, (tcp_snd_cwnd(tp) + win_used) >> 1);
cwnd = tcp_snd_cwnd(tp);
BUG_ON(tcp_snd_cwnd(tp) <= in_flight);
cong_win = (tcp_snd_cwnd(tp) - in_flight) * tp->mss_cache;
u32 chunk = min(tp->snd_wnd, tcp_snd_cwnd(tp) * tp->mss_cache);
tcp_snd_cwnd(tp) < 11 ||
if (tcp_packets_in_flight(tp) + 2 > tcp_snd_cwnd(tp)) {
tcp_snd_cwnd_set(tp, tcp_snd_cwnd(tp) - 1);
is_cwnd_limited |= (tcp_packets_in_flight(tp) >= tcp_snd_cwnd(tp));
segs = tcp_snd_cwnd(tp) - tcp_packets_in_flight(tp);
tcp_cong_avoid_ai(tp, min(tcp_snd_cwnd(tp), TCP_SCALABLE_AI_CNT),
return max(tcp_snd_cwnd(tp) - (tcp_snd_cwnd(tp)>>TCP_SCALABLE_MD_SCALE), 2U);
return min(tp->snd_ssthresh, tcp_snd_cwnd(tp));
target_cwnd = (u64)tcp_snd_cwnd(tp) * vegas->baseRTT;
diff = tcp_snd_cwnd(tp) * (rtt-vegas->baseRTT) / vegas->baseRTT;
tcp_snd_cwnd_set(tp, min(tcp_snd_cwnd(tp),
tcp_snd_cwnd_set(tp, tcp_snd_cwnd(tp) - 1);
tcp_snd_cwnd_set(tp, tcp_snd_cwnd(tp) + 1);
if (tcp_snd_cwnd(tp) < 2)
else if (tcp_snd_cwnd(tp) > tp->snd_cwnd_clamp)
target_cwnd = (u64)tcp_snd_cwnd(tp) * veno->basertt;
veno->diff = (tcp_snd_cwnd(tp) << V_PARAM_SHIFT) - target_cwnd;
tcp_cong_avoid_ai(tp, tcp_snd_cwnd(tp), acked);
if (tp->snd_cwnd_cnt >= tcp_snd_cwnd(tp)) {
tcp_snd_cwnd(tp) < tp->snd_cwnd_clamp) {
tcp_snd_cwnd_set(tp, tcp_snd_cwnd(tp) + 1);
if (tcp_snd_cwnd(tp) < 2)
else if (tcp_snd_cwnd(tp) > tp->snd_cwnd_clamp)
return max(tcp_snd_cwnd(tp) * 4 / 5, 2U);
return max(tcp_snd_cwnd(tp) >> 1U, 2U);
bw = tcp_snd_cwnd(tp);
tcp_snd_cwnd(tp) > yeah->reno_count) {
tcp_snd_cwnd(tp) >> TCP_YEAH_EPSILON);
tcp_snd_cwnd_set(tp, tcp_snd_cwnd(tp) - reduction);
tcp_snd_cwnd_set(tp, max(tcp_snd_cwnd(tp),
tcp_snd_cwnd(tp));
yeah->reno_count = max(tcp_snd_cwnd(tp)>>1, 2U);
yeah->vegas.beg_snd_cwnd = tcp_snd_cwnd(tp);
reduction = min(reduction, max(tcp_snd_cwnd(tp)>>1, 2U));
reduction = max(reduction, tcp_snd_cwnd(tp) >> TCP_YEAH_DELTA);
reduction = max(tcp_snd_cwnd(tp)>>1, 2U);
return max_t(int, tcp_snd_cwnd(tp) - reduction, 2);
tcp_cong_avoid_ai(tp, min(tcp_snd_cwnd(tp), TCP_SCALABLE_AI_CNT),
tcp_cong_avoid_ai(tp, tcp_snd_cwnd(tp), acked);
tcp_snd_cwnd(tp),