/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 in nfp_abm_stats_update_red() 71 nfp_abm_stats_update_mq(struct nfp_abm_link * alink,struct nfp_qdisc * qdisc) nfp_abm_stats_update_mq() argument 106 nfp_abm_qdisc_unlink_children(struct nfp_qdisc * qdisc,unsigned int start,unsigned int end) nfp_abm_qdisc_unlink_children() argument 119 nfp_abm_qdisc_offload_stop(struct nfp_abm_link * alink,struct nfp_qdisc * qdisc) nfp_abm_qdisc_offload_stop() argument 173 nfp_abm_stats_init(struct nfp_abm_link * alink,struct nfp_qdisc * qdisc,unsigned int queue) nfp_abm_stats_init() argument 191 nfp_abm_offload_compile_red(struct nfp_abm_link * alink,struct nfp_qdisc * qdisc,unsigned int queue) nfp_abm_offload_compile_red() argument 227 nfp_abm_offload_compile_mq(struct nfp_abm_link * alink,struct nfp_qdisc * qdisc) nfp_abm_offload_compile_mq() argument 249 struct nfp_qdisc *qdisc; nfp_abm_qdisc_offload_update() local 286 nfp_abm_qdisc_clear_mq(struct net_device * netdev,struct nfp_abm_link * alink,struct nfp_qdisc * qdisc) nfp_abm_qdisc_clear_mq() argument 322 nfp_abm_qdisc_free(struct net_device * netdev,struct nfp_abm_link * alink,struct nfp_qdisc * qdisc) nfp_abm_qdisc_free() argument 344 struct nfp_qdisc *qdisc; nfp_abm_qdisc_alloc() local 389 nfp_abm_qdisc_replace(struct net_device * netdev,struct nfp_abm_link * alink,enum nfp_qdisc_type type,u32 parent_handle,u32 handle,unsigned int children,struct nfp_qdisc ** qdisc) nfp_abm_qdisc_replace() argument 407 struct nfp_qdisc *qdisc; nfp_abm_qdisc_destroy() local 485 struct nfp_qdisc *qdisc; nfp_abm_gred_stats() local 579 struct nfp_qdisc *qdisc; nfp_abm_gred_replace() local 622 struct nfp_qdisc *qdisc; nfp_abm_red_xstats() local 641 struct nfp_qdisc *qdisc; nfp_abm_red_stats() local 701 struct nfp_qdisc *qdisc; nfp_abm_red_replace() local 760 struct nfp_qdisc *qdisc; nfp_abm_mq_create() local 779 struct nfp_qdisc *qdisc, *red; nfp_abm_mq_stats() local [all...] |
/linux/net/sched/ |
H A D | sch_generic.c | 32 #include <trace/events/qdisc.h> 64 * qdisc_lock(qdisc) spinlock. 67 * - enqueue, dequeue are serialized via qdisc root lock 68 * - ingress filtering is also serialized via qdisc root lock 309 * required. Owning qdisc running bit guarantees that only one CPU 323 /* And release qdisc */ in sch_direct_xmit() 375 * this qdisc at a time. qdisc_lock(q) serializes queue accesses for 635 static int noop_enqueue(struct sk_buff *skb, struct Qdisc *qdisc, in noop_enqueue() argument 643 static struct sk_buff *noop_dequeue(struct Qdisc *qdisc) in noop_dequeue() argument 658 RCU_POINTER_INITIALIZER(qdisc, 686 noqueue_init(struct Qdisc * qdisc,struct nlattr * opt,struct netlink_ext_ack * extack) noqueue_init() argument 731 pfifo_fast_enqueue(struct sk_buff * skb,struct Qdisc * qdisc,struct sk_buff ** to_free) pfifo_fast_enqueue() argument 755 pfifo_fast_dequeue(struct Qdisc * qdisc) pfifo_fast_dequeue() argument 796 pfifo_fast_peek(struct Qdisc * qdisc) pfifo_fast_peek() argument 811 pfifo_fast_reset(struct Qdisc * qdisc) pfifo_fast_reset() argument 841 pfifo_fast_dump(struct Qdisc * qdisc,struct sk_buff * skb) pfifo_fast_dump() argument 854 pfifo_fast_init(struct Qdisc * qdisc,struct nlattr * opt,struct netlink_ext_ack * extack) pfifo_fast_init() argument 1031 qdisc_reset(struct Qdisc * qdisc) qdisc_reset() argument 1048 qdisc_free(struct Qdisc * qdisc) qdisc_free() argument 1065 __qdisc_destroy(struct Qdisc * qdisc) __qdisc_destroy() argument 1092 qdisc_destroy(struct Qdisc * qdisc) qdisc_destroy() argument 1100 qdisc_put(struct Qdisc * qdisc) qdisc_put() argument 1118 qdisc_put_unlocked(struct Qdisc * qdisc) qdisc_put_unlocked() argument 1131 dev_graft_qdisc(struct netdev_queue * dev_queue,struct Qdisc * qdisc) dev_graft_qdisc() argument 1155 struct Qdisc *qdisc = rtnl_dereference(dev_queue->qdisc_sleeping); shutdown_scheduler_queue() local 1170 struct Qdisc *qdisc; attach_one_default_qdisc() local 1190 struct Qdisc *qdisc; attach_default_qdiscs() local 1273 qdisc_deactivate(struct Qdisc * qdisc) qdisc_deactivate() argument 1286 struct Qdisc *qdisc; dev_deactivate_queue() local 1301 struct Qdisc *qdisc; dev_reset_queue() local 1409 struct Qdisc *qdisc = rtnl_dereference(dev_queue->qdisc_sleeping); qdisc_change_tx_queue_len() local 1420 struct Qdisc *qdisc = rtnl_dereference(dev->qdisc); dev_qdisc_change_real_num_tx() local 1430 struct Qdisc *qdisc; mq_change_real_num_tx() local 1476 struct Qdisc *qdisc = _qdisc; dev_init_scheduler_queue() local 1612 mini_qdisc_pair_init(struct mini_Qdisc_pair * miniqp,struct Qdisc * qdisc,struct mini_Qdisc __rcu ** p_miniq) mini_qdisc_pair_init() argument [all...] |
H A D | sch_mq.c | 73 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, fals in mq_attach() 131 struct Qdisc *qdisc; mq_dump() local [all...] |
H A D | sch_cbs.c | 48 * this qdisc (IEEE 802.1Q-2014 Annex L, Equation L-2): 84 struct Qdisc *qdisc; member 109 struct Qdisc *qdisc = q->qdisc; in cbs_enqueue_offload() local 111 return cbs_child_enqueue(skb, sch, qdisc, to_free); in cbs_enqueue_offload() 118 struct Qdisc *qdisc = q->qdisc; in cbs_enqueue_soft() local 128 return cbs_child_enqueue(skb, sch, qdisc, to_free); in cbs_enqueue_soft() 179 struct Qdisc *qdisc = q->qdisc; in cbs_dequeue_soft() local 234 struct Qdisc *qdisc = q->qdisc; cbs_dequeue_offload() 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 390 /* pre-allocate qdisc, attachment can't fail */ in mqprio_init() 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 439 /* Attach underlying qdisc */ in mqprio_attach() 441 qdisc = priv->qdiscs[ntx]; in mqprio_attach() 442 old = dev_graft_qdisc(qdisc in mqprio_attach() 559 struct Qdisc *qdisc; mqprio_dump() local 685 struct Qdisc *qdisc = rtnl_dereference(q->qdisc); mqprio_dump_class_stats() 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 224 ret = qdisc_enqueue(segs, q->qdisc, to_free); in tbf_segment() 258 ret = qdisc_enqueue(skb, q->qdisc, to_free); in tbf_enqueue() 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() [all...] |
H A D | sch_ets.c | 41 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() 490 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 in multiq_peek() [all...] |
/linux/include/net/ |
H A D | sch_generic.h | 45 /* Only for !TCQ_F_NOLOCK qdisc. Never access it directly. 96 #define TCQ_F_NOLOCK 0x100 /* qdisc does not require locking */ 97 #define TCQ_F_OFFLOADED 0x200 /* qdisc is offloaded to HW */ 122 unsigned long state2; /* must be written under qdisc spinlock */ 136 static inline void qdisc_refcount_inc(struct Qdisc *qdisc) in qdisc_refcount_inc() argument 138 if (qdisc->flags & TCQ_F_BUILTIN) in qdisc_refcount_inc() 140 refcount_inc(&qdisc->refcnt); in qdisc_refcount_inc() 143 static inline bool qdisc_refcount_dec_if_one(struct Qdisc *qdisc) in qdisc_refcount_dec_if_one() argument 145 if (qdisc->flags & TCQ_F_BUILTIN) in qdisc_refcount_dec_if_one() 147 return refcount_dec_if_one(&qdisc in qdisc_refcount_dec_if_one() 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...] |
/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/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 ad in setup_network() [all...] |
/linux/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 replac [all...] |
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 | 7 # qdisc at $swp2. The test verifies that for different priority values, the 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 replac [all...] |
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/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 ad [all...] |
H A D | sch_offload.sh | 4 # Test qdisc offload indication 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 ad [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 274 check_fail $? "buffer_size should fail before qdisc is added" 276 tc qdisc replace dev $swp root handle 1: bfifo limit 1.5M 279 check_err $? "buffer_size should pass after qdisc is added" 288 # After replacing the qdisc fo [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: 116 check_err $? "backlog of $cur observed on non-busy qdisc"
|
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/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/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 onlin [all...] |