Lines Matching defs:cbqp

113 cbq_class_destroy(cbq_state_t *cbqp, struct rm_class *cl)
118 rmc_delete_class(&cbqp->ifnp, cl);
124 if (cbqp->cbq_class_tbl[i] == cl)
125 cbqp->cbq_class_tbl[i] = NULL;
127 if (cl == cbqp->ifnp.root_)
128 cbqp->ifnp.root_ = NULL;
129 if (cl == cbqp->ifnp.default_)
130 cbqp->ifnp.default_ = NULL;
132 if (cl == cbqp->ifnp.ctl_)
133 cbqp->ifnp.ctl_ = NULL;
140 clh_to_clp(cbq_state_t *cbqp, u_int32_t chandle)
152 if ((cl = cbqp->cbq_class_tbl[i]) != NULL &&
156 if ((cl = cbqp->cbq_class_tbl[i]) != NULL &&
163 cbq_clear_interface(cbq_state_t *cbqp)
170 acc_discard_filters(&cbqp->cbq_classifier, NULL, 1);
177 if ((cl = cbqp->cbq_class_tbl[i]) != NULL) {
181 cbq_class_destroy(cbqp, cl);
182 cbqp->cbq_class_tbl[i] = NULL;
183 if (cl == cbqp->ifnp.root_)
184 cbqp->ifnp.root_ = NULL;
185 if (cl == cbqp->ifnp.default_)
186 cbqp->ifnp.default_ = NULL;
188 if (cl == cbqp->ifnp.ctl_)
189 cbqp->ifnp.ctl_ = NULL;
202 cbq_state_t *cbqp = (cbq_state_t *)ifq->altq_disc;
206 cbq_purge(cbqp);
264 cbq_state_t *cbqp;
273 cbqp = malloc(sizeof(cbq_state_t), M_DEVBUF, M_WAITOK|M_ZERO);
274 if (cbqp == NULL)
276 (void)memset(cbqp, 0, sizeof(cbq_state_t));
277 CALLOUT_INIT(&cbqp->cbq_callout);
278 cbqp->cbq_qlen = 0;
279 cbqp->ifnp.ifq_ = &ifp->if_snd; /* keep the ifq */
282 a->altq_disc = cbqp;
290 cbq_state_t *cbqp;
292 if ((cbqp = a->altq_disc) == NULL)
296 cbq_clear_interface(cbqp);
298 if (cbqp->ifnp.default_)
299 cbq_class_destroy(cbqp, cbqp->ifnp.default_);
300 if (cbqp->ifnp.root_)
301 cbq_class_destroy(cbqp, cbqp->ifnp.root_);
304 free(cbqp, M_DEVBUF);
314 cbq_state_t *cbqp;
319 if ((cbqp = a->altq_disc) == NULL)
330 if (cbqp->cbq_class_tbl[i] != NULL) {
332 if (cbqp->cbq_class_tbl[i] == NULL)
344 parent = clh_to_clp(cbqp, a->parent_qid);
370 if (cbqp->ifnp.root_)
374 if (cbqp->ifnp.default_)
387 error = rmc_init(cbqp->ifnp.ifq_, &cbqp->ifnp,
393 cl = cbqp->ifnp.root_;
396 &cbqp->ifnp, NSEC_TO_PSEC(opts->ns_per_byte),
409 cbqp->cbq_class_tbl[i] = cl;
412 cbqp->ifnp.default_ = cl;
421 cbq_state_t *cbqp;
424 if ((cbqp = a->altq_disc) == NULL)
427 if ((cl = clh_to_clp(cbqp, a->qid)) == NULL)
435 rmc_delete_class(&cbqp->ifnp, cl);
441 if (cbqp->cbq_class_tbl[i] == cl) {
442 cbqp->cbq_class_tbl[i] = NULL;
443 if (cl == cbqp->ifnp.root_)
444 cbqp->ifnp.root_ = NULL;
445 if (cl == cbqp->ifnp.default_)
446 cbqp->ifnp.default_ = NULL;
456 cbq_state_t *cbqp;
461 if ((cbqp = altq_lookup(a->ifname, ALTQT_CBQ)) == NULL)
464 if ((cl = clh_to_clp(cbqp, a->qid)) == NULL)
499 cbq_state_t *cbqp = (cbq_state_t *)ifq->altq_disc;
514 cl = clh_to_clp(cbqp, ((struct altq_tag *)(t+1))->qid);
520 cl = cbqp->ifnp.default_;
544 ++cbqp->cbq_qlen;
552 cbq_state_t *cbqp = (cbq_state_t *)ifq->altq_disc;
555 m = rmc_dequeue_next(&cbqp->ifnp, op);
558 --cbqp->cbq_qlen; /* decrement # of packets in cbq */
562 rmc_update_class_util(&cbqp->ifnp);
578 cbq_state_t *cbqp;
585 if ((cbqp = (cbq_state_t *)ifq->altq_disc) == NULL)
591 cbqp->cbq_qlen > 0 && (ifp->if_flags & IFF_OACTIVE) == 0)
596 cbq_purge(cbq_state_t *cbqp)
602 if ((cl = cbqp->cbq_class_tbl[i]) != NULL)
604 if (ALTQ_IS_ENABLED(cbqp->ifnp.ifq_))
605 cbqp->ifnp.ifq_->ifq_len = 0;
614 cbq_state_t *cbqp;
617 if ((cbqp = altq_lookup(ifacename, ALTQT_CBQ)) == NULL)
626 parent = clh_to_clp(cbqp, acp->cbq_class.parent_class_handle);
627 borrow = clh_to_clp(cbqp, acp->cbq_class.borrow_class_handle);
643 return cbq_class_create(cbqp, acp, parent, borrow);
651 cbq_state_t *cbqp;
654 if ((cbqp = altq_lookup(ifacename, ALTQT_CBQ)) == NULL)
657 if ((cl = clh_to_clp(cbqp, dcp->cbq_class_handle)) == NULL)
665 acc_discard_filters(&cbqp->cbq_classifier, cl, 0);
667 return cbq_class_destroy(cbqp, cl);
675 cbq_state_t *cbqp;
678 if ((cbqp = altq_lookup(ifacename, ALTQT_CBQ)) == NULL)
682 if ((cl = clh_to_clp(cbqp, acp->cbq_class_handle)) == NULL)
695 * cbq_class_create(cbq_mod_state_t *cbqp, struct cbq_add_class *acp,
704 cbq_class_create(cbq_state_t *cbqp, struct cbq_add_class *acp,
716 if (cbqp->cbq_class_tbl[i] == NULL)
727 error = rmc_init(cbqp->ifnp.ifq_, &cbqp->ifnp,
733 cl = cbqp->ifnp.root_;
736 &cbqp->ifnp, spec->pico_sec_per_byte,
751 cbqp->cbq_class_tbl[i] = cl;
754 cbqp->ifnp.default_ = cl;
756 cbqp->ifnp.ctl_ = cl;
765 cbq_state_t *cbqp;
769 if ((cbqp = altq_lookup(ifacename, ALTQT_CBQ)) == NULL)
773 if ((cl = clh_to_clp(cbqp, afp->cbq_class_handle)) == NULL)
776 return acc_add_filter(&cbqp->cbq_classifier, &afp->cbq_filter,
784 cbq_state_t *cbqp;
787 if ((cbqp = altq_lookup(ifacename, ALTQT_CBQ)) == NULL)
790 return acc_delete_filter(&cbqp->cbq_classifier,
802 cbq_state_t *cbqp;
805 if ((cbqp = altq_lookup(ifacename, ALTQT_CBQ)) == NULL)
808 return cbq_clear_interface(cbqp);
826 cbq_state_t *cbqp;
830 if ((cbqp = altq_lookup(ifacename, ALTQT_CBQ)) == NULL)
835 if (cbqp->ifnp.root_ == NULL || cbqp->ifnp.default_ == NULL) {
836 if (cbqp->ifnp.root_ == NULL)
838 if (cbqp->ifnp.default_ == NULL)
841 } else if ((error = altq_enable(cbqp->ifnp.ifq_)) == 0) {
842 cbqp->cbq_qlen = 0;
847 error = altq_disable(cbqp->ifnp.ifq_);
858 cbq_state_t *cbqp;
867 if ((cbqp = altq_lookup(ifacename, ALTQT_CBQ)) == NULL)
873 while ((cl = cbqp->cbq_class_tbl[i]) == NULL)
936 cbq_state_t *cbqp;
939 if ((cbqp = altq_lookup(ifacename, ALTQT_CBQ)) == NULL)
944 cbq_clear_interface(cbqp);
947 (void)altq_detach(cbqp->ifnp.ifq_);
950 if (cbq_list == cbqp)
951 cbq_list = cbqp->cbq_next;
956 if (cp->cbq_next == cbqp) {
957 cp->cbq_next = cbqp->cbq_next;
964 free(cbqp, M_DEVBUF);