Lines Matching full:ni
224 ath_rate_update(struct ath_softc *sc, struct ieee80211_node *ni, int rate) in ath_rate_update() argument
226 struct ath_node *an = ATH_NODE(ni); in ath_rate_update()
228 struct ieee80211vap *vap = ni->ni_vap; in ath_rate_update()
234 IEEE80211_NOTE(vap, IEEE80211_MSG_RATECTL, ni, in ath_rate_update()
236 ni->ni_rates.rs_nrates > 0 ? in ath_rate_update()
237 (ni->ni_rates.rs_rates[rate] & IEEE80211_RATE_VAL) / 2 : 0); in ath_rate_update()
247 if (ni->ni_rates.rs_nrates > 0) { in ath_rate_update()
248 ni->ni_txrate = ni->ni_rates.rs_rates[rate] & IEEE80211_RATE_VAL; in ath_rate_update()
249 amn->amn_tx_rix0 = sc->sc_rixmap[ni->ni_txrate]; in ath_rate_update()
260 ni->ni_rates.rs_rates[rate]&IEEE80211_RATE_VAL]; in ath_rate_update()
269 ni->ni_rates.rs_rates[rate]&IEEE80211_RATE_VAL]; in ath_rate_update()
309 ath_rate_ctl_start(struct ath_softc *sc, struct ieee80211_node *ni) in ath_rate_ctl_start() argument
311 #define RATE(_ix) (ni->ni_rates.rs_rates[(_ix)] & IEEE80211_RATE_VAL) in ath_rate_ctl_start()
312 const struct ieee80211_txparam *tp = ni->ni_txparms; in ath_rate_ctl_start()
315 KASSERT(ni->ni_rates.rs_nrates > 0, ("no rates")); in ath_rate_ctl_start()
322 srate = ni->ni_rates.rs_nrates - 1; in ath_rate_ctl_start()
341 srate = ni->ni_rates.rs_nrates - 1; in ath_rate_ctl_start()
351 ath_rate_update(sc, ni, srate < 0 ? 0 : srate); in ath_rate_ctl_start()
359 ath_rate_ctl(void *arg, struct ieee80211_node *ni) in ath_rate_ctl() argument
362 struct amrr_node *amn = ATH_NODE_AMRR(ATH_NODE (ni)); in ath_rate_ctl()
374 IEEE80211_NOTE(ni->ni_vap, IEEE80211_MSG_RATECTL, ni, in ath_rate_ctl()
381 rix + 1 < ni->ni_rates.rs_nrates) { in ath_rate_ctl()
385 IEEE80211_NOTE(ni->ni_vap, IEEE80211_MSG_RATECTL, ni, in ath_rate_ctl()
398 IEEE80211_NOTE(ni->ni_vap, in ath_rate_ctl()
399 IEEE80211_MSG_RATECTL, ni, in ath_rate_ctl()
405 IEEE80211_NOTE(ni->ni_vap, in ath_rate_ctl()
406 IEEE80211_MSG_RATECTL, ni, in ath_rate_ctl()
425 ath_rate_update(sc, ni, rix); in ath_rate_ctl()