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()
3336 iwh_amrr_t *amrr = (iwh_amrr_t *)in; in iwh_send() local
3337 rate = amrr->ht_mcs_idx; in iwh_send()
4986 #define is_success(amrr) \ argument
4987 ((amrr)->retrycnt < (amrr)->txcnt / 10)
4988 #define is_failure(amrr) \ argument
4989 ((amrr)->retrycnt > (amrr)->txcnt / 3)
4990 #define is_enough(amrr) \ argument
4991 ((amrr)->txcnt > 200)
4992 #define not_very_few(amrr) \ argument
4993 ((amrr)->txcnt > 40)
5002 #define reset_cnt(amrr) \ argument
5003 { (amrr)->txcnt = (amrr)->retrycnt = 0; }
5009 iwh_amrr_init(iwh_amrr_t *amrr) in iwh_amrr_init() argument
5011 amrr->success = 0; in iwh_amrr_init()
5012 amrr->recovery = 0; in iwh_amrr_init()
5013 amrr->txcnt = amrr->retrycnt = 0; in iwh_amrr_init()
5014 amrr->success_threshold = IWH_AMRR_MIN_SUCCESS_THRESHOLD; in iwh_amrr_init()
5015 amrr->ht_mcs_idx = 0; /* 6Mbps */ in iwh_amrr_init()
5039 iwh_amrr_t *amrr = (iwh_amrr_t *)in; in iwh_is_max_rate() local
5040 uint8_t r = (uint8_t)amrr->ht_mcs_idx; in iwh_is_max_rate()
5054 return (r == (uint8_t)amrr->ht_mcs_idx); in iwh_is_max_rate()
5065 iwh_amrr_t *amrr = (iwh_amrr_t *)in; in iwh_is_min_rate() local
5079 return (r == (uint8_t)amrr->ht_mcs_idx); in iwh_is_min_rate()
5090 iwh_amrr_t *amrr = (iwh_amrr_t *)in; in iwh_increase_rate() local
5096 amrr->ht_mcs_idx++; in iwh_increase_rate()
5101 if ((r == (uint8_t)amrr->ht_mcs_idx) && in iwh_increase_rate()
5121 iwh_amrr_t *amrr = (iwh_amrr_t *)in; in iwh_decrease_rate() local
5127 amrr->ht_mcs_idx--; in iwh_decrease_rate()
5132 if ((r == (uint8_t)amrr->ht_mcs_idx) && in iwh_decrease_rate()
5151 iwh_amrr_t *amrr = (iwh_amrr_t *)in; in iwh_amrr_ratectl() local
5154 if (is_success(amrr) && is_enough(amrr)) { in iwh_amrr_ratectl()
5155 amrr->success++; in iwh_amrr_ratectl()
5156 if (amrr->success >= amrr->success_threshold && in iwh_amrr_ratectl()
5158 amrr->recovery = 1; in iwh_amrr_ratectl()
5159 amrr->success = 0; in iwh_amrr_ratectl()
5164 in->in_txrate, amrr->txcnt, in iwh_amrr_ratectl()
5165 amrr->retrycnt, amrr->ht_mcs_idx)); in iwh_amrr_ratectl()
5168 amrr->recovery = 0; in iwh_amrr_ratectl()
5170 } else if (not_very_few(amrr) && is_failure(amrr)) { in iwh_amrr_ratectl()
5171 amrr->success = 0; in iwh_amrr_ratectl()
5173 if (amrr->recovery) { in iwh_amrr_ratectl()
5174 amrr->success_threshold++; in iwh_amrr_ratectl()
5175 if (amrr->success_threshold > in iwh_amrr_ratectl()
5177 amrr->success_threshold = in iwh_amrr_ratectl()
5181 amrr->success_threshold = in iwh_amrr_ratectl()
5188 in->in_txrate, amrr->txcnt, in iwh_amrr_ratectl()
5189 amrr->retrycnt, amrr->ht_mcs_idx)); in iwh_amrr_ratectl()
5192 amrr->recovery = 0; /* paper is incorrect */ in iwh_amrr_ratectl()
5195 if (is_enough(amrr) || need_change) { in iwh_amrr_ratectl()
5196 reset_cnt(amrr); in iwh_amrr_ratectl()