Lines Matching refs:ic

103 static void ieee80211_node_table_init(struct ieee80211com *ic,
115 ieee80211_node_attach(struct ieee80211com *ic) in ieee80211_node_attach() argument
118 ieee80211_ageq_init(&ic->ic_stageq, ic->ic_max_keyix * 8, in ieee80211_node_attach()
120 ieee80211_node_table_init(ic, &ic->ic_sta, "station", in ieee80211_node_attach()
121 IEEE80211_INACT_INIT, ic->ic_max_keyix); in ieee80211_node_attach()
122 callout_init(&ic->ic_inact, 1); in ieee80211_node_attach()
123 callout_reset(&ic->ic_inact, IEEE80211_INACT_WAIT*hz, in ieee80211_node_attach()
124 ieee80211_node_timeout, ic); in ieee80211_node_attach()
126 ic->ic_node_alloc = node_alloc; in ieee80211_node_attach()
127 ic->ic_node_init = node_init; in ieee80211_node_attach()
128 ic->ic_node_free = node_free; in ieee80211_node_attach()
129 ic->ic_node_cleanup = node_cleanup; in ieee80211_node_attach()
130 ic->ic_node_age = node_age; in ieee80211_node_attach()
131 ic->ic_node_drain = node_age; /* NB: same as age */ in ieee80211_node_attach()
132 ic->ic_node_getrssi = node_getrssi; in ieee80211_node_attach()
133 ic->ic_node_getsignal = node_getsignal; in ieee80211_node_attach()
134 ic->ic_node_getmimoinfo = node_getmimoinfo; in ieee80211_node_attach()
140 ic->ic_flags_ext |= IEEE80211_FEXT_INACT; /* inactivity processing */ in ieee80211_node_attach()
144 ieee80211_node_detach(struct ieee80211com *ic) in ieee80211_node_detach() argument
147 callout_drain(&ic->ic_inact); in ieee80211_node_detach()
148 ieee80211_node_table_cleanup(&ic->ic_sta); in ieee80211_node_detach()
149 ieee80211_ageq_drain(&ic->ic_stageq); in ieee80211_node_detach()
150 ieee80211_ageq_cleanup(&ic->ic_stageq); in ieee80211_node_detach()
208 struct ieee80211com *ic = vap->iv_ic; in ieee80211_node_vdetach() local
213 ieee80211_node_table_reset(&ic->ic_sta, vap); in ieee80211_node_vdetach()
214 IEEE80211_LOCK(ic); in ieee80211_node_vdetach()
219 IEEE80211_UNLOCK(ic); in ieee80211_node_vdetach()
305 struct ieee80211com *ic = ni->ni_ic; in ieee80211_node_set_chan() local
318 ni->ni_htrates = *ieee80211_get_suphtrates(ic, chan); in ieee80211_node_set_chan()
335 ni->ni_rates = *ieee80211_get_suprates(ic, chan); in ieee80211_node_set_chan()
352 struct ieee80211com *ic = vap->iv_ic; in ieee80211_create_ibss() local
358 ieee80211_chan2ieee(ic, chan), in ieee80211_create_ibss()
362 ni = ieee80211_alloc_node(&ic->ic_sta, vap, vap->iv_myaddr, in ieee80211_create_ibss()
373 ni->ni_intval = ic->ic_bintval; in ieee80211_create_ibss()
376 if (ic->ic_phytype == IEEE80211_T_FH) { in ieee80211_create_ibss()
408 if (ic->ic_bsschan != IEEE80211_CHAN_ANYC && in ieee80211_create_ibss()
409 ic->ic_bsschan->ic_freq != chan->ic_freq && in ieee80211_create_ibss()
410 IEEE80211_IS_CHAN_CACDONE(ic->ic_bsschan)) in ieee80211_create_ibss()
411 ieee80211_dfs_cac_clear(ic, ic->ic_bsschan); in ieee80211_create_ibss()
412 ic->ic_bsschan = chan; in ieee80211_create_ibss()
414 ic->ic_curmode = ieee80211_chan2mode(chan); in ieee80211_create_ibss()
466 struct ieee80211com *ic = vap->iv_ic; in ieee80211_reset_bss() local
469 IEEE80211_LOCK_ASSERT(ic); in ieee80211_reset_bss()
471 ieee80211_node_table_reset(&ic->ic_sta, vap); in ieee80211_reset_bss()
475 ni = ieee80211_alloc_node(&ic->ic_sta, vap, vap->iv_myaddr, in ieee80211_reset_bss()
481 ni->ni_intval = ic->ic_bintval; in ieee80211_reset_bss()
507 struct ieee80211com *ic = ni->ni_ic; in check_bss() local
510 if (isclr(ic->ic_chan_active, ieee80211_chan2ieee(ic, ni->ni_chan))) in check_bss()
547 struct ieee80211com *ic = ni->ni_ic; in check_bss_debug() local
552 if (isclr(ic->ic_chan_active, ieee80211_chan2ieee(ic, ni->ni_chan))) in check_bss_debug()
583 ieee80211_chan2ieee(ic, ni->ni_chan), fail & 0x01 ? '!' : ' '); in check_bss_debug()
717 gethtadjustflags(struct ieee80211com *ic) in gethtadjustflags() argument
724 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) { in gethtadjustflags()
748 getvhtadjustflags(struct ieee80211com *ic) in getvhtadjustflags() argument
755 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) { in getvhtadjustflags()
782 ieee80211_sync_curchan(struct ieee80211com *ic) in ieee80211_sync_curchan() argument
786 c = ieee80211_ht_adjust_channel(ic, ic->ic_curchan, gethtadjustflags(ic)); in ieee80211_sync_curchan()
787 c = ieee80211_vht_adjust_channel(ic, c, getvhtadjustflags(ic)); in ieee80211_sync_curchan()
789 if (c != ic->ic_curchan) { in ieee80211_sync_curchan()
790 ic->ic_curchan = c; in ieee80211_sync_curchan()
791 ic->ic_curmode = ieee80211_chan2mode(ic->ic_curchan); in ieee80211_sync_curchan()
792 ic->ic_rt = ieee80211_get_ratetable(ic->ic_curchan); in ieee80211_sync_curchan()
793 IEEE80211_UNLOCK(ic); in ieee80211_sync_curchan()
794 ic->ic_set_channel(ic); in ieee80211_sync_curchan()
795 ieee80211_radiotap_chan_change(ic); in ieee80211_sync_curchan()
796 IEEE80211_LOCK(ic); in ieee80211_sync_curchan()
805 ieee80211_setupcurchan(struct ieee80211com *ic, struct ieee80211_channel *c) in ieee80211_setupcurchan() argument
807 if (ic->ic_htcaps & IEEE80211_HTC_HT) { in ieee80211_setupcurchan()
808 int flags = gethtadjustflags(ic); in ieee80211_setupcurchan()
817 c = ieee80211_ht_adjust_channel(ic, c, flags); in ieee80211_setupcurchan()
825 if (ic->ic_vht_cap.vht_cap_info != 0) { in ieee80211_setupcurchan()
826 int flags = getvhtadjustflags(ic); in ieee80211_setupcurchan()
828 c = ieee80211_vht_adjust_channel(ic, c, flags); in ieee80211_setupcurchan()
831 ic->ic_bsschan = ic->ic_curchan = c; in ieee80211_setupcurchan()
832 ic->ic_curmode = ieee80211_chan2mode(ic->ic_curchan); in ieee80211_setupcurchan()
833 ic->ic_rt = ieee80211_get_ratetable(ic->ic_curchan); in ieee80211_setupcurchan()
841 ieee80211_setcurchan(struct ieee80211com *ic, struct ieee80211_channel *c) in ieee80211_setcurchan() argument
843 ieee80211_setupcurchan(ic, c); in ieee80211_setcurchan()
844 ieee80211_runtask(ic, &ic->ic_chan_task); in ieee80211_setcurchan()
848 ieee80211_update_chw(struct ieee80211com *ic) in ieee80211_update_chw() argument
851 ieee80211_setupcurchan(ic, ic->ic_curchan); in ieee80211_update_chw()
852 ieee80211_runtask(ic, &ic->ic_chw_task); in ieee80211_update_chw()
863 struct ieee80211com *ic = selbs->ni_ic; in ieee80211_sta_join1() local
870 IEEE80211_LOCK(ic); /* XXX may recurse here, check callers. */ in ieee80211_sta_join1()
872 IEEE80211_UNLOCK(ic); in ieee80211_sta_join1()
904 ieee80211_setcurchan(ic, selbs->ni_chan); in ieee80211_sta_join1()
940 struct ieee80211com *ic = vap->iv_ic; in ieee80211_sta_join() local
944 ni = ieee80211_alloc_node(&ic->ic_sta, vap, se->se_macaddr, in ieee80211_sta_join()
1077 struct ieee80211com *ic = ni->ni_ic; in ieee80211_sta_leave() local
1079 ic->ic_node_cleanup(ni); in ieee80211_sta_leave()
1235 struct ieee80211com *ic = ni->ni_ic; in node_cleanup() local
1267 ieee80211_ageq_drain_node(&ic->ic_stageq, ni); in node_cleanup()
1316 struct ieee80211com *ic = ni->ni_ic; in node_free() local
1319 ic->ic_node_cleanup(ni); in node_free()
1394 struct ieee80211com *ic = nt->nt_ic; in ieee80211_add_node_nt() local
1399 hash = IEEE80211_NODE_HASH(ic, ni->ni_macaddr); in ieee80211_add_node_nt()
1400 (void) ic; /* XXX IEEE80211_NODE_HASH */ in ieee80211_add_node_nt()
1427 struct ieee80211com *ic = nt->nt_ic; in ieee80211_alloc_node() local
1430 ni = ic->ic_node_alloc(vap, macaddr); in ieee80211_alloc_node()
1449 ni->ni_txpower = ic->ic_txpowlimit; /* max power */ in ieee80211_alloc_node()
1450 ni->ni_txparms = &vap->iv_txparms[ieee80211_chan2mode(ic->ic_curchan)]; in ieee80211_alloc_node()
1464 ni->ni_ic = ic; in ieee80211_alloc_node()
1468 if (ic->ic_node_init(ni) != 0) { in ieee80211_alloc_node()
1492 struct ieee80211com *ic = vap->iv_ic; in ieee80211_tmp_node() local
1495 ni = ic->ic_node_alloc(vap, macaddr); in ieee80211_tmp_node()
1503 ni->ni_ic = ic; /* NB: needed to set channel */ in ieee80211_tmp_node()
1526 if (ic->ic_node_init(ni) != 0) { in ieee80211_tmp_node()
1545 struct ieee80211com *ic = vap->iv_ic; in ieee80211_dup_bss() local
1548 ni = ieee80211_alloc_node(&ic->ic_sta, vap, macaddr, __func__, __LINE__); in ieee80211_dup_bss()
1572 struct ieee80211com *ic = vap->iv_ic; in ieee80211_node_create_wds() local
1576 ni = ieee80211_alloc_node(&ic->ic_sta, vap, bssid, __func__, __LINE__); in ieee80211_node_create_wds()
1601 if ((ic->ic_htcaps & IEEE80211_HTC_HT) && in ieee80211_node_create_wds()
1617 c = ieee80211_find_channel(ic, in ieee80211_node_create_wds()
1724 struct ieee80211com *ic = vap->iv_ic; in ieee80211_fakeup_adhoc_node() local
1761 if (ic->ic_newassoc != NULL) in ieee80211_fakeup_adhoc_node()
1762 ic->ic_newassoc(ni, 1); in ieee80211_fakeup_adhoc_node()
1929 struct ieee80211com *ic = vap->iv_ic; in ieee80211_add_neighbor() local
1936 if (ic->ic_newassoc != NULL) in ieee80211_add_neighbor()
1937 ic->ic_newassoc(ni, 1); in ieee80211_add_neighbor()
1967 _ieee80211_find_rxnode(struct ieee80211com *ic, in _ieee80211_find_rxnode() argument
1974 nt = &ic->ic_sta; in _ieee80211_find_rxnode()
1991 _ieee80211_find_rxnode_withkey(struct ieee80211com *ic, in _ieee80211_find_rxnode_withkey() argument
1998 nt = &ic->ic_sta; in _ieee80211_find_rxnode_withkey()
2186 struct ieee80211com *ic = ni->ni_ic; in ieee80211_node_delucastkey() local
2187 struct ieee80211_node_table *nt = &ic->ic_sta; in ieee80211_node_delucastkey()
2272 ieee80211_node_table_init(struct ieee80211com *ic, in ieee80211_node_table_init() argument
2277 nt->nt_ic = ic; in ieee80211_node_table_init()
2278 IEEE80211_NODE_LOCK_INIT(nt, ic->ic_name); in ieee80211_node_table_init()
2290 ic_printf(ic, in ieee80211_node_table_init()
2356 struct ieee80211com *ic = ni->ni_ic; in timeout_stations() local
2409 ic->ic_node_age(ni); in timeout_stations()
2476 ieee80211_timeout_stations(struct ieee80211com *ic) in ieee80211_timeout_stations() argument
2478 struct ieee80211_node_table *nt = &ic->ic_sta; in ieee80211_timeout_stations()
2488 ieee80211_drain(struct ieee80211com *ic) in ieee80211_drain() argument
2490 struct ieee80211_node_table *nt = &ic->ic_sta; in ieee80211_drain()
2528 ic->ic_node_drain(ni); in ieee80211_drain()
2553 struct ieee80211com *ic = arg; in ieee80211_node_timeout() local
2565 if ((ic->ic_flags & IEEE80211_F_CSAPENDING) == 0) { in ieee80211_node_timeout()
2566 ieee80211_scan_timeout(ic); in ieee80211_node_timeout()
2567 ieee80211_timeout_stations(ic); in ieee80211_node_timeout()
2568 ieee80211_ageq_age(&ic->ic_stageq, IEEE80211_INACT_WAIT); in ieee80211_node_timeout()
2570 IEEE80211_LOCK(ic); in ieee80211_node_timeout()
2571 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) in ieee80211_node_timeout()
2573 IEEE80211_UNLOCK(ic); in ieee80211_node_timeout()
2575 callout_reset(&ic->ic_inact, IEEE80211_INACT_WAIT*hz, in ieee80211_node_timeout()
2576 ieee80211_node_timeout, ic); in ieee80211_node_timeout()
2696 ieee80211_notify_erp_locked(struct ieee80211com *ic) in ieee80211_notify_erp_locked() argument
2700 IEEE80211_LOCK_ASSERT(ic); in ieee80211_notify_erp_locked()
2702 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) in ieee80211_notify_erp_locked()
2713 struct ieee80211com *ic = ni->ni_ic; in ieee80211_node_join_11g() local
2716 IEEE80211_LOCK_ASSERT(ic); in ieee80211_node_join_11g()
2733 if (!IEEE80211_IS_CHAN_108G(ic->ic_bsschan)) { in ieee80211_node_join_11g()
2782 struct ieee80211com *ic = ni->ni_ic; in ieee80211_node_join() local
2805 IEEE80211_LOCK(ic); in ieee80211_node_join()
2809 if (IEEE80211_IS_CHAN_HT(ic->ic_bsschan)) in ieee80211_node_join()
2811 if (IEEE80211_IS_CHAN_VHT(ic->ic_bsschan)) in ieee80211_node_join()
2813 if (IEEE80211_IS_CHAN_ANYG(ic->ic_bsschan) && in ieee80211_node_join()
2814 IEEE80211_IS_CHAN_FULL(ic->ic_bsschan)) in ieee80211_node_join()
2816 IEEE80211_UNLOCK(ic); in ieee80211_node_join()
2849 if (ic->ic_newassoc != NULL) in ieee80211_node_join()
2850 ic->ic_newassoc(ni, newassoc); in ieee80211_node_join()
2862 struct ieee80211com *ic = vap->iv_ic; in disable_protection() local
2871 if (ic->ic_caps & IEEE80211_C_SHPREAMBLE) { in disable_protection()
2885 struct ieee80211com *ic = ni->ni_ic; in ieee80211_node_leave_11g() local
2888 IEEE80211_LOCK_ASSERT(ic); in ieee80211_node_leave_11g()
2890 KASSERT(IEEE80211_IS_CHAN_ANYG(ic->ic_bsschan), in ieee80211_node_leave_11g()
2891 ("not in 11g, bss %u:0x%x", ic->ic_bsschan->ic_freq, in ieee80211_node_leave_11g()
2892 ic->ic_bsschan->ic_flags)); in ieee80211_node_leave_11g()
2912 if ((ic->ic_caps & IEEE80211_C_SHSLOT) && in ieee80211_node_leave_11g()
2913 ic->ic_opmode != IEEE80211_M_IBSS) { in ieee80211_node_leave_11g()
2973 struct ieee80211com *ic = ni->ni_ic; in ieee80211_node_leave() local
2998 IEEE80211_LOCK(ic); in ieee80211_node_leave()
3002 if (IEEE80211_IS_CHAN_VHT(ic->ic_bsschan)) in ieee80211_node_leave()
3004 if (IEEE80211_IS_CHAN_HT(ic->ic_bsschan)) in ieee80211_node_leave()
3006 if (IEEE80211_IS_CHAN_ANYG(ic->ic_bsschan) && in ieee80211_node_leave()
3007 IEEE80211_IS_CHAN_FULL(ic->ic_bsschan)) in ieee80211_node_leave()
3009 IEEE80211_UNLOCK(ic); in ieee80211_node_leave()
3095 struct ieee80211com *ic = vap->iv_ic; in ieee80211_getrssi() local
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()
3120 info.rssi_total = ic->ic_node_getrssi(vap->iv_bss); in ieee80211_getrssi()