Lines Matching refs:flow

86 struct flow {
93 SIMPLEQ_ENTRY(flow) flowentry;
95 SIMPLEQ_HEAD(flowq, flow);
101 struct flow *flows;
512 static inline struct flow *
528 struct flow *flow;
533 flow = classify_flow(fqc, m);
534 if (flow == NULL)
538 codel_enqueue(&flow->cd, now, m);
541 if (!flow->active) {
542 SIMPLEQ_INSERT_TAIL(&fqc->newq, flow, flowentry);
543 flow->deficit = fqc->quantum;
544 flow->active = 1;
545 DPRINTF("%s: flow %u active deficit %d\n", __func__,
546 flow->id, flow->deficit);
556 flow = &fqc->flows[i];
557 backlog = codel_backlog(&flow->cd);
561 KASSERT(flow != NULL);
562 m = codel_commit(&flow->cd, NULL);
569 DPRINTF("%s: dropping from flow %u\n", __func__,
570 flow->id);
589 static inline struct flow *
592 struct flow *flow;
595 while ((flow = SIMPLEQ_FIRST(*fq)) != NULL) {
596 if (flow->deficit <= 0) {
597 flow->deficit += fqc->quantum;
599 SIMPLEQ_INSERT_TAIL(&fqc->oldq, flow,
601 DPRINTF("%s: flow %u deficit %d\n", __func__,
602 flow->id, flow->deficit);
604 return (flow);
611 static inline struct flow *
612 next_flow(struct fqcodel *fqc, struct flow *flow, struct flowq **fq)
618 SIMPLEQ_INSERT_TAIL(&fqc->oldq, flow, flowentry);
619 DPRINTF("%s: flow %u ->oldq deficit %d\n", __func__,
620 flow->id, flow->deficit);
623 flow->active = 0;
624 DPRINTF("%s: flow %u inactive deficit %d\n", __func__,
625 flow->id, flow->deficit);
637 struct flow *flow;
646 for (flow = first_flow(fqc, &fq); flow != NULL;
647 flow = next_flow(fqc, flow, &fq)) {
648 m = codel_dequeue(&flow->cd, &fqc->cparams, now, &ml,
657 flow->deficit -= m->m_pkthdr.len;
658 DPRINTF("%s: flow %u deficit %d\n", __func__,
659 flow->id, flow->deficit);
660 *cookiep = flow;
671 struct flow *flow = cookie;
679 (void)codel_commit(&flow->cd, m);
757 fqc->flows = mallocarray(fqc->nflows, sizeof(struct flow),
785 free(fqc->flows, M_DEVBUF, fqc->nflows * sizeof(struct flow));