diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-07-10 09:29:03 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-07-24 15:05:10 -0400 |
commit | b291ba11181d46dfbd2d7a5c00a5f3335228191e (patch) | |
tree | 47813dce4a42e8334e531417425aa861848802bd /net/mac80211/ieee80211_i.h | |
parent | ca386f3137eb68621fadba546d9eb35ac2f82de3 (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.h | 20 |
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 */ |
258 | enum ieee80211_sta_flags { | 258 | enum 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 | ||
272 | struct ieee80211_if_managed { | 273 | struct 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; |