Lines Matching defs:sch

41 	struct Qdisc *sch = ctx;
42 struct sk_buff *skb = __qdisc_dequeue_head(&sch->q);
45 sch->qstats.backlog -= qdisc_pkt_len(skb);
53 struct Qdisc *sch = ctx;
55 qdisc_dequeue_drop(sch, skb, QDISC_DROP_CONGESTED);
56 qdisc_qstats_drop(sch);
59 static struct sk_buff *codel_qdisc_dequeue(struct Qdisc *sch)
61 struct codel_sched_data *q = qdisc_priv(sch);
64 skb = codel_dequeue(sch, &sch->qstats.backlog, &q->params, &q->vars,
69 qdisc_tree_reduce_backlog(sch, q->stats.drop_count, q->stats.drop_len);
74 qdisc_bstats_update(sch, skb);
78 static int codel_qdisc_enqueue(struct sk_buff *skb, struct Qdisc *sch,
83 if (likely(qdisc_qlen(sch) < sch->limit)) {
85 return qdisc_enqueue_tail(skb, sch);
87 q = qdisc_priv(sch);
89 return qdisc_drop_reason(skb, sch, to_free, QDISC_DROP_OVERLIMIT);
100 static int codel_change(struct Qdisc *sch, struct nlattr *opt,
104 struct codel_sched_data *q = qdisc_priv(sch);
113 sch_tree_lock(sch);
137 WRITE_ONCE(sch->limit,
144 while (sch->q.qlen > sch->limit) {
145 struct sk_buff *skb = qdisc_dequeue_internal(sch, true);
152 rtnl_qdisc_drop(skb, sch);
154 qdisc_tree_reduce_backlog(sch, dropped_pkts, dropped_bytes);
156 sch_tree_unlock(sch);
160 static int codel_init(struct Qdisc *sch, struct nlattr *opt,
163 struct codel_sched_data *q = qdisc_priv(sch);
165 sch->limit = DEFAULT_CODEL_LIMIT;
170 q->params.mtu = psched_mtu(qdisc_dev(sch));
173 int err = codel_change(sch, opt, extack);
179 if (sch->limit >= 1)
180 sch->flags |= TCQ_F_CAN_BYPASS;
182 sch->flags &= ~TCQ_F_CAN_BYPASS;
184 sch->flags |= TCQ_F_DEQUEUE_DROPS;
189 static int codel_dump(struct Qdisc *sch, struct sk_buff *skb)
191 struct codel_sched_data *q = qdisc_priv(sch);
202 READ_ONCE(sch->limit)) ||
220 static int codel_dump_stats(struct Qdisc *sch, struct gnet_dump *d)
222 const struct codel_sched_data *q = qdisc_priv(sch);
246 static void codel_reset(struct Qdisc *sch)
248 struct codel_sched_data *q = qdisc_priv(sch);
250 qdisc_reset_queue(sch);