Lines Matching defs:ic

103 static void ieee80211_node_table_init(struct ieee80211com *ic,
115 ieee80211_node_attach(struct ieee80211com *ic)
118 ieee80211_ageq_init(&ic->ic_stageq, ic->ic_max_keyix * 8,
120 ieee80211_node_table_init(ic, &ic->ic_sta, "station",
121 IEEE80211_INACT_INIT, ic->ic_max_keyix);
122 callout_init(&ic->ic_inact, 1);
123 callout_reset(&ic->ic_inact, IEEE80211_INACT_WAIT*hz,
124 ieee80211_node_timeout, ic);
126 ic->ic_node_alloc = node_alloc;
127 ic->ic_node_init = node_init;
128 ic->ic_node_free = node_free;
129 ic->ic_node_cleanup = node_cleanup;
130 ic->ic_node_age = node_age;
131 ic->ic_node_drain = node_age; /* NB: same as age */
132 ic->ic_node_getrssi = node_getrssi;
133 ic->ic_node_getsignal = node_getsignal;
134 ic->ic_node_getmimoinfo = node_getmimoinfo;
140 ic->ic_flags_ext |= IEEE80211_FEXT_INACT; /* inactivity processing */
144 ieee80211_node_detach(struct ieee80211com *ic)
147 callout_drain(&ic->ic_inact);
148 ieee80211_node_table_cleanup(&ic->ic_sta);
149 ieee80211_ageq_drain(&ic->ic_stageq);
150 ieee80211_ageq_cleanup(&ic->ic_stageq);
208 struct ieee80211com *ic = vap->iv_ic;
213 ieee80211_node_table_reset(&ic->ic_sta, vap);
214 IEEE80211_LOCK(ic);
219 IEEE80211_UNLOCK(ic);
305 struct ieee80211com *ic = ni->ni_ic;
318 ni->ni_htrates = *ieee80211_get_suphtrates(ic, chan);
335 ni->ni_rates = *ieee80211_get_suprates(ic, chan);
352 struct ieee80211com *ic = vap->iv_ic;
358 ieee80211_chan2ieee(ic, chan),
362 ni = ieee80211_alloc_node(&ic->ic_sta, vap, vap->iv_myaddr,
373 ni->ni_intval = ic->ic_bintval;
376 if (ic->ic_phytype == IEEE80211_T_FH) {
408 if (ic->ic_bsschan != IEEE80211_CHAN_ANYC &&
409 ic->ic_bsschan->ic_freq != chan->ic_freq &&
410 IEEE80211_IS_CHAN_CACDONE(ic->ic_bsschan))
411 ieee80211_dfs_cac_clear(ic, ic->ic_bsschan);
412 ic->ic_bsschan = chan;
414 ic->ic_curmode = ieee80211_chan2mode(chan);
466 struct ieee80211com *ic = vap->iv_ic;
469 IEEE80211_LOCK_ASSERT(ic);
471 ieee80211_node_table_reset(&ic->ic_sta, vap);
475 ni = ieee80211_alloc_node(&ic->ic_sta, vap, vap->iv_myaddr,
481 ni->ni_intval = ic->ic_bintval;
507 struct ieee80211com *ic = ni->ni_ic;
510 if (isclr(ic->ic_chan_active, ieee80211_chan2ieee(ic, ni->ni_chan)))
547 struct ieee80211com *ic = ni->ni_ic;
552 if (isclr(ic->ic_chan_active, ieee80211_chan2ieee(ic, ni->ni_chan)))
583 ieee80211_chan2ieee(ic, ni->ni_chan), fail & 0x01 ? '!' : ' ');
717 gethtadjustflags(struct ieee80211com *ic)
724 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) {
748 getvhtadjustflags(struct ieee80211com *ic)
755 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) {
782 ieee80211_sync_curchan(struct ieee80211com *ic)
786 c = ieee80211_ht_adjust_channel(ic, ic->ic_curchan, gethtadjustflags(ic));
787 c = ieee80211_vht_adjust_channel(ic, c, getvhtadjustflags(ic));
789 if (c != ic->ic_curchan) {
790 ic->ic_curchan = c;
791 ic->ic_curmode = ieee80211_chan2mode(ic->ic_curchan);
792 ic->ic_rt = ieee80211_get_ratetable(ic->ic_curchan);
793 IEEE80211_UNLOCK(ic);
794 ic->ic_set_channel(ic);
795 ieee80211_radiotap_chan_change(ic);
796 IEEE80211_LOCK(ic);
805 ieee80211_setupcurchan(struct ieee80211com *ic, struct ieee80211_channel *c)
807 if (ic->ic_htcaps & IEEE80211_HTC_HT) {
808 int flags = gethtadjustflags(ic);
817 c = ieee80211_ht_adjust_channel(ic, c, flags);
825 if (ic->ic_vht_cap.vht_cap_info != 0) {
826 int flags = getvhtadjustflags(ic);
828 c = ieee80211_vht_adjust_channel(ic, c, flags);
831 ic->ic_bsschan = ic->ic_curchan = c;
832 ic->ic_curmode = ieee80211_chan2mode(ic->ic_curchan);
833 ic->ic_rt = ieee80211_get_ratetable(ic->ic_curchan);
841 ieee80211_setcurchan(struct ieee80211com *ic, struct ieee80211_channel *c)
843 ieee80211_setupcurchan(ic, c);
844 ieee80211_runtask(ic, &ic->ic_chan_task);
848 ieee80211_update_chw(struct ieee80211com *ic)
851 ieee80211_setupcurchan(ic, ic->ic_curchan);
852 ieee80211_runtask(ic, &ic->ic_chw_task);
863 struct ieee80211com *ic = selbs->ni_ic;
870 IEEE80211_LOCK(ic); /* XXX may recurse here, check callers. */
872 IEEE80211_UNLOCK(ic);
904 ieee80211_setcurchan(ic, selbs->ni_chan);
940 struct ieee80211com *ic = vap->iv_ic;
944 ni = ieee80211_alloc_node(&ic->ic_sta, vap, se->se_macaddr,
1078 struct ieee80211com *ic = ni->ni_ic;
1080 ic->ic_node_cleanup(ni);
1236 struct ieee80211com *ic = ni->ni_ic;
1268 ieee80211_ageq_drain_node(&ic->ic_stageq, ni);
1317 struct ieee80211com *ic = ni->ni_ic;
1320 ic->ic_node_cleanup(ni);
1395 struct ieee80211com *ic = nt->nt_ic;
1400 hash = IEEE80211_NODE_HASH(ic, ni->ni_macaddr);
1401 (void) ic; /* XXX IEEE80211_NODE_HASH */
1428 struct ieee80211com *ic = nt->nt_ic;
1431 ni = ic->ic_node_alloc(vap, macaddr);
1450 ni->ni_txpower = ic->ic_txpowlimit; /* max power */
1451 ni->ni_txparms = &vap->iv_txparms[ieee80211_chan2mode(ic->ic_curchan)];
1465 ni->ni_ic = ic;
1469 if (ic->ic_node_init(ni) != 0) {
1493 struct ieee80211com *ic = vap->iv_ic;
1496 ni = ic->ic_node_alloc(vap, macaddr);
1504 ni->ni_ic = ic; /* NB: needed to set channel */
1527 if (ic->ic_node_init(ni) != 0) {
1546 struct ieee80211com *ic = vap->iv_ic;
1549 ni = ieee80211_alloc_node(&ic->ic_sta, vap, macaddr, __func__, __LINE__);
1573 struct ieee80211com *ic = vap->iv_ic;
1577 ni = ieee80211_alloc_node(&ic->ic_sta, vap, bssid, __func__, __LINE__);
1602 if ((ic->ic_htcaps & IEEE80211_HTC_HT) &&
1618 c = ieee80211_find_channel(ic,
1725 struct ieee80211com *ic = vap->iv_ic;
1762 if (ic->ic_newassoc != NULL)
1763 ic->ic_newassoc(ni, 1);
1932 struct ieee80211com *ic = vap->iv_ic;
1939 if (ic->ic_newassoc != NULL)
1940 ic->ic_newassoc(ni, 1);
1970 _ieee80211_find_rxnode(struct ieee80211com *ic,
1977 nt = &ic->ic_sta;
1994 _ieee80211_find_rxnode_withkey(struct ieee80211com *ic,
2001 nt = &ic->ic_sta;
2189 struct ieee80211com *ic = ni->ni_ic;
2190 struct ieee80211_node_table *nt = &ic->ic_sta;
2275 ieee80211_node_table_init(struct ieee80211com *ic,
2280 nt->nt_ic = ic;
2281 IEEE80211_NODE_LOCK_INIT(nt, ic->ic_name);
2293 ic_printf(ic,
2359 struct ieee80211com *ic = ni->ni_ic;
2412 ic->ic_node_age(ni);
2479 ieee80211_timeout_stations(struct ieee80211com *ic)
2481 struct ieee80211_node_table *nt = &ic->ic_sta;
2491 ieee80211_drain(struct ieee80211com *ic)
2493 struct ieee80211_node_table *nt = &ic->ic_sta;
2531 ic->ic_node_drain(ni);
2556 struct ieee80211com *ic = arg;
2568 if ((ic->ic_flags & IEEE80211_F_CSAPENDING) == 0) {
2569 ieee80211_scan_timeout(ic);
2570 ieee80211_timeout_stations(ic);
2571 ieee80211_ageq_age(&ic->ic_stageq, IEEE80211_INACT_WAIT);
2573 IEEE80211_LOCK(ic);
2574 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next)
2576 IEEE80211_UNLOCK(ic);
2578 callout_reset(&ic->ic_inact, IEEE80211_INACT_WAIT*hz,
2579 ieee80211_node_timeout, ic);
2697 ieee80211_notify_erp_locked(struct ieee80211com *ic)
2701 IEEE80211_LOCK_ASSERT(ic);
2703 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next)
2714 struct ieee80211com *ic = ni->ni_ic;
2717 IEEE80211_LOCK_ASSERT(ic);
2734 if (!IEEE80211_IS_CHAN_108G(ic->ic_bsschan)) {
2783 struct ieee80211com *ic = ni->ni_ic;
2806 IEEE80211_LOCK(ic);
2810 if (IEEE80211_IS_CHAN_HT(ic->ic_bsschan))
2812 if (IEEE80211_IS_CHAN_VHT(ic->ic_bsschan))
2814 if (IEEE80211_IS_CHAN_ANYG(ic->ic_bsschan) &&
2815 IEEE80211_IS_CHAN_FULL(ic->ic_bsschan))
2817 IEEE80211_UNLOCK(ic);
2850 if (ic->ic_newassoc != NULL)
2851 ic->ic_newassoc(ni, newassoc);
2863 struct ieee80211com *ic = vap->iv_ic;
2872 if (ic->ic_caps & IEEE80211_C_SHPREAMBLE) {
2886 struct ieee80211com *ic = ni->ni_ic;
2889 IEEE80211_LOCK_ASSERT(ic);
2891 KASSERT(IEEE80211_IS_CHAN_ANYG(ic->ic_bsschan),
2892 ("not in 11g, bss %u:0x%x", ic->ic_bsschan->ic_freq,
2893 ic->ic_bsschan->ic_flags));
2913 if ((ic->ic_caps & IEEE80211_C_SHSLOT) &&
2914 ic->ic_opmode != IEEE80211_M_IBSS) {
2974 struct ieee80211com *ic = ni->ni_ic;
2999 IEEE80211_LOCK(ic);
3003 if (IEEE80211_IS_CHAN_VHT(ic->ic_bsschan))
3005 if (IEEE80211_IS_CHAN_HT(ic->ic_bsschan))
3007 if (IEEE80211_IS_CHAN_ANYG(ic->ic_bsschan) &&
3008 IEEE80211_IS_CHAN_FULL(ic->ic_bsschan))
3010 IEEE80211_UNLOCK(ic);
3096 struct ieee80211com *ic = vap->iv_ic;
3104 ieee80211_iterate_nodes_vap(&ic->ic_sta, vap, get_adhoc_rssi,
3108 ieee80211_iterate_nodes_vap(&ic->ic_sta, vap, get_hostap_rssi,
3113 ieee80211_iterate_nodes_vap(&ic->ic_sta, vap, get_mesh_rssi,
3121 info.rssi_total = ic->ic_node_getrssi(vap->iv_bss);