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()
227 sch_tree_unlock(sch); in multiq_tune()
232 child = qdisc_create_dflt(sch->dev_queue, in multiq_tune()
234 TC_H_MAKE(sch->handle, in multiq_tune()
237 sch_tree_lock(sch); in multiq_tune()
247 sch_tree_unlock(sch); in multiq_tune()
254 static int multiq_init(struct Qdisc *sch, struct nlattr *opt) in multiq_init() argument
256 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_init()
264 q->max_bands = qdisc_dev(sch)->num_tx_queues; in multiq_init()
272 err = multiq_tune(sch, opt); in multiq_init()
280 static int multiq_dump(struct Qdisc *sch, struct sk_buff *skb) in multiq_dump() argument
282 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_dump()
299 static int multiq_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new, in multiq_graft() argument
302 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_graft()
308 *old = qdisc_replace(sch, new, &q->queues[band]); in multiq_graft()
313 multiq_leaf(struct Qdisc *sch, unsigned long arg) in multiq_leaf() argument
315 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_leaf()
321 static unsigned long multiq_get(struct Qdisc *sch, u32 classid) in multiq_get() argument
323 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_get()
331 static unsigned long multiq_bind(struct Qdisc *sch, unsigned long parent, in multiq_bind() argument
334 return multiq_get(sch, classid); in multiq_bind()
342 static int multiq_dump_class(struct Qdisc *sch, unsigned long cl, in multiq_dump_class() argument
345 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_dump_class()
352 static int multiq_dump_class_stats(struct Qdisc *sch, unsigned long cl, in multiq_dump_class_stats() argument
355 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_dump_class_stats()
366 static void multiq_walk(struct Qdisc *sch, struct qdisc_walker *arg) in multiq_walk() argument
368 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_walk()
379 if (arg->fn(sch, band + 1, arg) < 0) { in multiq_walk()
387 static struct tcf_proto __rcu **multiq_find_tcf(struct Qdisc *sch, in multiq_find_tcf() argument
390 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_find_tcf()