Lines Matching refs:ra

157 rssadapt_updatestats(struct ieee80211_rssadapt_node *ra)  in rssadapt_updatestats()  argument
161 ra->ra_pktrate = (ra->ra_pktrate + 10*(ra->ra_nfail + ra->ra_nok))/2; in rssadapt_updatestats()
162 ra->ra_nfail = ra->ra_nok = 0; in rssadapt_updatestats()
168 interval = MAX(10*1000, 10*1000 / MAX(1, 10 * ra->ra_pktrate)); in rssadapt_updatestats()
169 ra->ra_raise_interval = msecs_to_ticks(interval); in rssadapt_updatestats()
175 struct ieee80211_rssadapt_node *ra; in rssadapt_node_init() local
188 ni->ni_rctls = ra = in rssadapt_node_init()
191 if (ra == NULL) { in rssadapt_node_init()
197 ra = ni->ni_rctls; in rssadapt_node_init()
198 ra->ra_rs = rsa; in rssadapt_node_init()
199 ra->ra_rates = *rs; in rssadapt_node_init()
200 rssadapt_updatestats(ra); in rssadapt_node_init()
203 for (ra->ra_rix = rs->rs_nrates - 1; in rssadapt_node_init()
204 ra->ra_rix > 0 && (rs->rs_rates[ra->ra_rix] & IEEE80211_RATE_VAL) > 72; in rssadapt_node_init()
205 ra->ra_rix--) in rssadapt_node_init()
208 rs->rs_rates[ra->ra_rix] & IEEE80211_RATE_VAL); in rssadapt_node_init()
209 ra->ra_ticks = ticks; in rssadapt_node_init()
241 struct ieee80211_rssadapt_node *ra = ni->ni_rctls; in rssadapt_rate() local
248 if (!ra) in rssadapt_rate()
255 rs = &ra->ra_rates; in rssadapt_rate()
256 if ((ticks - ra->ra_ticks) > ra->ra_rs->interval) { in rssadapt_rate()
257 rssadapt_updatestats(ra); in rssadapt_rate()
258 ra->ra_ticks = ticks; in rssadapt_rate()
261 thrs = &ra->ra_rate_thresh[bucket(pktlen)]; in rssadapt_rate()
268 if (rix != ra->ra_rix) { in rssadapt_rate()
272 ra->ra_rix = rix; in rssadapt_rate()
288 rssadapt_lower_rate(struct ieee80211_rssadapt_node *ra, int pktlen, int rssi) in rssadapt_lower_rate() argument
294 thrs = &ra->ra_rate_thresh[bucket(pktlen)]; in rssadapt_lower_rate()
296 rix = ra->ra_rix; in rssadapt_lower_rate()
301 IEEE80211_DPRINTF(ra->ra_rs->vap, IEEE80211_MSG_RATECTL, in rssadapt_lower_rate()
303 ra->ra_rates.rs_rates[rix + 1] & IEEE80211_RATE_VAL, in rssadapt_lower_rate()
308 rssadapt_raise_rate(struct ieee80211_rssadapt_node *ra, int pktlen, int rssi) in rssadapt_raise_rate() argument
314 thrs = &ra->ra_rate_thresh[bucket(pktlen)]; in rssadapt_raise_rate()
316 rix = ra->ra_rix; in rssadapt_raise_rate()
326 IEEE80211_DPRINTF(ra->ra_rs->vap, IEEE80211_MSG_RATECTL, in rssadapt_raise_rate()
328 ra->ra_rates.rs_rates[rix + 1] & IEEE80211_RATE_VAL, in rssadapt_raise_rate()
331 ra->ra_last_raise = ticks; in rssadapt_raise_rate()
339 struct ieee80211_rssadapt_node *ra = ni->ni_rctls; in rssadapt_tx_complete() local
342 if (!ra) in rssadapt_tx_complete()
354 ra->ra_nok++; in rssadapt_tx_complete()
355 if ((ra->ra_rix + 1) < ra->ra_rates.rs_nrates && in rssadapt_tx_complete()
356 (ticks - ra->ra_last_raise) >= ra->ra_raise_interval) in rssadapt_tx_complete()
357 rssadapt_raise_rate(ra, pktlen, rssi); in rssadapt_tx_complete()
359 ra->ra_nfail++; in rssadapt_tx_complete()
360 rssadapt_lower_rate(ra, pktlen, rssi); in rssadapt_tx_complete()