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 
     74 /* APIs corresponding to the sub commands 65-68 are deprecated.
     75  * These sub commands are reserved and not supposed to be used
     76  * for any other purpose
     77  */
     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 /* Nan Data Path */
     98 #define QCA_NL80211_VENDOR_SUBCMD_NDP 81
     99 /* Neighbour Discovery offload */
    100 #define QCA_NL80211_VENDOR_SUBCMD_ND_OFFLOAD 82
    101 /* Set packet filter for BPF*/
    102 #define QCA_NL80211_VENDOR_SUBCMD_PACKET_FILTER 83
    103 /* Get Driver-firmware interface maximum supported size*/
    104 #define QCA_NL80211_VENDOR_SUBCMD_GET_BUS_SIZE 84
    105 /* Get wake reason stats */
    106 #define QCA_NL80211_VENDOR_SUBCMD_GET_WAKE_REASON_STATS 85
    107 #endif
    108 
    109 enum qca_wlan_vendor_attr_ll_stats_set
    110 {
    111     QCA_WLAN_VENDOR_ATTR_LL_STATS_SET_INVALID = 0,
    112     /* Unsigned 32-bit value */
    113     QCA_WLAN_VENDOR_ATTR_LL_STATS_SET_CONFIG_MPDU_SIZE_THRESHOLD = 1,
    114     QCA_WLAN_VENDOR_ATTR_LL_STATS_SET_CONFIG_AGGRESSIVE_STATS_GATHERING,
    115     /* keep last */
    116     QCA_WLAN_VENDOR_ATTR_LL_STATS_SET_AFTER_LAST,
    117     QCA_WLAN_VENDOR_ATTR_LL_STATS_SET_MAX =
    118         QCA_WLAN_VENDOR_ATTR_LL_STATS_SET_AFTER_LAST - 1,
    119 };
    120 
    121 enum qca_wlan_vendor_attr_ll_stats_clr
    122 {
    123     QCA_WLAN_VENDOR_ATTR_LL_STATS_CLR_INVALID = 0,
    124     /* Unsigned 32bit bitmap  for clearing statistics
    125      * All radio statistics                     0x00000001
    126      * cca_busy_time (within radio statistics)  0x00000002
    127      * All channel stats (within radio statistics) 0x00000004
    128      * All scan statistics (within radio statistics) 0x00000008
    129      * All interface statistics                     0x00000010
    130      * All tx rate statistics (within interface statistics) 0x00000020
    131      * All ac statistics (with in interface statistics) 0x00000040
    132      * All contention (min, max, avg) statistics (within ac statisctics)
    133      * 0x00000080.
    134      */
    135     QCA_WLAN_VENDOR_ATTR_LL_STATS_CLR_CONFIG_REQ_MASK,
    136     /* Unsigned 8bit value : Request to stop statistics collection */
    137     QCA_WLAN_VENDOR_ATTR_LL_STATS_CLR_CONFIG_STOP_REQ,
    138 
    139     /* Unsigned 32bit bitmap : Response from the driver
    140      * for the cleared statistics
    141      */
    142     QCA_WLAN_VENDOR_ATTR_LL_STATS_CLR_CONFIG_RSP_MASK,
    143     /* Unsigned 8bit value: Response from driver/firmware
    144      * for the stop request
    145      */
    146     QCA_WLAN_VENDOR_ATTR_LL_STATS_CLR_CONFIG_STOP_RSP,
    147     /* keep last */
    148     QCA_WLAN_VENDOR_ATTR_LL_STATS_CLR_AFTER_LAST,
    149     QCA_WLAN_VENDOR_ATTR_LL_STATS_CLR_MAX =
    150         QCA_WLAN_VENDOR_ATTR_LL_STATS_CLR_AFTER_LAST - 1,
    151 };
    152 
    153 enum qca_wlan_vendor_attr_ll_stats_get
    154 {
    155     QCA_WLAN_VENDOR_ATTR_LL_STATS_GET_INVALID = 0,
    156     /* Unsigned 32bit value provided by the caller issuing the GET stats
    157      * command. When reporting the stats results, the driver uses the same
    158      * value to indicate which GET request the results correspond to.
    159      */
    160     QCA_WLAN_VENDOR_ATTR_LL_STATS_GET_CONFIG_REQ_ID,
    161     /* Unsigned 32bit value - bit mask to identify what statistics are
    162      * requested for retrieval.
    163      * Radio Statistics 0x00000001
    164      * Interface Statistics 0x00000020
    165      * All Peer Statistics 0x00000040
    166      * Peer Statistics     0x00000080
    167      */
    168     QCA_WLAN_VENDOR_ATTR_LL_STATS_GET_CONFIG_REQ_MASK,
    169     /* keep last */
    170     QCA_WLAN_VENDOR_ATTR_LL_STATS_GET_AFTER_LAST,
    171     QCA_WLAN_VENDOR_ATTR_LL_STATS_GET_MAX =
    172         QCA_WLAN_VENDOR_ATTR_LL_STATS_GET_AFTER_LAST - 1,
    173 };
    174 
    175 enum qca_wlan_vendor_attr_ll_stats_results
    176 {
    177     QCA_WLAN_VENDOR_ATTR_LL_STATS_INVALID = 0,
    178     /* Unsigned 32bit value. Used by the driver; must match the request id
    179      * provided with the QCA_NL80211_VENDOR_SUBCMD_LL_STATS_GET command.
    180      */
    181     QCA_WLAN_VENDOR_ATTR_LL_STATS_RESULTS_REQ_ID,
    182 
    183     /* Unsigned 32bit value */
    184     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_BEACON_RX,
    185     /* Unsigned 32bit value */
    186     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_MGMT_RX,
    187     /* Unsigned 32bit value */
    188     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_MGMT_ACTION_RX,
    189     /* Unsigned 32bit value */
    190     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_MGMT_ACTION_TX,
    191     /* Signed 32bit value */
    192     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_RSSI_MGMT,
    193     /* Signed 32bit value */
    194     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_RSSI_DATA,
    195     /* Signed 32bit value */
    196     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_RSSI_ACK,
    197 
    198     /* Attributes of type QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_* are
    199      * nested within the interface stats.
    200      */
    201 
    202     /* Interface mode, e.g., STA, SOFTAP, IBSS, etc.
    203      * Type = enum wifi_interface_mode.
    204      */
    205     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_MODE,
    206     /* Interface MAC address. An array of 6 Unsigned int8 */
    207     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_MAC_ADDR,
    208     /* Type = enum wifi_connection_state, e.g., DISCONNECTED,
    209      * AUTHENTICATING, etc. valid for STA, CLI only.
    210      */
    211     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_STATE,
    212     /* Type = enum wifi_roam_state. Roaming state, e.g., IDLE or ACTIVE
    213      */
    214     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_ROAMING,
    215     /* Unsigned 32bit value. WIFI_CAPABILITY_XXX */
    216     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_CAPABILITIES,
    217     /* NULL terminated SSID. An array of 33 Unsigned 8bit values */
    218     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_SSID,
    219     /* BSSID. An array of 6 Unsigned 8bit values */
    220     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_BSSID,
    221     /* Country string advertised by AP. An array of 3 Unsigned 8bit
    222      * values.
    223      */
    224     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_AP_COUNTRY_STR,
    225     /* Country string for this association. An array of 3 Unsigned 8bit
    226      * values.
    227      */
    228     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_COUNTRY_STR,
    229 
    230     /* Attributes of type QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_* could
    231      * be nested within the interface stats.
    232      */
    233 
    234     /* Type = enum wifi_traffic_ac, e.g., V0, VI, BE and BK */
    235     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_AC,
    236     /* Unsigned int 32 value corresponding to respective AC */
    237     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_TX_MPDU,
    238     /* Unsigned int 32 value corresponding to respective AC */
    239     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_RX_MPDU,
    240     /* Unsigned int 32 value corresponding to respective AC */
    241     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_TX_MCAST,
    242     /* Unsigned int 32 value corresponding to respective AC */
    243     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_RX_MCAST,
    244     /* Unsigned int 32 value corresponding to respective AC */
    245     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_RX_AMPDU,
    246     /* Unsigned int 32 value corresponding to respective AC */
    247     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_TX_AMPDU,
    248     /* Unsigned int 32 value corresponding to respective AC */
    249     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_MPDU_LOST,
    250     /* Unsigned int 32 value corresponding to respective AC */
    251     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_RETRIES,
    252     /* Unsigned int 32 value corresponding to respective AC  */
    253     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_RETRIES_SHORT,
    254     /* Unsigned int 32 values corresponding to respective AC */
    255     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_RETRIES_LONG,
    256     /* Unsigned int 32 values corresponding to respective AC */
    257     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_CONTENTION_TIME_MIN,
    258     /* Unsigned int 32 values corresponding to respective AC */
    259     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_CONTENTION_TIME_MAX,
    260     /* Unsigned int 32 values corresponding to respective AC */
    261     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_CONTENTION_TIME_AVG,
    262     /* Unsigned int 32 values corresponding to respective AC */
    263     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_CONTENTION_NUM_SAMPLES,
    264     /* Unsigned 32bit value. Number of peers */
    265     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_NUM_PEERS,
    266 
    267     /* Attributes of type QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO_* are
    268      * nested within the interface stats.
    269      */
    270 
    271     /* Type = enum wifi_peer_type. Peer type, e.g., STA, AP, P2P GO etc. */
    272     QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO_TYPE,
    273     /* MAC addr corresponding to respective peer. An array of 6 Unsigned
    274      * 8bit values.
    275      */
    276     QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO_MAC_ADDRESS,
    277     /* Unsigned int 32bit value representing capabilities corresponding
    278      * to respective peer.
    279      */
    280     QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO_CAPABILITIES,
    281     /* Unsigned 32bit value. Number of rates */
    282     QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO_NUM_RATES,
    283 
    284     /* Attributes of type QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_*
    285      * are nested within the rate stat.
    286      */
    287 
    288     /* Wi-Fi Rate - separate attributes defined for individual fields */
    289 
    290     /* Unsigned int 8bit value; 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved */
    291     QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_PREAMBLE,
    292     /* Unsigned int 8bit value; 0:1x1, 1:2x2, 3:3x3, 4:4x4 */
    293     QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_NSS,
    294     /* Unsigned int 8bit value; 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz */
    295     QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_BW,
    296     /* Unsigned int 8bit value; OFDM/CCK rate code would be as per IEEE Std
    297      * in the units of 0.5mbps HT/VHT it would be mcs index */
    298     QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_MCS_INDEX,
    299 
    300     /* Unsigned 32bit value. Bit rate in units of 100Kbps */
    301     QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_BIT_RATE,
    302 
    303 
    304     /* Attributes of type QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_STAT_* could be
    305      * nested within the peer info stats.
    306      */
    307 
    308     /* Unsigned int 32bit value. Number of successfully transmitted data pkts,
    309      * i.e., with ACK received corresponding to the respective rate.
    310      */
    311     QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_TX_MPDU,
    312     /* Unsigned int 32bit value. Number of received data pkts corresponding
    313      *  to the respective rate.
    314      */
    315     QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_RX_MPDU,
    316     /* Unsigned int 32bit value. Number of data pkts losses, i.e., no ACK
    317      * received corresponding to *the respective rate.
    318      */
    319     QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_MPDU_LOST,
    320     /* Unsigned int 32bit value. Total number of data pkt retries for the
    321      * respective rate.
    322      */
    323     QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_RETRIES,
    324     /* Unsigned int 32bit value. Total number of short data pkt retries
    325      * for the respective rate.
    326      */
    327     QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_RETRIES_SHORT,
    328     /* Unsigned int 32bit value. Total number of long data pkt retries
    329      * for the respective rate.
    330      */
    331     QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_RETRIES_LONG,
    332 
    333 
    334     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ID,
    335     /* Unsigned 32bit value. Total number of msecs the radio is awake
    336      * accruing over time.
    337      */
    338     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ON_TIME,
    339     /* Unsigned 32bit value. Total number of msecs the radio is transmitting
    340      * accruing over time.
    341      */
    342     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_TX_TIME,
    343     /* Unsigned 32bit value. Total number of msecs the radio is in active
    344      * receive accruing over time.
    345      */
    346     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_RX_TIME,
    347     /* Unsigned 32bit value. Total number of msecs the radio is awake due
    348      * to all scan accruing over time.
    349      */
    350     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ON_TIME_SCAN,
    351     /* Unsigned 32bit value. Total number of msecs the radio is awake due
    352      * to NAN accruing over time.
    353      */
    354     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ON_TIME_NBD,
    355     /* Unsigned 32bit value. Total number of msecs the radio is awake due
    356      * to GSCAN accruing over time.
    357      */
    358     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ON_TIME_GSCAN,
    359     /* Unsigned 32bit value. Total number of msecs the radio is awake due
    360      * to roam scan accruing over time.
    361      */
    362     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ON_TIME_ROAM_SCAN,
    363     /* Unsigned 32bit value. Total number of msecs the radio is awake due
    364      * to PNO scan accruing over time.
    365      */
    366     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ON_TIME_PNO_SCAN,
    367     /* Unsigned 32bit value. Total number of msecs the radio is awake due
    368      * to HS2.0 scans and GAS *exchange accruing over time.
    369      */
    370     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ON_TIME_HS20,
    371     /* Unsigned 32bit value. Number of channels. */
    372     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_NUM_CHANNELS,
    373 
    374     /* Attributes of type QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_INFO_* could
    375      * be nested within the channel stats.
    376      */
    377 
    378     /* Type = enum wifi_channel_width. Channel width, e.g., 20, 40, 80 */
    379     QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_INFO_WIDTH,
    380     /* Unsigned 32bit value. Primary 20MHz channel. */
    381     QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_INFO_CENTER_FREQ,
    382     /* Unsigned 32bit value. Center frequency (MHz) first segment. */
    383     QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_INFO_CENTER_FREQ0,
    384     /* Unsigned 32bit value. Center frequency (MHz) second segment. */
    385     QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_INFO_CENTER_FREQ1,
    386 
    387     /* Attributes of type QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_* could be
    388      * nested within the radio stats.
    389      */
    390 
    391     /* Unsigned int 32bit value representing total number of msecs the radio
    392      * is awake on that *channel accruing over time, corresponding to the
    393      * respective channel.
    394      */
    395     QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_ON_TIME,
    396     /* Unsigned int 32bit value representing total number of msecs the CCA
    397      * register is busy accruing  *over time corresponding to the respective
    398      * channel.
    399      */
    400     QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_CCA_BUSY_TIME,
    401 
    402     QCA_WLAN_VENDOR_ATTR_LL_STATS_NUM_RADIOS,
    403 
    404     /* Signifies the nested list of channel attributes
    405      * QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_INFO_*
    406      */
    407     QCA_WLAN_VENDOR_ATTR_LL_STATS_CH_INFO,
    408 
    409     /* Signifies the nested list of peer info attributes
    410      * QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO_*
    411      */
    412     QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO,
    413 
    414     /* Signifies the nested list of rate info attributes
    415      * QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_*
    416      */
    417     QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO_RATE_INFO,
    418 
    419     /* Signifies the nested list of wmm info attributes
    420      * QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_*
    421      */
    422     QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_INFO,
    423 
    424     /* Unsigned 8bit value. Used by the driver; if set to 1, it indicates that
    425      * more stats, e.g., peers or radio, are to follow in the next
    426      * QCA_NL80211_VENDOR_SUBCMD_LL_STATS_*_RESULTS event.
    427      * Otherwise, it is set to 0.
    428      */
    429     QCA_WLAN_VENDOR_ATTR_LL_STATS_RESULTS_MORE_DATA,
    430 
    431     /* Unsigned 64bit value */
    432     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_AVERAGE_TSF_OFFSET,
    433 
    434     /* Unsigned 32bit value */
    435     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_LEAKY_AP_DETECTED,
    436 
    437     /* Unsigned 32bit value */
    438     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_LEAKY_AP_AVG_NUM_FRAMES_LEAKED,
    439 
    440     /* Unsigned 32bit value */
    441     QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_LEAKY_AP_GUARD_TIME,
    442 
    443     /* Unsigned 32bit value */
    444     QCA_WLAN_VENDOR_ATTR_LL_STATS_TYPE,
    445 
    446     /* Unsigned 32bit value */
    447     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_NUM_TX_LEVELS,
    448 
    449     /* Number of msecs the radio spent in transmitting for each power level */
    450     QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_TX_TIME_PER_LEVEL,
    451 
    452     /* keep last */
    453     QCA_WLAN_VENDOR_ATTR_LL_STATS_AFTER_LAST,
    454     QCA_WLAN_VENDOR_ATTR_LL_STATS_MAX = QCA_WLAN_VENDOR_ATTR_LL_STATS_AFTER_LAST - 1,
    455 };
    456 
    457 enum qca_wlan_vendor_attr_ll_stats_type
    458 {
    459     QCA_NL80211_VENDOR_SUBCMD_LL_STATS_TYPE_INVALID = 0,
    460     QCA_NL80211_VENDOR_SUBCMD_LL_STATS_TYPE_RADIO,
    461     QCA_NL80211_VENDOR_SUBCMD_LL_STATS_TYPE_IFACE,
    462     QCA_NL80211_VENDOR_SUBCMD_LL_STATS_TYPE_PEERS
    463 };
    464 
    465 enum qca_wlan_vendor_attr_gscan_config_params
    466 {
    467     QCA_WLAN_VENDOR_ATTR_GSCAN_SUBCMD_CONFIG_PARAM_INVALID = 0,
    468 
    469     /* Unsigned 32-bit value; Middleware provides it to the driver. Middle ware
    470      * either gets it from caller, e.g., framework, or generates one if
    471      * framework doesn't provide it.
    472      */
    473     QCA_WLAN_VENDOR_ATTR_GSCAN_SUBCMD_CONFIG_PARAM_REQUEST_ID,
    474 
    475     /* NL attributes for data used by
    476      * QCA_NL80211_VENDOR_SUBCMD_GSCAN_GET_VALID_CHANNELS sub command.
    477      */
    478     /* Unsigned 32-bit value */
    479     QCA_WLAN_VENDOR_ATTR_GSCAN_GET_VALID_CHANNELS_CONFIG_PARAM_WIFI_BAND,
    480     /* Unsigned 32-bit value */
    481     QCA_WLAN_VENDOR_ATTR_GSCAN_GET_VALID_CHANNELS_CONFIG_PARAM_MAX_CHANNELS,
    482 
    483     /* NL attributes for input params used by
    484      * QCA_NL80211_VENDOR_SUBCMD_GSCAN_START sub command.
    485      */
    486 
    487     /* Unsigned 32-bit value; channel frequency */
    488     QCA_WLAN_VENDOR_ATTR_GSCAN_CHANNEL_SPEC_CHANNEL,
    489     /* Unsigned 32-bit value; dwell time in ms. */
    490     QCA_WLAN_VENDOR_ATTR_GSCAN_CHANNEL_SPEC_DWELL_TIME,
    491     /* Unsigned 8-bit value; 0: active; 1: passive; N/A for DFS */
    492     QCA_WLAN_VENDOR_ATTR_GSCAN_CHANNEL_SPEC_PASSIVE,
    493     /* Unsigned 8-bit value; channel class */
    494     QCA_WLAN_VENDOR_ATTR_GSCAN_CHANNEL_SPEC_CLASS,
    495 
    496     /* Unsigned 8-bit value; bucket index, 0 based */
    497     QCA_WLAN_VENDOR_ATTR_GSCAN_BUCKET_SPEC_INDEX,
    498     /* Unsigned 8-bit value; band. */
    499     QCA_WLAN_VENDOR_ATTR_GSCAN_BUCKET_SPEC_BAND,
    500     /* Unsigned 32-bit value; desired period, in ms. */
    501     QCA_WLAN_VENDOR_ATTR_GSCAN_BUCKET_SPEC_PERIOD,
    502     /* Unsigned 8-bit value; report events semantics. */
    503     QCA_WLAN_VENDOR_ATTR_GSCAN_BUCKET_SPEC_REPORT_EVENTS,
    504     /* Unsigned 32-bit value. Followed by a nested array of GSCAN_CHANNEL_SPEC_*
    505      * attributes.
    506      */
    507     QCA_WLAN_VENDOR_ATTR_GSCAN_BUCKET_SPEC_NUM_CHANNEL_SPECS,
    508 
    509     /* Array of QCA_WLAN_VENDOR_ATTR_GSCAN_CHANNEL_SPEC_* attributes.
    510      * Array size: QCA_WLAN_VENDOR_ATTR_GSCAN_BUCKET_SPEC_NUM_CHANNEL_SPECS
    511      */
    512     QCA_WLAN_VENDOR_ATTR_GSCAN_CHANNEL_SPEC,
    513 
    514     /* Unsigned 32-bit value; base timer period in ms. */
    515     QCA_WLAN_VENDOR_ATTR_GSCAN_SCAN_CMD_PARAMS_BASE_PERIOD,
    516     /* Unsigned 32-bit value; number of APs to store in each scan in the
    517      * BSSID/RSSI history buffer (keep the highest RSSI APs).
    518      */
    519     QCA_WLAN_VENDOR_ATTR_GSCAN_SCAN_CMD_PARAMS_MAX_AP_PER_SCAN,
    520     /* Unsigned 8-bit value; in %, when scan buffer is this much full, wake up
    521      * AP.
    522      */
    523     QCA_WLAN_VENDOR_ATTR_GSCAN_SCAN_CMD_PARAMS_REPORT_THRESHOLD_PERCENT,
    524 
    525     /* Unsigned 8-bit value; number of scan bucket specs; followed by a nested
    526      * array of_GSCAN_BUCKET_SPEC_* attributes and values. The size of the
    527      * array is determined by NUM_BUCKETS.
    528      */
    529     QCA_WLAN_VENDOR_ATTR_GSCAN_SCAN_CMD_PARAMS_NUM_BUCKETS,
    530 
    531     /* Array of QCA_WLAN_VENDOR_ATTR_GSCAN_BUCKET_SPEC_* attributes.
    532      * Array size: QCA_WLAN_VENDOR_ATTR_GSCAN_SCAN_CMD_PARAMS_NUM_BUCKETS
    533      */
    534     QCA_WLAN_VENDOR_ATTR_GSCAN_BUCKET_SPEC,
    535 
    536     /* Unsigned 8-bit value */
    537     QCA_WLAN_VENDOR_ATTR_GSCAN_GET_CACHED_SCAN_RESULTS_CONFIG_PARAM_FLUSH,
    538     /* Unsigned 32-bit value; maximum number of results to be returned. */
    539     QCA_WLAN_VENDOR_ATTR_GSCAN_GET_CACHED_SCAN_RESULTS_CONFIG_PARAM_MAX,
    540 
    541     /* An array of 6 x Unsigned 8-bit value */
    542     QCA_WLAN_VENDOR_ATTR_GSCAN_AP_THRESHOLD_PARAM_BSSID,
    543     /* Signed 32-bit value */
    544     QCA_WLAN_VENDOR_ATTR_GSCAN_AP_THRESHOLD_PARAM_RSSI_LOW,
    545     /* Signed 32-bit value */
    546     QCA_WLAN_VENDOR_ATTR_GSCAN_AP_THRESHOLD_PARAM_RSSI_HIGH,
    547     /* Unsigned 32-bit value */
    548     QCA_WLAN_VENDOR_ATTR_GSCAN_AP_THRESHOLD_PARAM_CHANNEL,
    549 
    550 
    551     /* Number of hotlist APs as unsigned 32-bit value, followed by a nested array of
    552      * AP_THRESHOLD_PARAM attributes and values. The size of the array is
    553      * determined by NUM_AP.
    554      */
    555     QCA_WLAN_VENDOR_ATTR_GSCAN_BSSID_HOTLIST_PARAMS_NUM_AP,
    556 
    557     /* Array of QCA_WLAN_VENDOR_ATTR_GSCAN_AP_THRESHOLD_PARAM_* attributes.
    558      * Array size: QCA_WLAN_VENDOR_ATTR_GSCAN_BUCKET_SPEC_NUM_CHANNEL_SPECS
    559      */
    560     QCA_WLAN_VENDOR_ATTR_GSCAN_AP_THRESHOLD_PARAM,
    561 
    562     /* Unsigned 32bit value; number of samples for averaging RSSI. */
    563     QCA_WLAN_VENDOR_ATTR_GSCAN_SIGNIFICANT_CHANGE_PARAMS_RSSI_SAMPLE_SIZE,
    564     /* Unsigned 32bit value; number of samples to confirm AP loss. */
    565     QCA_WLAN_VENDOR_ATTR_GSCAN_SIGNIFICANT_CHANGE_PARAMS_LOST_AP_SAMPLE_SIZE,
    566     /* Unsigned 32bit value; number of APs breaching threshold. */
    567     QCA_WLAN_VENDOR_ATTR_GSCAN_SIGNIFICANT_CHANGE_PARAMS_MIN_BREACHING,
    568     /* Unsigned 32bit value; number of APs. Followed by an array of
    569      * AP_THRESHOLD_PARAM attributes. Size of the array is NUM_AP.
    570      */
    571     QCA_WLAN_VENDOR_ATTR_GSCAN_SIGNIFICANT_CHANGE_PARAMS_NUM_AP,
    572     /* Unsigned 32bit value; number of samples to confirm AP loss. */
    573     QCA_WLAN_VENDOR_ATTR_GSCAN_BSSID_HOTLIST_PARAMS_LOST_AP_SAMPLE_SIZE,
    574     /* Unsigned 32-bit value. If max_period is non zero or different than
    575      * period, then this bucket is an exponential backoff bucket.
    576      */
    577     QCA_WLAN_VENDOR_ATTR_GSCAN_BUCKET_SPEC_MAX_PERIOD,
    578     /* Unsigned 32-bit value. */
    579     QCA_WLAN_VENDOR_ATTR_GSCAN_BUCKET_SPEC_BASE,
    580     /* Unsigned 32-bit value. For exponential back off bucket, number of scans
    581      * to perform for a given period.
    582      */
    583     QCA_WLAN_VENDOR_ATTR_GSCAN_BUCKET_SPEC_STEP_COUNT,
    584     /* Unsigned 8-bit value; in number of scans, wake up AP after these
    585      * many scans.
    586      */
    587     QCA_WLAN_VENDOR_ATTR_GSCAN_SCAN_CMD_PARAMS_REPORT_THRESHOLD_NUM_SCANS,
    588 
    589     /* NL attributes for data used by
    590      * QCA_NL80211_VENDOR_SUBCMD_GSCAN_SET_SSID_HOTLIST sub command.
    591      */
    592     /* Unsigned 32bit value; number of samples to confirm SSID loss. */
    593     QCA_WLAN_VENDOR_ATTR_GSCAN_SSID_HOTLIST_PARAMS_LOST_SSID_SAMPLE_SIZE,
    594     /* Number of hotlist SSIDs as unsigned 32-bit value, followed by a nested
    595      * array of SSID_THRESHOLD_PARAM_* attributes and values. The size of the
    596      * array is determined by NUM_SSID.
    597      */
    598     QCA_WLAN_VENDOR_ATTR_GSCAN_SSID_HOTLIST_PARAMS_NUM_SSID,
    599     /* Array of QCA_WLAN_VENDOR_ATTR_GSCAN_SSID_THRESHOLD_PARAM_* attributes.
    600      * Array size: QCA_WLAN_VENDOR_ATTR_GSCAN_SSID_HOTLIST_PARAMS_NUM_SSID
    601      */
    602     QCA_WLAN_VENDOR_ATTR_GSCAN_SSID_THRESHOLD_PARAM,
    603 
    604     /* An array of 33 x Unsigned 8-bit value; NULL terminated SSID */
    605     QCA_WLAN_VENDOR_ATTR_GSCAN_SSID_THRESHOLD_PARAM_SSID,
    606     /* Unsigned 8-bit value */
    607     QCA_WLAN_VENDOR_ATTR_GSCAN_SSID_THRESHOLD_PARAM_BAND,
    608     /* Signed 32-bit value */
    609     QCA_WLAN_VENDOR_ATTR_GSCAN_SSID_THRESHOLD_PARAM_RSSI_LOW,
    610     /* Signed 32-bit value */
    611     QCA_WLAN_VENDOR_ATTR_GSCAN_SSID_THRESHOLD_PARAM_RSSI_HIGH,
    612     /* Unsigned 32-bit value; a bitmask w/additional gscan config flag. */
    613     QCA_WLAN_VENDOR_ATTR_GSCAN_CONFIGURATION_FLAGS,
    614 
    615     /* keep last */
    616     QCA_WLAN_VENDOR_ATTR_GSCAN_SUBCMD_CONFIG_PARAM_AFTER_LAST,
    617     QCA_WLAN_VENDOR_ATTR_GSCAN_SUBCMD_CONFIG_PARAM_MAX =
    618         QCA_WLAN_VENDOR_ATTR_GSCAN_SUBCMD_CONFIG_PARAM_AFTER_LAST - 1,
    619 };
    620 
    621 enum qca_wlan_vendor_attr_gscan_results
    622 {
    623     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_INVALID = 0,
    624 
    625     /* Unsigned 32-bit value; must match the request Id supplied by Wi-Fi HAL
    626      * in the corresponding subcmd NL msg
    627      */
    628     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_REQUEST_ID,
    629 
    630     /* Unsigned 32-bit value; used to indicate the status response from
    631      * firmware/driver for the vendor sub-command.
    632      */
    633     QCA_WLAN_VENDOR_ATTR_GSCAN_STATUS,
    634 
    635     /* GSCAN Valid Channels attributes */
    636     /* Unsigned 32bit value; followed by a nested array of CHANNELS.
    637      */
    638     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_NUM_CHANNELS,
    639     /* An array of NUM_CHANNELS x Unsigned 32bit value integers representing
    640      * channel numbers
    641      */
    642     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CHANNELS,
    643 
    644     /* GSCAN Capabilities attributes */
    645     /* Unsigned 32bit value */
    646     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CAPABILITIES_MAX_SCAN_CACHE_SIZE,
    647     /* Unsigned 32bit value */
    648     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CAPABILITIES_MAX_SCAN_BUCKETS,
    649     /* Unsigned 32bit value */
    650     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CAPABILITIES_MAX_AP_CACHE_PER_SCAN,
    651     /* Unsigned 32bit value */
    652     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CAPABILITIES_MAX_RSSI_SAMPLE_SIZE,
    653     /* Signed 32bit value */
    654     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CAPABILITIES_MAX_SCAN_REPORTING_THRESHOLD,
    655     /* Unsigned 32bit value */
    656     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CAPABILITIES_MAX_HOTLIST_BSSIDS,
    657     /* Unsigned 32bit value */
    658     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CAPABILITIES_MAX_SIGNIFICANT_WIFI_CHANGE_APS,
    659     /* Unsigned 32bit value */
    660     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CAPABILITIES_MAX_BSSID_HISTORY_ENTRIES,
    661 
    662     /* GSCAN Attributes used with
    663      * QCA_NL80211_VENDOR_SUBCMD_GSCAN_SCAN_RESULTS_AVAILABLE sub-command.
    664      */
    665 
    666     /* Unsigned 32-bit value */
    667     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_NUM_RESULTS_AVAILABLE,
    668 
    669     /* GSCAN attributes used with
    670      * QCA_NL80211_VENDOR_SUBCMD_GSCAN_FULL_SCAN_RESULT sub-command.
    671      */
    672 
    673     /* An array of NUM_RESULTS_AVAILABLE x
    674      * QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_*
    675      */
    676     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_LIST,
    677 
    678     /* Unsigned 64-bit value; age of sample at the time of retrieval */
    679     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_TIME_STAMP,
    680     /* 33 x unsiged 8-bit value; NULL terminated SSID */
    681     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_SSID,
    682     /* An array of 6 x Unsigned 8-bit value */
    683     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_BSSID,
    684     /* Unsigned 32-bit value; channel frequency in MHz */
    685     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_CHANNEL,
    686     /* Signed 32-bit value */
    687     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_RSSI,
    688     /* Unsigned 32-bit value */
    689     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_RTT,
    690     /* Unsigned 32-bit value */
    691     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_RTT_SD,
    692     /* Unsigned 16-bit value */
    693     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_BEACON_PERIOD,
    694     /* Unsigned 16-bit value */
    695     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_CAPABILITY,
    696     /* Unsigned 32-bit value; size of the IE DATA blob */
    697     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_IE_LENGTH,
    698     /* An array of IE_LENGTH x Unsigned 8-bit value; blob of all the
    699      * information elements found in the beacon; this data should be a
    700      * packed list of wifi_information_element objects, one after the
    701      * other.
    702      */
    703     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_IE_DATA,
    704 
    705     /* Unsigned 8-bit value; set by driver to indicate more scan results are
    706      * available.
    707      */
    708     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_RESULT_MORE_DATA,
    709 
    710     /* GSCAN attributes for
    711      * QCA_NL80211_VENDOR_SUBCMD_GSCAN_SCAN_EVENT sub-command.
    712      */
    713     /* Unsigned 8-bit value */
    714     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_EVENT_TYPE,
    715     /* Unsigned 32-bit value */
    716     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SCAN_EVENT_STATUS,
    717 
    718     /* GSCAN attributes for
    719      * QCA_NL80211_VENDOR_SUBCMD_GSCAN_HOTLIST_AP_FOUND sub-command.
    720      */
    721     /* Use attr QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_NUM_RESULTS_AVAILABLE
    722      * to indicate number of results.
    723      * Also, use QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_LIST to indicate the list
    724      * of results.
    725      */
    726 
    727     /* GSCAN attributes for
    728      * QCA_NL80211_VENDOR_SUBCMD_GSCAN_SIGNIFICANT_CHANGE sub-command.
    729      */
    730     /* An array of 6 x Unsigned 8-bit value */
    731     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SIGNIFICANT_CHANGE_RESULT_BSSID,
    732     /* Unsigned 32-bit value */
    733     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SIGNIFICANT_CHANGE_RESULT_CHANNEL,
    734     /* Unsigned 32-bit value.
    735      */
    736     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SIGNIFICANT_CHANGE_RESULT_NUM_RSSI,
    737     /* A nested array of signed 32-bit RSSI values. Size of the array is determined by
    738      * (NUM_RSSI of SIGNIFICANT_CHANGE_RESULT_NUM_RSSI.
    739      */
    740     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_SIGNIFICANT_CHANGE_RESULT_RSSI_LIST,
    741 
    742     /* GSCAN attributes used with
    743      * QCA_NL80211_VENDOR_SUBCMD_GSCAN_GET_CACHED_RESULTS sub-command.
    744      */
    745     /* Use attr QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_NUM_RESULTS_AVAILABLE
    746      * to indicate number of gscan cached results returned.
    747      * Also, use QCA_WLAN_VENDOR_ATTR_GSCAN_CACHED_RESULTS_LIST to indicate
    748      *  the list of gscan cached results.
    749      */
    750 
    751     /* An array of NUM_RESULTS_AVAILABLE x
    752      * QCA_NL80211_VENDOR_ATTR_GSCAN_CACHED_RESULTS_*
    753      */
    754     QCA_WLAN_VENDOR_ATTR_GSCAN_CACHED_RESULTS_LIST,
    755     /* Unsigned 32-bit value; a unique identifier for the scan unit. */
    756     QCA_WLAN_VENDOR_ATTR_GSCAN_CACHED_RESULTS_SCAN_ID,
    757     /* Unsigned 32-bit value; a bitmask w/additional information about scan. */
    758     QCA_WLAN_VENDOR_ATTR_GSCAN_CACHED_RESULTS_FLAGS,
    759     /* Use attr QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_NUM_RESULTS_AVAILABLE
    760      * to indicate number of wifi scan results/bssids retrieved by the scan.
    761      * Also, use QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_LIST to indicate the list
    762      * of wifi scan results returned for each cached result block.
    763      */
    764 
    765     /* GSCAN attributes for
    766      * QCA_NL80211_VENDOR_SUBCMD_PNO_NETWORK_FOUND sub-command.
    767      */
    768     /* Use QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_NUM_RESULTS_AVAILABLE for number
    769      * of results.
    770      * Use QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_LIST to indicate the nested
    771      * list of wifi scan results returned for each wifi_passpoint_match_result block.
    772      * Array size: QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_NUM_RESULTS_AVAILABLE.
    773      */
    774 
    775     /* GSCAN attributes for
    776      * QCA_NL80211_VENDOR_SUBCMD_PNO_PASSPOINT_NETWORK_FOUND sub-command.
    777      */
    778     /* Unsigned 32-bit value */
    779     QCA_WLAN_VENDOR_ATTR_GSCAN_PNO_RESULTS_PASSPOINT_NETWORK_FOUND_NUM_MATCHES,
    780     /* A nested array of
    781      * QCA_WLAN_VENDOR_ATTR_GSCAN_PNO_RESULTS_PASSPOINT_MATCH_*
    782      * attributes. Array size =
    783      * *_ATTR_GSCAN_PNO_RESULTS_PASSPOINT_NETWORK_FOUND_NUM_MATCHES.
    784      */
    785     QCA_WLAN_VENDOR_ATTR_GSCAN_PNO_RESULTS_PASSPOINT_MATCH_RESULT_LIST,
    786 
    787     /* Unsigned 32-bit value; network block id for the matched network */
    788     QCA_WLAN_VENDOR_ATTR_GSCAN_PNO_RESULTS_PASSPOINT_MATCH_ID,
    789     /* Use QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_LIST to indicate the nested
    790      * list of wifi scan results returned for each wifi_passpoint_match_result block.
    791      */
    792     /* Unsigned 32-bit value */
    793     QCA_WLAN_VENDOR_ATTR_GSCAN_PNO_RESULTS_PASSPOINT_MATCH_ANQP_LEN,
    794     /* An array size of PASSPOINT_MATCH_ANQP_LEN of unsigned 8-bit values;
    795      * ANQP data in the information_element format.
    796      */
    797     QCA_WLAN_VENDOR_ATTR_GSCAN_PNO_RESULTS_PASSPOINT_MATCH_ANQP,
    798 
    799     /* Unsigned 32bit value; a GSCAN Capabilities attribute. */
    800     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CAPABILITIES_MAX_HOTLIST_SSIDS,
    801     /* Unsigned 32bit value; a GSCAN Capabilities attribute. */
    802     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CAPABILITIES_MAX_NUM_EPNO_NETS,
    803     /* Unsigned 32bit value; a GSCAN Capabilities attribute. */
    804     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CAPABILITIES_MAX_NUM_EPNO_NETS_BY_SSID,
    805     /* Unsigned 32bit value; a GSCAN Capabilities attribute. */
    806     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_CAPABILITIES_MAX_NUM_WHITELISTED_SSID,
    807 
    808     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_BUCKETS_SCANNED,
    809     /* keep last */
    810     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_AFTER_LAST,
    811     QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_MAX =
    812         QCA_WLAN_VENDOR_ATTR_GSCAN_RESULTS_AFTER_LAST - 1,
    813 };
    814 
    815 enum qca_wlan_vendor_attr_tdls_enable
    816 {
    817     QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_INVALID = 0,
    818     /* An array of 6 x Unsigned 8-bit value */
    819     QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_MAC_ADDR,
    820     QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_CHANNEL,
    821     QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_GLOBAL_OPERATING_CLASS,
    822     QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_MAX_LATENCY_MS,
    823     QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_MIN_BANDWIDTH_KBPS,
    824     /* keep last */
    825     QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_AFTER_LAST,
    826     QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_MAX =
    827         QCA_WLAN_VENDOR_ATTR_TDLS_ENABLE_AFTER_LAST - 1,
    828 };
    829 
    830 enum qca_wlan_vendor_attr_tdls_disable
    831 {
    832     QCA_WLAN_VENDOR_ATTR_TDLS_DISABLE_INVALID = 0,
    833     /* An array of 6 x Unsigned 8-bit value */
    834     QCA_WLAN_VENDOR_ATTR_TDLS_DISABLE_MAC_ADDR,
    835     /* keep last */
    836     QCA_WLAN_VENDOR_ATTR_TDLS_DISABLE_AFTER_LAST,
    837     QCA_WLAN_VENDOR_ATTR_TDLS_DISABLE_MAX =
    838         QCA_WLAN_VENDOR_ATTR_TDLS_DISABLE_AFTER_LAST - 1,
    839 };
    840 
    841 enum qca_wlan_vendor_attr_tdls_get_status
    842 {
    843     QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_INVALID = 0,
    844     /* An array of 6 x Unsigned 8-bit value */
    845     QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_MAC_ADDR,
    846     QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_STATE,
    847     QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_REASON,
    848     QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_CHANNEL,
    849     QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_GLOBAL_OPERATING_CLASS,
    850     /* keep last */
    851     QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_AFTER_LAST,
    852     QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_MAX =
    853         QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_AFTER_LAST - 1,
    854 };
    855 
    856 enum qca_wlan_vendor_attr_tdls_state
    857 {
    858     QCA_WLAN_VENDOR_ATTR_TDLS_STATE_INVALID = 0,
    859     /* An array of 6 x Unsigned 8-bit value */
    860     QCA_WLAN_VENDOR_ATTR_TDLS_MAC_ADDR,
    861     QCA_WLAN_VENDOR_ATTR_TDLS_STATE,
    862     QCA_WLAN_VENDOR_ATTR_TDLS_REASON,
    863     QCA_WLAN_VENDOR_ATTR_TDLS_CHANNEL,
    864     QCA_WLAN_VENDOR_ATTR_TDLS_GLOBAL_OPERATING_CLASS,
    865     /* keep last */
    866     QCA_WLAN_VENDOR_ATTR_TDLS_STATE_AFTER_LAST,
    867     QCA_WLAN_VENDOR_ATTR_TDLS_STATE_MAX =
    868         QCA_WLAN_VENDOR_ATTR_TDLS_STATE_AFTER_LAST - 1,
    869 };
    870 
    871 enum qca_wlan_vendor_attr_tdls_get_capabilities
    872 {
    873     QCA_WLAN_VENDOR_ATTR_TDLS_GET_CAPS_INVALID = 0,
    874 
    875     QCA_WLAN_VENDOR_ATTR_TDLS_GET_CAPS_MAX_CONC_SESSIONS,
    876     QCA_WLAN_VENDOR_ATTR_TDLS_GET_CAPS_FEATURES_SUPPORTED,
    877 
    878     /* keep last */
    879     QCA_WLAN_VENDOR_ATTR_TDLS_GET_CAPS_AFTER_LAST,
    880     QCA_WLAN_VENDOR_ATTR_TDLS_GET_CAPS_MAX =
    881         QCA_WLAN_VENDOR_ATTR_TDLS_GET_CAPS_AFTER_LAST - 1,
    882 };
    883 
    884 enum qca_wlan_vendor_attr_get_supported_features
    885 {
    886     QCA_WLAN_VENDOR_ATTR_FEATURE_SET_INVALID = 0,
    887     /* Unsigned 32-bit value */
    888     QCA_WLAN_VENDOR_ATTR_FEATURE_SET = 1,
    889     /* keep last */
    890     QCA_WLAN_VENDOR_ATTR_FEATURE_SET_AFTER_LAST,
    891     QCA_WLAN_VENDOR_ATTR_FEATURE_SET_MAX =
    892         QCA_WLAN_VENDOR_ATTR_FEATURE_SET_AFTER_LAST - 1,
    893 };
    894 
    895 enum qca_wlan_vendor_attr_set_scanning_mac_oui
    896 {
    897     QCA_WLAN_VENDOR_ATTR_SET_SCANNING_MAC_OUI_INVALID = 0,
    898     /* An array of 3 x Unsigned 8-bit value */
    899     QCA_WLAN_VENDOR_ATTR_SET_SCANNING_MAC_OUI = 1,
    900     /* keep last */
    901     QCA_WLAN_VENDOR_ATTR_SET_SCANNING_MAC_OUI_AFTER_LAST,
    902     QCA_WLAN_VENDOR_ATTR_SET_SCANNING_MAC_OUI_MAX =
    903         QCA_WLAN_VENDOR_ATTR_SET_SCANNING_MAC_OUI_AFTER_LAST - 1,
    904 };
    905 
    906 enum qca_wlan_vendor_attr_set_no_dfs_flag
    907 {
    908     QCA_WLAN_VENDOR_ATTR_SET_NO_DFS_FLAG_INVALID = 0,
    909     /* Unsigned 32-bit value */
    910     QCA_WLAN_VENDOR_ATTR_SET_NO_DFS_FLAG = 1,
    911     /* keep last */
    912     QCA_WLAN_VENDOR_ATTR_SET_NO_DFS_FLAG_AFTER_LAST,
    913     QCA_WLAN_VENDOR_ATTR_SET_NO_DFS_FLAG_MAX =
    914         QCA_WLAN_VENDOR_ATTR_SET_NO_DFS_FLAG_AFTER_LAST - 1,
    915 };
    916 
    917 /* NL attributes for data used by
    918  * QCA_NL80211_VENDOR_SUBCMD_GET_CONCURRENCY_MATRIX sub command.
    919  */
    920 enum qca_wlan_vendor_attr_get_concurrency_matrix
    921 {
    922     QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_INVALID = 0,
    923     /* Unsigned 32-bit value */
    924     QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_CONFIG_PARAM_SET_SIZE_MAX = 1,
    925     /* Unsigned 32-bit value */
    926     QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_RESULTS_SET_SIZE = 2,
    927     /* An array of SET_SIZE x Unsigned 32bit values representing
    928      * concurrency combinations.
    929      */
    930     QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_RESULTS_SET = 3,
    931     /* keep last */
    932     QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_AFTER_LAST,
    933     QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_MAX =
    934         QCA_WLAN_VENDOR_ATTR_GET_CONCURRENCY_MATRIX_AFTER_LAST - 1,
    935 };
    936 
    937 /* NL attributes for data used by
    938  * QCA_NL80211_VENDOR_SUBCMD_SET|GET_WIFI_CONFIGURATION sub commands.
    939  */
    940 enum qca_wlan_vendor_attr_wifi_config {
    941     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_INVALID = 0,
    942     /* Unsigned 32-bit value */
    943     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_DYNAMIC_DTIM = 1,
    944     /* Unsigned 32-bit value */
    945     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_STATS_AVG_FACTOR = 2,
    946     /* Unsigned 32-bit value */
    947     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_GUARD_TIME = 3,
    948     /* Unsigned 32-bit value */
    949     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_FINE_TIME_MEASUREMENT = 4,
    950     /* Unsigned 32-bit value */
    951     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_TX_RATE = 5,
    952     /* Unsigned 32-bit value */
    953     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_PENALIZE_AFTER_NCONS_BEACON_MISS = 6,
    954     /* keep last */
    955     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_AFTER_LAST,
    956     QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_MAX =
    957         QCA_WLAN_VENDOR_ATTR_WIFI_CONFIG_AFTER_LAST - 1,
    958 };
    959 
    960 enum qca_wlan_epno_type
    961 {
    962     QCA_WLAN_EPNO,
    963     QCA_WLAN_PNO
    964 };
    965 
    966 #define EPNO_NO_NETWORKS 0
    967 
    968 enum qca_wlan_vendor_attr_pno_config_params {
    969     QCA_WLAN_VENDOR_ATTR_PNO_INVALID = 0,
    970     /* NL attributes for data used by
    971      * QCA_NL80211_VENDOR_SUBCMD_PNO_SET_PASSPOINT_LIST sub command.
    972      */
    973     /* Unsigned 32-bit value */
    974     QCA_WLAN_VENDOR_ATTR_PNO_PASSPOINT_LIST_PARAM_NUM = 1,
    975     /* Array of nested QCA_WLAN_VENDOR_ATTR_PNO_PASSPOINT_NETWORK_PARAM_*
    976      * attributes. Array size =
    977      * QCA_WLAN_VENDOR_ATTR_PNO_PASSPOINT_LIST_PARAM_NUM.
    978      */
    979     QCA_WLAN_VENDOR_ATTR_PNO_PASSPOINT_LIST_PARAM_NETWORK_ARRAY = 2,
    980 
    981     /* Unsigned 32-bit value */
    982     QCA_WLAN_VENDOR_ATTR_PNO_PASSPOINT_NETWORK_PARAM_ID = 3,
    983     /* An array of 256 x Unsigned 8-bit value; NULL terminated UTF8 encoded
    984      * realm, 0 if unspecified.
    985      */
    986     QCA_WLAN_VENDOR_ATTR_PNO_PASSPOINT_NETWORK_PARAM_REALM = 4,
    987     /* An array of 16 x Unsigned 32-bit value; roaming consortium ids to match,
    988      * 0 if unspecified.
    989      */
    990     QCA_WLAN_VENDOR_ATTR_PNO_PASSPOINT_NETWORK_PARAM_ROAM_CNSRTM_ID = 5,
    991     /* An array of 6 x Unsigned 8-bit value; mcc/mnc combination, 0s if
    992     *  unspecified.
    993     */
    994     QCA_WLAN_VENDOR_ATTR_PNO_PASSPOINT_NETWORK_PARAM_ROAM_PLMN = 6,
    995 
    996 
    997     /* NL attributes for data used by
    998      * QCA_NL80211_VENDOR_SUBCMD_PNO_SET_LIST sub command.
    999      */
   1000     /* Unsigned 32-bit value */
   1001     QCA_WLAN_VENDOR_ATTR_PNO_SET_LIST_PARAM_NUM_NETWORKS = 7,
   1002     /* Array of nested
   1003      * QCA_WLAN_VENDOR_ATTR_PNO_SET_LIST_PARAM_EPNO_NETWORK_*
   1004      * attributes. Array size =
   1005      *            QCA_WLAN_VENDOR_ATTR_PNO_SET_LIST_PARAM_NUM_NETWORKS.
   1006      */
   1007     QCA_WLAN_VENDOR_ATTR_PNO_SET_LIST_PARAM_EPNO_NETWORKS_LIST = 8,
   1008     /* An array of 33 x Unsigned 8-bit value; NULL terminated SSID */
   1009     QCA_WLAN_VENDOR_ATTR_PNO_SET_LIST_PARAM_EPNO_NETWORK_SSID = 9,
   1010     /* Signed 8-bit value; threshold for considering this SSID as found,
   1011      * required granularity for this threshold is 4dBm to 8dBm
   1012      */
   1013     QCA_WLAN_VENDOR_ATTR_PNO_SET_LIST_PARAM_EPNO_NETWORK_RSSI_THRESHOLD = 10,
   1014     /* Unsigned 8-bit value; WIFI_PNO_FLAG_XXX */
   1015     QCA_WLAN_VENDOR_ATTR_PNO_SET_LIST_PARAM_EPNO_NETWORK_FLAGS = 11,
   1016     /* Unsigned 8-bit value; auth bit field for matching WPA IE */
   1017     QCA_WLAN_VENDOR_ATTR_PNO_SET_LIST_PARAM_EPNO_NETWORK_AUTH_BIT = 12,
   1018     /* Unsigned 8-bit to indicate ePNO type;
   1019      * It takes values from qca_wlan_epno_type
   1020      */
   1021     QCA_WLAN_VENDOR_ATTR_PNO_SET_LIST_PARAM_EPNO_TYPE = 13,
   1022 
   1023     /* Nested attribute to send the channel list */
   1024     QCA_WLAN_VENDOR_ATTR_PNO_SET_LIST_PARAM_EPNO_CHANNEL_LIST = 14,
   1025 
   1026     /* Unsigned 32-bit value; indicates the Interval between PNO scan
   1027      * cycles in msec
   1028      */
   1029     QCA_WLAN_VENDOR_ATTR_PNO_SET_LIST_PARAM_EPNO_SCAN_INTERVAL = 15,
   1030     QCA_WLAN_VENDOR_ATTR_EPNO_MIN5GHZ_RSSI = 16,
   1031     QCA_WLAN_VENDOR_ATTR_EPNO_MIN24GHZ_RSSI = 17,
   1032     QCA_WLAN_VENDOR_ATTR_EPNO_INITIAL_SCORE_MAX = 18,
   1033     QCA_WLAN_VENDOR_ATTR_EPNO_CURRENT_CONNECTION_BONUS = 19,
   1034     QCA_WLAN_VENDOR_ATTR_EPNO_SAME_NETWORK_BONUS = 20,
   1035     QCA_WLAN_VENDOR_ATTR_EPNO_SECURE_BONUS = 21,
   1036     QCA_WLAN_VENDOR_ATTR_EPNO_BAND5GHZ_BONUS = 22,
   1037 
   1038     /* keep last */
   1039     QCA_WLAN_VENDOR_ATTR_PNO_AFTER_LAST,
   1040     QCA_WLAN_VENDOR_ATTR_PNO_MAX =
   1041         QCA_WLAN_VENDOR_ATTR_PNO_AFTER_LAST - 1,
   1042 };
   1043 
   1044 enum qca_wlan_vendor_attr_roaming_config_params {
   1045     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_INVALID = 0,
   1046 
   1047     QCA_WLAN_VENDOR_ATTR_ROAMING_SUBCMD = 1,
   1048     QCA_WLAN_VENDOR_ATTR_ROAMING_REQ_ID = 2,
   1049 
   1050     /* Attributes for wifi_set_ssid_white_list */
   1051     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_WHITE_LIST_SSID_NUM_NETWORKS = 3,
   1052     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_WHITE_LIST_SSID_LIST = 4,
   1053     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_WHITE_LIST_SSID = 5,
   1054 
   1055     /* Attributes for set_roam_params */
   1056     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_A_BAND_BOOST_THRESHOLD = 6,
   1057     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_A_BAND_PENALTY_THRESHOLD = 7,
   1058     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_A_BAND_BOOST_FACTOR = 8,
   1059     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_A_BAND_PENALTY_FACTOR = 9,
   1060     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_A_BAND_MAX_BOOST = 10,
   1061     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_LAZY_ROAM_HISTERESYS = 11,
   1062     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_ALERT_ROAM_RSSI_TRIGGER = 12,
   1063 
   1064     /* Attribute for set_lazy_roam*/
   1065     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_LAZY_ROAM_ENABLE = 13,
   1066 
   1067     /* Attribute for set_lazy_roam with preferences*/
   1068     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_BSSID_PREFS = 14,
   1069     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_LAZY_ROAM_NUM_BSSID = 15,
   1070     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_LAZY_ROAM_BSSID = 16,
   1071     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_LAZY_ROAM_RSSI_MODIFIER = 17,
   1072 
   1073     /* Attribute for set_ blacklist bssid params */
   1074     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_BSSID_PARAMS = 18,
   1075     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_BSSID_PARAMS_NUM_BSSID = 19,
   1076     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_SET_BSSID_PARAMS_BSSID = 20,
   1077 
   1078     /* keep last */
   1079     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_AFTER_LAST,
   1080     QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_MAX =
   1081         QCA_WLAN_VENDOR_ATTR_ROAMING_PARAM_AFTER_LAST - 1,
   1082 };
   1083 
   1084 /*
   1085  * QCA_NL80211_VENDOR_SUBCMD_ROAM sub commands.
   1086  */
   1087 enum qca_wlan_vendor_attr_roam_subcmd
   1088 {
   1089    QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_INVALID = 0,
   1090    QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_SSID_WHITE_LIST = 1,
   1091    QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_SET_GSCAN_ROAM_PARAMS = 2,
   1092    QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_SET_LAZY_ROAM = 3,
   1093    QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_SET_BSSID_PREFS = 4,
   1094    QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_SET_BSSID_PARAMS = 5,
   1095    QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_SET_BLACKLIST_BSSID = 6,
   1096 
   1097    /* KEEP LAST */
   1098    QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_AFTER_LAST,
   1099    QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_MAX =
   1100         QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_AFTER_LAST - 1,
   1101 };
   1102 
   1103 /* NL attributes for data used by
   1104  * QCA_NL80211_VENDOR_SUBCMD_GET_WIFI_INFO sub command.
   1105  */
   1106 enum qca_wlan_vendor_attr_get_wifi_info {
   1107     QCA_WLAN_VENDOR_ATTR_WIFI_INFO_GET_INVALID = 0,
   1108     QCA_WLAN_VENDOR_ATTR_WIFI_INFO_DRIVER_VERSION     = 1,
   1109     QCA_WLAN_VENDOR_ATTR_WIFI_INFO_FIRMWARE_VERSION   = 2,
   1110     /* keep last */
   1111     QCA_WLAN_VENDOR_ATTR_WIFI_INFO_GET_AFTER_LAST,
   1112     QCA_WLAN_VENDOR_ATTR_WIFI_INFO_GET_MAX  =
   1113            QCA_WLAN_VENDOR_ATTR_WIFI_INFO_GET_AFTER_LAST - 1,
   1114 };
   1115 /* NL attributes for data used by
   1116  * QCA_NL80211_VENDOR_SUBCMD_WIFI_LOGGER_START sub command.
   1117  */
   1118 enum qca_wlan_vendor_attr_wifi_logger_start {
   1119     QCA_WLAN_VENDOR_ATTR_WIFI_LOGGER_START_INVALID = 0,
   1120     QCA_WLAN_VENDOR_ATTR_WIFI_LOGGER_RING_ID = 1,
   1121     QCA_WLAN_VENDOR_ATTR_WIFI_LOGGER_VERBOSE_LEVEL = 2,
   1122     QCA_WLAN_VENDOR_ATTR_WIFI_LOGGER_FLAGS = 3,
   1123     /* keep last */
   1124     QCA_WLAN_VENDOR_ATTR_WIFI_LOGGER_START_AFTER_LAST,
   1125     QCA_WLAN_VENDOR_ATTR_WIFI_LOGGER_START_GET_MAX  =
   1126         QCA_WLAN_VENDOR_ATTR_WIFI_LOGGER_START_AFTER_LAST - 1,
   1127 };
   1128 
   1129 enum qca_wlan_vendor_attr_logger_results
   1130 {
   1131     QCA_WLAN_VENDOR_ATTR_LOGGER_RESULTS_INVALID = 0,
   1132 
   1133     /* Unsigned 32-bit value; must match the request Id supplied by Wi-Fi HAL
   1134      * in the corresponding subcmd NL msg
   1135      */
   1136     QCA_WLAN_VENDOR_ATTR_LOGGER_RESULTS_REQUEST_ID,
   1137 
   1138     /* Unsigned 32-bit value; used to indicate the size of memory
   1139        dump to be allocated.
   1140      */
   1141     QCA_WLAN_VENDOR_ATTR_LOGGER_RESULTS_MEMDUMP_SIZE,
   1142 
   1143     /* keep last */
   1144     QCA_WLAN_VENDOR_ATTR_LOGGER_RESULTS_AFTER_LAST,
   1145     QCA_WLAN_VENDOR_ATTR_LOGGER_RESULTS_MAX =
   1146         QCA_WLAN_VENDOR_ATTR_LOGGER_RESULTS_AFTER_LAST - 1,
   1147 
   1148 };
   1149 
   1150 enum qca_wlan_offloaded_packets_sending_control
   1151 {
   1152     QCA_WLAN_OFFLOADED_PACKETS_SENDING_CONTROL_INVALID = 0,
   1153     QCA_WLAN_OFFLOADED_PACKETS_SENDING_START,
   1154     QCA_WLAN_OFFLOADED_PACKETS_SENDING_STOP
   1155 };
   1156 
   1157 enum qca_wlan_vendor_attr_offloaded_packets
   1158 {
   1159     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_INVALID = 0,
   1160 
   1161     /* Takes valid value from the enum
   1162      * qca_wlan_offloaded_packets_sending_control
   1163      */
   1164     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_SENDING_CONTROL,
   1165 
   1166     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_REQUEST_ID,
   1167 
   1168     /* Packet in hex format */
   1169     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_IP_PACKET,
   1170     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_SRC_MAC_ADDR,
   1171     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_DST_MAC_ADDR,
   1172     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_PERIOD,
   1173 
   1174     /* keep last */
   1175     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_AFTER_LAST,
   1176     QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_MAX =
   1177         QCA_WLAN_VENDOR_ATTR_OFFLOADED_PACKETS_AFTER_LAST - 1,
   1178 
   1179 };
   1180 
   1181 enum qca_wlan_rssi_monitoring_control
   1182 {
   1183     QCA_WLAN_RSSI_MONITORING_CONTROL_INVALID = 0,
   1184     QCA_WLAN_RSSI_MONITORING_START,
   1185     QCA_WLAN_RSSI_MONITORING_STOP,
   1186 };
   1187 
   1188 enum qca_wlan_vendor_attr_rssi_monitoring
   1189 {
   1190     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_INVALID = 0,
   1191 
   1192     /* Takes valid value from the enum
   1193      * qca_wlan_rssi_monitoring_control
   1194      */
   1195     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_CONTROL,
   1196 
   1197     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_REQUEST_ID,
   1198 
   1199     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_MAX_RSSI,
   1200     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_MIN_RSSI,
   1201 
   1202     /* attributes to be used/received in callback */
   1203     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_CUR_BSSID,
   1204     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_CUR_RSSI,
   1205 
   1206     /* keep last */
   1207     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_AFTER_LAST,
   1208     QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_MAX =
   1209         QCA_WLAN_VENDOR_ATTR_RSSI_MONITORING_AFTER_LAST - 1,
   1210 
   1211 };
   1212 
   1213 enum qca_wlan_vendor_attr_ndp_params
   1214 {
   1215     QCA_WLAN_VENDOR_ATTR_NDP_PARAM_INVALID = 0,
   1216     /* enum of sub commands */
   1217     QCA_WLAN_VENDOR_ATTR_NDP_SUBCMD,
   1218     /* Unsigned 16-bit value */
   1219     QCA_WLAN_VENDOR_ATTR_NDP_TRANSACTION_ID,
   1220     /* NL attributes for data used NDP SUB cmds */
   1221     /* Unsigned 16-bit value indicating a service info */
   1222     QCA_WLAN_VENDOR_ATTR_NDP_SERVICE_INSTANCE_ID,
   1223     /* Unsigned 32-bit value; channel frequency */
   1224     QCA_WLAN_VENDOR_ATTR_NDP_CHANNEL_SPEC_CHANNEL,
   1225     /* Interface Discovery MAC address. An array of 6 Unsigned int8 */
   1226     QCA_WLAN_VENDOR_ATTR_NDP_PEER_DISCOVERY_MAC_ADDR,
   1227     /* Interface name on which NDP is being created */
   1228     QCA_WLAN_VENDOR_ATTR_NDP_IFACE_STR,
   1229     /* Unsigned 32-bit value for security */
   1230     QCA_WLAN_VENDOR_ATTR_NDP_CONFIG_SECURITY,
   1231     /* Unsigned 32-bit value for Qos */
   1232     QCA_WLAN_VENDOR_ATTR_NDP_CONFIG_QOS,
   1233     /* Unsigned 16-bit value for app info length */
   1234     QCA_WLAN_VENDOR_ATTR_NDP_APP_INFO_LEN,
   1235     /* Array of u8: len = QCA_WLAN_VENDOR_ATTR_NAN_DP_APP_INFO_LEN */
   1236     QCA_WLAN_VENDOR_ATTR_NDP_APP_INFO,
   1237     /* Unsigned 32-bit value for NDP instance Id */
   1238     QCA_WLAN_VENDOR_ATTR_NDP_INSTANCE_ID,
   1239     /* Unsigned 32-bit value for schedule update response code accept/reject */
   1240     QCA_WLAN_VENDOR_ATTR_NDP_SCHEDULE_RESPONSE_CODE,
   1241     /* Unsigned 32-bit value for schedule status success/fail */
   1242     QCA_WLAN_VENDOR_ATTR_NDP_SCHEDULE_STATUS_CODE,
   1243     /* NDI MAC address. An array of 6 Unsigned int8 */
   1244     QCA_WLAN_VENDOR_ATTR_NDP_NDI_MAC_ADDR,
   1245 
   1246    /* KEEP LAST */
   1247    QCA_WLAN_VENDOR_ATTR_NDP_AFTER_LAST,
   1248    QCA_WLAN_VENDOR_ATTR_NDP_MAX =
   1249         QCA_WLAN_VENDOR_ATTR_NDP_AFTER_LAST - 1,
   1250 };
   1251 
   1252 enum qca_wlan_vendor_attr_ndp_cfg_security
   1253 {
   1254    /* Security info will be added when proposed in the specification */
   1255    QCA_WLAN_VENDOR_ATTR_NDP_SECURITY_TYPE = 1,
   1256 
   1257 };
   1258 
   1259 enum qca_wlan_vendor_attr_ndp_qos
   1260 {
   1261    /* Qos info will be added when proposed in the specification */
   1262    QCA_WLAN_VENDOR_ATTR_NDP_QOS_CONFIG = 1,
   1263 
   1264 };
   1265 
   1266 /*
   1267  * QCA_NL80211_VENDOR_SUBCMD_NDP sub commands.
   1268  */
   1269 enum qca_wlan_vendor_attr_ndp_sub_cmd_value
   1270 {
   1271    QCA_WLAN_VENDOR_ATTR_NDP_INTERFACE_CREATE = 1,
   1272    QCA_WLAN_VENDOR_ATTR_NDP_INTERFACE_DELETE = 2,
   1273    QCA_WLAN_VENDOR_ATTR_NDP_INITIATOR_REQUEST = 3,
   1274    QCA_WLAN_VENDOR_ATTR_NDP_INITIATOR_RESPONSE = 4,
   1275    QCA_WLAN_VENDOR_ATTR_NDP_RESPONDER_REQUEST = 5,
   1276    QCA_WLAN_VENDOR_ATTR_NDP_RESPONDER_RESPONSE = 6,
   1277    QCA_WLAN_VENDOR_ATTR_NDP_END_REQUEST = 7,
   1278    QCA_WLAN_VENDOR_ATTR_NDP_END_RESPONSE = 8,
   1279    QCA_WLAN_VENDOR_ATTR_NDP_SCHEDULE_UPDATE_REQUEST = 9,
   1280    QCA_WLAN_VENDOR_ATTR_NDP_SCHEDULE_UPDATE_RESPONSE = 10,
   1281    QCA_WLAN_VENDOR_ATTR_NDP_DATA_REQUEST_IND = 11,
   1282    QCA_WLAN_VENDOR_ATTR_NDP_CONFIRM_IND = 12,
   1283    QCA_WLAN_VENDOR_ATTR_NDP_SCHEDULE_UPDATE_IND = 13,
   1284    QCA_WLAN_VENDOR_ATTR_NDP_END_IND = 14
   1285 };
   1286 
   1287 #define PACKET_FILTER_ID 0
   1288 
   1289 enum packet_filter_sub_cmd
   1290 {
   1291     QCA_WLAN_SET_PACKET_FILTER = 1,
   1292     QCA_WLAN_GET_PACKET_FILTER_SIZE = 2,
   1293 };
   1294 
   1295 enum qca_wlan_vendor_attr_packet_filter
   1296 {
   1297     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_INVALID = 0,
   1298 
   1299     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_SUB_CMD,
   1300     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_VERSION,
   1301     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_ID,
   1302     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_TOTAL_LENGTH,
   1303     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_CURRENT_OFFSET,
   1304     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_PROGRAM,
   1305 
   1306     /* keep last */
   1307     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_AFTER_LAST,
   1308     QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_MAX =
   1309         QCA_WLAN_VENDOR_ATTR_PACKET_FILTER_AFTER_LAST - 1,
   1310 
   1311 };
   1312 
   1313 enum qca_wlan_vendor_attr_nd_offload
   1314 {
   1315     QCA_WLAN_VENDOR_ATTR_ND_OFFLOAD_INVALID = 0,
   1316 
   1317     QCA_WLAN_VENDOR_ATTR_ND_OFFLOAD_FLAG,
   1318 
   1319     /* keep last */
   1320     QCA_WLAN_VENDOR_ATTR_ND_OFFLOAD_AFTER_LAST,
   1321     QCA_WLAN_VENDOR_ATTR_ND_OFFLOAD_MAX =
   1322         QCA_WLAN_VENDOR_ATTR_ND_OFFLOAD_AFTER_LAST - 1,
   1323 
   1324 };
   1325 
   1326 enum qca_wlan_vendor_drv_info
   1327 {
   1328     QCA_WLAN_VENDOR_ATTR_DRV_INFO_INVALID = 0,
   1329 
   1330     QCA_WLAN_VENDOR_ATTR_DRV_INFO_BUS_SIZE,
   1331 
   1332     /* keep last */
   1333     QCA_WLAN_VENDOR_ATTR_DRV_INFO_AFTER_LAST,
   1334     QCA_WLAN_VENDOR_ATTR_DRV_INFO_MAX =
   1335         QCA_WLAN_VENDOR_ATTR_DRV_INFO_AFTER_LAST - 1,
   1336 
   1337 };
   1338 
   1339 /* NL attributes for data used by
   1340  * QCA_NL80211_VENDOR_SUBCMD_GET_WAKE_REASON_STATS  sub command.
   1341  */
   1342 enum qca_wlan_vendor_attr_wake_stats
   1343 {
   1344     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_INVALID = 0,
   1345     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_TOTAL_CMD_EVENT_WAKE,
   1346     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_CMD_EVENT_WAKE_CNT_PTR,
   1347     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_CMD_EVENT_WAKE_CNT_SZ,
   1348     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_TOTAL_DRIVER_FW_LOCAL_WAKE,
   1349     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_DRIVER_FW_LOCAL_WAKE_CNT_PTR,
   1350     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_DRIVER_FW_LOCAL_WAKE_CNT_SZ,
   1351     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_TOTAL_RX_DATA_WAKE,
   1352     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_RX_UNICAST_CNT,
   1353     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_RX_MULTICAST_CNT,
   1354     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_RX_BROADCAST_CNT,
   1355     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_ICMP_PKT,
   1356     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_ICMP6_PKT,
   1357     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_ICMP6_RA,
   1358     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_ICMP6_NA,
   1359     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_ICMP6_NS,
   1360     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_ICMP4_RX_MULTICAST_CNT,
   1361     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_ICMP6_RX_MULTICAST_CNT,
   1362     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_OTHER_RX_MULTICAST_CNT,
   1363     /* keep last */
   1364     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_AFTER_LAST,
   1365     QCA_WLAN_VENDOR_ATTR_WAKE_STATS_MAX =
   1366         QCA_WLAN_VENDOR_ATTR_WAKE_STATS_AFTER_LAST - 1,
   1367 };
   1368 #endif
   1369