Lines Matching refs:q

92 	struct ets_sched *q = qdisc_priv(sch);  in ets_class_from_arg()  local
94 return &q->classes[arg - 1]; in ets_class_from_arg()
99 struct ets_sched *q = qdisc_priv(sch); in ets_class_id() local
100 int band = cl - q->classes; in ets_class_id()
108 struct ets_sched *q = qdisc_priv(sch); in ets_offload_change() local
124 qopt.replace_params.bands = q->nbands; in ets_offload_change()
127 q->prio2band, sizeof(q->prio2band)); in ets_offload_change()
129 for (i = 0; i < q->nbands; i++) in ets_offload_change()
130 q_sum += q->classes[i].quantum; in ets_offload_change()
132 for (i = 0; i < q->nbands; i++) { in ets_offload_change()
133 quantum = q->classes[i].quantum; in ets_offload_change()
190 static bool ets_class_is_strict(struct ets_sched *q, const struct ets_class *cl) in ets_class_is_strict() argument
192 unsigned int band = cl - q->classes; in ets_class_is_strict()
194 return band < q->nstrict; in ets_class_is_strict()
202 struct ets_sched *q = qdisc_priv(sch); in ets_class_change() local
229 if (ets_class_is_strict(q, cl)) { in ets_class_change()
277 struct ets_sched *q = qdisc_priv(sch); in ets_class_find() local
279 if (band - 1 >= q->nbands) in ets_class_find()
287 struct ets_sched *q = qdisc_priv(sch); in ets_class_qlen_notify() local
293 if (!ets_class_is_strict(q, cl) && sch->q.qlen) in ets_class_qlen_notify()
301 struct ets_sched *q = qdisc_priv(sch); in ets_class_dump() local
311 if (!ets_class_is_strict(q, cl)) { in ets_class_dump()
337 struct ets_sched *q = qdisc_priv(sch); in ets_qdisc_walk() local
343 for (i = 0; i < q->nbands; i++) { in ets_qdisc_walk()
353 struct ets_sched *q = qdisc_priv(sch); in ets_qdisc_tcf_block() local
360 return q->block; in ets_qdisc_tcf_block()
376 struct ets_sched *q = qdisc_priv(sch); in ets_classify() local
384 fl = rcu_dereference_bh(q->filter_list); in ets_classify()
400 return &q->classes[q->prio2band[band & TC_PRIO_MAX]]; in ets_classify()
405 if (band >= q->nbands) in ets_classify()
406 return &q->classes[q->prio2band[0]]; in ets_classify()
407 return &q->classes[band]; in ets_classify()
414 struct ets_sched *q = qdisc_priv(sch); in ets_qdisc_enqueue() local
427 first = !cl->qdisc->q.qlen; in ets_qdisc_enqueue()
437 if (first && !ets_class_is_strict(q, cl)) { in ets_qdisc_enqueue()
438 list_add_tail(&cl->alist, &q->active); in ets_qdisc_enqueue()
443 sch->q.qlen++; in ets_qdisc_enqueue()
452 sch->q.qlen--; in ets_qdisc_dequeue_skb()
458 struct ets_sched *q = qdisc_priv(sch); in ets_qdisc_dequeue() local
465 for (band = 0; band < q->nstrict; band++) { in ets_qdisc_dequeue()
466 cl = &q->classes[band]; in ets_qdisc_dequeue()
472 if (list_empty(&q->active)) in ets_qdisc_dequeue()
475 cl = list_first_entry(&q->active, struct ets_class, alist); in ets_qdisc_dequeue()
488 if (cl->qdisc->q.qlen == 0) in ets_qdisc_dequeue()
494 list_move_tail(&cl->alist, &q->active); in ets_qdisc_dequeue()
581 struct ets_sched *q = qdisc_priv(sch); in ets_qdisc_change() local
583 unsigned int oldbands = q->nbands; in ets_qdisc_change()
638 ets_class_id(sch, &q->classes[i]), in ets_qdisc_change()
649 q->nbands = nbands; in ets_qdisc_change()
650 for (i = nstrict; i < q->nstrict; i++) { in ets_qdisc_change()
651 if (q->classes[i].qdisc->q.qlen) { in ets_qdisc_change()
652 list_add_tail(&q->classes[i].alist, &q->active); in ets_qdisc_change()
653 q->classes[i].deficit = quanta[i]; in ets_qdisc_change()
656 for (i = q->nbands; i < oldbands; i++) { in ets_qdisc_change()
657 if (i >= q->nstrict && q->classes[i].qdisc->q.qlen) in ets_qdisc_change()
658 list_del(&q->classes[i].alist); in ets_qdisc_change()
659 qdisc_tree_flush_backlog(q->classes[i].qdisc); in ets_qdisc_change()
661 q->nstrict = nstrict; in ets_qdisc_change()
662 memcpy(q->prio2band, priomap, sizeof(priomap)); in ets_qdisc_change()
664 for (i = 0; i < q->nbands; i++) in ets_qdisc_change()
665 q->classes[i].quantum = quanta[i]; in ets_qdisc_change()
667 for (i = oldbands; i < q->nbands; i++) { in ets_qdisc_change()
668 q->classes[i].qdisc = queues[i]; in ets_qdisc_change()
669 if (q->classes[i].qdisc != &noop_qdisc) in ets_qdisc_change()
670 qdisc_hash_add(q->classes[i].qdisc, true); in ets_qdisc_change()
676 for (i = q->nbands; i < oldbands; i++) { in ets_qdisc_change()
677 qdisc_put(q->classes[i].qdisc); in ets_qdisc_change()
678 q->classes[i].qdisc = NULL; in ets_qdisc_change()
679 q->classes[i].quantum = 0; in ets_qdisc_change()
680 q->classes[i].deficit = 0; in ets_qdisc_change()
681 gnet_stats_basic_sync_init(&q->classes[i].bstats); in ets_qdisc_change()
682 memset(&q->classes[i].qstats, 0, sizeof(q->classes[i].qstats)); in ets_qdisc_change()
690 struct ets_sched *q = qdisc_priv(sch); in ets_qdisc_init() local
696 err = tcf_block_get(&q->block, &q->filter_list, sch, extack); in ets_qdisc_init()
700 INIT_LIST_HEAD(&q->active); in ets_qdisc_init()
702 INIT_LIST_HEAD(&q->classes[i].alist); in ets_qdisc_init()
709 struct ets_sched *q = qdisc_priv(sch); in ets_qdisc_reset() local
712 for (band = q->nstrict; band < q->nbands; band++) { in ets_qdisc_reset()
713 if (q->classes[band].qdisc->q.qlen) in ets_qdisc_reset()
714 list_del(&q->classes[band].alist); in ets_qdisc_reset()
716 for (band = 0; band < q->nbands; band++) in ets_qdisc_reset()
717 qdisc_reset(q->classes[band].qdisc); in ets_qdisc_reset()
722 struct ets_sched *q = qdisc_priv(sch); in ets_qdisc_destroy() local
726 tcf_block_put(q->block); in ets_qdisc_destroy()
727 for (band = 0; band < q->nbands; band++) in ets_qdisc_destroy()
728 qdisc_put(q->classes[band].qdisc); in ets_qdisc_destroy()
733 struct ets_sched *q = qdisc_priv(sch); in ets_qdisc_dump() local
748 if (nla_put_u8(skb, TCA_ETS_NBANDS, q->nbands)) in ets_qdisc_dump()
751 if (q->nstrict && in ets_qdisc_dump()
752 nla_put_u8(skb, TCA_ETS_NSTRICT, q->nstrict)) in ets_qdisc_dump()
755 if (q->nbands > q->nstrict) { in ets_qdisc_dump()
760 for (band = q->nstrict; band < q->nbands; band++) { in ets_qdisc_dump()
762 q->classes[band].quantum)) in ets_qdisc_dump()
774 if (nla_put_u8(skb, TCA_ETS_PRIOMAP_BAND, q->prio2band[prio])) in ets_qdisc_dump()