Lines Matching refs:sch
362 static void tfifo_reset(struct Qdisc *sch) in tfifo_reset() argument
364 struct netem_sched_data *q = qdisc_priv(sch); in tfifo_reset()
377 static void tfifo_enqueue(struct sk_buff *nskb, struct Qdisc *sch) in tfifo_enqueue() argument
379 struct netem_sched_data *q = qdisc_priv(sch); in tfifo_enqueue()
395 sch->q.qlen++; in tfifo_enqueue()
404 static int netem_enqueue(struct sk_buff *skb, struct Qdisc *sch) in netem_enqueue() argument
406 struct netem_sched_data *q = qdisc_priv(sch); in netem_enqueue()
419 qdisc_qstats_drop(sch); /* mark packet */ in netem_enqueue()
424 qdisc_qstats_drop(sch); in netem_enqueue()
441 struct Qdisc *rootq = qdisc_root(sch); in netem_enqueue()
459 return qdisc_drop(skb, sch); in netem_enqueue()
465 if (unlikely(skb_queue_len(&sch->q) >= sch->limit)) in netem_enqueue()
466 return qdisc_reshape_fail(skb, sch); in netem_enqueue()
468 qdisc_qstats_backlog_inc(sch, skb); in netem_enqueue()
485 if (!skb_queue_empty(&sch->q)) in netem_enqueue()
486 last = skb_peek_tail(&sch->q); in netem_enqueue()
506 tfifo_enqueue(skb, sch); in netem_enqueue()
515 __skb_queue_head(&sch->q, skb); in netem_enqueue()
516 sch->qstats.requeues++; in netem_enqueue()
522 static unsigned int netem_drop(struct Qdisc *sch) in netem_drop() argument
524 struct netem_sched_data *q = qdisc_priv(sch); in netem_drop()
527 len = qdisc_queue_drop(sch); in netem_drop()
536 sch->q.qlen--; in netem_drop()
539 qdisc_qstats_backlog_dec(sch, skb); in netem_drop()
546 qdisc_qstats_drop(sch); in netem_drop()
551 static struct sk_buff *netem_dequeue(struct Qdisc *sch) in netem_dequeue() argument
553 struct netem_sched_data *q = qdisc_priv(sch); in netem_dequeue()
557 if (qdisc_is_throttled(sch)) in netem_dequeue()
561 skb = __skb_dequeue(&sch->q); in netem_dequeue()
563 qdisc_qstats_backlog_dec(sch, skb); in netem_dequeue()
565 qdisc_unthrottled(sch); in netem_dequeue()
566 qdisc_bstats_update(sch, skb); in netem_dequeue()
580 sch->q.qlen--; in netem_dequeue()
581 qdisc_qstats_backlog_dec(sch, skb); in netem_dequeue()
600 qdisc_qstats_drop(sch); in netem_dequeue()
601 qdisc_tree_decrease_qlen(sch, 1); in netem_dequeue()
625 static void netem_reset(struct Qdisc *sch) in netem_reset() argument
627 struct netem_sched_data *q = qdisc_priv(sch); in netem_reset()
629 qdisc_reset_queue(sch); in netem_reset()
630 tfifo_reset(sch); in netem_reset()
645 static int get_dist_table(struct Qdisc *sch, const struct nlattr *attr) in get_dist_table() argument
647 struct netem_sched_data *q = qdisc_priv(sch); in get_dist_table()
669 root_lock = qdisc_root_sleeping_lock(sch); in get_dist_table()
801 static int netem_change(struct Qdisc *sch, struct nlattr *opt) in netem_change() argument
803 struct netem_sched_data *q = qdisc_priv(sch); in netem_change()
833 ret = get_dist_table(sch, tb[TCA_NETEM_DELAY_DIST]); in netem_change()
845 sch->limit = qopt->limit; in netem_change()
883 static int netem_init(struct Qdisc *sch, struct nlattr *opt) in netem_init() argument
885 struct netem_sched_data *q = qdisc_priv(sch); in netem_init()
891 qdisc_watchdog_init(&q->watchdog, sch); in netem_init()
894 ret = netem_change(sch, opt); in netem_init()
900 static void netem_destroy(struct Qdisc *sch) in netem_destroy() argument
902 struct netem_sched_data *q = qdisc_priv(sch); in netem_destroy()
960 static int netem_dump(struct Qdisc *sch, struct sk_buff *skb) in netem_dump() argument
962 const struct netem_sched_data *q = qdisc_priv(sch); in netem_dump()
1021 static int netem_dump_class(struct Qdisc *sch, unsigned long cl, in netem_dump_class() argument
1024 struct netem_sched_data *q = qdisc_priv(sch); in netem_dump_class()
1035 static int netem_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new, in netem_graft() argument
1038 struct netem_sched_data *q = qdisc_priv(sch); in netem_graft()
1040 sch_tree_lock(sch); in netem_graft()
1047 sch_tree_unlock(sch); in netem_graft()
1052 static struct Qdisc *netem_leaf(struct Qdisc *sch, unsigned long arg) in netem_leaf() argument
1054 struct netem_sched_data *q = qdisc_priv(sch); in netem_leaf()
1058 static unsigned long netem_get(struct Qdisc *sch, u32 classid) in netem_get() argument
1063 static void netem_put(struct Qdisc *sch, unsigned long arg) in netem_put() argument
1067 static void netem_walk(struct Qdisc *sch, struct qdisc_walker *walker) in netem_walk() argument
1071 if (walker->fn(sch, 1, walker) < 0) { in netem_walk()