Lines Matching refs:vars

60 static void codel_vars_init(struct codel_vars *vars)
62 memset(vars, 0, sizeof(*vars));
76 static void codel_Newton_step(struct codel_vars *vars)
78 u32 invsqrt = ((u32)vars->rec_inv_sqrt) << REC_INV_SQRT_SHIFT;
80 u64 val = (3LL << 32) - ((u64)vars->count * invsqrt2);
85 vars->rec_inv_sqrt = val >> REC_INV_SQRT_SHIFT;
102 struct codel_vars *vars,
114 vars->first_above_time = 0;
119 vars->ldelay = now - skb_time_func(skb);
124 if (codel_time_before(vars->ldelay, params->target) ||
127 vars->first_above_time = 0;
131 if (vars->first_above_time == 0) {
135 vars->first_above_time = now + params->interval;
136 } else if (codel_time_after(now, vars->first_above_time)) {
145 struct codel_vars *vars,
152 struct sk_buff *skb = dequeue_func(vars, ctx);
157 vars->dropping = false;
161 drop = codel_should_drop(skb, ctx, vars, params, stats,
163 if (vars->dropping) {
166 vars->dropping = false;
167 } else if (codel_time_after_eq(now, vars->drop_next)) {
176 while (vars->dropping &&
177 codel_time_after_eq(now, vars->drop_next)) {
178 vars->count++; /* dont care of possible wrap
181 codel_Newton_step(vars);
184 vars->drop_next =
185 codel_control_law(vars->drop_next,
187 vars->rec_inv_sqrt);
193 skb = dequeue_func(vars, ctx);
195 vars, params, stats,
200 vars->dropping = false;
203 vars->drop_next =
204 codel_control_law(vars->drop_next,
206 vars->rec_inv_sqrt);
220 skb = dequeue_func(vars, ctx);
221 drop = codel_should_drop(skb, ctx, vars, params,
225 vars->dropping = true;
230 delta = vars->count - vars->lastcount;
232 codel_time_before(now - vars->drop_next,
234 vars->count = delta;
239 codel_Newton_step(vars);
241 vars->count = 1;
242 vars->rec_inv_sqrt = ~0U >> REC_INV_SQRT_SHIFT;
244 vars->lastcount = vars->count;
245 vars->drop_next = codel_control_law(now, params->interval,
246 vars->rec_inv_sqrt);
249 if (skb && codel_time_after(vars->ldelay, params->ce_threshold) &&