Lines Matching refs:q

44 static u16 calc_new_high_prio(const struct skbprio_sched_data *q)  in calc_new_high_prio()  argument
48 for (prio = q->highest_prio - 1; prio >= q->lowest_prio; prio--) { in calc_new_high_prio()
49 if (!skb_queue_empty(&q->qdiscs[prio])) in calc_new_high_prio()
57 static u16 calc_new_low_prio(const struct skbprio_sched_data *q) in calc_new_low_prio() argument
61 for (prio = q->lowest_prio + 1; prio <= q->highest_prio; prio++) { in calc_new_low_prio()
62 if (!skb_queue_empty(&q->qdiscs[prio])) in calc_new_low_prio()
76 struct skbprio_sched_data *q = qdisc_priv(sch); in skbprio_enqueue() local
85 qdisc = &q->qdiscs[prio]; in skbprio_enqueue()
86 if (sch->q.qlen < sch->limit) { in skbprio_enqueue()
89 q->qstats[prio].backlog += qdisc_pkt_len(skb); in skbprio_enqueue()
92 if (prio > q->highest_prio) in skbprio_enqueue()
93 q->highest_prio = prio; in skbprio_enqueue()
95 if (prio < q->lowest_prio) in skbprio_enqueue()
96 q->lowest_prio = prio; in skbprio_enqueue()
98 sch->q.qlen++; in skbprio_enqueue()
103 lp = q->lowest_prio; in skbprio_enqueue()
105 q->qstats[prio].drops++; in skbprio_enqueue()
106 q->qstats[prio].overlimits++; in skbprio_enqueue()
112 q->qstats[prio].backlog += qdisc_pkt_len(skb); in skbprio_enqueue()
115 lp_qdisc = &q->qdiscs[lp]; in skbprio_enqueue()
121 q->qstats[lp].backlog -= qdisc_pkt_len(to_drop); in skbprio_enqueue()
122 q->qstats[lp].drops++; in skbprio_enqueue()
123 q->qstats[lp].overlimits++; in skbprio_enqueue()
127 if (q->lowest_prio == q->highest_prio) { in skbprio_enqueue()
129 BUG_ON(sch->q.qlen != 1); in skbprio_enqueue()
130 q->lowest_prio = prio; in skbprio_enqueue()
131 q->highest_prio = prio; in skbprio_enqueue()
133 q->lowest_prio = calc_new_low_prio(q); in skbprio_enqueue()
137 if (prio > q->highest_prio) in skbprio_enqueue()
138 q->highest_prio = prio; in skbprio_enqueue()
145 struct skbprio_sched_data *q = qdisc_priv(sch); in skbprio_dequeue() local
146 struct sk_buff_head *hpq = &q->qdiscs[q->highest_prio]; in skbprio_dequeue()
152 sch->q.qlen--; in skbprio_dequeue()
156 q->qstats[q->highest_prio].backlog -= qdisc_pkt_len(skb); in skbprio_dequeue()
160 if (q->lowest_prio == q->highest_prio) { in skbprio_dequeue()
161 BUG_ON(sch->q.qlen); in skbprio_dequeue()
162 q->highest_prio = 0; in skbprio_dequeue()
163 q->lowest_prio = SKBPRIO_MAX_PRIORITY - 1; in skbprio_dequeue()
165 q->highest_prio = calc_new_high_prio(q); in skbprio_dequeue()
183 struct skbprio_sched_data *q = qdisc_priv(sch); in skbprio_init() local
188 __skb_queue_head_init(&q->qdiscs[prio]); in skbprio_init()
190 memset(&q->qstats, 0, sizeof(q->qstats)); in skbprio_init()
191 q->highest_prio = 0; in skbprio_init()
192 q->lowest_prio = SKBPRIO_MAX_PRIORITY - 1; in skbprio_init()
214 struct skbprio_sched_data *q = qdisc_priv(sch); in skbprio_reset() local
218 sch->q.qlen = 0; in skbprio_reset()
221 __skb_queue_purge(&q->qdiscs[prio]); in skbprio_reset()
223 memset(&q->qstats, 0, sizeof(q->qstats)); in skbprio_reset()
224 q->highest_prio = 0; in skbprio_reset()
225 q->lowest_prio = SKBPRIO_MAX_PRIORITY - 1; in skbprio_reset()
230 struct skbprio_sched_data *q = qdisc_priv(sch); in skbprio_destroy() local
234 __skb_queue_purge(&q->qdiscs[prio]); in skbprio_destroy()
257 struct skbprio_sched_data *q = qdisc_priv(sch); in skbprio_dump_class_stats() local
258 if (gnet_stats_copy_queue(d, NULL, &q->qstats[cl - 1], in skbprio_dump_class_stats()
259 q->qstats[cl - 1].qlen) < 0) in skbprio_dump_class_stats()