diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-02-10 15:25:55 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-02-13 13:45:49 -0500 |
commit | 2a5193119269062608582418deba7af82844159a (patch) | |
tree | 1f2fe8cffbeb7530dce7fa708310f6fb29ab0dd8 /net/mac80211/ieee80211_i.h | |
parent | 849b7967818995a32c3017542e33eb3155944368 (diff) |
cfg80211/nl80211: scanning (and mac80211 update to use it)
This patch adds basic scan capability to cfg80211/nl80211 and
changes mac80211 to use it. The BSS list that cfg80211 maintains
is made driver-accessible with a private area in each BSS struct,
but mac80211 doesn't yet use it. That's another large project.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/ieee80211_i.h')
-rw-r--r-- | net/mac80211/ieee80211_i.h | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index 9122416fd6af..cbc0b7d647f9 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -294,8 +294,6 @@ struct ieee80211_if_sta { | |||
294 | u8 ssid[IEEE80211_MAX_SSID_LEN]; | 294 | u8 ssid[IEEE80211_MAX_SSID_LEN]; |
295 | enum ieee80211_sta_mlme_state state; | 295 | enum ieee80211_sta_mlme_state state; |
296 | size_t ssid_len; | 296 | size_t ssid_len; |
297 | u8 scan_ssid[IEEE80211_MAX_SSID_LEN]; | ||
298 | size_t scan_ssid_len; | ||
299 | u16 aid; | 297 | u16 aid; |
300 | u16 ap_capab, capab; | 298 | u16 ap_capab, capab; |
301 | u8 *extra_ie; /* to be added to the end of AssocReq */ | 299 | u8 *extra_ie; /* to be added to the end of AssocReq */ |
@@ -658,17 +656,18 @@ struct ieee80211_local { | |||
658 | 656 | ||
659 | /* Scanning and BSS list */ | 657 | /* Scanning and BSS list */ |
660 | bool sw_scanning, hw_scanning; | 658 | bool sw_scanning, hw_scanning; |
659 | struct cfg80211_ssid scan_ssid; | ||
660 | struct cfg80211_scan_request int_scan_req; | ||
661 | struct cfg80211_scan_request *scan_req; | ||
662 | struct ieee80211_channel *scan_channel; | ||
661 | int scan_channel_idx; | 663 | int scan_channel_idx; |
662 | enum ieee80211_band scan_band; | ||
663 | 664 | ||
664 | enum { SCAN_SET_CHANNEL, SCAN_SEND_PROBE } scan_state; | 665 | enum { SCAN_SET_CHANNEL, SCAN_SEND_PROBE } scan_state; |
665 | unsigned long last_scan_completed; | 666 | unsigned long last_scan_completed; |
666 | struct delayed_work scan_work; | 667 | struct delayed_work scan_work; |
667 | struct ieee80211_sub_if_data *scan_sdata; | 668 | struct ieee80211_sub_if_data *scan_sdata; |
668 | struct ieee80211_channel *oper_channel, *scan_channel, *csa_channel; | ||
669 | enum nl80211_channel_type oper_channel_type; | 669 | enum nl80211_channel_type oper_channel_type; |
670 | u8 scan_ssid[IEEE80211_MAX_SSID_LEN]; | 670 | struct ieee80211_channel *oper_channel, *csa_channel; |
671 | size_t scan_ssid_len; | ||
672 | struct list_head bss_list; | 671 | struct list_head bss_list; |
673 | struct ieee80211_bss *bss_hash[STA_HASH_SIZE]; | 672 | struct ieee80211_bss *bss_hash[STA_HASH_SIZE]; |
674 | spinlock_t bss_lock; | 673 | spinlock_t bss_lock; |
@@ -929,7 +928,7 @@ void ieee80211_send_pspoll(struct ieee80211_local *local, | |||
929 | 928 | ||
930 | /* scan/BSS handling */ | 929 | /* scan/BSS handling */ |
931 | int ieee80211_request_scan(struct ieee80211_sub_if_data *sdata, | 930 | int ieee80211_request_scan(struct ieee80211_sub_if_data *sdata, |
932 | u8 *ssid, size_t ssid_len); | 931 | struct cfg80211_scan_request *req); |
933 | int ieee80211_scan_results(struct ieee80211_local *local, | 932 | int ieee80211_scan_results(struct ieee80211_local *local, |
934 | struct iw_request_info *info, | 933 | struct iw_request_info *info, |
935 | char *buf, size_t len); | 934 | char *buf, size_t len); |
@@ -944,14 +943,15 @@ int ieee80211_sta_set_extra_ie(struct ieee80211_sub_if_data *sdata, | |||
944 | 943 | ||
945 | void ieee80211_mlme_notify_scan_completed(struct ieee80211_local *local); | 944 | void ieee80211_mlme_notify_scan_completed(struct ieee80211_local *local); |
946 | int ieee80211_start_scan(struct ieee80211_sub_if_data *scan_sdata, | 945 | int ieee80211_start_scan(struct ieee80211_sub_if_data *scan_sdata, |
947 | u8 *ssid, size_t ssid_len); | 946 | struct cfg80211_scan_request *req); |
948 | struct ieee80211_bss * | 947 | struct ieee80211_bss * |
949 | ieee80211_bss_info_update(struct ieee80211_local *local, | 948 | ieee80211_bss_info_update(struct ieee80211_local *local, |
950 | struct ieee80211_rx_status *rx_status, | 949 | struct ieee80211_rx_status *rx_status, |
951 | struct ieee80211_mgmt *mgmt, | 950 | struct ieee80211_mgmt *mgmt, |
952 | size_t len, | 951 | size_t len, |
953 | struct ieee802_11_elems *elems, | 952 | struct ieee802_11_elems *elems, |
954 | int freq, bool beacon); | 953 | struct ieee80211_channel *channel, |
954 | bool beacon); | ||
955 | struct ieee80211_bss * | 955 | struct ieee80211_bss * |
956 | ieee80211_rx_bss_add(struct ieee80211_local *local, u8 *bssid, int freq, | 956 | ieee80211_rx_bss_add(struct ieee80211_local *local, u8 *bssid, int freq, |
957 | u8 *ssid, u8 ssid_len); | 957 | u8 *ssid, u8 ssid_len); |