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()
168 return qdisc_reshape_fail(skb, sch); in tbf_segment()
178 qdisc_qstats_drop(sch); in tbf_segment()
184 sch->q.qlen += nb; in tbf_segment()
186 qdisc_tree_decrease_qlen(sch, 1 - nb); in tbf_segment()
191 static int tbf_enqueue(struct sk_buff *skb, struct Qdisc *sch) in tbf_enqueue() argument
193 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_enqueue()
198 return tbf_segment(skb, sch); in tbf_enqueue()
199 return qdisc_reshape_fail(skb, sch); in tbf_enqueue()
204 qdisc_qstats_drop(sch); in tbf_enqueue()
208 sch->q.qlen++; in tbf_enqueue()
212 static unsigned int tbf_drop(struct Qdisc *sch) in tbf_drop() argument
214 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_drop()
218 sch->q.qlen--; in tbf_drop()
219 qdisc_qstats_drop(sch); in tbf_drop()
229 static struct sk_buff *tbf_dequeue(struct Qdisc *sch) in tbf_dequeue() argument
231 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_dequeue()
264 sch->q.qlen--; in tbf_dequeue()
265 qdisc_unthrottled(sch); in tbf_dequeue()
266 qdisc_bstats_update(sch, skb); in tbf_dequeue()
285 qdisc_qstats_overlimit(sch); in tbf_dequeue()
290 static void tbf_reset(struct Qdisc *sch) in tbf_reset() argument
292 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_reset()
295 sch->q.qlen = 0; in tbf_reset()
312 static int tbf_change(struct Qdisc *sch, struct nlattr *opt) in tbf_change() argument
315 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_change()
378 if (max_size < psched_mtu(qdisc_dev(sch))) in tbf_change()
380 max_size, qdisc_dev(sch)->name, in tbf_change()
381 psched_mtu(qdisc_dev(sch))); in tbf_change()
393 child = fifo_create_dflt(sch, &bfifo_qdisc_ops, qopt->limit); in tbf_change()
400 sch_tree_lock(sch); in tbf_change()
422 sch_tree_unlock(sch); in tbf_change()
428 static int tbf_init(struct Qdisc *sch, struct nlattr *opt) in tbf_init() argument
430 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_init()
436 qdisc_watchdog_init(&q->watchdog, sch); in tbf_init()
439 return tbf_change(sch, opt); in tbf_init()
442 static void tbf_destroy(struct Qdisc *sch) in tbf_destroy() argument
444 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_destroy()
450 static int tbf_dump(struct Qdisc *sch, struct sk_buff *skb) in tbf_dump() argument
452 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_dump()
456 sch->qstats.backlog = q->qdisc->qstats.backlog; in tbf_dump()
486 static int tbf_dump_class(struct Qdisc *sch, unsigned long cl, in tbf_dump_class() argument
489 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_dump_class()
497 static int tbf_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new, in tbf_graft() argument
500 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_graft()
505 sch_tree_lock(sch); in tbf_graft()
510 sch_tree_unlock(sch); in tbf_graft()
515 static struct Qdisc *tbf_leaf(struct Qdisc *sch, unsigned long arg) in tbf_leaf() argument
517 struct tbf_sched_data *q = qdisc_priv(sch); in tbf_leaf()
521 static unsigned long tbf_get(struct Qdisc *sch, u32 classid) in tbf_get() argument
526 static void tbf_put(struct Qdisc *sch, unsigned long arg) in tbf_put() argument
530 static void tbf_walk(struct Qdisc *sch, struct qdisc_walker *walker) in tbf_walk() argument
534 if (walker->fn(sch, 1, walker) < 0) { in tbf_walk()