Lines Matching refs:tbr

593 	struct tb_regulator *tbr;
603 tbr = &ifq->ifcq_tbr;
604 if (op == CLASSQDQ_REMOVE && tbr->tbr_lastop == CLASSQDQ_POLL) {
605 /* if this is a remove after poll, bypass tbr check */
608 if (tbr->tbr_token <= 0) {
610 interval = now - tbr->tbr_last;
611 if (interval >= tbr->tbr_filluptime) {
612 tbr->tbr_token = tbr->tbr_depth;
614 tbr->tbr_token += interval * tbr->tbr_rate;
615 if (tbr->tbr_token > tbr->tbr_depth)
616 tbr->tbr_token = tbr->tbr_depth;
618 tbr->tbr_last = now;
621 if (tbr->tbr_token <= 0)
658 tbr->tbr_token -= TBR_SCALE(m_pktlen(m));
659 tbr->tbr_lastop = op;
672 struct tb_regulator *tbr;
681 tbr = &ifq->ifcq_tbr;
682 old_rate = tbr->tbr_rate_raw;
704 bzero(tbr, sizeof (*tbr));
718 bzero(tbr, sizeof (*tbr));
719 tbr->tbr_rate_raw = rate;
720 tbr->tbr_percent = profile->percent;
733 tbr->tbr_rate = TBR_SCALE(rate / 8) / machclk_freq;
734 if (tbr->tbr_rate > 0) {
746 if ((idepth / tbr->tbr_rate) > ival)
751 tbr->tbr_depth = TBR_SCALE(profile->depth);
752 if (tbr->tbr_depth == 0) {
753 tbr->tbr_filluptime = idepth / tbr->tbr_rate;
755 tbr->tbr_depth = idepth + (idepth >> 3);
757 tbr->tbr_filluptime = tbr->tbr_depth / tbr->tbr_rate;
760 tbr->tbr_depth = TBR_SCALE(profile->depth);
761 tbr->tbr_filluptime = 0xffffffffffffffffLL;
763 tbr->tbr_token = tbr->tbr_depth;
764 tbr->tbr_last = read_machclk();
765 tbr->tbr_lastop = CLASSQDQ_REMOVE;
767 if (tbr->tbr_rate > 0 && (ifp->if_flags & IFF_UP)) {
769 { 0, pktsched_abs_to_nsecs(tbr->tbr_filluptime) };
773 TBR_UNSCALE(tbr->tbr_token),
774 pktsched_abs_to_nsecs(tbr->tbr_filluptime));
779 if (tbr->tbr_rate == 0) {
782 TBR_UNSCALE(tbr->tbr_token));
790 if (update && tbr->tbr_rate_raw != old_rate)