Lines Matching defs:sch
114 static void choke_drop_by_idx(struct Qdisc *sch, unsigned int idx,
117 struct choke_sched_data *q = qdisc_priv(sch);
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);
130 --sch->q.qlen;
213 static int choke_enqueue(struct sk_buff *skb, struct Qdisc *sch,
216 struct choke_sched_data *q = qdisc_priv(sch);
221 q->vars.qavg = red_calc_qavg(p, &q->vars, sch->q.qlen);
234 choke_drop_by_idx(sch, idx, to_free);
242 qdisc_qstats_overlimit(sch);
255 qdisc_qstats_overlimit(sch);
268 if (sch->q.qlen < q->limit) {
271 ++sch->q.qlen;
272 qdisc_qstats_backlog_inc(sch, skb);
277 return qdisc_drop(skb, sch, to_free);
280 qdisc_drop(skb, sch, to_free);
284 static struct sk_buff *choke_dequeue(struct Qdisc *sch)
286 struct choke_sched_data *q = qdisc_priv(sch);
298 --sch->q.qlen;
299 qdisc_qstats_backlog_dec(sch, skb);
300 qdisc_bstats_update(sch, skb);
305 static void choke_reset(struct Qdisc *sch)
307 struct choke_sched_data *q = qdisc_priv(sch);
315 rtnl_qdisc_drop(skb, sch);
336 static int choke_change(struct Qdisc *sch, struct nlattr *opt,
339 struct choke_sched_data *q = qdisc_priv(sch);
378 sch_tree_lock(sch);
381 unsigned int oqlen = sch->q.qlen, tail = 0;
395 qdisc_qstats_backlog_dec(sch, skb);
396 --sch->q.qlen;
397 rtnl_qdisc_drop(skb, sch);
399 qdisc_tree_reduce_backlog(sch, oqlen - sch->q.qlen, dropped);
407 sch_tree_lock(sch);
421 sch_tree_unlock(sch);
426 static int choke_init(struct Qdisc *sch, struct nlattr *opt,
429 return choke_change(sch, opt, extack);
432 static int choke_dump(struct Qdisc *sch, struct sk_buff *skb)
434 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);
474 static void choke_destroy(struct Qdisc *sch)
476 struct choke_sched_data *q = qdisc_priv(sch);
481 static struct sk_buff *choke_peek_head(struct Qdisc *sch)
483 struct choke_sched_data *q = qdisc_priv(sch);