Lines Matching defs:vap

92 adhoc_vdetach(struct ieee80211vap *vap)
97 adhoc_vattach(struct ieee80211vap *vap)
99 vap->iv_newstate = adhoc_newstate;
100 vap->iv_input = adhoc_input;
101 if (vap->iv_opmode == IEEE80211_M_IBSS)
102 vap->iv_recv_mgmt = adhoc_recv_mgmt;
104 vap->iv_recv_mgmt = ahdemo_recv_mgmt;
105 vap->iv_recv_ctl = adhoc_recv_ctl;
106 vap->iv_opdetach = adhoc_vdetach;
113 if (vap->iv_caps & IEEE80211_C_TDMA)
114 ieee80211_tdma_vattach(vap);
121 struct ieee80211vap *vap = arg;
123 if (ni->ni_vap == vap && ni != vap->iv_bss)
128 * IEEE80211_M_IBSS+IEEE80211_M_AHDEMO vap state machine handler.
131 adhoc_newstate(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg)
133 struct ieee80211com *ic = vap->iv_ic;
137 IEEE80211_LOCK_ASSERT(vap->iv_ic);
139 ostate = vap->iv_state;
140 IEEE80211_DPRINTF(vap, IEEE80211_MSG_STATE, "%s: %s -> %s (%d)\n",
143 vap->iv_state = nstate; /* state transition */
145 ieee80211_cancel_scan(vap); /* background scan */
146 ni = vap->iv_bss; /* NB: no reference held */
151 ieee80211_cancel_scan(vap);
158 ieee80211_reset_bss(vap);
165 ieee80211_iterate_nodes(&ic->ic_sta, sta_leave, vap);
168 if (vap->iv_des_chan != IEEE80211_CHAN_ANYC &&
169 !IEEE80211_IS_CHAN_RADAR(vap->iv_des_chan)) {
174 ieee80211_create_ibss(vap,
176 vap->iv_des_chan, vap->iv_flags_ht));
182 * the vap will be marked with IEEE80211_FEXT_SCANREQ
186 if (vap->iv_flags_ext & IEEE80211_FEXT_SCANREQ) {
187 ieee80211_check_scan(vap,
188 vap->iv_scanreq_flags,
189 vap->iv_scanreq_duration,
190 vap->iv_scanreq_mindwell,
191 vap->iv_scanreq_maxdwell,
192 vap->iv_scanreq_nssid, vap->iv_scanreq_ssid);
193 vap->iv_flags_ext &= ~IEEE80211_FEXT_SCANREQ;
195 ieee80211_check_scan_current(vap);
204 if (vap->iv_roaming == IEEE80211_ROAMING_AUTO)
205 ieee80211_check_scan_current(vap);
212 if (vap->iv_flags & IEEE80211_F_WPA) {
218 if (ieee80211_msg_debug(vap)) {
219 ieee80211_note(vap,
222 ieee80211_print_essid(vap->iv_bss->ni_essid,
243 if (!IEEE80211_ADDR_EQ(ni->ni_macaddr, vap->iv_myaddr) &&
248 vap->iv_sta_ps(vap, 0);
252 IEEE80211_DPRINTF(vap, IEEE80211_MSG_STATE,
267 doprint(struct ieee80211vap *vap, int subtype)
271 return (vap->iv_ic->ic_flags & IEEE80211_F_SCAN);
292 struct ieee80211vap *vap = ni->ni_vap;
294 struct ifnet *ifp = vap->iv_ifp;
326 IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_ANY,
329 vap->iv_stats.is_rx_tooshort++;
342 IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_ANY,
345 vap->iv_stats.is_rx_badversion++;
359 IEEE80211_DISCARD_MAC(vap,
363 vap->iv_stats.is_rx_tooshort++;
371 if (!IEEE80211_ADDR_EQ(bssid, vap->iv_bss->ni_bssid) &&
374 IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT,
376 vap->iv_stats.is_rx_wrongbss++;
384 ni == vap->iv_bss &&
392 if (vap->iv_state != IEEE80211_S_RUN) {
393 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
395 ieee80211_state_name[vap->iv_state]);
396 vap->iv_stats.is_rx_badstate++;
403 ni = ieee80211_fakeup_adhoc_node(vap, wh->i_addr2);
419 IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT,
429 vap->iv_stats.is_rx_dup++;
442 IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_ANY,
445 vap->iv_stats.is_rx_tooshort++;
449 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
451 vap->iv_stats.is_rx_wrongdir++;
478 if ((vap->iv_flags & IEEE80211_F_PRIVACY) == 0) {
482 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
484 vap->iv_stats.is_rx_noprivacy++;
526 if (key != NULL && !ieee80211_crypto_demic(vap, key, m, 0)) {
527 IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT,
529 vap->iv_stats.is_rx_demicfail++;
535 if (ieee80211_radiotap_active_vap(vap))
536 ieee80211_radiotap_rx(vap, m);
542 m = ieee80211_decap(vap, m, hdrspace);
549 IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT,
551 vap->iv_stats.is_rx_decap++;
566 IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT,
570 vap->iv_stats.is_rx_unauth++;
579 if ((vap->iv_flags & IEEE80211_F_DROPUNENC) &&
585 vap->iv_stats.is_rx_unencrypted++;
597 m = ieee80211_decap_fastframe(vap, ni, m);
605 ieee80211_deliver_data(vap, ni, m);
609 vap->iv_stats.is_rx_mgmt++;
612 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
614 vap->iv_stats.is_rx_wrongdir++;
618 IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_ANY,
621 vap->iv_stats.is_rx_tooshort++;
625 if ((ieee80211_msg_debug(vap) && doprint(vap, subtype)) ||
626 ieee80211_msg_dumppkts(vap)) {
634 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
636 vap->iv_stats.is_rx_mgtdiscard++; /* XXX */
639 vap->iv_recv_mgmt(ni, m, subtype, rssi, nf);
643 vap->iv_stats.is_rx_ctl++;
645 vap->iv_recv_ctl(ni, m, subtype);
649 IEEE80211_DISCARD(vap, IEEE80211_MSG_ANY,
658 if (need_tap && ieee80211_radiotap_active_vap(vap))
659 ieee80211_radiotap_rx(vap, m);
686 struct ieee80211vap *vap = ni->ni_vap;
712 vap->iv_stats.is_rx_beacon++; /* XXX remove */
729 ieee80211_probe_curchan(vap, 1);
732 ieee80211_add_scan(vap, &scan, wh, subtype, rssi, nf);
740 ni = ieee80211_add_neighbor(vap, wh, &scan);
763 (vap->iv_flags_ht & IEEE80211_FHT_HT)) {
795 if (vap->iv_state != IEEE80211_S_RUN) {
796 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
798 ieee80211_state_name[vap->iv_state]);
799 vap->iv_stats.is_rx_mgtdiscard++;
804 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
806 vap->iv_stats.is_rx_mgtdiscard++; /* XXX stat */
838 IEEE80211_VERIFY_SSID(vap->iv_bss, ssid, return);
839 if ((vap->iv_flags & IEEE80211_F_HIDESSID) && ssid[1] == 0) {
840 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
843 vap->iv_stats.is_rx_ssidmismatch++; /*XXX*/
848 IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_INPUT, wh->i_addr2,
856 ieee80211_send_proberesp(vap, wh->i_addr2,
862 if (ni == vap->iv_bss) {
863 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
865 vap->iv_stats.is_rx_mgtdiscard++;
866 } else if (!IEEE80211_ADDR_EQ(vap->iv_myaddr, wh->i_addr1) &&
868 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
870 vap->iv_stats.is_rx_mgtdiscard++;
871 } else if (vap->iv_state != IEEE80211_S_RUN) {
872 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
874 ieee80211_state_name[vap->iv_state]);
875 vap->iv_stats.is_rx_mgtdiscard++;
890 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
892 vap->iv_stats.is_rx_mgtdiscard++;
896 IEEE80211_DISCARD(vap, IEEE80211_MSG_ANY,
898 vap->iv_stats.is_rx_badsubtype++;
909 struct ieee80211vap *vap = ni->ni_vap;
935 IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
937 vap->iv_stats.is_rx_mgtdiscard++;
940 IEEE80211_DISCARD(vap, IEEE80211_MSG_ANY,
942 vap->iv_stats.is_rx_badsubtype++;