Lines Matching refs:sch
279 static int sfb_enqueue(struct sk_buff *skb, struct Qdisc *sch, in sfb_enqueue() argument
283 struct sfb_sched_data *q = qdisc_priv(sch); in sfb_enqueue()
295 if (unlikely(sch->q.qlen >= q->limit)) { in sfb_enqueue()
296 qdisc_qstats_overlimit(sch); in sfb_enqueue()
349 qdisc_qstats_overlimit(sch); in sfb_enqueue()
375 qdisc_qstats_overlimit(sch); in sfb_enqueue()
407 sch->qstats.backlog += len; in sfb_enqueue()
408 sch->q.qlen++; in sfb_enqueue()
412 qdisc_qstats_drop(sch); in sfb_enqueue()
417 qdisc_drop(skb, sch, to_free); in sfb_enqueue()
421 qdisc_qstats_drop(sch); in sfb_enqueue()
426 static struct sk_buff *sfb_dequeue(struct Qdisc *sch) in sfb_dequeue() argument
428 struct sfb_sched_data *q = qdisc_priv(sch); in sfb_dequeue()
435 qdisc_bstats_update(sch, skb); in sfb_dequeue()
436 qdisc_qstats_backlog_dec(sch, skb); in sfb_dequeue()
437 sch->q.qlen--; in sfb_dequeue()
444 static struct sk_buff *sfb_peek(struct Qdisc *sch) in sfb_peek() argument
446 struct sfb_sched_data *q = qdisc_priv(sch); in sfb_peek()
454 static void sfb_reset(struct Qdisc *sch) in sfb_reset() argument
456 struct sfb_sched_data *q = qdisc_priv(sch); in sfb_reset()
466 static void sfb_destroy(struct Qdisc *sch) in sfb_destroy() argument
468 struct sfb_sched_data *q = qdisc_priv(sch); in sfb_destroy()
490 static int sfb_change(struct Qdisc *sch, struct nlattr *opt, in sfb_change() argument
493 struct sfb_sched_data *q = qdisc_priv(sch); in sfb_change()
514 limit = qdisc_dev(sch)->tx_queue_len; in sfb_change()
516 child = fifo_create_dflt(sch, &pfifo_qdisc_ops, limit, extack); in sfb_change()
522 sch_tree_lock(sch); in sfb_change()
547 sch_tree_unlock(sch); in sfb_change()
553 static int sfb_init(struct Qdisc *sch, struct nlattr *opt, in sfb_init() argument
556 struct sfb_sched_data *q = qdisc_priv(sch); in sfb_init()
559 err = tcf_block_get(&q->block, &q->filter_list, sch, extack); in sfb_init()
564 return sfb_change(sch, opt, extack); in sfb_init()
567 static int sfb_dump(struct Qdisc *sch, struct sk_buff *skb) in sfb_dump() argument
569 struct sfb_sched_data *q = qdisc_priv(sch); in sfb_dump()
583 sch->qstats.backlog = q->qdisc->qstats.backlog; in sfb_dump()
596 static int sfb_dump_stats(struct Qdisc *sch, struct gnet_dump *d) in sfb_dump_stats() argument
598 struct sfb_sched_data *q = qdisc_priv(sch); in sfb_dump_stats()
613 static int sfb_dump_class(struct Qdisc *sch, unsigned long cl, in sfb_dump_class() argument
619 static int sfb_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new, in sfb_graft() argument
622 struct sfb_sched_data *q = qdisc_priv(sch); in sfb_graft()
627 *old = qdisc_replace(sch, new, &q->qdisc); in sfb_graft()
631 static struct Qdisc *sfb_leaf(struct Qdisc *sch, unsigned long arg) in sfb_leaf() argument
633 struct sfb_sched_data *q = qdisc_priv(sch); in sfb_leaf()
638 static unsigned long sfb_find(struct Qdisc *sch, u32 classid) in sfb_find() argument
643 static void sfb_unbind(struct Qdisc *sch, unsigned long arg) in sfb_unbind() argument
647 static int sfb_change_class(struct Qdisc *sch, u32 classid, u32 parentid, in sfb_change_class() argument
654 static int sfb_delete(struct Qdisc *sch, unsigned long cl, in sfb_delete() argument
660 static void sfb_walk(struct Qdisc *sch, struct qdisc_walker *walker) in sfb_walk() argument
664 if (walker->fn(sch, 1, walker) < 0) { in sfb_walk()
672 static struct tcf_block *sfb_tcf_block(struct Qdisc *sch, unsigned long cl, in sfb_tcf_block() argument
675 struct sfb_sched_data *q = qdisc_priv(sch); in sfb_tcf_block()
682 static unsigned long sfb_bind(struct Qdisc *sch, unsigned long parent, in sfb_bind() argument