/Linux-v5.4/drivers/net/ethernet/netronome/nfp/abm/ |
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-v5.4/net/sched/ |
D | sch_generic.c | 527 static int noop_enqueue(struct sk_buff *skb, struct Qdisc *qdisc, in noop_enqueue() argument 534 static struct sk_buff *noop_dequeue(struct Qdisc *qdisc) in noop_dequeue() argument 549 RCU_POINTER_INITIALIZER(qdisc, &noop_qdisc), 577 static int noqueue_init(struct Qdisc *qdisc, struct nlattr *opt, in noqueue_init() argument 583 qdisc->enqueue = NULL; in noqueue_init() 621 static int pfifo_fast_enqueue(struct sk_buff *skb, struct Qdisc *qdisc, in pfifo_fast_enqueue() argument 625 struct pfifo_fast_priv *priv = qdisc_priv(qdisc); in pfifo_fast_enqueue() 633 if (qdisc_is_percpu_stats(qdisc)) in pfifo_fast_enqueue() 634 return qdisc_drop_cpu(skb, qdisc, to_free); in pfifo_fast_enqueue() 636 return qdisc_drop(skb, qdisc, to_free); in pfifo_fast_enqueue() [all …]
|
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, false); in mq_attach() 131 struct Qdisc *qdisc; in mq_dump() local [all …]
|
D | sch_mqprio.c | 139 struct Qdisc *qdisc; in mqprio_init() local 228 qdisc = qdisc_create_dflt(dev_queue, in mqprio_init() 232 if (!qdisc) in mqprio_init() 235 priv->qdiscs[i] = qdisc; in mqprio_init() 236 qdisc->flags |= TCQ_F_ONETXQUEUE | TCQ_F_NOPARENT; in mqprio_init() 293 struct Qdisc *qdisc, *old; in mqprio_attach() local 298 qdisc = priv->qdiscs[ntx]; in mqprio_attach() 299 old = dev_graft_qdisc(qdisc->dev_queue, qdisc); in mqprio_attach() 303 qdisc_hash_add(qdisc, false); in mqprio_attach() 389 struct Qdisc *qdisc; in mqprio_dump() local [all …]
|
D | sch_cbs.c | 83 struct Qdisc *qdisc; member 108 struct Qdisc *qdisc = q->qdisc; in cbs_enqueue_offload() local 110 return cbs_child_enqueue(skb, sch, qdisc, to_free); in cbs_enqueue_offload() 117 struct Qdisc *qdisc = q->qdisc; in cbs_enqueue_soft() local 127 return cbs_child_enqueue(skb, sch, qdisc, to_free); in cbs_enqueue_soft() 178 struct Qdisc *qdisc = q->qdisc; in cbs_dequeue_soft() local 201 skb = cbs_child_dequeue(sch, qdisc); in cbs_dequeue_soft() 223 struct Qdisc *qdisc = q->qdisc; in cbs_dequeue_offload() local 225 return cbs_child_dequeue(sch, qdisc); in cbs_dequeue_offload() 336 qdev = qdisc_dev(q->qdisc); in cbs_dev_notifier() [all …]
|
D | sch_drr.c | 26 struct Qdisc *qdisc; member 111 cl->qdisc = qdisc_create_dflt(sch->dev_queue, in drr_change_class() 114 if (cl->qdisc == NULL) in drr_change_class() 115 cl->qdisc = &noop_qdisc; in drr_change_class() 117 qdisc_hash_add(cl->qdisc, true); in drr_change_class() 126 qdisc_put(cl->qdisc); in drr_change_class() 145 qdisc_put(cl->qdisc); in drr_destroy_class() 159 qdisc_purge_queue(cl->qdisc); in drr_delete_class() 217 *old = qdisc_replace(sch, new, &cl->qdisc); in drr_graft_class() 225 return cl->qdisc; in drr_class_leaf() [all …]
|
D | sch_tbf.c | 109 struct Qdisc *qdisc; /* Inner qdisc, default - bfifo queue */ member 163 ret = qdisc_enqueue(segs, q->qdisc, to_free); in tbf_segment() 192 ret = qdisc_enqueue(skb, q->qdisc, to_free); in tbf_enqueue() 214 skb = q->qdisc->ops->peek(q->qdisc); in tbf_dequeue() 237 skb = qdisc_dequeue_peeked(q->qdisc); in tbf_dequeue() 273 qdisc_reset(q->qdisc); in tbf_reset() 372 if (q->qdisc != &noop_qdisc) { in tbf_change() 373 err = fifo_set_limit(q->qdisc, qopt->limit); in tbf_change() 390 qdisc_tree_flush_backlog(q->qdisc); in tbf_change() 391 qdisc_put(q->qdisc); in tbf_change() [all …]
|
D | sch_red.c | 44 struct Qdisc *qdisc; member 61 struct Qdisc *child = q->qdisc; in red_enqueue() 116 struct Qdisc *child = q->qdisc; in red_dequeue() 133 struct Qdisc *child = q->qdisc; in red_peek() 142 qdisc_reset(q->qdisc); in red_reset() 182 qdisc_put(q->qdisc); in red_destroy() 233 qdisc_tree_flush_backlog(q->qdisc); in red_change() 234 old_child = q->qdisc; in red_change() 235 q->qdisc = child; in red_change() 249 if (!q->qdisc->q.qlen) in red_change() [all …]
|
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()
|
D | sch_qfq.c | 137 struct Qdisc *qdisc; member 318 if (cl->qdisc->q.qlen > 0) { /* adding an active class */ in qfq_add_to_agg() 367 if (cl->qdisc->q.qlen > 0) /* class is active */ in qfq_deact_rm_from_agg() 471 cl->qdisc = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, in qfq_change_class() 473 if (cl->qdisc == NULL) in qfq_change_class() 474 cl->qdisc = &noop_qdisc; in qfq_change_class() 486 if (cl->qdisc != &noop_qdisc) in qfq_change_class() 487 qdisc_hash_add(cl->qdisc, true); in qfq_change_class() 517 qdisc_put(cl->qdisc); in qfq_change_class() 528 qdisc_put(cl->qdisc); in qfq_destroy_class() [all …]
|
D | sch_sfb.c | 53 struct Qdisc *qdisc; member 284 struct Qdisc *child = q->qdisc; in sfb_enqueue() 426 struct Qdisc *child = q->qdisc; in sfb_dequeue() 429 skb = child->dequeue(q->qdisc); in sfb_dequeue() 444 struct Qdisc *child = q->qdisc; in sfb_peek() 455 qdisc_reset(q->qdisc); in sfb_reset() 469 qdisc_put(q->qdisc); in sfb_destroy() 522 qdisc_purge_queue(q->qdisc); in sfb_change() 523 old = q->qdisc; in sfb_change() 524 q->qdisc = child; in sfb_change() [all …]
|
D | sch_hfsc.c | 126 struct Qdisc *qdisc; /* leaf qdisc */ member 749 if (cl->qdisc->q.qlen == 0 && cl->cl_flags & HFSC_FSC) in update_vf() 984 if (cl->qdisc->q.qlen != 0) { in hfsc_change_class() 985 int len = qdisc_peek_len(cl->qdisc); in hfsc_change_class() 1056 cl->qdisc = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, in hfsc_change_class() 1058 if (cl->qdisc == NULL) in hfsc_change_class() 1059 cl->qdisc = &noop_qdisc; in hfsc_change_class() 1061 qdisc_hash_add(cl->qdisc, true); in hfsc_change_class() 1070 qdisc_purge_queue(parent->qdisc); in hfsc_change_class() 1086 qdisc_put(cl->qdisc); in hfsc_destroy_class() [all …]
|
D | sch_prio.c | 72 struct Qdisc *qdisc; in prio_enqueue() local 75 qdisc = prio_classify(skb, sch, &ret); in prio_enqueue() 77 if (qdisc == NULL) { in prio_enqueue() 86 ret = qdisc_enqueue(skb, qdisc, to_free); in prio_enqueue() 103 struct Qdisc *qdisc = q->queues[prio]; in prio_peek() local 104 struct sk_buff *skb = qdisc->ops->peek(qdisc); in prio_peek() 117 struct Qdisc *qdisc = q->queues[prio]; in prio_dequeue() local 118 struct sk_buff *skb = qdisc_dequeue_peeked(qdisc); in prio_dequeue()
|
/Linux-v5.4/include/net/ |
D | sch_generic.h | 117 static inline void qdisc_refcount_inc(struct Qdisc *qdisc) in qdisc_refcount_inc() argument 119 if (qdisc->flags & TCQ_F_BUILTIN) in qdisc_refcount_inc() 121 refcount_inc(&qdisc->refcnt); in qdisc_refcount_inc() 128 static inline struct Qdisc *qdisc_refcount_inc_nz(struct Qdisc *qdisc) in qdisc_refcount_inc_nz() argument 130 if (qdisc->flags & TCQ_F_BUILTIN) in qdisc_refcount_inc_nz() 131 return qdisc; in qdisc_refcount_inc_nz() 132 if (refcount_inc_not_zero(&qdisc->refcnt)) in qdisc_refcount_inc_nz() 133 return qdisc; in qdisc_refcount_inc_nz() 137 static inline bool qdisc_is_running(struct Qdisc *qdisc) in qdisc_is_running() argument 139 if (qdisc->flags & TCQ_F_NOLOCK) in qdisc_is_running() [all …]
|
/Linux-v5.4/include/trace/events/ |
D | qdisc.h | 2 #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-v5.4/samples/bpf/ |
D | do_hbm_test.sh | 90 qdisc="" 138 qdisc="fq" 159 qdisc="${i#*=}" 225 if [ "$qdisc" != "" ] ; then 228 tc qdisc del dev lo root > /dev/null 2>&1 229 tc qdisc add dev lo root netem delay $netem\ms > /dev/null 2>&1 230 elif [ "$qdisc" != "" ] ; then 231 tc qdisc del dev eth0 root > /dev/null 2>&1 232 tc qdisc add dev eth0 root $qdisc > /dev/null 2>&1 400 tc qdisc del dev lo root > /dev/null 2>&1 [all …]
|
D | test_cls_bpf.sh | 7 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
|
/Linux-v5.4/Documentation/networking/ |
D | multiqueue.txt | 33 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-v5.4/tools/testing/selftests/net/forwarding/ |
D | mirror_topo_lib.sh | 49 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
|
D | mirror_gre_lag_lacp.sh | 125 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
|
D | mirror_gre_bridge_1q_lag.sh | 109 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
|
D | tc_shblocks.sh | 34 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
|
/Linux-v5.4/tools/testing/selftests/drivers/net/mlxsw/ |
D | tc_flower_scale.sh | 15 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
|
D | qos_dscp_bridge.sh | 40 tc qdisc add dev $h1 clsact 47 tc qdisc del dev $h1 clsact 54 tc qdisc add dev $h2 clsact 61 tc qdisc del dev $h2 clsact
|
/Linux-v5.4/tools/testing/selftests/networking/timestamping/ |
D | txtimestamp.sh | 11 tc qdisc add dev lo root netem delay 1ms 17 tc qdisc add dev ifb_netem0 root netem delay 2ms 20 tc qdisc add dev lo handle ffff: ingress
|