xref: /freebsd/contrib/wpa/src/common/brcm_vendor.h (revision a90b9d0159070121c221b966469c3e36d912bf82)
1c1d255d3SCy Schubert /*
2c1d255d3SCy Schubert  * Broadcom Corporation OUI and vendor specific assignments
3c1d255d3SCy Schubert  * Copyright (c) 2020, Broadcom Corporation.
4c1d255d3SCy Schubert  *
5c1d255d3SCy Schubert  * This software may be distributed under the terms of the BSD license.
6c1d255d3SCy Schubert  * See README for more details.
7c1d255d3SCy Schubert  */
8c1d255d3SCy Schubert 
9c1d255d3SCy Schubert #ifndef BRCM_VENDOR_H
10c1d255d3SCy Schubert #define BRCM_VENDOR_H
11c1d255d3SCy Schubert 
12c1d255d3SCy Schubert /*
13c1d255d3SCy Schubert  * This file is a registry of identifier assignments from the Broadcom
14c1d255d3SCy Schubert  * OUI 00:10:18 for purposes other than MAC address assignment. New identifiers
15c1d255d3SCy Schubert  * can be assigned through normal review process for changes to the upstream
16c1d255d3SCy Schubert  * hostap.git repository.
17c1d255d3SCy Schubert  */
18c1d255d3SCy Schubert 
19c1d255d3SCy Schubert #define OUI_BRCM    0x001018
20c1d255d3SCy Schubert 
21c1d255d3SCy Schubert /**
22c1d255d3SCy Schubert  * enum brcm_nl80211_vendor_subcmds - BRCM nl80211 vendor command identifiers
23c1d255d3SCy Schubert  *
24c1d255d3SCy Schubert  * @BRCM_VENDOR_SCMD_UNSPEC: Reserved value 0
25c1d255d3SCy Schubert  *
26c1d255d3SCy Schubert  * @BRCM_VENDOR_SCMD_PRIV_STR: Provide vendor private cmds to send to FW.
27c1d255d3SCy Schubert  *
28c1d255d3SCy Schubert  * @BRCM_VENDOR_SCMD_BCM_STR:  Provide vendor cmds to BCMDHD driver.
29c1d255d3SCy Schubert  *
30c1d255d3SCy Schubert  * @BRCM_VENDOR_SCMD_BCM_PSK: Used to set SAE password.
31c1d255d3SCy Schubert  *
32c1d255d3SCy Schubert  * @BRCM_VENDOR_SCMD_SET_PMK: Command to check driver support
33c1d255d3SCy Schubert  *	for DFS offloading.
34c1d255d3SCy Schubert  *
35c1d255d3SCy Schubert  * @BRCM_VENDOR_SCMD_GET_FEATURES: Command to get the features
36c1d255d3SCy Schubert  *      supported by the driver.
37c1d255d3SCy Schubert  *
38c1d255d3SCy Schubert  * @BRCM_VENDOR_SCMD_SET_MAC: Set random mac address for P2P interface.
39c1d255d3SCy Schubert  *
40c1d255d3SCy Schubert  * @BRCM_VENDOR_SCMD_SET_CONNECT_PARAMS: Set some connect parameters.
41c1d255d3SCy Schubert  *      Used for the case that FW handle SAE.
42c1d255d3SCy Schubert  *
43*a90b9d01SCy Schubert  * @BRCM_VENDOR_SCMD_SET_START_AP_PARAMS: Set SoftAP parameters.
44c1d255d3SCy Schubert  *      Used for the case that FW handle SAE.
45c1d255d3SCy Schubert  *
46c1d255d3SCy Schubert  * @BRCM_VENDOR_SCMD_ACS: ACS command/event which is used to
47c1d255d3SCy Schubert  *	invoke the ACS function in device and pass selected channels to
48c1d255d3SCy Schubert  *	hostapd. Uses enum qca_wlan_vendor_attr_acs_offload attributes.
49c1d255d3SCy Schubert  *
50*a90b9d01SCy Schubert  * @BRCM_VENDOR_SCMD_MAX: This acts as a tail of cmds list.
51*a90b9d01SCy Schubert  *      Make sure it is located at the end of the list.
52c1d255d3SCy Schubert  *
53c1d255d3SCy Schubert  */
54c1d255d3SCy Schubert enum brcm_nl80211_vendor_subcmds {
55c1d255d3SCy Schubert 	BRCM_VENDOR_SCMD_UNSPEC			= 0,
56c1d255d3SCy Schubert 	BRCM_VENDOR_SCMD_PRIV_STR		= 1,
57c1d255d3SCy Schubert 	BRCM_VENDOR_SCMD_BCM_STR		= 2,
58c1d255d3SCy Schubert 	BRCM_VENDOR_SCMD_BCM_PSK		= 3,
59c1d255d3SCy Schubert 	BRCM_VENDOR_SCMD_SET_PMK		= 4,
60c1d255d3SCy Schubert 	BRCM_VENDOR_SCMD_GET_FEATURES		= 5,
61c1d255d3SCy Schubert 	BRCM_VENDOR_SCMD_SET_MAC		= 6,
62c1d255d3SCy Schubert 	BRCM_VENDOR_SCMD_SET_CONNECT_PARAMS	= 7,
63c1d255d3SCy Schubert 	BRCM_VENDOR_SCMD_SET_START_AP_PARAMS	= 8,
64c1d255d3SCy Schubert 	BRCM_VENDOR_SCMD_ACS			= 9,
65c1d255d3SCy Schubert 	BRCM_VENDOR_SCMD_MAX			= 10
66c1d255d3SCy Schubert };
67c1d255d3SCy Schubert 
68c1d255d3SCy Schubert /**
69*a90b9d01SCy Schubert  * enum brcm_nl80211_vendor_events - BRCM nl80211 asynchronous event identifiers
70c1d255d3SCy Schubert  *
71c1d255d3SCy Schubert  * @BRCM_VENDOR_EVENT_UNSPEC: Reserved value 0
72c1d255d3SCy Schubert  *
73c1d255d3SCy Schubert  * @BRCM_VENDOR_EVENT_PRIV_STR: String command/event
74c1d255d3SCy Schubert  */
75c1d255d3SCy Schubert enum brcm_nl80211_vendor_events {
76c1d255d3SCy Schubert 	BRCM_VENDOR_EVENT_UNSPEC		= 0,
77c1d255d3SCy Schubert 	BRCM_VENDOR_EVENT_PRIV_STR		= 1,
78c1d255d3SCy Schubert 	GOOGLE_GSCAN_SIGNIFICANT_EVENT		= 2,
79c1d255d3SCy Schubert 	GOOGLE_GSCAN_GEOFENCE_FOUND_EVENT	= 3,
80c1d255d3SCy Schubert 	GOOGLE_GSCAN_BATCH_SCAN_EVENT		= 4,
81c1d255d3SCy Schubert 	GOOGLE_SCAN_FULL_RESULTS_EVENT		= 5,
82c1d255d3SCy Schubert 	GOOGLE_RTT_COMPLETE_EVENT		= 6,
83c1d255d3SCy Schubert 	GOOGLE_SCAN_COMPLETE_EVENT		= 7,
84c1d255d3SCy Schubert 	GOOGLE_GSCAN_GEOFENCE_LOST_EVENT	= 8,
85c1d255d3SCy Schubert 	GOOGLE_SCAN_EPNO_EVENT			= 9,
86c1d255d3SCy Schubert 	GOOGLE_DEBUG_RING_EVENT			= 10,
87c1d255d3SCy Schubert 	GOOGLE_FW_DUMP_EVENT			= 11,
88c1d255d3SCy Schubert 	GOOGLE_PNO_HOTSPOT_FOUND_EVENT		= 12,
89c1d255d3SCy Schubert 	GOOGLE_RSSI_MONITOR_EVENT		= 13,
90c1d255d3SCy Schubert 	GOOGLE_MKEEP_ALIVE_EVENT		= 14,
91c1d255d3SCy Schubert 
92c1d255d3SCy Schubert 	/*
93c1d255d3SCy Schubert 	 * BRCM specific events should be placed after
94c1d255d3SCy Schubert 	 * the Generic events so that enums don't mismatch
95c1d255d3SCy Schubert 	 * between the DHD and HAL
96c1d255d3SCy Schubert 	 */
97c1d255d3SCy Schubert 	GOOGLE_NAN_EVENT_ENABLED		= 15,
98c1d255d3SCy Schubert 	GOOGLE_NAN_EVENT_DISABLED		= 16,
99c1d255d3SCy Schubert 	GOOGLE_NAN_EVENT_SUBSCRIBE_MATCH	= 17,
100c1d255d3SCy Schubert 	GOOGLE_NAN_EVENT_REPLIED		= 18,
101c1d255d3SCy Schubert 	GOOGLE_NAN_EVENT_PUBLISH_TERMINATED	= 19,
102c1d255d3SCy Schubert 	GOOGLE_NAN_EVENT_SUBSCRIBE_TERMINATED	= 20,
103c1d255d3SCy Schubert 	GOOGLE_NAN_EVENT_DE_EVENT		= 21,
104c1d255d3SCy Schubert 	GOOGLE_NAN_EVENT_FOLLOWUP		= 22,
105c1d255d3SCy Schubert 	GOOGLE_NAN_EVENT_TRANSMIT_FOLLOWUP_IND	= 23,
106c1d255d3SCy Schubert 	GOOGLE_NAN_EVENT_DATA_REQUEST		= 24,
107c1d255d3SCy Schubert 	GOOGLE_NAN_EVENT_DATA_CONFIRMATION	= 25,
108c1d255d3SCy Schubert 	GOOGLE_NAN_EVENT_DATA_END		= 26,
109c1d255d3SCy Schubert 	GOOGLE_NAN_EVENT_BEACON			= 27,
110c1d255d3SCy Schubert 	GOOGLE_NAN_EVENT_SDF			= 28,
111c1d255d3SCy Schubert 	GOOGLE_NAN_EVENT_TCA			= 29,
112c1d255d3SCy Schubert 	GOOGLE_NAN_EVENT_SUBSCRIBE_UNMATCH	= 30,
113c1d255d3SCy Schubert 	GOOGLE_NAN_EVENT_UNKNOWN		= 31,
114c1d255d3SCy Schubert 	GOOGLE_ROAM_EVENT_START			= 32,
115c1d255d3SCy Schubert 	BRCM_VENDOR_EVENT_HANGED                = 33,
116c1d255d3SCy Schubert 	BRCM_VENDOR_EVENT_SAE_KEY               = 34,
117c1d255d3SCy Schubert 	BRCM_VENDOR_EVENT_BEACON_RECV           = 35,
118c1d255d3SCy Schubert 	BRCM_VENDOR_EVENT_PORT_AUTHORIZED       = 36,
119c1d255d3SCy Schubert 	GOOGLE_FILE_DUMP_EVENT			= 37,
120c1d255d3SCy Schubert 	BRCM_VENDOR_EVENT_CU			= 38,
121c1d255d3SCy Schubert 	BRCM_VENDOR_EVENT_WIPS			= 39,
122c1d255d3SCy Schubert 	NAN_ASYNC_RESPONSE_DISABLED		= 40,
123c1d255d3SCy Schubert 	BRCM_VENDOR_EVENT_RCC_INFO		= 41,
124c1d255d3SCy Schubert 	BRCM_VENDOR_EVENT_ACS			= 42,
125c1d255d3SCy Schubert 	BRCM_VENDOR_EVENT_LAST
126c1d255d3SCy Schubert 
127c1d255d3SCy Schubert };
128c1d255d3SCy Schubert 
129c1d255d3SCy Schubert #ifdef CONFIG_BRCM_SAE
130c1d255d3SCy Schubert enum wifi_sae_key_attr {
131c1d255d3SCy Schubert 	BRCM_SAE_KEY_ATTR_BSSID,
132c1d255d3SCy Schubert 	BRCM_SAE_KEY_ATTR_PMK,
133c1d255d3SCy Schubert 	BRCM_SAE_KEY_ATTR_PMKID
134c1d255d3SCy Schubert };
135c1d255d3SCy Schubert #endif /* CONFIG_BRCM_SAE */
136c1d255d3SCy Schubert 
137c1d255d3SCy Schubert enum wl_vendor_attr_acs_offload {
138c1d255d3SCy Schubert 	BRCM_VENDOR_ATTR_ACS_CHANNEL_INVALID = 0,
139c1d255d3SCy Schubert 	BRCM_VENDOR_ATTR_ACS_PRIMARY_FREQ,
140c1d255d3SCy Schubert 	BRCM_VENDOR_ATTR_ACS_SECONDARY_FREQ,
141c1d255d3SCy Schubert 	BRCM_VENDOR_ATTR_ACS_VHT_SEG0_CENTER_CHANNEL,
142c1d255d3SCy Schubert 	BRCM_VENDOR_ATTR_ACS_VHT_SEG1_CENTER_CHANNEL,
143c1d255d3SCy Schubert 
144c1d255d3SCy Schubert 	BRCM_VENDOR_ATTR_ACS_HW_MODE,
145c1d255d3SCy Schubert 	BRCM_VENDOR_ATTR_ACS_HT_ENABLED,
146c1d255d3SCy Schubert 	BRCM_VENDOR_ATTR_ACS_HT40_ENABLED,
147c1d255d3SCy Schubert 	BRCM_VENDOR_ATTR_ACS_VHT_ENABLED,
148c1d255d3SCy Schubert 	BRCM_VENDOR_ATTR_ACS_CHWIDTH,
149c1d255d3SCy Schubert 	BRCM_VENDOR_ATTR_ACS_CH_LIST,
150c1d255d3SCy Schubert 	BRCM_VENDOR_ATTR_ACS_FREQ_LIST,
151c1d255d3SCy Schubert 
152c1d255d3SCy Schubert 	BRCM_VENDOR_ATTR_ACS_LAST
153c1d255d3SCy Schubert };
154c1d255d3SCy Schubert 
155c1d255d3SCy Schubert 
156c1d255d3SCy Schubert #endif /* BRCM_VENDOR_H */
157