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()
250 dot11rate = ni->ni_rates.rs_rates[rate] & IEEE80211_RATE_VAL; in ath_rate_update()
261 if (--rate >= 0) { in ath_rate_update()
263 ni->ni_rates.rs_rates[rate]&IEEE80211_RATE_VAL]; in ath_rate_update()
270 if (--rate >= 0) { in ath_rate_update()
272 ni->ni_rates.rs_rates[rate]&IEEE80211_RATE_VAL]; in ath_rate_update()
279 if (rate > 0) { in ath_rate_update()
309 * Set the starting transmit rate for a node.
314 #define RATE(_ix) (ni->ni_rates.rs_rates[(_ix)] & IEEE80211_RATE_VAL) in ath_rate_ctl_start() macro
321 * No fixed rate is requested. For 11b start with in ath_rate_ctl_start()
322 * the highest negotiated rate; otherwise, for 11g in ath_rate_ctl_start()
328 * Scan the negotiated rate set to find the in ath_rate_ctl_start()
329 * closest rate. in ath_rate_ctl_start()
331 /* NB: the rate set is assumed sorted */ in ath_rate_ctl_start()
332 for (; srate >= 0 && RATE(srate) > 72; srate--) in ath_rate_ctl_start()
337 * A fixed rate is to be used; ic_fixed_rate is the in ath_rate_ctl_start()
338 * IEEE code for this rate (sans basic bit). Convert this in ath_rate_ctl_start()
339 * to the index into the negotiated rate set for in ath_rate_ctl_start()
340 * the node. We know the rate is there because the in ath_rate_ctl_start()
341 * rate set is checked when the station associates. in ath_rate_ctl_start()
343 /* NB: the rate set is assumed sorted */ in ath_rate_ctl_start()
345 for (; srate >= 0 && RATE(srate) != tp->ucastrate; srate--) in ath_rate_ctl_start()
349 * The selected rate may not be available due to races in ath_rate_ctl_start()
351 * adhoc mode may not have any rate set so this lookup in ath_rate_ctl_start()
355 #undef RATE in ath_rate_ctl_start()
359 * Examine and potentially adjust the transmit rate.
389 "increase rate to %d", rix); in ath_rate_ctl()
403 "decrease rate recovery thr: %d", in ath_rate_ctl()
410 "decrease rate normal thr: %d", in ath_rate_ctl()
448 "rate control: operation interval (ms)"); in ath_rate_sysctlattach()