Lines Matching refs:amn

53 #define is_success(amn)	\
54 ((amn)->amn_retrycnt < (amn)->amn_txcnt / 10)
55 #define is_failure(amn) \
56 ((amn)->amn_retrycnt > (amn)->amn_txcnt / 3)
57 #define is_enough(amn) \
58 ((amn)->amn_txcnt > 10)
149 struct ieee80211_amrr_node *amn;
153 ni->ni_rctls = amn = malloc(sizeof(struct ieee80211_amrr_node),
155 if (amn == NULL) {
161 amn = ni->ni_rctls;
162 amn->amn_amrr = amrr;
163 amn->amn_success = 0;
164 amn->amn_recovery = 0;
165 amn->amn_txcnt = amn->amn_retrycnt = 0;
166 amn->amn_success_threshold = amrr->amrr_min_success_threshold;
188 for (amn->amn_rix = rs->rs_nrates - 1; amn->amn_rix > 0;
189 amn->amn_rix--) {
193 (rs->rs_rates[amn->amn_rix] & 0x7) < 4)
195 else if ((rs->rs_rates[amn->amn_rix] & IEEE80211_RATE_VAL) <= 72)
197 rate = rs->rs_rates[amn->amn_rix] & IEEE80211_RATE_VAL;
206 amn->amn_ticks = ticks;
221 amrr_update(struct ieee80211_amrr *amrr, struct ieee80211_amrr_node *amn,
224 int rix = amn->amn_rix;
227 KASSERT(is_enough(amn), ("txcnt %d", amn->amn_txcnt));
240 amn->amn_txcnt,
241 amn->amn_retrycnt);
251 if (is_success(amn)) {
252 amn->amn_success++;
253 if (amn->amn_success >= amn->amn_success_threshold &&
255 amn->amn_recovery = 1;
256 amn->amn_success = 0;
261 amn->amn_txcnt, amn->amn_retrycnt);
263 amn->amn_recovery = 0;
265 } else if (is_failure(amn)) {
266 amn->amn_success = 0;
268 if (amn->amn_recovery) {
269 amn->amn_success_threshold *= 2;
270 if (amn->amn_success_threshold >
272 amn->amn_success_threshold =
275 amn->amn_success_threshold =
282 amn->amn_txcnt, amn->amn_retrycnt);
284 amn->amn_recovery = 0;
288 amn->amn_txcnt = 0;
289 amn->amn_retrycnt = 0;
302 struct ieee80211_amrr_node *amn = ni->ni_rctls;
303 struct ieee80211_amrr *amrr = amn->amn_amrr;
315 if (is_enough(amn) && (ticks - amn->amn_ticks) > amrr->amrr_interval) {
316 rix = amrr_update(amrr, amn, ni);
317 if (rix != amn->amn_rix) {
325 amn->amn_rix = rix;
327 amn->amn_ticks = ticks;
329 rix = amn->amn_rix;
343 struct ieee80211_amrr_node *amn = ni->ni_rctls;
346 amn->amn_txcnt++;
348 amn->amn_success++;
349 amn->amn_retrycnt += retries;
361 struct ieee80211_amrr_node *amn = ni->ni_rctls;
364 amn->amn_txcnt = txcnt;
365 amn->amn_success = success;
366 amn->amn_retrycnt = retrycnt;