Lines Matching refs:sch

263 static enum wdrr_bucket_idx hhf_classify(struct sk_buff *skb, struct Qdisc *sch)  in hhf_classify()  argument
265 struct hhf_sched_data *q = qdisc_priv(sch); in hhf_classify()
365 static unsigned int hhf_drop(struct Qdisc *sch) in hhf_drop() argument
367 struct hhf_sched_data *q = qdisc_priv(sch); in hhf_drop()
378 sch->q.qlen--; in hhf_drop()
379 qdisc_qstats_drop(sch); in hhf_drop()
380 qdisc_qstats_backlog_dec(sch, skb); in hhf_drop()
388 static int hhf_enqueue(struct sk_buff *skb, struct Qdisc *sch) in hhf_enqueue() argument
390 struct hhf_sched_data *q = qdisc_priv(sch); in hhf_enqueue()
394 idx = hhf_classify(skb, sch); in hhf_enqueue()
398 qdisc_qstats_backlog_inc(sch, skb); in hhf_enqueue()
417 if (++sch->q.qlen <= sch->limit) in hhf_enqueue()
424 if (hhf_drop(sch) == idx) in hhf_enqueue()
428 qdisc_tree_decrease_qlen(sch, 1); in hhf_enqueue()
432 static struct sk_buff *hhf_dequeue(struct Qdisc *sch) in hhf_dequeue() argument
434 struct hhf_sched_data *q = qdisc_priv(sch); in hhf_dequeue()
459 sch->q.qlen--; in hhf_dequeue()
460 qdisc_qstats_backlog_dec(sch, skb); in hhf_dequeue()
471 qdisc_bstats_update(sch, skb); in hhf_dequeue()
477 static void hhf_reset(struct Qdisc *sch) in hhf_reset() argument
481 while ((skb = hhf_dequeue(sch)) != NULL) in hhf_reset()
500 static void hhf_destroy(struct Qdisc *sch) in hhf_destroy() argument
503 struct hhf_sched_data *q = qdisc_priv(sch); in hhf_destroy()
534 static int hhf_change(struct Qdisc *sch, struct nlattr *opt) in hhf_change() argument
536 struct hhf_sched_data *q = qdisc_priv(sch); in hhf_change()
561 sch_tree_lock(sch); in hhf_change()
564 sch->limit = nla_get_u32(tb[TCA_HHF_BACKLOG_LIMIT]); in hhf_change()
587 qlen = sch->q.qlen; in hhf_change()
588 while (sch->q.qlen > sch->limit) { in hhf_change()
589 struct sk_buff *skb = hhf_dequeue(sch); in hhf_change()
593 qdisc_tree_decrease_qlen(sch, qlen - sch->q.qlen); in hhf_change()
595 sch_tree_unlock(sch); in hhf_change()
599 static int hhf_init(struct Qdisc *sch, struct nlattr *opt) in hhf_init() argument
601 struct hhf_sched_data *q = qdisc_priv(sch); in hhf_init()
604 sch->limit = 1000; in hhf_init()
605 q->quantum = psched_mtu(qdisc_dev(sch)); in hhf_init()
617 int err = hhf_change(sch, opt); in hhf_init()
643 hhf_destroy(sch); in hhf_init()
654 hhf_destroy(sch); in hhf_init()
670 static int hhf_dump(struct Qdisc *sch, struct sk_buff *skb) in hhf_dump() argument
672 struct hhf_sched_data *q = qdisc_priv(sch); in hhf_dump()
679 if (nla_put_u32(skb, TCA_HHF_BACKLOG_LIMIT, sch->limit) || in hhf_dump()
696 static int hhf_dump_stats(struct Qdisc *sch, struct gnet_dump *d) in hhf_dump_stats() argument
698 struct hhf_sched_data *q = qdisc_priv(sch); in hhf_dump_stats()