Lines Matching refs:ca
71 static void dctcp_reset(const struct tcp_sock *tp, struct dctcp *ca) in dctcp_reset() argument
73 ca->next_seq = tp->snd_nxt; in dctcp_reset()
75 ca->acked_bytes_ecn = 0; in dctcp_reset()
76 ca->acked_bytes_total = 0; in dctcp_reset()
86 struct dctcp *ca = inet_csk_ca(sk); in dctcp_init() local
88 ca->prior_snd_una = tp->snd_una; in dctcp_init()
89 ca->prior_rcv_nxt = tp->rcv_nxt; in dctcp_init()
91 ca->dctcp_alpha = min(dctcp_alpha_on_init, DCTCP_MAX_ALPHA); in dctcp_init()
93 ca->loss_cwnd = 0; in dctcp_init()
94 ca->ce_state = 0; in dctcp_init()
96 dctcp_reset(tp, ca); in dctcp_init()
109 struct dctcp *ca = inet_csk_ca(sk); in dctcp_ssthresh() local
112 ca->loss_cwnd = tp->snd_cwnd; in dctcp_ssthresh()
113 return max(tp->snd_cwnd - ((tp->snd_cwnd * ca->dctcp_alpha) >> 11U), 2U); in dctcp_ssthresh()
124 struct dctcp *ca = inet_csk_ca(sk); in dctcp_ce_state_0_to_1() local
127 if (!ca->ce_state) { in dctcp_ce_state_0_to_1()
133 __tcp_send_ack(sk, ca->prior_rcv_nxt); in dctcp_ce_state_0_to_1()
137 ca->prior_rcv_nxt = tp->rcv_nxt; in dctcp_ce_state_0_to_1()
138 ca->ce_state = 1; in dctcp_ce_state_0_to_1()
145 struct dctcp *ca = inet_csk_ca(sk); in dctcp_ce_state_1_to_0() local
148 if (ca->ce_state) { in dctcp_ce_state_1_to_0()
154 __tcp_send_ack(sk, ca->prior_rcv_nxt); in dctcp_ce_state_1_to_0()
158 ca->prior_rcv_nxt = tp->rcv_nxt; in dctcp_ce_state_1_to_0()
159 ca->ce_state = 0; in dctcp_ce_state_1_to_0()
167 struct dctcp *ca = inet_csk_ca(sk); in dctcp_update_alpha() local
168 u32 acked_bytes = tp->snd_una - ca->prior_snd_una; in dctcp_update_alpha()
176 ca->acked_bytes_total += acked_bytes; in dctcp_update_alpha()
177 ca->prior_snd_una = tp->snd_una; in dctcp_update_alpha()
180 ca->acked_bytes_ecn += acked_bytes; in dctcp_update_alpha()
184 if (!before(tp->snd_una, ca->next_seq)) { in dctcp_update_alpha()
185 u64 bytes_ecn = ca->acked_bytes_ecn; in dctcp_update_alpha()
186 u32 alpha = ca->dctcp_alpha; in dctcp_update_alpha()
196 do_div(bytes_ecn, max(1U, ca->acked_bytes_total)); in dctcp_update_alpha()
204 WRITE_ONCE(ca->dctcp_alpha, alpha); in dctcp_update_alpha()
205 dctcp_reset(tp, ca); in dctcp_update_alpha()
211 struct dctcp *ca = inet_csk_ca(sk); in dctcp_react_to_loss() local
214 ca->loss_cwnd = tp->snd_cwnd; in dctcp_react_to_loss()
249 const struct dctcp *ca = inet_csk_ca(sk); in dctcp_get_info() local
259 info->dctcp.dctcp_ce_state = (u16) ca->ce_state; in dctcp_get_info()
260 info->dctcp.dctcp_alpha = ca->dctcp_alpha; in dctcp_get_info()
261 info->dctcp.dctcp_ab_ecn = ca->acked_bytes_ecn; in dctcp_get_info()
262 info->dctcp.dctcp_ab_tot = ca->acked_bytes_total; in dctcp_get_info()
273 const struct dctcp *ca = inet_csk_ca(sk); in dctcp_cwnd_undo() local
275 return max(tcp_sk(sk)->snd_cwnd, ca->loss_cwnd); in dctcp_cwnd_undo()