aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/cfg80211.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-05-15 18:55:45 -0400
committerJohannes Berg <johannes.berg@intel.com>2013-06-04 07:03:11 -0400
commitceca7b7121795ef81bd598a240d53a925662d0c1 (patch)
tree510d7a6c578d7ede025c8b4714b9584729517b0a /include/net/cfg80211.h
parent6ff57cf88807dd81300b5b9c623dc5eb6422b9f6 (diff)
cfg80211: separate internal SME implementation
The current internal SME implementation in cfg80211 is very mixed up with the MLME handling, which has been causing issues for a long time. There are three things that the implementation has to provide: * a basic SME implementation for nl80211's connect() call (for drivers implementing auth/assoc, which is really just mac80211) and wireless extensions * MLME events for the userspace SME * SME events (connected, disconnected etc.) for all different SME implementation possibilities (driver, cfg80211 and userspace) To achieve these goals it isn't necessary to track the software SME's connection status outside of it's state (which is the part that caused many issues.) Instead, track it only in the SME data (wdev->conn) and in the general case only track whether the wdev is connected or not (via wdev->current_bss.) Also separate the internal implementation to not have callbacks from the SME events, but rather call it from the API functions that the driver (or rather mac80211) calls. This separates the code better. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include/net/cfg80211.h')
-rw-r--r--include/net/cfg80211.h5
1 files changed, 0 insertions, 5 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 195330d4ef34..5b208064f1bd 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -2898,11 +2898,6 @@ struct wireless_dev {
2898 /* currently used for IBSS and SME - might be rearranged later */ 2898 /* currently used for IBSS and SME - might be rearranged later */
2899 u8 ssid[IEEE80211_MAX_SSID_LEN]; 2899 u8 ssid[IEEE80211_MAX_SSID_LEN];
2900 u8 ssid_len, mesh_id_len, mesh_id_up_len; 2900 u8 ssid_len, mesh_id_len, mesh_id_up_len;
2901 enum {
2902 CFG80211_SME_IDLE,
2903 CFG80211_SME_CONNECTING,
2904 CFG80211_SME_CONNECTED,
2905 } sme_state;
2906 struct cfg80211_conn *conn; 2901 struct cfg80211_conn *conn;
2907 struct cfg80211_cached_keys *connect_keys; 2902 struct cfg80211_cached_keys *connect_keys;
2908 2903