mac80211: make off-channel work generic

This changes mac80211 to allow being off-channel for
any type of work, not just the 'remain-on-channel'
work. This also helps fast transition to a BSS on a
different channel.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Johannes Berg
2009-12-23 13:15:43 +01:00
committed by John W. Linville
parent b8bc4b0aa9
commit e4da8c37af
3 changed files with 89 additions and 69 deletions

View File

@@ -255,13 +255,15 @@ struct ieee80211_work {
struct sk_buff *skb);
struct ieee80211_channel *chan;
/* XXX: chan type? -- right now not really needed */
enum nl80211_channel_type chan_type;
unsigned long timeout;
enum ieee80211_work_type type;
u8 filter_ta[ETH_ALEN];
bool started;
union {
struct {
int tries;
@@ -286,7 +288,8 @@ struct ieee80211_work {
bool wmm_used, use_11n;
} assoc;
struct {
unsigned long timeout;
u32 duration;
bool started;
} remain;
};