Lines Matching +full:queue +full:- +full:sizes
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
54 * and queue. We don't have a per-flowset structure.
57 * default queue sizes, weights, quantum size, and so on;
61 /* + per-instance parameters, such as timestamps,
66 size_t q_datalen; /* per-queue parameters (e.g. S,F) */
70 * enqueue enqueue packet 'm' on scheduler 's', queue 'q'.
78 * - when a new packet arrives to the scheduler;
79 * - when a scheduler is reconfigured. In this case the
81 * non empty queue (q) and m pointing to the first
82 * mbuf in the queue. For this reason, the function
83 * should internally check for (m != q->mq.head)
88 * XXX what about non work-conserving ?
98 * to create the local queue for !MULTIQUEUE, set V or
102 * extra data in the per-instance area.
109 * new_queue called to set the per-queue parameters,
113 * creating a new queue. In some cases (such as a
115 * with a non empty queue. In this case, the queue
116 * In case of non empty queue, the new_queue callback could
119 * as m the first element in the queue.
121 * free_queue actions related to a queue removal, e.g. undo
122 * all the above. If the queue has data in it, also remove
142 /* run-time fields */
165 * Extract the head of a queue, update stats. Must be the very last
166 * thing done on a dequeue as the queue itself may go away.
174 m = q->mq.head; in dn_dequeue()
179 if (q->fs->aqmfp && q->fs->aqmfp->dequeue ) in dn_dequeue()
180 return q->fs->aqmfp->dequeue(q); in dn_dequeue()
182 q->mq.head = m->m_nextpkt; in dn_dequeue()
183 q->mq.count--; in dn_dequeue()
185 /* Update stats for the queue */ in dn_dequeue()
186 q->ni.length--; in dn_dequeue()
187 q->ni.len_bytes -= m->m_pkthdr.len; in dn_dequeue()
188 if (q->_si) { in dn_dequeue()
189 q->_si->ni.length--; in dn_dequeue()
190 q->_si->ni.len_bytes -= m->m_pkthdr.len; in dn_dequeue()
192 if (q->ni.length == 0) /* queue is now idle */ in dn_dequeue()
193 q->q_time = V_dn_cfg.curr_time; in dn_dequeue()
194 if (m->m_pkthdr.rcvif != NULL && in dn_dequeue()