Lines Matching refs:ni

208 ieee80211_fix_rate(struct ieee80211com *ic, struct ieee80211_node *ni,
227 srs = &ic->ic_sup_rates[ieee80211_chan2mode(ic, ni->ni_chan)];
228 nrs = &ni->ni_rates;
365 struct ieee80211_node *ni = ic->ic_bss;
375 ni->ni_rsn_supp_state = RSNA_SUPP_PTKSTART;
383 if ((ni = ieee80211_find_node(ic, macaddr)) == NULL) {
388 if (ni->ni_state != IEEE80211_STA_ASSOC ||
389 ni->ni_rsn_state != RSNA_AUTHENTICATION_2) {
390 DPRINTF(("unexpected in state %d\n", ni->ni_rsn_state));
393 ni->ni_rsn_state = RSNA_INITPMK;
396 if ((pmk = ieee80211_pmksa_find(ic, ni, NULL)) == NULL) {
398 IEEE80211_SEND_MGMT(ic, ni, IEEE80211_FC0_SUBTYPE_DEAUTH,
400 ieee80211_node_leave(ic, ni);
403 memcpy(ni->ni_pmk, pmk->pmk_key, IEEE80211_PMK_LEN);
404 memcpy(ni->ni_pmkid, pmk->pmk_pmkid, IEEE80211_PMKID_LEN);
405 ni->ni_flags |= IEEE80211_NODE_PMK;
408 return ieee80211_send_4way_msg1(ic, ni);
417 ieee80211_node_gtk_rekey(void *arg, struct ieee80211_node *ni)
421 if (ni->ni_state != IEEE80211_STA_ASSOC ||
422 ni->ni_rsn_gstate != RSNA_IDLE)
426 ni->ni_flags |= IEEE80211_NODE_REKEY;
427 if (ieee80211_send_group_msg1(ic, ni) != 0)
428 ni->ni_flags &= ~IEEE80211_NODE_REKEY;
523 struct ieee80211_node *ni = arg;
524 struct ieee80211com *ic = ni->ni_ic;
528 if (++ni->ni_sa_query_count >= 3) {
529 ni->ni_flags &= ~IEEE80211_NODE_SA_QUERY;
530 ni->ni_flags |= IEEE80211_NODE_SA_QUERY_FAILED;
532 ieee80211_sa_query_request(ic, ni);
541 ieee80211_sa_query_request(struct ieee80211com *ic, struct ieee80211_node *ni)
545 if (!(ni->ni_flags & IEEE80211_NODE_SA_QUERY)) {
546 ni->ni_flags |= IEEE80211_NODE_SA_QUERY;
547 ni->ni_flags &= ~IEEE80211_NODE_SA_QUERY_FAILED;
548 ni->ni_sa_query_count = 0;
551 ni->ni_sa_query_trid++;
554 IEEE80211_SEND_ACTION(ic, ni, IEEE80211_CATEG_SA_QUERY,
556 timeout_add_msec(&ni->ni_sa_query_to, 10);
561 ieee80211_ht_negotiate(struct ieee80211com *ic, struct ieee80211_node *ni)
565 ni->ni_flags &= ~(IEEE80211_NODE_HT | IEEE80211_NODE_HT_SGI20 |
581 if (!ieee80211_node_supports_ht(ni)) {
589 if (isset(ni->ni_basic_mcs, i) &&
606 (ni->ni_rsnciphers & IEEE80211_CIPHER_USEGROUP ||
607 ni->ni_rsnciphers & IEEE80211_CIPHER_TKIP)) {
612 ni->ni_flags |= IEEE80211_NODE_HT;
614 if (ieee80211_node_supports_ht_sgi20(ni) &&
616 ni->ni_flags |= IEEE80211_NODE_HT_SGI20;
617 if (ieee80211_node_supports_ht_sgi40(ni) &&
619 ni->ni_flags |= IEEE80211_NODE_HT_SGI40;
623 ieee80211_vht_negotiate(struct ieee80211com *ic, struct ieee80211_node *ni)
627 ni->ni_flags &= ~(IEEE80211_NODE_VHT | IEEE80211_NODE_VHT_SGI80 |
642 if (!ieee80211_node_supports_vht(ni)) {
650 uint16_t basic_mcs = (ni->ni_vht_basic_mcs &
664 ni->ni_flags |= IEEE80211_NODE_VHT;
666 if ((ni->ni_vhtcaps & IEEE80211_VHTCAP_SGI80) &&
668 ni->ni_flags |= IEEE80211_NODE_VHT_SGI80;
669 if ((ni->ni_vhtcaps & IEEE80211_VHTCAP_SGI160) &&
671 ni->ni_flags |= IEEE80211_NODE_VHT_SGI160;
678 struct ieee80211_node *ni = ba->ba_ni;
679 struct ieee80211com *ic = ni->ni_ic;
684 tid = ((caddr_t)ba - (caddr_t)ni->ni_tx_ba) / sizeof(*ba);
688 if (ni->ni_addba_req_intval[tid] <
690 ni->ni_addba_req_intval[tid]++;
695 IEEE80211_SEND_ACTION(ic, ni, IEEE80211_CATEG_BA,
701 ieee80211_delba_request(ic, ni, IEEE80211_REASON_TIMEOUT,
711 struct ieee80211_node *ni = ba->ba_ni;
712 struct ieee80211com *ic = ni->ni_ic;
721 tid = ((caddr_t)ba - (caddr_t)ni->ni_rx_ba) / sizeof(*ba);
722 ieee80211_delba_request(ic, ni, IEEE80211_REASON_TIMEOUT, 0, tid);
731 ieee80211_addba_request(struct ieee80211com *ic, struct ieee80211_node *ni,
734 struct ieee80211_tx_ba *ba = &ni->ni_tx_ba[tid];
742 ba->ba_ni = ni;
760 int err = ic->ic_ampdu_tx_start(ic, ni, tid);
763 ieee80211_addba_resp_refuse(ic, ni, tid,
766 ieee80211_addba_resp_accept(ic, ni, tid);
771 IEEE80211_SEND_ACTION(ic, ni, IEEE80211_CATEG_BA,
780 ieee80211_delba_request(struct ieee80211com *ic, struct ieee80211_node *ni,
787 IEEE80211_SEND_ACTION(ic, ni, IEEE80211_CATEG_BA,
793 ic->ic_ampdu_tx_stop(ic, ni, tid);
794 ieee80211_node_tx_ba_clear(ni, tid);
797 struct ieee80211_rx_ba *ba = &ni->ni_rx_ba[tid];
801 ic->ic_ampdu_rx_stop(ic, ni, tid);
823 struct ieee80211_node *ni, uint16_t seq)
827 IEEE80211_SEND_MGMT(ic, ni, IEEE80211_FC0_SUBTYPE_AUTH, seq + 1);
831 ether_sprintf((u_int8_t *)ni->ni_macaddr),
832 ni->ni_state != IEEE80211_STA_CACHE ?
834 ieee80211_node_newstate(ni, IEEE80211_STA_AUTH);
881 struct ieee80211_node *ni, struct ieee80211_rxinfo *rxi, u_int16_t seq,
901 ni->ni_rsn_supp_state = RSNA_SUPP_PTKSTART;
917 if (ni == ic->ic_bss) {
918 ni = ieee80211_find_node(ic, wh->i_addr2);
919 if (ni == NULL)
920 ni = ieee80211_alloc_node(ic, wh->i_addr2);
921 if (ni == NULL) {
924 IEEE80211_ADDR_COPY(ni->ni_bssid, ic->ic_bss->ni_bssid);
925 ni->ni_rssi = rxi->rxi_rssi;
926 ni->ni_rstamp = rxi->rxi_tstamp;
927 ni->ni_chan = ic->ic_bss->ni_chan;
935 if (ic->ic_newauth && ic->ic_newauth(ic, ni,
936 ni->ni_state != IEEE80211_STA_CACHE, seq) != 0)
938 ieee80211_auth_open_confirm(ic, ni, seq);
965 if (ni != ic->ic_bss)
966 ni->ni_fails++;
1004 ieee80211_stop_ampdu_tx(struct ieee80211com *ic, struct ieee80211_node *ni,
1009 for (tid = 0; tid < nitems(ni->ni_tx_ba); tid++) {
1010 struct ieee80211_tx_ba *ba = &ni->ni_tx_ba[tid];
1016 ic->ic_ampdu_tx_stop(ic, ni, tid);
1020 ieee80211_delba_request(ic, ni,
1027 struct ieee80211_node *ni)
1038 if (ni->ni_rsn_supp_state != RSNA_SUPP_PTKNEGOTIATING)
1041 ni->ni_assoc_fail |= IEEE80211_NODE_ASSOCFAIL_WPA_KEY;
1043 if (ni != ic->ic_bss)
1057 struct ieee80211_node *ni;
1073 ni = ic->ic_bss; /* NB: no reference held */
1088 ieee80211_stop_ampdu_tx(ic, ni, mgt);
1089 ieee80211_ba_del(ni);
1092 IEEE80211_SEND_MGMT(ic, ni,
1099 RBT_FOREACH(ni, ieee80211_tree, &ic->ic_tree) {
1100 if (ni->ni_state != IEEE80211_STA_ASSOC)
1102 IEEE80211_SEND_MGMT(ic, ni,
1118 IEEE80211_SEND_MGMT(ic, ni,
1125 RBT_FOREACH(ni, ieee80211_tree, &ic->ic_tree) {
1126 IEEE80211_SEND_MGMT(ic, ni,
1144 ieee80211_ba_del(ni);
1153 ni->ni_rsn_supp_state = RSNA_SUPP_INITIALIZE;
1154 ni->ni_assoc_fail = 0;
1161 IEEE80211_ADDR_COPY(ni->ni_macaddr, etherbroadcastaddr);
1162 IEEE80211_ADDR_COPY(ni->ni_bssid, etherbroadcastaddr);
1163 ni->ni_rates = ic->ic_sup_rates[
1164 ieee80211_chan2mode(ic, ni->ni_chan)];
1165 ni->ni_associd = 0;
1166 ni->ni_rstamp = 0;
1167 ni->ni_rsn_supp_state = RSNA_SUPP_INITIALIZE;
1187 IEEE80211_SEND_MGMT(ic, ni,
1201 ieee80211_stop_ampdu_tx(ic, ni, mgt);
1207 ni = ieee80211_find_node(ic, ic->ic_bss->ni_macaddr);
1208 if (ni != NULL)
1209 ni->ni_fails++;
1216 ieee80211_check_wpa_supplicant_failure(ic, ni);
1217 ni->ni_rsn_supp_state = RSNA_SUPP_INITIALIZE;
1228 IEEE80211_SEND_MGMT(ic, ni,
1236 IEEE80211_SEND_MGMT(ic, ni,
1249 ieee80211_stop_ampdu_tx(ic, ni, mgt);
1250 ieee80211_ba_del(ni);
1253 IEEE80211_SEND_MGMT(ic, ni,
1259 IEEE80211_SEND_MGMT(ic, ni,
1277 IEEE80211_SEND_MGMT(ic, ni,
1281 ieee80211_stop_ampdu_tx(ic, ni, mgt);
1282 ieee80211_ba_del(ni);
1283 IEEE80211_SEND_MGMT(ic, ni,
1302 if (ni->ni_txrate >= ni->ni_rates.rs_nrates)
1304 __func__, ni->ni_txrate);
1310 ether_sprintf(ni->ni_bssid));
1312 ni->ni_esslen);
1313 rate = ni->ni_rates.rs_rates[ni->ni_txrate] &
1316 ieee80211_chan2ieee(ic, ni->ni_chan));
1317 if (ni->ni_flags & IEEE80211_NODE_HT)
1318 printf(" start MCS %u", ni->ni_txmcs);
1329 (ni->ni_flags & IEEE80211_NODE_HT) ?
1331 (ni->ni_flags & IEEE80211_NODE_VHT) ?
1340 ni->ni_assoc_fail = 0;