Lines Matching defs:cbqp

108 cbq_class_destroy(cbq_state_t *cbqp, struct rm_class *cl)
113 rmc_delete_class(&cbqp->ifnp, cl);
119 if (cbqp->cbq_class_tbl[i] == cl)
120 cbqp->cbq_class_tbl[i] = NULL;
122 if (cl == cbqp->ifnp.root_)
123 cbqp->ifnp.root_ = NULL;
124 if (cl == cbqp->ifnp.default_)
125 cbqp->ifnp.default_ = NULL;
127 if (cl == cbqp->ifnp.ctl_)
128 cbqp->ifnp.ctl_ = NULL;
135 clh_to_clp(cbq_state_t *cbqp, u_int32_t chandle)
147 if ((cl = cbqp->cbq_class_tbl[i]) != NULL &&
151 if ((cl = cbqp->cbq_class_tbl[i]) != NULL &&
158 cbq_clear_interface(cbq_state_t *cbqp)
165 acc_discard_filters(&cbqp->cbq_classifier, NULL, 1);
172 if ((cl = cbqp->cbq_class_tbl[i]) != NULL) {
176 cbq_class_destroy(cbqp, cl);
177 cbqp->cbq_class_tbl[i] = NULL;
178 if (cl == cbqp->ifnp.root_)
179 cbqp->ifnp.root_ = NULL;
180 if (cl == cbqp->ifnp.default_)
181 cbqp->ifnp.default_ = NULL;
183 if (cl == cbqp->ifnp.ctl_)
184 cbqp->ifnp.ctl_ = NULL;
197 cbq_state_t *cbqp = (cbq_state_t *)ifq->altq_disc;
203 cbq_purge(cbqp);
264 cbq_state_t *cbqp;
273 cbqp = malloc(sizeof(cbq_state_t), M_DEVBUF, M_NOWAIT | M_ZERO);
274 if (cbqp == NULL)
276 CALLOUT_INIT(&cbqp->cbq_callout);
277 cbqp->cbq_qlen = 0;
278 cbqp->ifnp.ifq_ = &ifp->if_snd; /* keep the ifq */
281 a->altq_disc = cbqp;
289 cbq_state_t *cbqp;
291 if ((cbqp = a->altq_disc) == NULL)
295 cbq_clear_interface(cbqp);
297 if (cbqp->ifnp.default_)
298 cbq_class_destroy(cbqp, cbqp->ifnp.default_);
299 if (cbqp->ifnp.root_)
300 cbq_class_destroy(cbqp, cbqp->ifnp.root_);
303 free(cbqp, M_DEVBUF);
312 cbq_state_t *cbqp;
317 if ((cbqp = a->altq_disc) == NULL)
328 if (cbqp->cbq_class_tbl[i] != NULL) {
330 if (cbqp->cbq_class_tbl[i] == NULL)
342 parent = clh_to_clp(cbqp, a->parent_qid);
369 if (cbqp->ifnp.root_)
373 if (cbqp->ifnp.default_)
390 rmc_init(cbqp->ifnp.ifq_, &cbqp->ifnp, opts->ns_per_byte,
394 cl = cbqp->ifnp.root_;
397 &cbqp->ifnp, opts->ns_per_byte,
410 cbqp->cbq_class_tbl[i] = cl;
413 cbqp->ifnp.default_ = cl;
422 cbq_state_t *cbqp;
425 if ((cbqp = a->altq_disc) == NULL)
428 if ((cl = clh_to_clp(cbqp, a->qid)) == NULL)
436 rmc_delete_class(&cbqp->ifnp, cl);
442 if (cbqp->cbq_class_tbl[i] == cl) {
443 cbqp->cbq_class_tbl[i] = NULL;
444 if (cl == cbqp->ifnp.root_)
445 cbqp->ifnp.root_ = NULL;
446 if (cl == cbqp->ifnp.default_)
447 cbqp->ifnp.default_ = NULL;
457 cbq_state_t *cbqp;
462 if ((cbqp = altq_lookup(a->ifname, ALTQT_CBQ)) == NULL)
465 if ((cl = clh_to_clp(cbqp, a->qid)) == NULL)
497 cbq_state_t *cbqp = (cbq_state_t *)ifq->altq_disc;
514 cl = clh_to_clp(cbqp, t->qid);
520 cl = cbqp->ifnp.default_;
540 ++cbqp->cbq_qlen;
548 cbq_state_t *cbqp = (cbq_state_t *)ifq->altq_disc;
553 m = rmc_dequeue_next(&cbqp->ifnp, op);
556 --cbqp->cbq_qlen; /* decrement # of packets in cbq */
560 rmc_update_class_util(&cbqp->ifnp);
576 cbq_state_t *cbqp;
585 if ((cbqp = (cbq_state_t *)ifq->altq_disc) == NULL)
591 cbqp->cbq_qlen > 0 && (ifp->if_drv_flags & IFF_DRV_OACTIVE) == 0) {
598 static void cbq_purge(cbq_state_t *cbqp)
604 if ((cl = cbqp->cbq_class_tbl[i]) != NULL)
606 if (ALTQ_IS_ENABLED(cbqp->ifnp.ifq_))
607 cbqp->ifnp.ifq_->ifq_len = 0;
617 cbq_state_t *cbqp;
620 if ((cbqp = altq_lookup(ifacename, ALTQT_CBQ)) == NULL)
629 parent = clh_to_clp(cbqp, acp->cbq_class.parent_class_handle);
630 borrow = clh_to_clp(cbqp, acp->cbq_class.borrow_class_handle);
646 return cbq_class_create(cbqp, acp, parent, borrow);
655 cbq_state_t *cbqp;
658 if ((cbqp = altq_lookup(ifacename, ALTQT_CBQ)) == NULL)
661 if ((cl = clh_to_clp(cbqp, dcp->cbq_class_handle)) == NULL)
669 acc_discard_filters(&cbqp->cbq_classifier, cl, 0);
671 return cbq_class_destroy(cbqp, cl);
680 cbq_state_t *cbqp;
683 if ((cbqp = altq_lookup(ifacename, ALTQT_CBQ)) == NULL)
687 if ((cl = clh_to_clp(cbqp, acp->cbq_class_handle)) == NULL)
700 * cbq_class_create(cbq_mod_state_t *cbqp, struct cbq_add_class *acp,
709 cbq_class_create(cbqp, acp, parent, borrow)
710 cbq_state_t *cbqp;
723 if (cbqp->cbq_class_tbl[i] == NULL)
734 rmc_init(cbqp->ifnp.ifq_, &cbqp->ifnp, spec->nano_sec_per_byte,
738 cl = cbqp->ifnp.root_;
741 &cbqp->ifnp, spec->nano_sec_per_byte,
756 cbqp->cbq_class_tbl[i] = cl;
759 cbqp->ifnp.default_ = cl;
761 cbqp->ifnp.ctl_ = cl;
771 cbq_state_t *cbqp;
775 if ((cbqp = altq_lookup(ifacename, ALTQT_CBQ)) == NULL)
779 if ((cl = clh_to_clp(cbqp, afp->cbq_class_handle)) == NULL)
782 return acc_add_filter(&cbqp->cbq_classifier, &afp->cbq_filter,
791 cbq_state_t *cbqp;
794 if ((cbqp = altq_lookup(ifacename, ALTQT_CBQ)) == NULL)
797 return acc_delete_filter(&cbqp->cbq_classifier,
810 cbq_state_t *cbqp;
813 if ((cbqp = altq_lookup(ifacename, ALTQT_CBQ)) == NULL)
816 return cbq_clear_interface(cbqp);
836 cbq_state_t *cbqp;
840 if ((cbqp = altq_lookup(ifacename, ALTQT_CBQ)) == NULL)
845 if (cbqp->ifnp.root_ == NULL || cbqp->ifnp.default_ == NULL ||
846 cbqp->ifnp.ctl_ == NULL) {
847 if (cbqp->ifnp.root_ == NULL)
849 if (cbqp->ifnp.default_ == NULL)
851 if (cbqp->ifnp.ctl_ == NULL)
854 } else if ((error = altq_enable(cbqp->ifnp.ifq_)) == 0) {
855 cbqp->cbq_qlen = 0;
860 error = altq_disable(cbqp->ifnp.ifq_);
872 cbq_state_t *cbqp;
881 if ((cbqp = altq_lookup(ifacename, ALTQT_CBQ)) == NULL)
887 while ((cl = cbqp->cbq_class_tbl[i]) == NULL)
952 cbq_state_t *cbqp;
955 if ((cbqp = altq_lookup(ifacename, ALTQT_CBQ)) == NULL)
960 cbq_clear_interface(cbqp);
963 (void)altq_detach(cbqp->ifnp.ifq_);
966 if (cbq_list == cbqp)
967 cbq_list = cbqp->cbq_next;
972 if (cp->cbq_next == cbqp) {
973 cp->cbq_next = cbqp->cbq_next;
980 free(cbqp, M_DEVBUF);