Lines Matching refs:sch
831 qdisc_peek_len(struct Qdisc *sch) in qdisc_peek_len() argument
836 skb = sch->ops->peek(sch); in qdisc_peek_len()
838 qdisc_warn_nonwc("qdisc_peek_len", sch); in qdisc_peek_len()
863 hfsc_find_class(u32 classid, struct Qdisc *sch) in hfsc_find_class() argument
865 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_find_class()
920 hfsc_change_class(struct Qdisc *sch, u32 classid, u32 parentid, in hfsc_change_class() argument
924 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_change_class()
981 sch_tree_lock(sch); in hfsc_change_class()
1008 sch_tree_unlock(sch); in hfsc_change_class()
1018 parent = hfsc_find_class(parentid, sch); in hfsc_change_class()
1023 if (classid == 0 || TC_H_MAJ(classid ^ sch->handle) != 0) in hfsc_change_class()
1025 if (hfsc_find_class(classid, sch)) in hfsc_change_class()
1035 err = tcf_block_get(&cl->block, &cl->filter_list, sch, extack); in hfsc_change_class()
1061 cl->qdisc = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, in hfsc_change_class()
1071 sch_tree_lock(sch); in hfsc_change_class()
1083 sch_tree_unlock(sch); in hfsc_change_class()
1085 qdisc_class_hash_grow(sch, &q->clhash); in hfsc_change_class()
1092 hfsc_destroy_class(struct Qdisc *sch, struct hfsc_class *cl) in hfsc_destroy_class() argument
1094 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_destroy_class()
1104 hfsc_delete_class(struct Qdisc *sch, unsigned long arg, in hfsc_delete_class() argument
1107 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_delete_class()
1116 sch_tree_lock(sch); in hfsc_delete_class()
1124 sch_tree_unlock(sch); in hfsc_delete_class()
1126 hfsc_destroy_class(sch, cl); in hfsc_delete_class()
1131 hfsc_classify(struct sk_buff *skb, struct Qdisc *sch, int *qerr) in hfsc_classify() argument
1133 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_classify()
1139 if (TC_H_MAJ(skb->priority ^ sch->handle) == 0 && in hfsc_classify()
1140 (cl = hfsc_find_class(skb->priority, sch)) != NULL) in hfsc_classify()
1161 cl = hfsc_find_class(res.classid, sch); in hfsc_classify()
1177 cl = hfsc_find_class(TC_H_MAKE(TC_H_MAJ(sch->handle), in hfsc_classify()
1178 READ_ONCE(q->defcls)), sch); in hfsc_classify()
1186 hfsc_graft_class(struct Qdisc *sch, unsigned long arg, struct Qdisc *new, in hfsc_graft_class() argument
1194 new = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, in hfsc_graft_class()
1200 *old = qdisc_replace(sch, new, &cl->qdisc); in hfsc_graft_class()
1205 hfsc_class_leaf(struct Qdisc *sch, unsigned long arg) in hfsc_class_leaf() argument
1216 hfsc_qlen_notify(struct Qdisc *sch, unsigned long arg) in hfsc_qlen_notify() argument
1229 hfsc_search_class(struct Qdisc *sch, u32 classid) in hfsc_search_class() argument
1231 return (unsigned long)hfsc_find_class(classid, sch); in hfsc_search_class()
1235 hfsc_bind_tcf(struct Qdisc *sch, unsigned long parent, u32 classid) in hfsc_bind_tcf() argument
1238 struct hfsc_class *cl = hfsc_find_class(classid, sch); in hfsc_bind_tcf()
1250 hfsc_unbind_tcf(struct Qdisc *sch, unsigned long arg) in hfsc_unbind_tcf() argument
1257 static struct tcf_block *hfsc_tcf_block(struct Qdisc *sch, unsigned long arg, in hfsc_tcf_block() argument
1260 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_tcf_block()
1308 hfsc_dump_class(struct Qdisc *sch, unsigned long arg, struct sk_buff *skb, in hfsc_dump_class() argument
1333 hfsc_dump_class_stats(struct Qdisc *sch, unsigned long arg, in hfsc_dump_class_stats() argument
1357 hfsc_walk(struct Qdisc *sch, struct qdisc_walker *arg) in hfsc_walk() argument
1359 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_walk()
1369 if (!tc_qdisc_stats_dump(sch, (unsigned long)cl, arg)) in hfsc_walk()
1376 hfsc_schedule_watchdog(struct Qdisc *sch) in hfsc_schedule_watchdog() argument
1378 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_schedule_watchdog()
1394 hfsc_init_qdisc(struct Qdisc *sch, struct nlattr *opt, in hfsc_init_qdisc() argument
1397 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_init_qdisc()
1401 qdisc_watchdog_init(&q->watchdog, sch); in hfsc_init_qdisc()
1413 err = tcf_block_get(&q->root.block, &q->root.filter_list, sch, extack); in hfsc_init_qdisc()
1418 q->root.cl_common.classid = sch->handle; in hfsc_init_qdisc()
1420 q->root.qdisc = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, in hfsc_init_qdisc()
1421 sch->handle, NULL); in hfsc_init_qdisc()
1431 qdisc_class_hash_grow(sch, &q->clhash); in hfsc_init_qdisc()
1437 hfsc_change_qdisc(struct Qdisc *sch, struct nlattr *opt, in hfsc_change_qdisc() argument
1440 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_change_qdisc()
1483 hfsc_reset_qdisc(struct Qdisc *sch) in hfsc_reset_qdisc() argument
1485 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_reset_qdisc()
1498 hfsc_destroy_qdisc(struct Qdisc *sch) in hfsc_destroy_qdisc() argument
1500 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_destroy_qdisc()
1514 hfsc_destroy_class(sch, cl); in hfsc_destroy_qdisc()
1521 hfsc_dump_qdisc(struct Qdisc *sch, struct sk_buff *skb) in hfsc_dump_qdisc() argument
1523 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_dump_qdisc()
1538 hfsc_enqueue(struct sk_buff *skb, struct Qdisc *sch, struct sk_buff **to_free) in hfsc_enqueue() argument
1545 cl = hfsc_classify(skb, sch, &err); in hfsc_enqueue()
1548 qdisc_qstats_drop(sch); in hfsc_enqueue()
1558 qdisc_qstats_drop(sch); in hfsc_enqueue()
1578 sch->qstats.backlog += len; in hfsc_enqueue()
1579 sch->q.qlen++; in hfsc_enqueue()
1585 hfsc_dequeue(struct Qdisc *sch) in hfsc_dequeue() argument
1587 struct hfsc_sched *q = qdisc_priv(sch); in hfsc_dequeue()
1594 if (sch->q.qlen == 0) in hfsc_dequeue()
1614 qdisc_qstats_overlimit(sch); in hfsc_dequeue()
1615 hfsc_schedule_watchdog(sch); in hfsc_dequeue()
1645 qdisc_bstats_update(sch, skb); in hfsc_dequeue()
1646 qdisc_qstats_backlog_dec(sch, skb); in hfsc_dequeue()
1647 sch->q.qlen--; in hfsc_dequeue()