Lines Matching refs:q

40 static u16 calc_new_high_prio(const struct skbprio_sched_data *q)  in calc_new_high_prio()  argument
44 for (prio = q->highest_prio - 1; prio >= q->lowest_prio; prio--) { in calc_new_high_prio()
45 if (!skb_queue_empty(&q->qdiscs[prio])) in calc_new_high_prio()
53 static u16 calc_new_low_prio(const struct skbprio_sched_data *q) in calc_new_low_prio() argument
57 for (prio = q->lowest_prio + 1; prio <= q->highest_prio; prio++) { in calc_new_low_prio()
58 if (!skb_queue_empty(&q->qdiscs[prio])) in calc_new_low_prio()
72 struct skbprio_sched_data *q = qdisc_priv(sch); in skbprio_enqueue() local
81 qdisc = &q->qdiscs[prio]; in skbprio_enqueue()
82 if (sch->q.qlen < sch->limit) { in skbprio_enqueue()
85 q->qstats[prio].backlog += qdisc_pkt_len(skb); in skbprio_enqueue()
88 if (prio > q->highest_prio) in skbprio_enqueue()
89 q->highest_prio = prio; in skbprio_enqueue()
91 if (prio < q->lowest_prio) in skbprio_enqueue()
92 q->lowest_prio = prio; in skbprio_enqueue()
94 sch->q.qlen++; in skbprio_enqueue()
99 lp = q->lowest_prio; in skbprio_enqueue()
101 q->qstats[prio].drops++; in skbprio_enqueue()
102 q->qstats[prio].overlimits++; in skbprio_enqueue()
108 q->qstats[prio].backlog += qdisc_pkt_len(skb); in skbprio_enqueue()
111 lp_qdisc = &q->qdiscs[lp]; in skbprio_enqueue()
117 q->qstats[lp].backlog -= qdisc_pkt_len(to_drop); in skbprio_enqueue()
118 q->qstats[lp].drops++; in skbprio_enqueue()
119 q->qstats[lp].overlimits++; in skbprio_enqueue()
123 if (q->lowest_prio == q->highest_prio) { in skbprio_enqueue()
125 BUG_ON(sch->q.qlen != 1); in skbprio_enqueue()
126 q->lowest_prio = prio; in skbprio_enqueue()
127 q->highest_prio = prio; in skbprio_enqueue()
129 q->lowest_prio = calc_new_low_prio(q); in skbprio_enqueue()
133 if (prio > q->highest_prio) in skbprio_enqueue()
134 q->highest_prio = prio; in skbprio_enqueue()
141 struct skbprio_sched_data *q = qdisc_priv(sch); in skbprio_dequeue() local
142 struct sk_buff_head *hpq = &q->qdiscs[q->highest_prio]; in skbprio_dequeue()
148 sch->q.qlen--; in skbprio_dequeue()
152 q->qstats[q->highest_prio].backlog -= qdisc_pkt_len(skb); in skbprio_dequeue()
156 if (q->lowest_prio == q->highest_prio) { in skbprio_dequeue()
157 BUG_ON(sch->q.qlen); in skbprio_dequeue()
158 q->highest_prio = 0; in skbprio_dequeue()
159 q->lowest_prio = SKBPRIO_MAX_PRIORITY - 1; in skbprio_dequeue()
161 q->highest_prio = calc_new_high_prio(q); in skbprio_dequeue()
182 struct skbprio_sched_data *q = qdisc_priv(sch); in skbprio_init() local
187 __skb_queue_head_init(&q->qdiscs[prio]); in skbprio_init()
189 memset(&q->qstats, 0, sizeof(q->qstats)); in skbprio_init()
190 q->highest_prio = 0; in skbprio_init()
191 q->lowest_prio = SKBPRIO_MAX_PRIORITY - 1; in skbprio_init()
213 struct skbprio_sched_data *q = qdisc_priv(sch); in skbprio_reset() local
217 __skb_queue_purge(&q->qdiscs[prio]); in skbprio_reset()
219 memset(&q->qstats, 0, sizeof(q->qstats)); in skbprio_reset()
220 q->highest_prio = 0; in skbprio_reset()
221 q->lowest_prio = SKBPRIO_MAX_PRIORITY - 1; in skbprio_reset()
226 struct skbprio_sched_data *q = qdisc_priv(sch); in skbprio_destroy() local
230 __skb_queue_purge(&q->qdiscs[prio]); in skbprio_destroy()
253 struct skbprio_sched_data *q = qdisc_priv(sch); in skbprio_dump_class_stats() local
254 if (gnet_stats_copy_queue(d, NULL, &q->qstats[cl - 1], in skbprio_dump_class_stats()
255 q->qstats[cl - 1].qlen) < 0) in skbprio_dump_class_stats()