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
113enum 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
128enum 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
139enum 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
154enum 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
169enum 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
182enum 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
193enum 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
204enum 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 */
218enum 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 */
238enum 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
258enum qca_wlan_epno_type
259{
260    QCA_WLAN_EPNO,
261    QCA_WLAN_PNO
262};
263
264#define EPNO_NO_NETWORKS 0
265
266enum 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
273enum 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
297enum 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
304enum 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
329enum 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
392enum 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
399enum 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 */
409enum 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
427enum 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
441enum 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
463enum 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
476enum 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 */
492enum 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 */
523enum 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 */
540enum 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 */
557enum 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