Lines Matching refs:vars

26 	struct pie_vars vars;
34 struct pie_vars *vars, u32 backlog, u32 packet_size)
37 u64 local_prob = vars->prob;
41 if (vars->burst_time > 0)
47 if ((vars->qdelay < params->target / 2) &&
48 (vars->prob < MAX_PROB / 5))
63 local_prob = vars->prob;
66 vars->accu_prob = 0;
68 vars->accu_prob += local_prob;
70 if (vars->accu_prob < (MAX_PROB / 100) * 85)
72 if (vars->accu_prob >= (MAX_PROB / 2) * 17)
77 vars->accu_prob = 0;
96 if (!pie_drop_early(sch, &q->params, &q->vars, sch->qstats.backlog,
99 } else if (q->params.ecn && (q->vars.prob <= MAX_PROB / 10) &&
123 q->vars.accu_prob = 0;
209 struct pie_vars *vars, u32 backlog)
218 vars->qdelay = now - pie_get_enqueue_time(skb);
220 if (vars->dq_tstamp != DTIME_INVALID)
221 dtime = now - vars->dq_tstamp;
223 vars->dq_tstamp = now;
226 vars->qdelay = 0;
238 if (backlog >= QUEUE_THRESHOLD && vars->dq_count == DQCOUNT_INVALID) {
239 vars->dq_tstamp = psched_get_time();
240 vars->dq_count = 0;
252 if (vars->dq_count != DQCOUNT_INVALID) {
253 vars->dq_count += skb->len;
255 if (vars->dq_count >= QUEUE_THRESHOLD) {
256 u32 count = vars->dq_count << PIE_SCALE;
258 dtime = now - vars->dq_tstamp;
265 if (vars->avg_dq_rate == 0)
266 vars->avg_dq_rate = count;
268 vars->avg_dq_rate =
269 (vars->avg_dq_rate -
270 (vars->avg_dq_rate >> 3)) + (count >> 3);
278 vars->dq_count = DQCOUNT_INVALID;
280 vars->dq_count = 0;
281 vars->dq_tstamp = psched_get_time();
291 if (vars->burst_time > 0) {
292 if (vars->burst_time > dtime)
293 vars->burst_time -= dtime;
295 vars->burst_time = 0;
300 void pie_calculate_probability(struct pie_params *params, struct pie_vars *vars,
312 qdelay_old = vars->qdelay;
313 vars->qdelay_old = vars->qdelay;
315 if (vars->avg_dq_rate > 0)
316 qdelay = (backlog << PIE_SCALE) / vars->avg_dq_rate;
320 qdelay = vars->qdelay;
321 qdelay_old = vars->qdelay_old;
343 if (vars->prob < MAX_PROB / 10) {
348 while (vars->prob < div_u64(MAX_PROB, power) &&
360 oldprob = vars->prob;
364 vars->prob >= MAX_PROB / 10)
375 vars->prob += delta;
379 if (vars->prob < oldprob) {
380 vars->prob = MAX_PROB;
390 if (vars->prob > oldprob)
391 vars->prob = 0;
400 vars->prob -= vars->prob / 64;
402 vars->qdelay = qdelay;
403 vars->backlog_old = backlog;
411 if ((vars->qdelay < params->target / 2) &&
412 (vars->qdelay_old < params->target / 2) &&
413 vars->prob == 0 &&
414 (!params->dq_rate_estimator || vars->avg_dq_rate > 0)) {
415 pie_vars_init(vars);
419 vars->qdelay_old = qdelay;
430 pie_calculate_probability(&q->params, &q->vars, sch->qstats.backlog);
444 pie_vars_init(&q->vars);
496 .prob = q->vars.prob << BITS_PER_BYTE,
497 .delay = ((u32)PSCHED_TICKS2NS(q->vars.qdelay)) /
511 st.avg_dq_rate = q->vars.avg_dq_rate *
525 pie_process_dequeue(skb, &q->params, &q->vars, sch->qstats.backlog);
534 pie_vars_init(&q->vars);