diff options
author | Eliad Peller <eliad@wizery.com> | 2014-09-09 10:09:45 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2014-09-11 06:24:39 -0400 |
commit | b0b6aa2c8e0d0e34f7658d5cc1e4fbb59f701c42 (patch) | |
tree | 4ef51e55ff3a08068b4a7d7ed2c0a65d80a9f77b /net/mac80211/mlme.c | |
parent | 960d01acf62747d6518694f92be5b06f67473833 (diff) |
cfg80211/mac80211: add wmm info to assoc event
Userspace might need to know what queues are configured
for uapsd (e.g. for setting proper default values in tspecs).
Add this bitmap to the association event (inside wmm
nested attribute)
Add additional parameter to cfg80211_rx_assoc_resp,
and update its callers.
Signed-off-by: Eliad Peller <eliadx.peller@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/mlme.c')
-rw-r--r-- | net/mac80211/mlme.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index a7b92f5f7161..efa41fc66c1f 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c | |||
@@ -2817,6 +2817,7 @@ static void ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata, | |||
2817 | struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; | 2817 | struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; |
2818 | u16 capab_info, status_code, aid; | 2818 | u16 capab_info, status_code, aid; |
2819 | struct ieee802_11_elems elems; | 2819 | struct ieee802_11_elems elems; |
2820 | int ac, uapsd_queues = -1; | ||
2820 | u8 *pos; | 2821 | u8 *pos; |
2821 | bool reassoc; | 2822 | bool reassoc; |
2822 | struct cfg80211_bss *bss; | 2823 | struct cfg80211_bss *bss; |
@@ -2886,9 +2887,15 @@ static void ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata, | |||
2886 | * is set can cause the interface to go idle | 2887 | * is set can cause the interface to go idle |
2887 | */ | 2888 | */ |
2888 | ieee80211_destroy_assoc_data(sdata, true); | 2889 | ieee80211_destroy_assoc_data(sdata, true); |
2890 | |||
2891 | /* get uapsd queues configuration */ | ||
2892 | uapsd_queues = 0; | ||
2893 | for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) | ||
2894 | if (sdata->tx_conf[ac].uapsd) | ||
2895 | uapsd_queues |= BIT(ac); | ||
2889 | } | 2896 | } |
2890 | 2897 | ||
2891 | cfg80211_rx_assoc_resp(sdata->dev, bss, (u8 *)mgmt, len); | 2898 | cfg80211_rx_assoc_resp(sdata->dev, bss, (u8 *)mgmt, len, uapsd_queues); |
2892 | } | 2899 | } |
2893 | 2900 | ||
2894 | static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata, | 2901 | static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata, |