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 /* Radio Mode change */
110 #define QCA_NL80211_VENDOR_SUBCMD_WLAN_MAC_MODE 165
111 #endif
112 
113 enum qca_wlan_vendor_attr_tdls_enable
114 {
115     QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_INVALID = 0,
116     /* An array of 6 x Unsigned 8-bit value */
117     QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_MAC_ADDR,
118     QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_CHANNEL,
119     QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_GLOBAL_OPERATING_CLASS,
120     QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_MAX_LATENCY_MS,
121     QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_MIN_BANDWIDTH_KBPS,
122     /* keep last */
123     QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_AFTER_LAST,
124     QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_MAX =
125         QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_AFTER_LAST - 1,
126 };
127 
128 enum qca_wlan_vendor_attr_tdls_disable
129 {
130     QCA_WLAN_VENDOR_ATTR_TDLS_DISABLE_INVALID = 0,
131     /* An array of 6 x Unsigned 8-bit value */
132     QCA_WLAN_VENDOR_ATTR_TDLS_DISABLE_MAC_ADDR,
133     /* keep last */
134     QCA_WLAN_VENDOR_ATTR_TDLS_DISABLE_AFTER_LAST,
135     QCA_WLAN_VENDOR_ATTR_TDLS_DISABLE_MAX =
136         QCA_WLAN_VENDOR_ATTR_TDLS_DISABLE_AFTER_LAST - 1,
137 };
138 
139 enum qca_wlan_vendor_attr_tdls_get_status
140 {
141     QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_INVALID = 0,
142     /* An array of 6 x Unsigned 8-bit value */
143     QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_MAC_ADDR,
144     QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_STATE,
145     QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_REASON,
146     QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_CHANNEL,
147     QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_GLOBAL_OPERATING_CLASS,
148     /* keep last */
149     QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_AFTER_LAST,
150     QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_MAX =
151         QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_AFTER_LAST - 1,
152 };
153 
154 enum qca_wlan_vendor_attr_tdls_state
155 {
156     QCA_WLAN_VENDOR_ATTR_TDLS_STATE_INVALID = 0,
157     /* An array of 6 x Unsigned 8-bit value */
158     QCA_WLAN_VENDOR_ATTR_TDLS_MAC_ADDR,
159     QCA_WLAN_VENDOR_ATTR_TDLS_STATE,
160     QCA_WLAN_VENDOR_ATTR_TDLS_REASON,
161     QCA_WLAN_VENDOR_ATTR_TDLS_CHANNEL,
162     QCA_WLAN_VENDOR_ATTR_TDLS_GLOBAL_OPERATING_CLASS,
163     /* keep last */
164     QCA_WLAN_VENDOR_ATTR_TDLS_STATE_AFTER_LAST,
165     QCA_WLAN_VENDOR_ATTR_TDLS_STATE_MAX =
166         QCA_WLAN_VENDOR_ATTR_TDLS_STATE_AFTER_LAST - 1,
167 };
168 
169 enum qca_wlan_vendor_attr_tdls_get_capabilities
170 {
171     QCA_WLAN_VENDOR_ATTR_TDLS_GET_CAPS_INVALID = 0,
172 
173     QCA_WLAN_VENDOR_ATTR_TDLS_GET_CAPS_MAX_CONC_SESSIONS,
174     QCA_WLAN_VENDOR_ATTR_TDLS_GET_CAPS_FEATURES_SUPPORTED,
175 
176     /* keep last */
177     QCA_WLAN_VENDOR_ATTR_TDLS_GET_CAPS_AFTER_LAST,
178     QCA_WLAN_VENDOR_ATTR_TDLS_GET_CAPS_MAX =
179         QCA_WLAN_VENDOR_ATTR_TDLS_GET_CAPS_AFTER_LAST - 1,
180 };
181 
182 enum qca_wlan_vendor_attr_get_supported_features
183 {
184     QCA_WLAN_VENDOR_ATTR_FEATURE_SET_INVALID = 0,
185     /* Unsigned 32-bit value */
186     QCA_WLAN_VENDOR_ATTR_FEATURE_SET = 1,
187     /* keep last */
188     QCA_WLAN_VENDOR_ATTR_FEATURE_SET_AFTER_LAST,
189     QCA_WLAN_VENDOR_ATTR_FEATURE_SET_MAX =
190         QCA_WLAN_VENDOR_ATTR_FEATURE_SET_AFTER_LAST - 1,
191 };
192 
193 enum qca_wlan_vendor_attr_set_scanning_mac_oui
194 {
195     QCA_WLAN_VENDOR_ATTR_SET_SCANNING_MAC_OUI_INVALID = 0,
196     /* An array of 3 x Unsigned 8-bit value */
197     QCA_WLAN_VENDOR_ATTR_SET_SCANNING_MAC_OUI = 1,
198     /* keep last */
199     QCA_WLAN_VENDOR_ATTR_SET_SCANNING_MAC_OUI_AFTER_LAST,
200     QCA_WLAN_VENDOR_ATTR_SET_SCANNING_MAC_OUI_MAX =
201         QCA_WLAN_VENDOR_ATTR_SET_SCANNING_MAC_OUI_AFTER_LAST - 1,
202 };
203 
204 enum qca_wlan_vendor_attr_set_no_dfs_flag
205 {
206     QCA_WLAN_VENDOR_ATTR_SET_NO_DFS_FLAG_INVALID = 0,
207     /* Unsigned 32-bit value */
208     QCA_WLAN_VENDOR_ATTR_SET_NO_DFS_FLAG = 1,
209     /* keep last */
210     QCA_WLAN_VENDOR_ATTR_SET_NO_DFS_FLAG_AFTER_LAST,
211     QCA_WLAN_VENDOR_ATTR_SET_NO_DFS_FLAG_MAX =
212         QCA_WLAN_VENDOR_ATTR_SET_NO_DFS_FLAG_AFTER_LAST - 1,
213 };
214 
215 /* NL attributes for data used by
216  * QCA_NL80211_VENDOR_SUBCMD_GET_CONCURRENCY_MATRIX sub command.
217  */
218 enum qca_wlan_vendor_attr_get_concurrency_matrix
219 {
220     QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_INVALID = 0,
221     /* Unsigned 32-bit value */
222     QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_CONFIG_PARAM_SET_SIZE_MAX = 1,
223     /* Unsigned 32-bit value */
224     QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_RESULTS_SET_SIZE = 2,
225     /* An array of SET_SIZE x Unsigned 32bit values representing
226      * concurrency combinations.
227      */
228     QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_RESULTS_SET = 3,
229     /* keep last */
230     QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_AFTER_LAST,
231     QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_MAX =
232         QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_AFTER_LAST - 1,
233 };
234 
235 /* NL attributes for data used by
236  * QCA_NL80211_VENDOR_SUBCMD_SET|GET_WIFI_CONFIGURATION sub commands.
237  */
238 enum qca_wlan_vendor_attr_wifi_config {
239     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_INVALID = 0,
240     /* Unsigned 32-bit value */
241     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_DYNAMIC_DTIM = 1,
242     /* Unsigned 32-bit value */
243     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_STATS_AVG_FACTOR = 2,
244     /* Unsigned 32-bit value */
245     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_GUARD_TIME = 3,
246     /* Unsigned 32-bit value */
247     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_FINE_TIME_MEASUREMENT = 4,
248     /* Unsigned 32-bit value */
249     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_TX_RATE = 5,
250     /* Unsigned 32-bit value */
251     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_PENALIZE_AFTER_NCONS_BEACON_MISS = 6,
252     /* keep last */
253     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_AFTER_LAST,
254     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_MAX =
255         QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_AFTER_LAST - 1,
256 };
257 
258 enum qca_wlan_epno_type
259 {
260     QCA_WLAN_EPNO,
261     QCA_WLAN_PNO
262 };
263 
264 #define EPNO_NO_NETWORKS 0
265 
266 enum qca_wlan_offloaded_packets_sending_control
267 {
268     QCA_WLAN_OFFLOADED_PACKETS_SENDING_CONTROL_INVALID = 0,
269     QCA_WLAN_OFFLOADED_PACKETS_SENDING_START,
270     QCA_WLAN_OFFLOADED_PACKETS_SENDING_STOP
271 };
272 
273 enum qca_wlan_vendor_attr_offloaded_packets
274 {
275     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_INVALID = 0,
276 
277     /* Takes valid value from the enum
278      * qca_wlan_offloaded_packets_sending_control
279      */
280     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_SENDING_CONTROL,
281 
282     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_REQUEST_ID,
283 
284     /* Packet in hex format */
285     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_IP_PACKET,
286     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_SRC_MAC_ADDR,
287     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_DST_MAC_ADDR,
288     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_PERIOD,
289 
290     /* keep last */
291     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_AFTER_LAST,
292     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_MAX =
293         QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_AFTER_LAST - 1,
294 
295 };
296 
297 enum qca_wlan_rssi_monitoring_control
298 {
299     QCA_WLAN_RSSI_MONITORING_CONTROL_INVALID = 0,
300     QCA_WLAN_RSSI_MONITORING_START,
301     QCA_WLAN_RSSI_MONITORING_STOP,
302 };
303 
304 enum qca_wlan_vendor_attr_rssi_monitoring
305 {
306     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_INVALID = 0,
307 
308     /* Takes valid value from the enum
309      * qca_wlan_rssi_monitoring_control
310      */
311     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_CONTROL,
312 
313     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_REQUEST_ID,
314 
315     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_MAX_RSSI,
316     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_MIN_RSSI,
317 
318     /* attributes to be used/received in callback */
319     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_CUR_BSSID,
320     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_CUR_RSSI,
321 
322     /* keep last */
323     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_AFTER_LAST,
324     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_MAX =
325         QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_AFTER_LAST - 1,
326 
327 };
328 
329 enum qca_wlan_vendor_attr_ndp_params
330 {
331     QCA_WLAN_VENDOR_ATTR_NDP_PARAM_INVALID = 0,
332     /* enum of sub commands */
333     QCA_WLAN_VENDOR_ATTR_NDP_SUBCMD,
334     /* Unsigned 16-bit value */
335     QCA_WLAN_VENDOR_ATTR_NDP_TRANSACTION_ID,
336     /* NL attributes for data used NDP SUB cmds */
337     /* Unsigned 32-bit value indicating a service info */
338     QCA_WLAN_VENDOR_ATTR_NDP_SERVICE_INSTANCE_ID,
339     /* Unsigned 32-bit value; channel frequency */
340     QCA_WLAN_VENDOR_ATTR_NDP_CHANNEL,
341     /* Interface Discovery MAC address. An array of 6 Unsigned int8 */
342     QCA_WLAN_VENDOR_ATTR_NDP_PEER_DISCOVERY_MAC_ADDR,
343     /* Interface name on which NDP is being created */
344     QCA_WLAN_VENDOR_ATTR_NDP_IFACE_STR,
345     /* Unsigned 32-bit value for security */
346     QCA_WLAN_VENDOR_ATTR_NDP_CONFIG_SECURITY,
347     /* Unsigned 32-bit value for Qos */
348     QCA_WLAN_VENDOR_ATTR_NDP_CONFIG_QOS,
349     /* Array of u8: len = QCA_WLAN_VENDOR_ATTR_NAN_DP_APP_INFO_LEN */
350     QCA_WLAN_VENDOR_ATTR_NDP_APP_INFO,
351     /* Unsigned 32-bit value for NDP instance Id */
352     QCA_WLAN_VENDOR_ATTR_NDP_INSTANCE_ID,
353     /* Array of instance Ids */
354     QCA_WLAN_VENDOR_ATTR_NDP_INSTANCE_ID_ARRAY,
355     /* Unsigned 32-bit value for initiator/responder ndp response code accept/reject */
356     QCA_WLAN_VENDOR_ATTR_NDP_RESPONSE_CODE,
357     /* NDI MAC address. An array of 6 Unsigned int8 */
358     QCA_WLAN_VENDOR_ATTR_NDP_NDI_MAC_ADDR,
359     /* Unsigned 32-bit value errors types returned by driver */
360     QCA_WLAN_VENDOR_ATTR_NDP_DRV_RESPONSE_STATUS_TYPE,
361     /* Unsigned 32-bit value error values returned by driver */
362     QCA_WLAN_VENDOR_ATTR_NDP_DRV_RETURN_VALUE,
363     /* Unsigned 32-bit value for Channel setup configuration */
364     QCA_WLAN_VENDOR_ATTR_NDP_CHANNEL_CONFIG,
365     /* Unsigned 32-bit value for Cipher Suite Shared Key Type */
366     QCA_WLAN_VENDOR_ATTR_NDP_CSID,
367     /* Array of u8: len = NAN_PMK_INFO_LEN */
368     QCA_WLAN_VENDOR_ATTR_NDP_PMK,
369     QCA_WLAN_VENDOR_ATTR_NDP_SCID,
370     /* Array of u8: len = NAN_SECURITY_MAX_PASSPHRASE_LEN*/
371     QCA_WLAN_VENDOR_ATTR_NDP_PASSPHRASE,
372     /* Array of u8: len = NAN_MAX_SERVICE_NAME_LEN */
373     QCA_WLAN_VENDOR_ATTR_NDP_SERVICE_NAME,
374     /* Unsigned 32-bit value indicating schedule update */
375     QCA_WLAN_VENDOR_ATTR_NDP_SCHEDULE_UPDATE_REASON,
376     /* Unsigned 32-bit value for NSS */
377     QCA_WLAN_VENDOR_ATTR_NDP_NSS,
378     /* Unsigned 32-bit value for NUMBER NDP CHANNEL */
379     QCA_WLAN_VENDOR_ATTR_NDP_NUM_CHANNELS,
380     /* Unsigned 32-bit value for CHANNEL BANDWIDTH */
381     QCA_WLAN_VENDOR_ATTR_NDP_CHANNEL_WIDTH,
382 
383     /* Array of channel/band width */
384     QCA_WLAN_VENDOR_ATTR_NDP_CHANNEL_INFO,
385 
386     /* KEEP LAST */
387     QCA_WLAN_VENDOR_ATTR_NDP_AFTER_LAST,
388     QCA_WLAN_VENDOR_ATTR_NDP_MAX =
389         QCA_WLAN_VENDOR_ATTR_NDP_AFTER_LAST - 1,
390 };
391 
392 enum qca_wlan_vendor_attr_ndp_cfg_security
393 {
394    /* Security info will be added when proposed in the specification */
395    QCA_WLAN_VENDOR_ATTR_NDP_SECURITY_TYPE = 1,
396 
397 };
398 
399 enum qca_wlan_vendor_attr_ndp_qos
400 {
401    /* Qos info will be added when proposed in the specification */
402    QCA_WLAN_VENDOR_ATTR_NDP_QOS_CONFIG = 1,
403 
404 };
405 
406 /*
407  * QCA_NL80211_VENDOR_SUBCMD_NDP sub commands.
408  */
409 enum qca_wlan_vendor_attr_ndp_sub_cmd_value
410 {
411    QCA_WLAN_VENDOR_ATTR_NDP_INTERFACE_CREATE = 1,
412    QCA_WLAN_VENDOR_ATTR_NDP_INTERFACE_DELETE = 2,
413    QCA_WLAN_VENDOR_ATTR_NDP_INITIATOR_REQUEST = 3,
414    QCA_WLAN_VENDOR_ATTR_NDP_INITIATOR_RESPONSE = 4,
415    QCA_WLAN_VENDOR_ATTR_NDP_RESPONDER_REQUEST = 5,
416    QCA_WLAN_VENDOR_ATTR_NDP_RESPONDER_RESPONSE = 6,
417    QCA_WLAN_VENDOR_ATTR_NDP_END_REQUEST = 7,
418    QCA_WLAN_VENDOR_ATTR_NDP_END_RESPONSE = 8,
419    QCA_WLAN_VENDOR_ATTR_NDP_DATA_REQUEST_IND = 9,
420    QCA_WLAN_VENDOR_ATTR_NDP_CONFIRM_IND = 10,
421    QCA_WLAN_VENDOR_ATTR_NDP_END_IND = 11,
422    QCA_WLAN_VENDOR_ATTR_NDP_SCHEDULE_UPDATE_IND = 12
423 };
424 
425 #define PACKET_FILTER_ID 0
426 
427 enum packet_filter_sub_cmd
428 {
429     QCA_WLAN_SET_PACKET_FILTER = 1,
430     QCA_WLAN_GET_PACKET_FILTER_SIZE = 2,
431     /* For writing packet filter program + data */
432     QCA_WLAN_WRITE_PACKET_FILTER = 3,
433     /* For reading packet filter data */
434     QCA_WLAN_READ_PACKET_FILTER = 4,
435     /* Enable APF faeature */
436     QCA_WLAN_ENABLE_PACKET_FILTER = 5,
437     /* Disable APF faeature */
438     QCA_WLAN_DISABLE_PACKET_FILTER = 6,
439 };
440 
441 enum qca_wlan_vendor_attr_packet_filter
442 {
443     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_INVALID = 0,
444 
445     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_SUB_CMD,
446     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_VERSION,
447     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_ID,
448     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_TOTAL_LENGTH,
449     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_CURRENT_OFFSET,
450     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_PROGRAM,
451     /* The length of the program in the write buffer,
452      * the write buffer may have program+data
453      */
454     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_PROG_LENGTH,
455 
456     /* keep last */
457     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_AFTER_LAST,
458     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_MAX =
459         QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_AFTER_LAST - 1,
460 
461 };
462 
463 enum qca_wlan_vendor_attr_nd_offload
464 {
465     QCA_WLAN_VENDOR_ATTR_ND_OFFLOAD_INVALID = 0,
466 
467     QCA_WLAN_VENDOR_ATTR_ND_OFFLOAD_FLAG,
468 
469     /* keep last */
470     QCA_WLAN_VENDOR_ATTR_ND_OFFLOAD_AFTER_LAST,
471     QCA_WLAN_VENDOR_ATTR_ND_OFFLOAD_MAX =
472         QCA_WLAN_VENDOR_ATTR_ND_OFFLOAD_AFTER_LAST - 1,
473 
474 };
475 
476 enum qca_wlan_vendor_drv_info
477 {
478     QCA_WLAN_VENDOR_ATTR_DRV_INFO_INVALID = 0,
479 
480     QCA_WLAN_VENDOR_ATTR_DRV_INFO_BUS_SIZE,
481 
482     /* keep last */
483     QCA_WLAN_VENDOR_ATTR_DRV_INFO_AFTER_LAST,
484     QCA_WLAN_VENDOR_ATTR_DRV_INFO_MAX =
485         QCA_WLAN_VENDOR_ATTR_DRV_INFO_AFTER_LAST - 1,
486 
487 };
488 
489 /* NL attributes for data used by
490  * QCA_NL80211_VENDOR_SUBCMD_GET_WAKE_REASON_STATS  sub command.
491  */
492 enum qca_wlan_vendor_attr_wake_stats
493 {
494     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_INVALID = 0,
495     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_TOTAL_CMD_EVENT_WAKE,
496     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_CMD_EVENT_WAKE_CNT_PTR,
497     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_CMD_EVENT_WAKE_CNT_SZ,
498     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_TOTAL_DRIVER_FW_LOCAL_WAKE,
499     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_DRIVER_FW_LOCAL_WAKE_CNT_PTR,
500     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_DRIVER_FW_LOCAL_WAKE_CNT_SZ,
501     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_TOTAL_RX_DATA_WAKE,
502     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_RX_UNICAST_CNT,
503     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_RX_MULTICAST_CNT,
504     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_RX_BROADCAST_CNT,
505     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_ICMP_PKT,
506     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_ICMP6_PKT,
507     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_ICMP6_RA,
508     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_ICMP6_NA,
509     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_ICMP6_NS,
510     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_ICMP4_RX_MULTICAST_CNT,
511     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_ICMP6_RX_MULTICAST_CNT,
512     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_OTHER_RX_MULTICAST_CNT,
513     /* keep last */
514     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_AFTER_LAST,
515     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_MAX =
516         QCA_WLAN_VENDOR_ATTR_WAKE_STATS_AFTER_LAST - 1,
517 };
518 
519 /**
520  * enum qca_wlan_vendor_attr_mac - Used by the vendor command
521  * QCA_NL80211_VENDOR_SUBCMD_WLAN_MAC_INFO.
522  */
523 enum qca_wlan_vendor_attr_mac {
524     QCA_WLAN_VENDOR_ATTR_MAC_INVALID = 0,
525     /* MAC mode info list which has an array of nested values as
526      * per attributes in enum qca_wlan_vendor_attr_mac_info.
527      */
528     QCA_WLAN_VENDOR_ATTR_MAC_INFO = 1,
529     /* keep last */
530     QCA_WLAN_VENDOR_ATTR_MAC_AFTER_LAST,
531     QCA_WLAN_VENDOR_ATTR_MAC_MAX =
532     QCA_WLAN_VENDOR_ATTR_MAC_AFTER_LAST - 1,
533 };
534 
535 /**
536  * enum qca_wlan_vendor_attr_mac_iface_info - Information of the connected
537  * WiFi netdev interface on a respective MAC.
538  * Used by the attribute QCA_WLAN_VENDOR_ATTR_MAC_IFACE_INFO.
539  */
540 enum qca_wlan_vendor_attr_mac_iface_info {
541     QCA_WLAN_VENDOR_ATTR_MAC_IFACE_INFO_INVALID = 0,
542     /* Wi-Fi Netdev's interface id.u32. */
543     QCA_WLAN_VENDOR_ATTR_MAC_IFACE_INFO_ID = 1,
544     /* Associated frequency in MHz of the connected Wi-Fi interface. u32 */
545     QCA_WLAN_VENDOR_ATTR_MAC_IFACE_INFO_FREQ = 2,
546     /* keep last */
547     QCA_WLAN_VENDOR_ATTR_MAC_IFACE_INFO_AFTER_LAST,
548     QCA_WLAN_VENDOR_ATTR_MAC_IFACE_INFO_MAX =
549     QCA_WLAN_VENDOR_ATTR_MAC_IFACE_INFO_AFTER_LAST - 1,
550 };
551 
552 /**
553  * enum qca_wlan_vendor_attr_mac_info - Points to MAC the information.
554  * Used by the attribute QCA_WLAN_VENDOR_ATTR_MAC_INFO of the
555  * vendor command QCA_NL80211_VENDOR_SUBCMD_WLAN_MAC_INFO.
556  */
557 enum qca_wlan_vendor_attr_mac_info {
558     QCA_WLAN_VENDOR_ATTR_MAC_INFO_INVALID = 0,
559     /* Hardware MAC ID associated for the MAC (u32) */
560     QCA_WLAN_VENDOR_ATTR_MAC_INFO_MAC_ID = 1,
561     /* Band supported by the respective MAC at a given point.
562      * Represented by enum qca_wlan_vendor_mac_info_band.
563      */
564     QCA_WLAN_VENDOR_ATTR_MAC_INFO_BAND = 2,
565     /* Refers to list of WLAN net dev interfaces associated with this MAC.
566      * Represented by enum qca_wlan_vendor_attr_mac_iface_info.
567      */
568     QCA_WLAN_VENDOR_ATTR_MAC_IFACE_INFO = 3,
569     /* keep last */
570     QCA_WLAN_VENDOR_ATTR_MAC_INFO_AFTER_LAST,
571     QCA_WLAN_VENDOR_ATTR_MAC_INFO_MAX =
572     QCA_WLAN_VENDOR_ATTR_MAC_INFO_AFTER_LAST - 1,
573 };
574 #endif
575