Lines Matching refs:sch

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