aboutsummaryrefslogtreecommitdiffstats
path: root/wpa_supplicant/wpas_glue.c
diff options
context:
space:
mode:
authorSunil Dutt <duttus@codeaurora.org>2013-02-05 14:41:01 (GMT)
committerJouni Malinen <j@w1.fi>2013-02-14 19:01:50 (GMT)
commitff4178d57c1960807ced94f282bde167fdbac825 (patch)
treec1297b72df46d3dae57ea24c88faf6650b519a64 /wpa_supplicant/wpas_glue.c
parente4dea253b7cb2a4eaebf2835ecfd71c94bbd7854 (diff)
downloadhostap-ff4178d57c1960807ced94f282bde167fdbac825.zip
hostap-ff4178d57c1960807ced94f282bde167fdbac825.tar.gz
hostap-ff4178d57c1960807ced94f282bde167fdbac825.tar.bz2
TDLS: Pass peer's HT Capability and QOS information during sta_add
The information of the peer's HT capability and the QOS information is required for the driver to perform TDLS operations. Pass this information to the driver when the peer station is getting added. Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Diffstat (limited to 'wpa_supplicant/wpas_glue.c')
-rw-r--r--wpa_supplicant/wpas_glue.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/wpa_supplicant/wpas_glue.c b/wpa_supplicant/wpas_glue.c
index e5e1f42..bb4ca93 100644
--- a/wpa_supplicant/wpas_glue.c
+++ b/wpa_supplicant/wpas_glue.c
@@ -552,7 +552,9 @@ static int wpa_supplicant_tdls_oper(void *ctx, int oper, const u8 *peer)
static int wpa_supplicant_tdls_peer_addset(
void *ctx, const u8 *peer, int add, u16 capability,
- const u8 *supp_rates, size_t supp_rates_len)
+ const u8 *supp_rates, size_t supp_rates_len,
+ const struct ieee80211_ht_capabilities *ht_capab,
+ u8 qosinfo)
{
struct wpa_supplicant *wpa_s = ctx;
struct hostapd_sta_add_params params;
@@ -563,7 +565,16 @@ static int wpa_supplicant_tdls_peer_addset(
params.aid = 1;
params.capability = capability;
params.flags = WPA_STA_TDLS_PEER | WPA_STA_AUTHORIZED;
- params.ht_capabilities = NULL;
+
+ /*
+ * TDLS Setup frames do not contain WMM IEs, hence need to depend on
+ * qosinfo to check if the peer is WMM capable.
+ */
+ if (qosinfo)
+ params.flags |= WPA_STA_WMM;
+
+ params.ht_capabilities = ht_capab;
+ params.qosinfo = qosinfo;
params.listen_interval = 0;
params.supp_rates = supp_rates;
params.supp_rates_len = supp_rates_len;