Lines Matching refs:sch

30 multiq_classify(struct sk_buff *skb, struct Qdisc *sch, int *qerr)  in multiq_classify()  argument
32 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_classify()
60 multiq_enqueue(struct sk_buff *skb, struct Qdisc *sch, in multiq_enqueue() argument
66 qdisc = multiq_classify(skb, sch, &ret); in multiq_enqueue()
71 qdisc_qstats_drop(sch); in multiq_enqueue()
79 sch->q.qlen++; in multiq_enqueue()
83 qdisc_qstats_drop(sch); in multiq_enqueue()
87 static struct sk_buff *multiq_dequeue(struct Qdisc *sch) in multiq_dequeue() argument
89 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_dequeue()
104 netdev_get_tx_queue(qdisc_dev(sch), q->curband))) { in multiq_dequeue()
108 qdisc_bstats_update(sch, skb); in multiq_dequeue()
109 sch->q.qlen--; in multiq_dequeue()
118 static struct sk_buff *multiq_peek(struct Qdisc *sch) in multiq_peek() argument
120 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_peek()
136 netdev_get_tx_queue(qdisc_dev(sch), curband))) { in multiq_peek()
148 multiq_reset(struct Qdisc *sch) in multiq_reset() argument
151 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_reset()
159 multiq_destroy(struct Qdisc *sch) in multiq_destroy() argument
162 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_destroy()
171 static int multiq_tune(struct Qdisc *sch, struct nlattr *opt, in multiq_tune() argument
174 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_tune()
179 if (!netif_is_multiqueue(qdisc_dev(sch))) in multiq_tune()
186 qopt->bands = qdisc_dev(sch)->real_num_tx_queues; in multiq_tune()
193 sch_tree_lock(sch); in multiq_tune()
205 sch_tree_unlock(sch); in multiq_tune()
214 child = qdisc_create_dflt(sch->dev_queue, in multiq_tune()
216 TC_H_MAKE(sch->handle, in multiq_tune()
219 sch_tree_lock(sch); in multiq_tune()
227 sch_tree_unlock(sch); in multiq_tune()
235 static int multiq_init(struct Qdisc *sch, struct nlattr *opt, in multiq_init() argument
238 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_init()
246 err = tcf_block_get(&q->block, &q->filter_list, sch, extack); in multiq_init()
250 q->max_bands = qdisc_dev(sch)->num_tx_queues; in multiq_init()
258 return multiq_tune(sch, opt, extack); in multiq_init()
261 static int multiq_dump(struct Qdisc *sch, struct sk_buff *skb) in multiq_dump() argument
263 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_dump()
280 static int multiq_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new, in multiq_graft() argument
283 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_graft()
289 *old = qdisc_replace(sch, new, &q->queues[band]); in multiq_graft()
294 multiq_leaf(struct Qdisc *sch, unsigned long arg) in multiq_leaf() argument
296 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_leaf()
302 static unsigned long multiq_find(struct Qdisc *sch, u32 classid) in multiq_find() argument
304 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_find()
312 static unsigned long multiq_bind(struct Qdisc *sch, unsigned long parent, in multiq_bind() argument
315 return multiq_find(sch, classid); in multiq_bind()
323 static int multiq_dump_class(struct Qdisc *sch, unsigned long cl, in multiq_dump_class() argument
326 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_dump_class()
333 static int multiq_dump_class_stats(struct Qdisc *sch, unsigned long cl, in multiq_dump_class_stats() argument
336 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_dump_class_stats()
340 if (gnet_stats_copy_basic(qdisc_root_sleeping_running(sch), in multiq_dump_class_stats()
348 static void multiq_walk(struct Qdisc *sch, struct qdisc_walker *arg) in multiq_walk() argument
350 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_walk()
361 if (arg->fn(sch, band + 1, arg) < 0) { in multiq_walk()
369 static struct tcf_block *multiq_tcf_block(struct Qdisc *sch, unsigned long cl, in multiq_tcf_block() argument
372 struct multiq_sched_data *q = qdisc_priv(sch); in multiq_tcf_block()