aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJouni Malinen <jouni@qca.qualcomm.com>2014-01-24 13:58:00 +0000
committerSteve Kondik <shade@chemlab.org>2014-06-12 14:07:59 -0700
commit75387528ec9c45fa273f9e0c7574836db55df181 (patch)
treea400e3a5885a8084e782cc27e4dbb1eacd7dc6a8
parent3131ab317a42d42e82186b91a73907dd3884bac7 (diff)
downloadandroid_external_wpa_supplicant_8-75387528ec9c45fa273f9e0c7574836db55df181.tar.gz
android_external_wpa_supplicant_8-75387528ec9c45fa273f9e0c7574836db55df181.tar.bz2
android_external_wpa_supplicant_8-75387528ec9c45fa273f9e0c7574836db55df181.zip
Add a header file defining QCA OUI and vendor extensions
This file is used as a registry of identifier assignments from the Qualcomm Atheros OUI 00:13:74 for purposes other than MAC address assignment. One of the first uses will be for nl80211 vendor commands/events which is reason for the preparation change in driver_nl80211.c Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com> Git-commit: 1682c6236017f28b8fdb3b791565c835e988a559 Git-repo : git://w1.fi/srv/git/hostap.git Change-Id: I25a164a2541a57511c9e737d582b14975fc550b3 CRs-Fixed: 598923
-rw-r--r--src/common/qca-vendor.h33
-rw-r--r--src/drivers/driver_nl80211.c17
2 files changed, 50 insertions, 0 deletions
diff --git a/src/common/qca-vendor.h b/src/common/qca-vendor.h
new file mode 100644
index 00000000..6e2f0c00
--- /dev/null
+++ b/src/common/qca-vendor.h
@@ -0,0 +1,33 @@
+/*
+ * Qualcomm Atheros OUI and vendor specific assignments
+ * Copyright (c) 2014, Qualcomm Atheros, Inc.
+ *
+ * This software may be distributed under the terms of the BSD license.
+ * See README for more details.
+ */
+
+#ifndef QCA_VENDOR_H
+#define QCA_VENDOR_H
+
+/*
+ * This file is a registry of identifier assignments from the Qualcomm Atheros
+ * OUI 00:13:74 for purposes other than MAC address assignment. New identifiers
+ * can be assigned through normal review process for changes to the upstream
+ * hostap.git repository.
+ */
+
+#define OUI_QCA 0x001374
+
+/**
+ * enum qca_nl80211_vendor_subcmds - QCA nl80211 vendor command identifiers
+ *
+ * @QCA_NL80211_VENDOR_SUBCMD_UNSPEC: Reserved value 0
+ *
+ * @QCA_NL80211_VENDOR_SUBCMD_TEST: Test command/event
+ */
+enum qca_nl80211_vendor_subcmds {
+ QCA_NL80211_VENDOR_SUBCMD_UNSPEC = 0,
+ QCA_NL80211_VENDOR_SUBCMD_TEST = 1,
+};
+
+#endif /* QCA_VENDOR_H */
diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
index 53ef1a0b..0881868e 100644
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -28,6 +28,7 @@
#include "common.h"
#include "eloop.h"
#include "utils/list.h"
+#include "common/qca-vendor.h"
#include "common/ieee802_11_defs.h"
#include "common/ieee802_11_common.h"
#include "l2_packet/l2_packet.h"
@@ -2612,6 +2613,19 @@ static void nl80211_spurious_frame(struct i802_bss *bss, struct nlattr **tb,
}
+static void nl80211_vendor_event_qca(struct wpa_driver_nl80211_data *drv,
+ u32 subcmd, u8 *data, size_t len)
+{
+ switch (subcmd) {
+ default:
+ wpa_printf(MSG_DEBUG,
+ "nl80211: Ignore unsupported QCA vendor event %u",
+ subcmd);
+ break;
+ }
+}
+
+
static void nl80211_vendor_event(struct wpa_driver_nl80211_data *drv,
struct nlattr **tb)
{
@@ -2647,6 +2661,9 @@ static void nl80211_vendor_event(struct wpa_driver_nl80211_data *drv,
}
switch (vendor_id) {
+ case OUI_QCA:
+ nl80211_vendor_event_qca(drv, subcmd, data, len);
+ break;
default:
wpa_printf(MSG_DEBUG, "nl80211: Ignore unsupported vendor event");
break;