Lines Matching refs:sch
42 static struct drr_class *drr_find_class(struct Qdisc *sch, u32 classid) in drr_find_class() argument
44 struct drr_sched *q = qdisc_priv(sch); in drr_find_class()
66 static int drr_change_class(struct Qdisc *sch, u32 classid, u32 parentid, in drr_change_class() argument
69 struct drr_sched *q = qdisc_priv(sch); in drr_change_class()
88 quantum = psched_mtu(qdisc_dev(sch)); in drr_change_class()
94 qdisc_root_sleeping_lock(sch), in drr_change_class()
100 sch_tree_lock(sch); in drr_change_class()
103 sch_tree_unlock(sch); in drr_change_class()
115 cl->qdisc = qdisc_create_dflt(sch->dev_queue, in drr_change_class()
122 qdisc_root_sleeping_lock(sch), in drr_change_class()
131 sch_tree_lock(sch); in drr_change_class()
133 sch_tree_unlock(sch); in drr_change_class()
135 qdisc_class_hash_grow(sch, &q->clhash); in drr_change_class()
141 static void drr_destroy_class(struct Qdisc *sch, struct drr_class *cl) in drr_destroy_class() argument
148 static int drr_delete_class(struct Qdisc *sch, unsigned long arg) in drr_delete_class() argument
150 struct drr_sched *q = qdisc_priv(sch); in drr_delete_class()
156 sch_tree_lock(sch); in drr_delete_class()
167 sch_tree_unlock(sch); in drr_delete_class()
171 static unsigned long drr_get_class(struct Qdisc *sch, u32 classid) in drr_get_class() argument
173 struct drr_class *cl = drr_find_class(sch, classid); in drr_get_class()
181 static void drr_put_class(struct Qdisc *sch, unsigned long arg) in drr_put_class() argument
186 drr_destroy_class(sch, cl); in drr_put_class()
189 static struct tcf_proto __rcu **drr_tcf_chain(struct Qdisc *sch, in drr_tcf_chain() argument
192 struct drr_sched *q = qdisc_priv(sch); in drr_tcf_chain()
200 static unsigned long drr_bind_tcf(struct Qdisc *sch, unsigned long parent, in drr_bind_tcf() argument
203 struct drr_class *cl = drr_find_class(sch, classid); in drr_bind_tcf()
211 static void drr_unbind_tcf(struct Qdisc *sch, unsigned long arg) in drr_unbind_tcf() argument
218 static int drr_graft_class(struct Qdisc *sch, unsigned long arg, in drr_graft_class() argument
224 new = qdisc_create_dflt(sch->dev_queue, in drr_graft_class()
230 *old = qdisc_replace(sch, new, &cl->qdisc); in drr_graft_class()
234 static struct Qdisc *drr_class_leaf(struct Qdisc *sch, unsigned long arg) in drr_class_leaf() argument
249 static int drr_dump_class(struct Qdisc *sch, unsigned long arg, in drr_dump_class() argument
271 static int drr_dump_class_stats(struct Qdisc *sch, unsigned long arg, in drr_dump_class_stats() argument
290 static void drr_walk(struct Qdisc *sch, struct qdisc_walker *arg) in drr_walk() argument
292 struct drr_sched *q = qdisc_priv(sch); in drr_walk()
305 if (arg->fn(sch, (unsigned long)cl, arg) < 0) { in drr_walk()
314 static struct drr_class *drr_classify(struct sk_buff *skb, struct Qdisc *sch, in drr_classify() argument
317 struct drr_sched *q = qdisc_priv(sch); in drr_classify()
323 if (TC_H_MAJ(skb->priority ^ sch->handle) == 0) { in drr_classify()
324 cl = drr_find_class(sch, skb->priority); in drr_classify()
344 cl = drr_find_class(sch, res.classid); in drr_classify()
350 static int drr_enqueue(struct sk_buff *skb, struct Qdisc *sch) in drr_enqueue() argument
352 struct drr_sched *q = qdisc_priv(sch); in drr_enqueue()
356 cl = drr_classify(skb, sch, &err); in drr_enqueue()
359 qdisc_qstats_drop(sch); in drr_enqueue()
368 qdisc_qstats_drop(sch); in drr_enqueue()
378 sch->q.qlen++; in drr_enqueue()
382 static struct sk_buff *drr_dequeue(struct Qdisc *sch) in drr_dequeue() argument
384 struct drr_sched *q = qdisc_priv(sch); in drr_dequeue()
407 qdisc_bstats_update(sch, skb); in drr_dequeue()
408 sch->q.qlen--; in drr_dequeue()
419 static unsigned int drr_drop(struct Qdisc *sch) in drr_drop() argument
421 struct drr_sched *q = qdisc_priv(sch); in drr_drop()
429 sch->q.qlen--; in drr_drop()
439 static int drr_init_qdisc(struct Qdisc *sch, struct nlattr *opt) in drr_init_qdisc() argument
441 struct drr_sched *q = qdisc_priv(sch); in drr_init_qdisc()
451 static void drr_reset_qdisc(struct Qdisc *sch) in drr_reset_qdisc() argument
453 struct drr_sched *q = qdisc_priv(sch); in drr_reset_qdisc()
464 sch->q.qlen = 0; in drr_reset_qdisc()
467 static void drr_destroy_qdisc(struct Qdisc *sch) in drr_destroy_qdisc() argument
469 struct drr_sched *q = qdisc_priv(sch); in drr_destroy_qdisc()
479 drr_destroy_class(sch, cl); in drr_destroy_qdisc()