aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAhmad Kholaif <akholaif@qca.qualcomm.com>2015-07-24 00:39:45 +0000
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2016-04-01 16:44:48 +0530
commitfa36f79488af4aac63c1851c944ea3a41e9d7985 (patch)
tree795474617944e38416d6b4d9dd169d8a668c775e /src
parent7f91572ad497ebcd2c9b337fd1e27279cda83cf9 (diff)
downloadandroid_external_wpa_supplicant_8-fa36f79488af4aac63c1851c944ea3a41e9d7985.tar.gz
android_external_wpa_supplicant_8-fa36f79488af4aac63c1851c944ea3a41e9d7985.tar.bz2
android_external_wpa_supplicant_8-fa36f79488af4aac63c1851c944ea3a41e9d7985.zip
Add parsing of preferred frequency list element
This adds parsing of QCA vendor specific elements and as the first such element to be parsed, stores pointers to the preferred frequency list element that can be used to enhance P2P channel negotiation behavior. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com> Git-commit: 9baaac2d8495d56040a27063afe84f460525c2b3 Git-repo : git://w1.fi/srv/git/hostap.git Change-Id: Ie2da6d2dd9dc107f5ff3bb4763608fa5374c7539 CRs-fixed: 842468
Diffstat (limited to 'src')
-rw-r--r--src/common/ieee802_11_common.c15
-rw-r--r--src/common/ieee802_11_common.h2
2 files changed, 17 insertions, 0 deletions
diff --git a/src/common/ieee802_11_common.c b/src/common/ieee802_11_common.c
index d55e2969..063de6a7 100644
--- a/src/common/ieee802_11_common.c
+++ b/src/common/ieee802_11_common.c
@@ -11,6 +11,7 @@
#include "common.h"
#include "defs.h"
#include "wpa_common.h"
+#include "qca-vendor.h"
#include "ieee802_11_defs.h"
#include "ieee802_11_common.h"
@@ -147,6 +148,20 @@ static int ieee802_11_parse_vendor_specific(const u8 *pos, size_t elen,
}
break;
+ case OUI_QCA:
+ switch (pos[3]) {
+ case QCA_VENDOR_ELEM_P2P_PREF_CHAN_LIST:
+ elems->pref_freq_list = pos;
+ elems->pref_freq_list_len = elen;
+ break;
+ default:
+ wpa_printf(MSG_EXCESSIVE,
+ "Unknown QCA information element ignored (type=%d len=%lu)",
+ pos[3], (unsigned long) elen);
+ return -1;
+ }
+ break;
+
default:
wpa_printf(MSG_EXCESSIVE, "unknown vendor specific "
"information element ignored (vendor OUI "
diff --git a/src/common/ieee802_11_common.h b/src/common/ieee802_11_common.h
index 8d73980e..45cf121e 100644
--- a/src/common/ieee802_11_common.h
+++ b/src/common/ieee802_11_common.h
@@ -58,6 +58,7 @@ struct ieee802_11_elems {
const u8 *osen;
const u8 *ampe;
const u8 *mic;
+ const u8 *pref_freq_list;
u8 ssid_len;
u8 supp_rates_len;
@@ -86,6 +87,7 @@ struct ieee802_11_elems {
u8 osen_len;
u8 ampe_len;
u8 mic_len;
+ u8 pref_freq_list_len;
struct mb_ies_info mb_ies;
};