• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2014 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef __VENDOR_DEFINITIONS_H__
18 #define __VENDOR_DEFINITIONS_H__
19 
20 #include "qca-vendor_copy.h"
21 
22 #define WIFI_SCANNING_MAC_OUI_LENGTH 3
23 #define WIFI_MAC_ADDR_LENGTH 6
24 
25 /*Internal to Android HAL component */
26 /* subcommands for link layer statistics start here */
27 #ifndef QCA_NL80211_VENDOR_SUBCMD_LL_STATS_SET
28 #define QCA_NL80211_VENDOR_SUBCMD_LL_STATS_SET 14
29 #define QCA_NL80211_VENDOR_SUBCMD_LL_STATS_GET 15
30 #define QCA_NL80211_VENDOR_SUBCMD_LL_STATS_CLR 16
31 /* subcommands for gscan start here */
32 #define QCA_NL80211_VENDOR_SUBCMD_GSCAN_START 20
33 #define QCA_NL80211_VENDOR_SUBCMD_GSCAN_STOP 21
34 #define QCA_NL80211_VENDOR_SUBCMD_GSCAN_GET_VALID_CHANNELS 22
35 #define QCA_NL80211_VENDOR_SUBCMD_GSCAN_GET_CAPABILITIES 23
36 #define QCA_NL80211_VENDOR_SUBCMD_GSCAN_GET_CACHED_RESULTS 24
37 /* Used when report_threshold is reached in scan cache. */
38 #define QCA_NL80211_VENDOR_SUBCMD_GSCAN_SCAN_RESULTS_AVAILABLE 25
39 /* Used to report scan results when each probe rsp. is received,
40  * if report_events enabled in wifi_scan_cmd_params.
41  */
42 #define QCA_NL80211_VENDOR_SUBCMD_GSCAN_FULL_SCAN_RESULT 26
43 /* Indicates progress of scanning state-machine. */
44 #define QCA_NL80211_VENDOR_SUBCMD_GSCAN_SCAN_EVENT 27
45 /* Indicates BSSID Hotlist. */
46 #define QCA_NL80211_VENDOR_SUBCMD_GSCAN_HOTLIST_AP_FOUND 28
47 #define QCA_NL80211_VENDOR_SUBCMD_GSCAN_SET_BSSID_HOTLIST 29
48 #define QCA_NL80211_VENDOR_SUBCMD_GSCAN_RESET_BSSID_HOTLIST 30
49 #define QCA_NL80211_VENDOR_SUBCMD_GSCAN_SIGNIFICANT_CHANGE 31
50 #define QCA_NL80211_VENDOR_SUBCMD_GSCAN_SET_SIGNIFICANT_CHANGE 32
51 #define QCA_NL80211_VENDOR_SUBCMD_GSCAN_RESET_SIGNIFICANT_CHANGE 33
52 /* TDLS Commands. */
53 #define QCA_NL80211_VENDOR_SUBCMD_TDLS_ENABLE 34
54 #define QCA_NL80211_VENDOR_SUBCMD_TDLS_DISABLE 35
55 #define QCA_NL80211_VENDOR_SUBCMD_TDLS_GET_STATUS 36
56 #define QCA_NL80211_VENDOR_SUBCMD_TDLS_STATE 37
57 /* Supported features. */
58 #define QCA_NL80211_VENDOR_SUBCMD_GET_SUPPORTED_FEATURES 38
59 /* set scanning_mac_oui */
60 #define QCA_NL80211_VENDOR_SUBCMD_SCANNING_MAC_OUI 39
61 /* Set nodfs_flag */
62 #define QCA_NL80211_VENDOR_SUBCMD_NO_DFS_FLAG 40
63 /* Indicates BSSID Hotlist AP lost. */
64 #define QCA_NL80211_VENDOR_SUBCMD_GSCAN_HOTLIST_AP_LOST 41
65 /* Get Concurrency Matrix */
66 #define QCA_NL80211_VENDOR_SUBCMD_GET_CONCURRENCY_MATRIX 42
67 /* Get Wifi Specific Info */
68 #define QCA_NL80211_VENDOR_SUBCMD_GET_WIFI_INFO 61
69 /* Start Wifi Logger */
70 #define QCA_NL80211_VENDOR_SUBCMD_WIFI_LOGGER_START 62
71 /* Start Wifi Memory Dump */
72 #define QCA_NL80211_VENDOR_SUBCMD_WIFI_LOGGER_MEMORY_DUMP 63
73 /* Roaming */
74 #define QCA_NL80211_VENDOR_SUBCMD_ROAM 64
75 
76 /* APIs corresponding to the sub commands 65-68 are deprecated.
77  * These sub commands are reserved and not supposed to be used
78  * for any other purpose
79  */
80 /* PNO */
81 #define QCA_NL80211_VENDOR_SUBCMD_PNO_SET_LIST 69
82 #define QCA_NL80211_VENDOR_SUBCMD_PNO_SET_PASSPOINT_LIST 70
83 #define QCA_NL80211_VENDOR_SUBCMD_PNO_RESET_PASSPOINT_LIST 71
84 #define QCA_NL80211_VENDOR_SUBCMD_PNO_NETWORK_FOUND 72
85 #define QCA_NL80211_VENDOR_SUBCMD_PNO_PASSPOINT_NETWORK_FOUND 73
86 /* Wi-Fi Configuration subcommands */
87 #define QCA_NL80211_VENDOR_SUBCMD_SET_WIFI_CONFIGURATION 74
88 #define QCA_NL80211_VENDOR_SUBCMD_GET_WIFI_CONFIGURATION 75
89 /* WiFiLogger Support feature set */
90 #define QCA_NL80211_VENDOR_SUBCMD_GET_LOGGER_FEATURE_SET 76
91 /* WiFiLogger Get Ring Data */
92 #define QCA_NL80211_VENDOR_SUBCMD_GET_RING_DATA 77
93 /* Get tdls capabilities */
94 #define QCA_NL80211_VENDOR_SUBCMD_TDLS_GET_CAPABILITIES 78
95 /* offloaded packets*/
96 #define QCA_NL80211_VENDOR_SUBCMD_OFFLOADED_PACKETS 79
97 /* RSSI monitoring*/
98 #define QCA_NL80211_VENDOR_SUBCMD_MONITOR_RSSI 80
99 /* Nan Data Path */
100 #define QCA_NL80211_VENDOR_SUBCMD_NDP 81
101 /* Neighbour Discovery offload */
102 #define QCA_NL80211_VENDOR_SUBCMD_ND_OFFLOAD 82
103 /* Set packet filter for BPF*/
104 #define QCA_NL80211_VENDOR_SUBCMD_PACKET_FILTER 83
105 /* Get Driver-firmware interface maximum supported size*/
106 #define QCA_NL80211_VENDOR_SUBCMD_GET_BUS_SIZE 84
107 /* Get wake reason stats */
108 #define QCA_NL80211_VENDOR_SUBCMD_GET_WAKE_REASON_STATS 85
109 #endif
110 
111 enum qca_wlan_vendor_attr_ll_stats_set
112 {
113     QCA_WLAN_VENDOR_ATTR_LL_STATS_SET_INVALID = 0,
114     /* Unsigned 32-bit value */
115     QCA_WLAN_VENDOR_ATTR_LL_STATS_SET_CONFIG_MPDU_SIZE_THRESHOLD = 1,
116     QCA_WLAN_VENDOR_ATTR_LL_STATS_SET_CONFIG_AGGRESSIVE_STATS_GATHERING,
117     /* keep last */
118     QCA_WLAN_VENDOR_ATTR_LL_STATS_SET_AFTER_LAST,
119     QCA_WLAN_VENDOR_ATTR_LL_STATS_SET_MAX =
120         QCA_WLAN_VENDOR_ATTR_LL_STATS_SET_AFTER_LAST - 1,
121 };
122 
123 enum qca_wlan_vendor_attr_ll_stats_clr
124 {
125     QCA_WLAN_VENDOR_ATTR_LL_STATS_CLR_INVALID = 0,
126     /* Unsigned 32bit bitmap  for clearing statistics
127      * All radio statistics                     0x00000001
128      * cca_busy_time (within radio statistics)  0x00000002
129      * All channel stats (within radio statistics) 0x00000004
130      * All scan statistics (within radio statistics) 0x00000008
131      * All interface statistics                     0x00000010
132      * All tx rate statistics (within interface statistics) 0x00000020
133      * All ac statistics (with in interface statistics) 0x00000040
134      * All contention (min, max, avg) statistics (within ac statisctics)
135      * 0x00000080.
136      */
137     QCA_WLAN_VENDOR_ATTR_LL_STATS_CLR_CONFIG_REQ_MASK,
138     /* Unsigned 8bit value : Request to stop statistics collection */
139     QCA_WLAN_VENDOR_ATTR_LL_STATS_CLR_CONFIG_STOP_REQ,
140 
141     /* Unsigned 32bit bitmap : Response from the driver
142      * for the cleared statistics
143      */
144     QCA_WLAN_VENDOR_ATTR_LL_STATS_CLR_CONFIG_RSP_MASK,
145     /* Unsigned 8bit value: Response from driver/firmware
146      * for the stop request
147      */
148     QCA_WLAN_VENDOR_ATTR_LL_STATS_CLR_CONFIG_STOP_RSP,
149     /* keep last */
150     QCA_WLAN_VENDOR_ATTR_LL_STATS_CLR_AFTER_LAST,
151     QCA_WLAN_VENDOR_ATTR_LL_STATS_CLR_MAX =
152         QCA_WLAN_VENDOR_ATTR_LL_STATS_CLR_AFTER_LAST - 1,
153 };
154 
155 enum qca_wlan_vendor_attr_ll_stats_get
156 {
157     QCA_WLAN_VENDOR_ATTR_LL_STATS_GET_INVALID = 0,
158     /* Unsigned 32bit value provided by the caller issuing the GET stats
159      * command. When reporting the stats results, the driver uses the same
160      * value to indicate which GET request the results correspond to.
161      */
162     QCA_WLAN_VENDOR_ATTR_LL_STATS_GET_CONFIG_REQ_ID,
163     /* Unsigned 32bit value - bit mask to identify what statistics are
164      * requested for retrieval.
165      * Radio Statistics 0x00000001
166      * Interface Statistics 0x00000020
167      * All Peer Statistics 0x00000040
168      * Peer Statistics     0x00000080
169      */
170     QCA_WLAN_VENDOR_ATTR_LL_STATS_GET_CONFIG_REQ_MASK,
171     /* keep last */
172     QCA_WLAN_VENDOR_ATTR_LL_STATS_GET_AFTER_LAST,
173     QCA_WLAN_VENDOR_ATTR_LL_STATS_GET_MAX =
174         QCA_WLAN_VENDOR_ATTR_LL_STATS_GET_AFTER_LAST - 1,
175 };
176 
177 enum qca_wlan_vendor_attr_ll_stats_results
178 {
179     QCA_WLAN_VENDOR_ATTR_LL_STATS_INVALID = 0,
180     /* Unsigned 32bit value. Used by the driver; must match the request id
181      * provided with the QCA_NL80211_VENDOR_SUBCMD_LL_STATS_GET command.
182      */
183     QCA_WLAN_VENDOR_ATTR_LL_STATS_RESULTS_REQ_ID,
184 
185     /* Unsigned 32bit value */
186     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_BEACON_RX,
187     /* Unsigned 32bit value */
188     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_MGMT_RX,
189     /* Unsigned 32bit value */
190     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_MGMT_ACTION_RX,
191     /* Unsigned 32bit value */
192     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_MGMT_ACTION_TX,
193     /* Signed 32bit value */
194     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_RSSI_MGMT,
195     /* Signed 32bit value */
196     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_RSSI_DATA,
197     /* Signed 32bit value */
198     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_RSSI_ACK,
199 
200     /* Attributes of type QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_* are
201      * nested within the interface stats.
202      */
203 
204     /* Interface mode, e.g., STA, SOFTAP, IBSS, etc.
205      * Type = enum wifi_interface_mode.
206      */
207     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_MODE,
208     /* Interface MAC address. An array of 6 Unsigned int8 */
209     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_MAC_ADDR,
210     /* Type = enum wifi_connection_state, e.g., DISCONNECTED,
211      * AUTHENTICATING, etc. valid for STA, CLI only.
212      */
213     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_STATE,
214     /* Type = enum wifi_roam_state. Roaming state, e.g., IDLE or ACTIVE
215      */
216     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_ROAMING,
217     /* Unsigned 32bit value. WIFI_CAPABILITY_XXX */
218     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_CAPABILITIES,
219     /* NULL terminated SSID. An array of 33 Unsigned 8bit values */
220     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_SSID,
221     /* BSSID. An array of 6 Unsigned 8bit values */
222     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_BSSID,
223     /* Country string advertised by AP. An array of 3 Unsigned 8bit
224      * values.
225      */
226     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_AP_COUNTRY_STR,
227     /* Country string for this association. An array of 3 Unsigned 8bit
228      * values.
229      */
230     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_COUNTRY_STR,
231 
232     /* Attributes of type QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_* could
233      * be nested within the interface stats.
234      */
235 
236     /* Type = enum wifi_traffic_ac, e.g., V0, VI, BE and BK */
237     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_AC,
238     /* Unsigned int 32 value corresponding to respective AC */
239     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_TX_MPDU,
240     /* Unsigned int 32 value corresponding to respective AC */
241     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_RX_MPDU,
242     /* Unsigned int 32 value corresponding to respective AC */
243     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_TX_MCAST,
244     /* Unsigned int 32 value corresponding to respective AC */
245     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_RX_MCAST,
246     /* Unsigned int 32 value corresponding to respective AC */
247     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_RX_AMPDU,
248     /* Unsigned int 32 value corresponding to respective AC */
249     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_TX_AMPDU,
250     /* Unsigned int 32 value corresponding to respective AC */
251     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_MPDU_LOST,
252     /* Unsigned int 32 value corresponding to respective AC */
253     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_RETRIES,
254     /* Unsigned int 32 value corresponding to respective AC  */
255     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_RETRIES_SHORT,
256     /* Unsigned int 32 values corresponding to respective AC */
257     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_RETRIES_LONG,
258     /* Unsigned int 32 values corresponding to respective AC */
259     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_CONTENTION_TIME_MIN,
260     /* Unsigned int 32 values corresponding to respective AC */
261     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_CONTENTION_TIME_MAX,
262     /* Unsigned int 32 values corresponding to respective AC */
263     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_CONTENTION_TIME_AVG,
264     /* Unsigned int 32 values corresponding to respective AC */
265     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_CONTENTION_NUM_SAMPLES,
266     /* Unsigned 32bit value. Number of peers */
267     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_NUM_PEERS,
268 
269     /* Attributes of type QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO_* are
270      * nested within the interface stats.
271      */
272 
273     /* Type = enum wifi_peer_type. Peer type, e.g., STA, AP, P2P GO etc. */
274     QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO_TYPE,
275     /* MAC addr corresponding to respective peer. An array of 6 Unsigned
276      * 8bit values.
277      */
278     QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO_MAC_ADDRESS,
279     /* Unsigned int 32bit value representing capabilities corresponding
280      * to respective peer.
281      */
282     QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO_CAPABILITIES,
283     /* Unsigned 32bit value. Number of rates */
284     QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO_NUM_RATES,
285 
286     /* Attributes of type QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_*
287      * are nested within the rate stat.
288      */
289 
290     /* Wi-Fi Rate - separate attributes defined for individual fields */
291 
292     /* Unsigned int 8bit value; 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved */
293     QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_PREAMBLE,
294     /* Unsigned int 8bit value; 0:1x1, 1:2x2, 3:3x3, 4:4x4 */
295     QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_NSS,
296     /* Unsigned int 8bit value; 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz */
297     QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_BW,
298     /* Unsigned int 8bit value; OFDM/CCK rate code would be as per IEEE Std
299      * in the units of 0.5mbps HT/VHT it would be mcs index */
300     QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_MCS_INDEX,
301 
302     /* Unsigned 32bit value. Bit rate in units of 100Kbps */
303     QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_BIT_RATE,
304 
305 
306     /* Attributes of type QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_STAT_* could be
307      * nested within the peer info stats.
308      */
309 
310     /* Unsigned int 32bit value. Number of successfully transmitted data pkts,
311      * i.e., with ACK received corresponding to the respective rate.
312      */
313     QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_TX_MPDU,
314     /* Unsigned int 32bit value. Number of received data pkts corresponding
315      *  to the respective rate.
316      */
317     QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_RX_MPDU,
318     /* Unsigned int 32bit value. Number of data pkts losses, i.e., no ACK
319      * received corresponding to *the respective rate.
320      */
321     QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_MPDU_LOST,
322     /* Unsigned int 32bit value. Total number of data pkt retries for the
323      * respective rate.
324      */
325     QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_RETRIES,
326     /* Unsigned int 32bit value. Total number of short data pkt retries
327      * for the respective rate.
328      */
329     QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_RETRIES_SHORT,
330     /* Unsigned int 32bit value. Total number of long data pkt retries
331      * for the respective rate.
332      */
333     QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_RETRIES_LONG,
334 
335 
336     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ID,
337     /* Unsigned 32bit value. Total number of msecs the radio is awake
338      * accruing over time.
339      */
340     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ON_TIME,
341     /* Unsigned 32bit value. Total number of msecs the radio is transmitting
342      * accruing over time.
343      */
344     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_TX_TIME,
345     /* Unsigned 32bit value. Total number of msecs the radio is in active
346      * receive accruing over time.
347      */
348     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_RX_TIME,
349     /* Unsigned 32bit value. Total number of msecs the radio is awake due
350      * to all scan accruing over time.
351      */
352     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ON_TIME_SCAN,
353     /* Unsigned 32bit value. Total number of msecs the radio is awake due
354      * to NAN accruing over time.
355      */
356     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ON_TIME_NBD,
357     /* Unsigned 32bit value. Total number of msecs the radio is awake due
358      * to GSCAN accruing over time.
359      */
360     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ON_TIME_GSCAN,
361     /* Unsigned 32bit value. Total number of msecs the radio is awake due
362      * to roam scan accruing over time.
363      */
364     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ON_TIME_ROAM_SCAN,
365     /* Unsigned 32bit value. Total number of msecs the radio is awake due
366      * to PNO scan accruing over time.
367      */
368     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ON_TIME_PNO_SCAN,
369     /* Unsigned 32bit value. Total number of msecs the radio is awake due
370      * to HS2.0 scans and GAS *exchange accruing over time.
371      */
372     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ON_TIME_HS20,
373     /* Unsigned 32bit value. Number of channels. */
374     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_NUM_CHANNELS,
375 
376     /* Attributes of type QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_INFO_* could
377      * be nested within the channel stats.
378      */
379 
380     /* Type = enum wifi_channel_width. Channel width, e.g., 20, 40, 80 */
381     QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_INFO_WIDTH,
382     /* Unsigned 32bit value. Primary 20MHz channel. */
383     QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_INFO_CENTER_FREQ,
384     /* Unsigned 32bit value. Center frequency (MHz) first segment. */
385     QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_INFO_CENTER_FREQ0,
386     /* Unsigned 32bit value. Center frequency (MHz) second segment. */
387     QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_INFO_CENTER_FREQ1,
388 
389     /* Attributes of type QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_* could be
390      * nested within the radio stats.
391      */
392 
393     /* Unsigned int 32bit value representing total number of msecs the radio
394      * is awake on that *channel accruing over time, corresponding to the
395      * respective channel.
396      */
397     QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_ON_TIME,
398     /* Unsigned int 32bit value representing total number of msecs the CCA
399      * register is busy accruing  *over time corresponding to the respective
400      * channel.
401      */
402     QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_CCA_BUSY_TIME,
403 
404     QCA_WLAN_VENDOR_ATTR_LL_STATS_NUM_RADIOS,
405 
406     /* Signifies the nested list of channel attributes
407      * QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_INFO_*
408      */
409     QCA_WLAN_VENDOR_ATTR_LL_STATS_CH_INFO,
410 
411     /* Signifies the nested list of peer info attributes
412      * QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO_*
413      */
414     QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO,
415 
416     /* Signifies the nested list of rate info attributes
417      * QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_*
418      */
419     QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO_RATE_INFO,
420 
421     /* Signifies the nested list of wmm info attributes
422      * QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_*
423      */
424     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_INFO,
425 
426     /* Unsigned 8bit value. Used by the driver; if set to 1, it indicates that
427      * more stats, e.g., peers or radio, are to follow in the next
428      * QCA_NL80211_VENDOR_SUBCMD_LL_STATS_*_RESULTS event.
429      * Otherwise, it is set to 0.
430      */
431     QCA_WLAN_VENDOR_ATTR_LL_STATS_RESULTS_MORE_DATA,
432 
433     /* Unsigned 64bit value */
434     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_AVERAGE_TSF_OFFSET,
435 
436     /* Unsigned 32bit value */
437     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_LEAKY_AP_DETECTED,
438 
439     /* Unsigned 32bit value */
440     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_LEAKY_AP_AVG_NUM_FRAMES_LEAKED,
441 
442     /* Unsigned 32bit value */
443     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_LEAKY_AP_GUARD_TIME,
444 
445     /* Unsigned 32bit value */
446     QCA_WLAN_VENDOR_ATTR_LL_STATS_TYPE,
447 
448     /* Unsigned 32bit value */
449     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_NUM_TX_LEVELS,
450 
451     /* Number of msecs the radio spent in transmitting for each power level */
452     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_TX_TIME_PER_LEVEL,
453 
454     /* keep last */
455     QCA_WLAN_VENDOR_ATTR_LL_STATS_AFTER_LAST,
456     QCA_WLAN_VENDOR_ATTR_LL_STATS_MAX = QCA_WLAN_VENDOR_ATTR_LL_STATS_AFTER_LAST - 1,
457 };
458 
459 enum qca_wlan_vendor_attr_ll_stats_type
460 {
461     QCA_NL80211_VENDOR_SUBCMD_LL_STATS_TYPE_INVALID = 0,
462     QCA_NL80211_VENDOR_SUBCMD_LL_STATS_TYPE_RADIO,
463     QCA_NL80211_VENDOR_SUBCMD_LL_STATS_TYPE_IFACE,
464     QCA_NL80211_VENDOR_SUBCMD_LL_STATS_TYPE_PEERS
465 };
466 
467 enum qca_wlan_vendor_attr_gscan_config_params
468 {
469     QCA_WLAN_VENDOR_ATTR_GSCAN_SUBCMD_CONFIG_PARAM_INVALID = 0,
470 
471     /* Unsigned 32-bit value; Middleware provides it to the driver. Middle ware
472      * either gets it from caller, e.g., framework, or generates one if
473      * framework doesn't provide it.
474      */
475     QCA_WLAN_VENDOR_ATTR_GSCAN_SUBCMD_CONFIG_PARAM_REQUEST_ID,
476 
477     /* NL attributes for data used by
478      * QCA_NL80211_VENDOR_SUBCMD_GSCAN_GET_VALID_CHANNELS sub command.
479      */
480     /* Unsigned 32-bit value */
481     QCA_WLAN_VENDOR_ATTR_GSCAN_GET_VALID_CHANNELS_CONFIG_PARAM_WIFI_BAND,
482     /* Unsigned 32-bit value */
483     QCA_WLAN_VENDOR_ATTR_GSCAN_GET_VALID_CHANNELS_CONFIG_PARAM_MAX_CHANNELS,
484 
485     /* NL attributes for input params used by
486      * QCA_NL80211_VENDOR_SUBCMD_GSCAN_START sub command.
487      */
488 
489     /* Unsigned 32-bit value; channel frequency */
490     QCA_WLAN_VENDOR_ATTR_GSCAN_CHANNEL_SPEC_CHANNEL,
491     /* Unsigned 32-bit value; dwell time in ms. */
492     QCA_WLAN_VENDOR_ATTR_GSCAN_CHANNEL_SPEC_DWELL_TIME,
493     /* Unsigned 8-bit value; 0: active; 1: passive; N/A for DFS */
494     QCA_WLAN_VENDOR_ATTR_GSCAN_CHANNEL_SPEC_PASSIVE,
495     /* Unsigned 8-bit value; channel class */
496     QCA_WLAN_VENDOR_ATTR_GSCAN_CHANNEL_SPEC_CLASS,
497 
498     /* Unsigned 8-bit value; bucket index, 0 based */
499     QCA_WLAN_VENDOR_ATTR_GSCAN_BUCKET_SPEC_INDEX,
500     /* Unsigned 8-bit value; band. */
501     QCA_WLAN_VENDOR_ATTR_GSCAN_BUCKET_SPEC_BAND,
502     /* Unsigned 32-bit value; desired period, in ms. */
503     QCA_WLAN_VENDOR_ATTR_GSCAN_BUCKET_SPEC_PERIOD,
504     /* Unsigned 8-bit value; report events semantics. */
505     QCA_WLAN_VENDOR_ATTR_GSCAN_BUCKET_SPEC_REPORT_EVENTS,
506     /* Unsigned 32-bit value. Followed by a nested array of GSCAN_CHANNEL_SPEC_*
507      * attributes.
508      */
509     QCA_WLAN_VENDOR_ATTR_GSCAN_BUCKET_SPEC_NUM_CHANNEL_SPECS,
510 
511     /* Array of QCA_WLAN_VENDOR_ATTR_GSCAN_CHANNEL_SPEC_* attributes.
512      * Array size: QCA_WLAN_VENDOR_ATTR_GSCAN_BUCKET_SPEC_NUM_CHANNEL_SPECS
513      */
514     QCA_WLAN_VENDOR_ATTR_GSCAN_CHANNEL_SPEC,
515 
516     /* Unsigned 32-bit value; base timer period in ms. */
517     QCA_WLAN_VENDOR_ATTR_GSCAN_SCAN_CMD_PARAMS_BASE_PERIOD,
518     /* Unsigned 32-bit value; number of APs to store in each scan in the
519      * BSSID/RSSI history buffer (keep the highest RSSI APs).
520      */
521     QCA_WLAN_VENDOR_ATTR_GSCAN_SCAN_CMD_PARAMS_MAX_AP_PER_SCAN,
522     /* Unsigned 8-bit value; in %, when scan buffer is this much full, wake up
523      * AP.
524      */
525     QCA_WLAN_VENDOR_ATTR_GSCAN_SCAN_CMD_PARAMS_REPORT_THRESHOLD_PERCENT,
526 
527     /* Unsigned 8-bit value; number of scan bucket specs; followed by a nested
528      * array of_GSCAN_BUCKET_SPEC_* attributes and values. The size of the
529      * array is determined by NUM_BUCKETS.
530      */
531     QCA_WLAN_VENDOR_ATTR_GSCAN_SCAN_CMD_PARAMS_NUM_BUCKETS,
532 
533     /* Array of QCA_WLAN_VENDOR_ATTR_GSCAN_BUCKET_SPEC_* attributes.
534      * Array size: QCA_WLAN_VENDOR_ATTR_GSCAN_SCAN_CMD_PARAMS_NUM_BUCKETS
535      */
536     QCA_WLAN_VENDOR_ATTR_GSCAN_BUCKET_SPEC,
537 
538     /* Unsigned 8-bit value */
539     QCA_WLAN_VENDOR_ATTR_GSCAN_GET_CACHED_SCAN_RESULTS_CONFIG_PARAM_FLUSH,
540     /* Unsigned 32-bit value; maximum number of results to be returned. */
541     QCA_WLAN_VENDOR_ATTR_GSCAN_GET_CACHED_SCAN_RESULTS_CONFIG_PARAM_MAX,
542 
543     /* An array of 6 x Unsigned 8-bit value */
544     QCA_WLAN_VENDOR_ATTR_GSCAN_AP_THRESHOLD_PARAM_BSSID,
545     /* Signed 32-bit value */
546     QCA_WLAN_VENDOR_ATTR_GSCAN_AP_THRESHOLD_PARAM_RSSI_LOW,
547     /* Signed 32-bit value */
548     QCA_WLAN_VENDOR_ATTR_GSCAN_AP_THRESHOLD_PARAM_RSSI_HIGH,
549     /* Unsigned 32-bit value */
550     QCA_WLAN_VENDOR_ATTR_GSCAN_AP_THRESHOLD_PARAM_CHANNEL,
551 
552 
553     /* Number of hotlist APs as unsigned 32-bit value, followed by a nested array of
554      * AP_THRESHOLD_PARAM attributes and values. The size of the array is
555      * determined by NUM_AP.
556      */
557     QCA_WLAN_VENDOR_ATTR_GSCAN_BSSID_HOTLIST_PARAMS_NUM_AP,
558 
559     /* Array of QCA_WLAN_VENDOR_ATTR_GSCAN_AP_THRESHOLD_PARAM_* attributes.
560      * Array size: QCA_WLAN_VENDOR_ATTR_GSCAN_BUCKET_SPEC_NUM_CHANNEL_SPECS
561      */
562     QCA_WLAN_VENDOR_ATTR_GSCAN_AP_THRESHOLD_PARAM,
563 
564     /* Unsigned 32bit value; number of samples for averaging RSSI. */
565     QCA_WLAN_VENDOR_ATTR_GSCAN_SIGNIFICANT_CHANGE_PARAMS_RSSI_SAMPLE_SIZE,
566     /* Unsigned 32bit value; number of samples to confirm AP loss. */
567     QCA_WLAN_VENDOR_ATTR_GSCAN_SIGNIFICANT_CHANGE_PARAMS_LOST_AP_SAMPLE_SIZE,
568     /* Unsigned 32bit value; number of APs breaching threshold. */
569     QCA_WLAN_VENDOR_ATTR_GSCAN_SIGNIFICANT_CHANGE_PARAMS_MIN_BREACHING,
570     /* Unsigned 32bit value; number of APs. Followed by an array of
571      * AP_THRESHOLD_PARAM attributes. Size of the array is NUM_AP.
572      */
573     QCA_WLAN_VENDOR_ATTR_GSCAN_SIGNIFICANT_CHANGE_PARAMS_NUM_AP,
574     /* Unsigned 32bit value; number of samples to confirm AP loss. */
575     QCA_WLAN_VENDOR_ATTR_GSCAN_BSSID_HOTLIST_PARAMS_LOST_AP_SAMPLE_SIZE,
576     /* Unsigned 32-bit value. If max_period is non zero or different than
577      * period, then this bucket is an exponential backoff bucket.
578      */
579     QCA_WLAN_VENDOR_ATTR_GSCAN_BUCKET_SPEC_MAX_PERIOD,
580     /* Unsigned 32-bit value. */
581     QCA_WLAN_VENDOR_ATTR_GSCAN_BUCKET_SPEC_BASE,
582     /* Unsigned 32-bit value. For exponential back off bucket, number of scans
583      * to perform for a given period.
584      */
585     QCA_WLAN_VENDOR_ATTR_GSCAN_BUCKET_SPEC_STEP_COUNT,
586     /* Unsigned 8-bit value; in number of scans, wake up AP after these
587      * many scans.
588      */
589     QCA_WLAN_VENDOR_ATTR_GSCAN_SCAN_CMD_PARAMS_REPORT_THRESHOLD_NUM_SCANS,
590 
591     /* NL attributes for data used by
592      * QCA_NL80211_VENDOR_SUBCMD_GSCAN_SET_SSID_HOTLIST sub command.
593      */
594     /* Unsigned 32bit value; number of samples to confirm SSID loss. */
595     QCA_WLAN_VENDOR_ATTR_GSCAN_SSID_HOTLIST_PARAMS_LOST_SSID_SAMPLE_SIZE,
596     /* Number of hotlist SSIDs as unsigned 32-bit value, followed by a nested
597      * array of SSID_THRESHOLD_PARAM_* attributes and values. The size of the
598      * array is determined by NUM_SSID.
599      */
600     QCA_WLAN_VENDOR_ATTR_GSCAN_SSID_HOTLIST_PARAMS_NUM_SSID,
601     /* Array of QCA_WLAN_VENDOR_ATTR_GSCAN_SSID_THRESHOLD_PARAM_* attributes.
602      * Array size: QCA_WLAN_VENDOR_ATTR_GSCAN_SSID_HOTLIST_PARAMS_NUM_SSID
603      */
604     QCA_WLAN_VENDOR_ATTR_GSCAN_SSID_THRESHOLD_PARAM,
605 
606     /* An array of 33 x Unsigned 8-bit value; NULL terminated SSID */
607     QCA_WLAN_VENDOR_ATTR_GSCAN_SSID_THRESHOLD_PARAM_SSID,
608     /* Unsigned 8-bit value */
609     QCA_WLAN_VENDOR_ATTR_GSCAN_SSID_THRESHOLD_PARAM_BAND,
610     /* Signed 32-bit value */
611     QCA_WLAN_VENDOR_ATTR_GSCAN_SSID_THRESHOLD_PARAM_RSSI_LOW,
612     /* Signed 32-bit value */
613     QCA_WLAN_VENDOR_ATTR_GSCAN_SSID_THRESHOLD_PARAM_RSSI_HIGH,
614     /* Unsigned 32-bit value; a bitmask w/additional gscan config flag. */
615     QCA_WLAN_VENDOR_ATTR_GSCAN_CONFIGURATION_FLAGS,
616 
617     /* keep last */
618     QCA_WLAN_VENDOR_ATTR_GSCAN_SUBCMD_CONFIG_PARAM_AFTER_LAST,
619     QCA_WLAN_VENDOR_ATTR_GSCAN_SUBCMD_CONFIG_PARAM_MAX =
620         QCA_WLAN_VENDOR_ATTR_GSCAN_SUBCMD_CONFIG_PARAM_AFTER_LAST - 1,
621 };
622 
623 enum qca_wlan_vendor_attr_gscan_results
624 {
625     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_INVALID = 0,
626 
627     /* Unsigned 32-bit value; must match the request Id supplied by Wi-Fi HAL
628      * in the corresponding subcmd NL msg
629      */
630     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_REQUEST_ID,
631 
632     /* Unsigned 32-bit value; used to indicate the status response from
633      * firmware/driver for the vendor sub-command.
634      */
635     QCA_WLAN_VENDOR_ATTR_GSCAN_STATUS,
636 
637     /* GSCAN Valid Channels attributes */
638     /* Unsigned 32bit value; followed by a nested array of CHANNELS.
639      */
640     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_NUM_CHANNELS,
641     /* An array of NUM_CHANNELS x Unsigned 32bit value integers representing
642      * channel numbers
643      */
644     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CHANNELS,
645 
646     /* GSCAN Capabilities attributes */
647     /* Unsigned 32bit value */
648     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CAPABILITIES_MAX_SCAN_CACHE_SIZE,
649     /* Unsigned 32bit value */
650     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CAPABILITIES_MAX_SCAN_BUCKETS,
651     /* Unsigned 32bit value */
652     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CAPABILITIES_MAX_AP_CACHE_PER_SCAN,
653     /* Unsigned 32bit value */
654     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CAPABILITIES_MAX_RSSI_SAMPLE_SIZE,
655     /* Signed 32bit value */
656     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CAPABILITIES_MAX_SCAN_REPORTING_THRESHOLD,
657     /* Unsigned 32bit value */
658     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CAPABILITIES_MAX_HOTLIST_BSSIDS,
659     /* Unsigned 32bit value */
660     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CAPABILITIES_MAX_SIGNIFICANT_WIFI_CHANGE_APS,
661     /* Unsigned 32bit value */
662     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CAPABILITIES_MAX_BSSID_HISTORY_ENTRIES,
663 
664     /* GSCAN Attributes used with
665      * QCA_NL80211_VENDOR_SUBCMD_GSCAN_SCAN_RESULTS_AVAILABLE sub-command.
666      */
667 
668     /* Unsigned 32-bit value */
669     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_NUM_RESULTS_AVAILABLE,
670 
671     /* GSCAN attributes used with
672      * QCA_NL80211_VENDOR_SUBCMD_GSCAN_FULL_SCAN_RESULT sub-command.
673      */
674 
675     /* An array of NUM_RESULTS_AVAILABLE x
676      * QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_*
677      */
678     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_LIST,
679 
680     /* Unsigned 64-bit value; age of sample at the time of retrieval */
681     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_TIME_STAMP,
682     /* 33 x unsiged 8-bit value; NULL terminated SSID */
683     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_SSID,
684     /* An array of 6 x Unsigned 8-bit value */
685     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_BSSID,
686     /* Unsigned 32-bit value; channel frequency in MHz */
687     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_CHANNEL,
688     /* Signed 32-bit value */
689     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_RSSI,
690     /* Unsigned 32-bit value */
691     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_RTT,
692     /* Unsigned 32-bit value */
693     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_RTT_SD,
694     /* Unsigned 16-bit value */
695     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_BEACON_PERIOD,
696     /* Unsigned 16-bit value */
697     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_CAPABILITY,
698     /* Unsigned 32-bit value; size of the IE DATA blob */
699     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_IE_LENGTH,
700     /* An array of IE_LENGTH x Unsigned 8-bit value; blob of all the
701      * information elements found in the beacon; this data should be a
702      * packed list of wifi_information_element objects, one after the
703      * other.
704      */
705     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_IE_DATA,
706 
707     /* Unsigned 8-bit value; set by driver to indicate more scan results are
708      * available.
709      */
710     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_MORE_DATA,
711 
712     /* GSCAN attributes for
713      * QCA_NL80211_VENDOR_SUBCMD_GSCAN_SCAN_EVENT sub-command.
714      */
715     /* Unsigned 8-bit value */
716     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_EVENT_TYPE,
717     /* Unsigned 32-bit value */
718     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_EVENT_STATUS,
719 
720     /* GSCAN attributes for
721      * QCA_NL80211_VENDOR_SUBCMD_GSCAN_HOTLIST_AP_FOUND sub-command.
722      */
723     /* Use attr QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_NUM_RESULTS_AVAILABLE
724      * to indicate number of results.
725      * Also, use QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_LIST to indicate the list
726      * of results.
727      */
728 
729     /* GSCAN attributes for
730      * QCA_NL80211_VENDOR_SUBCMD_GSCAN_SIGNIFICANT_CHANGE sub-command.
731      */
732     /* An array of 6 x Unsigned 8-bit value */
733     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SIGNIFICANT_CHANGE_RESULT_BSSID,
734     /* Unsigned 32-bit value */
735     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SIGNIFICANT_CHANGE_RESULT_CHANNEL,
736     /* Unsigned 32-bit value.
737      */
738     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SIGNIFICANT_CHANGE_RESULT_NUM_RSSI,
739     /* A nested array of signed 32-bit RSSI values. Size of the array is determined by
740      * (NUM_RSSI of SIGNIFICANT_CHANGE_RESULT_NUM_RSSI.
741      */
742     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SIGNIFICANT_CHANGE_RESULT_RSSI_LIST,
743 
744     /* GSCAN attributes used with
745      * QCA_NL80211_VENDOR_SUBCMD_GSCAN_GET_CACHED_RESULTS sub-command.
746      */
747     /* Use attr QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_NUM_RESULTS_AVAILABLE
748      * to indicate number of gscan cached results returned.
749      * Also, use QCA_WLAN_VENDOR_ATTR_GSCAN_CACHED_RESULTS_LIST to indicate
750      *  the list of gscan cached results.
751      */
752 
753     /* An array of NUM_RESULTS_AVAILABLE x
754      * QCA_NL80211_VENDOR_ATTR_GSCAN_CACHED_RESULTS_*
755      */
756     QCA_WLAN_VENDOR_ATTR_GSCAN_CACHED_RESULTS_LIST,
757     /* Unsigned 32-bit value; a unique identifier for the scan unit. */
758     QCA_WLAN_VENDOR_ATTR_GSCAN_CACHED_RESULTS_SCAN_ID,
759     /* Unsigned 32-bit value; a bitmask w/additional information about scan. */
760     QCA_WLAN_VENDOR_ATTR_GSCAN_CACHED_RESULTS_FLAGS,
761     /* Use attr QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_NUM_RESULTS_AVAILABLE
762      * to indicate number of wifi scan results/bssids retrieved by the scan.
763      * Also, use QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_LIST to indicate the list
764      * of wifi scan results returned for each cached result block.
765      */
766 
767     /* GSCAN attributes for
768      * QCA_NL80211_VENDOR_SUBCMD_PNO_NETWORK_FOUND sub-command.
769      */
770     /* Use QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_NUM_RESULTS_AVAILABLE for number
771      * of results.
772      * Use QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_LIST to indicate the nested
773      * list of wifi scan results returned for each wifi_passpoint_match_result block.
774      * Array size: QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_NUM_RESULTS_AVAILABLE.
775      */
776 
777     /* GSCAN attributes for
778      * QCA_NL80211_VENDOR_SUBCMD_PNO_PASSPOINT_NETWORK_FOUND sub-command.
779      */
780     /* Unsigned 32-bit value */
781     QCA_WLAN_VENDOR_ATTR_GSCAN_PNO_RESULTS_PASSPOINT_NETWORK_FOUND_NUM_MATCHES,
782     /* A nested array of
783      * QCA_WLAN_VENDOR_ATTR_GSCAN_PNO_RESULTS_PASSPOINT_MATCH_*
784      * attributes. Array size =
785      * *_ATTR_GSCAN_PNO_RESULTS_PASSPOINT_NETWORK_FOUND_NUM_MATCHES.
786      */
787     QCA_WLAN_VENDOR_ATTR_GSCAN_PNO_RESULTS_PASSPOINT_MATCH_RESULT_LIST,
788 
789     /* Unsigned 32-bit value; network block id for the matched network */
790     QCA_WLAN_VENDOR_ATTR_GSCAN_PNO_RESULTS_PASSPOINT_MATCH_ID,
791     /* Use QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_LIST to indicate the nested
792      * list of wifi scan results returned for each wifi_passpoint_match_result block.
793      */
794     /* Unsigned 32-bit value */
795     QCA_WLAN_VENDOR_ATTR_GSCAN_PNO_RESULTS_PASSPOINT_MATCH_ANQP_LEN,
796     /* An array size of PASSPOINT_MATCH_ANQP_LEN of unsigned 8-bit values;
797      * ANQP data in the information_element format.
798      */
799     QCA_WLAN_VENDOR_ATTR_GSCAN_PNO_RESULTS_PASSPOINT_MATCH_ANQP,
800 
801     /* Unsigned 32bit value; a GSCAN Capabilities attribute. */
802     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CAPABILITIES_MAX_HOTLIST_SSIDS,
803     /* Unsigned 32bit value; a GSCAN Capabilities attribute. */
804     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CAPABILITIES_MAX_NUM_EPNO_NETS,
805     /* Unsigned 32bit value; a GSCAN Capabilities attribute. */
806     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CAPABILITIES_MAX_NUM_EPNO_NETS_BY_SSID,
807     /* Unsigned 32bit value; a GSCAN Capabilities attribute. */
808     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CAPABILITIES_MAX_NUM_WHITELISTED_SSID,
809 
810     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_BUCKETS_SCANNED,
811     /* keep last */
812     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_AFTER_LAST,
813     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_MAX =
814         QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_AFTER_LAST - 1,
815 };
816 
817 enum qca_wlan_vendor_attr_tdls_enable
818 {
819     QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_INVALID = 0,
820     /* An array of 6 x Unsigned 8-bit value */
821     QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_MAC_ADDR,
822     QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_CHANNEL,
823     QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_GLOBAL_OPERATING_CLASS,
824     QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_MAX_LATENCY_MS,
825     QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_MIN_BANDWIDTH_KBPS,
826     /* keep last */
827     QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_AFTER_LAST,
828     QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_MAX =
829         QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_AFTER_LAST - 1,
830 };
831 
832 enum qca_wlan_vendor_attr_tdls_disable
833 {
834     QCA_WLAN_VENDOR_ATTR_TDLS_DISABLE_INVALID = 0,
835     /* An array of 6 x Unsigned 8-bit value */
836     QCA_WLAN_VENDOR_ATTR_TDLS_DISABLE_MAC_ADDR,
837     /* keep last */
838     QCA_WLAN_VENDOR_ATTR_TDLS_DISABLE_AFTER_LAST,
839     QCA_WLAN_VENDOR_ATTR_TDLS_DISABLE_MAX =
840         QCA_WLAN_VENDOR_ATTR_TDLS_DISABLE_AFTER_LAST - 1,
841 };
842 
843 enum qca_wlan_vendor_attr_tdls_get_status
844 {
845     QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_INVALID = 0,
846     /* An array of 6 x Unsigned 8-bit value */
847     QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_MAC_ADDR,
848     QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_STATE,
849     QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_REASON,
850     QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_CHANNEL,
851     QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_GLOBAL_OPERATING_CLASS,
852     /* keep last */
853     QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_AFTER_LAST,
854     QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_MAX =
855         QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_AFTER_LAST - 1,
856 };
857 
858 enum qca_wlan_vendor_attr_tdls_state
859 {
860     QCA_WLAN_VENDOR_ATTR_TDLS_STATE_INVALID = 0,
861     /* An array of 6 x Unsigned 8-bit value */
862     QCA_WLAN_VENDOR_ATTR_TDLS_MAC_ADDR,
863     QCA_WLAN_VENDOR_ATTR_TDLS_STATE,
864     QCA_WLAN_VENDOR_ATTR_TDLS_REASON,
865     QCA_WLAN_VENDOR_ATTR_TDLS_CHANNEL,
866     QCA_WLAN_VENDOR_ATTR_TDLS_GLOBAL_OPERATING_CLASS,
867     /* keep last */
868     QCA_WLAN_VENDOR_ATTR_TDLS_STATE_AFTER_LAST,
869     QCA_WLAN_VENDOR_ATTR_TDLS_STATE_MAX =
870         QCA_WLAN_VENDOR_ATTR_TDLS_STATE_AFTER_LAST - 1,
871 };
872 
873 enum qca_wlan_vendor_attr_tdls_get_capabilities
874 {
875     QCA_WLAN_VENDOR_ATTR_TDLS_GET_CAPS_INVALID = 0,
876 
877     QCA_WLAN_VENDOR_ATTR_TDLS_GET_CAPS_MAX_CONC_SESSIONS,
878     QCA_WLAN_VENDOR_ATTR_TDLS_GET_CAPS_FEATURES_SUPPORTED,
879 
880     /* keep last */
881     QCA_WLAN_VENDOR_ATTR_TDLS_GET_CAPS_AFTER_LAST,
882     QCA_WLAN_VENDOR_ATTR_TDLS_GET_CAPS_MAX =
883         QCA_WLAN_VENDOR_ATTR_TDLS_GET_CAPS_AFTER_LAST - 1,
884 };
885 
886 enum qca_wlan_vendor_attr_get_supported_features
887 {
888     QCA_WLAN_VENDOR_ATTR_FEATURE_SET_INVALID = 0,
889     /* Unsigned 32-bit value */
890     QCA_WLAN_VENDOR_ATTR_FEATURE_SET = 1,
891     /* keep last */
892     QCA_WLAN_VENDOR_ATTR_FEATURE_SET_AFTER_LAST,
893     QCA_WLAN_VENDOR_ATTR_FEATURE_SET_MAX =
894         QCA_WLAN_VENDOR_ATTR_FEATURE_SET_AFTER_LAST - 1,
895 };
896 
897 enum qca_wlan_vendor_attr_set_scanning_mac_oui
898 {
899     QCA_WLAN_VENDOR_ATTR_SET_SCANNING_MAC_OUI_INVALID = 0,
900     /* An array of 3 x Unsigned 8-bit value */
901     QCA_WLAN_VENDOR_ATTR_SET_SCANNING_MAC_OUI = 1,
902     /* keep last */
903     QCA_WLAN_VENDOR_ATTR_SET_SCANNING_MAC_OUI_AFTER_LAST,
904     QCA_WLAN_VENDOR_ATTR_SET_SCANNING_MAC_OUI_MAX =
905         QCA_WLAN_VENDOR_ATTR_SET_SCANNING_MAC_OUI_AFTER_LAST - 1,
906 };
907 
908 enum qca_wlan_vendor_attr_set_no_dfs_flag
909 {
910     QCA_WLAN_VENDOR_ATTR_SET_NO_DFS_FLAG_INVALID = 0,
911     /* Unsigned 32-bit value */
912     QCA_WLAN_VENDOR_ATTR_SET_NO_DFS_FLAG = 1,
913     /* keep last */
914     QCA_WLAN_VENDOR_ATTR_SET_NO_DFS_FLAG_AFTER_LAST,
915     QCA_WLAN_VENDOR_ATTR_SET_NO_DFS_FLAG_MAX =
916         QCA_WLAN_VENDOR_ATTR_SET_NO_DFS_FLAG_AFTER_LAST - 1,
917 };
918 
919 /* NL attributes for data used by
920  * QCA_NL80211_VENDOR_SUBCMD_GET_CONCURRENCY_MATRIX sub command.
921  */
922 enum qca_wlan_vendor_attr_get_concurrency_matrix
923 {
924     QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_INVALID = 0,
925     /* Unsigned 32-bit value */
926     QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_CONFIG_PARAM_SET_SIZE_MAX = 1,
927     /* Unsigned 32-bit value */
928     QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_RESULTS_SET_SIZE = 2,
929     /* An array of SET_SIZE x Unsigned 32bit values representing
930      * concurrency combinations.
931      */
932     QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_RESULTS_SET = 3,
933     /* keep last */
934     QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_AFTER_LAST,
935     QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_MAX =
936         QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_AFTER_LAST - 1,
937 };
938 
939 /* NL attributes for data used by
940  * QCA_NL80211_VENDOR_SUBCMD_SET|GET_WIFI_CONFIGURATION sub commands.
941  */
942 enum qca_wlan_vendor_attr_wifi_config {
943     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_INVALID = 0,
944     /* Unsigned 32-bit value */
945     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_DYNAMIC_DTIM = 1,
946     /* Unsigned 32-bit value */
947     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_STATS_AVG_FACTOR = 2,
948     /* Unsigned 32-bit value */
949     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_GUARD_TIME = 3,
950     /* Unsigned 32-bit value */
951     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_FINE_TIME_MEASUREMENT = 4,
952     /* Unsigned 32-bit value */
953     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_TX_RATE = 5,
954     /* Unsigned 32-bit value */
955     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_PENALIZE_AFTER_NCONS_BEACON_MISS = 6,
956     /* keep last */
957     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_AFTER_LAST,
958     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_MAX =
959         QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_AFTER_LAST - 1,
960 };
961 
962 enum qca_wlan_epno_type
963 {
964     QCA_WLAN_EPNO,
965     QCA_WLAN_PNO
966 };
967 
968 #define EPNO_NO_NETWORKS 0
969 
970 enum qca_wlan_vendor_attr_pno_config_params {
971     QCA_WLAN_VENDOR_ATTR_PNO_INVALID = 0,
972     /* NL attributes for data used by
973      * QCA_NL80211_VENDOR_SUBCMD_PNO_SET_PASSPOINT_LIST sub command.
974      */
975     /* Unsigned 32-bit value */
976     QCA_WLAN_VENDOR_ATTR_PNO_PASSPOINT_LIST_PARAM_NUM = 1,
977     /* Array of nested QCA_WLAN_VENDOR_ATTR_PNO_PASSPOINT_NETWORK_PARAM_*
978      * attributes. Array size =
979      * QCA_WLAN_VENDOR_ATTR_PNO_PASSPOINT_LIST_PARAM_NUM.
980      */
981     QCA_WLAN_VENDOR_ATTR_PNO_PASSPOINT_LIST_PARAM_NETWORK_ARRAY = 2,
982 
983     /* Unsigned 32-bit value */
984     QCA_WLAN_VENDOR_ATTR_PNO_PASSPOINT_NETWORK_PARAM_ID = 3,
985     /* An array of 256 x Unsigned 8-bit value; NULL terminated UTF8 encoded
986      * realm, 0 if unspecified.
987      */
988     QCA_WLAN_VENDOR_ATTR_PNO_PASSPOINT_NETWORK_PARAM_REALM = 4,
989     /* An array of 16 x Unsigned 32-bit value; roaming consortium ids to match,
990      * 0 if unspecified.
991      */
992     QCA_WLAN_VENDOR_ATTR_PNO_PASSPOINT_NETWORK_PARAM_ROAM_CNSRTM_ID = 5,
993     /* An array of 6 x Unsigned 8-bit value; mcc/mnc combination, 0s if
994     *  unspecified.
995     */
996     QCA_WLAN_VENDOR_ATTR_PNO_PASSPOINT_NETWORK_PARAM_ROAM_PLMN = 6,
997 
998 
999     /* NL attributes for data used by
1000      * QCA_NL80211_VENDOR_SUBCMD_PNO_SET_LIST sub command.
1001      */
1002     /* Unsigned 32-bit value */
1003     QCA_WLAN_VENDOR_ATTR_PNO_SET_LIST_PARAM_NUM_NETWORKS = 7,
1004     /* Array of nested
1005      * QCA_WLAN_VENDOR_ATTR_PNO_SET_LIST_PARAM_EPNO_NETWORK_*
1006      * attributes. Array size =
1007      *            QCA_WLAN_VENDOR_ATTR_PNO_SET_LIST_PARAM_NUM_NETWORKS.
1008      */
1009     QCA_WLAN_VENDOR_ATTR_PNO_SET_LIST_PARAM_EPNO_NETWORKS_LIST = 8,
1010     /* An array of 33 x Unsigned 8-bit value; NULL terminated SSID */
1011     QCA_WLAN_VENDOR_ATTR_PNO_SET_LIST_PARAM_EPNO_NETWORK_SSID = 9,
1012     /* Signed 8-bit value; threshold for considering this SSID as found,
1013      * required granularity for this threshold is 4dBm to 8dBm
1014      */
1015     QCA_WLAN_VENDOR_ATTR_PNO_SET_LIST_PARAM_EPNO_NETWORK_RSSI_THRESHOLD = 10,
1016     /* Unsigned 8-bit value; WIFI_PNO_FLAG_XXX */
1017     QCA_WLAN_VENDOR_ATTR_PNO_SET_LIST_PARAM_EPNO_NETWORK_FLAGS = 11,
1018     /* Unsigned 8-bit value; auth bit field for matching WPA IE */
1019     QCA_WLAN_VENDOR_ATTR_PNO_SET_LIST_PARAM_EPNO_NETWORK_AUTH_BIT = 12,
1020     /* Unsigned 8-bit to indicate ePNO type;
1021      * It takes values from qca_wlan_epno_type
1022      */
1023     QCA_WLAN_VENDOR_ATTR_PNO_SET_LIST_PARAM_EPNO_TYPE = 13,
1024 
1025     /* Nested attribute to send the channel list */
1026     QCA_WLAN_VENDOR_ATTR_PNO_SET_LIST_PARAM_EPNO_CHANNEL_LIST = 14,
1027 
1028     /* Unsigned 32-bit value; indicates the Interval between PNO scan
1029      * cycles in msec
1030      */
1031     QCA_WLAN_VENDOR_ATTR_PNO_SET_LIST_PARAM_EPNO_SCAN_INTERVAL = 15,
1032     QCA_WLAN_VENDOR_ATTR_EPNO_MIN5GHZ_RSSI = 16,
1033     QCA_WLAN_VENDOR_ATTR_EPNO_MIN24GHZ_RSSI = 17,
1034     QCA_WLAN_VENDOR_ATTR_EPNO_INITIAL_SCORE_MAX = 18,
1035     QCA_WLAN_VENDOR_ATTR_EPNO_CURRENT_CONNECTION_BONUS = 19,
1036     QCA_WLAN_VENDOR_ATTR_EPNO_SAME_NETWORK_BONUS = 20,
1037     QCA_WLAN_VENDOR_ATTR_EPNO_SECURE_BONUS = 21,
1038     QCA_WLAN_VENDOR_ATTR_EPNO_BAND5GHZ_BONUS = 22,
1039 
1040     /* keep last */
1041     QCA_WLAN_VENDOR_ATTR_PNO_AFTER_LAST,
1042     QCA_WLAN_VENDOR_ATTR_PNO_MAX =
1043         QCA_WLAN_VENDOR_ATTR_PNO_AFTER_LAST - 1,
1044 };
1045 
1046 enum qca_wlan_vendor_attr_roaming_config_params {
1047     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_INVALID = 0,
1048 
1049     QCA_WLAN_VENDOR_ATTR_ROAMING_SUBCMD = 1,
1050     QCA_WLAN_VENDOR_ATTR_ROAMING_REQ_ID = 2,
1051 
1052     /* Attributes for wifi_set_ssid_white_list */
1053     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_WHITE_LIST_SSID_NUM_NETWORKS = 3,
1054     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_WHITE_LIST_SSID_LIST = 4,
1055     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_WHITE_LIST_SSID = 5,
1056 
1057     /* Attributes for set_roam_params */
1058     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_A_BAND_BOOST_THRESHOLD = 6,
1059     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_A_BAND_PENALTY_THRESHOLD = 7,
1060     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_A_BAND_BOOST_FACTOR = 8,
1061     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_A_BAND_PENALTY_FACTOR = 9,
1062     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_A_BAND_MAX_BOOST = 10,
1063     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_LAZY_ROAM_HISTERESYS = 11,
1064     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_ALERT_ROAM_RSSI_TRIGGER = 12,
1065 
1066     /* Attribute for set_lazy_roam*/
1067     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_LAZY_ROAM_ENABLE = 13,
1068 
1069     /* Attribute for set_lazy_roam with preferences*/
1070     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_BSSID_PREFS = 14,
1071     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_LAZY_ROAM_NUM_BSSID = 15,
1072     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_LAZY_ROAM_BSSID = 16,
1073     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_LAZY_ROAM_RSSI_MODIFIER = 17,
1074 
1075     /* Attribute for set_ blacklist bssid params */
1076     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_BSSID_PARAMS = 18,
1077     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_BSSID_PARAMS_NUM_BSSID = 19,
1078     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_BSSID_PARAMS_BSSID = 20,
1079 
1080     /* keep last */
1081     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_AFTER_LAST,
1082     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_MAX =
1083         QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_AFTER_LAST - 1,
1084 };
1085 
1086 /*
1087  * QCA_NL80211_VENDOR_SUBCMD_ROAM sub commands.
1088  */
1089 enum qca_wlan_vendor_attr_roam_subcmd
1090 {
1091    QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_INVALID = 0,
1092    QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_SSID_WHITE_LIST = 1,
1093    QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_SET_GSCAN_ROAM_PARAMS = 2,
1094    QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_SET_LAZY_ROAM = 3,
1095    QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_SET_BSSID_PREFS = 4,
1096    QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_SET_BSSID_PARAMS = 5,
1097    QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_SET_BLACKLIST_BSSID = 6,
1098 
1099    /* KEEP LAST */
1100    QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_AFTER_LAST,
1101    QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_MAX =
1102         QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_AFTER_LAST - 1,
1103 };
1104 
1105 /* NL attributes for data used by
1106  * QCA_NL80211_VENDOR_SUBCMD_GET_WIFI_INFO sub command.
1107  */
1108 enum qca_wlan_vendor_attr_get_wifi_info {
1109     QCA_WLAN_VENDOR_ATTR_WIFI_INFO_GET_INVALID = 0,
1110     QCA_WLAN_VENDOR_ATTR_WIFI_INFO_DRIVER_VERSION     = 1,
1111     QCA_WLAN_VENDOR_ATTR_WIFI_INFO_FIRMWARE_VERSION   = 2,
1112     /* keep last */
1113     QCA_WLAN_VENDOR_ATTR_WIFI_INFO_GET_AFTER_LAST,
1114     QCA_WLAN_VENDOR_ATTR_WIFI_INFO_GET_MAX  =
1115            QCA_WLAN_VENDOR_ATTR_WIFI_INFO_GET_AFTER_LAST - 1,
1116 };
1117 /* NL attributes for data used by
1118  * QCA_NL80211_VENDOR_SUBCMD_WIFI_LOGGER_START sub command.
1119  */
1120 enum qca_wlan_vendor_attr_wifi_logger_start {
1121     QCA_WLAN_VENDOR_ATTR_WIFI_LOGGER_START_INVALID = 0,
1122     QCA_WLAN_VENDOR_ATTR_WIFI_LOGGER_RING_ID = 1,
1123     QCA_WLAN_VENDOR_ATTR_WIFI_LOGGER_VERBOSE_LEVEL = 2,
1124     QCA_WLAN_VENDOR_ATTR_WIFI_LOGGER_FLAGS = 3,
1125     /* keep last */
1126     QCA_WLAN_VENDOR_ATTR_WIFI_LOGGER_START_AFTER_LAST,
1127     QCA_WLAN_VENDOR_ATTR_WIFI_LOGGER_START_GET_MAX  =
1128         QCA_WLAN_VENDOR_ATTR_WIFI_LOGGER_START_AFTER_LAST - 1,
1129 };
1130 
1131 enum qca_wlan_vendor_attr_logger_results
1132 {
1133     QCA_WLAN_VENDOR_ATTR_LOGGER_RESULTS_INVALID = 0,
1134 
1135     /* Unsigned 32-bit value; must match the request Id supplied by Wi-Fi HAL
1136      * in the corresponding subcmd NL msg
1137      */
1138     QCA_WLAN_VENDOR_ATTR_LOGGER_RESULTS_REQUEST_ID,
1139 
1140     /* Unsigned 32-bit value; used to indicate the size of memory
1141        dump to be allocated.
1142      */
1143     QCA_WLAN_VENDOR_ATTR_LOGGER_RESULTS_MEMDUMP_SIZE,
1144 
1145     /* keep last */
1146     QCA_WLAN_VENDOR_ATTR_LOGGER_RESULTS_AFTER_LAST,
1147     QCA_WLAN_VENDOR_ATTR_LOGGER_RESULTS_MAX =
1148         QCA_WLAN_VENDOR_ATTR_LOGGER_RESULTS_AFTER_LAST - 1,
1149 
1150 };
1151 
1152 enum qca_wlan_offloaded_packets_sending_control
1153 {
1154     QCA_WLAN_OFFLOADED_PACKETS_SENDING_CONTROL_INVALID = 0,
1155     QCA_WLAN_OFFLOADED_PACKETS_SENDING_START,
1156     QCA_WLAN_OFFLOADED_PACKETS_SENDING_STOP
1157 };
1158 
1159 enum qca_wlan_vendor_attr_offloaded_packets
1160 {
1161     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_INVALID = 0,
1162 
1163     /* Takes valid value from the enum
1164      * qca_wlan_offloaded_packets_sending_control
1165      */
1166     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_SENDING_CONTROL,
1167 
1168     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_REQUEST_ID,
1169 
1170     /* Packet in hex format */
1171     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_IP_PACKET,
1172     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_SRC_MAC_ADDR,
1173     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_DST_MAC_ADDR,
1174     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_PERIOD,
1175 
1176     /* keep last */
1177     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_AFTER_LAST,
1178     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_MAX =
1179         QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_AFTER_LAST - 1,
1180 
1181 };
1182 
1183 enum qca_wlan_rssi_monitoring_control
1184 {
1185     QCA_WLAN_RSSI_MONITORING_CONTROL_INVALID = 0,
1186     QCA_WLAN_RSSI_MONITORING_START,
1187     QCA_WLAN_RSSI_MONITORING_STOP,
1188 };
1189 
1190 enum qca_wlan_vendor_attr_rssi_monitoring
1191 {
1192     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_INVALID = 0,
1193 
1194     /* Takes valid value from the enum
1195      * qca_wlan_rssi_monitoring_control
1196      */
1197     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_CONTROL,
1198 
1199     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_REQUEST_ID,
1200 
1201     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_MAX_RSSI,
1202     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_MIN_RSSI,
1203 
1204     /* attributes to be used/received in callback */
1205     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_CUR_BSSID,
1206     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_CUR_RSSI,
1207 
1208     /* keep last */
1209     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_AFTER_LAST,
1210     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_MAX =
1211         QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_AFTER_LAST - 1,
1212 
1213 };
1214 
1215 enum qca_wlan_vendor_attr_ndp_params
1216 {
1217     QCA_WLAN_VENDOR_ATTR_NDP_PARAM_INVALID = 0,
1218     /* enum of sub commands */
1219     QCA_WLAN_VENDOR_ATTR_NDP_SUBCMD,
1220     /* Unsigned 16-bit value */
1221     QCA_WLAN_VENDOR_ATTR_NDP_TRANSACTION_ID,
1222     /* NL attributes for data used NDP SUB cmds */
1223     /* Unsigned 16-bit value indicating a service info */
1224     QCA_WLAN_VENDOR_ATTR_NDP_SERVICE_INSTANCE_ID,
1225     /* Unsigned 32-bit value; channel frequency */
1226     QCA_WLAN_VENDOR_ATTR_NDP_CHANNEL_SPEC_CHANNEL,
1227     /* Interface Discovery MAC address. An array of 6 Unsigned int8 */
1228     QCA_WLAN_VENDOR_ATTR_NDP_PEER_DISCOVERY_MAC_ADDR,
1229     /* Interface name on which NDP is being created */
1230     QCA_WLAN_VENDOR_ATTR_NDP_IFACE_STR,
1231     /* Unsigned 32-bit value for security */
1232     QCA_WLAN_VENDOR_ATTR_NDP_CONFIG_SECURITY,
1233     /* Unsigned 32-bit value for Qos */
1234     QCA_WLAN_VENDOR_ATTR_NDP_CONFIG_QOS,
1235     /* Unsigned 16-bit value for app info length */
1236     QCA_WLAN_VENDOR_ATTR_NDP_APP_INFO_LEN,
1237     /* Array of u8: len = QCA_WLAN_VENDOR_ATTR_NAN_DP_APP_INFO_LEN */
1238     QCA_WLAN_VENDOR_ATTR_NDP_APP_INFO,
1239     /* Unsigned 32-bit value for NDP instance Id */
1240     QCA_WLAN_VENDOR_ATTR_NDP_INSTANCE_ID,
1241     /* Unsigned 32-bit value for schedule update response code accept/reject */
1242     QCA_WLAN_VENDOR_ATTR_NDP_SCHEDULE_RESPONSE_CODE,
1243     /* Unsigned 32-bit value for schedule status success/fail */
1244     QCA_WLAN_VENDOR_ATTR_NDP_SCHEDULE_STATUS_CODE,
1245     /* NDI MAC address. An array of 6 Unsigned int8 */
1246     QCA_WLAN_VENDOR_ATTR_NDP_NDI_MAC_ADDR,
1247 
1248    /* KEEP LAST */
1249    QCA_WLAN_VENDOR_ATTR_NDP_AFTER_LAST,
1250    QCA_WLAN_VENDOR_ATTR_NDP_MAX =
1251         QCA_WLAN_VENDOR_ATTR_NDP_AFTER_LAST - 1,
1252 };
1253 
1254 enum qca_wlan_vendor_attr_ndp_cfg_security
1255 {
1256    /* Security info will be added when proposed in the specification */
1257    QCA_WLAN_VENDOR_ATTR_NDP_SECURITY_TYPE = 1,
1258 
1259 };
1260 
1261 enum qca_wlan_vendor_attr_ndp_qos
1262 {
1263    /* Qos info will be added when proposed in the specification */
1264    QCA_WLAN_VENDOR_ATTR_NDP_QOS_CONFIG = 1,
1265 
1266 };
1267 
1268 /*
1269  * QCA_NL80211_VENDOR_SUBCMD_NDP sub commands.
1270  */
1271 enum qca_wlan_vendor_attr_ndp_sub_cmd_value
1272 {
1273    QCA_WLAN_VENDOR_ATTR_NDP_INTERFACE_CREATE = 1,
1274    QCA_WLAN_VENDOR_ATTR_NDP_INTERFACE_DELETE = 2,
1275    QCA_WLAN_VENDOR_ATTR_NDP_INITIATOR_REQUEST = 3,
1276    QCA_WLAN_VENDOR_ATTR_NDP_INITIATOR_RESPONSE = 4,
1277    QCA_WLAN_VENDOR_ATTR_NDP_RESPONDER_REQUEST = 5,
1278    QCA_WLAN_VENDOR_ATTR_NDP_RESPONDER_RESPONSE = 6,
1279    QCA_WLAN_VENDOR_ATTR_NDP_END_REQUEST = 7,
1280    QCA_WLAN_VENDOR_ATTR_NDP_END_RESPONSE = 8,
1281    QCA_WLAN_VENDOR_ATTR_NDP_SCHEDULE_UPDATE_REQUEST = 9,
1282    QCA_WLAN_VENDOR_ATTR_NDP_SCHEDULE_UPDATE_RESPONSE = 10,
1283    QCA_WLAN_VENDOR_ATTR_NDP_DATA_REQUEST_IND = 11,
1284    QCA_WLAN_VENDOR_ATTR_NDP_CONFIRM_IND = 12,
1285    QCA_WLAN_VENDOR_ATTR_NDP_SCHEDULE_UPDATE_IND = 13,
1286    QCA_WLAN_VENDOR_ATTR_NDP_END_IND = 14
1287 };
1288 
1289 #define PACKET_FILTER_ID 0
1290 
1291 enum packet_filter_sub_cmd
1292 {
1293     QCA_WLAN_SET_PACKET_FILTER = 1,
1294     QCA_WLAN_GET_PACKET_FILTER_SIZE = 2,
1295 };
1296 
1297 enum qca_wlan_vendor_attr_packet_filter
1298 {
1299     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_INVALID = 0,
1300 
1301     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_SUB_CMD,
1302     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_VERSION,
1303     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_ID,
1304     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_TOTAL_LENGTH,
1305     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_CURRENT_OFFSET,
1306     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_PROGRAM,
1307 
1308     /* keep last */
1309     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_AFTER_LAST,
1310     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_MAX =
1311         QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_AFTER_LAST - 1,
1312 
1313 };
1314 
1315 enum qca_wlan_vendor_attr_nd_offload
1316 {
1317     QCA_WLAN_VENDOR_ATTR_ND_OFFLOAD_INVALID = 0,
1318 
1319     QCA_WLAN_VENDOR_ATTR_ND_OFFLOAD_FLAG,
1320 
1321     /* keep last */
1322     QCA_WLAN_VENDOR_ATTR_ND_OFFLOAD_AFTER_LAST,
1323     QCA_WLAN_VENDOR_ATTR_ND_OFFLOAD_MAX =
1324         QCA_WLAN_VENDOR_ATTR_ND_OFFLOAD_AFTER_LAST - 1,
1325 
1326 };
1327 
1328 enum qca_wlan_vendor_drv_info
1329 {
1330     QCA_WLAN_VENDOR_ATTR_DRV_INFO_INVALID = 0,
1331 
1332     QCA_WLAN_VENDOR_ATTR_DRV_INFO_BUS_SIZE,
1333 
1334     /* keep last */
1335     QCA_WLAN_VENDOR_ATTR_DRV_INFO_AFTER_LAST,
1336     QCA_WLAN_VENDOR_ATTR_DRV_INFO_MAX =
1337         QCA_WLAN_VENDOR_ATTR_DRV_INFO_AFTER_LAST - 1,
1338 
1339 };
1340 
1341 /* NL attributes for data used by
1342  * QCA_NL80211_VENDOR_SUBCMD_GET_WAKE_REASON_STATS  sub command.
1343  */
1344 enum qca_wlan_vendor_attr_wake_stats
1345 {
1346     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_INVALID = 0,
1347     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_TOTAL_CMD_EVENT_WAKE,
1348     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_CMD_EVENT_WAKE_CNT_PTR,
1349     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_CMD_EVENT_WAKE_CNT_SZ,
1350     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_TOTAL_DRIVER_FW_LOCAL_WAKE,
1351     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_DRIVER_FW_LOCAL_WAKE_CNT_PTR,
1352     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_DRIVER_FW_LOCAL_WAKE_CNT_SZ,
1353     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_TOTAL_RX_DATA_WAKE,
1354     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_RX_UNICAST_CNT,
1355     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_RX_MULTICAST_CNT,
1356     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_RX_BROADCAST_CNT,
1357     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_ICMP_PKT,
1358     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_ICMP6_PKT,
1359     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_ICMP6_RA,
1360     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_ICMP6_NA,
1361     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_ICMP6_NS,
1362     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_ICMP4_RX_MULTICAST_CNT,
1363     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_ICMP6_RX_MULTICAST_CNT,
1364     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_OTHER_RX_MULTICAST_CNT,
1365     /* keep last */
1366     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_AFTER_LAST,
1367     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_MAX =
1368         QCA_WLAN_VENDOR_ATTR_WAKE_STATS_AFTER_LAST - 1,
1369 };
1370 #endif
1371