Lines Matching refs:ca
76 static void dctcp_reset(const struct tcp_sock *tp, struct dctcp *ca) in dctcp_reset() argument
78 ca->next_seq = tp->snd_nxt; in dctcp_reset()
80 ca->acked_bytes_ecn = 0; in dctcp_reset()
81 ca->acked_bytes_total = 0; in dctcp_reset()
91 struct dctcp *ca = inet_csk_ca(sk); in dctcp_init() local
93 ca->prior_snd_una = tp->snd_una; in dctcp_init()
94 ca->prior_rcv_nxt = tp->rcv_nxt; in dctcp_init()
96 ca->dctcp_alpha = min(dctcp_alpha_on_init, DCTCP_MAX_ALPHA); in dctcp_init()
98 ca->delayed_ack_reserved = 0; in dctcp_init()
99 ca->ce_state = 0; in dctcp_init()
101 dctcp_reset(tp, ca); in dctcp_init()
114 const struct dctcp *ca = inet_csk_ca(sk); in dctcp_ssthresh() local
117 return max(tp->snd_cwnd - ((tp->snd_cwnd * ca->dctcp_alpha) >> 11U), 2U); in dctcp_ssthresh()
128 struct dctcp *ca = inet_csk_ca(sk); in dctcp_ce_state_0_to_1() local
134 if (!ca->ce_state && ca->delayed_ack_reserved) { in dctcp_ce_state_0_to_1()
142 tp->rcv_nxt = ca->prior_rcv_nxt; in dctcp_ce_state_0_to_1()
150 ca->prior_rcv_nxt = tp->rcv_nxt; in dctcp_ce_state_0_to_1()
151 ca->ce_state = 1; in dctcp_ce_state_0_to_1()
158 struct dctcp *ca = inet_csk_ca(sk); in dctcp_ce_state_1_to_0() local
164 if (ca->ce_state && ca->delayed_ack_reserved) { in dctcp_ce_state_1_to_0()
172 tp->rcv_nxt = ca->prior_rcv_nxt; in dctcp_ce_state_1_to_0()
180 ca->prior_rcv_nxt = tp->rcv_nxt; in dctcp_ce_state_1_to_0()
181 ca->ce_state = 0; in dctcp_ce_state_1_to_0()
189 struct dctcp *ca = inet_csk_ca(sk); in dctcp_update_alpha() local
190 u32 acked_bytes = tp->snd_una - ca->prior_snd_una; in dctcp_update_alpha()
198 ca->acked_bytes_total += acked_bytes; in dctcp_update_alpha()
199 ca->prior_snd_una = tp->snd_una; in dctcp_update_alpha()
202 ca->acked_bytes_ecn += acked_bytes; in dctcp_update_alpha()
206 if (!before(tp->snd_una, ca->next_seq)) { in dctcp_update_alpha()
207 u64 bytes_ecn = ca->acked_bytes_ecn; in dctcp_update_alpha()
208 u32 alpha = ca->dctcp_alpha; in dctcp_update_alpha()
218 do_div(bytes_ecn, max(1U, ca->acked_bytes_total)); in dctcp_update_alpha()
226 WRITE_ONCE(ca->dctcp_alpha, alpha); in dctcp_update_alpha()
227 dctcp_reset(tp, ca); in dctcp_update_alpha()
234 struct dctcp *ca = inet_csk_ca(sk); in dctcp_state() local
244 ca->dctcp_alpha = DCTCP_MAX_ALPHA; in dctcp_state()
250 struct dctcp *ca = inet_csk_ca(sk); in dctcp_update_ack_reserved() local
254 if (!ca->delayed_ack_reserved) in dctcp_update_ack_reserved()
255 ca->delayed_ack_reserved = 1; in dctcp_update_ack_reserved()
258 if (ca->delayed_ack_reserved) in dctcp_update_ack_reserved()
259 ca->delayed_ack_reserved = 0; in dctcp_update_ack_reserved()
289 const struct dctcp *ca = inet_csk_ca(sk); in dctcp_get_info() local
299 info->dctcp.dctcp_ce_state = (u16) ca->ce_state; in dctcp_get_info()
300 info->dctcp.dctcp_alpha = ca->dctcp_alpha; in dctcp_get_info()
301 info->dctcp.dctcp_ab_ecn = ca->acked_bytes_ecn; in dctcp_get_info()
302 info->dctcp.dctcp_ab_tot = ca->acked_bytes_total; in dctcp_get_info()