Lines Matching defs:ic

84  * Initialize the interface softc, ic, with protocol management
88 ieee80211_proto_attach(ieee80211com_t *ic)
90 struct ieee80211_impl *im = ic->ic_private;
92 ic->ic_rtsthreshold = IEEE80211_RTS_DEFAULT;
93 ic->ic_fragthreshold = IEEE80211_FRAG_DEFAULT;
94 ic->ic_fixed_rate = IEEE80211_FIXED_RATE_NONE;
95 ic->ic_protmode = IEEE80211_PROT_CTSONLY;
98 ic->ic_wme.wme_hipri_switch_hysteresis =
102 ic->ic_newstate = ieee80211_newstate;
105 ic->ic_recv_mgmt = ieee80211_recv_mgmt;
106 ic->ic_send_mgmt = ieee80211_send_mgmt;
235 ieee80211com_t *ic = in->in_ic;
249 (ic->ic_fixed_rate == IEEE80211_FIXED_RATE_NONE)) {
256 srs = &ic->ic_sup_rates[ieee80211_chan2mode(ic, in->in_chan)];
320 if (r == ic->ic_fixed_rate)
337 ieee80211_reset_erp(ieee80211com_t *ic)
339 ic->ic_flags &= ~IEEE80211_F_USEPROT;
345 ieee80211_set_shortslottime(ic,
346 ic->ic_curmode == IEEE80211_MODE_11A);
350 if (ic->ic_curmode == IEEE80211_MODE_11A ||
351 (ic->ic_caps & IEEE80211_C_SHPREAMBLE)) {
352 ic->ic_flags |= IEEE80211_F_SHPREAMBLE;
353 ic->ic_flags &= ~IEEE80211_F_USEBARKER;
355 ic->ic_flags &= ~IEEE80211_F_SHPREAMBLE;
356 ic->ic_flags |= IEEE80211_F_USEBARKER;
364 ieee80211_reset_chan(ieee80211com_t *ic)
366 struct ieee80211_channel *ch = ic->ic_curchan;
368 IEEE80211_LOCK(ic);
370 if (++ch > &ic->ic_sup_channels[IEEE80211_CHAN_MAX])
371 ch = &ic->ic_sup_channels[0];
372 if (ieee80211_isset(ic->ic_chan_active,
373 ieee80211_chan2ieee(ic, ch))) {
376 } while (ch != ic->ic_curchan);
377 ic->ic_curchan = ch;
378 IEEE80211_UNLOCK(ic);
385 ieee80211_set_shortslottime(ieee80211com_t *ic, boolean_t on)
388 ic->ic_flags |= IEEE80211_F_SHSLOT;
390 ic->ic_flags &= ~IEEE80211_F_SHSLOT;
392 if (ic->ic_set_shortslot != NULL)
393 ic->ic_set_shortslot(ic, on);
533 ieee80211_wme_initparams(struct ieee80211com *ic)
535 struct ieee80211_wme_state *wme = &ic->ic_wme;
541 if ((ic->ic_caps & IEEE80211_C_WME) == 0)
550 if (ic->ic_curchan != IEEE80211_CHAN_ANYC)
551 mode = ieee80211_chan2mode(ic, ic->ic_curchan);
576 if (ic->ic_opmode == IEEE80211_M_HOSTAP) {
617 if (ic->ic_bss != NULL) {
625 (HIGH_PRI_SWITCH_THRESH * ic->ic_bss->in_intval) / 100;
626 ieee80211_wme_updateparams(ic);
634 ieee80211_wme_updateparams(struct ieee80211com *ic)
648 struct ieee80211_wme_state *wme = &ic->ic_wme;
654 if ((ic->ic_caps & IEEE80211_C_WME) == 0)
680 if (ic->ic_curchan != IEEE80211_CHAN_ANYC)
681 mode = ieee80211_chan2mode(ic, ic->ic_curchan);
693 if ((ic->ic_opmode == IEEE80211_M_HOSTAP &&
695 (ic->ic_opmode == IEEE80211_M_STA &&
696 (ic->ic_bss->in_flags & IEEE80211_NODE_QOS) == 0) ||
697 (ic->ic_flags & IEEE80211_F_WME) == 0) {
707 (ic->ic_flags & IEEE80211_F_BURST) ?
721 wme->wme_update(ic);
725 ic->ic_opmode == IEEE80211_M_STA ?
736 ieee80211_beacon_miss(ieee80211com_t *ic)
738 ieee80211_impl_t *im = ic->ic_private;
740 if (ic->ic_flags & IEEE80211_F_SCAN)
750 if (ic->ic_opmode != IEEE80211_M_STA ||
751 ic->ic_state != IEEE80211_S_RUN) {
755 IEEE80211_LOCK(ic);
763 IEEE80211_UNLOCK(ic);
764 (void) ieee80211_send_probereq(ic->ic_bss, ic->ic_macaddr,
765 ic->ic_bss->in_bssid, ic->ic_bss->in_bssid,
766 ic->ic_bss->in_essid, ic->ic_bss->in_esslen,
767 ic->ic_opt_ie, ic->ic_opt_ie_len);
771 IEEE80211_UNLOCK(ic);
772 ieee80211_new_state(ic, IEEE80211_S_SCAN, 0);
779 ieee80211_newstate(ieee80211com_t *ic, enum ieee80211_state nstate, int arg)
781 struct ieee80211_impl *im = ic->ic_private;
786 IEEE80211_LOCK(ic);
787 ostate = ic->ic_state;
791 ic->ic_state = nstate;
792 in = ic->ic_bss;
797 IEEE80211_UNLOCK(ic);
802 ieee80211_cancel_scan(ic);
807 if (ic->ic_opmode == IEEE80211_M_STA) {
808 IEEE80211_SEND_MGMT(ic, in,
814 switch (ic->ic_opmode) {
816 IEEE80211_SEND_MGMT(ic, in,
819 ieee80211_sta_leave(ic, in);
822 ieee80211_notify_node_leave(ic, in);
829 IEEE80211_LOCK(ic);
831 ieee80211_reset_bss(ic);
836 IEEE80211_UNLOCK(ic);
837 ieee80211_begin_scan(ic, (arg == 0) ? B_FALSE : B_TRUE);
846 if ((ic->ic_flags & IEEE80211_F_ASCAN) &&
847 !IEEE80211_IS_CHAN_PASSIVE(ic->ic_curchan)) {
848 IEEE80211_UNLOCK(ic);
850 ic->ic_macaddr, wifi_bcastaddr,
852 ic->ic_des_essid, ic->ic_des_esslen,
853 ic->ic_opt_ie, ic->ic_opt_ie_len);
862 IEEE80211_UNLOCK(ic);
863 ieee80211_sta_leave(ic, in);
864 IEEE80211_LOCK(ic);
865 ic->ic_flags &= ~IEEE80211_F_SIBSS;
870 in = ieee80211_find_node(&ic->ic_scan,
871 ic->ic_bss->in_macaddr);
880 ASSERT(ic->ic_opmode == IEEE80211_M_STA);
884 IEEE80211_UNLOCK(ic);
885 IEEE80211_SEND_MGMT(ic, in, IEEE80211_FC0_SUBTYPE_AUTH,
892 IEEE80211_UNLOCK(ic);
893 IEEE80211_SEND_MGMT(ic, in,
904 ic->ic_state = ostate; /* stay RUN */
905 IEEE80211_UNLOCK(ic);
906 IEEE80211_SEND_MGMT(ic, in,
910 IEEE80211_UNLOCK(ic);
911 ieee80211_sta_leave(ic, in);
913 IEEE80211_SEND_MGMT(ic, in,
921 ASSERT(ic->ic_opmode == IEEE80211_M_STA ||
922 ic->ic_opmode == IEEE80211_M_IBSS);
931 IEEE80211_UNLOCK(ic);
932 IEEE80211_SEND_MGMT(ic, in,
936 IEEE80211_UNLOCK(ic);
937 ieee80211_sta_leave(ic, in);
938 IEEE80211_SEND_MGMT(ic, in,
957 ieee80211_notify_node_join(ic, in);
963 wd.wd_secalloc = ieee80211_crypto_getciphertype(ic);
964 wd.wd_opmode = ic->ic_opmode;
970 if (ic->ic_flags & IEEE80211_F_DATAPAD) {
975 (void) mac_pdata_update(ic->ic_mach, &wd, sizeof (wd));
988 ic->ic_scan.nt_inact_timer = IEEE80211_INACT_WAIT;
989 ic->ic_sta.nt_inact_timer = IEEE80211_INACT_WAIT;
992 IEEE80211_UNLOCK(ic);