Home
last modified time | relevance | path

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

1234567

/linux/drivers/net/ethernet/netronome/nfp/abm/
H A Dqdisc.c16 static bool nfp_abm_qdisc_is_red(struct nfp_qdisc *qdisc) in nfp_abm_qdisc_is_red() argument
18 return qdisc->type == NFP_QDISC_RED || qdisc->type == NFP_QDISC_GRED; in nfp_abm_qdisc_is_red()
21 static bool nfp_abm_qdisc_child_valid(struct nfp_qdisc *qdisc, unsigned int id) in nfp_abm_qdisc_child_valid() argument
23 return qdisc->children[id] && in nfp_abm_qdisc_child_valid()
24 qdisc->children[id] != NFP_QDISC_UNTRACKED; in nfp_abm_qdisc_child_valid()
45 nfp_abm_stats_update_red(struct nfp_abm_link *alink, struct nfp_qdisc *qdisc, in nfp_abm_stats_update_red() argument
52 if (!qdisc->offloaded) in nfp_abm_stats_update_red()
55 for (i = 0; i < qdisc->red.num_bands; i++) { in nfp_abm_stats_update_red()
57 &qdisc->red.band[i].stats); in nfp_abm_stats_update_red()
63 &qdisc->red.band[i].xstats); in nfp_abm_stats_update_red()
[all …]
/linux/net/sched/
H A Dsch_generic.c638 static int noop_enqueue(struct sk_buff *skb, struct Qdisc *qdisc, in noop_enqueue() argument
646 static struct sk_buff *noop_dequeue(struct Qdisc *qdisc) in noop_dequeue() argument
661 RCU_POINTER_INITIALIZER(qdisc, &noop_qdisc),
687 static int noqueue_init(struct Qdisc *qdisc, struct nlattr *opt, in noqueue_init() argument
693 qdisc->enqueue = NULL; in noqueue_init()
732 static int pfifo_fast_enqueue(struct sk_buff *skb, struct Qdisc *qdisc, in pfifo_fast_enqueue() argument
736 struct pfifo_fast_priv *priv = qdisc_priv(qdisc); in pfifo_fast_enqueue()
746 if (qdisc_is_percpu_stats(qdisc)) in pfifo_fast_enqueue()
747 return qdisc_drop_cpu(skb, qdisc, to_free); in pfifo_fast_enqueue()
749 return qdisc_drop(skb, qdisc, to_free); in pfifo_fast_enqueue()
[all …]
H A Dsch_mq.c73 struct Qdisc *qdisc; in mq_init() local
90 qdisc = qdisc_create_dflt(dev_queue, get_default_qdisc_ops(dev, ntx), in mq_init()
94 if (!qdisc) in mq_init()
96 priv->qdiscs[ntx] = qdisc; in mq_init()
97 qdisc->flags |= TCQ_F_ONETXQUEUE | TCQ_F_NOPARENT; in mq_init()
110 struct Qdisc *qdisc, *old; in mq_attach() local
114 qdisc = priv->qdiscs[ntx]; in mq_attach()
115 old = dev_graft_qdisc(qdisc->dev_queue, qdisc); in mq_attach()
120 qdisc_hash_add(qdisc, false); in mq_attach()
131 struct Qdisc *qdisc; in mq_dump() local
[all …]
H A Dsch_drr.c25 struct Qdisc *qdisc; member
116 cl->qdisc = qdisc_create_dflt(sch->dev_queue, in drr_change_class()
119 if (cl->qdisc == NULL) in drr_change_class()
120 cl->qdisc = &noop_qdisc; in drr_change_class()
122 qdisc_hash_add(cl->qdisc, true); in drr_change_class()
129 qdisc_put(cl->qdisc); in drr_change_class()
148 qdisc_put(cl->qdisc); in drr_destroy_class()
165 qdisc_purge_queue(cl->qdisc); in drr_delete_class()
223 *old = qdisc_replace(sch, new, &cl->qdisc); in drr_graft_class()
231 return cl->qdisc; in drr_class_leaf()
[all …]
H A Dsch_mqprio.c351 struct Qdisc *qdisc; in mqprio_init() local
398 qdisc = qdisc_create_dflt(dev_queue, in mqprio_init()
402 if (!qdisc) in mqprio_init()
405 priv->qdiscs[i] = qdisc; in mqprio_init()
406 qdisc->flags |= TCQ_F_ONETXQUEUE | TCQ_F_NOPARENT; in mqprio_init()
436 struct Qdisc *qdisc, *old; in mqprio_attach() local
441 qdisc = priv->qdiscs[ntx]; in mqprio_attach()
442 old = dev_graft_qdisc(qdisc->dev_queue, qdisc); in mqprio_attach()
446 qdisc_hash_add(qdisc, false); in mqprio_attach()
559 struct Qdisc *qdisc; in mqprio_dump() local
[all …]
H A Dsch_tbf.c94 It is passed to the default bfifo qdisc - if the inner qdisc is
111 struct Qdisc *qdisc; /* Inner qdisc, default - bfifo queue */ member
225 ret = qdisc_enqueue(segs, q->qdisc, to_free); in tbf_segment()
259 ret = qdisc_enqueue(skb, q->qdisc, to_free); in tbf_enqueue()
281 skb = q->qdisc->ops->peek(q->qdisc); in tbf_dequeue()
304 skb = qdisc_dequeue_peeked(q->qdisc); in tbf_dequeue()
340 qdisc_reset(q->qdisc); in tbf_reset()
[all...]
H A Dsch_ets.c41 struct Qdisc *qdisc; member
269 *old = qdisc_replace(sch, new, &cl->qdisc); in ets_class_graft()
278 return cl->qdisc; in ets_class_leaf()
313 tcm->tcm_info = cl->qdisc->handle; in ets_class_dump()
333 struct Qdisc *cl_q = cl->qdisc; in ets_class_dump_stats()
433 err = qdisc_enqueue(skb, cl->qdisc, to_free); in ets_qdisc_enqueue()
472 skb = qdisc_dequeue_peeked(cl->qdisc); in ets_qdisc_dequeue()
481 skb = cl->qdisc->ops->peek(cl->qdisc); in ets_qdisc_dequeue()
483 qdisc_warn_nonwc(__func__, cl->qdisc); in ets_qdisc_dequeue()
[all...]
H A Dsch_multiq.c63 struct Qdisc *qdisc; in multiq_enqueue() local
66 qdisc = multiq_classify(skb, sch, &ret); in multiq_enqueue()
68 if (qdisc == NULL) { in multiq_enqueue()
77 ret = qdisc_enqueue(skb, qdisc, to_free); in multiq_enqueue()
90 struct Qdisc *qdisc; in multiq_dequeue() local
105 qdisc = q->queues[q->curband]; in multiq_dequeue()
106 skb = qdisc->dequeue(qdisc); in multiq_dequeue()
122 struct Qdisc *qdisc; in multiq_peek() local
137 qdisc in multiq_peek()
[all...]
/linux/include/net/
H A Dsch_generic.h89 #define TCQ_F_NOLOCK 0x100 /* qdisc does not require locking */
90 #define TCQ_F_OFFLOADED 0x200 /* qdisc is offloaded to HW */
120 bool running; /* must be written under qdisc spinlock */
141 static inline void qdisc_refcount_inc(struct Qdisc *qdisc) in qdisc_refcount_inc()
143 if (qdisc->flags & TCQ_F_BUILTIN) in qdisc_refcount_dec_if_one() argument
145 refcount_inc(&qdisc->refcnt); in qdisc_refcount_dec_if_one()
148 static inline bool qdisc_refcount_dec_if_one(struct Qdisc *qdisc) in qdisc_refcount_dec_if_one()
150 if (qdisc->flags & TCQ_F_BUILTIN)
152 return refcount_dec_if_one(&qdisc->refcnt);
155 /* Intended to be used by unlocked users, when concurrent qdisc releas in qdisc_refcount_inc_nz()
136 qdisc_refcount_inc(struct Qdisc * qdisc) qdisc_refcount_inc() argument
154 qdisc_refcount_inc_nz(struct Qdisc * qdisc) qdisc_refcount_inc_nz() argument
167 qdisc_is_running(struct Qdisc * qdisc) qdisc_is_running() argument
174 nolock_qdisc_is_empty(const struct Qdisc * qdisc) nolock_qdisc_is_empty() argument
184 qdisc_is_empty(const struct Qdisc * qdisc) qdisc_is_empty() argument
194 qdisc_run_begin(struct Qdisc * qdisc) qdisc_run_begin() argument
217 qdisc_run_end(struct Qdisc * qdisc) qdisc_run_end() argument
236 qdisc_may_bulk(const struct Qdisc * qdisc) qdisc_may_bulk() argument
542 qdisc_lock(struct Qdisc * qdisc) qdisc_lock() argument
547 qdisc_root(const struct Qdisc * qdisc) qdisc_root() argument
554 qdisc_root_bh(const struct Qdisc * qdisc) qdisc_root_bh() argument
559 qdisc_root_sleeping(const struct Qdisc * qdisc) qdisc_root_sleeping() argument
564 qdisc_root_sleeping_lock(const struct Qdisc * qdisc) qdisc_root_sleeping_lock() argument
572 qdisc_dev(const struct Qdisc * qdisc) qdisc_dev() argument
760 struct Qdisc *qdisc; qdisc_reset_all_tx_gt() local
809 struct Qdisc *qdisc = rcu_access_pointer(txq->qdisc); qdisc_txq_has_no_queue() local
[all...]
H A Dpkt_sched.h62 struct Qdisc *qdisc; in psched_get_time()
65 void qdisc_watchdog_init_clockid(struct qdisc_watchdog *wd, struct Qdisc *qdisc,
67 void qdisc_watchdog_init(struct qdisc_watchdog *wd, struct Qdisc *qdisc);
287 static inline void qdisc_warn_nonwc(const char *txt, struct Qdisc *qdisc) in tc_qdisc_stats_dump()
289 if (!(qdisc->flags & TCQ_F_WARN_NONWC)) { in tc_qdisc_stats_dump()
290 pr_warn("%s: %s qdisc %X: is non-work-conserving?\n", in tc_qdisc_stats_dump()
291 txt, qdisc->ops->id, qdisc->handle >> 16);
292 qdisc->flags |= TCQ_F_WARN_NONWC; in qdisc_warn_nonwc() argument
68 struct Qdisc *qdisc; global() member
/linux/tools/testing/selftests/bpf/prog_tests/
H A Dcgroup_ancestor.c18 struct bpf_tc_hook qdisc; member
58 memset(&t->qdisc, 0, sizeof(t->qdisc)); in setup_network()
59 t->qdisc.sz = sizeof(t->qdisc); in setup_network()
60 t->qdisc.attach_point = BPF_TC_EGRESS; in setup_network()
61 t->qdisc.ifindex = if_nametoindex("lo"); in setup_network()
62 if (!ASSERT_NEQ(t->qdisc.ifindex, 0, "if_nametoindex")) in setup_network()
64 if (!ASSERT_OK(bpf_tc_hook_create(&t->qdisc), "qdisc add")) in setup_network()
70 if (!ASSERT_OK(bpf_tc_attach(&t->qdisc, &t->tc_attach), "filter add")) in setup_network()
76 bpf_tc_hook_destroy(&t->qdisc); in setup_network()
87 bpf_tc_detach(&t->qdisc, &t->tc_attach); in cleanup_network()
[all …]
/linux/include/trace/events/
H A Dqdisc.h2 #define TRACE_SYSTEM qdisc
16 TP_PROTO(struct Qdisc *qdisc, const struct netdev_queue *txq,
19 TP_ARGS(qdisc, txq, packets, skb),
22 __field( struct Qdisc *, qdisc )
34 __entry->qdisc = qdisc;
39 __entry->handle = qdisc->handle;
40 __entry->parent = qdisc->parent;
44 TP_printk("dequeue ifindex=%d qdisc handle=0x%X parent=0x%X txq_state=0x%lX packets=%d skbaddr=%p",
51 TP_PROTO(struct Qdisc *qdisc, cons
[all...]
/linux/tools/testing/selftests/drivers/net/mlxsw/
H A Dtc_restrictions.sh44 tc qdisc add dev $swp1 ingress_block 22 clsact
51 tc qdisc add dev $swp2 ingress_block 22 clsact
54 tc qdisc del dev $swp2 clsact
56 tc qdisc add dev $swp2 egress_block 22 clsact
61 tc qdisc add dev $swp2 egress_block 22 clsact
68 tc qdisc del dev $swp1 clsact
70 tc qdisc add dev $swp1 egress_block 22 clsact
79 tc qdisc del dev $swp2 clsact
80 tc qdisc del dev $swp1 clsact
92 tc qdisc add dev $swp1 ingress_block 22 clsact
[all …]
H A Dsch_offload.sh57 tc qdisc add dev $h1 $locus handle $handle \
60 tc qdisc del dev $h1 $locus
68 tc qdisc add dev $h1 $locus handle $handle \
71 tc qdisc del dev $h1 $locus
79 tc qdisc add dev $h1 $locus handle $handle \
82 tc qdisc del dev $h1 $locus
90 tc qdisc add dev $h1 $locus handle $handle \
93 tc qdisc del dev $h1 $locus
101 tc qdisc add dev $h1 $locus handle $handle pfifo limit 100K
103 tc qdisc del dev $h1 $locus
[all …]
H A Dqos_headroom.sh168 tc qdisc replace dev $swp root handle 1: bfifo limit 1.5M
170 tc qdisc delete dev $swp root
248 tc qdisc replace dev $swp root handle 1: bfifo limit 1.5M
254 tc qdisc delete dev $swp root
258 tc qdisc replace dev $swp root handle 1: bfifo limit 1.5M
260 tc qdisc delete dev $swp root
276 tc qdisc replace dev $swp root handle 1: bfifo limit 1.5M
290 tc qdisc replace dev $swp root handle 1: bfifo limit 1M
298 tc qdisc replace dev $swp root handle 2: prio bands 8
303 tc qdisc delete dev $swp root
[all …]
H A Dqos_dscp_router.sh68 tc qdisc add dev $h1 clsact
77 tc qdisc del dev $h1 clsact
84 tc qdisc add dev $h2 clsact
93 tc qdisc del dev $h2 clsact
102 tc qdisc add dev $swp1 clsact
103 tc qdisc add dev $swp2 clsact
114 tc qdisc del dev $swp2 clsact
115 tc qdisc del dev $swp1 clsact
H A Drif_mac_profiles.sh19 tc qdisc add dev $h1 ingress
24 tc qdisc del dev $h1 ingress
35 tc qdisc add dev $h2 ingress
40 tc qdisc del dev $h2 ingress
51 tc qdisc add dev $rp1 clsact
52 tc qdisc add dev $rp2 clsact
61 tc qdisc del dev $rp2 clsact
62 tc qdisc del dev $rp1 clsact
H A Dqos_pfc.sh173 tc qdisc replace dev $swp1 root handle 1: \
189 tc qdisc replace dev $swp2 root handle 1: \
191 tc qdisc replace dev $swp2 parent 1:7 handle 17: \
206 tc qdisc replace dev $swp3 root handle 1: \
228 tc qdisc replace dev $swp4 root handle 1: \
293 tc qdisc del dev $swp4 root
307 tc qdisc del dev $swp3 root
319 tc qdisc del dev $swp2 parent 1:7
320 tc qdisc del dev $swp2 root
333 tc qdisc del dev $swp1 root
/linux/samples/bpf/
H A Ddo_hbm_test.sh20 echo " [-q=<qdisc>] [-R] [-s=<server>|--server=<server]"
42 echo " -q use the specified qdisc"
90 qdisc=""
148 qdisc="fq"
169 qdisc="${i#*=}"
236 if [ "$qdisc" != "" ] ; then
239 tc qdisc del dev lo root > /dev/null 2>&1
240 tc qdisc add dev lo root netem delay $netem\ms > /dev/null 2>&1
241 elif [ "$qdisc" != "" ] ; then
242 tc qdisc de
[all...]
/linux/tools/testing/selftests/net/forwarding/
H A Dtc_mpls_l2vpn.sh81 tc qdisc add dev $edge1 ingress
89 tc qdisc add dev $mpls1 ingress
102 tc qdisc del dev $mpls1 ingress
105 tc qdisc del dev $edge1 ingress
110 tc qdisc add dev $edge2 ingress
118 tc qdisc add dev $mpls2 ingress
131 tc qdisc del dev $mpls2 ingress
134 tc qdisc del dev $edge2 ingress
H A Dskbedit_priority.sh65 tc qdisc add dev $swp1 clsact
66 tc qdisc add dev $swp2 clsact
67 tc qdisc add dev $swp2 root handle 10: \
73 tc qdisc del dev $swp2 root
74 tc qdisc del dev $swp2 clsact
75 tc qdisc del dev $swp1 clsact
H A Dtc_taprio.sh121 tc qdisc add dev $if_name clsact
127 tc qdisc add dev $if_name handle 100: parent root mqprio num_tc 8 \
132 tc qdisc replace dev $if_name parent 100:$((STREAM_PRIO_1 + 1)) etf \
134 tc qdisc replace dev $if_name parent 100:$((STREAM_PRIO_2 + 1)) etf \
136 tc qdisc replace dev $if_name parent 100:$((STREAM_PRIO_3 + 1)) etf \
144 tc qdisc del dev $if_name clsact
145 tc qdisc del dev $if_name root
156 tc qdisc replace dev $if_name root stab overhead 24 taprio num_tc 8 \
169 tc qdisc del dev $if_name root
379 tc qdisc replace dev $swp2 root stab overhead 24 taprio num_tc 8 \
H A Dpedit_ip.sh47 tc qdisc add dev $h2 clsact
52 tc qdisc del dev $h2 clsact
64 tc qdisc add dev $swp1 clsact
65 tc qdisc add dev $swp2 clsact
70 tc qdisc del dev $swp2 clsact
71 tc qdisc del dev $swp1 clsact
H A Dpedit_l4port.sh48 tc qdisc add dev $h2 clsact
53 tc qdisc del dev $h2 clsact
65 tc qdisc add dev $swp1 clsact
66 tc qdisc add dev $swp2 clsact
71 tc qdisc del dev $swp2 clsact
72 tc qdisc del dev $swp1 clsact
/linux/Documentation/networking/
H A Dmultiqueue.rst32 default pfifo_fast qdisc. This qdisc supports one qdisc per hardware queue.
33 A new round-robin qdisc, sch_multiq also supports multiple hardware queues. The
34 qdisc is responsible for classifying the skb's and then directing the skb's to
42 On qdisc load, the number of bands is based on the number of queues on the
51 qdiscs. To add the MULTIQ qdisc to your network device, assuming the device
54 # tc qdisc add dev eth0 root handle 1: multiq
56 The qdisc will allocate the number of bands to equal the number of queues that
57 the device reports, and bring the qdisc online. Assuming eth0 has 4 Tx

1234567