/Linux-v4.19/net/sched/ |
D | sch_generic.c | 540 static int noop_enqueue(struct sk_buff *skb, struct Qdisc *qdisc, in noop_enqueue() argument 547 static struct sk_buff *noop_dequeue(struct Qdisc *qdisc) in noop_dequeue() argument 562 .qdisc = &noop_qdisc, 578 static int noqueue_init(struct Qdisc *qdisc, struct nlattr *opt, in noqueue_init() argument 584 qdisc->enqueue = NULL; in noqueue_init() 622 static int pfifo_fast_enqueue(struct sk_buff *skb, struct Qdisc *qdisc, in pfifo_fast_enqueue() argument 626 struct pfifo_fast_priv *priv = qdisc_priv(qdisc); in pfifo_fast_enqueue() 634 return qdisc_drop_cpu(skb, qdisc, to_free); in pfifo_fast_enqueue() 636 qdisc_qstats_cpu_qlen_inc(qdisc); in pfifo_fast_enqueue() 640 this_cpu_add(qdisc->cpu_qstats->backlog, pkt_len); in pfifo_fast_enqueue() [all …]
|
D | sch_mq.c | 78 struct Qdisc *qdisc; in mq_init() local 95 qdisc = qdisc_create_dflt(dev_queue, get_default_qdisc_ops(dev, ntx), in mq_init() 99 if (!qdisc) in mq_init() 101 priv->qdiscs[ntx] = qdisc; in mq_init() 102 qdisc->flags |= TCQ_F_ONETXQUEUE | TCQ_F_NOPARENT; in mq_init() 115 struct Qdisc *qdisc, *old; in mq_attach() local 119 qdisc = priv->qdiscs[ntx]; in mq_attach() 120 old = dev_graft_qdisc(qdisc->dev_queue, qdisc); in mq_attach() 125 qdisc_hash_add(qdisc, false); in mq_attach() 136 struct Qdisc *qdisc; in mq_dump() local [all …]
|
D | sch_mqprio.c | 141 struct Qdisc *qdisc; in mqprio_init() local 230 qdisc = qdisc_create_dflt(dev_queue, in mqprio_init() 234 if (!qdisc) in mqprio_init() 237 priv->qdiscs[i] = qdisc; in mqprio_init() 238 qdisc->flags |= TCQ_F_ONETXQUEUE | TCQ_F_NOPARENT; in mqprio_init() 295 struct Qdisc *qdisc, *old; in mqprio_attach() local 300 qdisc = priv->qdiscs[ntx]; in mqprio_attach() 301 old = dev_graft_qdisc(qdisc->dev_queue, qdisc); in mqprio_attach() 305 qdisc_hash_add(qdisc, false); in mqprio_attach() 391 struct Qdisc *qdisc; in mqprio_dump() local [all …]
|
D | sch_cbs.c | 84 struct Qdisc *qdisc; member 107 struct Qdisc *qdisc = q->qdisc; in cbs_enqueue_offload() local 109 return cbs_child_enqueue(skb, sch, qdisc, to_free); in cbs_enqueue_offload() 116 struct Qdisc *qdisc = q->qdisc; in cbs_enqueue_soft() local 126 return cbs_child_enqueue(skb, sch, qdisc, to_free); in cbs_enqueue_soft() 177 struct Qdisc *qdisc = q->qdisc; in cbs_dequeue_soft() local 200 skb = cbs_child_dequeue(sch, qdisc); in cbs_dequeue_soft() 221 struct Qdisc *qdisc = q->qdisc; in cbs_dequeue_offload() local 223 return cbs_child_dequeue(sch, qdisc); in cbs_dequeue_offload() 355 q->qdisc = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, in cbs_init() [all …]
|
D | sch_drr.c | 29 struct Qdisc *qdisc; member 55 unsigned int len = cl->qdisc->q.qlen; in drr_purge_queue() 56 unsigned int backlog = cl->qdisc->qstats.backlog; in drr_purge_queue() 58 qdisc_reset(cl->qdisc); in drr_purge_queue() 59 qdisc_tree_reduce_backlog(cl->qdisc, len, backlog); in drr_purge_queue() 122 cl->qdisc = qdisc_create_dflt(sch->dev_queue, in drr_change_class() 125 if (cl->qdisc == NULL) in drr_change_class() 126 cl->qdisc = &noop_qdisc; in drr_change_class() 128 qdisc_hash_add(cl->qdisc, true); in drr_change_class() 137 qdisc_destroy(cl->qdisc); in drr_change_class() [all …]
|
D | sch_tbf.c | 114 struct Qdisc *qdisc; /* Inner qdisc, default - bfifo queue */ member 168 ret = qdisc_enqueue(segs, q->qdisc, to_free); in tbf_segment() 196 ret = qdisc_enqueue(skb, q->qdisc, to_free); in tbf_enqueue() 218 skb = q->qdisc->ops->peek(q->qdisc); in tbf_dequeue() 241 skb = qdisc_dequeue_peeked(q->qdisc); in tbf_dequeue() 277 qdisc_reset(q->qdisc); in tbf_reset() 375 if (q->qdisc != &noop_qdisc) { in tbf_change() 376 err = fifo_set_limit(q->qdisc, qopt->limit); in tbf_change() 393 qdisc_tree_reduce_backlog(q->qdisc, q->qdisc->q.qlen, in tbf_change() 394 q->qdisc->qstats.backlog); in tbf_change() [all …]
|
D | sch_red.c | 48 struct Qdisc *qdisc; member 65 struct Qdisc *child = q->qdisc; in red_enqueue() 120 struct Qdisc *child = q->qdisc; in red_dequeue() 137 struct Qdisc *child = q->qdisc; in red_peek() 146 qdisc_reset(q->qdisc); in red_reset() 184 qdisc_destroy(q->qdisc); in red_destroy() 234 qdisc_tree_reduce_backlog(q->qdisc, q->qdisc->q.qlen, in red_change() 235 q->qdisc->qstats.backlog); in red_change() 236 qdisc_destroy(q->qdisc); in red_change() 237 q->qdisc = child; in red_change() [all …]
|
D | sch_multiq.c | 74 struct Qdisc *qdisc; in multiq_enqueue() local 77 qdisc = multiq_classify(skb, sch, &ret); in multiq_enqueue() 79 if (qdisc == NULL) { in multiq_enqueue() 88 ret = qdisc_enqueue(skb, qdisc, to_free); in multiq_enqueue() 101 struct Qdisc *qdisc; in multiq_dequeue() local 116 qdisc = q->queues[q->curband]; in multiq_dequeue() 117 skb = qdisc->dequeue(qdisc); in multiq_dequeue() 133 struct Qdisc *qdisc; in multiq_peek() local 148 qdisc = q->queues[curband]; in multiq_peek() 149 skb = qdisc->ops->peek(qdisc); in multiq_peek()
|
D | sch_qfq.c | 140 struct Qdisc *qdisc; member 222 unsigned int len = cl->qdisc->q.qlen; in qfq_purge_queue() 223 unsigned int backlog = cl->qdisc->qstats.backlog; in qfq_purge_queue() 225 qdisc_reset(cl->qdisc); in qfq_purge_queue() 226 qdisc_tree_reduce_backlog(cl->qdisc, len, backlog); in qfq_purge_queue() 330 if (cl->qdisc->q.qlen > 0) { /* adding an active class */ in qfq_add_to_agg() 379 if (cl->qdisc->q.qlen > 0) /* class is active */ in qfq_deact_rm_from_agg() 483 cl->qdisc = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, in qfq_change_class() 485 if (cl->qdisc == NULL) in qfq_change_class() 486 cl->qdisc = &noop_qdisc; in qfq_change_class() [all …]
|
D | sch_sfb.c | 57 struct Qdisc *qdisc; member 287 struct Qdisc *child = q->qdisc; in sfb_enqueue() 429 struct Qdisc *child = q->qdisc; in sfb_dequeue() 432 skb = child->dequeue(q->qdisc); in sfb_dequeue() 447 struct Qdisc *child = q->qdisc; in sfb_peek() 458 qdisc_reset(q->qdisc); in sfb_reset() 472 qdisc_destroy(q->qdisc); in sfb_destroy() 524 qdisc_tree_reduce_backlog(q->qdisc, q->qdisc->q.qlen, in sfb_change() 525 q->qdisc->qstats.backlog); in sfb_change() 526 qdisc_destroy(q->qdisc); 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() 850 unsigned int len = cl->qdisc->q.qlen; in hfsc_purge_queue() 851 unsigned int backlog = cl->qdisc->qstats.backlog; in hfsc_purge_queue() 853 qdisc_reset(cl->qdisc); in hfsc_purge_queue() 854 qdisc_tree_reduce_backlog(cl->qdisc, len, backlog); in hfsc_purge_queue() 993 if (cl->qdisc->q.qlen != 0) { in hfsc_change_class() 994 int len = qdisc_peek_len(cl->qdisc); in hfsc_change_class() 1065 cl->qdisc = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, in hfsc_change_class() 1067 if (cl->qdisc == NULL) in hfsc_change_class() [all …]
|
D | sch_prio.c | 75 struct Qdisc *qdisc; in prio_enqueue() local 78 qdisc = prio_classify(skb, sch, &ret); in prio_enqueue() 80 if (qdisc == NULL) { in prio_enqueue() 89 ret = qdisc_enqueue(skb, qdisc, to_free); in prio_enqueue() 106 struct Qdisc *qdisc = q->queues[prio]; in prio_peek() local 107 struct sk_buff *skb = qdisc->ops->peek(qdisc); in prio_peek() 120 struct Qdisc *qdisc = q->queues[prio]; in prio_dequeue() local 121 struct sk_buff *skb = qdisc_dequeue_peeked(qdisc); in prio_dequeue()
|
D | sch_netem.c | 81 struct Qdisc *qdisc; member 678 if (q->qdisc) { in netem_dequeue() 683 err = qdisc_enqueue(skb, q->qdisc, &to_free); in netem_dequeue() 696 if (q->qdisc) { in netem_dequeue() 697 skb = q->qdisc->ops->dequeue(q->qdisc); in netem_dequeue() 707 if (q->qdisc) { in netem_dequeue() 708 skb = q->qdisc->ops->dequeue(q->qdisc); in netem_dequeue() 721 if (q->qdisc) in netem_reset() 722 qdisc_reset(q->qdisc); in netem_reset() 1034 if (q->qdisc) in netem_destroy() [all …]
|
/Linux-v4.19/include/net/ |
D | sch_generic.h | 110 static inline void qdisc_refcount_inc(struct Qdisc *qdisc) in qdisc_refcount_inc() argument 112 if (qdisc->flags & TCQ_F_BUILTIN) in qdisc_refcount_inc() 114 refcount_inc(&qdisc->refcnt); in qdisc_refcount_inc() 117 static inline bool qdisc_is_running(struct Qdisc *qdisc) in qdisc_is_running() argument 119 if (qdisc->flags & TCQ_F_NOLOCK) in qdisc_is_running() 120 return spin_is_locked(&qdisc->seqlock); in qdisc_is_running() 121 return (raw_read_seqcount(&qdisc->running) & 1) ? true : false; in qdisc_is_running() 124 static inline bool qdisc_run_begin(struct Qdisc *qdisc) in qdisc_run_begin() argument 126 if (qdisc->flags & TCQ_F_NOLOCK) { in qdisc_run_begin() 127 if (!spin_trylock(&qdisc->seqlock)) in qdisc_run_begin() [all …]
|
D | pkt_sched.h | 72 struct Qdisc *qdisc; member 75 void qdisc_watchdog_init_clockid(struct qdisc_watchdog *wd, struct Qdisc *qdisc, 77 void qdisc_watchdog_init(struct qdisc_watchdog *wd, struct Qdisc *qdisc); 110 void qdisc_warn_nonwc(const char *txt, struct Qdisc *qdisc);
|
/Linux-v4.19/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-v4.19/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-v4.19/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 | 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
|
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 | 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
|
/Linux-v4.19/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 | 42 tc qdisc add dev $h1 clsact 49 tc qdisc del dev $h1 clsact 56 tc qdisc add dev $h2 clsact 63 tc qdisc del dev $h2 clsact
|
D | qos_dscp_router.sh | 58 tc qdisc add dev $h1 clsact 67 tc qdisc del dev $h1 clsact 74 tc qdisc add dev $h2 clsact 83 tc qdisc del dev $h2 clsact
|
/Linux-v4.19/samples/bpf/ |
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
|