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>
This commit is contained in:
Jouni Malinen 2014-01-24 15:58:00 +02:00 committed by Jouni Malinen
parent 8615bdfac9
commit 1682c62360
2 changed files with 50 additions and 0 deletions

33
src/common/qca-vendor.h Normal file
View file

@ -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 */

View file

@ -28,6 +28,7 @@
#include "common.h" #include "common.h"
#include "eloop.h" #include "eloop.h"
#include "utils/list.h" #include "utils/list.h"
#include "common/qca-vendor.h"
#include "common/ieee802_11_defs.h" #include "common/ieee802_11_defs.h"
#include "common/ieee802_11_common.h" #include "common/ieee802_11_common.h"
#include "l2_packet/l2_packet.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, static void nl80211_vendor_event(struct wpa_driver_nl80211_data *drv,
struct nlattr **tb) struct nlattr **tb)
{ {
@ -2751,6 +2765,9 @@ static void nl80211_vendor_event(struct wpa_driver_nl80211_data *drv,
} }
switch (vendor_id) { switch (vendor_id) {
case OUI_QCA:
nl80211_vendor_event_qca(drv, subcmd, data, len);
break;
default: default:
wpa_printf(MSG_DEBUG, "nl80211: Ignore unsupported vendor event"); wpa_printf(MSG_DEBUG, "nl80211: Ignore unsupported vendor event");
break; break;