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_drop(skb, sch); in choke_drop_by_idx()
132 qdisc_tree_decrease_qlen(sch, 1); in choke_drop_by_idx()
133 --sch->q.qlen; in choke_drop_by_idx()
201 struct Qdisc *sch, int *qerr) in choke_classify() argument
204 struct choke_sched_data *q = qdisc_priv(sch); in choke_classify()
270 static int choke_enqueue(struct sk_buff *skb, struct Qdisc *sch) in choke_enqueue() argument
273 struct choke_sched_data *q = qdisc_priv(sch); in choke_enqueue()
278 if (!choke_classify(skb, sch, &ret)) in choke_enqueue()
284 q->vars.qavg = red_calc_qavg(p, &q->vars, sch->q.qlen); in choke_enqueue()
297 choke_drop_by_idx(sch, idx); in choke_enqueue()
305 qdisc_qstats_overlimit(sch); in choke_enqueue()
318 qdisc_qstats_overlimit(sch); in choke_enqueue()
331 if (sch->q.qlen < q->limit) { in choke_enqueue()
334 ++sch->q.qlen; in choke_enqueue()
335 qdisc_qstats_backlog_inc(sch, skb); in choke_enqueue()
340 return qdisc_drop(skb, sch); in choke_enqueue()
343 qdisc_drop(skb, sch); in choke_enqueue()
348 qdisc_qstats_drop(sch); in choke_enqueue()
353 static struct sk_buff *choke_dequeue(struct Qdisc *sch) in choke_dequeue() argument
355 struct choke_sched_data *q = qdisc_priv(sch); in choke_dequeue()
367 --sch->q.qlen; in choke_dequeue()
368 qdisc_qstats_backlog_dec(sch, skb); in choke_dequeue()
369 qdisc_bstats_update(sch, skb); in choke_dequeue()
374 static unsigned int choke_drop(struct Qdisc *sch) in choke_drop() argument
376 struct choke_sched_data *q = qdisc_priv(sch); in choke_drop()
379 len = qdisc_queue_drop(sch); in choke_drop()
390 static void choke_reset(struct Qdisc *sch) in choke_reset() argument
392 struct choke_sched_data *q = qdisc_priv(sch); in choke_reset()
409 static int choke_change(struct Qdisc *sch, struct nlattr *opt) in choke_change() argument
411 struct choke_sched_data *q = qdisc_priv(sch); in choke_change()
448 sch_tree_lock(sch); in choke_change()
451 unsigned int oqlen = sch->q.qlen, tail = 0; in choke_change()
463 qdisc_qstats_backlog_dec(sch, skb); in choke_change()
464 --sch->q.qlen; in choke_change()
465 qdisc_drop(skb, sch); in choke_change()
467 qdisc_tree_decrease_qlen(sch, oqlen - sch->q.qlen); in choke_change()
475 sch_tree_lock(sch); in choke_change()
489 sch_tree_unlock(sch); in choke_change()
494 static int choke_init(struct Qdisc *sch, struct nlattr *opt) in choke_init() argument
496 return choke_change(sch, opt); in choke_init()
499 static int choke_dump(struct Qdisc *sch, struct sk_buff *skb) in choke_dump() argument
501 struct choke_sched_data *q = qdisc_priv(sch); in choke_dump()
527 static int choke_dump_stats(struct Qdisc *sch, struct gnet_dump *d) in choke_dump_stats() argument
529 struct choke_sched_data *q = qdisc_priv(sch); in choke_dump_stats()
541 static void choke_destroy(struct Qdisc *sch) in choke_destroy() argument
543 struct choke_sched_data *q = qdisc_priv(sch); in choke_destroy()
549 static struct Qdisc *choke_leaf(struct Qdisc *sch, unsigned long arg) in choke_leaf() argument
554 static unsigned long choke_get(struct Qdisc *sch, u32 classid) in choke_get() argument
563 static unsigned long choke_bind(struct Qdisc *sch, unsigned long parent, in choke_bind() argument
569 static struct tcf_proto __rcu **choke_find_tcf(struct Qdisc *sch, in choke_find_tcf() argument
572 struct choke_sched_data *q = qdisc_priv(sch); in choke_find_tcf()
579 static int choke_dump_class(struct Qdisc *sch, unsigned long cl, in choke_dump_class() argument
586 static void choke_walk(struct Qdisc *sch, struct qdisc_walker *arg) in choke_walk() argument
589 if (arg->fn(sch, 1, arg) < 0) { in choke_walk()
608 static struct sk_buff *choke_peek_head(struct Qdisc *sch) in choke_peek_head() argument
610 struct choke_sched_data *q = qdisc_priv(sch); in choke_peek_head()