Lines Matching refs:amrr
1799 iwh_amrr_t *amrr; in iwh_node_alloc() local
1801 amrr = kmem_zalloc(sizeof (iwh_amrr_t), KM_SLEEP); in iwh_node_alloc()
1802 if (NULL == amrr) { in iwh_node_alloc()
1808 iwh_amrr_init(amrr); in iwh_node_alloc()
1810 return (&amrr->in); in iwh_node_alloc()
1856 iwh_amrr_t *amrr; in iwh_newstate() local
1991 amrr = (iwh_amrr_t *)in; in iwh_newstate()
2000 amrr->ht_mcs_idx = r; in iwh_newstate()
2443 iwh_amrr_t *amrr; in iwh_tx_intr() local
2449 amrr = (iwh_amrr_t *)ic->ic_bss; in iwh_tx_intr()
2451 amrr->txcnt++; in iwh_tx_intr()
2453 "tx: %d cnt\n", amrr->txcnt)); in iwh_tx_intr()
2456 amrr->retrycnt++; in iwh_tx_intr()
3337 iwh_amrr_t *amrr = (iwh_amrr_t *)in; in iwh_send() local
3338 rate = amrr->ht_mcs_idx; in iwh_send()
4987 #define is_success(amrr) \ argument
4988 ((amrr)->retrycnt < (amrr)->txcnt / 10)
4989 #define is_failure(amrr) \ argument
4990 ((amrr)->retrycnt > (amrr)->txcnt / 3)
4991 #define is_enough(amrr) \ argument
4992 ((amrr)->txcnt > 200)
4993 #define not_very_few(amrr) \ argument
4994 ((amrr)->txcnt > 40)
5003 #define reset_cnt(amrr) \ argument
5004 { (amrr)->txcnt = (amrr)->retrycnt = 0; }
5010 iwh_amrr_init(iwh_amrr_t *amrr) in iwh_amrr_init() argument
5012 amrr->success = 0; in iwh_amrr_init()
5013 amrr->recovery = 0; in iwh_amrr_init()
5014 amrr->txcnt = amrr->retrycnt = 0; in iwh_amrr_init()
5015 amrr->success_threshold = IWH_AMRR_MIN_SUCCESS_THRESHOLD; in iwh_amrr_init()
5016 amrr->ht_mcs_idx = 0; /* 6Mbps */ in iwh_amrr_init()
5040 iwh_amrr_t *amrr = (iwh_amrr_t *)in; in iwh_is_max_rate() local
5041 uint8_t r = (uint8_t)amrr->ht_mcs_idx; in iwh_is_max_rate()
5055 return (r == (uint8_t)amrr->ht_mcs_idx); in iwh_is_max_rate()
5066 iwh_amrr_t *amrr = (iwh_amrr_t *)in; in iwh_is_min_rate() local
5080 return (r == (uint8_t)amrr->ht_mcs_idx); in iwh_is_min_rate()
5091 iwh_amrr_t *amrr = (iwh_amrr_t *)in; in iwh_increase_rate() local
5097 amrr->ht_mcs_idx++; in iwh_increase_rate()
5102 if ((r == (uint8_t)amrr->ht_mcs_idx) && in iwh_increase_rate()
5122 iwh_amrr_t *amrr = (iwh_amrr_t *)in; in iwh_decrease_rate() local
5128 amrr->ht_mcs_idx--; in iwh_decrease_rate()
5133 if ((r == (uint8_t)amrr->ht_mcs_idx) && in iwh_decrease_rate()
5152 iwh_amrr_t *amrr = (iwh_amrr_t *)in; in iwh_amrr_ratectl() local
5155 if (is_success(amrr) && is_enough(amrr)) { in iwh_amrr_ratectl()
5156 amrr->success++; in iwh_amrr_ratectl()
5157 if (amrr->success >= amrr->success_threshold && in iwh_amrr_ratectl()
5159 amrr->recovery = 1; in iwh_amrr_ratectl()
5160 amrr->success = 0; in iwh_amrr_ratectl()
5165 in->in_txrate, amrr->txcnt, in iwh_amrr_ratectl()
5166 amrr->retrycnt, amrr->ht_mcs_idx)); in iwh_amrr_ratectl()
5169 amrr->recovery = 0; in iwh_amrr_ratectl()
5171 } else if (not_very_few(amrr) && is_failure(amrr)) { in iwh_amrr_ratectl()
5172 amrr->success = 0; in iwh_amrr_ratectl()
5174 if (amrr->recovery) { in iwh_amrr_ratectl()
5175 amrr->success_threshold++; in iwh_amrr_ratectl()
5176 if (amrr->success_threshold > in iwh_amrr_ratectl()
5178 amrr->success_threshold = in iwh_amrr_ratectl()
5182 amrr->success_threshold = in iwh_amrr_ratectl()
5189 in->in_txrate, amrr->txcnt, in iwh_amrr_ratectl()
5190 amrr->retrycnt, amrr->ht_mcs_idx)); in iwh_amrr_ratectl()
5193 amrr->recovery = 0; /* paper is incorrect */ in iwh_amrr_ratectl()
5196 if (is_enough(amrr) || need_change) { in iwh_amrr_ratectl()
5197 reset_cnt(amrr); in iwh_amrr_ratectl()