Lines Matching defs:sch

31 prio_classify(struct sk_buff *skb, struct Qdisc *sch, int *qerr)
33 struct prio_sched_data *q = qdisc_priv(sch);
40 if (TC_H_MAJ(skb->priority) != sch->handle) {
69 prio_enqueue(struct sk_buff *skb, struct Qdisc *sch, struct sk_buff **to_free)
75 qdisc = prio_classify(skb, sch, &ret);
80 qdisc_qstats_drop(sch);
88 sch->qstats.backlog += len;
89 sch->q.qlen++;
93 qdisc_qstats_drop(sch);
97 static struct sk_buff *prio_peek(struct Qdisc *sch)
99 struct prio_sched_data *q = qdisc_priv(sch);
111 static struct sk_buff *prio_dequeue(struct Qdisc *sch)
113 struct prio_sched_data *q = qdisc_priv(sch);
120 qdisc_bstats_update(sch, skb);
121 qdisc_qstats_backlog_dec(sch, skb);
122 sch->q.qlen--;
131 prio_reset(struct Qdisc *sch)
134 struct prio_sched_data *q = qdisc_priv(sch);
140 static int prio_offload(struct Qdisc *sch, struct tc_prio_qopt *qopt)
142 struct net_device *dev = qdisc_dev(sch);
144 .handle = sch->handle,
145 .parent = sch->parent,
156 opt.replace_params.qstats = &sch->qstats;
165 prio_destroy(struct Qdisc *sch)
168 struct prio_sched_data *q = qdisc_priv(sch);
171 prio_offload(sch, NULL);
176 static int prio_tune(struct Qdisc *sch, struct nlattr *opt,
179 struct prio_sched_data *q = qdisc_priv(sch);
198 queues[i] = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops,
199 TC_H_MAKE(sch->handle, i + 1),
208 prio_offload(sch, qopt);
209 sch_tree_lock(sch);
222 sch_tree_unlock(sch);
229 static int prio_init(struct Qdisc *sch, struct nlattr *opt,
232 struct prio_sched_data *q = qdisc_priv(sch);
238 err = tcf_block_get(&q->block, &q->filter_list, sch, extack);
242 return prio_tune(sch, opt, extack);
245 static int prio_dump_offload(struct Qdisc *sch)
249 .handle = sch->handle,
250 .parent = sch->parent,
253 .bstats = &sch->bstats,
254 .qstats = &sch->qstats,
259 return qdisc_offload_dump_helper(sch, TC_SETUP_QDISC_PRIO, &hw_stats);
262 static int prio_dump(struct Qdisc *sch, struct sk_buff *skb)
264 struct prio_sched_data *q = qdisc_priv(sch);
272 err = prio_dump_offload(sch);
286 static int prio_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new,
289 struct prio_sched_data *q = qdisc_priv(sch);
294 new = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops,
295 TC_H_MAKE(sch->handle, arg), extack);
302 *old = qdisc_replace(sch, new, &q->queues[band]);
304 graft_offload.handle = sch->handle;
305 graft_offload.parent = sch->parent;
310 qdisc_offload_graft_helper(qdisc_dev(sch), sch, new, *old,
317 prio_leaf(struct Qdisc *sch, unsigned long arg)
319 struct prio_sched_data *q = qdisc_priv(sch);
325 static unsigned long prio_find(struct Qdisc *sch, u32 classid)
327 struct prio_sched_data *q = qdisc_priv(sch);
335 static unsigned long prio_bind(struct Qdisc *sch, unsigned long parent, u32 classid)
337 return prio_find(sch, classid);
345 static int prio_dump_class(struct Qdisc *sch, unsigned long cl, struct sk_buff *skb,
348 struct prio_sched_data *q = qdisc_priv(sch);
355 static int prio_dump_class_stats(struct Qdisc *sch, unsigned long cl,
358 struct prio_sched_data *q = qdisc_priv(sch);
370 static void prio_walk(struct Qdisc *sch, struct qdisc_walker *arg)
372 struct prio_sched_data *q = qdisc_priv(sch);
379 if (!tc_qdisc_stats_dump(sch, prio + 1, arg))
384 static struct tcf_block *prio_tcf_block(struct Qdisc *sch, unsigned long cl,
387 struct prio_sched_data *q = qdisc_priv(sch);