Lines Matching defs:amrr
1736 iwp_amrr_t *amrr;
1738 amrr = kmem_zalloc(sizeof (iwp_amrr_t), KM_SLEEP);
1739 if (NULL == amrr) {
1741 "failed to allocate memory for amrr structure\n");
1745 iwp_amrr_init(amrr);
1747 return (&amrr->in);
2347 iwp_amrr_t *amrr;
2353 amrr = (iwp_amrr_t *)ic->ic_bss;
2355 amrr->txcnt++;
2357 "tx: %d cnt\n", amrr->txcnt));
2360 amrr->retrycnt++;
4718 #define is_success(amrr) \
4719 ((amrr)->retrycnt < (amrr)->txcnt / 10)
4720 #define is_failure(amrr) \
4721 ((amrr)->retrycnt > (amrr)->txcnt / 3)
4722 #define is_enough(amrr) \
4723 ((amrr)->txcnt > 200)
4724 #define not_very_few(amrr) \
4725 ((amrr)->txcnt > 40)
4734 #define reset_cnt(amrr) \
4735 { (amrr)->txcnt = (amrr)->retrycnt = 0; }
4741 iwp_amrr_init(iwp_amrr_t *amrr)
4743 amrr->success = 0;
4744 amrr->recovery = 0;
4745 amrr->txcnt = amrr->retrycnt = 0;
4746 amrr->success_threshold = IWP_AMRR_MIN_SUCCESS_THRESHOLD;
4770 iwp_amrr_t *amrr = (iwp_amrr_t *)in;
4773 if (is_success(amrr) && is_enough(amrr)) {
4774 amrr->success++;
4775 if (amrr->success >= amrr->success_threshold &&
4777 amrr->recovery = 1;
4778 amrr->success = 0;
4783 in->in_txrate, amrr->txcnt,
4784 amrr->retrycnt));
4787 amrr->recovery = 0;
4789 } else if (not_very_few(amrr) && is_failure(amrr)) {
4790 amrr->success = 0;
4792 if (amrr->recovery) {
4793 amrr->success_threshold++;
4794 if (amrr->success_threshold >
4796 amrr->success_threshold =
4800 amrr->success_threshold =
4807 in->in_txrate, amrr->txcnt,
4808 amrr->retrycnt));
4811 amrr->recovery = 0; /* paper is incorrect */
4814 if (is_enough(amrr) || need_change) {
4815 reset_cnt(amrr);