aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/ieee80211_i.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-07-10 09:29:03 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-07-24 15:05:10 -0400
commitb291ba11181d46dfbd2d7a5c00a5f3335228191e (patch)
tree47813dce4a42e8334e531417425aa861848802bd /net/mac80211/ieee80211_i.h
parentca386f3137eb68621fadba546d9eb35ac2f82de3 (diff)
mac80211: monitor the connection
With the recent MLME rework I accidentally removed the connection monitoring code. In order to add it back, this patch will add new code to monitor both for beacon loss and for the connection actually working, with possibly separate triggers. When no unicast frames have been received from the AP for (currently) two seconds, we will send the AP a probe request. Also, when we don't see beacons from the AP for two seconds, we do the same (but those times need not be the same due to the way the code is now written). Additionally, clean up the parameters to the ieee80211_set_disassoc() function that I need here, those are all useless except sdata. 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.h20
1 files changed, 12 insertions, 8 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 06b3411530f2..a34bca2dc52f 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -256,12 +256,13 @@ struct ieee80211_mgd_work {
256 256
257/* flags used in struct ieee80211_if_managed.flags */ 257/* flags used in struct ieee80211_if_managed.flags */
258enum ieee80211_sta_flags { 258enum ieee80211_sta_flags {
259 IEEE80211_STA_PROBEREQ_POLL = BIT(3), 259 IEEE80211_STA_BEACON_POLL = BIT(0),
260 IEEE80211_STA_CONTROL_PORT = BIT(4), 260 IEEE80211_STA_CONNECTION_POLL = BIT(1),
261 IEEE80211_STA_WMM_ENABLED = BIT(5), 261 IEEE80211_STA_CONTROL_PORT = BIT(2),
262 IEEE80211_STA_DISABLE_11N = BIT(6), 262 IEEE80211_STA_WMM_ENABLED = BIT(3),
263 IEEE80211_STA_CSA_RECEIVED = BIT(7), 263 IEEE80211_STA_DISABLE_11N = BIT(4),
264 IEEE80211_STA_MFP_ENABLED = BIT(8), 264 IEEE80211_STA_CSA_RECEIVED = BIT(5),
265 IEEE80211_STA_MFP_ENABLED = BIT(6),
265}; 266};
266 267
267/* flags for MLME request */ 268/* flags for MLME request */
@@ -271,11 +272,16 @@ enum ieee80211_sta_request {
271 272
272struct ieee80211_if_managed { 273struct ieee80211_if_managed {
273 struct timer_list timer; 274 struct timer_list timer;
275 struct timer_list conn_mon_timer;
276 struct timer_list bcn_mon_timer;
274 struct timer_list chswitch_timer; 277 struct timer_list chswitch_timer;
275 struct work_struct work; 278 struct work_struct work;
279 struct work_struct monitor_work;
276 struct work_struct chswitch_work; 280 struct work_struct chswitch_work;
277 struct work_struct beacon_loss_work; 281 struct work_struct beacon_loss_work;
278 282
283 unsigned long probe_timeout;
284
279 struct mutex mtx; 285 struct mutex mtx;
280 struct ieee80211_bss *associated; 286 struct ieee80211_bss *associated;
281 struct list_head work_list; 287 struct list_head work_list;
@@ -292,8 +298,6 @@ struct ieee80211_if_managed {
292 298
293 unsigned long request; 299 unsigned long request;
294 300
295 unsigned long last_beacon;
296
297 unsigned int flags; 301 unsigned int flags;
298 302
299 u32 beacon_crc; 303 u32 beacon_crc;