Lines Matching refs:ni

130 ieee80211_ra_vht_use_sgi(struct ieee80211_node *ni)
132 if ((ni->ni_chan->ic_xflags & IEEE80211_CHANX_160MHZ) &&
133 ieee80211_node_supports_vht_chan160(ni)) {
134 if (ni->ni_flags & IEEE80211_NODE_VHT_SGI160)
138 if ((ni->ni_chan->ic_xflags & IEEE80211_CHANX_80MHZ) &&
139 ieee80211_node_supports_vht_chan80(ni)) {
140 if (ni->ni_flags & IEEE80211_NODE_VHT_SGI80)
175 struct ieee80211_node *ni)
177 if (ni->ni_txmcs <= 0)
180 return ni->ni_txmcs - 1;
216 struct ieee80211_node *ni)
220 max_mcs = ieee80211_ra_vht_get_max_mcs(ni->ni_vht_rxmcs,
221 ni->ni_vht_ss, ieee80211_node_supports_ht_chan40(ni));
223 panic("ni->ni_vht_ss invalid: %u", ni->ni_vht_ss);
225 if (ni->ni_txmcs >= max_mcs)
228 return ni->ni_txmcs + 1;
233 struct ieee80211_node *ni)
237 int sgi = ieee80211_ra_vht_use_sgi(ni);
238 int mcs = ni->ni_txmcs;
239 int nss = ni->ni_vht_ss;
300 struct ieee80211_node *ni, const struct ieee80211_vht_rateset *rsnext)
307 rs = ieee80211_ra_vht_get_rateset(ni->ni_txmcs, ni->ni_vht_ss, 0, 1,
308 ieee80211_ra_vht_use_sgi(ni));
312 ni->ni_txmcs = 0;
313 ni->ni_vht_ss = rsnext->num_ss;
329 ni->ni_txmcs = mcs;
335 ni->ni_txmcs = ieee80211_ra_vht_best_mcs_in_rateset(rn, rsnext);
338 rn->candidate_rates[rsnext->num_ss - 1] |= (1 << ni->ni_txmcs);
341 (1 << ieee80211_ra_vht_next_intra_rate(rn, ni));
344 (1 << ieee80211_ra_vht_next_lower_intra_rate(rn, ni));
351 struct ieee80211_node *ni)
356 next = ieee80211_ra_vht_next_lower_intra_rate(rn, ni);
358 next = ieee80211_ra_vht_next_intra_rate(rn, ni);
383 struct ieee80211_node *ni)
389 int nss = ni->ni_vht_ss;
390 int sgi = ieee80211_ra_vht_use_sgi(ni);
393 (1 << ni->ni_txmcs));
396 rs = ieee80211_ra_vht_get_rateset(ni->ni_txmcs, nss, 0, 1, sgi);
398 if (ni->ni_txmcs == 0 ||
400 ieee80211_ra_vht_trigger_next_rateset(rn, ni);
404 if (ni->ni_txmcs == rn->max_mcs[nss - 1] ||
406 ieee80211_ra_vht_trigger_next_rateset(rn, ni);
415 next_mcs = ieee80211_ra_vht_next_mcs(rn, ni);
416 if (next_mcs == ni->ni_txmcs) {
417 ieee80211_ra_vht_trigger_next_rateset(rn, ni);
421 g = &rn->g[rs->idx][ni->ni_txmcs];
424 ieee80211_ra_vht_trigger_next_rateset(rn, ni);
430 if (best_mcs != ni->ni_txmcs) {
432 best_mcs < ni->ni_txmcs) {
433 ieee80211_ra_vht_trigger_next_rateset(rn, ni);
437 best_mcs > ni->ni_txmcs) {
438 ieee80211_ra_vht_trigger_next_rateset(rn, ni);
456 struct ieee80211_node *ni)
460 rsnext = ieee80211_ra_vht_next_rateset(rn, ni);
462 ieee80211_ra_vht_probe_next_rateset(rn, ni, rsnext);
470 struct ieee80211_node *ni)
477 struct ieee80211_node *ni)
484 ieee80211_ra_vht_use_sgi(ni));
508 rs->sgi != ieee80211_ra_vht_use_sgi(ni))
531 struct ieee80211_node *ni)
534 rn->probed_rates[ni->ni_vht_ss - 1] |= (1 << ni->ni_txmcs);
535 ni->ni_txmcs = ieee80211_ra_vht_next_mcs(rn, ni);
540 struct ieee80211_node *ni, struct ieee80211_ra_vht_node *rn)
550 ni_max_mcs = ieee80211_ra_vht_get_max_mcs(ni->ni_vht_rxmcs,
551 nss, ieee80211_node_supports_ht_chan40(ni));
579 struct ieee80211com *ic, struct ieee80211_node *ni,
603 ieee80211_ra_vht_use_sgi(ni));
616 ether_sprintf(ni->ni_macaddr),
627 ieee80211_ra_vht_use_sgi(ni));
646 struct ieee80211com *ic, struct ieee80211_node *ni)
650 int sgi = ieee80211_ra_vht_use_sgi(ni);
652 int nss = ni->ni_vht_ss;
657 ieee80211_ra_vht_init_valid_rates(ic, ni, rn);
662 rs = ieee80211_ra_vht_get_rateset(ni->ni_txmcs, nss, 0, 1, sgi);
663 g = &rn->g[rs->idx][ni->ni_txmcs];
667 if (!(rn->valid_probes[nss - 1] & (1UL << ni->ni_txmcs))) {
672 if (!ieee80211_ra_vht_intra_mode_ra_finished(rn, ni)) {
673 ieee80211_ra_vht_probe_next_rate(rn, ni);
675 ni->ni_txmcs, ni->ni_vht_ss));
676 } else if (ieee80211_ra_vht_inter_mode_ra_finished(rn, ni)) {
677 ieee80211_ra_vht_best_rate(rn, ni);
678 ni->ni_txmcs = rn->best_mcs;
679 ni->ni_vht_ss = rn->best_nss;
690 rs = ieee80211_ra_vht_get_rateset(ni->ni_txmcs, nss, 0, 1, sgi);
697 if (ni->ni_txmcs == 0) {
698 rsnext = ieee80211_ra_vht_next_rateset(rn, ni);
700 ieee80211_ra_vht_probe_next_rateset(rn, ni,
707 ni->ni_txmcs = ieee80211_ra_vht_next_mcs(rn, ni);
708 rn->candidate_rates[nss - 1] = (1 << ni->ni_txmcs);
715 if (ni->ni_txmcs == rn->max_mcs[nss - 1]) {
716 rsnext = ieee80211_ra_vht_next_rateset(rn, ni);
718 ieee80211_ra_vht_probe_next_rateset(rn, ni,
725 ni->ni_txmcs = ieee80211_ra_vht_next_mcs(rn, ni);
726 rn->candidate_rates[nss - 1] = (1 << ni->ni_txmcs);