Lines Matching defs:sch
58 struct Qdisc *sch;
80 static unsigned int fq_pie_classify(struct sk_buff *skb, struct Qdisc *sch,
83 struct fq_pie_sched_data *q = qdisc_priv(sch);
88 if (TC_H_MAJ(skb->priority) == sch->handle &&
129 static int fq_pie_qdisc_enqueue(struct sk_buff *skb, struct Qdisc *sch,
132 struct fq_pie_sched_data *q = qdisc_priv(sch);
141 idx = fq_pie_classify(skb, sch, &ret);
144 qdisc_qstats_drop(sch);
156 if (unlikely(qdisc_qlen(sch) >= sch->limit)) {
163 if (!pie_drop_early(sch, &q->p_params, &sel_flow->vars,
183 sch->qstats.backlog += pkt_len;
184 sch->q.qlen++;
201 qdisc_qstats_drop(sch);
235 static struct sk_buff *fq_pie_qdisc_dequeue(struct Qdisc *sch)
237 struct fq_pie_sched_data *q = qdisc_priv(sch);
262 sch->qstats.backlog -= pkt_len;
263 sch->q.qlen--;
264 qdisc_bstats_update(sch, skb);
284 static int fq_pie_change(struct Qdisc *sch, struct nlattr *opt,
287 struct fq_pie_sched_data *q = qdisc_priv(sch);
297 sch_tree_lock(sch);
302 sch->limit = limit;
359 while (sch->q.qlen > sch->limit) {
360 struct sk_buff *skb = fq_pie_qdisc_dequeue(sch);
366 qdisc_tree_reduce_backlog(sch, num_dropped, len_dropped);
368 sch_tree_unlock(sch);
372 sch_tree_unlock(sch);
380 struct Qdisc *sch = q->sch;
385 root_lock = qdisc_lock(qdisc_root_sleeping(sch));
409 static int fq_pie_init(struct Qdisc *sch, struct nlattr *opt,
412 struct fq_pie_sched_data *q = qdisc_priv(sch);
417 sch->limit = 10 * 1024;
418 q->p_params.limit = sch->limit;
419 q->quantum = psched_mtu(qdisc_dev(sch));
420 q->sch = sch;
430 err = fq_pie_change(sch, opt, extack);
436 err = tcf_block_get(&q->block, &q->filter_list, sch, extack);
463 static int fq_pie_dump(struct Qdisc *sch, struct sk_buff *skb)
465 struct fq_pie_sched_data *q = qdisc_priv(sch);
473 if (nla_put_u32(skb, TCA_FQ_PIE_LIMIT, sch->limit) ||
498 static int fq_pie_dump_stats(struct Qdisc *sch, struct gnet_dump *d)
500 struct fq_pie_sched_data *q = qdisc_priv(sch);
512 sch_tree_lock(sch);
518 sch_tree_unlock(sch);
523 static void fq_pie_reset(struct Qdisc *sch)
525 struct fq_pie_sched_data *q = qdisc_priv(sch);
542 static void fq_pie_destroy(struct Qdisc *sch)
544 struct fq_pie_sched_data *q = qdisc_priv(sch);