From 1682c6236017f28b8fdb3b791565c835e988a559 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Fri, 24 Jan 2014 15:58:00 +0200 Subject: [PATCH] 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 --- src/common/qca-vendor.h | 33 +++++++++++++++++++++++++++++++++ src/drivers/driver_nl80211.c | 17 +++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 src/common/qca-vendor.h diff --git a/src/common/qca-vendor.h b/src/common/qca-vendor.h new file mode 100644 index 000000000..6e2f0c00f --- /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 b5bf368dd..008b03191 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" @@ -2716,6 +2717,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) { @@ -2751,6 +2765,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;