diff options
Diffstat (limited to 'net/mac80211/ibss.c')
-rw-r--r-- | net/mac80211/ibss.c | 89 |
1 files changed, 43 insertions, 46 deletions
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c index 8931110b8433..5746d62faba1 100644 --- a/net/mac80211/ibss.c +++ b/net/mac80211/ibss.c | |||
@@ -261,11 +261,7 @@ static struct sta_info *ieee80211_ibss_finish_sta(struct sta_info *sta, | |||
261 | 261 | ||
262 | memcpy(addr, sta->sta.addr, ETH_ALEN); | 262 | memcpy(addr, sta->sta.addr, ETH_ALEN); |
263 | 263 | ||
264 | #ifdef CONFIG_MAC80211_IBSS_DEBUG | 264 | ibss_dbg(sdata, "Adding new IBSS station %pM\n", addr); |
265 | wiphy_debug(sdata->local->hw.wiphy, | ||
266 | "Adding new IBSS station %pM (dev=%s)\n", | ||
267 | addr, sdata->name); | ||
268 | #endif | ||
269 | 265 | ||
270 | sta_info_pre_move_state(sta, IEEE80211_STA_AUTH); | 266 | sta_info_pre_move_state(sta, IEEE80211_STA_AUTH); |
271 | sta_info_pre_move_state(sta, IEEE80211_STA_ASSOC); | 267 | sta_info_pre_move_state(sta, IEEE80211_STA_ASSOC); |
@@ -280,8 +276,9 @@ static struct sta_info *ieee80211_ibss_finish_sta(struct sta_info *sta, | |||
280 | if (sta_info_insert_rcu(sta)) | 276 | if (sta_info_insert_rcu(sta)) |
281 | return sta_info_get(sdata, addr); | 277 | return sta_info_get(sdata, addr); |
282 | if (auth && !sdata->u.ibss.auth_frame_registrations) { | 278 | if (auth && !sdata->u.ibss.auth_frame_registrations) { |
283 | ibss_vdbg("TX Auth SA=%pM DA=%pM BSSID=%pM (auth_transaction=1)\n", | 279 | ibss_dbg(sdata, |
284 | sdata->vif.addr, sdata->u.ibss.bssid, addr); | 280 | "TX Auth SA=%pM DA=%pM BSSID=%pM (auth_transaction=1)\n", |
281 | sdata->vif.addr, sdata->u.ibss.bssid, addr); | ||
285 | ieee80211_send_auth(sdata, 1, WLAN_AUTH_OPEN, NULL, 0, | 282 | ieee80211_send_auth(sdata, 1, WLAN_AUTH_OPEN, NULL, 0, |
286 | addr, sdata->u.ibss.bssid, NULL, 0, 0); | 283 | addr, sdata->u.ibss.bssid, NULL, 0, 0); |
287 | } | 284 | } |
@@ -304,7 +301,7 @@ ieee80211_ibss_add_sta(struct ieee80211_sub_if_data *sdata, | |||
304 | * allow new one to be added. | 301 | * allow new one to be added. |
305 | */ | 302 | */ |
306 | if (local->num_sta >= IEEE80211_IBSS_MAX_STA_ENTRIES) { | 303 | if (local->num_sta >= IEEE80211_IBSS_MAX_STA_ENTRIES) { |
307 | net_dbg_ratelimited("%s: No room for a new IBSS STA entry %pM\n", | 304 | net_info_ratelimited("%s: No room for a new IBSS STA entry %pM\n", |
308 | sdata->name, addr); | 305 | sdata->name, addr); |
309 | rcu_read_lock(); | 306 | rcu_read_lock(); |
310 | return NULL; | 307 | return NULL; |
@@ -351,9 +348,9 @@ static void ieee80211_rx_mgmt_auth_ibss(struct ieee80211_sub_if_data *sdata, | |||
351 | 348 | ||
352 | if (auth_alg != WLAN_AUTH_OPEN || auth_transaction != 1) | 349 | if (auth_alg != WLAN_AUTH_OPEN || auth_transaction != 1) |
353 | return; | 350 | return; |
354 | ibss_vdbg("%s: RX Auth SA=%pM DA=%pM BSSID=%pM (auth_transaction=%d)\n", | 351 | ibss_dbg(sdata, |
355 | sdata->name, mgmt->sa, mgmt->da, mgmt->bssid, | 352 | "RX Auth SA=%pM DA=%pM BSSID=%pM (auth_transaction=%d)\n", |
356 | auth_transaction); | 353 | mgmt->sa, mgmt->da, mgmt->bssid, auth_transaction); |
357 | sta_info_destroy_addr(sdata, mgmt->sa); | 354 | sta_info_destroy_addr(sdata, mgmt->sa); |
358 | ieee80211_ibss_add_sta(sdata, mgmt->bssid, mgmt->sa, 0, false); | 355 | ieee80211_ibss_add_sta(sdata, mgmt->bssid, mgmt->sa, 0, false); |
359 | rcu_read_unlock(); | 356 | rcu_read_unlock(); |
@@ -416,10 +413,10 @@ static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata, | |||
416 | ieee80211_mandatory_rates(local, band); | 413 | ieee80211_mandatory_rates(local, band); |
417 | 414 | ||
418 | if (sta->sta.supp_rates[band] != prev_rates) { | 415 | if (sta->sta.supp_rates[band] != prev_rates) { |
419 | ibss_vdbg("%s: updated supp_rates set for %pM based on beacon/probe_resp (0x%x -> 0x%x)\n", | 416 | ibss_dbg(sdata, |
420 | sdata->name, sta->sta.addr, | 417 | "updated supp_rates set for %pM based on beacon/probe_resp (0x%x -> 0x%x)\n", |
421 | prev_rates, | 418 | sta->sta.addr, prev_rates, |
422 | sta->sta.supp_rates[band]); | 419 | sta->sta.supp_rates[band]); |
423 | rates_updated = true; | 420 | rates_updated = true; |
424 | } | 421 | } |
425 | } else { | 422 | } else { |
@@ -534,16 +531,18 @@ static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata, | |||
534 | rx_timestamp = drv_get_tsf(local, sdata); | 531 | rx_timestamp = drv_get_tsf(local, sdata); |
535 | } | 532 | } |
536 | 533 | ||
537 | ibss_vdbg("RX beacon SA=%pM BSSID=%pM TSF=0x%llx BCN=0x%llx diff=%lld @%lu\n", | 534 | ibss_dbg(sdata, |
538 | mgmt->sa, mgmt->bssid, | 535 | "RX beacon SA=%pM BSSID=%pM TSF=0x%llx BCN=0x%llx diff=%lld @%lu\n", |
539 | (unsigned long long)rx_timestamp, | 536 | mgmt->sa, mgmt->bssid, |
540 | (unsigned long long)beacon_timestamp, | 537 | (unsigned long long)rx_timestamp, |
541 | (unsigned long long)(rx_timestamp - beacon_timestamp), | 538 | (unsigned long long)beacon_timestamp, |
542 | jiffies); | 539 | (unsigned long long)(rx_timestamp - beacon_timestamp), |
540 | jiffies); | ||
543 | 541 | ||
544 | if (beacon_timestamp > rx_timestamp) { | 542 | if (beacon_timestamp > rx_timestamp) { |
545 | ibss_vdbg("%s: beacon TSF higher than local TSF - IBSS merge with BSSID %pM\n", | 543 | ibss_dbg(sdata, |
546 | sdata->name, mgmt->bssid); | 544 | "beacon TSF higher than local TSF - IBSS merge with BSSID %pM\n", |
545 | mgmt->bssid); | ||
547 | ieee80211_sta_join_ibss(sdata, bss); | 546 | ieee80211_sta_join_ibss(sdata, bss); |
548 | supp_rates = ieee80211_sta_get_rates(local, elems, band, NULL); | 547 | supp_rates = ieee80211_sta_get_rates(local, elems, band, NULL); |
549 | ieee80211_ibss_add_sta(sdata, mgmt->bssid, mgmt->sa, | 548 | ieee80211_ibss_add_sta(sdata, mgmt->bssid, mgmt->sa, |
@@ -569,7 +568,7 @@ void ieee80211_ibss_rx_no_sta(struct ieee80211_sub_if_data *sdata, | |||
569 | * allow new one to be added. | 568 | * allow new one to be added. |
570 | */ | 569 | */ |
571 | if (local->num_sta >= IEEE80211_IBSS_MAX_STA_ENTRIES) { | 570 | if (local->num_sta >= IEEE80211_IBSS_MAX_STA_ENTRIES) { |
572 | net_dbg_ratelimited("%s: No room for a new IBSS STA entry %pM\n", | 571 | net_info_ratelimited("%s: No room for a new IBSS STA entry %pM\n", |
573 | sdata->name, addr); | 572 | sdata->name, addr); |
574 | return; | 573 | return; |
575 | } | 574 | } |
@@ -645,8 +644,8 @@ static void ieee80211_sta_merge_ibss(struct ieee80211_sub_if_data *sdata) | |||
645 | if (ifibss->fixed_channel) | 644 | if (ifibss->fixed_channel) |
646 | return; | 645 | return; |
647 | 646 | ||
648 | pr_debug("%s: No active IBSS STAs - trying to scan for other IBSS networks with same SSID (merge)\n", | 647 | sdata_info(sdata, |
649 | sdata->name); | 648 | "No active IBSS STAs - trying to scan for other IBSS networks with same SSID (merge)\n"); |
650 | 649 | ||
651 | ieee80211_request_internal_scan(sdata, | 650 | ieee80211_request_internal_scan(sdata, |
652 | ifibss->ssid, ifibss->ssid_len, NULL); | 651 | ifibss->ssid, ifibss->ssid_len, NULL); |
@@ -674,8 +673,7 @@ static void ieee80211_sta_create_ibss(struct ieee80211_sub_if_data *sdata) | |||
674 | bssid[0] |= 0x02; | 673 | bssid[0] |= 0x02; |
675 | } | 674 | } |
676 | 675 | ||
677 | pr_debug("%s: Creating new IBSS network, BSSID %pM\n", | 676 | sdata_info(sdata, "Creating new IBSS network, BSSID %pM\n", bssid); |
678 | sdata->name, bssid); | ||
679 | 677 | ||
680 | capability = WLAN_CAPABILITY_IBSS; | 678 | capability = WLAN_CAPABILITY_IBSS; |
681 | 679 | ||
@@ -706,8 +704,7 @@ static void ieee80211_sta_find_ibss(struct ieee80211_sub_if_data *sdata) | |||
706 | lockdep_assert_held(&ifibss->mtx); | 704 | lockdep_assert_held(&ifibss->mtx); |
707 | 705 | ||
708 | active_ibss = ieee80211_sta_active_ibss(sdata); | 706 | active_ibss = ieee80211_sta_active_ibss(sdata); |
709 | ibss_vdbg("%s: sta_find_ibss (active_ibss=%d)\n", | 707 | ibss_dbg(sdata, "sta_find_ibss (active_ibss=%d)\n", active_ibss); |
710 | sdata->name, active_ibss); | ||
711 | 708 | ||
712 | if (active_ibss) | 709 | if (active_ibss) |
713 | return; | 710 | return; |
@@ -730,23 +727,24 @@ static void ieee80211_sta_find_ibss(struct ieee80211_sub_if_data *sdata) | |||
730 | struct ieee80211_bss *bss; | 727 | struct ieee80211_bss *bss; |
731 | 728 | ||
732 | bss = (void *)cbss->priv; | 729 | bss = (void *)cbss->priv; |
733 | ibss_vdbg(" sta_find_ibss: selected %pM current %pM\n", | 730 | ibss_dbg(sdata, |
734 | cbss->bssid, ifibss->bssid); | 731 | "sta_find_ibss: selected %pM current %pM\n", |
735 | pr_debug("%s: Selected IBSS BSSID %pM based on configured SSID\n", | 732 | cbss->bssid, ifibss->bssid); |
736 | sdata->name, cbss->bssid); | 733 | sdata_info(sdata, |
734 | "Selected IBSS BSSID %pM based on configured SSID\n", | ||
735 | cbss->bssid); | ||
737 | 736 | ||
738 | ieee80211_sta_join_ibss(sdata, bss); | 737 | ieee80211_sta_join_ibss(sdata, bss); |
739 | ieee80211_rx_bss_put(local, bss); | 738 | ieee80211_rx_bss_put(local, bss); |
740 | return; | 739 | return; |
741 | } | 740 | } |
742 | 741 | ||
743 | ibss_vdbg(" did not try to join ibss\n"); | 742 | ibss_dbg(sdata, "sta_find_ibss: did not try to join ibss\n"); |
744 | 743 | ||
745 | /* Selected IBSS not found in current scan results - try to scan */ | 744 | /* Selected IBSS not found in current scan results - try to scan */ |
746 | if (time_after(jiffies, ifibss->last_scan_completed + | 745 | if (time_after(jiffies, ifibss->last_scan_completed + |
747 | IEEE80211_SCAN_INTERVAL)) { | 746 | IEEE80211_SCAN_INTERVAL)) { |
748 | pr_debug("%s: Trigger new scan to find an IBSS to join\n", | 747 | sdata_info(sdata, "Trigger new scan to find an IBSS to join\n"); |
749 | sdata->name); | ||
750 | 748 | ||
751 | ieee80211_request_internal_scan(sdata, | 749 | ieee80211_request_internal_scan(sdata, |
752 | ifibss->ssid, ifibss->ssid_len, | 750 | ifibss->ssid, ifibss->ssid_len, |
@@ -760,9 +758,8 @@ static void ieee80211_sta_find_ibss(struct ieee80211_sub_if_data *sdata) | |||
760 | ieee80211_sta_create_ibss(sdata); | 758 | ieee80211_sta_create_ibss(sdata); |
761 | return; | 759 | return; |
762 | } | 760 | } |
763 | pr_debug("%s: IBSS not allowed on %d MHz\n", | 761 | sdata_info(sdata, "IBSS not allowed on %d MHz\n", |
764 | sdata->name, | 762 | local->hw.conf.channel->center_freq); |
765 | local->hw.conf.channel->center_freq); | ||
766 | 763 | ||
767 | /* No IBSS found - decrease scan interval and continue | 764 | /* No IBSS found - decrease scan interval and continue |
768 | * scanning. */ | 765 | * scanning. */ |
@@ -797,9 +794,9 @@ static void ieee80211_rx_mgmt_probe_req(struct ieee80211_sub_if_data *sdata, | |||
797 | 794 | ||
798 | tx_last_beacon = drv_tx_last_beacon(local); | 795 | tx_last_beacon = drv_tx_last_beacon(local); |
799 | 796 | ||
800 | ibss_vdbg("%s: RX ProbeReq SA=%pM DA=%pM BSSID=%pM (tx_last_beacon=%d)\n", | 797 | ibss_dbg(sdata, |
801 | sdata->name, mgmt->sa, mgmt->da, | 798 | "RX ProbeReq SA=%pM DA=%pM BSSID=%pM (tx_last_beacon=%d)\n", |
802 | mgmt->bssid, tx_last_beacon); | 799 | mgmt->sa, mgmt->da, mgmt->bssid, tx_last_beacon); |
803 | 800 | ||
804 | if (!tx_last_beacon && is_multicast_ether_addr(mgmt->da)) | 801 | if (!tx_last_beacon && is_multicast_ether_addr(mgmt->da)) |
805 | return; | 802 | return; |
@@ -812,8 +809,8 @@ static void ieee80211_rx_mgmt_probe_req(struct ieee80211_sub_if_data *sdata, | |||
812 | pos = mgmt->u.probe_req.variable; | 809 | pos = mgmt->u.probe_req.variable; |
813 | if (pos[0] != WLAN_EID_SSID || | 810 | if (pos[0] != WLAN_EID_SSID || |
814 | pos + 2 + pos[1] > end) { | 811 | pos + 2 + pos[1] > end) { |
815 | ibss_vdbg("%s: Invalid SSID IE in ProbeReq from %pM\n", | 812 | ibss_dbg(sdata, "Invalid SSID IE in ProbeReq from %pM\n", |
816 | sdata->name, mgmt->sa); | 813 | mgmt->sa); |
817 | return; | 814 | return; |
818 | } | 815 | } |
819 | if (pos[1] != 0 && | 816 | if (pos[1] != 0 && |
@@ -830,7 +827,7 @@ static void ieee80211_rx_mgmt_probe_req(struct ieee80211_sub_if_data *sdata, | |||
830 | 827 | ||
831 | resp = (struct ieee80211_mgmt *) skb->data; | 828 | resp = (struct ieee80211_mgmt *) skb->data; |
832 | memcpy(resp->da, mgmt->sa, ETH_ALEN); | 829 | memcpy(resp->da, mgmt->sa, ETH_ALEN); |
833 | ibss_vdbg("%s: Sending ProbeResp to %pM\n", sdata->name, resp->da); | 830 | ibss_dbg(sdata, "Sending ProbeResp to %pM\n", resp->da); |
834 | IEEE80211_SKB_CB(skb)->flags |= IEEE80211_TX_INTFL_DONT_ENCRYPT; | 831 | IEEE80211_SKB_CB(skb)->flags |= IEEE80211_TX_INTFL_DONT_ENCRYPT; |
835 | ieee80211_tx_skb(sdata, skb); | 832 | ieee80211_tx_skb(sdata, skb); |
836 | } | 833 | } |