Lines Matching refs:ni

79 static void	amrr_node_stats(struct ieee80211_node *ni, struct sbuf *s);
149 amrr_node_is_11n(struct ieee80211_node *ni)
152 if (ni->ni_chan == NULL)
154 if (ni->ni_chan == IEEE80211_CHAN_ANYC)
156 if (IEEE80211_IS_CHAN_HT(ni->ni_chan) && ni->ni_htrates.rs_nrates == 0)
158 return (IEEE80211_IS_CHAN_HT(ni->ni_chan));
162 amrr_node_init(struct ieee80211_node *ni)
165 struct ieee80211vap *vap = ni->ni_vap;
176 if (ni->ni_rctls == NULL) {
177 ni->ni_rctls = amn = IEEE80211_MALLOC(sizeof(struct ieee80211_amrr_node),
185 amn = ni->ni_rctls;
193 if (amrr_node_is_11n(ni)) {
195 IEEE80211_NOTE(ni->ni_vap, IEEE80211_MSG_RATECTL, ni,
197 rs = (struct ieee80211_rateset *) &ni->ni_htrates;
199 IEEE80211_NOTE(ni->ni_vap, IEEE80211_MSG_RATECTL, ni,
201 rs = &ni->ni_rates;
208 if (! amrr_node_is_11n(ni))
217 if (amrr_node_is_11n(ni)) {
226 if (amrr_node_is_11n(ni))
230 ni->ni_txrate = rate;
235 IEEE80211_NOTE(ni->ni_vap, IEEE80211_MSG_RATECTL, ni,
238 amrr_node_is_11n(ni) ? "MCS " : "",
243 amrr_node_deinit(struct ieee80211_node *ni)
245 IEEE80211_FREE(ni->ni_rctls, M_80211_RATECTL);
250 struct ieee80211_node *ni)
258 if (amrr_node_is_11n(ni)) {
260 rs = (struct ieee80211_rateset *) &ni->ni_htrates;
262 rs = &ni->ni_rates;
267 IEEE80211_NOTE(ni->ni_vap, IEEE80211_MSG_RATECTL, ni,
290 IEEE80211_NOTE(ni->ni_vap, IEEE80211_MSG_RATECTL, ni,
313 IEEE80211_NOTE(ni->ni_vap, IEEE80211_MSG_RATECTL, ni,
334 amrr_rate(struct ieee80211_node *ni, void *arg __unused, uint32_t iarg __unused)
336 struct ieee80211_amrr_node *amn = ni->ni_rctls;
344 ni->ni_txrate = ni->ni_rates.rs_rates[0];
351 if (amrr_node_is_11n(ni)) {
353 rs = (struct ieee80211_rateset *) &ni->ni_htrates;
355 rs = &ni->ni_rates;
359 rix = amrr_update(amrr, amn, ni);
362 ni->ni_txrate = rs->rs_rates[rix];
364 if (amrr_node_is_11n(ni))
365 ni->ni_txrate |= IEEE80211_RATE_MCS;
367 ni->ni_txrate &= IEEE80211_RATE_VAL;
382 amrr_tx_complete(const struct ieee80211_node *ni,
385 struct ieee80211_amrr_node *amn = ni->ni_rctls;
402 amrr_tx_update_cb(void *arg, struct ieee80211_node *ni)
405 struct ieee80211_amrr_node *amn = ni->ni_rctls;
433 amrr_tx_update_cb(stats, stats->ni);
481 struct ieee80211_node *ni, struct sbuf *s)
486 if (amrr_node_is_11n(ni)) {
487 rs = (struct ieee80211_rateset *) &ni->ni_htrates;
491 rs = &ni->ni_rates;
498 amrr_node_stats(struct ieee80211_node *ni, struct sbuf *s)
500 struct ieee80211_amrr_node *amn = ni->ni_rctls;
507 amrr_print_node_rate(amn, ni, s);