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;
99 if (!pie_drop_early(sch, &q->params, &q->vars, sch->qstats.backlog,
102 } else if (q->params.ecn && (q->vars.prob <= MAX_PROB / 10) &&
126 q->vars.accu_prob = 0;
211 struct pie_vars *vars, u32 backlog)
220 vars->qdelay = now - pie_get_enqueue_time(skb);
222 if (vars->dq_tstamp != DTIME_INVALID)
223 dtime = now - vars->dq_tstamp;
225 vars->dq_tstamp = now;
228 vars->qdelay = 0;
240 if (backlog >= QUEUE_THRESHOLD && vars->dq_count == DQCOUNT_INVALID) {
241 vars->dq_tstamp = psched_get_time();
242 vars->dq_count = 0;
254 if (vars->dq_count != DQCOUNT_INVALID) {
255 vars->dq_count += skb->len;
257 if (vars->dq_count >= QUEUE_THRESHOLD) {
258 u32 count = vars->dq_count << PIE_SCALE;
260 dtime = now - vars->dq_tstamp;
267 if (vars->avg_dq_rate == 0)
268 vars->avg_dq_rate = count;
270 vars->avg_dq_rate =
271 (vars->avg_dq_rate -
272 (vars->avg_dq_rate >> 3)) + (count >> 3);
280 vars->dq_count = DQCOUNT_INVALID;
282 vars->dq_count = 0;
283 vars->dq_tstamp = psched_get_time();
293 if (vars->burst_time > 0) {
294 if (vars->burst_time > dtime)
295 vars->burst_time -= dtime;
297 vars->burst_time = 0;
302 void pie_calculate_probability(struct pie_params *params, struct pie_vars *vars,
314 qdelay_old = vars->qdelay;
315 vars->qdelay_old = vars->qdelay;
317 if (vars->avg_dq_rate > 0)
318 qdelay = (backlog << PIE_SCALE) / vars->avg_dq_rate;
322 qdelay = vars->qdelay;
323 qdelay_old = vars->qdelay_old;
345 if (vars->prob < MAX_PROB / 10) {
350 while (vars->prob < div_u64(MAX_PROB, power) &&
362 oldprob = vars->prob;
366 vars->prob >= MAX_PROB / 10)
377 vars->prob += delta;
381 if (vars->prob < oldprob) {
382 vars->prob = MAX_PROB;
392 if (vars->prob > oldprob)
393 vars->prob = 0;
402 vars->prob -= vars->prob / 64;
404 vars->qdelay = qdelay;
405 vars->backlog_old = backlog;
413 if ((vars->qdelay < params->target / 2) &&
414 (vars->qdelay_old < params->target / 2) &&
415 vars->prob == 0 &&
416 (!params->dq_rate_estimator || vars->avg_dq_rate > 0)) {
417 pie_vars_init(vars);
421 vars->qdelay_old = qdelay;
434 pie_calculate_probability(&q->params, &q->vars, sch->qstats.backlog);
449 pie_vars_init(&q->vars);
502 .prob = q->vars.prob << BITS_PER_BYTE,
503 .delay = ((u32)PSCHED_TICKS2NS(q->vars.qdelay)) /
517 st.avg_dq_rate = q->vars.avg_dq_rate *
531 pie_process_dequeue(skb, &q->params, &q->vars, sch->qstats.backlog);
540 pie_vars_init(&q->vars);