Lines Matching refs:vars
180 static void codel_vars_init(struct codel_vars *vars) in codel_vars_init() argument
182 memset(vars, 0, sizeof(*vars)); in codel_vars_init()
196 static void codel_Newton_step(struct codel_vars *vars) in codel_Newton_step() argument
198 u32 invsqrt = ((u32)vars->rec_inv_sqrt) << REC_INV_SQRT_SHIFT; in codel_Newton_step()
200 u64 val = (3LL << 32) - ((u64)vars->count * invsqrt2); in codel_Newton_step()
205 vars->rec_inv_sqrt = val >> REC_INV_SQRT_SHIFT; in codel_Newton_step()
222 struct codel_vars *vars, in codel_should_drop() argument
230 vars->first_above_time = 0; in codel_should_drop()
234 vars->ldelay = now - codel_get_enqueue_time(skb); in codel_should_drop()
240 if (codel_time_before(vars->ldelay, params->target) || in codel_should_drop()
243 vars->first_above_time = 0; in codel_should_drop()
247 if (vars->first_above_time == 0) { in codel_should_drop()
251 vars->first_above_time = now + params->interval; in codel_should_drop()
252 } else if (codel_time_after(now, vars->first_above_time)) { in codel_should_drop()
258 typedef struct sk_buff * (*codel_skb_dequeue_t)(struct codel_vars *vars,
263 struct codel_vars *vars,
267 struct sk_buff *skb = dequeue_func(vars, sch);
272 vars->dropping = false;
276 drop = codel_should_drop(skb, sch, vars, params, stats, now);
277 if (vars->dropping) {
280 vars->dropping = false;
281 } else if (codel_time_after_eq(now, vars->drop_next)) {
290 while (vars->dropping &&
291 codel_time_after_eq(now, vars->drop_next)) {
292 vars->count++; /* dont care of possible wrap
295 codel_Newton_step(vars);
298 vars->drop_next =
299 codel_control_law(vars->drop_next,
301 vars->rec_inv_sqrt);
306 skb = dequeue_func(vars, sch);
308 vars, params, stats, now)) {
310 vars->dropping = false;
313 vars->drop_next =
314 codel_control_law(vars->drop_next,
316 vars->rec_inv_sqrt);
329 skb = dequeue_func(vars, sch);
330 drop = codel_should_drop(skb, sch, vars, params,
333 vars->dropping = true;
338 delta = vars->count - vars->lastcount;
340 codel_time_before(now - vars->drop_next,
342 vars->count = delta;
347 codel_Newton_step(vars);
349 vars->count = 1;
350 vars->rec_inv_sqrt = ~0U >> REC_INV_SQRT_SHIFT;
352 vars->lastcount = vars->count;
353 vars->drop_next = codel_control_law(now, params->interval,
354 vars->rec_inv_sqrt);