mac80211: propagate information about STA WME support down
Arik Nemtsov [Mon, 27 Jun 2011 20:58:45 +0000 (23:58 +0300)]
Add a memeber to the ieee80211_sta structure to indicate whether the STA
supports WME.

Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

include/net/mac80211.h
net/mac80211/cfg.c

index 120f102..c9def42 100644 (file)
@@ -933,6 +933,7 @@ enum set_key_cmd {
  * @aid: AID we assigned to the station if we're an AP
  * @supp_rates: Bitmap of supported rates (per band)
  * @ht_cap: HT capabilities of this STA; restricted to our own TX capabilities
+ * @wme: indicates whether the STA supports WME. Only valid during AP-mode.
  * @drv_priv: data area for driver use, will always be aligned to
  *     sizeof(void *), size is determined in hw information.
  */
@@ -941,6 +942,7 @@ struct ieee80211_sta {
        u8 addr[ETH_ALEN];
        u16 aid;
        struct ieee80211_sta_ht_cap ht_cap;
+       bool wme;
 
        /* must be last */
        u8 drv_priv[0] __attribute__((__aligned__(sizeof(void *))));
index 6e56c6e..9fe22cc 100644 (file)
@@ -674,8 +674,11 @@ static void sta_apply_parameters(struct ieee80211_local *local,
 
        if (mask & BIT(NL80211_STA_FLAG_WME)) {
                sta->flags &= ~WLAN_STA_WME;
-               if (set & BIT(NL80211_STA_FLAG_WME))
+               sta->sta.wme = false;
+               if (set & BIT(NL80211_STA_FLAG_WME)) {
                        sta->flags |= WLAN_STA_WME;
+                       sta->sta.wme = true;
+               }
        }
 
        if (mask & BIT(NL80211_STA_FLAG_MFP)) {