Lines Matching refs:sch

67 static struct sk_buff *dequeue(struct codel_vars *vars, struct Qdisc *sch)  in dequeue()  argument
69 struct sk_buff *skb = __skb_dequeue(&sch->q); in dequeue()
75 static struct sk_buff *codel_qdisc_dequeue(struct Qdisc *sch) in codel_qdisc_dequeue() argument
77 struct codel_sched_data *q = qdisc_priv(sch); in codel_qdisc_dequeue()
80 skb = codel_dequeue(sch, &q->params, &q->vars, &q->stats, dequeue); in codel_qdisc_dequeue()
85 if (q->stats.drop_count && sch->q.qlen) { in codel_qdisc_dequeue()
86 qdisc_tree_reduce_backlog(sch, q->stats.drop_count, q->stats.drop_len); in codel_qdisc_dequeue()
91 qdisc_bstats_update(sch, skb); in codel_qdisc_dequeue()
95 static int codel_qdisc_enqueue(struct sk_buff *skb, struct Qdisc *sch) in codel_qdisc_enqueue() argument
99 if (likely(qdisc_qlen(sch) < sch->limit)) { in codel_qdisc_enqueue()
101 return qdisc_enqueue_tail(skb, sch); in codel_qdisc_enqueue()
103 q = qdisc_priv(sch); in codel_qdisc_enqueue()
105 return qdisc_drop(skb, sch); in codel_qdisc_enqueue()
116 static int codel_change(struct Qdisc *sch, struct nlattr *opt) in codel_change() argument
118 struct codel_sched_data *q = qdisc_priv(sch); in codel_change()
130 sch_tree_lock(sch); in codel_change()
151 sch->limit = nla_get_u32(tb[TCA_CODEL_LIMIT]); in codel_change()
156 qlen = sch->q.qlen; in codel_change()
157 while (sch->q.qlen > sch->limit) { in codel_change()
158 struct sk_buff *skb = __skb_dequeue(&sch->q); in codel_change()
161 qdisc_qstats_backlog_dec(sch, skb); in codel_change()
162 qdisc_drop(skb, sch); in codel_change()
164 qdisc_tree_reduce_backlog(sch, qlen - sch->q.qlen, dropped); in codel_change()
166 sch_tree_unlock(sch); in codel_change()
170 static int codel_init(struct Qdisc *sch, struct nlattr *opt) in codel_init() argument
172 struct codel_sched_data *q = qdisc_priv(sch); in codel_init()
174 sch->limit = DEFAULT_CODEL_LIMIT; in codel_init()
176 codel_params_init(&q->params, sch); in codel_init()
181 int err = codel_change(sch, opt); in codel_init()
187 if (sch->limit >= 1) in codel_init()
188 sch->flags |= TCQ_F_CAN_BYPASS; in codel_init()
190 sch->flags &= ~TCQ_F_CAN_BYPASS; in codel_init()
195 static int codel_dump(struct Qdisc *sch, struct sk_buff *skb) in codel_dump() argument
197 struct codel_sched_data *q = qdisc_priv(sch); in codel_dump()
207 sch->limit) || in codel_dump()
224 static int codel_dump_stats(struct Qdisc *sch, struct gnet_dump *d) in codel_dump_stats() argument
226 const struct codel_sched_data *q = qdisc_priv(sch); in codel_dump_stats()
250 static void codel_reset(struct Qdisc *sch) in codel_reset() argument
252 struct codel_sched_data *q = qdisc_priv(sch); in codel_reset()
254 qdisc_reset_queue(sch); in codel_reset()