Lines Matching refs:amn
45 #define is_success(amn) \
46 ((amn)->amn_retrycnt < (amn)->amn_txcnt / 10)
47 #define is_failure(amn) \
48 ((amn)->amn_retrycnt > (amn)->amn_txcnt / 3)
49 #define is_enough(amn) \
50 ((amn)->amn_txcnt > 10)
59 #define reset_cnt(amn) \
60 do { (amn)->amn_txcnt = (amn)->amn_retrycnt = 0; } while (0)
64 struct ieee80211_amrr_node *amn)
66 amn->amn_success = 0;
67 amn->amn_recovery = 0;
68 amn->amn_txcnt = amn->amn_retrycnt = 0;
69 amn->amn_success_threshold = amrr->amrr_min_success_threshold;
77 struct ieee80211_amrr_node *amn)
81 if (is_success(amn) && is_enough(amn)) {
82 amn->amn_success++;
83 if (amn->amn_success >= amn->amn_success_threshold &&
85 amn->amn_recovery = 1;
86 amn->amn_success = 0;
92 amn->amn_txcnt, amn->amn_retrycnt);
95 amn->amn_recovery = 0;
97 } else if (is_failure(amn)) {
98 amn->amn_success = 0;
100 if (amn->amn_recovery) {
101 amn->amn_success_threshold *= 2;
102 if (amn->amn_success_threshold >
104 amn->amn_success_threshold =
107 amn->amn_success_threshold =
115 amn->amn_txcnt, amn->amn_retrycnt);
118 amn->amn_recovery = 0;
121 if (is_enough(amn) || need_change)
122 reset_cnt(amn);