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 #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