Lines Matching refs:ifibss

46 	struct ieee80211_if_ibss *ifibss = &sdata->u.ibss;  in ieee80211_ibss_build_presp()  local
68 ifibss->ie_len; in ieee80211_ibss_build_presp()
80 memcpy(mgmt->bssid, ifibss->bssid, ETH_ALEN); in ieee80211_ibss_build_presp()
88 *pos++ = ifibss->ssid_len; in ieee80211_ibss_build_presp()
89 memcpy(pos, ifibss->ssid, ifibss->ssid_len); in ieee80211_ibss_build_presp()
90 pos += ifibss->ssid_len; in ieee80211_ibss_build_presp()
169 if (ifibss->ie_len) { in ieee80211_ibss_build_presp()
170 memcpy(pos, ifibss->ie, ifibss->ie_len); in ieee80211_ibss_build_presp()
171 pos += ifibss->ie_len; in ieee80211_ibss_build_presp()
224 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in __ieee80211_sta_join_ibss() local
242 if (!ether_addr_equal(ifibss->bssid, bssid)) in __ieee80211_sta_join_ibss()
257 presp = rcu_dereference_protected(ifibss->presp, in __ieee80211_sta_join_ibss()
259 RCU_INIT_POINTER(ifibss->presp, NULL); in __ieee80211_sta_join_ibss()
294 if (err > 0 && !ifibss->userspace_handles_dfs) { in __ieee80211_sta_join_ibss()
304 ifibss->fixed_channel ? in __ieee80211_sta_join_ibss()
314 memcpy(ifibss->bssid, bssid, ETH_ALEN); in __ieee80211_sta_join_ibss()
322 rcu_assign_pointer(ifibss->presp, presp); in __ieee80211_sta_join_ibss()
328 sdata->vif.bss_conf.ssid_len = ifibss->ssid_len; in __ieee80211_sta_join_ibss()
329 memcpy(sdata->vif.bss_conf.ssid, ifibss->ssid, ifibss->ssid_len); in __ieee80211_sta_join_ibss()
370 RCU_INIT_POINTER(ifibss->presp, NULL); in __ieee80211_sta_join_ibss()
382 ifibss->state = IEEE80211_IBSS_MLME_JOINED; in __ieee80211_sta_join_ibss()
383 mod_timer(&ifibss->timer, in __ieee80211_sta_join_ibss()
392 cfg80211_ibss_joined(sdata->dev, ifibss->bssid, chan, GFP_KERNEL); in __ieee80211_sta_join_ibss()
483 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_csa_beacon() local
493 if (ifibss->privacy) in ieee80211_ibss_csa_beacon()
496 cbss = cfg80211_get_bss(sdata->local->hw.wiphy, ifibss->chandef.chan, in ieee80211_ibss_csa_beacon()
497 ifibss->bssid, ifibss->ssid, in ieee80211_ibss_csa_beacon()
498 ifibss->ssid_len, IEEE80211_BSS_TYPE_IBSS, in ieee80211_ibss_csa_beacon()
499 IEEE80211_PRIVACY(ifibss->privacy)); in ieee80211_ibss_csa_beacon()
512 old_presp = rcu_dereference_protected(ifibss->presp, in ieee80211_ibss_csa_beacon()
518 capability, tsf, &ifibss->chandef, in ieee80211_ibss_csa_beacon()
525 rcu_assign_pointer(ifibss->presp, presp); in ieee80211_ibss_csa_beacon()
536 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_finish_csa() local
543 if (!is_zero_ether_addr(ifibss->bssid)) { in ieee80211_ibss_finish_csa()
545 ifibss->chandef.chan, in ieee80211_ibss_finish_csa()
546 ifibss->bssid, ifibss->ssid, in ieee80211_ibss_finish_csa()
547 ifibss->ssid_len, in ieee80211_ibss_finish_csa()
549 IEEE80211_PRIVACY(ifibss->privacy)); in ieee80211_ibss_finish_csa()
557 ifibss->chandef = sdata->csa_chandef; in ieee80211_ibss_finish_csa()
571 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_stop() local
573 cancel_work_sync(&ifibss->csa_connection_drop_work); in ieee80211_ibss_stop()
606 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_add_sta() local
625 if (ifibss->state == IEEE80211_IBSS_MLME_SEARCH) { in ieee80211_ibss_add_sta()
685 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_disconnect() local
691 if (!is_zero_ether_addr(ifibss->bssid)) { in ieee80211_ibss_disconnect()
692 cbss = cfg80211_get_bss(local->hw.wiphy, ifibss->chandef.chan, in ieee80211_ibss_disconnect()
693 ifibss->bssid, ifibss->ssid, in ieee80211_ibss_disconnect()
694 ifibss->ssid_len, in ieee80211_ibss_disconnect()
696 IEEE80211_PRIVACY(ifibss->privacy)); in ieee80211_ibss_disconnect()
704 ifibss->state = IEEE80211_IBSS_MLME_SEARCH; in ieee80211_ibss_disconnect()
708 spin_lock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_disconnect()
709 while (!list_empty(&ifibss->incomplete_stations)) { in ieee80211_ibss_disconnect()
710 sta = list_first_entry(&ifibss->incomplete_stations, in ieee80211_ibss_disconnect()
713 spin_unlock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_disconnect()
716 spin_lock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_disconnect()
718 spin_unlock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_disconnect()
728 presp = rcu_dereference_protected(ifibss->presp, in ieee80211_ibss_disconnect()
763 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_csa_mark_radar() local
770 &ifibss->chandef, in ieee80211_ibss_csa_mark_radar()
773 cfg80211_radar_event(sdata->local->hw.wiphy, &ifibss->chandef, in ieee80211_ibss_csa_mark_radar()
784 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_process_chanswitch() local
792 switch (ifibss->chandef.width) { in ieee80211_ibss_process_chanswitch()
808 ifibss->chandef.chan->band, in ieee80211_ibss_process_chanswitch()
809 sta_flags, ifibss->bssid, &csa_ie); in ieee80211_ibss_process_chanswitch()
825 switch (ifibss->chandef.width) { in ieee80211_ibss_process_chanswitch()
834 ch_type = cfg80211_get_chandef_type(&ifibss->chandef); in ieee80211_ibss_process_chanswitch()
840 if (params.chandef.width != ifibss->chandef.width) { in ieee80211_ibss_process_chanswitch()
843 ifibss->bssid, in ieee80211_ibss_process_chanswitch()
861 ifibss->bssid, in ieee80211_ibss_process_chanswitch()
874 if (err > 0 && !ifibss->userspace_handles_dfs) { in ieee80211_ibss_process_chanswitch()
905 &ifibss->csa_connection_drop_work); in ieee80211_ibss_process_chanswitch()
1196 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_rx_no_sta() local
1214 if (ifibss->state == IEEE80211_IBSS_MLME_SEARCH) in ieee80211_ibss_rx_no_sta()
1241 spin_lock(&ifibss->incomplete_lock); in ieee80211_ibss_rx_no_sta()
1242 list_add(&sta->list, &ifibss->incomplete_stations); in ieee80211_ibss_rx_no_sta()
1243 spin_unlock(&ifibss->incomplete_lock); in ieee80211_ibss_rx_no_sta()
1280 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_sta_merge_ibss() local
1285 mod_timer(&ifibss->timer, in ieee80211_sta_merge_ibss()
1290 if (time_before(jiffies, ifibss->last_scan_completed + in ieee80211_sta_merge_ibss()
1297 if (ifibss->fixed_channel) in ieee80211_sta_merge_ibss()
1303 scan_width = cfg80211_chandef_to_scan_width(&ifibss->chandef); in ieee80211_sta_merge_ibss()
1304 ieee80211_request_ibss_scan(sdata, ifibss->ssid, ifibss->ssid_len, in ieee80211_sta_merge_ibss()
1310 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_sta_create_ibss() local
1317 if (ifibss->fixed_bssid) { in ieee80211_sta_create_ibss()
1318 memcpy(bssid, ifibss->bssid, ETH_ALEN); in ieee80211_sta_create_ibss()
1334 if (ifibss->privacy) in ieee80211_sta_create_ibss()
1338 &ifibss->chandef, ifibss->basic_rates, in ieee80211_sta_create_ibss()
1418 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_sta_find_ibss() local
1434 if (ifibss->fixed_bssid) in ieee80211_sta_find_ibss()
1435 bssid = ifibss->bssid; in ieee80211_sta_find_ibss()
1436 if (ifibss->fixed_channel) in ieee80211_sta_find_ibss()
1437 chan = ifibss->chandef.chan; in ieee80211_sta_find_ibss()
1438 if (!is_zero_ether_addr(ifibss->bssid)) in ieee80211_sta_find_ibss()
1439 bssid = ifibss->bssid; in ieee80211_sta_find_ibss()
1441 ifibss->ssid, ifibss->ssid_len, in ieee80211_sta_find_ibss()
1443 IEEE80211_PRIVACY(ifibss->privacy)); in ieee80211_sta_find_ibss()
1451 cbss->bssid, ifibss->bssid); in ieee80211_sta_find_ibss()
1464 if (ifibss->fixed_bssid && ifibss->fixed_channel) { in ieee80211_sta_find_ibss()
1475 if (time_after(jiffies, ifibss->last_scan_completed + in ieee80211_sta_find_ibss()
1483 &ifibss->chandef, in ieee80211_sta_find_ibss()
1486 scan_width = cfg80211_chandef_to_scan_width(&ifibss->chandef); in ieee80211_sta_find_ibss()
1487 ieee80211_request_ibss_scan(sdata, ifibss->ssid, in ieee80211_sta_find_ibss()
1488 ifibss->ssid_len, channels, num, in ieee80211_sta_find_ibss()
1493 if (time_after(jiffies, ifibss->ibss_join_req + in ieee80211_sta_find_ibss()
1497 mod_timer(&ifibss->timer, in ieee80211_sta_find_ibss()
1506 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_rx_mgmt_probe_req() local
1515 presp = rcu_dereference_protected(ifibss->presp, in ieee80211_rx_mgmt_probe_req()
1518 if (ifibss->state != IEEE80211_IBSS_MLME_JOINED || in ieee80211_rx_mgmt_probe_req()
1531 if (!ether_addr_equal(mgmt->bssid, ifibss->bssid) && in ieee80211_rx_mgmt_probe_req()
1544 (pos[1] != ifibss->ssid_len || in ieee80211_rx_mgmt_probe_req()
1545 memcmp(pos + 2, ifibss->ssid, ifibss->ssid_len))) { in ieee80211_rx_mgmt_probe_req()
1656 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_work() local
1666 if (!ifibss->ssid_len) in ieee80211_ibss_work()
1669 spin_lock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_work()
1670 while (!list_empty(&ifibss->incomplete_stations)) { in ieee80211_ibss_work()
1671 sta = list_first_entry(&ifibss->incomplete_stations, in ieee80211_ibss_work()
1674 spin_unlock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_work()
1678 spin_lock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_work()
1680 spin_unlock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_work()
1682 switch (ifibss->state) { in ieee80211_ibss_work()
1708 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_setup_sdata() local
1710 setup_timer(&ifibss->timer, ieee80211_ibss_timer, in ieee80211_ibss_setup_sdata()
1712 INIT_LIST_HEAD(&ifibss->incomplete_stations); in ieee80211_ibss_setup_sdata()
1713 spin_lock_init(&ifibss->incomplete_lock); in ieee80211_ibss_setup_sdata()
1714 INIT_WORK(&ifibss->csa_connection_drop_work, in ieee80211_ibss_setup_sdata()
1840 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_leave() local
1843 ifibss->ssid_len = 0; in ieee80211_ibss_leave()
1844 eth_zero_addr(ifibss->bssid); in ieee80211_ibss_leave()
1850 memset(&ifibss->ht_capa, 0, sizeof(ifibss->ht_capa)); in ieee80211_ibss_leave()
1851 memset(&ifibss->ht_capa_mask, 0, sizeof(ifibss->ht_capa_mask)); in ieee80211_ibss_leave()