Home
last modified time | relevance | path

Searched refs:qdisc (Results 1 – 25 of 76) sorted by relevance

1234

/Linux-v4.19/net/sched/
Dsch_generic.c540 static int noop_enqueue(struct sk_buff *skb, struct Qdisc *qdisc, in noop_enqueue() argument
547 static struct sk_buff *noop_dequeue(struct Qdisc *qdisc) in noop_dequeue() argument
562 .qdisc = &noop_qdisc,
578 static int noqueue_init(struct Qdisc *qdisc, struct nlattr *opt, in noqueue_init() argument
584 qdisc->enqueue = NULL; in noqueue_init()
622 static int pfifo_fast_enqueue(struct sk_buff *skb, struct Qdisc *qdisc, in pfifo_fast_enqueue() argument
626 struct pfifo_fast_priv *priv = qdisc_priv(qdisc); in pfifo_fast_enqueue()
634 return qdisc_drop_cpu(skb, qdisc, to_free); in pfifo_fast_enqueue()
636 qdisc_qstats_cpu_qlen_inc(qdisc); in pfifo_fast_enqueue()
640 this_cpu_add(qdisc->cpu_qstats->backlog, pkt_len); in pfifo_fast_enqueue()
[all …]
Dsch_mq.c78 struct Qdisc *qdisc; in mq_init() local
95 qdisc = qdisc_create_dflt(dev_queue, get_default_qdisc_ops(dev, ntx), in mq_init()
99 if (!qdisc) in mq_init()
101 priv->qdiscs[ntx] = qdisc; in mq_init()
102 qdisc->flags |= TCQ_F_ONETXQUEUE | TCQ_F_NOPARENT; in mq_init()
115 struct Qdisc *qdisc, *old; in mq_attach() local
119 qdisc = priv->qdiscs[ntx]; in mq_attach()
120 old = dev_graft_qdisc(qdisc->dev_queue, qdisc); in mq_attach()
125 qdisc_hash_add(qdisc, false); in mq_attach()
136 struct Qdisc *qdisc; in mq_dump() local
[all …]
Dsch_mqprio.c141 struct Qdisc *qdisc; in mqprio_init() local
230 qdisc = qdisc_create_dflt(dev_queue, in mqprio_init()
234 if (!qdisc) in mqprio_init()
237 priv->qdiscs[i] = qdisc; in mqprio_init()
238 qdisc->flags |= TCQ_F_ONETXQUEUE | TCQ_F_NOPARENT; in mqprio_init()
295 struct Qdisc *qdisc, *old; in mqprio_attach() local
300 qdisc = priv->qdiscs[ntx]; in mqprio_attach()
301 old = dev_graft_qdisc(qdisc->dev_queue, qdisc); in mqprio_attach()
305 qdisc_hash_add(qdisc, false); in mqprio_attach()
391 struct Qdisc *qdisc; in mqprio_dump() local
[all …]
Dsch_cbs.c84 struct Qdisc *qdisc; member
107 struct Qdisc *qdisc = q->qdisc; in cbs_enqueue_offload() local
109 return cbs_child_enqueue(skb, sch, qdisc, to_free); in cbs_enqueue_offload()
116 struct Qdisc *qdisc = q->qdisc; in cbs_enqueue_soft() local
126 return cbs_child_enqueue(skb, sch, qdisc, to_free); in cbs_enqueue_soft()
177 struct Qdisc *qdisc = q->qdisc; in cbs_dequeue_soft() local
200 skb = cbs_child_dequeue(sch, qdisc); in cbs_dequeue_soft()
221 struct Qdisc *qdisc = q->qdisc; in cbs_dequeue_offload() local
223 return cbs_child_dequeue(sch, qdisc); in cbs_dequeue_offload()
355 q->qdisc = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, in cbs_init()
[all …]
Dsch_drr.c29 struct Qdisc *qdisc; member
55 unsigned int len = cl->qdisc->q.qlen; in drr_purge_queue()
56 unsigned int backlog = cl->qdisc->qstats.backlog; in drr_purge_queue()
58 qdisc_reset(cl->qdisc); in drr_purge_queue()
59 qdisc_tree_reduce_backlog(cl->qdisc, len, backlog); in drr_purge_queue()
122 cl->qdisc = qdisc_create_dflt(sch->dev_queue, in drr_change_class()
125 if (cl->qdisc == NULL) in drr_change_class()
126 cl->qdisc = &noop_qdisc; in drr_change_class()
128 qdisc_hash_add(cl->qdisc, true); in drr_change_class()
137 qdisc_destroy(cl->qdisc); in drr_change_class()
[all …]
Dsch_tbf.c114 struct Qdisc *qdisc; /* Inner qdisc, default - bfifo queue */ member
168 ret = qdisc_enqueue(segs, q->qdisc, to_free); in tbf_segment()
196 ret = qdisc_enqueue(skb, q->qdisc, to_free); in tbf_enqueue()
218 skb = q->qdisc->ops->peek(q->qdisc); in tbf_dequeue()
241 skb = qdisc_dequeue_peeked(q->qdisc); in tbf_dequeue()
277 qdisc_reset(q->qdisc); in tbf_reset()
375 if (q->qdisc != &noop_qdisc) { in tbf_change()
376 err = fifo_set_limit(q->qdisc, qopt->limit); in tbf_change()
393 qdisc_tree_reduce_backlog(q->qdisc, q->qdisc->q.qlen, in tbf_change()
394 q->qdisc->qstats.backlog); in tbf_change()
[all …]
Dsch_red.c48 struct Qdisc *qdisc; member
65 struct Qdisc *child = q->qdisc; in red_enqueue()
120 struct Qdisc *child = q->qdisc; in red_dequeue()
137 struct Qdisc *child = q->qdisc; in red_peek()
146 qdisc_reset(q->qdisc); in red_reset()
184 qdisc_destroy(q->qdisc); in red_destroy()
234 qdisc_tree_reduce_backlog(q->qdisc, q->qdisc->q.qlen, in red_change()
235 q->qdisc->qstats.backlog); in red_change()
236 qdisc_destroy(q->qdisc); in red_change()
237 q->qdisc = child; in red_change()
[all …]
Dsch_multiq.c74 struct Qdisc *qdisc; in multiq_enqueue() local
77 qdisc = multiq_classify(skb, sch, &ret); in multiq_enqueue()
79 if (qdisc == NULL) { in multiq_enqueue()
88 ret = qdisc_enqueue(skb, qdisc, to_free); in multiq_enqueue()
101 struct Qdisc *qdisc; in multiq_dequeue() local
116 qdisc = q->queues[q->curband]; in multiq_dequeue()
117 skb = qdisc->dequeue(qdisc); in multiq_dequeue()
133 struct Qdisc *qdisc; in multiq_peek() local
148 qdisc = q->queues[curband]; in multiq_peek()
149 skb = qdisc->ops->peek(qdisc); in multiq_peek()
Dsch_qfq.c140 struct Qdisc *qdisc; member
222 unsigned int len = cl->qdisc->q.qlen; in qfq_purge_queue()
223 unsigned int backlog = cl->qdisc->qstats.backlog; in qfq_purge_queue()
225 qdisc_reset(cl->qdisc); in qfq_purge_queue()
226 qdisc_tree_reduce_backlog(cl->qdisc, len, backlog); in qfq_purge_queue()
330 if (cl->qdisc->q.qlen > 0) { /* adding an active class */ in qfq_add_to_agg()
379 if (cl->qdisc->q.qlen > 0) /* class is active */ in qfq_deact_rm_from_agg()
483 cl->qdisc = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, in qfq_change_class()
485 if (cl->qdisc == NULL) in qfq_change_class()
486 cl->qdisc = &noop_qdisc; in qfq_change_class()
[all …]
Dsch_sfb.c57 struct Qdisc *qdisc; member
287 struct Qdisc *child = q->qdisc; in sfb_enqueue()
429 struct Qdisc *child = q->qdisc; in sfb_dequeue()
432 skb = child->dequeue(q->qdisc); in sfb_dequeue()
447 struct Qdisc *child = q->qdisc; in sfb_peek()
458 qdisc_reset(q->qdisc); in sfb_reset()
472 qdisc_destroy(q->qdisc); in sfb_destroy()
524 qdisc_tree_reduce_backlog(q->qdisc, q->qdisc->q.qlen, in sfb_change()
525 q->qdisc->qstats.backlog); in sfb_change()
526 qdisc_destroy(q->qdisc); in sfb_change()
[all …]
Dsch_hfsc.c126 struct Qdisc *qdisc; /* leaf qdisc */ member
749 if (cl->qdisc->q.qlen == 0 && cl->cl_flags & HFSC_FSC) in update_vf()
850 unsigned int len = cl->qdisc->q.qlen; in hfsc_purge_queue()
851 unsigned int backlog = cl->qdisc->qstats.backlog; in hfsc_purge_queue()
853 qdisc_reset(cl->qdisc); in hfsc_purge_queue()
854 qdisc_tree_reduce_backlog(cl->qdisc, len, backlog); in hfsc_purge_queue()
993 if (cl->qdisc->q.qlen != 0) { in hfsc_change_class()
994 int len = qdisc_peek_len(cl->qdisc); in hfsc_change_class()
1065 cl->qdisc = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, in hfsc_change_class()
1067 if (cl->qdisc == NULL) in hfsc_change_class()
[all …]
Dsch_prio.c75 struct Qdisc *qdisc; in prio_enqueue() local
78 qdisc = prio_classify(skb, sch, &ret); in prio_enqueue()
80 if (qdisc == NULL) { in prio_enqueue()
89 ret = qdisc_enqueue(skb, qdisc, to_free); in prio_enqueue()
106 struct Qdisc *qdisc = q->queues[prio]; in prio_peek() local
107 struct sk_buff *skb = qdisc->ops->peek(qdisc); in prio_peek()
120 struct Qdisc *qdisc = q->queues[prio]; in prio_dequeue() local
121 struct sk_buff *skb = qdisc_dequeue_peeked(qdisc); in prio_dequeue()
Dsch_netem.c81 struct Qdisc *qdisc; member
678 if (q->qdisc) { in netem_dequeue()
683 err = qdisc_enqueue(skb, q->qdisc, &to_free); in netem_dequeue()
696 if (q->qdisc) { in netem_dequeue()
697 skb = q->qdisc->ops->dequeue(q->qdisc); in netem_dequeue()
707 if (q->qdisc) { in netem_dequeue()
708 skb = q->qdisc->ops->dequeue(q->qdisc); in netem_dequeue()
721 if (q->qdisc) in netem_reset()
722 qdisc_reset(q->qdisc); in netem_reset()
1034 if (q->qdisc) in netem_destroy()
[all …]
/Linux-v4.19/include/net/
Dsch_generic.h110 static inline void qdisc_refcount_inc(struct Qdisc *qdisc) in qdisc_refcount_inc() argument
112 if (qdisc->flags & TCQ_F_BUILTIN) in qdisc_refcount_inc()
114 refcount_inc(&qdisc->refcnt); in qdisc_refcount_inc()
117 static inline bool qdisc_is_running(struct Qdisc *qdisc) in qdisc_is_running() argument
119 if (qdisc->flags & TCQ_F_NOLOCK) in qdisc_is_running()
120 return spin_is_locked(&qdisc->seqlock); in qdisc_is_running()
121 return (raw_read_seqcount(&qdisc->running) & 1) ? true : false; in qdisc_is_running()
124 static inline bool qdisc_run_begin(struct Qdisc *qdisc) in qdisc_run_begin() argument
126 if (qdisc->flags & TCQ_F_NOLOCK) { in qdisc_run_begin()
127 if (!spin_trylock(&qdisc->seqlock)) in qdisc_run_begin()
[all …]
Dpkt_sched.h72 struct Qdisc *qdisc; member
75 void qdisc_watchdog_init_clockid(struct qdisc_watchdog *wd, struct Qdisc *qdisc,
77 void qdisc_watchdog_init(struct qdisc_watchdog *wd, struct Qdisc *qdisc);
110 void qdisc_warn_nonwc(const char *txt, struct Qdisc *qdisc);
/Linux-v4.19/include/trace/events/
Dqdisc.h2 #define TRACE_SYSTEM qdisc
14 TP_PROTO(struct Qdisc *qdisc, const struct netdev_queue *txq,
17 TP_ARGS(qdisc, txq, packets, skb),
20 __field( struct Qdisc *, qdisc )
32 __entry->qdisc = qdisc;
37 __entry->handle = qdisc->handle;
38 __entry->parent = qdisc->parent;
/Linux-v4.19/Documentation/networking/
Dmultiqueue.txt33 default pfifo_fast qdisc. This qdisc supports one qdisc per hardware queue.
34 A new round-robin qdisc, sch_multiq also supports multiple hardware queues. The
35 qdisc is responsible for classifying the skb's and then directing the skb's to
43 On qdisc load, the number of bands is based on the number of queues on the
52 qdiscs. To add the MULTIQ qdisc to your network device, assuming the device
55 # tc qdisc add dev eth0 root handle 1: multiq
57 The qdisc will allocate the number of bands to equal the number of queues that
58 the device reports, and bring the qdisc online. Assuming eth0 has 4 Tx
/Linux-v4.19/tools/testing/selftests/net/forwarding/
Dmirror_topo_lib.sh49 tc qdisc add dev $h3 clsact
54 tc qdisc del dev $h3 clsact
71 tc qdisc add dev $swp1 clsact
76 tc qdisc del dev $swp1 clsact
Dtc_shblocks.sh34 tc qdisc add dev $swp1 ingress_block 22 egress_block 23 clsact
37 tc qdisc add dev $swp2 ingress_block 22 egress_block 23 clsact
42 tc qdisc del dev $swp2 clsact
45 tc qdisc del dev $swp1 clsact
Dmirror_gre_bridge_1q_lag.sh109 tc qdisc add dev $h3 clsact
114 tc qdisc del dev $h3 clsact
121 tc qdisc add dev $h4 clsact
126 tc qdisc del dev $h4 clsact
133 tc qdisc add dev $swp1 clsact
169 tc qdisc del dev $swp1 clsact
Dmirror_gre_lag_lacp.sh125 tc qdisc add dev $h3 clsact
126 tc qdisc add dev $h4 clsact
133 tc qdisc del dev $h4 clsact
134 tc qdisc del dev $h3 clsact
142 tc qdisc add dev $swp1 clsact
169 tc qdisc del dev $swp1 clsact
/Linux-v4.19/tools/testing/selftests/drivers/net/mlxsw/
Dtc_flower_scale.sh15 tc qdisc add dev $h1 clsact
20 tc qdisc del dev $h1 clsact
27 tc qdisc add dev $h2 clsact
32 tc qdisc del dev $h2 clsact
Dqos_dscp_bridge.sh42 tc qdisc add dev $h1 clsact
49 tc qdisc del dev $h1 clsact
56 tc qdisc add dev $h2 clsact
63 tc qdisc del dev $h2 clsact
Dqos_dscp_router.sh58 tc qdisc add dev $h1 clsact
67 tc qdisc del dev $h1 clsact
74 tc qdisc add dev $h2 clsact
83 tc qdisc del dev $h2 clsact
/Linux-v4.19/samples/bpf/
Dtest_cls_bpf.sh7 local dropped=`tc -s qdisc show dev $IFC | tail -3 | awk '/drop/{print $7}'`
17 tc qdisc add dev $IFC clsact
26 tc qdisc del dev $IFC clsact

1234