Lines Matching refs:sch
81 int (*enqueue)(struct sk_buff *skb, struct Qdisc *sch,
83 struct sk_buff *(*dequeue)(struct Qdisc *sch);
88 static int cbs_child_enqueue(struct sk_buff *skb, struct Qdisc *sch,
99 sch->qstats.backlog += len;
100 sch->q.qlen++;
105 static int cbs_enqueue_offload(struct sk_buff *skb, struct Qdisc *sch,
108 struct cbs_sched_data *q = qdisc_priv(sch);
111 return cbs_child_enqueue(skb, sch, qdisc, to_free);
114 static int cbs_enqueue_soft(struct sk_buff *skb, struct Qdisc *sch,
117 struct cbs_sched_data *q = qdisc_priv(sch);
120 if (sch->q.qlen == 0 && q->credits > 0) {
128 return cbs_child_enqueue(skb, sch, qdisc, to_free);
131 static int cbs_enqueue(struct sk_buff *skb, struct Qdisc *sch,
134 struct cbs_sched_data *q = qdisc_priv(sch);
136 return q->enqueue(skb, sch, to_free);
161 static struct sk_buff *cbs_child_dequeue(struct Qdisc *sch, struct Qdisc *child)
169 qdisc_qstats_backlog_dec(sch, skb);
170 qdisc_bstats_update(sch, skb);
171 sch->q.qlen--;
176 static struct sk_buff *cbs_dequeue_soft(struct Qdisc *sch)
178 struct cbs_sched_data *q = qdisc_priv(sch);
207 skb = cbs_child_dequeue(sch, qdisc);
231 static struct sk_buff *cbs_dequeue_offload(struct Qdisc *sch)
233 struct cbs_sched_data *q = qdisc_priv(sch);
236 return cbs_child_dequeue(sch, qdisc);
239 static struct sk_buff *cbs_dequeue(struct Qdisc *sch)
241 struct cbs_sched_data *q = qdisc_priv(sch);
243 return q->dequeue(sch);
361 static int cbs_change(struct Qdisc *sch, struct nlattr *opt,
364 struct cbs_sched_data *q = qdisc_priv(sch);
365 struct net_device *dev = qdisc_dev(sch);
401 static int cbs_init(struct Qdisc *sch, struct nlattr *opt,
404 struct cbs_sched_data *q = qdisc_priv(sch);
405 struct net_device *dev = qdisc_dev(sch);
412 q->qdisc = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops,
413 sch->handle, extack);
423 q->queue = sch->dev_queue - netdev_get_tx_queue(dev, 0);
428 qdisc_watchdog_init(&q->watchdog, sch);
430 return cbs_change(sch, opt, extack);
433 static void cbs_destroy(struct Qdisc *sch)
435 struct cbs_sched_data *q = qdisc_priv(sch);
436 struct net_device *dev = qdisc_dev(sch);
452 static int cbs_dump(struct Qdisc *sch, struct sk_buff *skb)
454 struct cbs_sched_data *q = qdisc_priv(sch);
478 static int cbs_dump_class(struct Qdisc *sch, unsigned long cl,
481 struct cbs_sched_data *q = qdisc_priv(sch);
492 static int cbs_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new,
495 struct cbs_sched_data *q = qdisc_priv(sch);
498 new = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops,
499 sch->handle, NULL);
504 *old = qdisc_replace(sch, new, &q->qdisc);
508 static struct Qdisc *cbs_leaf(struct Qdisc *sch, unsigned long arg)
510 struct cbs_sched_data *q = qdisc_priv(sch);
515 static unsigned long cbs_find(struct Qdisc *sch, u32 classid)
520 static void cbs_walk(struct Qdisc *sch, struct qdisc_walker *walker)
523 tc_qdisc_stats_dump(sch, 1, walker);