Lines Matching refs:vap

154 ieee80211_node_vattach(struct ieee80211vap *vap)  in ieee80211_node_vattach()  argument
157 vap->iv_max_aid = IEEE80211_AID_DEF; in ieee80211_node_vattach()
160 vap->iv_inact_init = IEEE80211_INACT_INIT; in ieee80211_node_vattach()
161 vap->iv_inact_auth = IEEE80211_INACT_AUTH; in ieee80211_node_vattach()
162 vap->iv_inact_run = IEEE80211_INACT_RUN; in ieee80211_node_vattach()
163 vap->iv_inact_probe = IEEE80211_INACT_PROBE; in ieee80211_node_vattach()
165 IEEE80211_DPRINTF(vap, IEEE80211_MSG_INACT, in ieee80211_node_vattach()
167 vap->iv_inact_init, vap->iv_inact_auth, in ieee80211_node_vattach()
168 vap->iv_inact_run, vap->iv_inact_probe); in ieee80211_node_vattach()
172 ieee80211_node_latevattach(struct ieee80211vap *vap) in ieee80211_node_latevattach() argument
176 IEEE80211_UNLOCK_ASSERT(vap->iv_ic); in ieee80211_node_latevattach()
178 if (vap->iv_opmode == IEEE80211_M_HOSTAP) { in ieee80211_node_latevattach()
180 if (vap->iv_max_aid < IEEE80211_AID_MIN) { in ieee80211_node_latevattach()
181 vap->iv_max_aid = IEEE80211_AID_MIN; in ieee80211_node_latevattach()
182 net80211_vap_printf(vap, in ieee80211_node_latevattach()
184 vap->iv_max_aid); in ieee80211_node_latevattach()
186 vap->iv_aid_bitmap = (uint32_t *) IEEE80211_MALLOC( in ieee80211_node_latevattach()
187 howmany(vap->iv_max_aid, 32) * sizeof(uint32_t), in ieee80211_node_latevattach()
190 if (vap->iv_aid_bitmap == NULL) { in ieee80211_node_latevattach()
192 net80211_vap_printf(vap, in ieee80211_node_latevattach()
194 __func__, vap->iv_max_aid); in ieee80211_node_latevattach()
195 vap->iv_max_aid = 0; in ieee80211_node_latevattach()
199 IEEE80211_LOCK(vap->iv_ic); in ieee80211_node_latevattach()
200 ieee80211_reset_bss(vap); in ieee80211_node_latevattach()
201 IEEE80211_UNLOCK(vap->iv_ic); in ieee80211_node_latevattach()
203 vap->iv_auth = ieee80211_authenticator_get(vap->iv_bss->ni_authmode); in ieee80211_node_latevattach()
207 ieee80211_node_vdetach(struct ieee80211vap *vap) in ieee80211_node_vdetach() argument
209 struct ieee80211com *ic = vap->iv_ic; in ieee80211_node_vdetach()
212 IEEE80211_UNLOCK_ASSERT(vap->iv_ic); in ieee80211_node_vdetach()
214 ieee80211_node_table_reset(&ic->ic_sta, vap); in ieee80211_node_vdetach()
216 if (vap->iv_bss != NULL) { in ieee80211_node_vdetach()
217 ieee80211_free_node(vap->iv_bss); in ieee80211_node_vdetach()
218 vap->iv_update_bss(vap, NULL); in ieee80211_node_vdetach()
221 if (vap->iv_aid_bitmap != NULL) { in ieee80211_node_vdetach()
222 IEEE80211_FREE(vap->iv_aid_bitmap, M_80211_NODE); in ieee80211_node_vdetach()
223 vap->iv_aid_bitmap = NULL; in ieee80211_node_vdetach()
234 struct ieee80211vap *vap = ni->ni_vap; in ieee80211_node_authorize() local
237 ni->ni_inact_reload = vap->iv_inact_run; in ieee80211_node_authorize()
240 IEEE80211_NOTE(vap, IEEE80211_MSG_INACT, ni, in ieee80211_node_authorize()
247 struct ieee80211vap *vap = ni->ni_vap; in ieee80211_node_unauthorize() local
250 ni->ni_inact_reload = vap->iv_inact_auth; in ieee80211_node_unauthorize()
254 IEEE80211_NOTE(vap, IEEE80211_MSG_INACT, ni, in ieee80211_node_unauthorize()
265 struct ieee80211vap *vap = ni->ni_vap; in ieee80211_node_setuptxparms() local
294 ni->ni_txparms = &vap->iv_txparms[mode]; in ieee80211_node_setuptxparms()
307 struct ieee80211vap *vap = ni->ni_vap; in ieee80211_node_set_chan() local
326 (vap->iv_flags_ht & IEEE80211_FHT_PUREN) == 0) in ieee80211_node_set_chan()
329 (vap->iv_flags_ht & IEEE80211_FHT_PUREN) == 0) in ieee80211_node_set_chan()
332 (vap->iv_flags & IEEE80211_F_PUREG) == 0) in ieee80211_node_set_chan()
335 ni->ni_txparms = &vap->iv_txparms[mode]; in ieee80211_node_set_chan()
351 ieee80211_create_ibss(struct ieee80211vap* vap, struct ieee80211_channel *chan) in ieee80211_create_ibss() argument
353 struct ieee80211com *ic = vap->iv_ic; in ieee80211_create_ibss()
356 IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, in ieee80211_create_ibss()
358 ieee80211_opmode_name[vap->iv_opmode], in ieee80211_create_ibss()
363 ni = ieee80211_alloc_node(&ic->ic_sta, vap, vap->iv_myaddr, in ieee80211_create_ibss()
369 IEEE80211_ADDR_COPY(ni->ni_bssid, vap->iv_myaddr); in ieee80211_create_ibss()
370 ni->ni_esslen = vap->iv_des_ssid[0].len; in ieee80211_create_ibss()
371 memcpy(ni->ni_essid, vap->iv_des_ssid[0].ssid, ni->ni_esslen); in ieee80211_create_ibss()
372 if (vap->iv_bss != NULL) in ieee80211_create_ibss()
373 copy_bss(ni, vap->iv_bss); in ieee80211_create_ibss()
375 if (vap->iv_flags & IEEE80211_F_PRIVACY) in ieee80211_create_ibss()
381 if (vap->iv_opmode == IEEE80211_M_IBSS) { in ieee80211_create_ibss()
383 if (vap->iv_flags & IEEE80211_F_DESBSSID) in ieee80211_create_ibss()
384 IEEE80211_ADDR_COPY(ni->ni_bssid, vap->iv_des_bssid); in ieee80211_create_ibss()
391 } else if (vap->iv_opmode == IEEE80211_M_AHDEMO) { in ieee80211_create_ibss()
392 if (vap->iv_flags & IEEE80211_F_DESBSSID) in ieee80211_create_ibss()
393 IEEE80211_ADDR_COPY(ni->ni_bssid, vap->iv_des_bssid); in ieee80211_create_ibss()
396 if ((vap->iv_caps & IEEE80211_C_TDMA) == 0) in ieee80211_create_ibss()
400 } else if (vap->iv_opmode == IEEE80211_M_MBSS) { in ieee80211_create_ibss()
401 ni->ni_meshidlen = vap->iv_mesh->ms_idlen; in ieee80211_create_ibss()
402 memcpy(ni->ni_meshid, vap->iv_mesh->ms_id, ni->ni_meshidlen); in ieee80211_create_ibss()
426 if (vap->iv_flags & IEEE80211_F_PUREG) { in ieee80211_create_ibss()
465 ieee80211_reset_bss(struct ieee80211vap *vap) in ieee80211_reset_bss() argument
467 struct ieee80211com *ic = vap->iv_ic; in ieee80211_reset_bss()
472 ieee80211_node_table_reset(&ic->ic_sta, vap); in ieee80211_reset_bss()
474 ieee80211_vap_reset_erp(vap); in ieee80211_reset_bss()
476 ni = ieee80211_alloc_node(&ic->ic_sta, vap, vap->iv_myaddr, in ieee80211_reset_bss()
479 obss = vap->iv_update_bss(vap, ieee80211_ref_node(ni)); in ieee80211_reset_bss()
485 IEEE80211_ADDR_COPY(ni->ni_bssid, vap->iv_myaddr); in ieee80211_reset_bss()
506 check_bss(struct ieee80211vap *vap, struct ieee80211_node *ni) in check_bss() argument
513 if (vap->iv_opmode == IEEE80211_M_IBSS) { in check_bss()
520 if (vap->iv_flags & IEEE80211_F_PRIVACY) { in check_bss()
532 if (vap->iv_des_nssid != 0 && in check_bss()
533 !match_ssid(ni, vap->iv_des_nssid, vap->iv_des_ssid)) in check_bss()
535 if ((vap->iv_flags & IEEE80211_F_DESBSSID) && in check_bss()
536 !IEEE80211_ADDR_EQ(vap->iv_des_bssid, ni->ni_bssid)) in check_bss()
546 check_bss_debug(struct ieee80211vap *vap, struct ieee80211_node *ni) in check_bss_debug() argument
555 if (vap->iv_opmode == IEEE80211_M_IBSS) { in check_bss_debug()
562 if (vap->iv_flags & IEEE80211_F_PRIVACY) { in check_bss_debug()
574 if (vap->iv_des_nssid != 0 && in check_bss_debug()
575 !match_ssid(ni, vap->iv_des_nssid, vap->iv_des_ssid)) in check_bss_debug()
577 if ((vap->iv_flags & IEEE80211_F_DESBSSID) && in check_bss_debug()
578 !IEEE80211_ADDR_EQ(vap->iv_des_bssid, ni->ni_bssid)) in check_bss_debug()
603 struct ieee80211vap *vap = ni->ni_vap; in ieee80211_ibss_merge_check() local
605 if (ni == vap->iv_bss || in ieee80211_ibss_merge_check()
606 IEEE80211_ADDR_EQ(ni->ni_bssid, vap->iv_bss->ni_bssid)) { in ieee80211_ibss_merge_check()
611 if (!check_bss(vap, ni)) { in ieee80211_ibss_merge_check()
613 IEEE80211_DPRINTF(vap, IEEE80211_MSG_ASSOC, in ieee80211_ibss_merge_check()
616 if (ieee80211_msg_assoc(vap)) in ieee80211_ibss_merge_check()
617 check_bss_debug(vap, ni); in ieee80211_ibss_merge_check()
619 vap->iv_stats.is_ibss_capmismatch++; in ieee80211_ibss_merge_check()
640 struct ieee80211vap *vap = ni->ni_vap; in ieee80211_ibss_node_check_new() local
646 if (vap->iv_des_nssid == 0 && scan->ssid == NULL) in ieee80211_ibss_node_check_new()
652 if (!! (vap->iv_des_nssid == 0) != !! (scan->ssid == NULL)) in ieee80211_ibss_node_check_new()
664 for (i = 0; i < vap->iv_des_nssid; i++) { in ieee80211_ibss_node_check_new()
666 if (vap->iv_des_ssid[i].len != scan->ssid[1]) in ieee80211_ibss_node_check_new()
670 if (memcmp(vap->iv_des_ssid[i].ssid, scan->ssid + 2, in ieee80211_ibss_node_check_new()
671 vap->iv_des_ssid[i].len) == 0) in ieee80211_ibss_node_check_new()
697 struct ieee80211vap *vap = ni->ni_vap; in ieee80211_ibss_merge() local
703 IEEE80211_DPRINTF(vap, IEEE80211_MSG_ASSOC, in ieee80211_ibss_merge()
706 vap->iv_flags&IEEE80211_F_SHPREAMBLE ? "short" : "long", in ieee80211_ibss_merge()
707 vap->iv_flags&IEEE80211_F_SHSLOT ? "short" : "long", in ieee80211_ibss_merge()
708 vap->iv_flags&IEEE80211_F_USEPROT ? ", protection" : "" in ieee80211_ibss_merge()
720 struct ieee80211vap *vap; in gethtadjustflags() local
725 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) { in gethtadjustflags()
726 if (vap->iv_state < IEEE80211_S_RUN) in gethtadjustflags()
728 switch (vap->iv_opmode) { in gethtadjustflags()
735 flags |= ieee80211_htchanflags(vap->iv_bss->ni_chan); in gethtadjustflags()
751 struct ieee80211vap *vap; in getvhtadjustflags() local
756 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) { in getvhtadjustflags()
757 if (vap->iv_state < IEEE80211_S_RUN) in getvhtadjustflags()
759 switch (vap->iv_opmode) { in getvhtadjustflags()
766 flags |= ieee80211_vhtchanflags(vap->iv_bss->ni_chan); in getvhtadjustflags()
863 struct ieee80211vap *vap = selbs->ni_vap; in ieee80211_sta_join1() local
872 obss = vap->iv_update_bss(vap, selbs); /* NB: caller assumed to bump refcnt */ in ieee80211_sta_join1()
880 vap->iv_state == IEEE80211_S_RUN && in ieee80211_sta_join1()
902 ieee80211_fix_rate(vap->iv_bss, &vap->iv_bss->ni_rates, in ieee80211_sta_join1()
911 ieee80211_vap_reset_erp(vap); in ieee80211_sta_join1()
912 ieee80211_wme_initparams(vap); in ieee80211_sta_join1()
914 if (vap->iv_opmode == IEEE80211_M_STA) { in ieee80211_sta_join1()
917 ieee80211_new_state(vap, IEEE80211_S_ASSOC, 1); in ieee80211_sta_join1()
925 IEEE80211_DPRINTF(vap, IEEE80211_MSG_AUTH, in ieee80211_sta_join1()
928 ieee80211_state_name[vap->iv_state]); in ieee80211_sta_join1()
929 ieee80211_new_state(vap, IEEE80211_S_AUTH, in ieee80211_sta_join1()
933 ieee80211_new_state(vap, IEEE80211_S_RUN, -1); in ieee80211_sta_join1()
938 ieee80211_sta_join(struct ieee80211vap *vap, struct ieee80211_channel *chan, in ieee80211_sta_join() argument
941 struct ieee80211com *ic = vap->iv_ic; in ieee80211_sta_join()
945 ni = ieee80211_alloc_node(&ic->ic_sta, vap, se->se_macaddr, in ieee80211_sta_join()
969 if (vap->iv_opmode == IEEE80211_M_STA) { in ieee80211_sta_join()
1002 vap->iv_dtim_period = se->se_dtimperiod; in ieee80211_sta_join()
1003 vap->iv_dtim_count = 0; in ieee80211_sta_join()
1022 vap->iv_flags_ht & IEEE80211_FHT_HT) { in ieee80211_sta_join()
1038 vap->iv_vht_flags & IEEE80211_FVHT_VHT) { in ieee80211_sta_join()
1098 node_alloc(struct ieee80211vap *vap, const uint8_t macaddr[IEEE80211_ADDR_LEN]) in node_alloc() argument
1234 struct ieee80211vap *vap = ni->ni_vap; in node_cleanup() local
1240 if (vap->iv_opmode != IEEE80211_M_STA) in node_cleanup()
1241 vap->iv_ps_sta--; in node_cleanup()
1243 IEEE80211_NOTE(vap, IEEE80211_MSG_POWER, ni, in node_cleanup()
1244 "power save mode off, %u sta's in ps mode", vap->iv_ps_sta); in node_cleanup()
1261 if (vap->iv_opmode == IEEE80211_M_MBSS) in node_cleanup()
1282 if (ieee80211_node_psq_drain(ni) != 0 && vap->iv_set_tim != NULL) in node_cleanup()
1283 vap->iv_set_tim(ni, 0); in node_cleanup()
1328 struct ieee80211vap *vap = ni->ni_vap; in node_age() local
1334 ni->ni_psq.psq_len == 0 && vap->iv_set_tim != NULL) in node_age()
1335 vap->iv_set_tim(ni, 0); in node_age()
1424 struct ieee80211vap *vap, const uint8_t macaddr[IEEE80211_ADDR_LEN], in ieee80211_alloc_node() argument
1430 ni = ic->ic_node_alloc(vap, macaddr); in ieee80211_alloc_node()
1432 vap->iv_stats.is_rx_nodealloc++; in ieee80211_alloc_node()
1436 IEEE80211_DPRINTF(vap, IEEE80211_MSG_NODE, in ieee80211_alloc_node()
1443 IEEE80211_DPRINTF(vap, IEEE80211_MSG_NODE, in ieee80211_alloc_node()
1450 ni->ni_txparms = &vap->iv_txparms[ieee80211_chan2mode(ic->ic_curchan)]; in ieee80211_alloc_node()
1451 ieee80211_crypto_resetkey(vap, &ni->ni_ucastkey, IEEE80211_KEYIX_NONE); in ieee80211_alloc_node()
1458 if (vap->iv_opmode == IEEE80211_M_MBSS) in ieee80211_alloc_node()
1459 ieee80211_mesh_node_init(vap, ni); in ieee80211_alloc_node()
1463 ni->ni_vap = vap; in ieee80211_alloc_node()
1469 vap->iv_stats.is_rx_nodealloc++; in ieee80211_alloc_node()
1476 IEEE80211_NOTE(vap, IEEE80211_MSG_INACT, ni, in ieee80211_alloc_node()
1489 ieee80211_tmp_node(struct ieee80211vap *vap, in ieee80211_tmp_node() argument
1492 struct ieee80211com *ic = vap->iv_ic; in ieee80211_tmp_node()
1495 ni = ic->ic_node_alloc(vap, macaddr); in ieee80211_tmp_node()
1497 struct ieee80211_node *bss = vap->iv_bss; in ieee80211_tmp_node()
1499 IEEE80211_DPRINTF(vap, IEEE80211_MSG_NODE, in ieee80211_tmp_node()
1504 ni->ni_vap = vap; in ieee80211_tmp_node()
1511 IEEE80211_DPRINTF(vap, IEEE80211_MSG_NODE, in ieee80211_tmp_node()
1517 ieee80211_crypto_resetkey(vap, &ni->ni_ucastkey, in ieee80211_tmp_node()
1527 vap->iv_stats.is_rx_nodealloc++; in ieee80211_tmp_node()
1536 vap->iv_stats.is_rx_nodealloc++; in ieee80211_tmp_node()
1542 ieee80211_dup_bss(struct ieee80211vap *vap, in ieee80211_dup_bss() argument
1545 struct ieee80211com *ic = vap->iv_ic; in ieee80211_dup_bss()
1548 ni = ieee80211_alloc_node(&ic->ic_sta, vap, macaddr, __func__, __LINE__); in ieee80211_dup_bss()
1550 struct ieee80211_node *bss = vap->iv_bss; in ieee80211_dup_bss()
1569 ieee80211_node_create_wds(struct ieee80211vap *vap, in ieee80211_node_create_wds() argument
1572 struct ieee80211com *ic = vap->iv_ic; in ieee80211_node_create_wds()
1576 ni = ieee80211_alloc_node(&ic->ic_sta, vap, bssid, __func__, __LINE__); in ieee80211_node_create_wds()
1578 ni->ni_wdsvap = vap; in ieee80211_node_create_wds()
1583 copy_bss(ni, vap->iv_bss); in ieee80211_node_create_wds()
1586 ni->ni_esslen = vap->iv_des_ssid[0].len; in ieee80211_node_create_wds()
1587 memcpy(ni->ni_essid, vap->iv_des_ssid[0].ssid, ni->ni_esslen); in ieee80211_node_create_wds()
1594 if (vap->iv_flags & IEEE80211_F_WME) in ieee80211_node_create_wds()
1597 if (vap->iv_flags & IEEE80211_F_FF) in ieee80211_node_create_wds()
1602 (vap->iv_flags_ht & IEEE80211_FHT_HT)) { in ieee80211_node_create_wds()
1609 if (vap->iv_vht_flags & IEEE80211_FVHT_VHT) { in ieee80211_node_create_wds()
1610 net80211_vap_printf(vap, in ieee80211_node_create_wds()
1670 const struct ieee80211vap *vap, const uint8_t macaddr[IEEE80211_ADDR_LEN], in _ieee80211_find_vap_node_locked() argument
1680 if (ni->ni_vap == vap && in _ieee80211_find_vap_node_locked()
1698 const struct ieee80211vap *vap, const uint8_t macaddr[IEEE80211_ADDR_LEN], in _ieee80211_find_vap_node() argument
1704 ni = _ieee80211_find_vap_node_locked(nt, vap, macaddr, func, line); in _ieee80211_find_vap_node()
1716 ieee80211_fakeup_adhoc_node(struct ieee80211vap *vap, in ieee80211_fakeup_adhoc_node() argument
1721 IEEE80211_DPRINTF(vap, IEEE80211_MSG_NODE | IEEE80211_MSG_ASSOC, in ieee80211_fakeup_adhoc_node()
1723 ni = ieee80211_dup_bss(vap, macaddr); in ieee80211_fakeup_adhoc_node()
1725 struct ieee80211com *ic = vap->iv_ic; in ieee80211_fakeup_adhoc_node()
1728 ni->ni_rates = vap->iv_bss->ni_rates; in ieee80211_fakeup_adhoc_node()
1731 if (vap->iv_opmode == IEEE80211_M_AHDEMO) { in ieee80211_fakeup_adhoc_node()
1742 if (vap->iv_flags & IEEE80211_F_WME) in ieee80211_fakeup_adhoc_node()
1745 if (vap->iv_flags & IEEE80211_F_FF) in ieee80211_fakeup_adhoc_node()
1780 if (vap->iv_opmode == IEEE80211_M_IBSS) { in ieee80211_fakeup_adhoc_node()
1782 vap->iv_myaddr, /* SA */ in ieee80211_fakeup_adhoc_node()
1784 vap->iv_bss->ni_bssid, /* BSSID */ in ieee80211_fakeup_adhoc_node()
1785 vap->iv_bss->ni_essid, in ieee80211_fakeup_adhoc_node()
1786 vap->iv_bss->ni_esslen); /* SSID */ in ieee80211_fakeup_adhoc_node()
1919 ieee80211_add_neighbor(struct ieee80211vap *vap, in ieee80211_add_neighbor() argument
1925 IEEE80211_DPRINTF(vap, IEEE80211_MSG_ASSOC, in ieee80211_add_neighbor()
1927 ni = ieee80211_dup_bss(vap, wh->i_addr2);/* XXX alloc_node? */ in ieee80211_add_neighbor()
1929 struct ieee80211com *ic = vap->iv_ic; in ieee80211_add_neighbor()
2041 _ieee80211_find_txnode(struct ieee80211vap *vap, in _ieee80211_find_txnode() argument
2045 struct ieee80211_node_table *nt = &vap->iv_ic->ic_sta; in _ieee80211_find_txnode()
2056 if (vap->iv_opmode == IEEE80211_M_STA || in _ieee80211_find_txnode()
2057 vap->iv_opmode == IEEE80211_M_WDS || in _ieee80211_find_txnode()
2059 ni = ieee80211_ref_node(vap->iv_bss); in _ieee80211_find_txnode()
2065 if (vap->iv_opmode == IEEE80211_M_IBSS || in _ieee80211_find_txnode()
2066 vap->iv_opmode == IEEE80211_M_AHDEMO) { in _ieee80211_find_txnode()
2077 ni = ieee80211_fakeup_adhoc_node(vap, macaddr); in _ieee80211_find_txnode()
2081 IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_OUTPUT, macaddr, in _ieee80211_find_txnode()
2083 vap->iv_stats.is_tx_nonode++; in _ieee80211_find_txnode()
2115 IEEE80211_DPRINTF(vap, IEEE80211_MSG_NODE, in __ieee80211_free_node()
2121 struct ieee80211vap *vap = ni->ni_vap; in __ieee80211_free_node() local
2122 if (vap->iv_aid_bitmap != NULL) in __ieee80211_free_node()
2123 IEEE80211_AID_CLR(vap, ni->ni_associd); in __ieee80211_free_node()
2309 struct ieee80211vap *vap = ni->ni_vap; in ieee80211_node_table_reset() local
2311 if (vap->iv_auth->ia_node_leave != NULL) in ieee80211_node_table_reset()
2312 vap->iv_auth->ia_node_leave(ni); in ieee80211_node_table_reset()
2313 if (vap->iv_aid_bitmap != NULL) in ieee80211_node_table_reset()
2314 IEEE80211_AID_CLR(vap, ni->ni_associd); in ieee80211_node_table_reset()
2357 struct ieee80211vap *vap = ni->ni_vap; in timeout_stations() local
2366 if (vap->iv_state != IEEE80211_S_RUN) in timeout_stations()
2374 if ((vap->iv_opmode == IEEE80211_M_HOSTAP || in timeout_stations()
2375 vap->iv_opmode == IEEE80211_M_STA) && in timeout_stations()
2390 IEEE80211_NOTE(vap, IEEE80211_MSG_INACT, ni, in timeout_stations()
2401 if (ni == vap->iv_bss) in timeout_stations()
2404 (vap->iv_opmode == IEEE80211_M_IBSS || in timeout_stations()
2405 vap->iv_opmode == IEEE80211_M_AHDEMO)) { in timeout_stations()
2422 if ((vap->iv_flags_ext & IEEE80211_FEXT_INACT) && in timeout_stations()
2424 ni->ni_inact <= vap->iv_inact_probe) && in timeout_stations()
2426 IEEE80211_NOTE(vap, in timeout_stations()
2445 if ((vap->iv_flags_ext & IEEE80211_FEXT_INACT) && in timeout_stations()
2447 IEEE80211_NOTE(vap, in timeout_stations()
2468 vap->iv_stats.is_node_timeout++; in timeout_stations()
2491 struct ieee80211vap *vap; in ieee80211_drain() local
2502 vap = ni->ni_vap; in ieee80211_drain()
2510 if (vap->iv_state != IEEE80211_S_RUN) in ieee80211_drain()
2513 if ((vap->iv_opmode == IEEE80211_M_HOSTAP || in ieee80211_drain()
2514 vap->iv_opmode == IEEE80211_M_STA) && in ieee80211_drain()
2537 ieee80211_vap_timeout(struct ieee80211vap *vap) in ieee80211_vap_timeout() argument
2540 IEEE80211_LOCK_ASSERT(vap->iv_ic); in ieee80211_vap_timeout()
2542 ieee80211_vap_erp_timeout(vap); in ieee80211_vap_timeout()
2543 ieee80211_ht_timeout(vap); in ieee80211_vap_timeout()
2544 ieee80211_vht_timeout(vap); in ieee80211_vap_timeout()
2554 struct ieee80211vap *vap; in ieee80211_node_timeout() local
2571 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) in ieee80211_node_timeout()
2572 ieee80211_vap_timeout(vap); in ieee80211_node_timeout()
2584 struct ieee80211vap *vap, ieee80211_iter_func *f, void *arg) in ieee80211_iterate_nodes_vap() argument
2609 if (vap != NULL && ni->ni_vap != vap) in ieee80211_iterate_nodes_vap()
2613 vap, i, count)); in ieee80211_iterate_nodes_vap()
2698 struct ieee80211vap *vap; in ieee80211_notify_erp_locked() local
2702 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) in ieee80211_notify_erp_locked()
2703 if (vap->iv_opmode == IEEE80211_M_HOSTAP) in ieee80211_notify_erp_locked()
2704 ieee80211_beacon_notify(vap, IEEE80211_BEACON_ERP); in ieee80211_notify_erp_locked()
2714 struct ieee80211vap *vap = ni->ni_vap; in ieee80211_node_join_11g() local
2726 vap->iv_longslotsta++; in ieee80211_node_join_11g()
2729 vap->iv_longslotsta); in ieee80211_node_join_11g()
2739 ieee80211_vap_set_shortslottime(vap, 0); in ieee80211_node_join_11g()
2748 vap->iv_nonerpsta++; in ieee80211_node_join_11g()
2751 vap->iv_nonerpsta); in ieee80211_node_join_11g()
2759 vap->iv_flags |= IEEE80211_F_USEBARKER; in ieee80211_node_join_11g()
2760 vap->iv_flags &= ~IEEE80211_F_SHPREAMBLE; in ieee80211_node_join_11g()
2761 ieee80211_vap_update_preamble(vap); in ieee80211_node_join_11g()
2767 if (vap->iv_protmode != IEEE80211_PROT_NONE && in ieee80211_node_join_11g()
2768 vap->iv_nonerpsta == 1 && in ieee80211_node_join_11g()
2769 (vap->iv_flags_ext & IEEE80211_FEXT_NONERP_PR) == 0) { in ieee80211_node_join_11g()
2772 vap->iv_flags |= IEEE80211_F_USEPROT; in ieee80211_node_join_11g()
2773 ieee80211_vap_update_erp_protmode(vap); in ieee80211_node_join_11g()
2783 struct ieee80211vap *vap = ni->ni_vap; in ieee80211_node_join() local
2789 KASSERT(vap->iv_aid_bitmap != NULL, ("no aid bitmap")); in ieee80211_node_join()
2794 for (aid = 1; aid < vap->iv_max_aid; aid++) { in ieee80211_node_join()
2795 if (!IEEE80211_AID_ISSET(vap, aid)) in ieee80211_node_join()
2798 if (aid >= vap->iv_max_aid) { in ieee80211_node_join()
2806 IEEE80211_AID_SET(vap, ni->ni_associd); in ieee80211_node_join()
2807 vap->iv_sta_assoc++; in ieee80211_node_join()
2825 IEEE80211_NOTE(vap, IEEE80211_MSG_ASSOC | IEEE80211_MSG_DEBUG, ni, in ieee80211_node_join()
2828 vap->iv_flags & IEEE80211_F_SHPREAMBLE ? "short" : "long", in ieee80211_node_join()
2829 vap->iv_flags & IEEE80211_F_SHSLOT ? "short" : "long", in ieee80211_node_join()
2830 vap->iv_flags & IEEE80211_F_USEPROT ? ", protection" : "", in ieee80211_node_join()
2840 IEEE80211_ATH_CAP(vap, ni, IEEE80211_NODE_FF) ? in ieee80211_node_join()
2842 IEEE80211_ATH_CAP(vap, ni, IEEE80211_NODE_TURBOP) ? in ieee80211_node_join()
2853 if (vap->iv_auth->ia_node_join != NULL) in ieee80211_node_join()
2854 vap->iv_auth->ia_node_join(ni); in ieee80211_node_join()
2860 disable_protection(struct ieee80211vap *vap) in disable_protection() argument
2862 struct ieee80211com *ic = vap->iv_ic; in disable_protection()
2864 KASSERT(vap->iv_nonerpsta == 0 && in disable_protection()
2865 (vap->iv_flags_ext & IEEE80211_FEXT_NONERP_PR) == 0, in disable_protection()
2866 ("%d non ERP stations, flags 0x%x", vap->iv_nonerpsta, in disable_protection()
2867 vap->iv_flags_ext)); in disable_protection()
2869 vap->iv_flags &= ~IEEE80211_F_USEPROT; in disable_protection()
2872 vap->iv_flags |= IEEE80211_F_SHPREAMBLE; in disable_protection()
2873 vap->iv_flags &= ~IEEE80211_F_USEBARKER; in disable_protection()
2875 ieee80211_vap_update_erp_protmode(vap); in disable_protection()
2876 ieee80211_vap_update_preamble(vap); in disable_protection()
2886 struct ieee80211vap *vap = ni->ni_vap; in ieee80211_node_leave_11g() local
2898 KASSERT(vap->iv_longslotsta > 0, in ieee80211_node_leave_11g()
2899 ("bogus long slot station count %d", vap->iv_longslotsta)); in ieee80211_node_leave_11g()
2900 vap->iv_longslotsta--; in ieee80211_node_leave_11g()
2903 vap->iv_longslotsta); in ieee80211_node_leave_11g()
2907 if (vap->iv_longslotsta == 0) { in ieee80211_node_leave_11g()
2918 ieee80211_vap_set_shortslottime(vap, 1); in ieee80211_node_leave_11g()
2926 KASSERT(vap->iv_nonerpsta > 0, in ieee80211_node_leave_11g()
2927 ("bogus non-ERP station count %d", vap->iv_nonerpsta)); in ieee80211_node_leave_11g()
2928 vap->iv_nonerpsta--; in ieee80211_node_leave_11g()
2930 "non-ERP station leaves, count now %d%s", vap->iv_nonerpsta, in ieee80211_node_leave_11g()
2931 (vap->iv_flags_ext & IEEE80211_FEXT_NONERP_PR) ? in ieee80211_node_leave_11g()
2933 if (vap->iv_nonerpsta == 0 && in ieee80211_node_leave_11g()
2934 (vap->iv_flags_ext & IEEE80211_FEXT_NONERP_PR) == 0) { in ieee80211_node_leave_11g()
2937 disable_protection(vap); in ieee80211_node_leave_11g()
2951 ieee80211_vap_erp_timeout(struct ieee80211vap *vap) in ieee80211_vap_erp_timeout() argument
2954 IEEE80211_LOCK_ASSERT(vap->iv_ic); in ieee80211_vap_erp_timeout()
2956 if ((vap->iv_flags_ext & IEEE80211_FEXT_NONERP_PR) && in ieee80211_vap_erp_timeout()
2957 ieee80211_time_after(ticks, vap->iv_lastnonerp + IEEE80211_NONERP_PRESENT_AGE)) { in ieee80211_vap_erp_timeout()
2958 IEEE80211_DPRINTF(vap, IEEE80211_MSG_ASSOC, in ieee80211_vap_erp_timeout()
2960 vap->iv_flags_ext &= ~IEEE80211_FEXT_NONERP_PR; in ieee80211_vap_erp_timeout()
2961 if (vap->iv_nonerpsta == 0) in ieee80211_vap_erp_timeout()
2962 disable_protection(vap); in ieee80211_vap_erp_timeout()
2974 struct ieee80211vap *vap = ni->ni_vap; in ieee80211_node_leave() local
2977 IEEE80211_NOTE(vap, IEEE80211_MSG_ASSOC | IEEE80211_MSG_DEBUG, ni, in ieee80211_node_leave()
2980 KASSERT(vap->iv_opmode != IEEE80211_M_STA, in ieee80211_node_leave()
2981 ("unexpected operating mode %u", vap->iv_opmode)); in ieee80211_node_leave()
2995 if (vap->iv_auth->ia_node_leave != NULL) in ieee80211_node_leave()
2996 vap->iv_auth->ia_node_leave(ni); in ieee80211_node_leave()
2999 IEEE80211_AID_CLR(vap, ni->ni_associd); in ieee80211_node_leave()
3000 vap->iv_sta_assoc--; in ieee80211_node_leave()
3041 struct ieee80211vap *vap = ni->ni_vap; in get_hostap_rssi() local
3047 rssi = vap->iv_ic->ic_node_getrssi(ni); in get_hostap_rssi()
3058 struct ieee80211vap *vap = ni->ni_vap; in get_adhoc_rssi() local
3065 rssi = vap->iv_ic->ic_node_getrssi(ni); in get_adhoc_rssi()
3077 struct ieee80211vap *vap = ni->ni_vap; in get_mesh_rssi() local
3083 rssi = vap->iv_ic->ic_node_getrssi(ni); in get_mesh_rssi()
3092 ieee80211_getrssi(struct ieee80211vap *vap) in ieee80211_getrssi() argument
3095 struct ieee80211com *ic = vap->iv_ic; in ieee80211_getrssi()
3100 switch (vap->iv_opmode) { in ieee80211_getrssi()
3103 ieee80211_iterate_nodes_vap(&ic->ic_sta, vap, get_adhoc_rssi, in ieee80211_getrssi()
3107 ieee80211_iterate_nodes_vap(&ic->ic_sta, vap, get_hostap_rssi, in ieee80211_getrssi()
3112 ieee80211_iterate_nodes_vap(&ic->ic_sta, vap, get_mesh_rssi, in ieee80211_getrssi()
3119 if (vap->iv_bss != NULL) in ieee80211_getrssi()
3120 info.rssi_total = ic->ic_node_getrssi(vap->iv_bss); in ieee80211_getrssi()
3129 ieee80211_getsignal(struct ieee80211vap *vap, int8_t *rssi, int8_t *noise) in ieee80211_getsignal() argument
3132 if (vap->iv_bss == NULL) /* NB: shouldn't happen */ in ieee80211_getsignal()
3134 vap->iv_ic->ic_node_getsignal(vap->iv_bss, rssi, noise); in ieee80211_getsignal()
3136 if (vap->iv_opmode != IEEE80211_M_STA) in ieee80211_getsignal()
3137 *rssi = ieee80211_getrssi(vap); in ieee80211_getsignal()