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 = sdata_dereference(ifibss->presp, sdata); 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.cfg.ssid_len = ifibss->ssid_len; in __ieee80211_sta_join_ibss()
329 memcpy(sdata->vif.cfg.ssid, ifibss->ssid, ifibss->ssid_len); in __ieee80211_sta_join_ibss()
368 RCU_INIT_POINTER(ifibss->presp, NULL); in __ieee80211_sta_join_ibss()
380 ifibss->state = IEEE80211_IBSS_MLME_JOINED; in __ieee80211_sta_join_ibss()
381 mod_timer(&ifibss->timer, in __ieee80211_sta_join_ibss()
391 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
492 if (ifibss->privacy) in ieee80211_ibss_csa_beacon()
495 cbss = cfg80211_get_bss(sdata->local->hw.wiphy, ifibss->chandef.chan, in ieee80211_ibss_csa_beacon()
496 ifibss->bssid, ifibss->ssid, in ieee80211_ibss_csa_beacon()
497 ifibss->ssid_len, IEEE80211_BSS_TYPE_IBSS, in ieee80211_ibss_csa_beacon()
498 IEEE80211_PRIVACY(ifibss->privacy)); in ieee80211_ibss_csa_beacon()
509 old_presp = sdata_dereference(ifibss->presp, sdata); in ieee80211_ibss_csa_beacon()
514 capability, tsf, &ifibss->chandef, in ieee80211_ibss_csa_beacon()
519 rcu_assign_pointer(ifibss->presp, presp); in ieee80211_ibss_csa_beacon()
528 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_finish_csa() local
534 if (ifibss->state != IEEE80211_IBSS_MLME_JOINED) in ieee80211_ibss_finish_csa()
538 if (!is_zero_ether_addr(ifibss->bssid)) { in ieee80211_ibss_finish_csa()
540 ifibss->chandef.chan, in ieee80211_ibss_finish_csa()
541 ifibss->bssid, ifibss->ssid, in ieee80211_ibss_finish_csa()
542 ifibss->ssid_len, in ieee80211_ibss_finish_csa()
544 IEEE80211_PRIVACY(ifibss->privacy)); in ieee80211_ibss_finish_csa()
552 ifibss->chandef = sdata->deflink.csa_chandef; in ieee80211_ibss_finish_csa()
560 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_stop() local
562 cancel_work_sync(&ifibss->csa_connection_drop_work); in ieee80211_ibss_stop()
595 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_add_sta() local
614 if (ifibss->state == IEEE80211_IBSS_MLME_SEARCH) { in ieee80211_ibss_add_sta()
674 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_disconnect() local
680 if (!is_zero_ether_addr(ifibss->bssid)) { in ieee80211_ibss_disconnect()
681 cbss = cfg80211_get_bss(local->hw.wiphy, ifibss->chandef.chan, in ieee80211_ibss_disconnect()
682 ifibss->bssid, ifibss->ssid, in ieee80211_ibss_disconnect()
683 ifibss->ssid_len, in ieee80211_ibss_disconnect()
685 IEEE80211_PRIVACY(ifibss->privacy)); in ieee80211_ibss_disconnect()
693 ifibss->state = IEEE80211_IBSS_MLME_SEARCH; in ieee80211_ibss_disconnect()
697 spin_lock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_disconnect()
698 while (!list_empty(&ifibss->incomplete_stations)) { in ieee80211_ibss_disconnect()
699 sta = list_first_entry(&ifibss->incomplete_stations, in ieee80211_ibss_disconnect()
702 spin_unlock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_disconnect()
705 spin_lock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_disconnect()
707 spin_unlock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_disconnect()
717 presp = sdata_dereference(ifibss->presp, sdata); in ieee80211_ibss_disconnect()
751 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_csa_mark_radar() local
758 &ifibss->chandef, in ieee80211_ibss_csa_mark_radar()
761 cfg80211_radar_event(sdata->local->hw.wiphy, &ifibss->chandef, in ieee80211_ibss_csa_mark_radar()
772 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_process_chanswitch() local
782 switch (ifibss->chandef.width) { in ieee80211_ibss_process_chanswitch()
800 ifibss->chandef.chan->band, in ieee80211_ibss_process_chanswitch()
802 conn_flags, ifibss->bssid, &csa_ie); in ieee80211_ibss_process_chanswitch()
818 switch (ifibss->chandef.width) { in ieee80211_ibss_process_chanswitch()
827 ch_type = cfg80211_get_chandef_type(&ifibss->chandef); in ieee80211_ibss_process_chanswitch()
833 if (params.chandef.width != ifibss->chandef.width) { in ieee80211_ibss_process_chanswitch()
836 ifibss->bssid, in ieee80211_ibss_process_chanswitch()
854 ifibss->bssid, in ieee80211_ibss_process_chanswitch()
867 if (err > 0 && !ifibss->userspace_handles_dfs) { in ieee80211_ibss_process_chanswitch()
898 &ifibss->csa_connection_drop_work); in ieee80211_ibss_process_chanswitch()
1199 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_rx_no_sta() local
1217 if (ifibss->state == IEEE80211_IBSS_MLME_SEARCH) in ieee80211_ibss_rx_no_sta()
1242 spin_lock(&ifibss->incomplete_lock); in ieee80211_ibss_rx_no_sta()
1243 list_add(&sta->list, &ifibss->incomplete_stations); in ieee80211_ibss_rx_no_sta()
1244 spin_unlock(&ifibss->incomplete_lock); in ieee80211_ibss_rx_no_sta()
1250 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_sta_expire() local
1274 ifibss->bssid, in ieee80211_ibss_sta_expire()
1291 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_sta_merge_ibss() local
1296 mod_timer(&ifibss->timer, in ieee80211_sta_merge_ibss()
1301 if (time_before(jiffies, ifibss->last_scan_completed + in ieee80211_sta_merge_ibss()
1308 if (ifibss->fixed_channel) in ieee80211_sta_merge_ibss()
1314 scan_width = cfg80211_chandef_to_scan_width(&ifibss->chandef); in ieee80211_sta_merge_ibss()
1315 ieee80211_request_ibss_scan(sdata, ifibss->ssid, ifibss->ssid_len, in ieee80211_sta_merge_ibss()
1321 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_sta_create_ibss() local
1328 if (ifibss->fixed_bssid) { in ieee80211_sta_create_ibss()
1329 memcpy(bssid, ifibss->bssid, ETH_ALEN); in ieee80211_sta_create_ibss()
1345 if (ifibss->privacy) in ieee80211_sta_create_ibss()
1349 &ifibss->chandef, ifibss->basic_rates, in ieee80211_sta_create_ibss()
1429 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_sta_find_ibss() local
1445 if (ifibss->fixed_bssid) in ieee80211_sta_find_ibss()
1446 bssid = ifibss->bssid; in ieee80211_sta_find_ibss()
1447 if (ifibss->fixed_channel) in ieee80211_sta_find_ibss()
1448 chan = ifibss->chandef.chan; in ieee80211_sta_find_ibss()
1449 if (!is_zero_ether_addr(ifibss->bssid)) in ieee80211_sta_find_ibss()
1450 bssid = ifibss->bssid; in ieee80211_sta_find_ibss()
1452 ifibss->ssid, ifibss->ssid_len, in ieee80211_sta_find_ibss()
1454 IEEE80211_PRIVACY(ifibss->privacy)); in ieee80211_sta_find_ibss()
1462 cbss->bssid, ifibss->bssid); in ieee80211_sta_find_ibss()
1475 if (ifibss->fixed_bssid && ifibss->fixed_channel) { in ieee80211_sta_find_ibss()
1486 if (time_after(jiffies, ifibss->last_scan_completed + in ieee80211_sta_find_ibss()
1493 scan_width = cfg80211_chandef_to_scan_width(&ifibss->chandef); in ieee80211_sta_find_ibss()
1495 if (ifibss->fixed_channel) { in ieee80211_sta_find_ibss()
1497 &ifibss->chandef, in ieee80211_sta_find_ibss()
1500 ieee80211_request_ibss_scan(sdata, ifibss->ssid, in ieee80211_sta_find_ibss()
1501 ifibss->ssid_len, channels, in ieee80211_sta_find_ibss()
1504 ieee80211_request_ibss_scan(sdata, ifibss->ssid, in ieee80211_sta_find_ibss()
1505 ifibss->ssid_len, NULL, in ieee80211_sta_find_ibss()
1511 if (time_after(jiffies, ifibss->ibss_join_req + in ieee80211_sta_find_ibss()
1515 mod_timer(&ifibss->timer, in ieee80211_sta_find_ibss()
1524 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_rx_mgmt_probe_req() local
1533 presp = sdata_dereference(ifibss->presp, sdata); in ieee80211_rx_mgmt_probe_req()
1535 if (ifibss->state != IEEE80211_IBSS_MLME_JOINED || in ieee80211_rx_mgmt_probe_req()
1548 if (!ether_addr_equal(mgmt->bssid, ifibss->bssid) && in ieee80211_rx_mgmt_probe_req()
1561 (pos[1] != ifibss->ssid_len || in ieee80211_rx_mgmt_probe_req()
1562 memcmp(pos + 2, ifibss->ssid, ifibss->ssid_len))) { in ieee80211_rx_mgmt_probe_req()
1677 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_work() local
1687 if (!ifibss->ssid_len) in ieee80211_ibss_work()
1690 spin_lock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_work()
1691 while (!list_empty(&ifibss->incomplete_stations)) { in ieee80211_ibss_work()
1692 sta = list_first_entry(&ifibss->incomplete_stations, in ieee80211_ibss_work()
1695 spin_unlock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_work()
1699 spin_lock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_work()
1701 spin_unlock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_work()
1703 switch (ifibss->state) { in ieee80211_ibss_work()
1729 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_setup_sdata() local
1731 timer_setup(&ifibss->timer, ieee80211_ibss_timer, 0); in ieee80211_ibss_setup_sdata()
1732 INIT_LIST_HEAD(&ifibss->incomplete_stations); in ieee80211_ibss_setup_sdata()
1733 spin_lock_init(&ifibss->incomplete_lock); in ieee80211_ibss_setup_sdata()
1734 INIT_WORK(&ifibss->csa_connection_drop_work, in ieee80211_ibss_setup_sdata()
1866 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_leave() local
1869 ifibss->ssid_len = 0; in ieee80211_ibss_leave()
1870 eth_zero_addr(ifibss->bssid); in ieee80211_ibss_leave()
1878 memset(&ifibss->ht_capa, 0, sizeof(ifibss->ht_capa)); in ieee80211_ibss_leave()
1879 memset(&ifibss->ht_capa_mask, 0, sizeof(ifibss->ht_capa_mask)); in ieee80211_ibss_leave()