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