| /linux-6.15/drivers/net/ethernet/netronome/nfp/abm/ |
| H A D | qdisc.c | 208 if (qdisc->offload_mark && !qdisc->offloaded) in nfp_abm_offload_compile_red() 231 qdisc->offload_mark = qdisc->type == NFP_QDISC_MQ; in nfp_abm_offload_compile_mq() 271 if (!qdisc->offload_mark && qdisc->offloaded) in nfp_abm_qdisc_offload_update() 273 qdisc->offloaded = qdisc->offload_mark; in nfp_abm_qdisc_offload_update() 326 if (!qdisc) in nfp_abm_qdisc_free() 330 TC_H_MAJ(qdisc->handle)) != qdisc); in nfp_abm_qdisc_free() 347 qdisc = kzalloc(sizeof(*qdisc), GFP_KERNEL); in nfp_abm_qdisc_alloc() 348 if (!qdisc) in nfp_abm_qdisc_alloc() 410 if (!qdisc) in nfp_abm_qdisc_destroy() 491 if (!qdisc) in nfp_abm_gred_stats() [all …]
|
| /linux-6.15/net/sched/ |
| H A D | sch_generic.c | 1195 rcu_assign_pointer(dev->qdisc, qdisc); in attach_default_qdiscs() 1200 rcu_assign_pointer(dev->qdisc, qdisc); in attach_default_qdiscs() 1201 qdisc->ops->attach(qdisc); in attach_default_qdiscs() 1204 qdisc = rtnl_dereference(dev->qdisc); in attach_default_qdiscs() 1214 rcu_assign_pointer(dev->qdisc, qdisc); in attach_default_qdiscs() 1285 qdisc = rtnl_dereference(dev_queue->qdisc); in dev_deactivate_queue() 1417 struct Qdisc *qdisc = rtnl_dereference(dev->qdisc); in dev_qdisc_change_real_num_tx() local 1420 qdisc->ops->change_real_num_tx(qdisc, new_real_tx); in dev_qdisc_change_real_num_tx() 1435 if (qdisc != &noop_qdisc && !qdisc->handle) in mq_change_real_num_tx() 1440 if (qdisc != &noop_qdisc && !qdisc->handle) in mq_change_real_num_tx() [all …]
|
| H A D | sch_mq.c | 73 struct Qdisc *qdisc; in mq_init() local 94 if (!qdisc) in mq_init() 96 priv->qdiscs[ntx] = qdisc; 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 145 spin_lock_bh(qdisc_lock(qdisc)); in mq_dump() 148 &qdisc->bstats, false); in mq_dump() [all …]
|
| H A D | sch_cbs.c | 84 struct Qdisc *qdisc; member 109 struct Qdisc *qdisc = q->qdisc; in cbs_enqueue_offload() local 118 struct Qdisc *qdisc = q->qdisc; in cbs_enqueue_soft() local 179 struct Qdisc *qdisc = q->qdisc; in cbs_dequeue_soft() local 234 struct Qdisc *qdisc = q->qdisc; in cbs_dequeue_offload() local 347 qdev = qdisc_dev(q->qdisc); in cbs_dev_notifier() 414 if (!q->qdisc) in cbs_init() 421 qdisc_hash_add(q->qdisc, false); in cbs_init() 439 if (!q->qdisc) in cbs_destroy() 449 qdisc_put(q->qdisc); in cbs_destroy() [all …]
|
| H A D | sch_drr.c | 25 struct Qdisc *qdisc; member 119 if (cl->qdisc == NULL) in drr_change_class() 120 cl->qdisc = &noop_qdisc; 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() 231 return cl->qdisc; in drr_class_leaf() 384 skb = cl->qdisc->ops->peek(cl->qdisc); in drr_dequeue() 396 if (cl->qdisc->q.qlen == 0) in drr_dequeue() 437 if (cl->qdisc->q.qlen) in drr_reset_qdisc() [all …]
|
| H A D | sch_mqprio.c | 351 struct Qdisc *qdisc; in mqprio_init() local 402 if (!qdisc) in mqprio_init() 405 priv->qdiscs[i] = qdisc; 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 578 &qdisc->qstats); in mqprio_dump() 685 struct Qdisc *qdisc = rtnl_dereference(q->qdisc); in mqprio_dump_class_stats() local [all …]
|
| H A D | sch_tbf.c | 280 skb = q->qdisc->ops->peek(q->qdisc); in tbf_dequeue() 303 skb = qdisc_dequeue_peeked(q->qdisc); in tbf_dequeue() 339 qdisc_reset(q->qdisc); in tbf_reset() 437 if (q->qdisc != &noop_qdisc) { in tbf_change() 455 qdisc_tree_flush_backlog(q->qdisc); in tbf_change() 456 old = q->qdisc; in tbf_change() 457 q->qdisc = child; in tbf_change() 490 q->qdisc = &noop_qdisc; in tbf_init() 506 qdisc_put(q->qdisc); in tbf_destroy() 557 tcm->tcm_info = q->qdisc->handle; in tbf_dump_class() [all …]
|
| H A D | sch_ets.c | 41 struct Qdisc *qdisc; member 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() 481 skb = cl->qdisc->ops->peek(cl->qdisc); in ets_qdisc_dequeue() 493 if (cl->qdisc->q.qlen == 0) in ets_qdisc_dequeue() 656 if (q->classes[i].qdisc->q.qlen) { in ets_qdisc_change() 673 q->classes[i].qdisc = queues[i]; in ets_qdisc_change() 682 qdisc_put(q->classes[i].qdisc); in ets_qdisc_change() 683 q->classes[i].qdisc = NULL; in ets_qdisc_change() [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-6.15/include/net/ |
| H A D | sch_generic.h | 157 return qdisc; in qdisc_refcount_inc_nz() 159 return qdisc; in qdisc_refcount_inc_nz() 229 &qdisc->state))) in qdisc_run_end() 230 __netif_schedule(qdisc); in qdisc_run_end() 544 return &qdisc->q.lock; in qdisc_lock() 549 struct Qdisc *q = rcu_dereference_rtnl(qdisc->dev_queue->qdisc); in qdisc_root() 556 return rcu_dereference_bh(qdisc->dev_queue->qdisc); in qdisc_root_bh() 760 struct Qdisc *qdisc; in qdisc_reset_all_tx_gt() local 763 qdisc = rtnl_dereference(netdev_get_tx_queue(dev, i)->qdisc); in qdisc_reset_all_tx_gt() 764 if (qdisc) { in qdisc_reset_all_tx_gt() [all …]
|
| /linux-6.15/include/trace/events/ |
| H A D | qdisc.h | 2 #define TRACE_SYSTEM qdisc 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; 53 TP_ARGS(qdisc, txq, skb), 56 __field(struct Qdisc *, qdisc) 65 __entry->qdisc = qdisc; 69 __entry->handle = qdisc->handle; [all …]
|
| /linux-6.15/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-6.15/tools/testing/selftests/net/forwarding/ |
| H A D | sch_tbf_etsprio.sh | 17 tc qdisc replace dev $swp2 parent 10:3 handle 103: tbf \ 19 tc qdisc replace dev $swp2 parent 10:2 handle 102: tbf \ 32 tc qdisc add dev $swp2 root handle 10: $QDISC 3 priomap 2 1 0 33 defer tc qdisc del dev $swp2 root 44 tc qdisc replace dev $swp2 root handle 1: \ 46 defer tc qdisc del dev $swp2 root 48 tc qdisc replace dev $swp2 parent 1:1 handle 10: \ 50 tc qdisc replace dev $swp2 parent 10:3 handle 103: \ 52 tc qdisc replace dev $swp2 parent 10:2 handle 102: \ 54 tc qdisc replace dev $swp2 parent 10:1 handle 101: \
|
| 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 | 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 | 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 | pedit_ip.sh | 47 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
|
| /linux-6.15/tools/testing/selftests/drivers/net/mlxsw/ |
| H A D | tc_restrictions.sh | 54 tc qdisc del dev $swp2 clsact 68 tc qdisc del dev $swp1 clsact 79 tc qdisc del dev $swp2 clsact 80 tc qdisc del dev $swp1 clsact 103 tc qdisc del dev $swp2 clsact 118 tc qdisc del dev $swp1 clsact 128 tc qdisc del dev $swp2 clsact 135 tc qdisc del dev $swp1 clsact 147 tc qdisc add dev $swp1 clsact 162 tc qdisc del dev $swp1 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 103 tc qdisc del dev $h1 $locus 113 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 260 tc qdisc delete dev $swp root 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 323 tc qdisc add dev $swp clsact 346 tc qdisc del dev $swp clsact [all …]
|
| H A D | sch_red_ets.sh | 28 tc qdisc add dev $swp3 parent 1: handle 10: $QDISC \ 36 tc qdisc add dev $swp3 parent 10:8 handle 108: red \ 45 tc qdisc add dev $swp3 parent 10:7 handle 107: red \ 60 tc qdisc del dev $swp3 parent 10:8 65 tc qdisc del dev $swp3 parent 10:7 70 tc qdisc del dev $swp3 parent 1:
|
| 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
|
| /linux-6.15/samples/bpf/ |
| H A D | do_hbm_test.sh | 90 qdisc="" 148 qdisc="fq" 169 qdisc="${i#*=}" 236 if [ "$qdisc" != "" ] ; then 239 tc qdisc del dev lo root > /dev/null 2>&1 241 elif [ "$qdisc" != "" ] ; then 242 tc qdisc del dev eth0 root > /dev/null 2>&1 243 tc qdisc add dev eth0 root $qdisc > /dev/null 2>&1 411 tc qdisc del dev lo root > /dev/null 2>&1 413 if [ "$qdisc" != "" ] ; then [all …]
|
| /linux-6.15/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
|