Lines Matching refs:sch

81 	int (*enqueue)(struct sk_buff *skb, struct Qdisc *sch,
83 struct sk_buff *(*dequeue)(struct Qdisc *sch);
87 static int cbs_child_enqueue(struct sk_buff *skb, struct Qdisc *sch, in cbs_child_enqueue() argument
97 qdisc_qstats_backlog_inc(sch, skb); in cbs_child_enqueue()
98 sch->q.qlen++; in cbs_child_enqueue()
103 static int cbs_enqueue_offload(struct sk_buff *skb, struct Qdisc *sch, in cbs_enqueue_offload() argument
106 struct cbs_sched_data *q = qdisc_priv(sch); in cbs_enqueue_offload()
109 return cbs_child_enqueue(skb, sch, qdisc, to_free); in cbs_enqueue_offload()
112 static int cbs_enqueue_soft(struct sk_buff *skb, struct Qdisc *sch, in cbs_enqueue_soft() argument
115 struct cbs_sched_data *q = qdisc_priv(sch); in cbs_enqueue_soft()
118 if (sch->q.qlen == 0 && q->credits > 0) { in cbs_enqueue_soft()
126 return cbs_child_enqueue(skb, sch, qdisc, to_free); in cbs_enqueue_soft()
129 static int cbs_enqueue(struct sk_buff *skb, struct Qdisc *sch, in cbs_enqueue() argument
132 struct cbs_sched_data *q = qdisc_priv(sch); in cbs_enqueue()
134 return q->enqueue(skb, sch, to_free); in cbs_enqueue()
159 static struct sk_buff *cbs_child_dequeue(struct Qdisc *sch, struct Qdisc *child) in cbs_child_dequeue() argument
167 qdisc_qstats_backlog_dec(sch, skb); in cbs_child_dequeue()
168 qdisc_bstats_update(sch, skb); in cbs_child_dequeue()
169 sch->q.qlen--; in cbs_child_dequeue()
174 static struct sk_buff *cbs_dequeue_soft(struct Qdisc *sch) in cbs_dequeue_soft() argument
176 struct cbs_sched_data *q = qdisc_priv(sch); in cbs_dequeue_soft()
200 skb = cbs_child_dequeue(sch, qdisc); in cbs_dequeue_soft()
218 static struct sk_buff *cbs_dequeue_offload(struct Qdisc *sch) in cbs_dequeue_offload() argument
220 struct cbs_sched_data *q = qdisc_priv(sch); in cbs_dequeue_offload()
223 return cbs_child_dequeue(sch, qdisc); in cbs_dequeue_offload()
226 static struct sk_buff *cbs_dequeue(struct Qdisc *sch) in cbs_dequeue() argument
228 struct cbs_sched_data *q = qdisc_priv(sch); in cbs_dequeue()
230 return q->dequeue(sch); in cbs_dequeue()
296 static int cbs_change(struct Qdisc *sch, struct nlattr *opt, in cbs_change() argument
299 struct cbs_sched_data *q = qdisc_priv(sch); in cbs_change()
300 struct net_device *dev = qdisc_dev(sch); in cbs_change()
344 static int cbs_init(struct Qdisc *sch, struct nlattr *opt, in cbs_init() argument
347 struct cbs_sched_data *q = qdisc_priv(sch); in cbs_init()
348 struct net_device *dev = qdisc_dev(sch); in cbs_init()
355 q->qdisc = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, in cbs_init()
356 sch->handle, extack); in cbs_init()
362 q->queue = sch->dev_queue - netdev_get_tx_queue(dev, 0); in cbs_init()
367 qdisc_watchdog_init(&q->watchdog, sch); in cbs_init()
369 return cbs_change(sch, opt, extack); in cbs_init()
372 static void cbs_destroy(struct Qdisc *sch) in cbs_destroy() argument
374 struct cbs_sched_data *q = qdisc_priv(sch); in cbs_destroy()
375 struct net_device *dev = qdisc_dev(sch); in cbs_destroy()
385 static int cbs_dump(struct Qdisc *sch, struct sk_buff *skb) in cbs_dump() argument
387 struct cbs_sched_data *q = qdisc_priv(sch); in cbs_dump()
411 static int cbs_dump_class(struct Qdisc *sch, unsigned long cl, in cbs_dump_class() argument
414 struct cbs_sched_data *q = qdisc_priv(sch); in cbs_dump_class()
425 static int cbs_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new, in cbs_graft() argument
428 struct cbs_sched_data *q = qdisc_priv(sch); in cbs_graft()
431 new = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, in cbs_graft()
432 sch->handle, NULL); in cbs_graft()
437 *old = qdisc_replace(sch, new, &q->qdisc); in cbs_graft()
441 static struct Qdisc *cbs_leaf(struct Qdisc *sch, unsigned long arg) in cbs_leaf() argument
443 struct cbs_sched_data *q = qdisc_priv(sch); in cbs_leaf()
448 static unsigned long cbs_find(struct Qdisc *sch, u32 classid) in cbs_find() argument
453 static void cbs_walk(struct Qdisc *sch, struct qdisc_walker *walker) in cbs_walk() argument
457 if (walker->fn(sch, 1, walker) < 0) { in cbs_walk()