Lines Matching refs:sch
217 cbq_classify(struct sk_buff *skb, struct Qdisc *sch, int *qerr) in cbq_classify() argument
219 struct cbq_sched_data *q = qdisc_priv(sch); in cbq_classify()
230 if (TC_H_MAJ(prio ^ sch->handle) == 0 && in cbq_classify()
369 cbq_enqueue(struct sk_buff *skb, struct Qdisc *sch) in cbq_enqueue() argument
371 struct cbq_sched_data *q = qdisc_priv(sch); in cbq_enqueue()
373 struct cbq_class *cl = cbq_classify(skb, sch, &ret); in cbq_enqueue()
380 qdisc_qstats_drop(sch); in cbq_enqueue()
386 cl->q->__parent = sch; in cbq_enqueue()
390 sch->q.qlen++; in cbq_enqueue()
398 qdisc_qstats_drop(sch); in cbq_enqueue()
591 struct Qdisc *sch = q->watchdog.qdisc; in cbq_undelay() local
623 qdisc_unthrottled(sch); in cbq_undelay()
624 __netif_schedule(qdisc_root(sch)); in cbq_undelay()
631 struct Qdisc *sch = child->__parent; in cbq_reshape_fail() local
632 struct cbq_sched_data *q = qdisc_priv(sch); in cbq_reshape_fail()
643 cl->q->__parent = sch; in cbq_reshape_fail()
647 sch->q.qlen++; in cbq_reshape_fail()
653 qdisc_qstats_drop(sch); in cbq_reshape_fail()
657 qdisc_qstats_drop(sch); in cbq_reshape_fail()
822 cbq_dequeue_prio(struct Qdisc *sch, int prio) in cbq_dequeue_prio() argument
824 struct cbq_sched_data *q = qdisc_priv(sch); in cbq_dequeue_prio()
925 cbq_dequeue_1(struct Qdisc *sch) in cbq_dequeue_1() argument
927 struct cbq_sched_data *q = qdisc_priv(sch); in cbq_dequeue_1()
935 skb = cbq_dequeue_prio(sch, prio); in cbq_dequeue_1()
943 cbq_dequeue(struct Qdisc *sch) in cbq_dequeue() argument
946 struct cbq_sched_data *q = qdisc_priv(sch); in cbq_dequeue()
959 skb = cbq_dequeue_1(sch); in cbq_dequeue()
961 qdisc_bstats_update(sch, skb); in cbq_dequeue()
962 sch->q.qlen--; in cbq_dequeue()
963 qdisc_unthrottled(sch); in cbq_dequeue()
997 if (sch->q.qlen) { in cbq_dequeue()
998 qdisc_qstats_overlimit(sch); in cbq_dequeue()
1169 static unsigned int cbq_drop(struct Qdisc *sch) in cbq_drop() argument
1171 struct cbq_sched_data *q = qdisc_priv(sch); in cbq_drop()
1184 sch->q.qlen--; in cbq_drop()
1195 cbq_reset(struct Qdisc *sch) in cbq_reset() argument
1197 struct cbq_sched_data *q = qdisc_priv(sch); in cbq_reset()
1225 sch->q.qlen = 0; in cbq_reset()
1343 static int cbq_init(struct Qdisc *sch, struct nlattr *opt) in cbq_init() argument
1345 struct cbq_sched_data *q = qdisc_priv(sch); in cbq_init()
1368 q->link.common.classid = sch->handle; in cbq_init()
1369 q->link.qdisc = sch; in cbq_init()
1370 q->link.q = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, in cbq_init()
1371 sch->handle); in cbq_init()
1380 q->link.allot = psched_mtu(qdisc_dev(sch)); in cbq_init()
1388 qdisc_watchdog_init(&q->watchdog, sch); in cbq_init()
1538 static int cbq_dump(struct Qdisc *sch, struct sk_buff *skb) in cbq_dump() argument
1540 struct cbq_sched_data *q = qdisc_priv(sch); in cbq_dump()
1556 cbq_dump_stats(struct Qdisc *sch, struct gnet_dump *d) in cbq_dump_stats() argument
1558 struct cbq_sched_data *q = qdisc_priv(sch); in cbq_dump_stats()
1565 cbq_dump_class(struct Qdisc *sch, unsigned long arg, in cbq_dump_class() argument
1591 cbq_dump_class_stats(struct Qdisc *sch, unsigned long arg, in cbq_dump_class_stats() argument
1594 struct cbq_sched_data *q = qdisc_priv(sch); in cbq_dump_class_stats()
1611 static int cbq_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new, in cbq_graft() argument
1617 new = qdisc_create_dflt(sch->dev_queue, in cbq_graft()
1627 sch_tree_lock(sch); in cbq_graft()
1632 sch_tree_unlock(sch); in cbq_graft()
1637 static struct Qdisc *cbq_leaf(struct Qdisc *sch, unsigned long arg) in cbq_leaf() argument
1644 static void cbq_qlen_notify(struct Qdisc *sch, unsigned long arg) in cbq_qlen_notify() argument
1652 static unsigned long cbq_get(struct Qdisc *sch, u32 classid) in cbq_get() argument
1654 struct cbq_sched_data *q = qdisc_priv(sch); in cbq_get()
1664 static void cbq_destroy_class(struct Qdisc *sch, struct cbq_class *cl) in cbq_destroy_class() argument
1666 struct cbq_sched_data *q = qdisc_priv(sch); in cbq_destroy_class()
1678 static void cbq_destroy(struct Qdisc *sch) in cbq_destroy() argument
1680 struct cbq_sched_data *q = qdisc_priv(sch); in cbq_destroy()
1700 cbq_destroy_class(sch, cl); in cbq_destroy()
1705 static void cbq_put(struct Qdisc *sch, unsigned long arg) in cbq_put() argument
1711 spinlock_t *root_lock = qdisc_root_sleeping_lock(sch); in cbq_put()
1712 struct cbq_sched_data *q = qdisc_priv(sch); in cbq_put()
1720 cbq_destroy_class(sch, cl); in cbq_put()
1725 cbq_change_class(struct Qdisc *sch, u32 classid, u32 parentid, struct nlattr **tca, in cbq_change_class() argument
1729 struct cbq_sched_data *q = qdisc_priv(sch); in cbq_change_class()
1763 qdisc_root_sleeping_lock(sch), in cbq_change_class()
1772 sch_tree_lock(sch); in cbq_change_class()
1804 sch_tree_unlock(sch); in cbq_change_class()
1822 if (TC_H_MAJ(classid ^ sch->handle) || in cbq_change_class()
1827 classid = TC_H_MAKE(sch->handle, 0x8000); in cbq_change_class()
1856 qdisc_root_sleeping_lock(sch), in cbq_change_class()
1867 cl->q = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, classid); in cbq_change_class()
1872 cl->qdisc = sch; in cbq_change_class()
1877 sch_tree_lock(sch); in cbq_change_class()
1901 sch_tree_unlock(sch); in cbq_change_class()
1903 qdisc_class_hash_grow(sch, &q->clhash); in cbq_change_class()
1913 static int cbq_delete(struct Qdisc *sch, unsigned long arg) in cbq_delete() argument
1915 struct cbq_sched_data *q = qdisc_priv(sch); in cbq_delete()
1922 sch_tree_lock(sch); in cbq_delete()
1948 sch_tree_unlock(sch); in cbq_delete()
1959 static struct tcf_proto __rcu **cbq_find_tcf(struct Qdisc *sch, in cbq_find_tcf() argument
1962 struct cbq_sched_data *q = qdisc_priv(sch); in cbq_find_tcf()
1971 static unsigned long cbq_bind_filter(struct Qdisc *sch, unsigned long parent, in cbq_bind_filter() argument
1974 struct cbq_sched_data *q = qdisc_priv(sch); in cbq_bind_filter()
1987 static void cbq_unbind_filter(struct Qdisc *sch, unsigned long arg) in cbq_unbind_filter() argument
1994 static void cbq_walk(struct Qdisc *sch, struct qdisc_walker *arg) in cbq_walk() argument
1996 struct cbq_sched_data *q = qdisc_priv(sch); in cbq_walk()
2009 if (arg->fn(sch, (unsigned long)cl, arg) < 0) { in cbq_walk()