Lines Matching full:rs

295 rl_add_syctl_entries(struct sysctl_oid *rl_sysctl_root, struct tcp_rate_set *rs)  in rl_add_syctl_entries()  argument
300 if (rs->rs_flags & RS_INTF_NO_SUP) { in rl_add_syctl_entries()
301 SYSCTL_ADD_S32(&rs->sysctl_ctx, in rl_add_syctl_entries()
304 &rs->rs_disable, 0, in rl_add_syctl_entries()
307 SYSCTL_ADD_S32(&rs->sysctl_ctx, in rl_add_syctl_entries()
310 &rs->rs_disable, 0, in rl_add_syctl_entries()
313 SYSCTL_ADD_S32(&rs->sysctl_ctx, in rl_add_syctl_entries()
316 &rs->rs_min_seg, 0, in rl_add_syctl_entries()
318 SYSCTL_ADD_U64(&rs->sysctl_ctx, in rl_add_syctl_entries()
321 &rs->rs_flow_limit, 0, in rl_add_syctl_entries()
323 SYSCTL_ADD_S32(&rs->sysctl_ctx, in rl_add_syctl_entries()
326 &rs->rs_highest_valid, 0, in rl_add_syctl_entries()
328 SYSCTL_ADD_S32(&rs->sysctl_ctx, in rl_add_syctl_entries()
331 &rs->rs_lowest_valid, 0, in rl_add_syctl_entries()
333 SYSCTL_ADD_S32(&rs->sysctl_ctx, in rl_add_syctl_entries()
336 &rs->rs_flags, 0, in rl_add_syctl_entries()
338 SYSCTL_ADD_S32(&rs->sysctl_ctx, in rl_add_syctl_entries()
341 &rs->rs_rate_cnt, 0, in rl_add_syctl_entries()
343 SYSCTL_ADD_U64(&rs->sysctl_ctx, in rl_add_syctl_entries()
346 &rs->rs_flows_using, 0, in rl_add_syctl_entries()
349 if (rs->rs_rlt && rs->rs_rate_cnt > 0) { in rl_add_syctl_entries()
355 rl_rates = SYSCTL_ADD_NODE(&rs->sysctl_ctx, in rl_add_syctl_entries()
361 for( i = 0; i < rs->rs_rate_cnt; i++) { in rl_add_syctl_entries()
363 rl_rate_num = SYSCTL_ADD_NODE(&rs->sysctl_ctx, in rl_add_syctl_entries()
369 SYSCTL_ADD_U32(&rs->sysctl_ctx, in rl_add_syctl_entries()
372 &rs->rs_rlt[i].flags, 0, in rl_add_syctl_entries()
374 SYSCTL_ADD_U32(&rs->sysctl_ctx, in rl_add_syctl_entries()
377 &rs->rs_rlt[i].time_between, 0, in rl_add_syctl_entries()
379 SYSCTL_ADD_LONG(&rs->sysctl_ctx, in rl_add_syctl_entries()
382 &rs->rs_rlt[i].rate, in rl_add_syctl_entries()
384 SYSCTL_ADD_LONG(&rs->sysctl_ctx, in rl_add_syctl_entries()
387 &rs->rs_rlt[i].using, in rl_add_syctl_entries()
389 SYSCTL_ADD_LONG(&rs->sysctl_ctx, in rl_add_syctl_entries()
392 &rs->rs_rlt[i].rs_num_enobufs, in rl_add_syctl_entries()
403 struct tcp_rate_set *rs; in rs_destroy() local
406 rs = __containerof(ctx, struct tcp_rate_set, rs_epoch_ctx); in rs_destroy()
409 rs->rs_flags &= ~RS_FUNERAL_SCHD; in rs_destroy()
426 do_free_rs = (rs->rs_flows_using == 0); in rs_destroy()
431 sysctl_ctx_free(&rs->sysctl_ctx); in rs_destroy()
432 free(rs->rs_rlt, M_TCPPACE); in rs_destroy()
433 free(rs, M_TCPPACE); in rs_destroy()
438 rs_defer_destroy(struct tcp_rate_set *rs) in rs_defer_destroy() argument
444 if (rs->rs_flags & RS_FUNERAL_SCHD) in rs_defer_destroy()
450 rs->rs_flags |= RS_FUNERAL_SCHD; in rs_defer_destroy()
451 NET_EPOCH_CALL(rs_destroy, &rs->rs_epoch_ctx); in rs_defer_destroy()
490 populate_canned_table(struct tcp_rate_set *rs, const uint64_t *rate_table_act) in populate_canned_table() argument
503 for(i = 0, at_low = 0, at_high = RS_NEXT_ORDER_GROUP; i < rs->rs_rate_cnt; i++) { in populate_canned_table()
504 rs->rs_rlt[i].flags = 0; in populate_canned_table()
505 rs->rs_rlt[i].time_between = 0; in populate_canned_table()
509 rs->rs_rlt[i].rate = rate_table_act[at_low]; in populate_canned_table()
514 rs->rs_rlt[i].rate = rate_table_act[at_high]; in populate_canned_table()
525 struct tcp_rate_set *rs; in rt_setup_new_rs() local
548 rs = malloc(sizeof(struct tcp_rate_set), M_TCPPACE, M_NOWAIT | M_ZERO); in rt_setup_new_rs()
549 if (rs == NULL) { in rt_setup_new_rs()
563 memset(rs, 0, sizeof(struct tcp_rate_set)); in rt_setup_new_rs()
564 rs->rs_ifp = ifp; in rt_setup_new_rs()
565 rs->rs_if_dunit = ifp->if_dunit; in rt_setup_new_rs()
566 rs->rs_flags = RS_INTF_NO_SUP; in rt_setup_new_rs()
567 rs->rs_disable = 1; in rt_setup_new_rs()
569 sysctl_ctx_init(&rs->sysctl_ctx); in rt_setup_new_rs()
570 rl_sysctl_root = SYSCTL_ADD_NODE(&rs->sysctl_ctx, in rt_setup_new_rs()
573 rs->rs_ifp->if_xname, in rt_setup_new_rs()
576 rl_add_syctl_entries(rl_sysctl_root, rs); in rt_setup_new_rs()
579 CK_LIST_INSERT_HEAD(&int_rs, rs, next); in rt_setup_new_rs()
582 return (rs); in rt_setup_new_rs()
584 memset(rs, 0, sizeof(struct tcp_rate_set)); in rt_setup_new_rs()
585 rs->rs_ifp = ifp; in rt_setup_new_rs()
586 rs->rs_if_dunit = ifp->if_dunit; in rt_setup_new_rs()
587 rs->rs_flags = RS_IS_DEFF; in rt_setup_new_rs()
589 sysctl_ctx_init(&rs->sysctl_ctx); in rt_setup_new_rs()
590 rl_sysctl_root = SYSCTL_ADD_NODE(&rs->sysctl_ctx, in rt_setup_new_rs()
593 rs->rs_ifp->if_xname, in rt_setup_new_rs()
596 rl_add_syctl_entries(rl_sysctl_root, rs); in rt_setup_new_rs()
599 CK_LIST_INSERT_HEAD(&int_rs, rs, next); in rt_setup_new_rs()
602 return (rs); in rt_setup_new_rs()
605 rs->rs_ifp = ifp; in rt_setup_new_rs()
606 rs->rs_if_dunit = ifp->if_dunit; in rt_setup_new_rs()
607 rs->rs_rate_cnt = rl.number_of_rates; in rt_setup_new_rs()
608 rs->rs_min_seg = rl.min_segment_burst; in rt_setup_new_rs()
609 rs->rs_highest_valid = 0; in rt_setup_new_rs()
610 rs->rs_flow_limit = rl.max_flows; in rt_setup_new_rs()
611 rs->rs_flags = RS_IS_INTF | RS_NO_PRE; in rt_setup_new_rs()
612 rs->rs_disable = 0; in rt_setup_new_rs()
616 rs->rs_ifp = ifp; in rt_setup_new_rs()
617 rs->rs_if_dunit = ifp->if_dunit; in rt_setup_new_rs()
618 rs->rs_rate_cnt = rl.number_of_rates; in rt_setup_new_rs()
619 rs->rs_min_seg = rl.min_segment_burst; in rt_setup_new_rs()
620 rs->rs_disable = 0; in rt_setup_new_rs()
621 rs->rs_flow_limit = rl.max_flows; in rt_setup_new_rs()
623 if ((rs->rs_rate_cnt > MAX_HDWR_RATES) && in rt_setup_new_rs()
624 (rs->rs_rate_cnt < ALL_HARDWARE_RATES)) { in rt_setup_new_rs()
629 rs->rs_rate_cnt = MAX_HDWR_RATES; in rt_setup_new_rs()
631 if (rs->rs_rate_cnt <= RS_ORDERED_COUNT) in rt_setup_new_rs()
632 rs->rs_flags = RS_IS_INTF; in rt_setup_new_rs()
634 rs->rs_flags = RS_IS_INTF | RS_INT_TBL; in rt_setup_new_rs()
635 if (rs->rs_rate_cnt >= ALL_HARDWARE_RATES) in rt_setup_new_rs()
636 rs->rs_rate_cnt = ALL_HARDWARE_RATES; in rt_setup_new_rs()
638 free(rs, M_TCPPACE); in rt_setup_new_rs()
641 sz = sizeof(struct tcp_hwrate_limit_table) * rs->rs_rate_cnt; in rt_setup_new_rs()
642 rs->rs_rlt = malloc(sz, M_TCPPACE, M_NOWAIT); in rt_setup_new_rs()
643 if (rs->rs_rlt == NULL) { in rt_setup_new_rs()
647 free(rs, M_TCPPACE); in rt_setup_new_rs()
650 if (rs->rs_rate_cnt >= ALL_HARDWARE_RATES) { in rt_setup_new_rs()
657 rs->rs_rlt[0].rate = 12500; /* 100k */ in rt_setup_new_rs()
658 rs->rs_rlt[1].rate = 25000; /* 200k */ in rt_setup_new_rs()
659 rs->rs_rlt[2].rate = 62500; /* 500k */ in rt_setup_new_rs()
664 rs->rs_rlt[i].rate = rat; in rt_setup_new_rs()
667 rs->rs_rlt[(ALL_HARDWARE_RATES-1)].rate = 1250000000; in rt_setup_new_rs()
668 } else if (rs->rs_flags & RS_INT_TBL) { in rt_setup_new_rs()
670 populate_canned_table(rs, rate_table_act); in rt_setup_new_rs()
676 for (i=0; i<rs->rs_rate_cnt; i++) { in rt_setup_new_rs()
677 rs->rs_rlt[i].rate = rate_table_act[i]; in rt_setup_new_rs()
678 rs->rs_rlt[i].time_between = 0; in rt_setup_new_rs()
679 rs->rs_rlt[i].flags = 0; in rt_setup_new_rs()
682 for (i = (rs->rs_rate_cnt - 1); i >= 0; i--) { in rt_setup_new_rs()
688 rs->rs_rlt[i].ptbl = rs; in rt_setup_new_rs()
689 rs->rs_rlt[i].tag = NULL; in rt_setup_new_rs()
690 rs->rs_rlt[i].using = 0; in rt_setup_new_rs()
691 rs->rs_rlt[i].rs_num_enobufs = 0; in rt_setup_new_rs()
696 res = lentim / rs->rs_rlt[i].rate; in rt_setup_new_rs()
698 rs->rs_rlt[i].time_between = res; in rt_setup_new_rs()
700 rs->rs_rlt[i].time_between = 1; in rt_setup_new_rs()
701 if (rs->rs_flags & RS_NO_PRE) { in rt_setup_new_rs()
702 rs->rs_rlt[i].flags = HDWRPACE_INITED; in rt_setup_new_rs()
703 rs->rs_lowest_valid = i; in rt_setup_new_rs()
710 rs->rs_rlt[i].rate, i); in rt_setup_new_rs()
722 rs->rs_rlt[i].rate, in rt_setup_new_rs()
723 &rs->rs_rlt[i].tag); in rt_setup_new_rs()
726 if (i == (rs->rs_rate_cnt - 1)) { in rt_setup_new_rs()
731 free(rs->rs_rlt, M_TCPPACE); in rt_setup_new_rs()
741 rs->rs_rlt[i].flags = HDWRPACE_INITED | HDWRPACE_TAGPRESENT; in rt_setup_new_rs()
742 rs->rs_lowest_valid = i; in rt_setup_new_rs()
747 if (rs->rs_rlt[(rs->rs_rate_cnt - 1)].flags & HDWRPACE_INITED) in rt_setup_new_rs()
748 rs->rs_highest_valid = rs->rs_rate_cnt - 1; in rt_setup_new_rs()
750 free(rs->rs_rlt, M_TCPPACE); in rt_setup_new_rs()
754 sysctl_ctx_init(&rs->sysctl_ctx); in rt_setup_new_rs()
755 rl_sysctl_root = SYSCTL_ADD_NODE(&rs->sysctl_ctx, in rt_setup_new_rs()
758 rs->rs_ifp->if_xname, in rt_setup_new_rs()
761 rl_add_syctl_entries(rl_sysctl_root, rs); in rt_setup_new_rs()
764 CK_LIST_INSERT_HEAD(&int_rs, rs, next); in rt_setup_new_rs()
767 return (rs); in rt_setup_new_rs()
775 tcp_int_find_suitable_rate(const volatile struct tcp_rate_set *rs, in tcp_int_find_suitable_rate() argument
785 (rs->rs_lowest_valid <= 2)){ in tcp_int_find_suitable_rate()
791 for(i = rs->rs_lowest_valid; i < 3; i++) { in tcp_int_find_suitable_rate()
792 if (bytes_per_sec <= rs->rs_rlt[i].rate) { in tcp_int_find_suitable_rate()
793 rte = &rs->rs_rlt[i]; in tcp_int_find_suitable_rate()
795 } else if (rs->rs_rlt[i].flags & HDWRPACE_INITED) { in tcp_int_find_suitable_rate()
796 arte = &rs->rs_rlt[i]; in tcp_int_find_suitable_rate()
798 previous_rate = rs->rs_rlt[i].rate; in tcp_int_find_suitable_rate()
802 (rs->rs_rlt[(ALL_HARDWARE_RATES-1)].flags & HDWRPACE_INITED)){ in tcp_int_find_suitable_rate()
808 rte = &rs->rs_rlt[(ALL_HARDWARE_RATES-1)]; in tcp_int_find_suitable_rate()
810 arte = &rs->rs_rlt[(ALL_HARDWARE_RATES-1)]; in tcp_int_find_suitable_rate()
811 previous_rate = rs->rs_rlt[(ALL_HARDWARE_RATES-2)].rate; in tcp_int_find_suitable_rate()
829 if ((ind_calc >= rs->rs_lowest_valid) && in tcp_int_find_suitable_rate()
830 (ind_calc <= rs->rs_highest_valid)) { in tcp_int_find_suitable_rate()
831 rte = &rs->rs_rlt[ind_calc]; in tcp_int_find_suitable_rate()
833 previous_rate = rs->rs_rlt[(ind_calc-1)].rate; in tcp_int_find_suitable_rate()
837 (rs->rs_lowest_valid <= 2)){ in tcp_int_find_suitable_rate()
838 for(i = rs->rs_lowest_valid; i < 3; i++) { in tcp_int_find_suitable_rate()
839 if (bytes_per_sec == rs->rs_rlt[i].rate) { in tcp_int_find_suitable_rate()
840 rte = &rs->rs_rlt[i]; in tcp_int_find_suitable_rate()
845 (rs->rs_rlt[(ALL_HARDWARE_RATES-1)].flags & HDWRPACE_INITED)) { in tcp_int_find_suitable_rate()
847 if (bytes_per_sec == rs->rs_rlt[(ALL_HARDWARE_RATES-1)].rate) { in tcp_int_find_suitable_rate()
849 rte = &rs->rs_rlt[(ALL_HARDWARE_RATES-1)]; in tcp_int_find_suitable_rate()
861 if (rs->rs_rlt[ind_calc].flags & HDWRPACE_INITED) in tcp_int_find_suitable_rate()
862 rte = &rs->rs_rlt[ind_calc]; in tcp_int_find_suitable_rate()
868 (rs->rs_lowest_valid <= 2)){ in tcp_int_find_suitable_rate()
869 arte = &rs->rs_rlt[3]; /* set alternate to 1Meg */ in tcp_int_find_suitable_rate()
870 for (i=2; i>=rs->rs_lowest_valid; i--) { in tcp_int_find_suitable_rate()
871 if (bytes_per_sec < rs->rs_rlt[i].rate) { in tcp_int_find_suitable_rate()
872 rte = &rs->rs_rlt[i]; in tcp_int_find_suitable_rate()
874 previous_rate = rs->rs_rlt[(i-1)].rate; in tcp_int_find_suitable_rate()
878 (bytes_per_sec == rs->rs_rlt[i].rate)) { in tcp_int_find_suitable_rate()
879 rte = &rs->rs_rlt[i]; in tcp_int_find_suitable_rate()
881 previous_rate = rs->rs_rlt[(i-1)].rate; in tcp_int_find_suitable_rate()
885 arte = &rs->rs_rlt[i]; /* new alternate */ in tcp_int_find_suitable_rate()
889 if ((bytes_per_sec < rs->rs_rlt[(ALL_HARDWARE_RATES-1)].rate) && in tcp_int_find_suitable_rate()
890 (rs->rs_rlt[(ALL_HARDWARE_RATES-1)].flags & HDWRPACE_INITED)){ in tcp_int_find_suitable_rate()
892 rte = &rs->rs_rlt[(ALL_HARDWARE_RATES-1)]; in tcp_int_find_suitable_rate()
894 (bytes_per_sec == rs->rs_rlt[(ALL_HARDWARE_RATES-1)].rate) && in tcp_int_find_suitable_rate()
895 (rs->rs_rlt[(ALL_HARDWARE_RATES-1)].flags & HDWRPACE_INITED)) { in tcp_int_find_suitable_rate()
897 rte = &rs->rs_rlt[(ALL_HARDWARE_RATES-1)]; in tcp_int_find_suitable_rate()
898 } else if (rs->rs_rlt[(ALL_HARDWARE_RATES-1)].flags & HDWRPACE_INITED) { in tcp_int_find_suitable_rate()
900 arte = &rs->rs_rlt[(ALL_HARDWARE_RATES-1)]; in tcp_int_find_suitable_rate()
902 previous_rate = rs->rs_rlt[(ALL_HARDWARE_RATES-2)].rate; in tcp_int_find_suitable_rate()
912 rte = &rs->rs_rlt[ind_calc]; in tcp_int_find_suitable_rate()
914 previous_rate = rs->rs_rlt[(ind_calc-1)].rate; in tcp_int_find_suitable_rate()
924 if (rs->rs_rlt[ind_calc].flags & HDWRPACE_INITED) { in tcp_int_find_suitable_rate()
925 rte = &rs->rs_rlt[ind_calc]; in tcp_int_find_suitable_rate()
927 previous_rate = rs->rs_rlt[(ind_calc-1)].rate; in tcp_int_find_suitable_rate()
948 tcp_find_suitable_rate(const volatile struct tcp_rate_set *rs, uint64_t bytes_per_sec, uint32_t fla… in tcp_find_suitable_rate() argument
964 if ((rs->rs_flags & RS_INT_TBL) && in tcp_find_suitable_rate()
965 (rs->rs_rate_cnt >= ALL_HARDWARE_RATES)) { in tcp_find_suitable_rate()
972 return (tcp_int_find_suitable_rate(rs, bytes_per_sec, flags, lower_rate)); in tcp_find_suitable_rate()
981 for (i = rs->rs_lowest_valid, matched = 0; i <= rs->rs_highest_valid; i++) { in tcp_find_suitable_rate()
983 (bytes_per_sec == rs->rs_rlt[i].rate)) { in tcp_find_suitable_rate()
984 rte = &rs->rs_rlt[i]; in tcp_find_suitable_rate()
990 (bytes_per_sec <= rs->rs_rlt[i].rate)) { in tcp_find_suitable_rate()
991 rte = &rs->rs_rlt[i]; in tcp_find_suitable_rate()
997 previous_rate = rs->rs_rlt[i].rate; in tcp_find_suitable_rate()
998 if (bytes_per_sec > rs->rs_rlt[i].rate) in tcp_find_suitable_rate()
1005 rte = &rs->rs_rlt[rs->rs_lowest_valid]; in tcp_find_suitable_rate()
1013 for (i = rs->rs_highest_valid, matched = 0; i >= rs->rs_lowest_valid; i--) { in tcp_find_suitable_rate()
1014 if (rs->rs_rlt[i].rate > bytes_per_sec) { in tcp_find_suitable_rate()
1016 rte = &rs->rs_rlt[i]; in tcp_find_suitable_rate()
1019 (bytes_per_sec == rs->rs_rlt[i].rate)) { in tcp_find_suitable_rate()
1022 rte = &rs->rs_rlt[i]; in tcp_find_suitable_rate()
1031 if (rs->rs_rlt[i].rate < bytes_per_sec) { in tcp_find_suitable_rate()
1037 *lower_rate = rs->rs_rlt[i].rate; in tcp_find_suitable_rate()
1044 rte = &rs->rs_rlt[rs->rs_highest_valid]; in tcp_find_suitable_rate()
1128 struct tcp_rate_set *rs; in find_rs_for_ifp() local
1130 CK_LIST_FOREACH(rs, &int_rs, next) { in find_rs_for_ifp()
1131 if ((rs->rs_ifp == ifp) && in find_rs_for_ifp()
1132 (rs->rs_if_dunit == ifp->if_dunit)) { in find_rs_for_ifp()
1134 return (rs); in find_rs_for_ifp()
1148 * So why is rs volatile? This is to defeat a in rt_setup_rate()
1150 * that rs can never be NULL (which is not true). Because in rt_setup_rate()
1151 * of its conviction it nicely optimizes out the if ((rs == NULL in rt_setup_rate()
1154 volatile struct tcp_rate_set *rs; in rt_setup_rate() local
1161 rs = find_rs_for_ifp(ifp); in rt_setup_rate()
1162 if ((rs == NULL) || in rt_setup_rate()
1163 (rs->rs_flags & RS_INTF_NO_SUP) || in rt_setup_rate()
1164 (rs->rs_flags & RS_IS_DEAD)) { in rt_setup_rate()
1182 if ((rs == NULL) || (rs->rs_disable != 0)) { in rt_setup_rate()
1188 if (rs->rs_flags & RS_IS_DEFF) { in rt_setup_rate()
1194 if (rs->rs_disable && error) in rt_setup_rate()
1205 if (rs->rs_flow_limit && in rt_setup_rate()
1206 ((rs->rs_flows_using + 1) > rs->rs_flow_limit)) { in rt_setup_rate()
1212 rte = tcp_find_suitable_rate(rs, bytes_per_sec, flags, lower_rate); in rt_setup_rate()
1226 ("Setup rate has no snd_tag inp:%p rte:%p rate:%llu rs:%p", in rt_setup_rate()
1227 inp, rte, (unsigned long long)rte->rate, rs)); in rt_setup_rate()
1238 atomic_add_64(&rs->rs_flows_using, 1); in rt_setup_rate()
1248 struct tcp_rate_set *rs; in tcp_rl_ifnet_link() local
1261 rs = find_rs_for_ifp(ifp); in tcp_rl_ifnet_link()
1262 if (rs) { in tcp_rl_ifnet_link()
1276 struct tcp_rate_set *rs; in tcp_rl_ifnet_departure() local
1282 rs = find_rs_for_ifp(ifp); in tcp_rl_ifnet_departure()
1283 if (rs) { in tcp_rl_ifnet_departure()
1284 CK_LIST_REMOVE(rs, next); in tcp_rl_ifnet_departure()
1286 rs->rs_flags |= RS_IS_DEAD; in tcp_rl_ifnet_departure()
1287 for (i = 0; i < rs->rs_rate_cnt; i++) { in tcp_rl_ifnet_departure()
1288 if (rs->rs_rlt[i].flags & HDWRPACE_TAGPRESENT) { in tcp_rl_ifnet_departure()
1289 in_pcbdetach_tag(rs->rs_rlt[i].tag); in tcp_rl_ifnet_departure()
1290 rs->rs_rlt[i].tag = NULL; in tcp_rl_ifnet_departure()
1292 rs->rs_rlt[i].flags = HDWRPACE_IFPDEPARTED; in tcp_rl_ifnet_departure()
1294 if (rs->rs_flows_using == 0) in tcp_rl_ifnet_departure()
1295 rs_defer_destroy(rs); in tcp_rl_ifnet_departure()
1310 struct tcp_rate_set *rs, *nrs; in tcp_rl_shutdown() local
1316 CK_LIST_FOREACH_SAFE(rs, &int_rs, next, nrs) { in tcp_rl_shutdown()
1317 CK_LIST_REMOVE(rs, next); in tcp_rl_shutdown()
1319 rs->rs_flags |= RS_IS_DEAD; in tcp_rl_shutdown()
1320 for (i = 0; i < rs->rs_rate_cnt; i++) { in tcp_rl_shutdown()
1321 if (rs->rs_rlt[i].flags & HDWRPACE_TAGPRESENT) { in tcp_rl_shutdown()
1322 in_pcbdetach_tag(rs->rs_rlt[i].tag); in tcp_rl_shutdown()
1323 rs->rs_rlt[i].tag = NULL; in tcp_rl_shutdown()
1325 rs->rs_rlt[i].flags = HDWRPACE_IFPDEPARTED; in tcp_rl_shutdown()
1327 if (rs->rs_flows_using == 0) in tcp_rl_shutdown()
1328 rs_defer_destroy(rs); in tcp_rl_shutdown()
1405 const struct tcp_rate_set *rs; in tcp_chg_pacing_rate() local
1457 rs = crte->ptbl; in tcp_chg_pacing_rate()
1458 if ((rs->rs_flags & RS_IS_DEAD) || in tcp_chg_pacing_rate()
1467 nrte = tcp_find_suitable_rate(rs, bytes_per_sec, flags, lower_rate); in tcp_chg_pacing_rate()
1495 lrs = __DECONST(struct tcp_rate_set *, rs); in tcp_chg_pacing_rate()
1533 struct tcp_rate_set *rs; in tcp_rel_pacing_rate() local
1544 rs = __DECONST(struct tcp_rate_set *, crs); in tcp_rel_pacing_rate()
1546 pre = atomic_fetchadd_64(&rs->rs_flows_using, -1); in tcp_rel_pacing_rate()
1555 if (rs->rs_flags & RS_IS_DEAD) in tcp_rel_pacing_rate()
1556 rs_defer_destroy(rs); in tcp_rel_pacing_rate()
1746 struct tcp_rate_set *rs; in tcp_hw_highest_rate_ifp() local
1751 rs = find_rs_for_ifp(ifp); in tcp_hw_highest_rate_ifp()
1752 if (rs == NULL) { in tcp_hw_highest_rate_ifp()
1755 } else if (rs->rs_flags & RS_IS_DEFF) { in tcp_hw_highest_rate_ifp()
1768 rate_ret = rs->rs_rlt[rs->rs_highest_valid].rate; in tcp_hw_highest_rate_ifp()