Lines Matching full:ic
94 static void ieee80211_syncflag_locked(struct ieee80211com *ic, int flag);
95 static void ieee80211_syncflag_ht_locked(struct ieee80211com *ic, int flag);
96 static void ieee80211_syncflag_ext_locked(struct ieee80211com *ic, int flag);
97 static void ieee80211_syncflag_vht_locked(struct ieee80211com *ic, int flag);
98 static int ieee80211_media_setup(struct ieee80211com *ic,
132 ieee80211_chan_init(struct ieee80211com *ic) in ieee80211_chan_init() argument
135 if (ic->ic_sup_rates[m].rs_nrates == 0) \ in ieee80211_chan_init()
136 ic->ic_sup_rates[m] = def; \ in ieee80211_chan_init()
141 KASSERT(0 < ic->ic_nchans && ic->ic_nchans <= IEEE80211_CHAN_MAX, in ieee80211_chan_init()
142 ("invalid number of channels specified: %u", ic->ic_nchans)); in ieee80211_chan_init()
143 memset(ic->ic_chan_avail, 0, sizeof(ic->ic_chan_avail)); in ieee80211_chan_init()
144 memset(ic->ic_modecaps, 0, sizeof(ic->ic_modecaps)); in ieee80211_chan_init()
145 setbit(ic->ic_modecaps, IEEE80211_MODE_AUTO); in ieee80211_chan_init()
146 for (i = 0; i < ic->ic_nchans; i++) { in ieee80211_chan_init()
147 c = &ic->ic_channels[i]; in ieee80211_chan_init()
177 setbit(ic->ic_chan_avail, c->ic_ieee); in ieee80211_chan_init()
182 setbit(ic->ic_modecaps, IEEE80211_MODE_11A); in ieee80211_chan_init()
184 setbit(ic->ic_modecaps, IEEE80211_MODE_11B); in ieee80211_chan_init()
186 setbit(ic->ic_modecaps, IEEE80211_MODE_11G); in ieee80211_chan_init()
188 setbit(ic->ic_modecaps, IEEE80211_MODE_FH); in ieee80211_chan_init()
190 setbit(ic->ic_modecaps, IEEE80211_MODE_TURBO_A); in ieee80211_chan_init()
192 setbit(ic->ic_modecaps, IEEE80211_MODE_TURBO_G); in ieee80211_chan_init()
194 setbit(ic->ic_modecaps, IEEE80211_MODE_STURBO_A); in ieee80211_chan_init()
196 setbit(ic->ic_modecaps, IEEE80211_MODE_HALF); in ieee80211_chan_init()
198 setbit(ic->ic_modecaps, IEEE80211_MODE_QUARTER); in ieee80211_chan_init()
200 setbit(ic->ic_modecaps, IEEE80211_MODE_11NA); in ieee80211_chan_init()
202 setbit(ic->ic_modecaps, IEEE80211_MODE_11NG); in ieee80211_chan_init()
204 setbit(ic->ic_modecaps, IEEE80211_MODE_VHT_5GHZ); in ieee80211_chan_init()
206 setbit(ic->ic_modecaps, IEEE80211_MODE_VHT_2GHZ); in ieee80211_chan_init()
209 memcpy(ic->ic_chan_active, ic->ic_chan_avail, in ieee80211_chan_init()
210 sizeof(ic->ic_chan_avail)); in ieee80211_chan_init()
213 ieee80211_sort_channels(ic->ic_channels, ic->ic_nchans); in ieee80211_chan_init()
216 ic->ic_bsschan = IEEE80211_CHAN_ANYC; in ieee80211_chan_init()
217 ic->ic_prevchan = NULL; in ieee80211_chan_init()
218 ic->ic_csa_newchan = NULL; in ieee80211_chan_init()
220 ic->ic_curchan = &ic->ic_channels[0]; in ieee80211_chan_init()
221 ic->ic_rt = ieee80211_get_ratetable(ic->ic_curchan); in ieee80211_chan_init()
241 if (ic->ic_rxstream == 0) in ieee80211_chan_init()
242 ic->ic_rxstream = 2; in ieee80211_chan_init()
243 if (ic->ic_txstream == 0) in ieee80211_chan_init()
244 ic->ic_txstream = 2; in ieee80211_chan_init()
246 ieee80211_init_suphtrates(ic); in ieee80211_chan_init()
251 (void) ieee80211_setmode(ic, IEEE80211_MODE_AUTO); in ieee80211_chan_init()
256 null_update_mcast(struct ieee80211com *ic) in null_update_mcast() argument
259 ic_printf(ic, "need multicast update callback\n"); in null_update_mcast()
263 null_update_promisc(struct ieee80211com *ic) in null_update_promisc() argument
266 ic_printf(ic, "need promiscuous mode update callback\n"); in null_update_promisc()
270 null_update_chw(struct ieee80211com *ic) in null_update_chw() argument
273 ic_printf(ic, "%s: need callback\n", __func__); in null_update_chw()
277 ic_printf(struct ieee80211com *ic, const char * fmt, ...) in ic_printf() argument
282 retval = printf("%s: ", ic->ic_name); in ic_printf()
296 struct ieee80211com *ic; in sysctl_ieee80211coms() local
308 LIST_FOREACH(ic, &ic_head, ic_next) { in sysctl_ieee80211coms()
309 sbuf_printf(&sb, "%s%s", sp, ic->ic_name); in sysctl_ieee80211coms()
327 ieee80211_ifattach(struct ieee80211com *ic) in ieee80211_ifattach() argument
330 IEEE80211_LOCK_INIT(ic, ic->ic_name); in ieee80211_ifattach()
331 IEEE80211_TX_LOCK_INIT(ic, ic->ic_name); in ieee80211_ifattach()
332 TAILQ_INIT(&ic->ic_vaps); in ieee80211_ifattach()
335 ic->ic_tq = taskqueue_create("ic_taskq", in ieee80211_ifattach()
337 taskqueue_thread_enqueue, &ic->ic_tq); in ieee80211_ifattach()
338 taskqueue_start_threads(&ic->ic_tq, 1, PI_NET, "%s net80211 taskq", in ieee80211_ifattach()
339 ic->ic_name); in ieee80211_ifattach()
340 ic->ic_ierrors = counter_u64_alloc(IEEE80211_M_WAITOK); in ieee80211_ifattach()
341 ic->ic_oerrors = counter_u64_alloc(IEEE80211_M_WAITOK); in ieee80211_ifattach()
347 ieee80211_chan_init(ic); in ieee80211_ifattach()
349 ic->ic_update_mcast = null_update_mcast; in ieee80211_ifattach()
350 ic->ic_update_promisc = null_update_promisc; in ieee80211_ifattach()
351 ic->ic_update_chw = null_update_chw; in ieee80211_ifattach()
353 ic->ic_hash_key = arc4random(); in ieee80211_ifattach()
354 ic->ic_bintval = IEEE80211_BINTVAL_DEFAULT; in ieee80211_ifattach()
355 ic->ic_lintval = ic->ic_bintval; in ieee80211_ifattach()
356 ic->ic_txpowlimit = IEEE80211_TXPOWER_MAX; in ieee80211_ifattach()
358 ieee80211_crypto_attach(ic); in ieee80211_ifattach()
359 ieee80211_node_attach(ic); in ieee80211_ifattach()
360 ieee80211_power_attach(ic); in ieee80211_ifattach()
361 ieee80211_proto_attach(ic); in ieee80211_ifattach()
363 ieee80211_superg_attach(ic); in ieee80211_ifattach()
365 ieee80211_ht_attach(ic); in ieee80211_ifattach()
366 ieee80211_vht_attach(ic); in ieee80211_ifattach()
367 ieee80211_scan_attach(ic); in ieee80211_ifattach()
368 ieee80211_regdomain_attach(ic); in ieee80211_ifattach()
369 ieee80211_dfs_attach(ic); in ieee80211_ifattach()
371 ieee80211_sysctl_attach(ic); in ieee80211_ifattach()
374 LIST_INSERT_HEAD(&ic_head, ic, ic_next); in ieee80211_ifattach()
385 ieee80211_ifdetach(struct ieee80211com *ic) in ieee80211_ifdetach() argument
395 if (ic->ic_tq == NULL) in ieee80211_ifdetach()
399 LIST_REMOVE(ic, ic_next); in ieee80211_ifdetach()
402 taskqueue_drain(taskqueue_thread, &ic->ic_restart_task); in ieee80211_ifdetach()
408 while ((vap = TAILQ_FIRST(&ic->ic_vaps)) != NULL) { in ieee80211_ifdetach()
412 ieee80211_waitfor_parent(ic); in ieee80211_ifdetach()
414 ieee80211_sysctl_detach(ic); in ieee80211_ifdetach()
415 ieee80211_dfs_detach(ic); in ieee80211_ifdetach()
416 ieee80211_regdomain_detach(ic); in ieee80211_ifdetach()
417 ieee80211_scan_detach(ic); in ieee80211_ifdetach()
419 ieee80211_superg_detach(ic); in ieee80211_ifdetach()
421 ieee80211_vht_detach(ic); in ieee80211_ifdetach()
422 ieee80211_ht_detach(ic); in ieee80211_ifdetach()
424 ieee80211_proto_detach(ic); in ieee80211_ifdetach()
425 ieee80211_crypto_detach(ic); in ieee80211_ifdetach()
426 ieee80211_power_detach(ic); in ieee80211_ifdetach()
427 ieee80211_node_detach(ic); in ieee80211_ifdetach()
429 counter_u64_free(ic->ic_ierrors); in ieee80211_ifdetach()
430 counter_u64_free(ic->ic_oerrors); in ieee80211_ifdetach()
432 taskqueue_free(ic->ic_tq); in ieee80211_ifdetach()
433 IEEE80211_TX_LOCK_DESTROY(ic); in ieee80211_ifdetach()
434 IEEE80211_LOCK_DESTROY(ic); in ieee80211_ifdetach()
442 ieee80211_set_software_ciphers(struct ieee80211com *ic, in ieee80211_set_software_ciphers() argument
445 ieee80211_crypto_set_supported_software_ciphers(ic, cipher_suite); in ieee80211_set_software_ciphers()
453 ieee80211_set_hardware_ciphers(struct ieee80211com *ic, in ieee80211_set_hardware_ciphers() argument
456 ieee80211_crypto_set_supported_hardware_ciphers(ic, cipher_suite); in ieee80211_set_hardware_ciphers()
464 ieee80211_set_driver_keymgmt_suites(struct ieee80211com *ic, in ieee80211_set_driver_keymgmt_suites() argument
467 ieee80211_crypto_set_supported_driver_keymgmt(ic, in ieee80211_set_driver_keymgmt_suites()
474 struct ieee80211com *ic; in ieee80211_find_com() local
477 LIST_FOREACH(ic, &ic_head, ic_next) in ieee80211_find_com()
478 if (strcmp(ic->ic_name, name) == 0) in ieee80211_find_com()
482 return (ic); in ieee80211_find_com()
488 struct ieee80211com *ic; in ieee80211_iterate_coms() local
491 LIST_FOREACH(ic, &ic_head, ic_next) in ieee80211_iterate_coms()
492 (*f)(arg, ic); in ieee80211_iterate_coms()
534 struct ieee80211com *ic = vap->iv_ic; in ieee80211_get_counter() local
540 rv += counter_u64_fetch(ic->ic_oerrors); in ieee80211_get_counter()
543 rv += counter_u64_fetch(ic->ic_ierrors); in ieee80211_get_counter()
558 ieee80211_vap_setup(struct ieee80211com *ic, struct ieee80211vap *vap, in ieee80211_vap_setup() argument
575 vap->iv_ic = ic; in ieee80211_vap_setup()
576 vap->iv_flags = ic->ic_flags; /* propagate common flags */ in ieee80211_vap_setup()
577 vap->iv_flags_ext = ic->ic_flags_ext; in ieee80211_vap_setup()
578 vap->iv_flags_ven = ic->ic_flags_ven; in ieee80211_vap_setup()
579 vap->iv_caps = ic->ic_caps &~ IEEE80211_C_OPMODE; in ieee80211_vap_setup()
582 vap->iv_htcaps = ic->ic_htcaps; in ieee80211_vap_setup()
583 vap->iv_htextcaps = ic->ic_htextcaps; in ieee80211_vap_setup()
586 vap->iv_vht_cap.vht_cap_info = ic->ic_vht_cap.vht_cap_info; in ieee80211_vap_setup()
587 vap->iv_vhtextcaps = ic->ic_vhtextcaps; in ieee80211_vap_setup()
591 IEEE80211_ADDR_COPY(vap->iv_myaddr, ic->ic_macaddr); in ieee80211_vap_setup()
611 KASSERT(ic->ic_caps & IEEE80211_C_TDMA, in ieee80211_vap_setup()
612 ("not TDMA capable, ic_caps 0x%x", ic->ic_caps)); in ieee80211_vap_setup()
699 struct ieee80211com *ic = vap->iv_ic; in ieee80211_vap_attach() local
706 ic->ic_name, vap->iv_flags, vap->iv_flags_ext); in ieee80211_vap_attach()
715 maxrate = ieee80211_media_setup(ic, &vap->iv_media, vap->iv_caps, in ieee80211_vap_attach()
731 IEEE80211_LOCK(ic); in ieee80211_vap_attach()
732 TAILQ_INSERT_TAIL(&ic->ic_vaps, vap, iv_next); in ieee80211_vap_attach()
733 ieee80211_syncflag_locked(ic, IEEE80211_F_WME); in ieee80211_vap_attach()
735 ieee80211_syncflag_locked(ic, IEEE80211_F_TURBOP); in ieee80211_vap_attach()
737 ieee80211_syncflag_locked(ic, IEEE80211_F_PCF); in ieee80211_vap_attach()
738 ieee80211_syncflag_locked(ic, IEEE80211_F_BURST); in ieee80211_vap_attach()
739 ieee80211_syncflag_ht_locked(ic, IEEE80211_FHT_HT); in ieee80211_vap_attach()
740 ieee80211_syncflag_ht_locked(ic, IEEE80211_FHT_USEHT40); in ieee80211_vap_attach()
742 ieee80211_syncflag_vht_locked(ic, IEEE80211_FVHT_VHT); in ieee80211_vap_attach()
743 ieee80211_syncflag_vht_locked(ic, IEEE80211_FVHT_USEVHT40); in ieee80211_vap_attach()
744 ieee80211_syncflag_vht_locked(ic, IEEE80211_FVHT_USEVHT80); in ieee80211_vap_attach()
745 ieee80211_syncflag_vht_locked(ic, IEEE80211_FVHT_USEVHT160); in ieee80211_vap_attach()
746 ieee80211_syncflag_vht_locked(ic, IEEE80211_FVHT_USEVHT80P80); in ieee80211_vap_attach()
747 ieee80211_syncflag_vht_locked(ic, IEEE80211_FVHT_STBC_TX); in ieee80211_vap_attach()
748 ieee80211_syncflag_vht_locked(ic, IEEE80211_FVHT_STBC_RX); in ieee80211_vap_attach()
749 IEEE80211_UNLOCK(ic); in ieee80211_vap_attach()
763 struct ieee80211com *ic = vap->iv_ic; in ieee80211_vap_detach() local
770 __func__, ieee80211_opmode_name[vap->iv_opmode], ic->ic_name); in ieee80211_vap_detach()
781 ieee80211_draintask(ic, &vap->iv_nstate_task[i]); in ieee80211_vap_detach()
782 ieee80211_draintask(ic, &vap->iv_swbmiss_task); in ieee80211_vap_detach()
783 ieee80211_draintask(ic, &vap->iv_wme_task); in ieee80211_vap_detach()
784 ieee80211_draintask(ic, &ic->ic_parent_task); in ieee80211_vap_detach()
789 IEEE80211_LOCK(ic); in ieee80211_vap_detach()
791 TAILQ_REMOVE(&ic->ic_vaps, vap, iv_next); in ieee80211_vap_detach()
792 ieee80211_syncflag_locked(ic, IEEE80211_F_WME); in ieee80211_vap_detach()
794 ieee80211_syncflag_locked(ic, IEEE80211_F_TURBOP); in ieee80211_vap_detach()
796 ieee80211_syncflag_locked(ic, IEEE80211_F_PCF); in ieee80211_vap_detach()
797 ieee80211_syncflag_locked(ic, IEEE80211_F_BURST); in ieee80211_vap_detach()
798 ieee80211_syncflag_ht_locked(ic, IEEE80211_FHT_HT); in ieee80211_vap_detach()
799 ieee80211_syncflag_ht_locked(ic, IEEE80211_FHT_USEHT40); in ieee80211_vap_detach()
801 ieee80211_syncflag_vht_locked(ic, IEEE80211_FVHT_VHT); in ieee80211_vap_detach()
802 ieee80211_syncflag_vht_locked(ic, IEEE80211_FVHT_USEVHT40); in ieee80211_vap_detach()
803 ieee80211_syncflag_vht_locked(ic, IEEE80211_FVHT_USEVHT80); in ieee80211_vap_detach()
804 ieee80211_syncflag_vht_locked(ic, IEEE80211_FVHT_USEVHT160); in ieee80211_vap_detach()
805 ieee80211_syncflag_vht_locked(ic, IEEE80211_FVHT_USEVHT80P80); in ieee80211_vap_detach()
806 ieee80211_syncflag_vht_locked(ic, IEEE80211_FVHT_STBC_TX); in ieee80211_vap_detach()
807 ieee80211_syncflag_vht_locked(ic, IEEE80211_FVHT_STBC_RX); in ieee80211_vap_detach()
810 ieee80211_syncflag_ext_locked(ic, IEEE80211_FEXT_BPF); in ieee80211_vap_detach()
815 IEEE80211_UNLOCK(ic); in ieee80211_vap_detach()
846 struct ieee80211com *ic = vap->iv_ic; in ieee80211_promisc() local
848 IEEE80211_LOCK_ASSERT(ic); in ieee80211_promisc()
851 if (++ic->ic_promisc == 1) in ieee80211_promisc()
852 ieee80211_runtask(ic, &ic->ic_promisc_task); in ieee80211_promisc()
854 KASSERT(ic->ic_promisc > 0, ("%s: ic %p not promisc", in ieee80211_promisc()
855 __func__, ic)); in ieee80211_promisc()
856 if (--ic->ic_promisc == 0) in ieee80211_promisc()
857 ieee80211_runtask(ic, &ic->ic_promisc_task); in ieee80211_promisc()
868 struct ieee80211com *ic = vap->iv_ic; in ieee80211_allmulti() local
870 IEEE80211_LOCK_ASSERT(ic); in ieee80211_allmulti()
873 if (++ic->ic_allmulti == 1) in ieee80211_allmulti()
874 ieee80211_runtask(ic, &ic->ic_mcast_task); in ieee80211_allmulti()
876 KASSERT(ic->ic_allmulti > 0, ("%s: ic %p not allmulti", in ieee80211_allmulti()
877 __func__, ic)); in ieee80211_allmulti()
878 if (--ic->ic_allmulti == 0) in ieee80211_allmulti()
879 ieee80211_runtask(ic, &ic->ic_mcast_task); in ieee80211_allmulti()
889 ieee80211_syncflag_locked(struct ieee80211com *ic, int flag) in ieee80211_syncflag_locked() argument
894 IEEE80211_LOCK_ASSERT(ic); in ieee80211_syncflag_locked()
897 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) in ieee80211_syncflag_locked()
903 ic->ic_flags |= flag; in ieee80211_syncflag_locked()
905 ic->ic_flags &= ~flag; in ieee80211_syncflag_locked()
911 struct ieee80211com *ic = vap->iv_ic; in ieee80211_syncflag() local
913 IEEE80211_LOCK(ic); in ieee80211_syncflag()
919 ieee80211_syncflag_locked(ic, flag); in ieee80211_syncflag()
920 IEEE80211_UNLOCK(ic); in ieee80211_syncflag()
929 ieee80211_syncflag_ht_locked(struct ieee80211com *ic, int flag) in ieee80211_syncflag_ht_locked() argument
934 IEEE80211_LOCK_ASSERT(ic); in ieee80211_syncflag_ht_locked()
937 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) in ieee80211_syncflag_ht_locked()
943 ic->ic_flags_ht |= flag; in ieee80211_syncflag_ht_locked()
945 ic->ic_flags_ht &= ~flag; in ieee80211_syncflag_ht_locked()
951 struct ieee80211com *ic = vap->iv_ic; in ieee80211_syncflag_ht() local
953 IEEE80211_LOCK(ic); in ieee80211_syncflag_ht()
959 ieee80211_syncflag_ht_locked(ic, flag); in ieee80211_syncflag_ht()
960 IEEE80211_UNLOCK(ic); in ieee80211_syncflag_ht()
969 ieee80211_syncflag_vht_locked(struct ieee80211com *ic, int flag) in ieee80211_syncflag_vht_locked() argument
974 IEEE80211_LOCK_ASSERT(ic); in ieee80211_syncflag_vht_locked()
977 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) in ieee80211_syncflag_vht_locked()
983 ic->ic_vht_flags |= flag; in ieee80211_syncflag_vht_locked()
985 ic->ic_vht_flags &= ~flag; in ieee80211_syncflag_vht_locked()
991 struct ieee80211com *ic = vap->iv_ic; in ieee80211_syncflag_vht() local
993 IEEE80211_LOCK(ic); in ieee80211_syncflag_vht()
999 ieee80211_syncflag_vht_locked(ic, flag); in ieee80211_syncflag_vht()
1000 IEEE80211_UNLOCK(ic); in ieee80211_syncflag_vht()
1009 ieee80211_syncflag_ext_locked(struct ieee80211com *ic, int flag) in ieee80211_syncflag_ext_locked() argument
1014 IEEE80211_LOCK_ASSERT(ic); in ieee80211_syncflag_ext_locked()
1017 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) in ieee80211_syncflag_ext_locked()
1023 ic->ic_flags_ext |= flag; in ieee80211_syncflag_ext_locked()
1025 ic->ic_flags_ext &= ~flag; in ieee80211_syncflag_ext_locked()
1031 struct ieee80211com *ic = vap->iv_ic; in ieee80211_syncflag_ext() local
1033 IEEE80211_LOCK(ic); in ieee80211_syncflag_ext()
1039 ieee80211_syncflag_ext_locked(ic, flag); in ieee80211_syncflag_ext()
1040 IEEE80211_UNLOCK(ic); in ieee80211_syncflag_ext()
1112 ieee80211_chan2ieee(struct ieee80211com *ic, const struct ieee80211_channel *c) in ieee80211_chan2ieee() argument
1115 ic_printf(ic, "invalid channel (NULL)\n"); in ieee80211_chan2ieee()
1782 ieee80211_find_channel(struct ieee80211com *ic, int freq, int flags) in ieee80211_find_channel() argument
1787 c = ic->ic_prevchan; in ieee80211_find_channel()
1792 return (findchannel(ic->ic_channels, ic->ic_nchans, freq, flags)); in ieee80211_find_channel()
1801 ieee80211_find_channel_byieee(struct ieee80211com *ic, int ieee, int flags) in ieee80211_find_channel_byieee() argument
1807 c = ic->ic_prevchan; in ieee80211_find_channel_byieee()
1812 for (i = 0; i < ic->ic_nchans; i++) { in ieee80211_find_channel_byieee()
1813 c = &ic->ic_channels[i]; in ieee80211_find_channel_byieee()
1834 * Takes the ic and rxstatus; returns the channel or NULL
1843 struct ieee80211com *ic = vap->iv_ic; in ieee80211_lookup_channel_rxstatus() local
1888 c = ieee80211_find_channel(ic, rxs->c_freq, flags); in ieee80211_lookup_channel_rxstatus()
1923 ADD(ic, mword, mopt); /* STA mode has no cap */ in addmedia()
1944 ieee80211_media_setup(struct ieee80211com *ic, in ieee80211_media_setup() argument
1964 if (isclr(ic->ic_modecaps, mode)) in ieee80211_media_setup()
1969 rs = &ic->ic_sup_rates[mode]; in ieee80211_media_setup()
1973 mword = ieee80211_rate2media(ic, &tn, mode); in ieee80211_media_setup()
1996 mword = ieee80211_rate2media(ic, &tn, IEEE80211_MODE_AUTO); in ieee80211_media_setup()
2010 if (isclr(ic->ic_modecaps, mode)) in ieee80211_media_setup()
2015 if (isset(ic->ic_modecaps, IEEE80211_MODE_11NA) || in ieee80211_media_setup()
2016 isset(ic->ic_modecaps, IEEE80211_MODE_11NG)) { in ieee80211_media_setup()
2019 i = ic->ic_txstream * 8 - 1; in ieee80211_media_setup()
2020 if ((ic->ic_htcaps & IEEE80211_HTCAP_CHWIDTH40) && in ieee80211_media_setup()
2021 (ic->ic_htcaps & IEEE80211_HTCAP_SHORTGI40)) in ieee80211_media_setup()
2023 else if ((ic->ic_htcaps & IEEE80211_HTCAP_CHWIDTH40)) in ieee80211_media_setup()
2025 else if ((ic->ic_htcaps & IEEE80211_HTCAP_SHORTGI20)) in ieee80211_media_setup()
2039 if (isclr(ic->ic_modecaps, mode)) in ieee80211_media_setup()
2044 if (isset(ic->ic_modecaps, IEEE80211_MODE_VHT_5GHZ)) { in ieee80211_media_setup()
2056 ieee80211_get_suprates(struct ieee80211com *ic, const struct ieee80211_channel *c) in ieee80211_get_suprates() argument
2059 return &ic->ic_sup_rates[ieee80211_chan2mode(c)]; in ieee80211_get_suprates()
2064 ieee80211_get_suphtrates(struct ieee80211com *ic, in ieee80211_get_suphtrates() argument
2067 return &ic->ic_sup_htrates; in ieee80211_get_suphtrates()
2071 ieee80211_announce(struct ieee80211com *ic) in ieee80211_announce() argument
2080 if (isclr(ic->ic_modecaps, mode)) in ieee80211_announce()
2082 ic_printf(ic, "%s rates: ", ieee80211_phymode_name[mode]); in ieee80211_announce()
2083 rs = &ic->ic_sup_rates[mode]; in ieee80211_announce()
2086 mword = ieee80211_rate2media(ic, &tn, mode); in ieee80211_announce()
2095 ieee80211_ht_announce(ic); in ieee80211_announce()
2096 ieee80211_vht_announce(ic); in ieee80211_announce()
2100 ieee80211_announce_channels(struct ieee80211com *ic) in ieee80211_announce_channels() argument
2107 for (i = 0; i < ic->ic_nchans; i++) { in ieee80211_announce_channels()
2108 c = &ic->ic_channels[i]; in ieee80211_announce_channels()
2283 struct ieee80211com *ic = vap->iv_ic; in ieee80211_media_status() local
2296 mode = ieee80211_chan2mode(ic->ic_curchan); in ieee80211_media_status()
2299 imr->ifm_active = media_status(vap->iv_opmode, ic->ic_curchan); in ieee80211_media_status()
2309 imr->ifm_active |= ieee80211_rate2media(ic, &tn, mode); in ieee80211_media_status()
2315 imr->ifm_active |= ieee80211_rate2media(ic, &tn, mode); in ieee80211_media_status()
2329 ieee80211_setmode(struct ieee80211com *ic, enum ieee80211_phymode mode) in ieee80211_setmode() argument
2338 ieee80211_setbasicrates(&ic->ic_sup_rates[mode], mode); in ieee80211_setmode()
2340 ic->ic_curmode = mode; in ieee80211_setmode()
2341 ieee80211_reset_erp(ic); /* reset global ERP state */ in ieee80211_setmode()
2408 ieee80211_rate2media(struct ieee80211com *ic, in ieee80211_rate2media() argument
2594 /* NB: ic may be NULL for some drivers */ in ieee80211_rate2media()
2595 if (ic != NULL && ic->ic_phytype == IEEE80211_T_FH) in ieee80211_rate2media()
2665 ieee80211_mac_hash(const struct ieee80211com *ic, in ieee80211_mac_hash() argument
2668 uint32_t a = 0x9e3779b9, b = 0x9e3779b9, c = ic->ic_hash_key; in ieee80211_mac_hash()