Lines Matching defs:tsw

718 	struct tswtcm *tsw;
725 if ((tsw = cdnr_cballoc(top, TCETYPE_TSWTCM,
729 tca_import_action(&tsw->green_action, green_action);
730 tca_import_action(&tsw->yellow_action, yellow_action);
731 tca_import_action(&tsw->red_action, red_action);
734 if (tsw->green_action.tca_code == TCACODE_MARK)
735 tsw->green_dscp = tsw->green_action.tca_dscp & DSCP_MASK;
737 tsw->green_dscp = DSCP_AF11;
738 if (tsw->yellow_action.tca_code == TCACODE_MARK)
739 tsw->yellow_dscp = tsw->yellow_action.tca_dscp & DSCP_MASK;
741 tsw->yellow_dscp = DSCP_AF12;
742 if (tsw->red_action.tca_code == TCACODE_MARK)
743 tsw->red_dscp = tsw->red_action.tca_dscp & DSCP_MASK;
745 tsw->red_dscp = DSCP_AF13;
748 tsw->cmtd_rate = cmtd_rate / 8;
749 tsw->peak_rate = peak_rate / 8;
750 tsw->avg_rate = 0;
753 tsw->timewin = (u_int64_t)machclk_freq * avg_interval / 1000;
755 return tsw;
759 tswtcm_destroy(struct tswtcm *tsw)
761 if (tsw->cdnrblk.cb_ref > 0)
764 tca_invalidate_action(&tsw->green_action);
765 tca_invalidate_action(&tsw->yellow_action);
766 tca_invalidate_action(&tsw->red_action);
768 cdnr_cbdestroy(tsw);
775 struct tswtcm *tsw = (struct tswtcm *)cb;
786 interval = now - tsw->t_front;
796 tmp = ((u_int64_t)tsw->avg_rate * tsw->timewin
797 + (u_int64_t)len * machclk_freq) / (tsw->timewin + interval);
798 tsw->avg_rate = avg_rate = (u_int32_t)tmp;
799 tsw->t_front = now;
804 if (avg_rate > tsw->cmtd_rate) {
807 if (avg_rate > tsw->peak_rate) {
808 if (randval < avg_rate - tsw->peak_rate) {
810 pktinfo->pkt_dscp = tsw->red_dscp;
811 PKTCNTR_ADD(&tsw->red_cnt, len);
812 return (&tsw->red_action);
813 } else if (randval < avg_rate - tsw->cmtd_rate)
817 if (randval < avg_rate - tsw->cmtd_rate) {
819 pktinfo->pkt_dscp = tsw->yellow_dscp;
820 PKTCNTR_ADD(&tsw->yellow_cnt, len);
821 return (&tsw->yellow_action);
827 pktinfo->pkt_dscp = tsw->green_dscp;
828 PKTCNTR_ADD(&tsw->green_cnt, len);
829 return (&tsw->green_action);
1018 struct tswtcm *tsw = (struct tswtcm *)cb;
1020 ap->green_cnt = tsw->green_cnt;
1021 ap->yellow_cnt = tsw->yellow_cnt;
1022 ap->red_cnt = tsw->red_cnt;
1033 struct tswtcm *tsw;
1041 tsw = tswtcm_create(top, ap->cmtd_rate, ap->peak_rate,
1044 if (tsw == NULL)
1048 ap->cdnr_handle = cdnr_cb2handle(&tsw->cdnrblk);
1055 struct tswtcm *tsw;
1057 if ((tsw = (struct tswtcm *)cdnr_handle2cb(ap->cdnr_handle)) == NULL)
1064 tsw->cmtd_rate = ap->cmtd_rate / 8;
1065 tsw->peak_rate = ap->peak_rate / 8;
1066 tsw->avg_rate = 0;
1069 tsw->timewin = (u_int64_t)machclk_freq * ap->avg_interval / 1000;
1081 struct tswtcm *tsw;
1121 tsw = (struct tswtcm *)cb;
1122 tce.tce_cnts[0] = tsw->green_cnt;
1123 tce.tce_cnts[1] = tsw->yellow_cnt;
1124 tce.tce_cnts[2] = tsw->red_cnt;