Lines Matching refs:ifibss
47 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()
485 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_csa_beacon() local
495 if (ifibss->privacy) in ieee80211_ibss_csa_beacon()
498 cbss = cfg80211_get_bss(sdata->local->hw.wiphy, ifibss->chandef.chan, in ieee80211_ibss_csa_beacon()
499 ifibss->bssid, ifibss->ssid, in ieee80211_ibss_csa_beacon()
500 ifibss->ssid_len, IEEE80211_BSS_TYPE_IBSS, in ieee80211_ibss_csa_beacon()
501 IEEE80211_PRIVACY(ifibss->privacy)); in ieee80211_ibss_csa_beacon()
514 old_presp = rcu_dereference_protected(ifibss->presp, in ieee80211_ibss_csa_beacon()
520 capability, tsf, &ifibss->chandef, in ieee80211_ibss_csa_beacon()
527 rcu_assign_pointer(ifibss->presp, presp); in ieee80211_ibss_csa_beacon()
538 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()
573 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_stop() local
575 cancel_work_sync(&ifibss->csa_connection_drop_work); in ieee80211_ibss_stop()
608 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_add_sta() local
627 if (ifibss->state == IEEE80211_IBSS_MLME_SEARCH) { in ieee80211_ibss_add_sta()
688 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_disconnect() local
694 if (!is_zero_ether_addr(ifibss->bssid)) { in ieee80211_ibss_disconnect()
695 cbss = cfg80211_get_bss(local->hw.wiphy, ifibss->chandef.chan, in ieee80211_ibss_disconnect()
696 ifibss->bssid, ifibss->ssid, in ieee80211_ibss_disconnect()
697 ifibss->ssid_len, in ieee80211_ibss_disconnect()
699 IEEE80211_PRIVACY(ifibss->privacy)); in ieee80211_ibss_disconnect()
707 ifibss->state = IEEE80211_IBSS_MLME_SEARCH; in ieee80211_ibss_disconnect()
711 spin_lock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_disconnect()
712 while (!list_empty(&ifibss->incomplete_stations)) { in ieee80211_ibss_disconnect()
713 sta = list_first_entry(&ifibss->incomplete_stations, in ieee80211_ibss_disconnect()
716 spin_unlock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_disconnect()
719 spin_lock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_disconnect()
721 spin_unlock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_disconnect()
731 presp = rcu_dereference_protected(ifibss->presp, in ieee80211_ibss_disconnect()
766 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_csa_mark_radar() local
773 &ifibss->chandef, in ieee80211_ibss_csa_mark_radar()
776 cfg80211_radar_event(sdata->local->hw.wiphy, &ifibss->chandef, in ieee80211_ibss_csa_mark_radar()
787 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_process_chanswitch() local
795 switch (ifibss->chandef.width) { in ieee80211_ibss_process_chanswitch()
811 ifibss->chandef.chan->band, in ieee80211_ibss_process_chanswitch()
812 sta_flags, ifibss->bssid, &csa_ie); in ieee80211_ibss_process_chanswitch()
828 switch (ifibss->chandef.width) { in ieee80211_ibss_process_chanswitch()
837 ch_type = cfg80211_get_chandef_type(&ifibss->chandef); in ieee80211_ibss_process_chanswitch()
843 if (params.chandef.width != ifibss->chandef.width) { in ieee80211_ibss_process_chanswitch()
846 ifibss->bssid, in ieee80211_ibss_process_chanswitch()
864 ifibss->bssid, in ieee80211_ibss_process_chanswitch()
877 if (err > 0 && !ifibss->userspace_handles_dfs) { in ieee80211_ibss_process_chanswitch()
908 &ifibss->csa_connection_drop_work); in ieee80211_ibss_process_chanswitch()
1202 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_rx_no_sta() local
1220 if (ifibss->state == IEEE80211_IBSS_MLME_SEARCH) in ieee80211_ibss_rx_no_sta()
1247 spin_lock(&ifibss->incomplete_lock); in ieee80211_ibss_rx_no_sta()
1248 list_add(&sta->list, &ifibss->incomplete_stations); in ieee80211_ibss_rx_no_sta()
1249 spin_unlock(&ifibss->incomplete_lock); in ieee80211_ibss_rx_no_sta()
1286 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_sta_merge_ibss() local
1291 mod_timer(&ifibss->timer, in ieee80211_sta_merge_ibss()
1296 if (time_before(jiffies, ifibss->last_scan_completed + in ieee80211_sta_merge_ibss()
1303 if (ifibss->fixed_channel) in ieee80211_sta_merge_ibss()
1309 scan_width = cfg80211_chandef_to_scan_width(&ifibss->chandef); in ieee80211_sta_merge_ibss()
1310 ieee80211_request_ibss_scan(sdata, ifibss->ssid, ifibss->ssid_len, in ieee80211_sta_merge_ibss()
1316 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_sta_create_ibss() local
1323 if (ifibss->fixed_bssid) { in ieee80211_sta_create_ibss()
1324 memcpy(bssid, ifibss->bssid, ETH_ALEN); in ieee80211_sta_create_ibss()
1340 if (ifibss->privacy) in ieee80211_sta_create_ibss()
1344 &ifibss->chandef, ifibss->basic_rates, in ieee80211_sta_create_ibss()
1424 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_sta_find_ibss() local
1440 if (ifibss->fixed_bssid) in ieee80211_sta_find_ibss()
1441 bssid = ifibss->bssid; in ieee80211_sta_find_ibss()
1442 if (ifibss->fixed_channel) in ieee80211_sta_find_ibss()
1443 chan = ifibss->chandef.chan; in ieee80211_sta_find_ibss()
1444 if (!is_zero_ether_addr(ifibss->bssid)) in ieee80211_sta_find_ibss()
1445 bssid = ifibss->bssid; in ieee80211_sta_find_ibss()
1447 ifibss->ssid, ifibss->ssid_len, in ieee80211_sta_find_ibss()
1449 IEEE80211_PRIVACY(ifibss->privacy)); in ieee80211_sta_find_ibss()
1457 cbss->bssid, ifibss->bssid); in ieee80211_sta_find_ibss()
1470 if (ifibss->fixed_bssid && ifibss->fixed_channel) { in ieee80211_sta_find_ibss()
1481 if (time_after(jiffies, ifibss->last_scan_completed + in ieee80211_sta_find_ibss()
1488 scan_width = cfg80211_chandef_to_scan_width(&ifibss->chandef); in ieee80211_sta_find_ibss()
1490 if (ifibss->fixed_channel) { in ieee80211_sta_find_ibss()
1492 &ifibss->chandef, in ieee80211_sta_find_ibss()
1495 ieee80211_request_ibss_scan(sdata, ifibss->ssid, in ieee80211_sta_find_ibss()
1496 ifibss->ssid_len, channels, in ieee80211_sta_find_ibss()
1499 ieee80211_request_ibss_scan(sdata, ifibss->ssid, in ieee80211_sta_find_ibss()
1500 ifibss->ssid_len, NULL, in ieee80211_sta_find_ibss()
1506 if (time_after(jiffies, ifibss->ibss_join_req + in ieee80211_sta_find_ibss()
1510 mod_timer(&ifibss->timer, in ieee80211_sta_find_ibss()
1519 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_rx_mgmt_probe_req() local
1528 presp = rcu_dereference_protected(ifibss->presp, in ieee80211_rx_mgmt_probe_req()
1531 if (ifibss->state != IEEE80211_IBSS_MLME_JOINED || in ieee80211_rx_mgmt_probe_req()
1544 if (!ether_addr_equal(mgmt->bssid, ifibss->bssid) && in ieee80211_rx_mgmt_probe_req()
1557 (pos[1] != ifibss->ssid_len || in ieee80211_rx_mgmt_probe_req()
1558 memcmp(pos + 2, ifibss->ssid, ifibss->ssid_len))) { in ieee80211_rx_mgmt_probe_req()
1669 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_work() local
1679 if (!ifibss->ssid_len) in ieee80211_ibss_work()
1682 spin_lock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_work()
1683 while (!list_empty(&ifibss->incomplete_stations)) { in ieee80211_ibss_work()
1684 sta = list_first_entry(&ifibss->incomplete_stations, in ieee80211_ibss_work()
1687 spin_unlock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_work()
1691 spin_lock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_work()
1693 spin_unlock_bh(&ifibss->incomplete_lock); in ieee80211_ibss_work()
1695 switch (ifibss->state) { in ieee80211_ibss_work()
1721 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_setup_sdata() local
1723 setup_timer(&ifibss->timer, ieee80211_ibss_timer, in ieee80211_ibss_setup_sdata()
1725 INIT_LIST_HEAD(&ifibss->incomplete_stations); in ieee80211_ibss_setup_sdata()
1726 spin_lock_init(&ifibss->incomplete_lock); in ieee80211_ibss_setup_sdata()
1727 INIT_WORK(&ifibss->csa_connection_drop_work, in ieee80211_ibss_setup_sdata()
1853 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_ibss_leave() local
1856 ifibss->ssid_len = 0; in ieee80211_ibss_leave()
1857 eth_zero_addr(ifibss->bssid); in ieee80211_ibss_leave()
1863 memset(&ifibss->ht_capa, 0, sizeof(ifibss->ht_capa)); in ieee80211_ibss_leave()
1864 memset(&ifibss->ht_capa_mask, 0, sizeof(ifibss->ht_capa_mask)); in ieee80211_ibss_leave()