Lines Matching defs:sch

39 static struct drr_class *drr_find_class(struct Qdisc *sch, u32 classid)
41 struct drr_sched *q = qdisc_priv(sch);
54 static int drr_change_class(struct Qdisc *sch, u32 classid, u32 parentid,
58 struct drr_sched *q = qdisc_priv(sch);
82 quantum = psched_mtu(qdisc_dev(sch));
89 qdisc_root_sleeping_running(sch),
97 sch_tree_lock(sch);
100 sch_tree_unlock(sch);
111 cl->qdisc = qdisc_create_dflt(sch->dev_queue,
122 qdisc_root_sleeping_running(sch),
132 sch_tree_lock(sch);
134 sch_tree_unlock(sch);
136 qdisc_class_hash_grow(sch, &q->clhash);
142 static void drr_destroy_class(struct Qdisc *sch, struct drr_class *cl)
149 static int drr_delete_class(struct Qdisc *sch, unsigned long arg)
151 struct drr_sched *q = qdisc_priv(sch);
157 sch_tree_lock(sch);
162 sch_tree_unlock(sch);
164 drr_destroy_class(sch, cl);
168 static unsigned long drr_search_class(struct Qdisc *sch, u32 classid)
170 return (unsigned long)drr_find_class(sch, classid);
173 static struct tcf_block *drr_tcf_block(struct Qdisc *sch, unsigned long cl,
176 struct drr_sched *q = qdisc_priv(sch);
186 static unsigned long drr_bind_tcf(struct Qdisc *sch, unsigned long parent,
189 struct drr_class *cl = drr_find_class(sch, classid);
197 static void drr_unbind_tcf(struct Qdisc *sch, unsigned long arg)
204 static int drr_graft_class(struct Qdisc *sch, unsigned long arg,
211 new = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops,
217 *old = qdisc_replace(sch, new, &cl->qdisc);
221 static struct Qdisc *drr_class_leaf(struct Qdisc *sch, unsigned long arg)
235 static int drr_dump_class(struct Qdisc *sch, unsigned long arg,
257 static int drr_dump_class_stats(struct Qdisc *sch, unsigned long arg,
269 if (gnet_stats_copy_basic(qdisc_root_sleeping_running(sch),
278 static void drr_walk(struct Qdisc *sch, struct qdisc_walker *arg)
280 struct drr_sched *q = qdisc_priv(sch);
293 if (arg->fn(sch, (unsigned long)cl, arg) < 0) {
302 static struct drr_class *drr_classify(struct sk_buff *skb, struct Qdisc *sch,
305 struct drr_sched *q = qdisc_priv(sch);
311 if (TC_H_MAJ(skb->priority ^ sch->handle) == 0) {
312 cl = drr_find_class(sch, skb->priority);
334 cl = drr_find_class(sch, res.classid);
340 static int drr_enqueue(struct sk_buff *skb, struct Qdisc *sch,
344 struct drr_sched *q = qdisc_priv(sch);
349 cl = drr_classify(skb, sch, &err);
352 qdisc_qstats_drop(sch);
362 qdisc_qstats_drop(sch);
372 sch->qstats.backlog += len;
373 sch->q.qlen++;
377 static struct sk_buff *drr_dequeue(struct Qdisc *sch)
379 struct drr_sched *q = qdisc_priv(sch);
404 qdisc_bstats_update(sch, skb);
405 qdisc_qstats_backlog_dec(sch, skb);
406 sch->q.qlen--;
417 static int drr_init_qdisc(struct Qdisc *sch, struct nlattr *opt,
420 struct drr_sched *q = qdisc_priv(sch);
423 err = tcf_block_get(&q->block, &q->filter_list, sch, extack);
433 static void drr_reset_qdisc(struct Qdisc *sch)
435 struct drr_sched *q = qdisc_priv(sch);
448 static void drr_destroy_qdisc(struct Qdisc *sch)
450 struct drr_sched *q = qdisc_priv(sch);
460 drr_destroy_class(sch, cl);