Lines Matching refs:queue

117           wfq *queue;  in wfq_ifattach()  local
138 queue = malloc(sizeof(wfq) * DEFAULT_QSIZE, M_DEVBUF, M_WAITOK|M_ZERO); in wfq_ifattach()
139 if (queue == NULL) { in wfq_ifattach()
150 new_wfqp->queue = queue; in wfq_ifattach()
154 for (i = 0; i < new_wfqp->nums; i++, queue++) { in wfq_ifattach()
155 queue->next = queue->prev = NULL; in wfq_ifattach()
156 queue->head = queue->tail = NULL; in wfq_ifattach()
157 queue->bytes = queue->quota = 0; in wfq_ifattach()
158 queue->weight = 100; in wfq_ifattach()
167 free(queue, M_DEVBUF); in wfq_ifattach()
209 free(wfqp->queue, M_DEVBUF); in wfq_ifdetach()
247 return (&wfqp->queue[(*wfqp->hash_func)(&flow, wfqp->nums)]); in wfq_classify()
254 wfq *queue; in wfq_ifenqueue() local
261 if ((queue = mp->m_pkthdr.pattr_class) == NULL) in wfq_ifenqueue()
262 queue = &wfqp->queue[0]; in wfq_ifenqueue()
264 if (queue->tail == NULL) in wfq_ifenqueue()
265 queue->head = mp; in wfq_ifenqueue()
267 queue->tail->m_nextpkt = mp; in wfq_ifenqueue()
268 queue->tail = mp; in wfq_ifenqueue()
270 queue->bytes += byte; in wfq_ifenqueue()
274 if (queue->next == NULL) { in wfq_ifenqueue()
278 queue->next = queue->prev = queue; in wfq_ifenqueue()
279 wfqp->rrp = queue; in wfq_ifenqueue()
280 WFQ_ADDQUOTA(queue); in wfq_ifenqueue()
283 queue->prev = wfqp->rrp->prev; in wfq_ifenqueue()
284 wfqp->rrp->prev->next = queue; in wfq_ifenqueue()
285 wfqp->rrp->prev = queue; in wfq_ifenqueue()
286 queue->next = wfqp->rrp; in wfq_ifenqueue()
287 queue->quota = 0; in wfq_ifenqueue()
307 if(drop_queue == queue) in wfq_ifenqueue()
418 wfq *queue, *max_queue = NULL; in wfq_maxqueue() local
420 if((queue = wfqp->rrp) == NULL) in wfq_maxqueue()
424 if ((byte = queue->bytes * 100 / queue->weight) > max_byte) { in wfq_maxqueue()
425 max_queue = queue; in wfq_maxqueue()
428 } while ((queue = queue->next) != wfqp->rrp); in wfq_maxqueue()
438 wfq *queue; in wfq_ifdequeue() local
444 if ((wfqp->bytes == 0) || ((queue = wfqp->rrp) == NULL)) in wfq_ifdequeue()
449 if (queue->quota > 0) { in wfq_ifdequeue()
450 if (queue->bytes <= 0) { in wfq_ifdequeue()
453 if (queue->next == queue){ in wfq_ifdequeue()
457 queue->next = queue->prev = NULL; in wfq_ifdequeue()
461 queue->prev->next = queue->next; in wfq_ifdequeue()
462 queue->next->prev = queue->prev; in wfq_ifdequeue()
465 wfqp->rrp = queue->next; in wfq_ifdequeue()
466 queue->next = queue->prev = NULL; in wfq_ifdequeue()
467 queue = wfqp->rrp; in wfq_ifdequeue()
468 WFQ_ADDQUOTA(queue); in wfq_ifdequeue()
474 mp = queue->head; in wfq_ifdequeue()
476 if((queue->head = mp->m_nextpkt) == NULL) in wfq_ifdequeue()
477 queue->tail = NULL; in wfq_ifdequeue()
480 queue->quota -= byte; in wfq_ifdequeue()
481 queue->bytes -= byte; in wfq_ifdequeue()
482 PKTCNTR_ADD(&queue->xmit_cnt, byte); in wfq_ifdequeue()
495 queue = wfqp->rrp = queue->next; in wfq_ifdequeue()
496 WFQ_ADDQUOTA(queue); in wfq_ifdequeue()
517 wfq *queue; in wfq_setweight() local
529 queue = &wfqp->queue[swp->qid]; in wfq_setweight()
530 old = queue->weight; in wfq_setweight()
531 queue->weight = swp->weight; in wfq_setweight()
541 wfq *queue; in wfq_getstats() local
550 queue = &wfqp->queue[gsp->qid]; in wfq_getstats()
553 stats->bytes = queue->bytes; in wfq_getstats()
554 stats->weight = queue->weight; in wfq_getstats()
555 stats->xmit_cnt = queue->xmit_cnt; in wfq_getstats()
556 stats->drop_cnt = queue->drop_cnt; in wfq_getstats()
566 wfq *queue; in wfq_config() local
578 free(wfqp->queue, M_DEVBUF); in wfq_config()
580 queue = malloc(sizeof(wfq) * cf->nqueues, M_DEVBUF, in wfq_config()
582 if (queue == NULL) in wfq_config()
588 wfqp->queue = queue; in wfq_config()
589 for (i = 0; i < wfqp->nums; i++, queue++) { in wfq_config()
590 queue->next = queue->prev = NULL; in wfq_config()
591 queue->head = queue->tail = NULL; in wfq_config()
592 queue->bytes = queue->quota = 0; in wfq_config()
593 queue->weight = 100; in wfq_config()