aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/ieee80211_i.h
diff options
context:
space:
mode:
authorSujith <Sujith.Manoharan@atheros.com>2009-01-05 22:58:37 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-01-29 15:59:50 -0500
commitc481ec9705d4a5d566393bc17374cfd82c870715 (patch)
tree383b90aa8cf172ee81a7e91c49440cf75c8c0278 /net/mac80211/ieee80211_i.h
parentb522ed56ef90f5078a2a1253e390299723510a89 (diff)
mac80211: Add 802.11h CSA support
Move to the advertised channel on reception of a CSA element. This is needed for 802.11h compliance. Signed-off-by: Sujith <Sujith.Manoharan@atheros.com> Acked-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.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 117718bd96ec..d2a007aa8e73 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -259,6 +259,7 @@ struct mesh_preq_queue {
259#define IEEE80211_STA_AUTO_CHANNEL_SEL BIT(12) 259#define IEEE80211_STA_AUTO_CHANNEL_SEL BIT(12)
260#define IEEE80211_STA_PRIVACY_INVOKED BIT(13) 260#define IEEE80211_STA_PRIVACY_INVOKED BIT(13)
261#define IEEE80211_STA_TKIP_WEP_USED BIT(14) 261#define IEEE80211_STA_TKIP_WEP_USED BIT(14)
262#define IEEE80211_STA_CSA_RECEIVED BIT(15)
262/* flags for MLME request */ 263/* flags for MLME request */
263#define IEEE80211_STA_REQ_SCAN 0 264#define IEEE80211_STA_REQ_SCAN 0
264#define IEEE80211_STA_REQ_DIRECT_PROBE 1 265#define IEEE80211_STA_REQ_DIRECT_PROBE 1
@@ -283,7 +284,9 @@ enum ieee80211_sta_mlme_state {
283 284
284struct ieee80211_if_sta { 285struct ieee80211_if_sta {
285 struct timer_list timer; 286 struct timer_list timer;
287 struct timer_list chswitch_timer;
286 struct work_struct work; 288 struct work_struct work;
289 struct work_struct chswitch_work;
287 u8 bssid[ETH_ALEN], prev_bssid[ETH_ALEN]; 290 u8 bssid[ETH_ALEN], prev_bssid[ETH_ALEN];
288 u8 ssid[IEEE80211_MAX_SSID_LEN]; 291 u8 ssid[IEEE80211_MAX_SSID_LEN];
289 enum ieee80211_sta_mlme_state state; 292 enum ieee80211_sta_mlme_state state;
@@ -542,6 +545,7 @@ enum {
542enum queue_stop_reason { 545enum queue_stop_reason {
543 IEEE80211_QUEUE_STOP_REASON_DRIVER, 546 IEEE80211_QUEUE_STOP_REASON_DRIVER,
544 IEEE80211_QUEUE_STOP_REASON_PS, 547 IEEE80211_QUEUE_STOP_REASON_PS,
548 IEEE80211_QUEUE_STOP_REASON_CSA
545}; 549};
546 550
547/* maximum number of hardware queues we support. */ 551/* maximum number of hardware queues we support. */
@@ -631,7 +635,7 @@ struct ieee80211_local {
631 unsigned long last_scan_completed; 635 unsigned long last_scan_completed;
632 struct delayed_work scan_work; 636 struct delayed_work scan_work;
633 struct ieee80211_sub_if_data *scan_sdata; 637 struct ieee80211_sub_if_data *scan_sdata;
634 struct ieee80211_channel *oper_channel, *scan_channel; 638 struct ieee80211_channel *oper_channel, *scan_channel, *csa_channel;
635 enum nl80211_channel_type oper_channel_type; 639 enum nl80211_channel_type oper_channel_type;
636 u8 scan_ssid[IEEE80211_MAX_SSID_LEN]; 640 u8 scan_ssid[IEEE80211_MAX_SSID_LEN];
637 size_t scan_ssid_len; 641 size_t scan_ssid_len;
@@ -964,6 +968,11 @@ void ieee80211_process_addba_request(struct ieee80211_local *local,
964void ieee80211_process_measurement_req(struct ieee80211_sub_if_data *sdata, 968void ieee80211_process_measurement_req(struct ieee80211_sub_if_data *sdata,
965 struct ieee80211_mgmt *mgmt, 969 struct ieee80211_mgmt *mgmt,
966 size_t len); 970 size_t len);
971void ieee80211_chswitch_timer(unsigned long data);
972void ieee80211_chswitch_work(struct work_struct *work);
973void ieee80211_process_chanswitch(struct ieee80211_sub_if_data *sdata,
974 struct ieee80211_channel_sw_ie *sw_elem,
975 struct ieee80211_bss *bss);
967 976
968/* utility functions/constants */ 977/* utility functions/constants */
969extern void *mac80211_wiphy_privid; /* for wiphy privid */ 978extern void *mac80211_wiphy_privid; /* for wiphy privid */