Lines Matching refs:sch

40 multiq_classify(struct sk_buff *skb, struct Qdisc *sch, int *qerr)  in multiq_classify()  argument
42 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_classify()
68 multiq_enqueue(struct sk_buff *skb, struct Qdisc *sch) in multiq_enqueue() argument
73 qdisc = multiq_classify(skb, sch, &ret); in multiq_enqueue()
78 qdisc_qstats_drop(sch); in multiq_enqueue()
86 sch->q.qlen++; in multiq_enqueue()
90 qdisc_qstats_drop(sch); in multiq_enqueue()
94 static struct sk_buff *multiq_dequeue(struct Qdisc *sch) in multiq_dequeue() argument
96 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_dequeue()
111 netdev_get_tx_queue(qdisc_dev(sch), q->curband))) { in multiq_dequeue()
115 qdisc_bstats_update(sch, skb); in multiq_dequeue()
116 sch->q.qlen--; in multiq_dequeue()
125 static struct sk_buff *multiq_peek(struct Qdisc *sch) in multiq_peek() argument
127 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_peek()
143 netdev_get_tx_queue(qdisc_dev(sch), curband))) { in multiq_peek()
154 static unsigned int multiq_drop(struct Qdisc *sch) in multiq_drop() argument
156 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_drop()
166 sch->q.qlen--; in multiq_drop()
176 multiq_reset(struct Qdisc *sch) in multiq_reset() argument
179 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_reset()
183 sch->q.qlen = 0; in multiq_reset()
188 multiq_destroy(struct Qdisc *sch) in multiq_destroy() argument
191 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_destroy()
200 static int multiq_tune(struct Qdisc *sch, struct nlattr *opt) in multiq_tune() argument
202 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_tune()
206 if (!netif_is_multiqueue(qdisc_dev(sch))) in multiq_tune()
213 qopt->bands = qdisc_dev(sch)->real_num_tx_queues; in multiq_tune()
215 sch_tree_lock(sch); in multiq_tune()
226 sch_tree_unlock(sch); in multiq_tune()
231 child = qdisc_create_dflt(sch->dev_queue, in multiq_tune()
233 TC_H_MAKE(sch->handle, in multiq_tune()
236 sch_tree_lock(sch); in multiq_tune()
245 sch_tree_unlock(sch); in multiq_tune()
252 static int multiq_init(struct Qdisc *sch, struct nlattr *opt) in multiq_init() argument
254 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_init()
262 q->max_bands = qdisc_dev(sch)->num_tx_queues; in multiq_init()
270 err = multiq_tune(sch, opt); in multiq_init()
278 static int multiq_dump(struct Qdisc *sch, struct sk_buff *skb) in multiq_dump() argument
280 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_dump()
297 static int multiq_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new, in multiq_graft() argument
300 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_graft()
306 sch_tree_lock(sch); in multiq_graft()
311 sch_tree_unlock(sch); in multiq_graft()
317 multiq_leaf(struct Qdisc *sch, unsigned long arg) in multiq_leaf() argument
319 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_leaf()
325 static unsigned long multiq_get(struct Qdisc *sch, u32 classid) in multiq_get() argument
327 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_get()
335 static unsigned long multiq_bind(struct Qdisc *sch, unsigned long parent, in multiq_bind() argument
338 return multiq_get(sch, classid); in multiq_bind()
346 static int multiq_dump_class(struct Qdisc *sch, unsigned long cl, in multiq_dump_class() argument
349 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_dump_class()
356 static int multiq_dump_class_stats(struct Qdisc *sch, unsigned long cl, in multiq_dump_class_stats() argument
359 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_dump_class_stats()
370 static void multiq_walk(struct Qdisc *sch, struct qdisc_walker *arg) in multiq_walk() argument
372 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_walk()
383 if (arg->fn(sch, band + 1, arg) < 0) { in multiq_walk()
391 static struct tcf_proto __rcu **multiq_find_tcf(struct Qdisc *sch, in multiq_find_tcf() argument
394 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_find_tcf()