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 (ifibss->state != IEEE80211_IBSS_MLME_JOINED) in ieee80211_ibss_finish_csa()
549 if (!is_zero_ether_addr(ifibss->bssid)) { in ieee80211_ibss_finish_csa()
551 ifibss->chandef.chan, in ieee80211_ibss_finish_csa()
552 ifibss->bssid, ifibss->ssid, in ieee80211_ibss_finish_csa()
553 ifibss->ssid_len, in ieee80211_ibss_finish_csa()
555 IEEE80211_PRIVACY(ifibss->privacy)); in ieee80211_ibss_finish_csa()
563 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
793 switch (ifibss->chandef.width) { in ieee80211_ibss_process_chanswitch()
811 ifibss->chandef.chan->band, in ieee80211_ibss_process_chanswitch()
813 sta_flags, ifibss->bssid, &csa_ie); in ieee80211_ibss_process_chanswitch()
829 switch (ifibss->chandef.width) { in ieee80211_ibss_process_chanswitch()
838 ch_type = cfg80211_get_chandef_type(&ifibss->chandef); in ieee80211_ibss_process_chanswitch()
844 if (params.chandef.width != ifibss->chandef.width) { in ieee80211_ibss_process_chanswitch()
847 ifibss->bssid, in ieee80211_ibss_process_chanswitch()
865 ifibss->bssid, in ieee80211_ibss_process_chanswitch()
878 if (err > 0 && !ifibss->userspace_handles_dfs) { in ieee80211_ibss_process_chanswitch()
909 &ifibss->csa_connection_drop_work); in ieee80211_ibss_process_chanswitch()
1209 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_rx_no_sta() local
1227 if (ifibss->state == IEEE80211_IBSS_MLME_SEARCH) in ieee80211_ibss_rx_no_sta()
1252 spin_lock(&ifibss->incomplete_lock); in ieee80211_ibss_rx_no_sta()
1253 list_add(&sta->list, &ifibss->incomplete_stations); in ieee80211_ibss_rx_no_sta()
1254 spin_unlock(&ifibss->incomplete_lock); in ieee80211_ibss_rx_no_sta()
1260 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_sta_expire() local
1284 ifibss->bssid, in ieee80211_ibss_sta_expire()
1301 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_sta_merge_ibss() local
1306 mod_timer(&ifibss->timer, in ieee80211_sta_merge_ibss()
1311 if (time_before(jiffies, ifibss->last_scan_completed + in ieee80211_sta_merge_ibss()
1318 if (ifibss->fixed_channel) in ieee80211_sta_merge_ibss()
1324 scan_width = cfg80211_chandef_to_scan_width(&ifibss->chandef); in ieee80211_sta_merge_ibss()
1325 ieee80211_request_ibss_scan(sdata, ifibss->ssid, ifibss->ssid_len, in ieee80211_sta_merge_ibss()
1331 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_sta_create_ibss() local
1338 if (ifibss->fixed_bssid) { in ieee80211_sta_create_ibss()
1339 memcpy(bssid, ifibss->bssid, ETH_ALEN); in ieee80211_sta_create_ibss()
1355 if (ifibss->privacy) in ieee80211_sta_create_ibss()
1359 &ifibss->chandef, ifibss->basic_rates, in ieee80211_sta_create_ibss()
1439 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_sta_find_ibss() local
1455 if (ifibss->fixed_bssid) in ieee80211_sta_find_ibss()
1456 bssid = ifibss->bssid; in ieee80211_sta_find_ibss()
1457 if (ifibss->fixed_channel) in ieee80211_sta_find_ibss()
1458 chan = ifibss->chandef.chan; in ieee80211_sta_find_ibss()
1459 if (!is_zero_ether_addr(ifibss->bssid)) in ieee80211_sta_find_ibss()
1460 bssid = ifibss->bssid; in ieee80211_sta_find_ibss()
1462 ifibss->ssid, ifibss->ssid_len, in ieee80211_sta_find_ibss()
1464 IEEE80211_PRIVACY(ifibss->privacy)); in ieee80211_sta_find_ibss()
1472 cbss->bssid, ifibss->bssid); in ieee80211_sta_find_ibss()
1485 if (ifibss->fixed_bssid && ifibss->fixed_channel) { in ieee80211_sta_find_ibss()
1496 if (time_after(jiffies, ifibss->last_scan_completed + in ieee80211_sta_find_ibss()
1503 scan_width = cfg80211_chandef_to_scan_width(&ifibss->chandef); in ieee80211_sta_find_ibss()
1505 if (ifibss->fixed_channel) { in ieee80211_sta_find_ibss()
1507 &ifibss->chandef, in ieee80211_sta_find_ibss()
1510 ieee80211_request_ibss_scan(sdata, ifibss->ssid, in ieee80211_sta_find_ibss()
1511 ifibss->ssid_len, channels, in ieee80211_sta_find_ibss()
1514 ieee80211_request_ibss_scan(sdata, ifibss->ssid, in ieee80211_sta_find_ibss()
1515 ifibss->ssid_len, NULL, in ieee80211_sta_find_ibss()
1521 if (time_after(jiffies, ifibss->ibss_join_req + in ieee80211_sta_find_ibss()
1525 mod_timer(&ifibss->timer, in ieee80211_sta_find_ibss()
1534 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_rx_mgmt_probe_req() local
1543 presp = rcu_dereference_protected(ifibss->presp, in ieee80211_rx_mgmt_probe_req()
1546 if (ifibss->state != IEEE80211_IBSS_MLME_JOINED || in ieee80211_rx_mgmt_probe_req()
1559 if (!ether_addr_equal(mgmt->bssid, ifibss->bssid) && in ieee80211_rx_mgmt_probe_req()
1572 (pos[1] != ifibss->ssid_len || in ieee80211_rx_mgmt_probe_req()
1573 memcmp(pos + 2, ifibss->ssid, ifibss->ssid_len))) { in ieee80211_rx_mgmt_probe_req()
1684 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_work() local
1694 if (!ifibss->ssid_len) in ieee80211_ibss_work()
1697 spin_lock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_work()
1698 while (!list_empty(&ifibss->incomplete_stations)) { in ieee80211_ibss_work()
1699 sta = list_first_entry(&ifibss->incomplete_stations, in ieee80211_ibss_work()
1702 spin_unlock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_work()
1706 spin_lock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_work()
1708 spin_unlock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_work()
1710 switch (ifibss->state) { in ieee80211_ibss_work()
1736 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_setup_sdata() local
1738 timer_setup(&ifibss->timer, ieee80211_ibss_timer, 0); in ieee80211_ibss_setup_sdata()
1739 INIT_LIST_HEAD(&ifibss->incomplete_stations); in ieee80211_ibss_setup_sdata()
1740 spin_lock_init(&ifibss->incomplete_lock); in ieee80211_ibss_setup_sdata()
1741 INIT_WORK(&ifibss->csa_connection_drop_work, in ieee80211_ibss_setup_sdata()
1873 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_leave() local
1876 ifibss->ssid_len = 0; in ieee80211_ibss_leave()
1877 eth_zero_addr(ifibss->bssid); in ieee80211_ibss_leave()
1885 memset(&ifibss->ht_capa, 0, sizeof(ifibss->ht_capa)); in ieee80211_ibss_leave()
1886 memset(&ifibss->ht_capa_mask, 0, sizeof(ifibss->ht_capa_mask)); in ieee80211_ibss_leave()