Lines Matching refs:ni
199 ath_rate_update(struct ath_softc *sc, struct ieee80211_node *ni, int rate) in ath_rate_update() argument
201 struct ath_node *an = ATH_NODE(ni); in ath_rate_update()
203 struct ieee80211vap *vap = ni->ni_vap; in ath_rate_update()
209 IEEE80211_NOTE(vap, IEEE80211_MSG_RATECTL, ni, in ath_rate_update()
211 ni->ni_rates.rs_nrates > 0 ? in ath_rate_update()
212 (ni->ni_rates.rs_rates[rate] & IEEE80211_RATE_VAL) / 2 : 0); in ath_rate_update()
221 if (ni->ni_rates.rs_nrates == 0) in ath_rate_update()
224 ni->ni_txrate = ni->ni_rates.rs_rates[rate] & IEEE80211_RATE_VAL; in ath_rate_update()
225 on->on_tx_rix0 = sc->sc_rixmap[ni->ni_txrate]; in ath_rate_update()
241 ni->ni_rates.rs_rates[rate]&IEEE80211_RATE_VAL]; in ath_rate_update()
250 ni->ni_rates.rs_rates[rate]&IEEE80211_RATE_VAL]; in ath_rate_update()
284 ath_rate_ctl_start(struct ath_softc *sc, struct ieee80211_node *ni) in ath_rate_ctl_start() argument
286 #define RATE(_ix) (ni->ni_rates.rs_rates[(_ix)] & IEEE80211_RATE_VAL) in ath_rate_ctl_start()
287 const struct ieee80211_txparam *tp = ni->ni_txparms; in ath_rate_ctl_start()
290 KASSERT(ni->ni_rates.rs_nrates > 0, ("no rates")); in ath_rate_ctl_start()
297 srate = ni->ni_rates.rs_nrates - 1; in ath_rate_ctl_start()
316 srate = ni->ni_rates.rs_nrates - 1; in ath_rate_ctl_start()
326 ath_rate_update(sc, ni, srate < 0 ? 0 : srate); in ath_rate_ctl_start()
334 ath_rate_ctl(void *arg, struct ieee80211_node *ni) in ath_rate_ctl() argument
337 struct onoe_node *on = ATH_NODE_ONOE(ATH_NODE(ni)); in ath_rate_ctl()
338 struct ieee80211_rateset *rs = &ni->ni_rates; in ath_rate_ctl()
360 IEEE80211_NOTE(ni->ni_vap, IEEE80211_MSG_RATECTL, ni, in ath_rate_ctl()
390 IEEE80211_NOTE(ni->ni_vap, IEEE80211_MSG_RATECTL, ni, in ath_rate_ctl()
392 ni->ni_txrate / 2, in ath_rate_ctl()
395 ath_rate_update(sc, ni, nrate); in ath_rate_ctl()