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;
206 struct pie_vars *vars, u32 backlog)
215 vars->qdelay = now - pie_get_enqueue_time(skb);
217 if (vars->dq_tstamp != DTIME_INVALID)
218 dtime = now - vars->dq_tstamp;
220 vars->dq_tstamp = now;
223 vars->qdelay = 0;
235 if (backlog >= QUEUE_THRESHOLD && vars->dq_count == DQCOUNT_INVALID) {
236 vars->dq_tstamp = psched_get_time();
237 vars->dq_count = 0;
249 if (vars->dq_count != DQCOUNT_INVALID) {
250 vars->dq_count += skb->len;
252 if (vars->dq_count >= QUEUE_THRESHOLD) {
253 u32 count = vars->dq_count << PIE_SCALE;
255 dtime = now - vars->dq_tstamp;
262 if (vars->avg_dq_rate == 0)
263 vars->avg_dq_rate = count;
265 vars->avg_dq_rate =
266 (vars->avg_dq_rate -
267 (vars->avg_dq_rate >> 3)) + (count >> 3);
275 vars->dq_count = DQCOUNT_INVALID;
277 vars->dq_count = 0;
278 vars->dq_tstamp = psched_get_time();
288 if (vars->burst_time > 0) {
289 if (vars->burst_time > dtime)
290 vars->burst_time -= dtime;
292 vars->burst_time = 0;
297 void pie_calculate_probability(struct pie_params *params, struct pie_vars *vars,
309 qdelay_old = vars->qdelay;
310 vars->qdelay_old = vars->qdelay;
312 if (vars->avg_dq_rate > 0)
313 qdelay = (backlog << PIE_SCALE) / vars->avg_dq_rate;
317 qdelay = vars->qdelay;
318 qdelay_old = vars->qdelay_old;
340 if (vars->prob < MAX_PROB / 10) {
345 while (vars->prob < div_u64(MAX_PROB, power) &&
357 oldprob = vars->prob;
361 vars->prob >= MAX_PROB / 10)
372 vars->prob += delta;
376 if (vars->prob < oldprob) {
377 vars->prob = MAX_PROB;
387 if (vars->prob > oldprob)
388 vars->prob = 0;
397 vars->prob -= vars->prob / 64;
399 vars->qdelay = qdelay;
400 vars->backlog_old = backlog;
408 if ((vars->qdelay < params->target / 2) &&
409 (vars->qdelay_old < params->target / 2) &&
410 vars->prob == 0 &&
411 (!params->dq_rate_estimator || vars->avg_dq_rate > 0)) {
412 pie_vars_init(vars);
416 vars->qdelay_old = qdelay;
429 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);