• Home
  • Raw
  • Download

Lines Matching refs:sch

247 static enum wdrr_bucket_idx hhf_classify(struct sk_buff *skb, struct Qdisc *sch)  in hhf_classify()  argument
249 struct hhf_sched_data *q = qdisc_priv(sch); in hhf_classify()
349 static unsigned int hhf_drop(struct Qdisc *sch, struct sk_buff **to_free) in hhf_drop() argument
351 struct hhf_sched_data *q = qdisc_priv(sch); in hhf_drop()
362 sch->q.qlen--; in hhf_drop()
363 qdisc_qstats_backlog_dec(sch, skb); in hhf_drop()
364 qdisc_drop(skb, sch, to_free); in hhf_drop()
371 static int hhf_enqueue(struct sk_buff *skb, struct Qdisc *sch, in hhf_enqueue() argument
374 struct hhf_sched_data *q = qdisc_priv(sch); in hhf_enqueue()
379 idx = hhf_classify(skb, sch); in hhf_enqueue()
383 qdisc_qstats_backlog_inc(sch, skb); in hhf_enqueue()
402 if (++sch->q.qlen <= sch->limit) in hhf_enqueue()
405 prev_backlog = sch->qstats.backlog; in hhf_enqueue()
410 if (hhf_drop(sch, to_free) == idx) in hhf_enqueue()
414 qdisc_tree_reduce_backlog(sch, 1, prev_backlog - sch->qstats.backlog); in hhf_enqueue()
418 static struct sk_buff *hhf_dequeue(struct Qdisc *sch) in hhf_dequeue() argument
420 struct hhf_sched_data *q = qdisc_priv(sch); in hhf_dequeue()
445 sch->q.qlen--; in hhf_dequeue()
446 qdisc_qstats_backlog_dec(sch, skb); in hhf_dequeue()
457 qdisc_bstats_update(sch, skb); in hhf_dequeue()
463 static void hhf_reset(struct Qdisc *sch) in hhf_reset() argument
467 while ((skb = hhf_dequeue(sch)) != NULL) in hhf_reset()
471 static void hhf_destroy(struct Qdisc *sch) in hhf_destroy() argument
474 struct hhf_sched_data *q = qdisc_priv(sch); in hhf_destroy()
508 static int hhf_change(struct Qdisc *sch, struct nlattr *opt, in hhf_change() argument
511 struct hhf_sched_data *q = qdisc_priv(sch); in hhf_change()
534 sch_tree_lock(sch); in hhf_change()
537 sch->limit = nla_get_u32(tb[TCA_HHF_BACKLOG_LIMIT]); in hhf_change()
560 qlen = sch->q.qlen; in hhf_change()
561 prev_backlog = sch->qstats.backlog; in hhf_change()
562 while (sch->q.qlen > sch->limit) { in hhf_change()
563 struct sk_buff *skb = hhf_dequeue(sch); in hhf_change()
567 qdisc_tree_reduce_backlog(sch, qlen - sch->q.qlen, in hhf_change()
568 prev_backlog - sch->qstats.backlog); in hhf_change()
570 sch_tree_unlock(sch); in hhf_change()
574 static int hhf_init(struct Qdisc *sch, struct nlattr *opt, in hhf_init() argument
577 struct hhf_sched_data *q = qdisc_priv(sch); in hhf_init()
580 sch->limit = 1000; in hhf_init()
581 q->quantum = psched_mtu(qdisc_dev(sch)); in hhf_init()
593 int err = hhf_change(sch, opt, extack); in hhf_init()
651 static int hhf_dump(struct Qdisc *sch, struct sk_buff *skb) in hhf_dump() argument
653 struct hhf_sched_data *q = qdisc_priv(sch); in hhf_dump()
660 if (nla_put_u32(skb, TCA_HHF_BACKLOG_LIMIT, sch->limit) || in hhf_dump()
677 static int hhf_dump_stats(struct Qdisc *sch, struct gnet_dump *d) in hhf_dump_stats() argument
679 struct hhf_sched_data *q = qdisc_priv(sch); in hhf_dump_stats()