Lines Matching refs:q
49 static inline int red_use_ecn(struct red_sched_data *q) in red_use_ecn() argument
51 return q->flags & TC_RED_ECN; in red_use_ecn()
54 static inline int red_use_harddrop(struct red_sched_data *q) in red_use_harddrop() argument
56 return q->flags & TC_RED_HARDDROP; in red_use_harddrop()
61 struct red_sched_data *q = qdisc_priv(sch); in red_enqueue() local
62 struct Qdisc *child = q->qdisc; in red_enqueue()
65 q->vars.qavg = red_calc_qavg(&q->parms, in red_enqueue()
66 &q->vars, in red_enqueue()
69 if (red_is_idling(&q->vars)) in red_enqueue()
70 red_end_of_idle_period(&q->vars); in red_enqueue()
72 switch (red_action(&q->parms, &q->vars, q->vars.qavg)) { in red_enqueue()
78 if (!red_use_ecn(q) || !INET_ECN_set_ce(skb)) { in red_enqueue()
79 q->stats.prob_drop++; in red_enqueue()
83 q->stats.prob_mark++; in red_enqueue()
88 if (red_use_harddrop(q) || !red_use_ecn(q) || in red_enqueue()
90 q->stats.forced_drop++; in red_enqueue()
94 q->stats.forced_mark++; in red_enqueue()
100 sch->q.qlen++; in red_enqueue()
102 q->stats.pdrop++; in red_enqueue()
115 struct red_sched_data *q = qdisc_priv(sch); in red_dequeue() local
116 struct Qdisc *child = q->qdisc; in red_dequeue()
121 sch->q.qlen--; in red_dequeue()
123 if (!red_is_idling(&q->vars)) in red_dequeue()
124 red_start_of_idle_period(&q->vars); in red_dequeue()
131 struct red_sched_data *q = qdisc_priv(sch); in red_peek() local
132 struct Qdisc *child = q->qdisc; in red_peek()
139 struct red_sched_data *q = qdisc_priv(sch); in red_drop() local
140 struct Qdisc *child = q->qdisc; in red_drop()
144 q->stats.other++; in red_drop()
146 sch->q.qlen--; in red_drop()
150 if (!red_is_idling(&q->vars)) in red_drop()
151 red_start_of_idle_period(&q->vars); in red_drop()
158 struct red_sched_data *q = qdisc_priv(sch); in red_reset() local
160 qdisc_reset(q->qdisc); in red_reset()
161 sch->q.qlen = 0; in red_reset()
162 red_restart(&q->vars); in red_reset()
167 struct red_sched_data *q = qdisc_priv(sch); in red_destroy() local
169 del_timer_sync(&q->adapt_timer); in red_destroy()
170 qdisc_destroy(q->qdisc); in red_destroy()
181 struct red_sched_data *q = qdisc_priv(sch); in red_change() local
210 q->flags = ctl->flags; in red_change()
211 q->limit = ctl->limit; in red_change()
213 qdisc_tree_reduce_backlog(q->qdisc, q->qdisc->q.qlen, in red_change()
214 q->qdisc->qstats.backlog); in red_change()
215 qdisc_destroy(q->qdisc); in red_change()
216 q->qdisc = child; in red_change()
219 red_set_parms(&q->parms, in red_change()
224 red_set_vars(&q->vars); in red_change()
226 del_timer(&q->adapt_timer); in red_change()
228 mod_timer(&q->adapt_timer, jiffies + HZ/2); in red_change()
230 if (!q->qdisc->q.qlen) in red_change()
231 red_start_of_idle_period(&q->vars); in red_change()
240 struct red_sched_data *q = qdisc_priv(sch); in red_adaptative_timer() local
244 red_adaptative_algo(&q->parms, &q->vars); in red_adaptative_timer()
245 mod_timer(&q->adapt_timer, jiffies + HZ/2); in red_adaptative_timer()
251 struct red_sched_data *q = qdisc_priv(sch); in red_init() local
253 q->qdisc = &noop_qdisc; in red_init()
254 setup_timer(&q->adapt_timer, red_adaptative_timer, (unsigned long)sch); in red_init()
260 struct red_sched_data *q = qdisc_priv(sch); in red_dump() local
263 .limit = q->limit, in red_dump()
264 .flags = q->flags, in red_dump()
265 .qth_min = q->parms.qth_min >> q->parms.Wlog, in red_dump()
266 .qth_max = q->parms.qth_max >> q->parms.Wlog, in red_dump()
267 .Wlog = q->parms.Wlog, in red_dump()
268 .Plog = q->parms.Plog, in red_dump()
269 .Scell_log = q->parms.Scell_log, in red_dump()
272 sch->qstats.backlog = q->qdisc->qstats.backlog; in red_dump()
277 nla_put_u32(skb, TCA_RED_MAX_P, q->parms.max_P)) in red_dump()
288 struct red_sched_data *q = qdisc_priv(sch); in red_dump_stats() local
290 .early = q->stats.prob_drop + q->stats.forced_drop, in red_dump_stats()
291 .pdrop = q->stats.pdrop, in red_dump_stats()
292 .other = q->stats.other, in red_dump_stats()
293 .marked = q->stats.prob_mark + q->stats.forced_mark, in red_dump_stats()
302 struct red_sched_data *q = qdisc_priv(sch); in red_dump_class() local
305 tcm->tcm_info = q->qdisc->handle; in red_dump_class()
312 struct red_sched_data *q = qdisc_priv(sch); in red_graft() local
317 *old = qdisc_replace(sch, new, &q->qdisc); in red_graft()
323 struct red_sched_data *q = qdisc_priv(sch); in red_leaf() local
324 return q->qdisc; in red_leaf()