if (flags & QFCF_SFB)
cl->cl_qflags |= SFBF_FLOWCTL;
}
+ if (flags & QFCF_DELAYBASED) {
+ if (flags & QFCF_SFB)
+ cl->cl_qflags |= SFBF_DELAYBASED;
+ }
if (flags & QFCF_CLEARDSCP) {
if (flags & QFCF_RIO)
cl->cl_qflags |= RIOF_CLEARDSCP;
#endif /* QFQ_DEBUG */
IFCQ_DEC_LEN(ifq);
+ IFCQ_DEC_BYTES(ifq, len);
if (qempty(&cl->cl_q))
cl->cl_period++;
PKTCNTR_ADD(&cl->cl_xmitcnt, 1, len);
}
}
IFCQ_INC_LEN(ifq);
+ IFCQ_INC_BYTES(ifq, len);
#if QFQ_DEBUG
qif->qif_queued++;
qflags |= QFCF_ECN;
if (flags & PKTSCHEDF_QALG_FLOWCTL)
qflags |= QFCF_FLOWCTL;
+ if (flags & PKTSCHEDF_QALG_DELAYBASED)
+ qflags |= QFCF_DELAYBASED;
qif = qfq_alloc(ifp, M_WAITOK, FALSE);
if (qif == NULL)
err = ifclassq_attach(ifq, PKTSCHEDT_QFQ, qif,
qfq_enqueue_ifclassq, qfq_dequeue_ifclassq, NULL,
- qfq_request_ifclassq);
+ NULL, qfq_request_ifclassq);
/* cache these for faster lookup */
if (err == 0) {