Lines Matching refs:sch
113 static void choke_drop_by_idx(struct Qdisc *sch, unsigned int idx,
116 struct choke_sched_data *q = qdisc_priv(sch);
126 --sch->q.qlen;
127 qdisc_qstats_backlog_dec(sch, skb);
128 qdisc_tree_reduce_backlog(sch, 1, qdisc_pkt_len(skb));
129 qdisc_drop(skb, sch, to_free);
212 static int choke_enqueue(struct sk_buff *skb, struct Qdisc *sch,
215 struct choke_sched_data *q = qdisc_priv(sch);
220 q->vars.qavg = red_calc_qavg(p, &q->vars, sch->q.qlen);
233 choke_drop_by_idx(sch, idx, to_free);
241 qdisc_qstats_overlimit(sch);
254 qdisc_qstats_overlimit(sch);
267 if (sch->q.qlen < q->limit) {
270 ++sch->q.qlen;
271 qdisc_qstats_backlog_inc(sch, skb);
276 return qdisc_drop(skb, sch, to_free);
279 qdisc_drop(skb, sch, to_free);
283 static struct sk_buff *choke_dequeue(struct Qdisc *sch)
285 struct choke_sched_data *q = qdisc_priv(sch);
297 --sch->q.qlen;
298 qdisc_qstats_backlog_dec(sch, skb);
299 qdisc_bstats_update(sch, skb);
304 static void choke_reset(struct Qdisc *sch)
306 struct choke_sched_data *q = qdisc_priv(sch);
314 rtnl_qdisc_drop(skb, sch);
335 static int choke_change(struct Qdisc *sch, struct nlattr *opt,
338 struct choke_sched_data *q = qdisc_priv(sch);
377 sch_tree_lock(sch);
380 unsigned int oqlen = sch->q.qlen, tail = 0;
394 qdisc_qstats_backlog_dec(sch, skb);
395 --sch->q.qlen;
396 rtnl_qdisc_drop(skb, sch);
398 qdisc_tree_reduce_backlog(sch, oqlen - sch->q.qlen, dropped);
406 sch_tree_lock(sch);
420 sch_tree_unlock(sch);
425 static int choke_init(struct Qdisc *sch, struct nlattr *opt,
428 return choke_change(sch, opt, extack);
431 static int choke_dump(struct Qdisc *sch, struct sk_buff *skb)
433 struct choke_sched_data *q = qdisc_priv(sch);
460 static int choke_dump_stats(struct Qdisc *sch, struct gnet_dump *d)
462 struct choke_sched_data *q = qdisc_priv(sch);
473 static void choke_destroy(struct Qdisc *sch)
475 struct choke_sched_data *q = qdisc_priv(sch);
480 static struct sk_buff *choke_peek_head(struct Qdisc *sch)
482 struct choke_sched_data *q = qdisc_priv(sch);