| /linux/drivers/net/ethernet/netronome/nfp/abm/ |
| H A D | qdisc.c | 16 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 D | sch_generic.c | 638 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 D | sch_mq.c | 75 struct Qdisc *qdisc; in mq_init_common() local 91 qdisc = qdisc_create_dflt(dev_queue, in mq_init_common() 96 if (!qdisc) in mq_init_common() 98 priv->qdiscs[ntx] = qdisc; in mq_init_common() 99 qdisc->flags |= TCQ_F_ONETXQUEUE | TCQ_F_NOPARENT; in mq_init_common() 124 struct Qdisc *qdisc, *old; in mq_attach() local 128 qdisc = priv->qdiscs[ntx]; in mq_attach() 129 old = dev_graft_qdisc(qdisc->dev_queue, qdisc); in mq_attach() 134 qdisc_hash_add(qdisc, false); in mq_attach() 146 struct Qdisc *qdisc; in mq_dump_common() local [all …]
|
| H A D | sch_drr.c | 25 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 D | sch_mqprio.c | 351 struct Qdisc *qdisc; in mqprio_init() local 397 qdisc = qdisc_create_dflt(dev_queue, in mqprio_init() 401 if (!qdisc) in mqprio_init() 404 priv->qdiscs[i] = qdisc; in mqprio_init() 405 qdisc->flags |= TCQ_F_ONETXQUEUE | TCQ_F_NOPARENT; in mqprio_init() 435 struct Qdisc *qdisc, *old; in mqprio_attach() local 440 qdisc = priv->qdiscs[ntx]; in mqprio_attach() 441 old = dev_graft_qdisc(qdisc->dev_queue, qdisc); in mqprio_attach() 445 qdisc_hash_add(qdisc, false); in mqprio_attach() 558 struct Qdisc *qdisc; in mqprio_dump() local [all …]
|
| H A D | sch_tbf.c | 94 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 D | sch_ets.c | 41 struct Qdisc *qdisc; member 273 *old = qdisc_replace(sch, new, &cl->qdisc); in ets_class_graft() 282 return cl->qdisc; in ets_class_leaf() 317 tcm->tcm_info = cl->qdisc->handle; in ets_class_dump() 337 struct Qdisc *cl_q = cl->qdisc; in ets_class_dump_stats() 437 err = qdisc_enqueue(skb, cl->qdisc, to_free); in ets_qdisc_enqueue() 476 skb = qdisc_dequeue_peeked(cl->qdisc); in ets_qdisc_dequeue() 485 skb = cl->qdisc->ops->peek(cl->qdisc); in ets_qdisc_dequeue() 487 qdisc_warn_nonwc(__func__, cl->qdisc); in ets_qdisc_dequeue() 494 skb = qdisc_dequeue_peeked(cl->qdisc); in ets_qdisc_dequeue() [all …]
|
| H A D | sch_multiq.c | 63 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 = q->queues[curband]; in multiq_peek() 138 skb = qdisc->ops->peek(qdisc); in multiq_peek()
|
| /linux/include/net/ |
| H A D | sch_generic.h | 141 static inline void qdisc_refcount_inc(struct Qdisc *qdisc) in qdisc_refcount_inc() argument 143 if (qdisc->flags & TCQ_F_BUILTIN) in qdisc_refcount_inc() 145 refcount_inc(&qdisc->refcnt); in qdisc_refcount_inc() 148 static inline bool qdisc_refcount_dec_if_one(struct Qdisc *qdisc) in qdisc_refcount_dec_if_one() argument 150 if (qdisc->flags & TCQ_F_BUILTIN) in qdisc_refcount_dec_if_one() 152 return refcount_dec_if_one(&qdisc->refcnt); in qdisc_refcount_dec_if_one() 159 static inline struct Qdisc *qdisc_refcount_inc_nz(struct Qdisc *qdisc) in qdisc_refcount_inc_nz() argument 161 if (qdisc->flags & TCQ_F_BUILTIN) in qdisc_refcount_inc_nz() 162 return qdisc; in qdisc_refcount_inc_nz() 163 if (refcount_inc_not_zero(&qdisc->refcnt)) in qdisc_refcount_inc_nz() [all …]
|
| H A D | pkt_sched.h | 62 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 D | cgroup_ancestor.c | 18 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 D | qdisc.h | 2 #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 D | tc_restrictions.sh | 44 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 D | sch_offload.sh | 57 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 D | qos_headroom.sh | 168 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 D | qos_dscp_router.sh | 68 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 D | rif_mac_profiles.sh | 19 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 D | qos_pfc.sh | 173 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 D | do_hbm_test.sh | 20 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 D | tc_mpls_l2vpn.sh | 81 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 D | tc_taprio.sh | 121 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 D | skbedit_priority.sh | 65 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 D | pedit_l4port.sh | 48 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 D | multiqueue.rst | 32 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
|
| /linux/drivers/net/ethernet/mellanox/mlxsw/ |
| H A D | spectrum_qdisc.c | 118 mlxsw_sp_qdisc_walk(struct mlxsw_sp_qdisc *qdisc, in mlxsw_sp_qdisc_walk() argument 127 tmp = pre(qdisc, data); in mlxsw_sp_qdisc_walk() 132 if (qdisc->ops) { in mlxsw_sp_qdisc_walk() 133 for (i = 0; i < qdisc->num_classes; i++) { in mlxsw_sp_qdisc_walk() 134 tmp = &qdisc->qdiscs[i]; in mlxsw_sp_qdisc_walk() 135 if (qdisc->ops) { in mlxsw_sp_qdisc_walk() 147 mlxsw_sp_qdisc_walk_cb_find(struct mlxsw_sp_qdisc *qdisc, void *data) in mlxsw_sp_qdisc_walk_cb_find() argument 151 if (qdisc->ops && TC_H_MAJ(qdisc->handle) == TC_H_MAJ(parent)) { in mlxsw_sp_qdisc_walk_cb_find() 152 if (qdisc->ops->find_class) in mlxsw_sp_qdisc_walk_cb_find() 153 return qdisc->ops->find_class(qdisc, parent); in mlxsw_sp_qdisc_walk_cb_find() [all …]
|