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_decrease_qlen(q->qdisc, q->qdisc->q.qlen); in red_change()
214 qdisc_destroy(q->qdisc); in red_change()
215 q->qdisc = child; in red_change()
218 red_set_parms(&q->parms, in red_change()
223 red_set_vars(&q->vars); in red_change()
225 del_timer(&q->adapt_timer); in red_change()
227 mod_timer(&q->adapt_timer, jiffies + HZ/2); in red_change()
229 if (!q->qdisc->q.qlen) in red_change()
230 red_start_of_idle_period(&q->vars); in red_change()
239 struct red_sched_data *q = qdisc_priv(sch); in red_adaptative_timer() local
243 red_adaptative_algo(&q->parms, &q->vars); in red_adaptative_timer()
244 mod_timer(&q->adapt_timer, jiffies + HZ/2); in red_adaptative_timer()
250 struct red_sched_data *q = qdisc_priv(sch); in red_init() local
252 q->qdisc = &noop_qdisc; in red_init()
253 setup_timer(&q->adapt_timer, red_adaptative_timer, (unsigned long)sch); in red_init()
259 struct red_sched_data *q = qdisc_priv(sch); in red_dump() local
262 .limit = q->limit, in red_dump()
263 .flags = q->flags, in red_dump()
264 .qth_min = q->parms.qth_min >> q->parms.Wlog, in red_dump()
265 .qth_max = q->parms.qth_max >> q->parms.Wlog, in red_dump()
266 .Wlog = q->parms.Wlog, in red_dump()
267 .Plog = q->parms.Plog, in red_dump()
268 .Scell_log = q->parms.Scell_log, in red_dump()
271 sch->qstats.backlog = q->qdisc->qstats.backlog; in red_dump()
276 nla_put_u32(skb, TCA_RED_MAX_P, q->parms.max_P)) in red_dump()
287 struct red_sched_data *q = qdisc_priv(sch); in red_dump_stats() local
289 .early = q->stats.prob_drop + q->stats.forced_drop, in red_dump_stats()
290 .pdrop = q->stats.pdrop, in red_dump_stats()
291 .other = q->stats.other, in red_dump_stats()
292 .marked = q->stats.prob_mark + q->stats.forced_mark, in red_dump_stats()
301 struct red_sched_data *q = qdisc_priv(sch); in red_dump_class() local
304 tcm->tcm_info = q->qdisc->handle; in red_dump_class()
311 struct red_sched_data *q = qdisc_priv(sch); in red_graft() local
317 *old = q->qdisc; in red_graft()
318 q->qdisc = new; in red_graft()
319 qdisc_tree_decrease_qlen(*old, (*old)->q.qlen); in red_graft()
327 struct red_sched_data *q = qdisc_priv(sch); in red_leaf() local
328 return q->qdisc; in red_leaf()