• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/net/ipv4/

Lines Matching refs:ca

71 static inline void bictcp_reset(struct bictcp *ca)
73 ca->cnt = 0;
74 ca->last_max_cwnd = 0;
75 ca->loss_cwnd = 0;
76 ca->last_cwnd = 0;
77 ca->last_time = 0;
78 ca->bic_origin_point = 0;
79 ca->bic_K = 0;
80 ca->delay_min = 0;
81 ca->epoch_start = 0;
82 ca->delayed_ack = 2 << ACK_RATIO_SHIFT;
83 ca->ack_cnt = 0;
84 ca->tcp_cwnd = 0;
145 static inline void bictcp_update(struct bictcp *ca, u32 cwnd)
150 ca->ack_cnt++; /* count the number of ACKs */
152 if (ca->last_cwnd == cwnd &&
153 (s32)(tcp_time_stamp - ca->last_time) <= HZ / 32)
156 ca->last_cwnd = cwnd;
157 ca->last_time = tcp_time_stamp;
159 if (ca->epoch_start == 0) {
160 ca->epoch_start = tcp_time_stamp; /* record the beginning of an epoch */
161 ca->ack_cnt = 1; /* start counting */
162 ca->tcp_cwnd = cwnd; /* syn with cubic */
164 if (ca->last_max_cwnd <= cwnd) {
165 ca->bic_K = 0;
166 ca->bic_origin_point = cwnd;
171 ca->bic_K = cubic_root(cube_factor
172 * (ca->last_max_cwnd - cwnd));
173 ca->bic_origin_point = ca->last_max_cwnd;
192 t = ((tcp_time_stamp + (ca->delay_min>>3) - ca->epoch_start)
195 if (t < ca->bic_K) /* t - K */
196 offs = ca->bic_K - t;
198 offs = t - ca->bic_K;
202 if (t < ca->bic_K) /* below origin*/
203 bic_target = ca->bic_origin_point - delta;
205 bic_target = ca->bic_origin_point + delta;
209 ca->cnt = cwnd / (bic_target - cwnd);
211 ca->cnt = 100 * cwnd; /* very small increment*/
214 if (ca->delay_min > 0) {
216 min_cnt = (cwnd * HZ * 8)/(10 * max_increment * ca->delay_min);
219 if (ca->cnt < min_cnt && t >= ca->bic_K)
220 ca->cnt = min_cnt;
224 if (ca->loss_cwnd == 0) /* could be aggressive in slow start */
225 ca->cnt = 50;
231 while (ca->ack_cnt > delta) { /* update tcp cwnd */
232 ca->ack_cnt -= delta;
233 ca->tcp_cwnd++;
236 if (ca->tcp_cwnd > cwnd){ /* if bic is slower than tcp */
237 delta = ca->tcp_cwnd - cwnd;
239 if (ca->cnt > max_cnt)
240 ca->cnt = max_cnt;
244 ca->cnt = (ca->cnt << ACK_RATIO_SHIFT) / ca->delayed_ack;
245 if (ca->cnt == 0) /* cannot be zero */
246 ca->cnt = 1;
254 struct bictcp *ca = inet_csk_ca(sk);
260 (s32)(tcp_time_stamp - ca->epoch_start) < HZ)
268 if (ca->delay_min == 0 || ca->delay_min > delay)
269 ca->delay_min = delay;
276 struct bictcp *ca = inet_csk_ca(sk);
287 bictcp_update(ca, tp->snd_cwnd);
292 if (tp->snd_cwnd_cnt >= ca->cnt) {
305 struct bictcp *ca = inet_csk_ca(sk);
307 ca->epoch_start = 0; /* end of epoch */
310 if (tp->snd_cwnd < ca->last_max_cwnd && fast_convergence)
311 ca->last_max_cwnd = (tp->snd_cwnd * (BICTCP_BETA_SCALE + beta))
314 ca->last_max_cwnd = tp->snd_cwnd;
316 ca->loss_cwnd = tp->snd_cwnd;
323 struct bictcp *ca = inet_csk_ca(sk);
325 return max(tcp_sk(sk)->snd_cwnd, ca->last_max_cwnd);
342 struct bictcp *ca = inet_csk_ca(sk);
343 cnt -= ca->delayed_ack >> ACK_RATIO_SHIFT;
344 ca->delayed_ack += cnt;