Lines Matching refs:vap

94 adhoc_vdetach(struct ieee80211vap *vap)
99 adhoc_vattach(struct ieee80211vap *vap)
101 vap->iv_newstate = adhoc_newstate;
102 vap->iv_input = adhoc_input;
103 if (vap->iv_opmode == IEEE80211_M_IBSS)
104 vap->iv_recv_mgmt = adhoc_recv_mgmt;
106 vap->iv_recv_mgmt = ahdemo_recv_mgmt;
107 vap->iv_recv_ctl = adhoc_recv_ctl;
108 vap->iv_opdetach = adhoc_vdetach;
115 if (vap->iv_caps & IEEE80211_C_TDMA)
116 ieee80211_tdma_vattach(vap);
123 struct ieee80211vap *vap = arg;
125 if (ni->ni_vap == vap && ni != vap->iv_bss)
130 * IEEE80211_M_IBSS+IEEE80211_M_AHDEMO vap state machine handler.
133 adhoc_newstate(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg)
135 struct ieee80211com *ic = vap->iv_ic;
139 IEEE80211_LOCK_ASSERT(vap->iv_ic);
141 ostate = vap->iv_state;
142 IEEE80211_DPRINTF(vap, IEEE80211_MSG_STATE, "%s: %s -> %s (%d)\n",
145 vap->iv_state = nstate; /* state transition */
147 ieee80211_cancel_scan(vap); /* background scan */
148 ni = vap->iv_bss; /* NB: no reference held */
153 ieee80211_cancel_scan(vap);
160 ieee80211_reset_bss(vap);
167 ieee80211_iterate_nodes(&ic->ic_sta, sta_leave, vap);
170 if (vap->iv_des_chan != IEEE80211_CHAN_ANYC &&
171 !IEEE80211_IS_CHAN_RADAR(vap->iv_des_chan)) {
176 ieee80211_create_ibss(vap,
178 vap->iv_des_chan, vap->iv_flags_ht));
184 * the vap will be marked with IEEE80211_FEXT_SCANREQ
188 if (vap->iv_flags_ext & IEEE80211_FEXT_SCANREQ) {
189 ieee80211_check_scan(vap,
190 vap->iv_scanreq_flags,
191 vap->iv_scanreq_duration,
192 vap->iv_scanreq_mindwell,
193 vap->iv_scanreq_maxdwell,
194 vap->iv_scanreq_nssid, vap->iv_scanreq_ssid);
195 vap->iv_flags_ext &= ~IEEE80211_FEXT_SCANREQ;
197 ieee80211_check_scan_current(vap);
206 if (vap->iv_roaming == IEEE80211_ROAMING_AUTO)
207 ieee80211_check_scan_current(vap);
214 if (vap->iv_flags & IEEE80211_F_WPA) {
220 if (ieee80211_msg_debug(vap)) {
221 ieee80211_note(vap,
224 ieee80211_print_essid(vap->iv_bss->ni_essid,
247 if (!IEEE80211_ADDR_EQ(ni->ni_macaddr, vap->iv_myaddr) &&
252 vap->iv_sta_ps(vap, 0);
256 IEEE80211_DPRINTF(vap, IEEE80211_MSG_STATE,
271 doprint(struct ieee80211vap *vap, int subtype)
275 return (vap->iv_ic->ic_flags & IEEE80211_F_SCAN);
296 struct ieee80211vap *vap = ni->ni_vap;
298 struct ifnet *ifp = vap->iv_ifp;
329 IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_ANY,
332 vap->iv_stats.is_rx_tooshort++;
345 IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_ANY,
348 vap->iv_stats.is_rx_badversion++;
362 IEEE80211_DISCARD_MAC(vap,
366 vap->iv_stats.is_rx_tooshort++;
377 !IEEE80211_ADDR_EQ(bssid, vap->iv_bss->ni_bssid) &&
380 IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT,
382 vap->iv_stats.is_rx_wrongbss++;
390 ni == vap->iv_bss &&
398 if (vap->iv_state != IEEE80211_S_RUN) {
399 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
401 ieee80211_state_name[vap->iv_state]);
402 vap->iv_stats.is_rx_badstate++;
409 ni = ieee80211_fakeup_adhoc_node(vap, wh->i_addr2);
433 IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_ANY,
436 vap->iv_stats.is_rx_tooshort++;
440 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
442 vap->iv_stats.is_rx_wrongdir++;
469 if ((vap->iv_flags & IEEE80211_F_PRIVACY) == 0) {
473 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
475 vap->iv_stats.is_rx_noprivacy++;
515 if (key != NULL && !ieee80211_crypto_demic(vap, key, m, 0)) {
516 IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT,
518 vap->iv_stats.is_rx_demicfail++;
524 if (ieee80211_radiotap_active_vap(vap))
525 ieee80211_radiotap_rx(vap, m);
531 m = ieee80211_decap(vap, m, hdrspace);
538 IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT,
540 vap->iv_stats.is_rx_decap++;
555 IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT,
559 vap->iv_stats.is_rx_unauth++;
568 if ((vap->iv_flags & IEEE80211_F_DROPUNENC) &&
574 vap->iv_stats.is_rx_unencrypted++;
586 m = ieee80211_decap_fastframe(vap, ni, m);
594 ieee80211_deliver_data(vap, ni, m);
598 vap->iv_stats.is_rx_mgmt++;
601 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
603 vap->iv_stats.is_rx_wrongdir++;
607 IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_ANY,
610 vap->iv_stats.is_rx_tooshort++;
614 if ((ieee80211_msg_debug(vap) && doprint(vap, subtype)) ||
615 ieee80211_msg_dumppkts(vap)) {
622 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
624 vap->iv_stats.is_rx_mgtdiscard++; /* XXX */
627 vap->iv_recv_mgmt(ni, m, subtype, rxs, rssi, nf);
631 vap->iv_stats.is_rx_ctl++;
633 vap->iv_recv_ctl(ni, m, subtype);
637 IEEE80211_DISCARD(vap, IEEE80211_MSG_ANY,
646 if (need_tap && ieee80211_radiotap_active_vap(vap))
647 ieee80211_radiotap_rx(vap, m);
674 struct ieee80211vap *vap = ni->ni_vap;
697 c = ieee80211_lookup_channel_rxstatus(vap, rxs);
707 vap->iv_stats.is_rx_beacon++; /* XXX remove */
724 ieee80211_probe_curchan(vap, 1);
727 ieee80211_add_scan(vap, rxchan, &scan, wh,
746 ni = ieee80211_add_neighbor(vap, wh, &scan);
771 (vap->iv_flags_ht & IEEE80211_FHT_HT)) {
803 if (vap->iv_state != IEEE80211_S_RUN) {
804 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
806 ieee80211_state_name[vap->iv_state]);
807 vap->iv_stats.is_rx_mgtdiscard++;
812 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
814 vap->iv_stats.is_rx_mgtdiscard++; /* XXX stat */
845 IEEE80211_VERIFY_SSID(vap->iv_bss, ssid, return);
846 if ((vap->iv_flags & IEEE80211_F_HIDESSID) && ssid[1] == 0) {
847 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
850 vap->iv_stats.is_rx_ssidmismatch++; /*XXX*/
855 IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_INPUT, wh->i_addr2,
863 ieee80211_send_proberesp(vap, wh->i_addr2,
869 if ((ni == vap->iv_bss) &&
871 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
873 vap->iv_stats.is_rx_mgtdiscard++;
874 } else if (!IEEE80211_ADDR_EQ(vap->iv_myaddr, wh->i_addr1) &&
876 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
878 vap->iv_stats.is_rx_mgtdiscard++;
879 } else if (vap->iv_state != IEEE80211_S_RUN) {
880 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
882 ieee80211_state_name[vap->iv_state]);
883 vap->iv_stats.is_rx_mgtdiscard++;
899 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
901 vap->iv_stats.is_rx_mgtdiscard++;
905 IEEE80211_DISCARD(vap, IEEE80211_MSG_ANY,
907 vap->iv_stats.is_rx_badsubtype++;
918 struct ieee80211vap *vap = ni->ni_vap;
945 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
947 vap->iv_stats.is_rx_mgtdiscard++;
950 IEEE80211_DISCARD(vap, IEEE80211_MSG_ANY,
952 vap->iv_stats.is_rx_badsubtype++;