Lines Matching refs:sch

118 static void choke_drop_by_idx(struct Qdisc *sch, unsigned int idx)  in choke_drop_by_idx()  argument
120 struct choke_sched_data *q = qdisc_priv(sch); in choke_drop_by_idx()
130 qdisc_qstats_backlog_dec(sch, skb); in choke_drop_by_idx()
131 qdisc_tree_reduce_backlog(sch, 1, qdisc_pkt_len(skb)); in choke_drop_by_idx()
132 qdisc_drop(skb, sch); in choke_drop_by_idx()
133 --sch->q.qlen; in choke_drop_by_idx()
195 struct Qdisc *sch, int *qerr) in choke_classify() argument
198 struct choke_sched_data *q = qdisc_priv(sch); in choke_classify()
264 static int choke_enqueue(struct sk_buff *skb, struct Qdisc *sch) in choke_enqueue() argument
267 struct choke_sched_data *q = qdisc_priv(sch); in choke_enqueue()
272 if (!choke_classify(skb, sch, &ret)) in choke_enqueue()
278 q->vars.qavg = red_calc_qavg(p, &q->vars, sch->q.qlen); in choke_enqueue()
291 choke_drop_by_idx(sch, idx); in choke_enqueue()
299 qdisc_qstats_overlimit(sch); in choke_enqueue()
312 qdisc_qstats_overlimit(sch); in choke_enqueue()
325 if (sch->q.qlen < q->limit) { in choke_enqueue()
328 ++sch->q.qlen; in choke_enqueue()
329 qdisc_qstats_backlog_inc(sch, skb); in choke_enqueue()
334 return qdisc_drop(skb, sch); in choke_enqueue()
337 qdisc_drop(skb, sch); in choke_enqueue()
342 qdisc_qstats_drop(sch); in choke_enqueue()
347 static struct sk_buff *choke_dequeue(struct Qdisc *sch) in choke_dequeue() argument
349 struct choke_sched_data *q = qdisc_priv(sch); in choke_dequeue()
361 --sch->q.qlen; in choke_dequeue()
362 qdisc_qstats_backlog_dec(sch, skb); in choke_dequeue()
363 qdisc_bstats_update(sch, skb); in choke_dequeue()
368 static unsigned int choke_drop(struct Qdisc *sch) in choke_drop() argument
370 struct choke_sched_data *q = qdisc_priv(sch); in choke_drop()
373 len = qdisc_queue_drop(sch); in choke_drop()
384 static void choke_reset(struct Qdisc *sch) in choke_reset() argument
386 struct choke_sched_data *q = qdisc_priv(sch); in choke_reset()
394 qdisc_qstats_backlog_dec(sch, skb); in choke_reset()
395 --sch->q.qlen; in choke_reset()
396 qdisc_drop(skb, sch); in choke_reset()
416 static int choke_change(struct Qdisc *sch, struct nlattr *opt) in choke_change() argument
418 struct choke_sched_data *q = qdisc_priv(sch); in choke_change()
455 sch_tree_lock(sch); in choke_change()
458 unsigned int oqlen = sch->q.qlen, tail = 0; in choke_change()
472 qdisc_qstats_backlog_dec(sch, skb); in choke_change()
473 --sch->q.qlen; in choke_change()
474 qdisc_drop(skb, sch); in choke_change()
476 qdisc_tree_reduce_backlog(sch, oqlen - sch->q.qlen, dropped); in choke_change()
484 sch_tree_lock(sch); in choke_change()
498 sch_tree_unlock(sch); in choke_change()
503 static int choke_init(struct Qdisc *sch, struct nlattr *opt) in choke_init() argument
505 return choke_change(sch, opt); in choke_init()
508 static int choke_dump(struct Qdisc *sch, struct sk_buff *skb) in choke_dump() argument
510 struct choke_sched_data *q = qdisc_priv(sch); in choke_dump()
536 static int choke_dump_stats(struct Qdisc *sch, struct gnet_dump *d) in choke_dump_stats() argument
538 struct choke_sched_data *q = qdisc_priv(sch); in choke_dump_stats()
550 static void choke_destroy(struct Qdisc *sch) in choke_destroy() argument
552 struct choke_sched_data *q = qdisc_priv(sch); in choke_destroy()
558 static struct sk_buff *choke_peek_head(struct Qdisc *sch) in choke_peek_head() argument
560 struct choke_sched_data *q = qdisc_priv(sch); in choke_peek_head()