Lines Matching refs:sch
158 static int tbf_segment(struct sk_buff *skb, struct Qdisc *sch) in tbf_segment() argument
160 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_segment()
169 return qdisc_reshape_fail(skb, sch); in tbf_segment()
180 qdisc_qstats_drop(sch); in tbf_segment()
186 sch->q.qlen += nb; in tbf_segment()
188 qdisc_tree_reduce_backlog(sch, 1 - nb, prev_len - len); in tbf_segment()
193 static int tbf_enqueue(struct sk_buff *skb, struct Qdisc *sch) in tbf_enqueue() argument
195 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_enqueue()
200 return tbf_segment(skb, sch); in tbf_enqueue()
201 return qdisc_reshape_fail(skb, sch); in tbf_enqueue()
206 qdisc_qstats_drop(sch); in tbf_enqueue()
210 sch->q.qlen++; in tbf_enqueue()
214 static unsigned int tbf_drop(struct Qdisc *sch) in tbf_drop() argument
216 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_drop()
220 sch->q.qlen--; in tbf_drop()
221 qdisc_qstats_drop(sch); in tbf_drop()
231 static struct sk_buff *tbf_dequeue(struct Qdisc *sch) in tbf_dequeue() argument
233 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_dequeue()
266 sch->q.qlen--; in tbf_dequeue()
267 qdisc_unthrottled(sch); in tbf_dequeue()
268 qdisc_bstats_update(sch, skb); in tbf_dequeue()
287 qdisc_qstats_overlimit(sch); in tbf_dequeue()
292 static void tbf_reset(struct Qdisc *sch) in tbf_reset() argument
294 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_reset()
297 sch->q.qlen = 0; in tbf_reset()
314 static int tbf_change(struct Qdisc *sch, struct nlattr *opt) in tbf_change() argument
317 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_change()
380 if (max_size < psched_mtu(qdisc_dev(sch))) in tbf_change()
382 max_size, qdisc_dev(sch)->name, in tbf_change()
383 psched_mtu(qdisc_dev(sch))); in tbf_change()
395 child = fifo_create_dflt(sch, &bfifo_qdisc_ops, qopt->limit); in tbf_change()
402 sch_tree_lock(sch); in tbf_change()
425 sch_tree_unlock(sch); in tbf_change()
431 static int tbf_init(struct Qdisc *sch, struct nlattr *opt) in tbf_init() argument
433 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_init()
439 qdisc_watchdog_init(&q->watchdog, sch); in tbf_init()
442 return tbf_change(sch, opt); in tbf_init()
445 static void tbf_destroy(struct Qdisc *sch) in tbf_destroy() argument
447 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_destroy()
453 static int tbf_dump(struct Qdisc *sch, struct sk_buff *skb) in tbf_dump() argument
455 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_dump()
459 sch->qstats.backlog = q->qdisc->qstats.backlog; in tbf_dump()
489 static int tbf_dump_class(struct Qdisc *sch, unsigned long cl, in tbf_dump_class() argument
492 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_dump_class()
500 static int tbf_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new, in tbf_graft() argument
503 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_graft()
508 *old = qdisc_replace(sch, new, &q->qdisc); in tbf_graft()
512 static struct Qdisc *tbf_leaf(struct Qdisc *sch, unsigned long arg) in tbf_leaf() argument
514 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_leaf()
518 static unsigned long tbf_get(struct Qdisc *sch, u32 classid) in tbf_get() argument
523 static void tbf_put(struct Qdisc *sch, unsigned long arg) in tbf_put() argument
527 static void tbf_walk(struct Qdisc *sch, struct qdisc_walker *walker) in tbf_walk() argument
531 if (walker->fn(sch, 1, walker) < 0) { in tbf_walk()