Lines Matching full:ni

80 vht_recv_action_placeholder(struct ieee80211_node *ni,
86 ieee80211_note(ni->ni_vap, "%s: called; fc=0x%.2x/0x%.2x",
93 vht_send_action_placeholder(struct ieee80211_node *ni,
98 ieee80211_note(ni->ni_vap, "%s: called; category=%d, action=%d",
219 ieee80211_vht_node_init(struct ieee80211_node *ni)
222 IEEE80211_NOTE(ni->ni_vap, IEEE80211_MSG_11N, ni,
224 ni->ni_flags |= IEEE80211_NODE_VHT;
228 ieee80211_vht_node_cleanup(struct ieee80211_node *ni)
231 IEEE80211_NOTE(ni->ni_vap, IEEE80211_MSG_11N, ni,
233 ni->ni_flags &= ~IEEE80211_NODE_VHT;
234 ni->ni_vhtcap = 0;
235 bzero(&ni->ni_vht_mcsinfo, sizeof(struct ieee80211_vht_mcs_info));
242 ieee80211_parse_vhtopmode(struct ieee80211_node *ni, const uint8_t *ie)
245 ni->ni_vht_chanwidth = ie[2];
246 ni->ni_vht_chan1 = ie[3];
247 ni->ni_vht_chan2 = ie[4];
248 ni->ni_vht_basicmcs = le16dec(ie + 5);
252 __func__, ni->ni_vht_chan1, ni->ni_vht_chan2, ni->ni_vht_chanwidth,
253 ni->ni_vht_basicmcs);
261 ieee80211_parse_vhtcap(struct ieee80211_node *ni, const uint8_t *ie)
265 ni->ni_vhtcap = le32dec(ie + 2);
268 ni->ni_vht_mcsinfo.rx_mcs_map = le16dec(ie + 6);
269 ni->ni_vht_mcsinfo.rx_highest = le16dec(ie + 8);
270 ni->ni_vht_mcsinfo.tx_mcs_map = le16dec(ie + 10);
271 ni->ni_vht_mcsinfo.tx_highest = le16dec(ie + 12);
275 ieee80211_vht_updateparams(struct ieee80211_node *ni,
282 ieee80211_parse_vhtcap(ni, vhtcap_ie);
283 ieee80211_parse_vhtopmode(ni, vhtop_ie);
288 ieee80211_setup_vht_rates(struct ieee80211_node *ni,
303 ieee80211_vht_node_join(struct ieee80211_node *ni)
306 IEEE80211_NOTE(ni->ni_vap, IEEE80211_MSG_11N, ni,
311 ieee80211_vht_node_leave(struct ieee80211_node *ni)
314 IEEE80211_NOTE(ni->ni_vap, IEEE80211_MSG_11N, ni,
340 ieee80211_vht_get_vhtcap_ie(struct ieee80211_node *ni,
343 struct ieee80211vap *vap = ni->ni_vap;
365 val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap,
375 val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap,
392 val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap,
402 val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap,
412 val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap,
438 val2 = !! _IEEE80211_MASKSHIFT(ni->ni_vhtcap,
451 val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap,
480 val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap,
491 val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap,
502 val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap,
515 val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap,
530 val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap,
547 val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap,
561 val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap,
570 val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap,
580 val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap,
593 val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap,
610 val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap,
620 val2 = _IEEE80211_MASKSHIFT(ni->ni_vhtcap,
652 val2 = (ni->ni_vht_mcsinfo.tx_mcs_map >> (i*2)) & 0x3;
672 ieee80211_add_vhtcap(uint8_t *frm, struct ieee80211_node *ni)
676 ieee80211_vht_get_vhtcap_ie(ni, &vhtcap, 1);
760 ieee80211_add_vhtinfo(uint8_t *frm, struct ieee80211_node *ni)
768 *frm++ = ieee80211_vht_get_chwidth_ie(ni->ni_chan);
771 *frm++ = ni->ni_chan->ic_vht_ch_freq1;
774 *frm++ = ni->ni_chan->ic_vht_ch_freq2;
783 ieee80211_vht_update_cap(struct ieee80211_node *ni, const uint8_t *vhtcap_ie,
787 ieee80211_parse_vhtcap(ni, vhtcap_ie);
788 ieee80211_parse_vhtopmode(ni, vhtop_ie);
871 ieee80211_vht_get_vhtinfo_ie(struct ieee80211_node *ni,
881 ieee80211_vht_check_tx_vht(const struct ieee80211_node *ni)
886 if (ni == NULL || ni->ni_chan == IEEE80211_CHAN_ANYC ||
887 ni->ni_vap == NULL || ni->ni_vap->iv_bss == NULL)
890 vap = ni->ni_vap;
896 return (IEEE80211_IS_CHAN_VHT(ni->ni_chan));
906 ieee80211_vht_check_tx_vht40(const struct ieee80211_node *ni)
911 if (!ieee80211_vht_check_tx_vht(ni))
914 vap = ni->ni_vap;
918 IEEE80211_IS_CHAN_VHT40(ni->ni_chan) &&
919 (ni->ni_chw == IEEE80211_STA_RX_BW_40));
929 ieee80211_vht_check_tx_vht80(const struct ieee80211_node *ni)
934 if (!ieee80211_vht_check_tx_vht(ni))
937 vap = ni->ni_vap;
941 IEEE80211_IS_CHAN_VHT80(ni->ni_chan) &&
942 (ni->ni_chw == IEEE80211_STA_RX_BW_80));
952 ieee80211_vht_check_tx_vht160(const struct ieee80211_node *ni)
957 if (!ieee80211_vht_check_tx_vht(ni))
960 vap = ni->ni_vap;
963 if (ni->ni_chw != IEEE80211_STA_RX_BW_160)
967 IEEE80211_IS_CHAN_VHT160(ni->ni_chan))
971 IEEE80211_IS_CHAN_VHT80P80(ni->ni_chan))
988 * @param ni the ieee80211_node to check
994 ieee80211_vht_check_tx_bw(const struct ieee80211_node *ni,
1000 return (ieee80211_vht_check_tx_vht(ni));
1002 return (ieee80211_vht_check_tx_vht40(ni));
1004 return (ieee80211_vht_check_tx_vht80(ni));
1006 return (ieee80211_vht_check_tx_vht160(ni));