Lines Matching refs:sch
59 static int red_enqueue(struct sk_buff *skb, struct Qdisc *sch) in red_enqueue() argument
61 struct red_sched_data *q = qdisc_priv(sch); in red_enqueue()
77 qdisc_qstats_overlimit(sch); in red_enqueue()
87 qdisc_qstats_overlimit(sch); in red_enqueue()
100 sch->q.qlen++; in red_enqueue()
103 qdisc_qstats_drop(sch); in red_enqueue()
108 qdisc_drop(skb, sch); in red_enqueue()
112 static struct sk_buff *red_dequeue(struct Qdisc *sch) in red_dequeue() argument
115 struct red_sched_data *q = qdisc_priv(sch); in red_dequeue()
120 qdisc_bstats_update(sch, skb); in red_dequeue()
121 sch->q.qlen--; in red_dequeue()
129 static struct sk_buff *red_peek(struct Qdisc *sch) in red_peek() argument
131 struct red_sched_data *q = qdisc_priv(sch); in red_peek()
137 static unsigned int red_drop(struct Qdisc *sch) in red_drop() argument
139 struct red_sched_data *q = qdisc_priv(sch); in red_drop()
145 qdisc_qstats_drop(sch); in red_drop()
146 sch->q.qlen--; in red_drop()
156 static void red_reset(struct Qdisc *sch) in red_reset() argument
158 struct red_sched_data *q = qdisc_priv(sch); in red_reset()
161 sch->q.qlen = 0; in red_reset()
165 static void red_destroy(struct Qdisc *sch) in red_destroy() argument
167 struct red_sched_data *q = qdisc_priv(sch); in red_destroy()
179 static int red_change(struct Qdisc *sch, struct nlattr *opt) in red_change() argument
181 struct red_sched_data *q = qdisc_priv(sch); in red_change()
204 child = fifo_create_dflt(sch, &bfifo_qdisc_ops, ctl->limit); in red_change()
209 sch_tree_lock(sch); in red_change()
233 sch_tree_unlock(sch); in red_change()
239 struct Qdisc *sch = (struct Qdisc *)arg; in red_adaptative_timer() local
240 struct red_sched_data *q = qdisc_priv(sch); in red_adaptative_timer()
241 spinlock_t *root_lock = qdisc_lock(qdisc_root_sleeping(sch)); in red_adaptative_timer()
249 static int red_init(struct Qdisc *sch, struct nlattr *opt) in red_init() argument
251 struct red_sched_data *q = qdisc_priv(sch); in red_init()
254 setup_timer(&q->adapt_timer, red_adaptative_timer, (unsigned long)sch); in red_init()
255 return red_change(sch, opt); in red_init()
258 static int red_dump(struct Qdisc *sch, struct sk_buff *skb) in red_dump() argument
260 struct red_sched_data *q = qdisc_priv(sch); in red_dump()
272 sch->qstats.backlog = q->qdisc->qstats.backlog; in red_dump()
286 static int red_dump_stats(struct Qdisc *sch, struct gnet_dump *d) in red_dump_stats() argument
288 struct red_sched_data *q = qdisc_priv(sch); in red_dump_stats()
299 static int red_dump_class(struct Qdisc *sch, unsigned long cl, in red_dump_class() argument
302 struct red_sched_data *q = qdisc_priv(sch); in red_dump_class()
309 static int red_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new, in red_graft() argument
312 struct red_sched_data *q = qdisc_priv(sch); in red_graft()
317 *old = qdisc_replace(sch, new, &q->qdisc); in red_graft()
321 static struct Qdisc *red_leaf(struct Qdisc *sch, unsigned long arg) in red_leaf() argument
323 struct red_sched_data *q = qdisc_priv(sch); in red_leaf()
327 static unsigned long red_get(struct Qdisc *sch, u32 classid) in red_get() argument
332 static void red_put(struct Qdisc *sch, unsigned long arg) in red_put() argument
336 static void red_walk(struct Qdisc *sch, struct qdisc_walker *walker) in red_walk() argument
340 if (walker->fn(sch, 1, walker) < 0) { in red_walk()