Lines Matching defs:sch
30 struct Qdisc *sch;
33 bool pie_drop_early(struct Qdisc *sch, struct pie_params *params,
38 u32 mtu = psched_mtu(qdisc_dev(sch));
85 static int pie_qdisc_enqueue(struct sk_buff *skb, struct Qdisc *sch,
88 struct pie_sched_data *q = qdisc_priv(sch);
91 if (unlikely(qdisc_qlen(sch) >= sch->limit)) {
96 if (!pie_drop_early(sch, &q->params, &q->vars, sch->qstats.backlog,
115 if (qdisc_qlen(sch) > q->stats.maxq)
116 q->stats.maxq = qdisc_qlen(sch);
118 return qdisc_enqueue_tail(skb, sch);
124 return qdisc_drop(skb, sch, to_free);
138 static int pie_change(struct Qdisc *sch, struct nlattr *opt,
141 struct pie_sched_data *q = qdisc_priv(sch);
151 sch_tree_lock(sch);
171 sch->limit = limit;
191 qlen = sch->q.qlen;
192 while (sch->q.qlen > sch->limit) {
193 struct sk_buff *skb = __qdisc_dequeue_head(&sch->q);
196 qdisc_qstats_backlog_dec(sch, skb);
197 rtnl_qdisc_drop(skb, sch);
199 qdisc_tree_reduce_backlog(sch, qlen - sch->q.qlen, dropped);
201 sch_tree_unlock(sch);
423 struct Qdisc *sch = q->sch;
427 root_lock = qdisc_lock(qdisc_root_sleeping(sch));
429 pie_calculate_probability(&q->params, &q->vars, sch->qstats.backlog);
438 static int pie_init(struct Qdisc *sch, struct nlattr *opt,
441 struct pie_sched_data *q = qdisc_priv(sch);
445 sch->limit = q->params.limit;
447 q->sch = sch;
451 int err = pie_change(sch, opt, extack);
461 static int pie_dump(struct Qdisc *sch, struct sk_buff *skb)
463 struct pie_sched_data *q = qdisc_priv(sch);
474 nla_put_u32(skb, TCA_PIE_LIMIT, sch->limit) ||
492 static int pie_dump_stats(struct Qdisc *sch, struct gnet_dump *d)
494 struct pie_sched_data *q = qdisc_priv(sch);
517 static struct sk_buff *pie_qdisc_dequeue(struct Qdisc *sch)
519 struct pie_sched_data *q = qdisc_priv(sch);
520 struct sk_buff *skb = qdisc_dequeue_head(sch);
525 pie_process_dequeue(skb, &q->params, &q->vars, sch->qstats.backlog);
529 static void pie_reset(struct Qdisc *sch)
531 struct pie_sched_data *q = qdisc_priv(sch);
533 qdisc_reset_queue(sch);
537 static void pie_destroy(struct Qdisc *sch)
539 struct pie_sched_data *q = qdisc_priv(sch);