aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/ieee80211_i.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-02-10 15:25:55 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-02-13 13:45:49 -0500
commit2a5193119269062608582418deba7af82844159a (patch)
tree1f2fe8cffbeb7530dce7fa708310f6fb29ab0dd8 /net/mac80211/ieee80211_i.h
parent849b7967818995a32c3017542e33eb3155944368 (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.h18
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 */
931int ieee80211_request_scan(struct ieee80211_sub_if_data *sdata, 930int ieee80211_request_scan(struct ieee80211_sub_if_data *sdata,
932 u8 *ssid, size_t ssid_len); 931 struct cfg80211_scan_request *req);
933int ieee80211_scan_results(struct ieee80211_local *local, 932int 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
945void ieee80211_mlme_notify_scan_completed(struct ieee80211_local *local); 944void ieee80211_mlme_notify_scan_completed(struct ieee80211_local *local);
946int ieee80211_start_scan(struct ieee80211_sub_if_data *scan_sdata, 945int ieee80211_start_scan(struct ieee80211_sub_if_data *scan_sdata,
947 u8 *ssid, size_t ssid_len); 946 struct cfg80211_scan_request *req);
948struct ieee80211_bss * 947struct ieee80211_bss *
949ieee80211_bss_info_update(struct ieee80211_local *local, 948ieee80211_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);
955struct ieee80211_bss * 955struct ieee80211_bss *
956ieee80211_rx_bss_add(struct ieee80211_local *local, u8 *bssid, int freq, 956ieee80211_rx_bss_add(struct ieee80211_local *local, u8 *bssid, int freq,
957 u8 *ssid, u8 ssid_len); 957 u8 *ssid, u8 ssid_len);