Lines Matching refs:ifibss
45 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_build_presp() local
69 ifibss->ie_len; in ieee80211_ibss_build_presp()
81 memcpy(mgmt->bssid, ifibss->bssid, ETH_ALEN); in ieee80211_ibss_build_presp()
89 *pos++ = ifibss->ssid_len; in ieee80211_ibss_build_presp()
90 memcpy(pos, ifibss->ssid, ifibss->ssid_len); in ieee80211_ibss_build_presp()
91 pos += ifibss->ssid_len; in ieee80211_ibss_build_presp()
170 if (ifibss->ie_len) { in ieee80211_ibss_build_presp()
171 memcpy(pos, ifibss->ie, ifibss->ie_len); in ieee80211_ibss_build_presp()
172 pos += ifibss->ie_len; in ieee80211_ibss_build_presp()
225 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in __ieee80211_sta_join_ibss() local
243 if (!ether_addr_equal(ifibss->bssid, bssid)) in __ieee80211_sta_join_ibss()
258 presp = rcu_dereference_protected(ifibss->presp, in __ieee80211_sta_join_ibss()
260 RCU_INIT_POINTER(ifibss->presp, NULL); in __ieee80211_sta_join_ibss()
295 if (err > 0 && !ifibss->userspace_handles_dfs) { in __ieee80211_sta_join_ibss()
305 ifibss->fixed_channel ? in __ieee80211_sta_join_ibss()
315 memcpy(ifibss->bssid, bssid, ETH_ALEN); in __ieee80211_sta_join_ibss()
323 rcu_assign_pointer(ifibss->presp, presp); in __ieee80211_sta_join_ibss()
329 sdata->vif.bss_conf.ssid_len = ifibss->ssid_len; in __ieee80211_sta_join_ibss()
330 memcpy(sdata->vif.bss_conf.ssid, ifibss->ssid, ifibss->ssid_len); in __ieee80211_sta_join_ibss()
371 RCU_INIT_POINTER(ifibss->presp, NULL); in __ieee80211_sta_join_ibss()
383 ifibss->state = IEEE80211_IBSS_MLME_JOINED; in __ieee80211_sta_join_ibss()
384 mod_timer(&ifibss->timer, in __ieee80211_sta_join_ibss()
394 cfg80211_ibss_joined(sdata->dev, ifibss->bssid, chan, GFP_KERNEL); in __ieee80211_sta_join_ibss()
486 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_csa_beacon() local
496 if (ifibss->privacy) in ieee80211_ibss_csa_beacon()
499 cbss = cfg80211_get_bss(sdata->local->hw.wiphy, ifibss->chandef.chan, in ieee80211_ibss_csa_beacon()
500 ifibss->bssid, ifibss->ssid, in ieee80211_ibss_csa_beacon()
501 ifibss->ssid_len, IEEE80211_BSS_TYPE_IBSS, in ieee80211_ibss_csa_beacon()
502 IEEE80211_PRIVACY(ifibss->privacy)); in ieee80211_ibss_csa_beacon()
515 old_presp = rcu_dereference_protected(ifibss->presp, in ieee80211_ibss_csa_beacon()
521 capability, tsf, &ifibss->chandef, in ieee80211_ibss_csa_beacon()
528 rcu_assign_pointer(ifibss->presp, presp); in ieee80211_ibss_csa_beacon()
539 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_finish_csa() local
545 if (!is_zero_ether_addr(ifibss->bssid)) { in ieee80211_ibss_finish_csa()
547 ifibss->chandef.chan, in ieee80211_ibss_finish_csa()
548 ifibss->bssid, ifibss->ssid, in ieee80211_ibss_finish_csa()
549 ifibss->ssid_len, in ieee80211_ibss_finish_csa()
551 IEEE80211_PRIVACY(ifibss->privacy)); in ieee80211_ibss_finish_csa()
559 ifibss->chandef = sdata->csa_chandef; in ieee80211_ibss_finish_csa()
567 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_stop() local
569 cancel_work_sync(&ifibss->csa_connection_drop_work); in ieee80211_ibss_stop()
602 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_add_sta() local
621 if (ifibss->state == IEEE80211_IBSS_MLME_SEARCH) { in ieee80211_ibss_add_sta()
681 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_disconnect() local
687 if (!is_zero_ether_addr(ifibss->bssid)) { in ieee80211_ibss_disconnect()
688 cbss = cfg80211_get_bss(local->hw.wiphy, ifibss->chandef.chan, in ieee80211_ibss_disconnect()
689 ifibss->bssid, ifibss->ssid, in ieee80211_ibss_disconnect()
690 ifibss->ssid_len, in ieee80211_ibss_disconnect()
692 IEEE80211_PRIVACY(ifibss->privacy)); in ieee80211_ibss_disconnect()
700 ifibss->state = IEEE80211_IBSS_MLME_SEARCH; in ieee80211_ibss_disconnect()
704 spin_lock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_disconnect()
705 while (!list_empty(&ifibss->incomplete_stations)) { in ieee80211_ibss_disconnect()
706 sta = list_first_entry(&ifibss->incomplete_stations, in ieee80211_ibss_disconnect()
709 spin_unlock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_disconnect()
712 spin_lock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_disconnect()
714 spin_unlock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_disconnect()
724 presp = rcu_dereference_protected(ifibss->presp, in ieee80211_ibss_disconnect()
759 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_csa_mark_radar() local
766 &ifibss->chandef, in ieee80211_ibss_csa_mark_radar()
769 cfg80211_radar_event(sdata->local->hw.wiphy, &ifibss->chandef, in ieee80211_ibss_csa_mark_radar()
780 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_process_chanswitch() local
789 switch (ifibss->chandef.width) { in ieee80211_ibss_process_chanswitch()
807 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()
1205 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_rx_no_sta() local
1223 if (ifibss->state == IEEE80211_IBSS_MLME_SEARCH) in ieee80211_ibss_rx_no_sta()
1248 spin_lock(&ifibss->incomplete_lock); in ieee80211_ibss_rx_no_sta()
1249 list_add(&sta->list, &ifibss->incomplete_stations); in ieee80211_ibss_rx_no_sta()
1250 spin_unlock(&ifibss->incomplete_lock); in ieee80211_ibss_rx_no_sta()
1256 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_sta_expire() local
1280 ifibss->bssid, in ieee80211_ibss_sta_expire()
1297 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_sta_merge_ibss() local
1302 mod_timer(&ifibss->timer, in ieee80211_sta_merge_ibss()
1307 if (time_before(jiffies, ifibss->last_scan_completed + in ieee80211_sta_merge_ibss()
1314 if (ifibss->fixed_channel) in ieee80211_sta_merge_ibss()
1320 scan_width = cfg80211_chandef_to_scan_width(&ifibss->chandef); in ieee80211_sta_merge_ibss()
1321 ieee80211_request_ibss_scan(sdata, ifibss->ssid, ifibss->ssid_len, in ieee80211_sta_merge_ibss()
1327 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_sta_create_ibss() local
1334 if (ifibss->fixed_bssid) { in ieee80211_sta_create_ibss()
1335 memcpy(bssid, ifibss->bssid, ETH_ALEN); in ieee80211_sta_create_ibss()
1351 if (ifibss->privacy) in ieee80211_sta_create_ibss()
1355 &ifibss->chandef, ifibss->basic_rates, in ieee80211_sta_create_ibss()
1435 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_sta_find_ibss() local
1451 if (ifibss->fixed_bssid) in ieee80211_sta_find_ibss()
1452 bssid = ifibss->bssid; in ieee80211_sta_find_ibss()
1453 if (ifibss->fixed_channel) in ieee80211_sta_find_ibss()
1454 chan = ifibss->chandef.chan; in ieee80211_sta_find_ibss()
1455 if (!is_zero_ether_addr(ifibss->bssid)) in ieee80211_sta_find_ibss()
1456 bssid = ifibss->bssid; in ieee80211_sta_find_ibss()
1458 ifibss->ssid, ifibss->ssid_len, in ieee80211_sta_find_ibss()
1460 IEEE80211_PRIVACY(ifibss->privacy)); in ieee80211_sta_find_ibss()
1468 cbss->bssid, ifibss->bssid); in ieee80211_sta_find_ibss()
1481 if (ifibss->fixed_bssid && ifibss->fixed_channel) { in ieee80211_sta_find_ibss()
1492 if (time_after(jiffies, ifibss->last_scan_completed + in ieee80211_sta_find_ibss()
1499 scan_width = cfg80211_chandef_to_scan_width(&ifibss->chandef); in ieee80211_sta_find_ibss()
1501 if (ifibss->fixed_channel) { in ieee80211_sta_find_ibss()
1503 &ifibss->chandef, in ieee80211_sta_find_ibss()
1506 ieee80211_request_ibss_scan(sdata, ifibss->ssid, in ieee80211_sta_find_ibss()
1507 ifibss->ssid_len, channels, in ieee80211_sta_find_ibss()
1510 ieee80211_request_ibss_scan(sdata, ifibss->ssid, in ieee80211_sta_find_ibss()
1511 ifibss->ssid_len, NULL, in ieee80211_sta_find_ibss()
1517 if (time_after(jiffies, ifibss->ibss_join_req + in ieee80211_sta_find_ibss()
1521 mod_timer(&ifibss->timer, in ieee80211_sta_find_ibss()
1530 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_rx_mgmt_probe_req() local
1539 presp = rcu_dereference_protected(ifibss->presp, in ieee80211_rx_mgmt_probe_req()
1542 if (ifibss->state != IEEE80211_IBSS_MLME_JOINED || in ieee80211_rx_mgmt_probe_req()
1555 if (!ether_addr_equal(mgmt->bssid, ifibss->bssid) && in ieee80211_rx_mgmt_probe_req()
1568 (pos[1] != ifibss->ssid_len || in ieee80211_rx_mgmt_probe_req()
1569 memcmp(pos + 2, ifibss->ssid, ifibss->ssid_len))) { in ieee80211_rx_mgmt_probe_req()
1680 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_work() local
1690 if (!ifibss->ssid_len) in ieee80211_ibss_work()
1693 spin_lock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_work()
1694 while (!list_empty(&ifibss->incomplete_stations)) { in ieee80211_ibss_work()
1695 sta = list_first_entry(&ifibss->incomplete_stations, in ieee80211_ibss_work()
1698 spin_unlock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_work()
1702 spin_lock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_work()
1704 spin_unlock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_work()
1706 switch (ifibss->state) { in ieee80211_ibss_work()
1732 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_setup_sdata() local
1734 timer_setup(&ifibss->timer, ieee80211_ibss_timer, 0); in ieee80211_ibss_setup_sdata()
1735 INIT_LIST_HEAD(&ifibss->incomplete_stations); in ieee80211_ibss_setup_sdata()
1736 spin_lock_init(&ifibss->incomplete_lock); in ieee80211_ibss_setup_sdata()
1737 INIT_WORK(&ifibss->csa_connection_drop_work, in ieee80211_ibss_setup_sdata()
1869 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_leave() local
1872 ifibss->ssid_len = 0; in ieee80211_ibss_leave()
1873 eth_zero_addr(ifibss->bssid); in ieee80211_ibss_leave()
1879 memset(&ifibss->ht_capa, 0, sizeof(ifibss->ht_capa)); in ieee80211_ibss_leave()
1880 memset(&ifibss->ht_capa_mask, 0, sizeof(ifibss->ht_capa_mask)); in ieee80211_ibss_leave()