Lines Matching defs:sch
74 /* internal t(ime)fifo qdisc uses t_root and sch->limit */
369 static void tfifo_reset(struct Qdisc *sch)
371 struct netem_sched_data *q = qdisc_priv(sch);
387 static void tfifo_enqueue(struct sk_buff *nskb, struct Qdisc *sch)
389 struct netem_sched_data *q = qdisc_priv(sch);
414 sch->q.qlen++;
421 static struct sk_buff *netem_segment(struct sk_buff *skb, struct Qdisc *sch,
430 qdisc_drop(skb, sch, to_free);
443 static int netem_enqueue(struct sk_buff *skb, struct Qdisc *sch,
446 struct netem_sched_data *q = qdisc_priv(sch);
466 qdisc_qstats_drop(sch); /* mark packet */
471 qdisc_qstats_drop(sch);
488 struct Qdisc *rootq = qdisc_root_bh(sch);
505 skb = netem_segment(skb, sch, to_free);
515 qdisc_qstats_drop(sch);
520 qdisc_drop(skb, sch, to_free);
529 if (unlikely(sch->q.qlen >= sch->limit)) {
532 qdisc_drop_all(skb, sch, to_free);
536 qdisc_qstats_backlog_inc(sch, skb);
553 if (sch->q.tail)
554 last = netem_skb_cb(sch->q.tail);
590 tfifo_enqueue(skb, sch);
599 __qdisc_enqueue_head(skb, &sch->q);
600 sch->qstats.requeues++;
616 rc = qdisc_enqueue(segs, sch, to_free);
619 qdisc_qstats_drop(sch);
627 qdisc_tree_reduce_backlog(sch, -(nb - 1), -(len - prev_len));
685 static struct sk_buff *netem_dequeue(struct Qdisc *sch)
687 struct netem_sched_data *q = qdisc_priv(sch);
691 skb = __qdisc_dequeue_head(&sch->q);
693 qdisc_qstats_backlog_dec(sch, skb);
695 qdisc_bstats_update(sch, skb);
710 sch->q.qlen--;
711 qdisc_qstats_backlog_dec(sch, skb);
717 skb->dev = qdisc_dev(sch);
736 qdisc_qstats_drop(sch);
737 qdisc_tree_reduce_backlog(sch, 1,
764 static void netem_reset(struct Qdisc *sch)
766 struct netem_sched_data *q = qdisc_priv(sch);
768 qdisc_reset_queue(sch);
769 tfifo_reset(sch);
956 static int netem_change(struct Qdisc *sch, struct nlattr *opt,
959 struct netem_sched_data *q = qdisc_priv(sch);
985 sch_tree_lock(sch);
1005 sch->limit = qopt->limit;
1059 sch_tree_unlock(sch);
1067 static int netem_init(struct Qdisc *sch, struct nlattr *opt,
1070 struct netem_sched_data *q = qdisc_priv(sch);
1073 qdisc_watchdog_init(&q->watchdog, sch);
1079 ret = netem_change(sch, opt, extack);
1085 static void netem_destroy(struct Qdisc *sch)
1087 struct netem_sched_data *q = qdisc_priv(sch);
1146 static int netem_dump(struct Qdisc *sch, struct sk_buff *skb)
1148 const struct netem_sched_data *q = qdisc_priv(sch);
1232 static int netem_dump_class(struct Qdisc *sch, unsigned long cl,
1235 struct netem_sched_data *q = qdisc_priv(sch);
1246 static int netem_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new,
1249 struct netem_sched_data *q = qdisc_priv(sch);
1251 *old = qdisc_replace(sch, new, &q->qdisc);
1255 static struct Qdisc *netem_leaf(struct Qdisc *sch, unsigned long arg)
1257 struct netem_sched_data *q = qdisc_priv(sch);
1261 static unsigned long netem_find(struct Qdisc *sch, u32 classid)
1266 static void netem_walk(struct Qdisc *sch, struct qdisc_walker *walker)
1269 if (!tc_qdisc_stats_dump(sch, 1, walker))