Lines Matching defs:fif

204 	struct fairq_if *fif;
206 fif = (how == M_WAITOK) ?
208 if (fif == NULL)
211 bzero(fif, fairq_size);
212 fif->fif_maxpri = -1;
213 fif->fif_ifq = &ifp->if_snd;
215 fif->fif_flags |= FAIRQIFF_ALTQ;
219 if_name(ifp), fairq_style(fif));
222 return (fif);
226 fairq_destroy(struct fairq_if *fif)
228 struct ifclassq *ifq = fif->fif_ifq;
232 err = fairq_destroy_locked(fif);
239 fairq_destroy_locked(struct fairq_if *fif)
241 IFCQ_LOCK_ASSERT_HELD(fif->fif_ifq);
243 (void) fairq_clear_interface(fif);
247 if_name(FAIRQIF_IFP(fif)), fairq_style(fif));
250 zfree(fairq_zone, fif);
260 fairq_clear_interface(struct fairq_if *fif)
265 IFCQ_LOCK_ASSERT_HELD(fif->fif_ifq);
268 for (pri = 0; pri <= fif->fif_maxpri; pri++)
269 if ((cl = fif->fif_classes[pri]) != NULL)
270 fairq_class_destroy(fif, cl);
277 fairq_purge(struct fairq_if *fif)
282 IFCQ_LOCK_ASSERT_HELD(fif->fif_ifq);
284 for (pri = 0; pri <= fif->fif_maxpri; pri++) {
285 if ((cl = fif->fif_classes[pri]) != NULL && cl->cl_head)
286 fairq_purgeq(fif, cl, 0, NULL, NULL);
295 VERIFY(IFCQ_LEN(fif->fif_ifq) == 0);
300 fairq_event(struct fairq_if *fif, cqev_t ev)
305 IFCQ_LOCK_ASSERT_HELD(fif->fif_ifq);
307 for (pri = 0; pri <= fif->fif_maxpri; pri++)
308 if ((cl = fif->fif_classes[pri]) != NULL)
309 fairq_updateq(fif, cl, ev);
313 fairq_add_queue(struct fairq_if *fif, int priority, u_int32_t qlimit,
320 IFCQ_LOCK_ASSERT_HELD(fif->fif_ifq);
327 if (fif->fif_classes[priority] != NULL)
329 if (fairq_clh_to_clp(fif, qid) != NULL)
332 cl = fairq_class_create(fif, priority, qlimit, bandwidth,
344 fairq_class_create(struct fairq_if *fif, int pri, u_int32_t qlimit,
354 IFCQ_LOCK_ASSERT_HELD(fif->fif_ifq);
357 if (fif->fif_flags & FAIRQIFF_ALTQ)
363 if_name(FAIRQIF_IFP(fif)), fairq_style(fif));
371 if_name(FAIRQIF_IFP(fif)), fairq_style(fif));
379 if_name(FAIRQIF_IFP(fif)), fairq_style(fif));
391 if_name(FAIRQIF_IFP(fif)), fairq_style(fif));
397 if_name(FAIRQIF_IFP(fif)), fairq_style(fif), bandwidth);
409 ifq = fif->fif_ifq;
410 ifp = FAIRQIF_IFP(fif);
412 if ((cl = fif->fif_classes[pri]) != NULL) {
415 fairq_purgeq(fif, cl, 0, NULL, NULL);
448 fif->fif_classes[pri] = cl;
450 fif->fif_default = cl;
465 if (pri > fif->fif_maxpri)
466 fif->fif_maxpri = pri;
467 cl->cl_fif = fif;
547 "flags=%b\n", if_name(ifp), fairq_style(fif),
583 fairq_remove_queue(struct fairq_if *fif, u_int32_t qid)
587 IFCQ_LOCK_ASSERT_HELD(fif->fif_ifq);
589 if ((cl = fairq_clh_to_clp(fif, qid)) == NULL)
592 return (fairq_class_destroy(fif, cl));
596 fairq_class_destroy(struct fairq_if *fif, struct fairq_class *cl)
598 struct ifclassq *ifq = fif->fif_ifq;
604 fairq_purgeq(fif, cl, 0, NULL, NULL);
606 fif->fif_classes[cl->cl_pri] = NULL;
607 if (fif->fif_poll_cache == cl)
608 fif->fif_poll_cache = NULL;
609 if (fif->fif_maxpri == cl->cl_pri) {
611 if (fif->fif_classes[pri] != NULL) {
612 fif->fif_maxpri = pri;
616 fif->fif_maxpri = -1;
639 if (fif->fif_default == cl)
640 fif->fif_default = NULL;
644 if_name(FAIRQIF_IFP(fif)), fairq_style(fif),
659 fairq_enqueue(struct fairq_if *fif, struct fairq_class *cl, struct mbuf *m,
662 struct ifclassq *ifq = fif->fif_ifq;
666 VERIFY(cl == NULL || cl->cl_fif == fif);
669 cl = fairq_clh_to_clp(fif, t->pftag_qid);
671 cl = fif->fif_default;
720 fairq_dequeue(struct fairq_if *fif, cqdq_op_t op)
722 struct ifclassq *ifq = fif->fif_ifq;
740 if (fif->fif_poll_cache && op == CLASSQDQ_REMOVE) {
741 best_cl = fif->fif_poll_cache;
743 fif->fif_poll_cache = NULL;
754 for (pri = fif->fif_maxpri; pri >= 0; pri--) {
755 if ((cl = fif->fif_classes[pri]) == NULL)
790 fif->fif_poll_cache = best_cl;
1084 fairq_purgeq(struct fairq_if *fif, struct fairq_class *cl, u_int32_t flow,
1087 struct ifclassq *ifq = fif->fif_ifq;
1139 if_name(FAIRQIF_IFP(fif)), fairq_style(fif),
1152 fairq_updateq(struct fairq_if *fif, struct fairq_class *cl, cqev_t ev)
1154 IFCQ_LOCK_ASSERT_HELD(fif->fif_ifq);
1158 if_name(FAIRQIF_IFP(fif)), fairq_style(fif),
1179 fairq_get_class_stats(struct fairq_if *fif, u_int32_t qid,
1185 IFCQ_LOCK_ASSERT_HELD(fif->fif_ifq);
1187 if ((cl = fairq_clh_to_clp(fif, qid)) == NULL)
1227 fairq_clh_to_clp(struct fairq_if *fif, u_int32_t chandle)
1232 IFCQ_LOCK_ASSERT_HELD(fif->fif_ifq);
1234 for (idx = fif->fif_maxpri; idx >= 0; idx--)
1235 if ((cl = fif->fif_classes[idx]) != NULL &&
1243 fairq_style(struct fairq_if *fif)
1245 return ((fif->fif_flags & FAIRQIFF_ALTQ) ? "ALTQ_FAIRQ" : "FAIRQ");
1258 struct fairq_if *fif = ifq->ifcq_disc;
1262 VERIFY(fif != NULL && ifq->ifcq_type == PKTSCHEDT_FAIRQ);
1264 (void) fairq_destroy_locked(fif);
1279 struct fairq_if *fif = ifq->ifcq_disc;
1287 return (fairq_get_class_stats(fif, ifq->ifcq_disc_slots[slot].qid,