Lines Matching full:rate
43 * AMRR rate control. See:
45 * "IEEE 802.11 Rate Adaptation: A Practical Approach" by
83 static int ath_rateinterval = 1000; /* rate ctl interval (ms) */
88 int rate);
125 * the returned rate with the relevant preamble rate flag.
218 * The code below assumes that we are dealing with hardware multi rate retry
224 ath_rate_update(struct ath_softc *sc, struct ieee80211_node *ni, int rate) in ath_rate_update() argument
232 KASSERT(rt != NULL, ("no rate table, mode %u", sc->sc_curmode)); in ath_rate_update()
235 "%s: set xmit rate to %dM", __func__, in ath_rate_update()
237 (ni->ni_rates.rs_rates[rate] & IEEE80211_RATE_VAL) / 2 : 0); in ath_rate_update()
239 amn->amn_rix = rate; in ath_rate_update()
241 * Before associating a node has no rate set setup in ath_rate_update()
245 * lowest hardware rate. in ath_rate_update()
248 ni->ni_txrate = ni->ni_rates.rs_rates[rate] & IEEE80211_RATE_VAL; in ath_rate_update()
258 if (--rate >= 0) { in ath_rate_update()
260 ni->ni_rates.rs_rates[rate]&IEEE80211_RATE_VAL]; in ath_rate_update()
267 if (--rate >= 0) { in ath_rate_update()
269 ni->ni_rates.rs_rates[rate]&IEEE80211_RATE_VAL]; in ath_rate_update()
276 if (rate > 0) { in ath_rate_update()
306 * Set the starting transmit rate for a node.
311 #define RATE(_ix) (ni->ni_rates.rs_rates[(_ix)] & IEEE80211_RATE_VAL) in ath_rate_ctl_start() macro
318 * No fixed rate is requested. For 11b start with in ath_rate_ctl_start()
319 * the highest negotiated rate; otherwise, for 11g in ath_rate_ctl_start()
325 * Scan the negotiated rate set to find the in ath_rate_ctl_start()
326 * closest rate. in ath_rate_ctl_start()
328 /* NB: the rate set is assumed sorted */ in ath_rate_ctl_start()
329 for (; srate >= 0 && RATE(srate) > 72; srate--) in ath_rate_ctl_start()
334 * A fixed rate is to be used; ic_fixed_rate is the in ath_rate_ctl_start()
335 * IEEE code for this rate (sans basic bit). Convert this in ath_rate_ctl_start()
336 * to the index into the negotiated rate set for in ath_rate_ctl_start()
337 * the node. We know the rate is there because the in ath_rate_ctl_start()
338 * rate set is checked when the station associates. in ath_rate_ctl_start()
340 /* NB: the rate set is assumed sorted */ in ath_rate_ctl_start()
342 for (; srate >= 0 && RATE(srate) != tp->ucastrate; srate--) in ath_rate_ctl_start()
346 * The selected rate may not be available due to races in ath_rate_ctl_start()
348 * adhoc mode may not have any rate set so this lookup in ath_rate_ctl_start()
352 #undef RATE in ath_rate_ctl_start()
356 * Examine and potentially adjust the transmit rate.
386 "increase rate to %d", rix); in ath_rate_ctl()
400 "decrease rate recovery thr: %d", in ath_rate_ctl()
407 "decrease rate normal thr: %d", in ath_rate_ctl()
445 "rate control: operation interval (ms)"); in ath_rate_sysctlattach()