Lines Matching refs:sch

181 static inline struct htb_class *htb_find(u32 handle, struct Qdisc *sch)  in htb_find()  argument
183 struct htb_sched *q = qdisc_priv(sch); in htb_find()
206 static struct htb_class *htb_classify(struct sk_buff *skb, struct Qdisc *sch, in htb_classify() argument
209 struct htb_sched *q = qdisc_priv(sch); in htb_classify()
219 if (skb->priority == sch->handle) in htb_classify()
221 cl = htb_find(skb->priority, sch); in htb_classify()
244 if (res.classid == sch->handle) in htb_classify()
246 cl = htb_find(res.classid, sch); in htb_classify()
257 cl = htb_find(TC_H_MAKE(TC_H_MAJ(sch->handle), q->defcls), sch); in htb_classify()
572 static int htb_enqueue(struct sk_buff *skb, struct Qdisc *sch) in htb_enqueue() argument
575 struct htb_sched *q = qdisc_priv(sch); in htb_enqueue()
576 struct htb_class *cl = htb_classify(skb, sch, &ret); in htb_enqueue()
584 return qdisc_drop(skb, sch); in htb_enqueue()
589 qdisc_qstats_drop(sch); in htb_enqueue()
595 qdisc_qstats_drop(sch); in htb_enqueue()
603 sch->q.qlen++; in htb_enqueue()
878 static struct sk_buff *htb_dequeue(struct Qdisc *sch) in htb_dequeue() argument
881 struct htb_sched *q = qdisc_priv(sch); in htb_dequeue()
890 qdisc_bstats_update(sch, skb); in htb_dequeue()
891 qdisc_unthrottled(sch); in htb_dequeue()
892 sch->q.qlen--; in htb_dequeue()
896 if (!sch->q.qlen) in htb_dequeue()
928 qdisc_qstats_overlimit(sch); in htb_dequeue()
945 static unsigned int htb_drop(struct Qdisc *sch) in htb_drop() argument
947 struct htb_sched *q = qdisc_priv(sch); in htb_drop()
958 sch->q.qlen--; in htb_drop()
970 static void htb_reset(struct Qdisc *sch) in htb_reset() argument
972 struct htb_sched *q = qdisc_priv(sch); in htb_reset()
992 sch->q.qlen = 0; in htb_reset()
1012 struct Qdisc *sch = q->watchdog.qdisc; in htb_work_func() local
1014 __netif_schedule(qdisc_root(sch)); in htb_work_func()
1017 static int htb_init(struct Qdisc *sch, struct nlattr *opt) in htb_init() argument
1019 struct htb_sched *q = qdisc_priv(sch); in htb_init()
1045 qdisc_watchdog_init(&q->watchdog, sch); in htb_init()
1052 q->direct_qlen = qdisc_dev(sch)->tx_queue_len; in htb_init()
1063 static int htb_dump(struct Qdisc *sch, struct sk_buff *skb) in htb_dump() argument
1065 struct htb_sched *q = qdisc_priv(sch); in htb_dump()
1093 static int htb_dump_class(struct Qdisc *sch, unsigned long arg, in htb_dump_class() argument
1138 htb_dump_class_stats(struct Qdisc *sch, unsigned long arg, struct gnet_dump *d) in htb_dump_class_stats() argument
1156 static int htb_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new, in htb_graft() argument
1164 (new = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, in htb_graft()
1168 sch_tree_lock(sch); in htb_graft()
1175 sch_tree_unlock(sch); in htb_graft()
1179 static struct Qdisc *htb_leaf(struct Qdisc *sch, unsigned long arg) in htb_leaf() argument
1185 static void htb_qlen_notify(struct Qdisc *sch, unsigned long arg) in htb_qlen_notify() argument
1190 htb_deactivate(qdisc_priv(sch), cl); in htb_qlen_notify()
1193 static unsigned long htb_get(struct Qdisc *sch, u32 classid) in htb_get() argument
1195 struct htb_class *cl = htb_find(classid, sch); in htb_get()
1233 static void htb_destroy_class(struct Qdisc *sch, struct htb_class *cl) in htb_destroy_class() argument
1244 static void htb_destroy(struct Qdisc *sch) in htb_destroy() argument
1246 struct htb_sched *q = qdisc_priv(sch); in htb_destroy()
1267 htb_destroy_class(sch, cl); in htb_destroy()
1273 static int htb_delete(struct Qdisc *sch, unsigned long arg) in htb_delete() argument
1275 struct htb_sched *q = qdisc_priv(sch); in htb_delete()
1289 new_q = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, in htb_delete()
1294 sch_tree_lock(sch); in htb_delete()
1323 sch_tree_unlock(sch); in htb_delete()
1327 static void htb_put(struct Qdisc *sch, unsigned long arg) in htb_put() argument
1332 htb_destroy_class(sch, cl); in htb_put()
1335 static int htb_change_class(struct Qdisc *sch, u32 classid, in htb_change_class() argument
1340 struct htb_sched *q = qdisc_priv(sch); in htb_change_class()
1359 parent = parentid == TC_H_ROOT ? NULL : htb_find(parentid, sch); in htb_change_class()
1391 if (!classid || TC_H_MAJ(classid ^ sch->handle) || in htb_change_class()
1392 htb_find(classid, sch)) in htb_change_class()
1408 qdisc_root_sleeping_lock(sch), in htb_change_class()
1428 new_q = qdisc_create_dflt(sch->dev_queue, in htb_change_class()
1430 sch_tree_lock(sch); in htb_change_class()
1469 spinlock_t *lock = qdisc_root_sleeping_lock(sch); in htb_change_class()
1478 sch_tree_lock(sch); in htb_change_class()
1516 sch_tree_unlock(sch); in htb_change_class()
1518 qdisc_class_hash_grow(sch, &q->clhash); in htb_change_class()
1527 static struct tcf_proto __rcu **htb_find_tcf(struct Qdisc *sch, in htb_find_tcf() argument
1530 struct htb_sched *q = qdisc_priv(sch); in htb_find_tcf()
1537 static unsigned long htb_bind_filter(struct Qdisc *sch, unsigned long parent, in htb_bind_filter() argument
1540 struct htb_class *cl = htb_find(classid, sch); in htb_bind_filter()
1556 static void htb_unbind_filter(struct Qdisc *sch, unsigned long arg) in htb_unbind_filter() argument
1564 static void htb_walk(struct Qdisc *sch, struct qdisc_walker *arg) in htb_walk() argument
1566 struct htb_sched *q = qdisc_priv(sch); in htb_walk()
1579 if (arg->fn(sch, (unsigned long)cl, arg) < 0) { in htb_walk()