Home | History | Annotate | Download | only in wifi_hal
      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