hostapd/src/common/brcm_vendor.h
Xinrui Sun 61a258e784 nl80211: Add ACS support for Broadcom device
BRCM vendor command used to trigger ACS scan. After ACS finished,
DHD driver will send results by event BRCM_VENDOR_EVENT_ACS.

Signed-off-by: Xinrui Sun <xinrui.sun@broadcom.com>
2021-02-27 12:14:09 +02:00

156 lines
4.7 KiB
C

/*
* Broadcom Corporation OUI and vendor specific assignments
* Copyright (c) 2020, Broadcom Corporation.
*
* This software may be distributed under the terms of the BSD license.
* See README for more details.
*/
#ifndef BRCM_VENDOR_H
#define BRCM_VENDOR_H
/*
* This file is a registry of identifier assignments from the Broadcom
* OUI 00:10:18 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_BRCM 0x001018
/**
* enum brcm_nl80211_vendor_subcmds - BRCM nl80211 vendor command identifiers
*
* @BRCM_VENDOR_SCMD_UNSPEC: Reserved value 0
*
* @BRCM_VENDOR_SCMD_PRIV_STR: Provide vendor private cmds to send to FW.
*
* @BRCM_VENDOR_SCMD_BCM_STR: Provide vendor cmds to BCMDHD driver.
*
* @BRCM_VENDOR_SCMD_BCM_PSK: Used to set SAE password.
*
* @BRCM_VENDOR_SCMD_SET_PMK: Command to check driver support
* for DFS offloading.
*
* @BRCM_VENDOR_SCMD_GET_FEATURES: Command to get the features
* supported by the driver.
*
* @BRCM_VENDOR_SCMD_SET_MAC: Set random mac address for P2P interface.
*
* @BRCM_VENDOR_SCMD_SET_CONNECT_PARAMS: Set some connect parameters.
* Used for the case that FW handle SAE.
*
* @BRCM_VENDOR_SCMD_SET_START_AP_PARAMS: Set SoftAP paramters.
* Used for the case that FW handle SAE.
*
* @BRCM_VENDOR_SCMD_ACS: ACS command/event which is used to
* invoke the ACS function in device and pass selected channels to
* hostapd. Uses enum qca_wlan_vendor_attr_acs_offload attributes.
*
* @BRCM_VENDOR_SCMD_MAX: This acts as a the tail of cmds list.
* Make sure it located at the end of the list.
*
*/
enum brcm_nl80211_vendor_subcmds {
BRCM_VENDOR_SCMD_UNSPEC = 0,
BRCM_VENDOR_SCMD_PRIV_STR = 1,
BRCM_VENDOR_SCMD_BCM_STR = 2,
BRCM_VENDOR_SCMD_BCM_PSK = 3,
BRCM_VENDOR_SCMD_SET_PMK = 4,
BRCM_VENDOR_SCMD_GET_FEATURES = 5,
BRCM_VENDOR_SCMD_SET_MAC = 6,
BRCM_VENDOR_SCMD_SET_CONNECT_PARAMS = 7,
BRCM_VENDOR_SCMD_SET_START_AP_PARAMS = 8,
BRCM_VENDOR_SCMD_ACS = 9,
BRCM_VENDOR_SCMD_MAX = 10
};
/**
* enum brcm_nl80211_vendor_events - BRCM nl80211 asynchoronous event identifiers
*
* @BRCM_VENDOR_EVENT_UNSPEC: Reserved value 0
*
* @BRCM_VENDOR_EVENT_PRIV_STR: String command/event
*/
enum brcm_nl80211_vendor_events {
BRCM_VENDOR_EVENT_UNSPEC = 0,
BRCM_VENDOR_EVENT_PRIV_STR = 1,
GOOGLE_GSCAN_SIGNIFICANT_EVENT = 2,
GOOGLE_GSCAN_GEOFENCE_FOUND_EVENT = 3,
GOOGLE_GSCAN_BATCH_SCAN_EVENT = 4,
GOOGLE_SCAN_FULL_RESULTS_EVENT = 5,
GOOGLE_RTT_COMPLETE_EVENT = 6,
GOOGLE_SCAN_COMPLETE_EVENT = 7,
GOOGLE_GSCAN_GEOFENCE_LOST_EVENT = 8,
GOOGLE_SCAN_EPNO_EVENT = 9,
GOOGLE_DEBUG_RING_EVENT = 10,
GOOGLE_FW_DUMP_EVENT = 11,
GOOGLE_PNO_HOTSPOT_FOUND_EVENT = 12,
GOOGLE_RSSI_MONITOR_EVENT = 13,
GOOGLE_MKEEP_ALIVE_EVENT = 14,
/*
* BRCM specific events should be placed after
* the Generic events so that enums don't mismatch
* between the DHD and HAL
*/
GOOGLE_NAN_EVENT_ENABLED = 15,
GOOGLE_NAN_EVENT_DISABLED = 16,
GOOGLE_NAN_EVENT_SUBSCRIBE_MATCH = 17,
GOOGLE_NAN_EVENT_REPLIED = 18,
GOOGLE_NAN_EVENT_PUBLISH_TERMINATED = 19,
GOOGLE_NAN_EVENT_SUBSCRIBE_TERMINATED = 20,
GOOGLE_NAN_EVENT_DE_EVENT = 21,
GOOGLE_NAN_EVENT_FOLLOWUP = 22,
GOOGLE_NAN_EVENT_TRANSMIT_FOLLOWUP_IND = 23,
GOOGLE_NAN_EVENT_DATA_REQUEST = 24,
GOOGLE_NAN_EVENT_DATA_CONFIRMATION = 25,
GOOGLE_NAN_EVENT_DATA_END = 26,
GOOGLE_NAN_EVENT_BEACON = 27,
GOOGLE_NAN_EVENT_SDF = 28,
GOOGLE_NAN_EVENT_TCA = 29,
GOOGLE_NAN_EVENT_SUBSCRIBE_UNMATCH = 30,
GOOGLE_NAN_EVENT_UNKNOWN = 31,
GOOGLE_ROAM_EVENT_START = 32,
BRCM_VENDOR_EVENT_HANGED = 33,
BRCM_VENDOR_EVENT_SAE_KEY = 34,
BRCM_VENDOR_EVENT_BEACON_RECV = 35,
BRCM_VENDOR_EVENT_PORT_AUTHORIZED = 36,
GOOGLE_FILE_DUMP_EVENT = 37,
BRCM_VENDOR_EVENT_CU = 38,
BRCM_VENDOR_EVENT_WIPS = 39,
NAN_ASYNC_RESPONSE_DISABLED = 40,
BRCM_VENDOR_EVENT_RCC_INFO = 41,
BRCM_VENDOR_EVENT_ACS = 42,
BRCM_VENDOR_EVENT_LAST
};
#ifdef CONFIG_BRCM_SAE
enum wifi_sae_key_attr {
BRCM_SAE_KEY_ATTR_BSSID,
BRCM_SAE_KEY_ATTR_PMK,
BRCM_SAE_KEY_ATTR_PMKID
};
#endif /* CONFIG_BRCM_SAE */
enum wl_vendor_attr_acs_offload {
BRCM_VENDOR_ATTR_ACS_CHANNEL_INVALID = 0,
BRCM_VENDOR_ATTR_ACS_PRIMARY_FREQ,
BRCM_VENDOR_ATTR_ACS_SECONDARY_FREQ,
BRCM_VENDOR_ATTR_ACS_VHT_SEG0_CENTER_CHANNEL,
BRCM_VENDOR_ATTR_ACS_VHT_SEG1_CENTER_CHANNEL,
BRCM_VENDOR_ATTR_ACS_HW_MODE,
BRCM_VENDOR_ATTR_ACS_HT_ENABLED,
BRCM_VENDOR_ATTR_ACS_HT40_ENABLED,
BRCM_VENDOR_ATTR_ACS_VHT_ENABLED,
BRCM_VENDOR_ATTR_ACS_CHWIDTH,
BRCM_VENDOR_ATTR_ACS_CH_LIST,
BRCM_VENDOR_ATTR_ACS_FREQ_LIST,
BRCM_VENDOR_ATTR_ACS_LAST
};
#endif /* BRCM_VENDOR_H */