Lines Matching refs:ca

60 static inline void bictcp_reset(struct bictcp *ca)  in bictcp_reset()  argument
62 ca->cnt = 0; in bictcp_reset()
63 ca->last_max_cwnd = 0; in bictcp_reset()
64 ca->last_cwnd = 0; in bictcp_reset()
65 ca->last_time = 0; in bictcp_reset()
66 ca->epoch_start = 0; in bictcp_reset()
67 ca->delayed_ack = 2 << ACK_RATIO_SHIFT; in bictcp_reset()
72 struct bictcp *ca = inet_csk_ca(sk); in bictcp_init() local
74 bictcp_reset(ca); in bictcp_init()
83 static inline void bictcp_update(struct bictcp *ca, u32 cwnd) in bictcp_update() argument
85 if (ca->last_cwnd == cwnd && in bictcp_update()
86 (s32)(tcp_jiffies32 - ca->last_time) <= HZ / 32) in bictcp_update()
89 ca->last_cwnd = cwnd; in bictcp_update()
90 ca->last_time = tcp_jiffies32; in bictcp_update()
92 if (ca->epoch_start == 0) /* record the beginning of an epoch */ in bictcp_update()
93 ca->epoch_start = tcp_jiffies32; in bictcp_update()
97 ca->cnt = cwnd; in bictcp_update()
102 if (cwnd < ca->last_max_cwnd) { in bictcp_update()
103 __u32 dist = (ca->last_max_cwnd - cwnd) in bictcp_update()
108 ca->cnt = cwnd / max_increment; in bictcp_update()
111 ca->cnt = (cwnd * smooth_part) / BICTCP_B; in bictcp_update()
114 ca->cnt = cwnd / dist; in bictcp_update()
117 if (cwnd < ca->last_max_cwnd + BICTCP_B) in bictcp_update()
119 ca->cnt = (cwnd * smooth_part) / BICTCP_B; in bictcp_update()
120 else if (cwnd < ca->last_max_cwnd + max_increment*(BICTCP_B-1)) in bictcp_update()
122 ca->cnt = (cwnd * (BICTCP_B-1)) in bictcp_update()
123 / (cwnd - ca->last_max_cwnd); in bictcp_update()
126 ca->cnt = cwnd / max_increment; in bictcp_update()
130 if (ca->last_max_cwnd == 0) { in bictcp_update()
131 if (ca->cnt > 20) /* increase cwnd 5% per RTT */ in bictcp_update()
132 ca->cnt = 20; in bictcp_update()
135 ca->cnt = (ca->cnt << ACK_RATIO_SHIFT) / ca->delayed_ack; in bictcp_update()
136 if (ca->cnt == 0) /* cannot be zero */ in bictcp_update()
137 ca->cnt = 1; in bictcp_update()
143 struct bictcp *ca = inet_csk_ca(sk); in bictcp_cong_avoid() local
153 bictcp_update(ca, tcp_snd_cwnd(tp)); in bictcp_cong_avoid()
154 tcp_cong_avoid_ai(tp, ca->cnt, acked); in bictcp_cong_avoid()
164 struct bictcp *ca = inet_csk_ca(sk); in bictcp_recalc_ssthresh() local
166 ca->epoch_start = 0; /* end of epoch */ in bictcp_recalc_ssthresh()
169 if (tcp_snd_cwnd(tp) < ca->last_max_cwnd && fast_convergence) in bictcp_recalc_ssthresh()
170 ca->last_max_cwnd = (tcp_snd_cwnd(tp) * (BICTCP_BETA_SCALE + beta)) in bictcp_recalc_ssthresh()
173 ca->last_max_cwnd = tcp_snd_cwnd(tp); in bictcp_recalc_ssthresh()
195 struct bictcp *ca = inet_csk_ca(sk); in bictcp_acked() local
197 ca->delayed_ack += sample->pkts_acked - in bictcp_acked()
198 (ca->delayed_ack >> ACK_RATIO_SHIFT); in bictcp_acked()