diff options
author | Ron Rindjunsky <ron.rindjunsky@intel.com> | 2008-08-08 20:02:19 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-08-22 16:30:00 -0400 |
commit | 9859b81eaeb8d48563b5fbd90215c0ae606455a3 (patch) | |
tree | 4d4a68d4033801c4a58653634f18eeb8b091aead /net/mac80211/ieee80211_i.h | |
parent | 32ddf0718590f410d5f18cb4fcda419f4aeefc57 (diff) |
mac80211: add direct probe before association
This patch adds a direct probe request as first step in the association
flow if data we have is not up to date. Motivation of this step is to make
sure that the bss information we have is correct, since last scan could
have been done a while ago, and beacons do not fully answer this need as
there are potential differences between them and probe responses (e.g.
WMM parameter element)
Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
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 | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index c6de3156930c..8361054fb7cf 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -100,7 +100,7 @@ struct ieee80211_sta_bss { | |||
100 | u64 timestamp; | 100 | u64 timestamp; |
101 | int beacon_int; | 101 | int beacon_int; |
102 | 102 | ||
103 | bool probe_resp; | 103 | unsigned long last_probe_resp; |
104 | unsigned long last_update; | 104 | unsigned long last_update; |
105 | 105 | ||
106 | /* during assocation, we save an ERP value from a probe response so | 106 | /* during assocation, we save an ERP value from a probe response so |
@@ -294,12 +294,14 @@ struct mesh_config { | |||
294 | #define IEEE80211_STA_PRIVACY_INVOKED BIT(13) | 294 | #define IEEE80211_STA_PRIVACY_INVOKED BIT(13) |
295 | /* flags for MLME request*/ | 295 | /* flags for MLME request*/ |
296 | #define IEEE80211_STA_REQ_SCAN 0 | 296 | #define IEEE80211_STA_REQ_SCAN 0 |
297 | #define IEEE80211_STA_REQ_AUTH 1 | 297 | #define IEEE80211_STA_REQ_DIRECT_PROBE 1 |
298 | #define IEEE80211_STA_REQ_RUN 2 | 298 | #define IEEE80211_STA_REQ_AUTH 2 |
299 | #define IEEE80211_STA_REQ_RUN 3 | ||
299 | 300 | ||
300 | /* flags used for setting mlme state */ | 301 | /* flags used for setting mlme state */ |
301 | enum ieee80211_sta_mlme_state { | 302 | enum ieee80211_sta_mlme_state { |
302 | IEEE80211_STA_MLME_DISABLED, | 303 | IEEE80211_STA_MLME_DISABLED, |
304 | IEEE80211_STA_MLME_DIRECT_PROBE, | ||
303 | IEEE80211_STA_MLME_AUTHENTICATE, | 305 | IEEE80211_STA_MLME_AUTHENTICATE, |
304 | IEEE80211_STA_MLME_ASSOCIATE, | 306 | IEEE80211_STA_MLME_ASSOCIATE, |
305 | IEEE80211_STA_MLME_ASSOCIATED, | 307 | IEEE80211_STA_MLME_ASSOCIATED, |
@@ -362,6 +364,7 @@ struct ieee80211_if_sta { | |||
362 | struct sk_buff_head skb_queue; | 364 | struct sk_buff_head skb_queue; |
363 | 365 | ||
364 | int assoc_scan_tries; /* number of scans done pre-association */ | 366 | int assoc_scan_tries; /* number of scans done pre-association */ |
367 | int direct_probe_tries; /* retries for direct probes */ | ||
365 | int auth_tries; /* retries for auth req */ | 368 | int auth_tries; /* retries for auth req */ |
366 | int assoc_tries; /* retries for assoc req */ | 369 | int assoc_tries; /* retries for assoc req */ |
367 | 370 | ||