Lines Matching refs:amrr
1217 wpi_amrr_t *amrr; in wpi_node_alloc() local
1219 amrr = kmem_zalloc(sizeof (wpi_amrr_t), KM_SLEEP); in wpi_node_alloc()
1220 if (amrr != NULL) in wpi_node_alloc()
1221 wpi_amrr_init(amrr); in wpi_node_alloc()
1222 return (&amrr->in); in wpi_node_alloc()
1778 wpi_amrr_t *amrr = (wpi_amrr_t *)ic->ic_bss; local
1785 amrr->txcnt++;
1786 WPI_DBG((WPI_DEBUG_RATECTL, "tx: %d cnt\n", amrr->txcnt));
1788 amrr->retrycnt++;
1791 amrr->retrycnt));
3549 #define is_success(amrr) \ argument
3550 ((amrr)->retrycnt < (amrr)->txcnt / 10)
3551 #define is_failure(amrr) \ argument
3552 ((amrr)->retrycnt > (amrr)->txcnt / 3)
3553 #define is_enough(amrr) \ argument
3554 ((amrr)->txcnt > 100)
3563 #define reset_cnt(amrr) \ argument
3564 { (amrr)->txcnt = (amrr)->retrycnt = 0; }
3570 wpi_amrr_init(wpi_amrr_t *amrr) argument
3572 amrr->success = 0;
3573 amrr->recovery = 0;
3574 amrr->txcnt = amrr->retrycnt = 0;
3575 amrr->success_threshold = WPI_AMRR_MIN_SUCCESS_THRESHOLD;
3595 wpi_amrr_t *amrr = (wpi_amrr_t *)in; local
3598 if (is_success(amrr) && is_enough(amrr)) {
3599 amrr->success++;
3600 if (amrr->success >= amrr->success_threshold &&
3602 amrr->recovery = 1;
3603 amrr->success = 0;
3607 in->in_txrate, amrr->txcnt, amrr->retrycnt));
3610 amrr->recovery = 0;
3612 } else if (is_failure(amrr)) {
3613 amrr->success = 0;
3615 if (amrr->recovery) {
3616 amrr->success_threshold++;
3617 if (amrr->success_threshold >
3619 amrr->success_threshold =
3622 amrr->success_threshold =
3628 in->in_txrate, amrr->txcnt, amrr->retrycnt));
3631 amrr->recovery = 0; /* paper is incorrect */
3634 if (is_enough(amrr) || need_change)
3635 reset_cnt(amrr);