Lines Matching defs:amn

55 #define is_success(amn)	\
56 ((amn)->amn_retrycnt < (amn)->amn_txcnt / 10)
57 #define is_failure(amn) \
58 ((amn)->amn_retrycnt > (amn)->amn_txcnt / 3)
59 #define is_enough(amn) \
60 ((amn)->amn_txcnt > 10)
147 struct ieee80211_amrr_node *amn;
157 ni->ni_rctls = amn = IEEE80211_MALLOC(sizeof(struct ieee80211_amrr_node),
159 if (amn == NULL) {
165 amn = ni->ni_rctls;
166 amn->amn_amrr = amrr;
167 amn->amn_success = 0;
168 amn->amn_recovery = 0;
169 amn->amn_txcnt = amn->amn_retrycnt = 0;
170 amn->amn_success_threshold = amrr->amrr_min_success_threshold;
193 for (amn->amn_rix = rs->rs_nrates - 1; amn->amn_rix > 0;
194 amn->amn_rix--) {
198 if ((rs->rs_rates[amn->amn_rix] & 0x1f) < 4)
200 } else if ((rs->rs_rates[amn->amn_rix] & IEEE80211_RATE_VAL) <= 72)
203 rate = rs->rs_rates[amn->amn_rix] & IEEE80211_RATE_VAL;
211 amn->amn_ticks = ticks;
229 amrr_update(struct ieee80211_amrr *amrr, struct ieee80211_amrr_node *amn,
232 int rix = amn->amn_rix;
235 KASSERT(is_enough(amn), ("txcnt %d", amn->amn_txcnt));
250 amn->amn_txcnt,
251 amn->amn_retrycnt);
261 if (is_success(amn)) {
262 amn->amn_success++;
263 if (amn->amn_success >= amn->amn_success_threshold &&
265 amn->amn_recovery = 1;
266 amn->amn_success = 0;
273 amn->amn_txcnt, amn->amn_retrycnt);
275 amn->amn_recovery = 0;
277 } else if (is_failure(amn)) {
278 amn->amn_success = 0;
280 if (amn->amn_recovery) {
281 amn->amn_success_threshold *= 2;
282 if (amn->amn_success_threshold >
284 amn->amn_success_threshold =
287 amn->amn_success_threshold =
296 amn->amn_txcnt, amn->amn_retrycnt);
298 amn->amn_recovery = 0;
302 amn->amn_txcnt = 0;
303 amn->amn_retrycnt = 0;
316 struct ieee80211_amrr_node *amn = ni->ni_rctls;
322 if (!amn)
328 amrr = amn->amn_amrr;
338 if (is_enough(amn) && (ticks - amn->amn_ticks) > amrr->amrr_interval) {
339 rix = amrr_update(amrr, amn, ni);
340 if (rix != amn->amn_rix) {
348 amn->amn_rix = rix;
350 amn->amn_ticks = ticks;
352 rix = amn->amn_rix;
365 struct ieee80211_amrr_node *amn = ni->ni_rctls;
368 if (!amn)
375 amn->amn_txcnt++;
377 amn->amn_success++;
378 amn->amn_retrycnt += retries;
385 struct ieee80211_amrr_node *amn = ni->ni_rctls;
388 if (!amn)
397 amn->amn_txcnt += txcnt;
398 amn->amn_success += success;
399 amn->amn_retrycnt += retrycnt;
460 amrr_print_node_rate(struct ieee80211_amrr_node *amn,
468 rate = rs->rs_rates[amn->amn_rix] & IEEE80211_RATE_VAL;
472 rate = rs->rs_rates[amn->amn_rix] & IEEE80211_RATE_VAL;
480 struct ieee80211_amrr_node *amn = ni->ni_rctls;
484 if (!amn)
487 amrr_print_node_rate(amn, ni, s);
488 sbuf_printf(s, "ticks: %d\n", amn->amn_ticks);
489 sbuf_printf(s, "txcnt: %u\n", amn->amn_txcnt);
490 sbuf_printf(s, "success: %u\n", amn->amn_success);
491 sbuf_printf(s, "success_threshold: %u\n", amn->amn_success_threshold);
492 sbuf_printf(s, "recovery: %u\n", amn->amn_recovery);
493 sbuf_printf(s, "retry_cnt: %u\n", amn->amn_retrycnt);