aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/mlme.c
diff options
context:
space:
mode:
authorEliad Peller <eliad@wizery.com>2014-09-09 10:09:45 -0400
committerJohannes Berg <johannes.berg@intel.com>2014-09-11 06:24:39 -0400
commitb0b6aa2c8e0d0e34f7658d5cc1e4fbb59f701c42 (patch)
tree4ef51e55ff3a08068b4a7d7ed2c0a65d80a9f77b /net/mac80211/mlme.c
parent960d01acf62747d6518694f92be5b06f67473833 (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.c9
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
2894static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata, 2901static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata,