#define IEEE80211_STA_AUTO_BSSID_SEL   BIT(11)
 #define IEEE80211_STA_AUTO_CHANNEL_SEL BIT(12)
 #define IEEE80211_STA_PRIVACY_INVOKED  BIT(13)
+/* flags for  MLME request*/
+#define IEEE80211_STA_REQ_SCAN 0
+#define IEEE80211_STA_REQ_AUTH 1
+#define IEEE80211_STA_REQ_RUN  2
+
+/* flags used for setting mlme state */
+enum ieee80211_sta_mlme_state {
+       IEEE80211_STA_MLME_DISABLED,
+       IEEE80211_STA_MLME_AUTHENTICATE,
+       IEEE80211_STA_MLME_ASSOCIATE,
+       IEEE80211_STA_MLME_ASSOCIATED,
+       IEEE80211_STA_MLME_IBSS_SEARCH,
+       IEEE80211_STA_MLME_IBSS_JOINED,
+       IEEE80211_STA_MLME_MESH_UP
+};
+
+/* bitfield of allowed auth algs */
+#define IEEE80211_AUTH_ALG_OPEN BIT(0)
+#define IEEE80211_AUTH_ALG_SHARED_KEY BIT(1)
+#define IEEE80211_AUTH_ALG_LEAP BIT(2)
+
 struct ieee80211_if_sta {
        struct timer_list timer;
        struct work_struct work;
        u8 bssid[ETH_ALEN], prev_bssid[ETH_ALEN];
        u8 ssid[IEEE80211_MAX_SSID_LEN];
-       enum {
-               IEEE80211_DISABLED, IEEE80211_AUTHENTICATE,
-               IEEE80211_ASSOCIATE, IEEE80211_ASSOCIATED,
-               IEEE80211_IBSS_SEARCH, IEEE80211_IBSS_JOINED,
-               IEEE80211_MESH_UP
-       } state;
+       enum ieee80211_sta_mlme_state state;
        size_t ssid_len;
        u8 scan_ssid[IEEE80211_MAX_SSID_LEN];
        size_t scan_ssid_len;
        unsigned long last_probe;
 
        unsigned int flags;
-#define IEEE80211_STA_REQ_SCAN 0
-#define IEEE80211_STA_REQ_AUTH 1
-#define IEEE80211_STA_REQ_RUN  2
 
-#define IEEE80211_AUTH_ALG_OPEN BIT(0)
-#define IEEE80211_AUTH_ALG_SHARED_KEY BIT(1)
-#define IEEE80211_AUTH_ALG_LEAP BIT(2)
        unsigned int auth_algs; /* bitfield of allowed auth algs */
        int auth_alg; /* currently used IEEE 802.11 authentication algorithm */
        int auth_transaction;
 
                printk(KERN_DEBUG "%s: authentication with AP %s"
                       " timed out\n",
                       sdata->dev->name, print_mac(mac, ifsta->bssid));
-               ifsta->state = IEEE80211_DISABLED;
+               ifsta->state = IEEE80211_STA_MLME_DISABLED;
                return;
        }
 
-       ifsta->state = IEEE80211_AUTHENTICATE;
+       ifsta->state = IEEE80211_STA_MLME_AUTHENTICATE;
        printk(KERN_DEBUG "%s: authenticate with AP %s\n",
               sdata->dev->name, print_mac(mac, ifsta->bssid));
 
                printk(KERN_DEBUG "%s: association with AP %s"
                       " timed out\n",
                       sdata->dev->name, print_mac(mac, ifsta->bssid));
-               ifsta->state = IEEE80211_DISABLED;
+               ifsta->state = IEEE80211_STA_MLME_DISABLED;
                return;
        }
 
-       ifsta->state = IEEE80211_ASSOCIATE;
+       ifsta->state = IEEE80211_STA_MLME_ASSOCIATE;
        printk(KERN_DEBUG "%s: associate with AP %s\n",
               sdata->dev->name, print_mac(mac, ifsta->bssid));
        if (ieee80211_privacy_mismatch(sdata, ifsta)) {
                printk(KERN_DEBUG "%s: mismatch in privacy configuration and "
                       "mixed-cell disabled - abort association\n", sdata->dev->name);
-               ifsta->state = IEEE80211_DISABLED;
+               ifsta->state = IEEE80211_STA_MLME_DISABLED;
                return;
        }
 
         * for better APs. */
        /* TODO: remove expired BSSes */
 
-       ifsta->state = IEEE80211_ASSOCIATED;
+       ifsta->state = IEEE80211_STA_MLME_ASSOCIATED;
 
        rcu_read_lock();
 
                sta_info_destroy(sta);
 
        if (disassoc) {
-               ifsta->state = IEEE80211_DISABLED;
+               ifsta->state = IEEE80211_STA_MLME_DISABLED;
                ieee80211_set_associated(sdata, ifsta, 0);
        } else {
                mod_timer(&ifsta->timer, jiffies +
        u16 auth_alg, auth_transaction, status_code;
        DECLARE_MAC_BUF(mac);
 
-       if (ifsta->state != IEEE80211_AUTHENTICATE &&
+       if (ifsta->state != IEEE80211_STA_MLME_AUTHENTICATE &&
            sdata->vif.type != IEEE80211_IF_TYPE_IBSS)
                return;
 
        if (ifsta->flags & IEEE80211_STA_AUTHENTICATED)
                printk(KERN_DEBUG "%s: deauthenticated\n", sdata->dev->name);
 
-       if (ifsta->state == IEEE80211_AUTHENTICATE ||
-           ifsta->state == IEEE80211_ASSOCIATE ||
-           ifsta->state == IEEE80211_ASSOCIATED) {
-               ifsta->state = IEEE80211_AUTHENTICATE;
+       if (ifsta->state == IEEE80211_STA_MLME_AUTHENTICATE ||
+           ifsta->state == IEEE80211_STA_MLME_ASSOCIATE ||
+           ifsta->state == IEEE80211_STA_MLME_ASSOCIATED) {
+               ifsta->state = IEEE80211_STA_MLME_AUTHENTICATE;
                mod_timer(&ifsta->timer, jiffies +
                                      IEEE80211_RETRY_AUTH_INTERVAL);
        }
        if (ifsta->flags & IEEE80211_STA_ASSOCIATED)
                printk(KERN_DEBUG "%s: disassociated\n", sdata->dev->name);
 
-       if (ifsta->state == IEEE80211_ASSOCIATED) {
-               ifsta->state = IEEE80211_ASSOCIATE;
+       if (ifsta->state == IEEE80211_STA_MLME_ASSOCIATED) {
+               ifsta->state = IEEE80211_STA_MLME_ASSOCIATE;
                mod_timer(&ifsta->timer, jiffies +
                                      IEEE80211_RETRY_AUTH_INTERVAL);
        }
        /* AssocResp and ReassocResp have identical structure, so process both
         * of them in this function. */
 
-       if (ifsta->state != IEEE80211_ASSOCIATE)
+       if (ifsta->state != IEEE80211_STA_MLME_ASSOCIATE)
                return;
 
        if (len < 24 + 6)
 
        ieee80211_sta_def_wmm_params(sdata, bss, 1);
 
-       ifsta->state = IEEE80211_IBSS_JOINED;
+       ifsta->state = IEEE80211_STA_MLME_IBSS_JOINED;
        mod_timer(&ifsta->timer, jiffies + IEEE80211_IBSS_MERGE_INTERVAL);
 
        memset(&wrqu, 0, sizeof(wrqu));
 #endif
 
        if (sdata->vif.type != IEEE80211_IF_TYPE_IBSS ||
-           ifsta->state != IEEE80211_IBSS_JOINED ||
+           ifsta->state != IEEE80211_STA_MLME_IBSS_JOINED ||
            len < 24 + 2 || !ifsta->probe_resp)
                return;
 
 {
        struct ieee80211_if_sta *ifsta;
        ifsta = &sdata->u.sta;
-       ifsta->state = IEEE80211_MESH_UP;
+       ifsta->state = IEEE80211_STA_MLME_MESH_UP;
        ieee80211_sta_timer((unsigned long)sdata);
        ieee80211_if_config(sdata, IEEE80211_IFCC_BEACON);
 }
                mesh_path_start_discovery(sdata);
 #endif
 
-       if (ifsta->state != IEEE80211_AUTHENTICATE &&
-           ifsta->state != IEEE80211_ASSOCIATE &&
+       if (ifsta->state != IEEE80211_STA_MLME_AUTHENTICATE &&
+           ifsta->state != IEEE80211_STA_MLME_ASSOCIATE &&
            test_and_clear_bit(IEEE80211_STA_REQ_SCAN, &ifsta->request)) {
                if (ifsta->scan_ssid_len)
                        ieee80211_sta_start_scan(sdata, ifsta->scan_ssid, ifsta->scan_ssid_len);
                return;
 
        switch (ifsta->state) {
-       case IEEE80211_DISABLED:
+       case IEEE80211_STA_MLME_DISABLED:
                break;
-       case IEEE80211_AUTHENTICATE:
+       case IEEE80211_STA_MLME_AUTHENTICATE:
                ieee80211_authenticate(sdata, ifsta);
                break;
-       case IEEE80211_ASSOCIATE:
+       case IEEE80211_STA_MLME_ASSOCIATE:
                ieee80211_associate(sdata, ifsta);
                break;
-       case IEEE80211_ASSOCIATED:
+       case IEEE80211_STA_MLME_ASSOCIATED:
                ieee80211_associated(sdata, ifsta);
                break;
-       case IEEE80211_IBSS_SEARCH:
+       case IEEE80211_STA_MLME_IBSS_SEARCH:
                ieee80211_sta_find_ibss(sdata, ifsta);
                break;
-       case IEEE80211_IBSS_JOINED:
+       case IEEE80211_STA_MLME_IBSS_JOINED:
                ieee80211_sta_merge_ibss(sdata, ifsta);
                break;
 #ifdef CONFIG_MAC80211_MESH
-       case IEEE80211_MESH_UP:
+       case IEEE80211_STA_MLME_MESH_UP:
                ieee80211_mesh_housekeeping(sdata, ifsta);
                break;
 #endif
                ieee80211_sta_set_bssid(sdata, selected->bssid);
                ieee80211_sta_def_wmm_params(sdata, selected, 0);
                ieee80211_rx_bss_put(local, selected);
-               ifsta->state = IEEE80211_AUTHENTICATE;
+               ifsta->state = IEEE80211_STA_MLME_AUTHENTICATE;
                ieee80211_sta_reset_auth(sdata, ifsta);
                return 0;
        } else {
-               if (ifsta->state != IEEE80211_AUTHENTICATE) {
+               if (ifsta->state != IEEE80211_STA_MLME_AUTHENTICATE) {
                        if (ifsta->flags & IEEE80211_STA_AUTO_SSID_SEL)
                                ieee80211_sta_start_scan(sdata, NULL, 0);
                        else
                                ieee80211_sta_start_scan(sdata, ifsta->ssid,
                                                         ifsta->ssid_len);
-                       ifsta->state = IEEE80211_AUTHENTICATE;
+                       ifsta->state = IEEE80211_STA_MLME_AUTHENTICATE;
                        set_bit(IEEE80211_STA_REQ_AUTH, &ifsta->request);
                } else
-                       ifsta->state = IEEE80211_DISABLED;
+                       ifsta->state = IEEE80211_STA_MLME_DISABLED;
        }
        return -1;
 }
 #endif /* CONFIG_MAC80211_IBSS_DEBUG */
 
        /* Selected IBSS not found in current scan results - try to scan */
-       if (ifsta->state == IEEE80211_IBSS_JOINED &&
+       if (ifsta->state == IEEE80211_STA_MLME_IBSS_JOINED &&
            !ieee80211_sta_active_ibss(sdata)) {
                mod_timer(&ifsta->timer, jiffies +
                                      IEEE80211_IBSS_MERGE_INTERVAL);
                       "join\n", sdata->dev->name);
                return ieee80211_sta_req_scan(sdata, ifsta->ssid,
                                              ifsta->ssid_len);
-       } else if (ifsta->state != IEEE80211_IBSS_JOINED) {
+       } else if (ifsta->state != IEEE80211_STA_MLME_IBSS_JOINED) {
                int interval = IEEE80211_SCAN_INTERVAL;
 
                if (time_after(jiffies, ifsta->ibss_join_req +
                        interval = IEEE80211_SCAN_INTERVAL_SLOW;
                }
 
-               ifsta->state = IEEE80211_IBSS_SEARCH;
+               ifsta->state = IEEE80211_STA_MLME_IBSS_SEARCH;
                mod_timer(&ifsta->timer, jiffies + interval);
                return 0;
        }
        if (sdata->vif.type == IEEE80211_IF_TYPE_IBSS &&
            !(ifsta->flags & IEEE80211_STA_BSSID_SET)) {
                ifsta->ibss_join_req = jiffies;
-               ifsta->state = IEEE80211_IBSS_SEARCH;
+               ifsta->state = IEEE80211_STA_MLME_IBSS_SEARCH;
                return ieee80211_sta_find_ibss(sdata, ifsta);
        }
 
        if (sdata->vif.type == IEEE80211_IF_TYPE_IBSS) {
                struct ieee80211_if_sta *ifsta = &sdata->u.sta;
                if (!(ifsta->flags & IEEE80211_STA_BSSID_SET) ||
-                   (!(ifsta->state == IEEE80211_IBSS_JOINED) &&
+                   (!(ifsta->state == IEEE80211_STA_MLME_IBSS_JOINED) &&
                    !ieee80211_sta_active_ibss(sdata)))
                        ieee80211_sta_find_ibss(sdata, ifsta);
        }