blob: 40df62559fa656c3b829e5dc28ba3d22198e465a [file] [log] [blame]
/******************************************************************************
*
* Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
* Copyright(c) 2016 - 2017 Intel Deutschland GmbH
* Copyright(c) 2018 Intel Corporation
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* * Neither the name Intel Corporation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*****************************************************************************/
#ifndef SRC_CONNECTIVITY_WLAN_DRIVERS_THIRD_PARTY_INTEL_IWLWIFI_IWL_VENDOR_CMD_H_
#define SRC_CONNECTIVITY_WLAN_DRIVERS_THIRD_PARTY_INTEL_IWLWIFI_IWL_VENDOR_CMD_H_
#include "third_party/iwlwifi/platform/compiler.h"
#define INTEL_OUI 0x001735
/**
* enum iwl_mvm_vendor_cmd - supported vendor commands
* @IWL_MVM_VENDOR_CMD_SET_LOW_LATENCY: set low-latency mode for the given
* virtual interface
* @IWL_MVM_VENDOR_CMD_GET_LOW_LATENCY: query low-latency mode
* @IWL_MVM_VENDOR_CMD_TCM_EVENT: TCM event
* @IWL_MVM_VENDOR_CMD_LTE_STATE: inform the LTE modem state
* @IWL_MVM_VENDOR_CMD_LTE_COEX_CONFIG_INFO: configure LTE-Coex static
* parameters
* @IWL_MVM_VENDOR_CMD_LTE_COEX_DYNAMIC_INFO: configure LTE dynamic parameters
* @IWL_MVM_VENDOR_CMD_LTE_COEX_SPS_INFO: configure semi oersistent info
* @IWL_MVM_VENDOR_CMD_LTE_COEX_WIFI_RPRTD_CHAN: Wifi reported channel as
* calculated by the coex-manager
* @IWL_MVM_VENDOR_CMD_SET_COUNTRY: set a new mcc regulatory information
* @IWL_MVM_VENDOR_CMD_PROXY_FRAME_FILTERING: filter GTK, gratuitous
* ARP & unsolicited NA
* @IWL_MVM_VENDOR_CMD_TDLS_PEER_CACHE_ADD: add a peer to the TDLS peer cache
* @IWL_MVM_VENDOR_CMD_TDLS_PEER_CACHE_DEL: delete a peer from the TDLS peer
* cache
* @IWL_MVM_VENDOR_CMD_TDLS_PEER_CACHE_QUERY: query traffic statistics for a
* peer in the TDLS cache
* @IWL_MVM_VENDOR_CMD_SET_NIC_TXPOWER_LIMIT: set the NIC's (SAR) TX power limit
* @IWL_MVM_VENDOR_CMD_OPPPS_WA: wa to pass Sigma test - applicable code is
* claused under CPTCFG_IWLMVM_P2P_OPPPS_TEST_WA
* @IWL_MVM_VENDOR_CMD_GSCAN_GET_CAPABILITIES: get driver gscan capabilities as
* specified in %IWL_MVM_VENDOR_ATTR_GSCAN_*
* @IWL_MVM_VENDOR_CMD_GSCAN_START: set gscan parameters and start gscan
* @IWL_MVM_VENDOR_CMD_GSCAN_STOP: stop a previously started gscan
* @IWL_MVM_VENDOR_CMD_GSCAN_RESULTS_EVENT: event that reports scan results
* from gscan. This event is sent when the scan results buffer has reached
* the report threshold, or when scanning a bucket with report mode
* %IWL_MVM_VENDOR_GSCAN_REPORT_BUFFER_COMPLETE was completed.
* @IWL_MVM_VENDOR_CMD_GSCAN_SET_BSSID_HOTLIST: set a list of AP's to track
* changes in their RSSI and report scan results history when RSSI goes
* above/below threshold. Sending this command with an empty list of AP's
* will cancel previous set_bssid_hotlist request.
* @IWL_MVM_VENDOR_CMD_GSCAN_SET_SIGNIFICANT_CHANGE: set a list of APs to track
* significant changes in their RSSI. Sending this command with an empty
* list of AP's will cancel previous set_significant_change request.
* @IWL_MVM_VENDOR_CMD_GSCAN_HOTLIST_CHANGE_EVENT: event that indicates that an
* AP from the BSSID hotlist was lost or found.
* @IWL_MVM_VENDOR_CMD_GSCAN_SIGNIFICANT_CHANGE_EVENT: event that indicates a
* significant change in the RSSI level of beacons received from a certain
* AP.
* @IWL_MVM_VENDOR_CMD_RXFILTER: Set/clear rx filter.
* @IWL_MVM_VENDOR_CMD_GSCAN_BEACON_EVENT: event that reports a
* beacon/probe response was received, and contains information from the
* beacon/probe response. This event is sent for buckets with report mode
* set to %IWL_MVM_VENDOR_GSCAN_REPORT_BUFFER_COMPLETE_RESULTS.
* @IWL_MVM_VENDOR_CMD_DBG_COLLECT: collect debug data
* @IWL_MVM_VENDOR_CMD_NAN_FAW_CONF: Configure post NAN further availability.
* @IWL_MVM_VENDOR_CMD_SET_SAR_PROFILE: set the NIC's tx power limits
* according to the specified tx power profiles. In this command
* %IWL_MVM_VENDOR_ATTR_SAR_CHAIN_A_PROFILE and
* %IWL_MVM_VENDOR_ATTR_SAR_CHAIN_B_PROFILE must be passed.
* @IWL_MVM_VENDOR_CMD_GET_SAR_PROFILE_INFO: get sar profile information.
* This command provides the user with the following information:
* Number of enabled SAR profiles, current used SAR profile per chain.
* @IWL_MVM_VENDOR_CMD_NEIGHBOR_REPORT_REQUEST: Send a neighbor report request
* to the AP we are currently connected to. The request parameters are
* specified with %IWL_MVM_VENDOR_ATTR_NR_*.
* @IWL_MVM_VENDOR_CMD_NEIGHBOR_REPORT_RESPONSE: An event that reports a list of
* neighbor APs received in a neighbor report response frame. The report is
* a nested list of &enum iwl_mvm_vendor_neighbor_report.
* @IWL_MVM_VENDOR_CMD_GET_SAR_GEO_PROFILE: get sar geographic profile
* information. This command provides the user with the following
* information: Per band tx power offset for chain A and chain B as well as
* maximum allowed tx power on this band.
* @IWL_MVM_VENDOR_CMD_TEST_FIPS: request the output of a certain function for
* the specified test vector. The test vector is specified with one of:
* &IWL_MVM_VENDOR_ATTR_FIPS_TEST_VECTOR_SHA,
* &IWL_MVM_VENDOR_ATTR_FIPS_TEST_VECTOR_HMAC, or
* &IWL_MVM_VENDOR_ATTR_FIPS_TEST_VECTOR_KDF. Only one test vector shall be
* specified per test command.
* The result output is sent back in &IWL_MVM_VENDOR_ATTR_FIPS_TEST_RESULT
* attribute. In case the function failed to produce an output for the
* requested test vector, &IWL_MVM_VENDOR_ATTR_FIPS_TEST_RESULT is not set.
* @IWL_MVM_VENDOR_CMD_FMAC_CONNECT_PARAMS: set fmac specific parameters for
* future connect commands. These parameters will affect all following
* connect commands. To clear previous configuration, send the command with
* no attributes.
* @IWL_MVM_VENDOR_CMD_FMAC_CONFIG: set one of the fmac configuration options.
* &IWL_MVM_VENDOR_ATTR_FMAC_CONFIG_STR specifies the configuration string.
*/
enum iwl_mvm_vendor_cmd {
IWL_MVM_VENDOR_CMD_SET_LOW_LATENCY = 0x00,
IWL_MVM_VENDOR_CMD_GET_LOW_LATENCY = 0x01,
IWL_MVM_VENDOR_CMD_TCM_EVENT = 0x02,
IWL_MVM_VENDOR_CMD_LTE_STATE = 0x03,
IWL_MVM_VENDOR_CMD_LTE_COEX_CONFIG_INFO = 0x04,
IWL_MVM_VENDOR_CMD_LTE_COEX_DYNAMIC_INFO = 0x05,
IWL_MVM_VENDOR_CMD_LTE_COEX_SPS_INFO = 0x06,
IWL_MVM_VENDOR_CMD_LTE_COEX_WIFI_RPRTD_CHAN = 0x07,
IWL_MVM_VENDOR_CMD_SET_COUNTRY = 0x08,
IWL_MVM_VENDOR_CMD_PROXY_FRAME_FILTERING = 0x09,
IWL_MVM_VENDOR_CMD_TDLS_PEER_CACHE_ADD = 0x0a,
IWL_MVM_VENDOR_CMD_TDLS_PEER_CACHE_DEL = 0x0b,
IWL_MVM_VENDOR_CMD_TDLS_PEER_CACHE_QUERY = 0x0c,
IWL_MVM_VENDOR_CMD_SET_NIC_TXPOWER_LIMIT = 0x0d,
IWL_MVM_VENDOR_CMD_OPPPS_WA = 0x0e,
IWL_MVM_VENDOR_CMD_GSCAN_GET_CAPABILITIES = 0x0f,
IWL_MVM_VENDOR_CMD_GSCAN_START = 0x10,
IWL_MVM_VENDOR_CMD_GSCAN_STOP = 0x11,
IWL_MVM_VENDOR_CMD_GSCAN_RESULTS_EVENT = 0x12,
IWL_MVM_VENDOR_CMD_GSCAN_SET_BSSID_HOTLIST = 0x13,
IWL_MVM_VENDOR_CMD_GSCAN_SET_SIGNIFICANT_CHANGE = 0x14,
IWL_MVM_VENDOR_CMD_GSCAN_HOTLIST_CHANGE_EVENT = 0x15,
IWL_MVM_VENDOR_CMD_GSCAN_SIGNIFICANT_CHANGE_EVENT = 0x16,
IWL_MVM_VENDOR_CMD_RXFILTER = 0x17,
IWL_MVM_VENDOR_CMD_GSCAN_BEACON_EVENT = 0x18,
IWL_MVM_VENDOR_CMD_DBG_COLLECT = 0x19,
IWL_MVM_VENDOR_CMD_NAN_FAW_CONF = 0x1a,
/* 0x1b is deprecated */
IWL_MVM_VENDOR_CMD_SET_SAR_PROFILE = 0x1c,
IWL_MVM_VENDOR_CMD_GET_SAR_PROFILE_INFO = 0x1d,
IWL_MVM_VENDOR_CMD_NEIGHBOR_REPORT_REQUEST = 0x1e,
IWL_MVM_VENDOR_CMD_NEIGHBOR_REPORT_RESPONSE = 0x1f,
IWL_MVM_VENDOR_CMD_GET_SAR_GEO_PROFILE = 0x20,
IWL_MVM_VENDOR_CMD_TEST_FIPS = 0x21,
IWL_MVM_VENDOR_CMD_FMAC_CONNECT_PARAMS = 0x22,
IWL_MVM_VENDOR_CMD_FMAC_CONFIG = 0x23,
};
/**
* enum iwl_mvm_vendor_load - traffic load identifiers
* @IWL_MVM_VENDOR_LOAD_LOW: low load: less than 10% airtime usage
* @IWL_MVM_VENDOR_LOAD_MEDIUM: medium load: 10% or more, but less than 50%
* @IWL_MVM_VENDOR_LOAD_HIGH: high load: 50% or more
*
* Traffic load is calculated based on the percentage of airtime used
* (TX airtime is accounted as RTS+CTS+PPDU+ACK/BlockACK, RX airtime
* is just the PPDU's time)
*/
enum iwl_mvm_vendor_load {
IWL_MVM_VENDOR_LOAD_LOW,
IWL_MVM_VENDOR_LOAD_MEDIUM,
IWL_MVM_VENDOR_LOAD_HIGH,
};
/**
* enum iwl_mvm_vendor_gscan_report_mode - gscan scan results report modes
* @IWL_MVM_VENDOR_GSCAN_REPORT_BUFFER_FULL: report that scan results are
* available only when the scan results buffer reaches the report
* threshold. The report threshold is set for each bucket.
* @IWL_MVM_VENDOR_GSCAN_REPORT_BUFFER_EACH_SCAN: report that scan results are
* available when scanning of this bucket is complete.
* @IWL_MVM_VENDOR_GSCAN_REPORT_BUFFER_FULL_RESULTS: forward scan results
* (beacons/probe responses) in real time to userspace.
* @IWL_MVM_VENDOR_GSCAN_REPORT_HISTORY_RESERVED: reserved.
* @IWL_MVM_VENDOR_GSCAN_REPORT_NO_BATCH: do not fill scan history buffer.
* @NUM_IWL_MVM_VENDOR_GSCAN_REPORT: number of report mode attributes.
*
* Note that these must match the firmware API.
*/
enum iwl_mvm_vendor_gscan_report_mode {
IWL_MVM_VENDOR_GSCAN_REPORT_BUFFER_FULL,
IWL_MVM_VENDOR_GSCAN_REPORT_BUFFER_EACH_SCAN,
IWL_MVM_VENDOR_GSCAN_REPORT_BUFFER_FULL_RESULTS,
IWL_MVM_VENDOR_GSCAN_REPORT_HISTORY_RESERVED,
IWL_MVM_VENDOR_GSCAN_REPORT_NO_BATCH,
NUM_IWL_MVM_VENDOR_GSCAN_REPORT,
};
/**
* enum iwl_mvm_vendor_gscan_channel_spec - gscan channel specification
* @IWL_MVM_VENDOR_CHANNEL_SPEC_INVALID: attribute number 0 is reserved
* @IWL_MVM_VENDOR_CHANNEL_SPEC_CHANNEL: channel number
* @IWL_MVM_VENDOR_CHANNEL_SPEC_DWELL_TIME: uint16_t attribute specifying dwell
* time on this channel.
* @IWL_MVM_VENDOR_CHANNEL_SPEC_PASSIVE: flag attribute. If set, passive
* scan should be performed on this channel.
* @NUM_IWL_MVM_VENDOR_CHANNEL_SPEC: number of channel spec attributes.
* @MAX_IWL_MVM_VENDOR_CHANNEL_SPEC: highest channel spec attribute number.
*/
enum iwl_mvm_vendor_gscan_channel_spec {
IWL_MVM_VENDOR_CHANNEL_SPEC_INVALID,
IWL_MVM_VENDOR_CHANNEL_SPEC_CHANNEL,
IWL_MVM_VENDOR_CHANNEL_SPEC_DWELL_TIME,
IWL_MVM_VENDOR_CHANNEL_SPEC_PASSIVE,
NUM_IWL_MVM_VENDOR_CHANNEL_SPEC,
MAX_IWL_MVM_VENDOR_CHANNEL_SPEC = NUM_IWL_MVM_VENDOR_CHANNEL_SPEC - 1,
};
/**
* enum iwl_mvm_vendor_gscan_bucket_spec - gscan bucket specification
* @IWL_MVM_VENDOR_BUCKET_SPEC_INVALID: attribute number 0 is reserved
* @IWL_MVM_VENDOR_BUCKET_SPEC_INDEX: bucket index
* @IWL_MVM_VENDOR_BUCKET_SPEC_BAND: band to scan as specified in
* &enum iwl_gscan_band. When not set, the channel list is used.
* @IWL_MVM_VENDOR_BUCKET_SPEC_PERIOD: interval between this bucket scans,
* in msecs.
* @IWL_MVM_VENDOR_BUCKET_SPEC_REPORT_MODE: when to report scan results.
* Available modes are specified in &enum iwl_mvm_vendor_report_mode.
* @IWL_MVM_VENDOR_BUCKET_SPEC_CHANNELS: array of channels to scan for this
* bucket. Each channel is specified with a nested attribute of
* %IWL_MVM_VENDOR_CHANNEL_SPEC. This channel list is used when
* %IWL_MVM_VENDOR_BUCKET_SPEC_BAND is set to
* %IWL_MVM_VENDOR_BAND_UNSPECIFIED.
* @IWL_MVM_VENDOR_BUCKET_SPEC_MAX_PERIOD: maximum scan interval. If it's
* non zero or different than period, then this bucket is an exponential
* back off bucket and the scan period will grow exponentially.
* @IWL_MVM_VENDOR_BUCKET_SPEC_EXPONENT: for exponential back off bucket,
* scan period calculation should be done according to the following:
* new_period = old_period * exponent
* @IWL_MVM_VENDOR_BUCKET_SPEC_STEP_CNT: for exponential back off bucket:
* number of scans to perform at a given period and until the exponent
* is applied.
* @NUM_IWL_MVM_VENDOR_BUCKET_SPEC: number of bucket spec attributes.
* @MAX_IWL_MVM_VENDOR_BUCKET_SPEC: highest bucket spec attribute number.
*/
enum iwl_mvm_vendor_gscan_bucket_spec {
IWL_MVM_VENDOR_BUCKET_SPEC_INVALID,
IWL_MVM_VENDOR_BUCKET_SPEC_INDEX,
IWL_MVM_VENDOR_BUCKET_SPEC_BAND,
IWL_MVM_VENDOR_BUCKET_SPEC_PERIOD,
IWL_MVM_VENDOR_BUCKET_SPEC_REPORT_MODE,
IWL_MVM_VENDOR_BUCKET_SPEC_CHANNELS,
IWL_MVM_VENDOR_BUCKET_SPEC_MAX_PERIOD,
IWL_MVM_VENDOR_BUCKET_SPEC_EXPONENT,
IWL_MVM_VENDOR_BUCKET_SPEC_STEP_CNT,
NUM_IWL_MVM_VENDOR_BUCKET_SPEC,
MAX_IWL_MVM_VENDOR_BUCKET_SPEC = NUM_IWL_MVM_VENDOR_BUCKET_SPEC - 1,
};
/**
* enum iwl_mvm_vendor_results_event_type - scan results available event type
* @IWL_MVM_VENDOR_RESULTS_NOTIF_BUFFER_FULL: scan results available was
* reported because scan results buffer has reached the report threshold.
* @IWL_MVM_VENDOR_RESULTS_NOTIF_BUCKET_END: scan results available was reported
* because scan of a bucket was completed.
* @NUM_IWL_VENDOR_RESULTS_NOTIF_EVENT_TYPE: number of defined gscan results
* notification event types.
*
* Note that these must match the firmware API.
*/
enum iwl_mvm_vendor_results_event_type {
IWL_MVM_VENDOR_RESULTS_NOTIF_BUFFER_FULL,
IWL_MVM_VENDOR_RESULTS_NOTIF_BUCKET_END,
NUM_IWL_VENDOR_RESULTS_NOTIF_EVENT_TYPE,
};
/**
* enum iwl_mvm_vendor_gscan_result - gscan scan result
* @IWL_MVM_VENDOR_GSCAN_RESULT_INVALID: attribute number 0 is reserved.
* @IWL_MVM_VENDOR_GSCAN_RESULT_TIMESTAMP: time since boot (in usecs) when
* the result was retrieved.
* @IWL_MVM_VENDOR_GSCAN_RESULT_SSID: SSID.
* @IWL_MVM_VENDOR_GSCAN_RESULT_BSSID: BSSID of the BSS (6 octets).
* @IWL_MVM_VENDOR_GSCAN_RESULT_CHANNEL: channel frequency in MHz.
* @IWL_MVM_VENDOR_GSCAN_RESULT_RSSI: signal strength in dB.
* @IWL_MVM_VENDOR_GSCAN_RESULT_FRAME: the whole beacon/probe response
* frame data including the header.
* @IWL_MVM_VENDOR_GSCAN_RESULT_BEACON_PERIOD: period advertised in the beacon.
* @IWL_MVM_VENDOR_GSCAN_RESULT_CAPABILITY: capabilities advertised in the
* beacon / probe response.
* @IWL_MVM_VENDOR_GSCAN_RESULT_PAD: used for padding, ignore
* @NUM_IWL_MVM_VENDOR_GSCAN_RESULT: number of scan result attributes.
* @MAX_IWL_MVM_VENDOR_GSCAN_RESULT: highest scan result attribute number.
*/
enum iwl_mvm_vendor_gscan_result {
IWL_MVM_VENDOR_GSCAN_RESULT_INVALID,
IWL_MVM_VENDOR_GSCAN_RESULT_TIMESTAMP,
IWL_MVM_VENDOR_GSCAN_RESULT_SSID,
IWL_MVM_VENDOR_GSCAN_RESULT_BSSID,
IWL_MVM_VENDOR_GSCAN_RESULT_CHANNEL,
IWL_MVM_VENDOR_GSCAN_RESULT_RSSI,
IWL_MVM_VENDOR_GSCAN_RESULT_FRAME,
IWL_MVM_VENDOR_GSCAN_RESULT_BEACON_PERIOD,
IWL_MVM_VENDOR_GSCAN_RESULT_CAPABILITY,
IWL_MVM_VENDOR_GSCAN_RESULT_PAD,
NUM_IWL_MVM_VENDOR_GSCAN_RESULT,
MAX_IWL_MVM_VENDOR_GSCAN_RESULT = NUM_IWL_MVM_VENDOR_GSCAN_RESULT - 1,
};
/**
* enum iwl_mvm_vendor_gscan_cached_scan_res - gscan cached scan result
* @IWL_MVM_VENDOR_GSCAN_CACHED_RES_INVALID: attribute number 0 is reserved.
* @IWL_MVM_VENDOR_GSCAN_CACHED_RES_SCAN_ID: unique ID for this cached result.
* @IWL_MVM_VENDOR_GSCAN_CACHED_RES_FLAGS: additional information about this
* scan iteration.
* @IWL_MVM_VENDOR_GSCAN_CACHED_RES_APS: APs reported in this scan iteration.
* @NUM_IWL_MVM_VENDOR_GSCAN_CACHED_RES: number of scan result attributes.
* @MAX_IWL_MVM_VENDOR_GSCAN_CACHED_RES: highest scan result attribute number.
*/
enum iwl_mvm_vendor_gscan_cached_scan_res {
IWL_MVM_VENDOR_GSCAN_CACHED_RES_INVALID,
IWL_MVM_VENDOR_GSCAN_CACHED_RES_SCAN_ID,
IWL_MVM_VENDOR_GSCAN_CACHED_RES_FLAGS,
IWL_MVM_VENDOR_GSCAN_CACHED_RES_APS,
NUM_IWL_MVM_VENDOR_GSCAN_CACHED_RES,
MAX_IWL_MVM_VENDOR_GSCAN_CACHED_RES = NUM_IWL_MVM_VENDOR_GSCAN_CACHED_RES - 1,
};
/**
* enum iwl_mvm_vendor_ap_threshold_param - parameters for tracking AP's RSSI
* @IWL_MVM_VENDOR_AP_THRESHOLD_PARAM_INVALID: attribute number 0 is reserved.
* @IWL_MVM_VENDOR_AP_BSSID: BSSID of the BSS (6 octets)
* @IWL_MVM_VENDOR_AP_LOW_RSSI_THRESHOLD: low RSSI threshold. in dB.
* @IWL_MVM_VENDOR_AP_HIGH_RSSI_THRESHOLD: high RSSI threshold. in dB.
* @NUM_IWL_MVM_VENDOR_GSCAN_AP_THRESHOLD_PARAM: number of ap threshold param
* attributes.
* @MAX_IWL_MVM_VENDOR_GSCAN_AP_THRESHOLD_PARAM: highest ap threshold param
* attribute number.
*/
enum iwl_mvm_vendor_ap_threshold_param {
IWL_MVM_VENDOR_AP_THRESHOLD_PARAM_INVALID,
IWL_MVM_VENDOR_AP_BSSID,
IWL_MVM_VENDOR_AP_LOW_RSSI_THRESHOLD,
IWL_MVM_VENDOR_AP_HIGH_RSSI_THRESHOLD,
NUM_IWL_MVM_VENDOR_GSCAN_AP_THRESHOLD_PARAM,
MAX_IWL_MVM_VENDOR_GSCAN_AP_THRESHOLD_PARAM = NUM_IWL_MVM_VENDOR_GSCAN_AP_THRESHOLD_PARAM - 1,
};
/**
* enum iwl_mvm_vendor_hotlist_ap_status - whether an AP was found or lost
* @IWL_MVM_VENDOR_HOTLIST_AP_FOUND: beacon from this AP was received with RSSI
* above the configured high threshold.
* @IWL_MVM_VENDOR_HOTLIST_AP_LOST: beacon from this AP was received with RSSI
* below the configured low threshold.
* @NUM_IWL_MVM_VENDOR_HOTLIST_AP_STATUS: number of defined AP statuses.
*
* Note that these must match the firmware API.
*/
enum iwl_mvm_vendor_hotlist_ap_status {
IWL_MVM_VENDOR_HOTLIST_AP_FOUND,
IWL_MVM_VENDOR_HOTLIST_AP_LOST,
NUM_IWL_MVM_VENDOR_HOTLIST_AP_STATUS,
};
/**
* enum iwl_mvm_vendor_significant_change_result - significant change result
* @IWL_MVM_VENDOR_SIGNIFICANT_CHANGE_INVALID: attribute number 0 is reserved
* @IWL_MVM_VENDOR_SIGNIFICANT_CHANGE_CHANNEL: channel number of the reported
* AP.
* @IWL_MVM_VENDOR_SIGNIFICANT_CHANGE_BSSID: BSSID.
* @IWL_MVM_VENDOR_SIGNIFICANT_CHANGE_RSSI_HISTORY: array of RSSI samples for
* the reported AP. in dB.
* @NUM_IWL_MVM_VENDOR_SIGNIFICANT_CHANGE_RESULT: number of significant change
* attriutes.
* @MAX_IWL_MVM_VENDOR_SIGNIFICANT_CHANGE_RESULT: highest significant change
* result attribute number.
*/
enum iwl_mvm_vendor_significant_change_result {
IWL_MVM_VENDOR_SIGNIFICANT_CHANGE_INVALID,
IWL_MVM_VENDOR_SIGNIFICANT_CHANGE_CHANNEL,
IWL_MVM_VENDOR_SIGNIFICANT_CHANGE_BSSID,
IWL_MVM_VENDOR_SIGNIFICANT_CHANGE_RSSI_HISTORY,
NUM_IWL_MVM_VENDOR_SIGNIFICANT_CHANGE_RESULT,
MAX_IWL_MVM_VENDOR_SIGNIFICANT_CHANGE_RESULT = NUM_IWL_MVM_VENDOR_SIGNIFICANT_CHANGE_RESULT - 1,
};
/**
* enum iwl_mvm_vendor_rxfilter_flags - the type of request rxfilter
*
* @IWL_MVM_VENDOR_RXFILTER_UNICAST: control unicast Rx filter
* @IWL_MVM_VENDOR_RXFILTER_BCAST: control broadcast Rx filter
* @IWL_MVM_VENDOR_RXFILTER_MCAST4: control IPv4 multicast Rx filter
* @IWL_MVM_VENDOR_RXFILTER_MCAST6: control IPv4 multicast Rx filter
* @IWL_MVM_VENDOR_RXFILTER_EINVAL: no Rx filter command was set
*
*/
enum iwl_mvm_vendor_rxfilter_flags {
IWL_MVM_VENDOR_RXFILTER_UNICAST = 1 << 0,
IWL_MVM_VENDOR_RXFILTER_BCAST = 1 << 1,
IWL_MVM_VENDOR_RXFILTER_MCAST4 = 1 << 2,
IWL_MVM_VENDOR_RXFILTER_MCAST6 = 1 << 3,
IWL_MVM_VENDOR_RXFILTER_EINVAL = 1 << 7,
};
/**
* enum iwl_mvm_vendor_rxfilter_op - the operation associated with a filter
*
* @IWL_MVM_VENDOR_RXFILTER_OP_PASS: pass frames matching the filter
* @IWL_MVM_VENDOR_RXFILTER_OP_DROP: drop frames matching the filter
*/
enum iwl_mvm_vendor_rxfilter_op {
IWL_MVM_VENDOR_RXFILTER_OP_PASS,
IWL_MVM_VENDOR_RXFILTER_OP_DROP,
};
/*
* enum iwl_mvm_vendor_nr_chan_width - channel width definitions
*
* The values in this enum correspond to the values defined in
* IEEE802.11-2016, table 9-153.
*/
enum iwl_mvm_vendor_nr_chan_width {
IWL_MVM_VENDOR_CHAN_WIDTH_20,
IWL_MVM_VENDOR_CHAN_WIDTH_40,
IWL_MVM_VENDOR_CHAN_WIDTH_80,
IWL_MVM_VENDOR_CHAN_WIDTH_160,
IWL_MVM_VENDOR_CHAN_WIDTH_80P80,
};
/*
* enum iwl_mvm_vendor_phy_type - neighbor report phy types
*
* The values in this enum correspond to the values defined in
* IEEE802.11-2016, Annex C.
*/
enum iwl_mvm_vendor_phy_type {
IWL_MVM_VENDOR_PHY_TYPE_UNSPECIFIED,
IWL_MVM_VENDOR_PHY_TYPE_DSSS = 2,
IWL_MVM_VENDOR_PHY_TYPE_OFDM = 4,
IWL_MVM_VENDOR_PHY_TYPE_HRDSSS = 5,
IWL_MVM_VENDOR_PHY_TYPE_ERP = 6,
IWL_MVM_VENDOR_PHY_TYPE_HT = 7,
IWL_MVM_VENDOR_PHY_TYPE_DMG = 8,
IWL_MVM_VENDOR_PHY_TYPE_VHT = 9,
IWL_MVM_VENDOR_PHY_TYPE_TVHT = 10,
};
/**
* enum iwl_mvm_vendor_neighbor_report - Neighbor report for one AP
*
* @__IWL_MVM_VENDOR_NEIGHBOR_INVALID: attribute number 0 is reserved
* @IWL_MVM_VENDOR_NEIGHBOR_BSSID: the BSSID of the neighbor AP.
* @IWL_MVM_VENDOR_NEIGHBOR_BSSID_INFO: the BSSID information field as
* defined in IEEE802.11-2016, figure 9-296 (uint32_t)
* @IWL_MVM_VENDOR_NEIGHBOR_OPERATING_CLASS: the operating class of the
* neighbor AP (uint8_t)
* @IWL_MVM_VENDOR_NEIGHBOR_CHANNEL: the primary channel number of the
* neighbor AP (uint8_t)
* @IWL_MVM_VENDOR_NEIGHBOR_PHY_TYPE: the phy type of the neighbor AP
* as specified in &enum iwl_mvm_vendor_phy_type (uint8_t)
* @IWL_MVM_VENDOR_NEIGHBOR_CHANNEL_WIDTH: uint32_t attribute containing one of the
* values of &enum iwl_mvm_vendor_nr_chan_width, describing the
* channel width.
* @IWL_MVM_VENDOR_NEIGHBOR_CENTER_FREQ_IDX_0: Center frequency of the first
* part of the channel, used for anything but 20 MHz bandwidth.
* @IWL_MVM_VENDOR_NEIGHBOR_CENTER_FREQ_IDX_1: Center frequency of the second
* part of the channel, used only for 80+80 MHz bandwidth.
* @IWL_MVM_VENDOR_NEIGHBOR_LCI: the LCI info of the neighbor AP. Optional.
* Binary attribute.
* @IWL_MVM_VENDOR_NEIGHBOR_CIVIC: the CIVIC info of the neighbor AP. Optional.
* Binary attribute.
* @NUM_IWL_MVM_VENDOR_NEIGHBOR_REPORT: num of neighbor report attributes
* @MAX_IWL_MVM_VENDOR_NEIGHBOR_REPORT: highest neighbor report attribute
* number.
*/
enum iwl_mvm_vendor_neighbor_report {
__IWL_MVM_VENDOR_NEIGHBOR_INVALID,
IWL_MVM_VENDOR_NEIGHBOR_BSSID,
IWL_MVM_VENDOR_NEIGHBOR_BSSID_INFO,
IWL_MVM_VENDOR_NEIGHBOR_OPERATING_CLASS,
IWL_MVM_VENDOR_NEIGHBOR_CHANNEL,
IWL_MVM_VENDOR_NEIGHBOR_PHY_TYPE,
IWL_MVM_VENDOR_NEIGHBOR_CHANNEL_WIDTH,
IWL_MVM_VENDOR_NEIGHBOR_CENTER_FREQ_IDX_0,
IWL_MVM_VENDOR_NEIGHBOR_CENTER_FREQ_IDX_1,
IWL_MVM_VENDOR_NEIGHBOR_LCI,
IWL_MVM_VENDOR_NEIGHBOR_CIVIC,
NUM_IWL_MVM_VENDOR_NEIGHBOR_REPORT,
MAX_IWL_MVM_VENDOR_NEIGHBOR_REPORT = NUM_IWL_MVM_VENDOR_NEIGHBOR_REPORT - 1,
};
/**
* enum iwl_vendor_sar_per_chain_geo_table - per chain tx power table
*
* @IWL_VENDOR_SAR_GEO_INVALID: attribute number 0 is reserved.
* @IWL_VENDOR_SAR_GEO_CHAIN_A_OFFSET: allowed offset for chain a (uint8_t).
* @IWL_VENDOR_SAR_GEO_CHAIN_B_OFFSET: allowed offset for chain b (uint8_t).
* @IWL_VENDOR_SAR_GEO_MAX_TXP: maximum allowed tx power (uint8_t).
*/
enum iwl_vendor_sar_per_chain_geo_table {
IWL_VENDOR_SAR_GEO_INVALID,
IWL_VENDOR_SAR_GEO_CHAIN_A_OFFSET,
IWL_VENDOR_SAR_GEO_CHAIN_B_OFFSET,
IWL_VENDOR_SAR_GEO_MAX_TXP,
};
/**
* enum iwl_vendor_fips_test_vector_sha_type - SHA types for FIPS tests
*
* @IWL_VENDOR_FIPS_TEST_VECTOR_SHA_TYPE_SHA1: SHA1
* @IWL_VENDOR_FIPS_TEST_VECTOR_SHA_TYPE_SHA256: SHA256
* @IWL_VENDOR_FIPS_TEST_VECTOR_SHA_TYPE_SHA384: SHA384
*/
enum iwl_vendor_fips_test_vector_sha_type {
IWL_VENDOR_FIPS_TEST_VECTOR_SHA_TYPE_SHA1,
IWL_VENDOR_FIPS_TEST_VECTOR_SHA_TYPE_SHA256,
IWL_VENDOR_FIPS_TEST_VECTOR_SHA_TYPE_SHA384,
};
/**
* enum iwl_vendor_fips_test_vector_sha - test vector for SHA tests
*
* @IWL_VENDOR_FIPS_TEST_VECTOR_SHA_INVALID: attribute number 0 is reserved.
* @IWL_VENDOR_FIPS_TEST_VECTOR_SHA_TYPE: which SHA function to use. One of
* &enum iwl_vendor_fips_test_vector_sha_type.
* @IWL_VENDOR_FIPS_TEST_VECTOR_SHA_MSG: the message to generate the digest for.
* @NUM_IWL_VENDOR_FIPS_TEST_VECTOR_SHA: number of SHA test vector attributes.
* @MAX_IWL_VENDOR_FIPS_TEST_VECTOR_SHA: highest SHA test vector attribute.
*/
enum iwl_vendor_fips_test_vector_sha {
IWL_VENDOR_FIPS_TEST_VECTOR_SHA_INVALID,
IWL_VENDOR_FIPS_TEST_VECTOR_SHA_TYPE,
IWL_VENDOR_FIPS_TEST_VECTOR_SHA_MSG,
NUM_IWL_VENDOR_FIPS_TEST_VECTOR_SHA,
MAX_IWL_VENDOR_FIPS_TEST_VECTOR_SHA = NUM_IWL_VENDOR_FIPS_TEST_VECTOR_SHA - 1,
};
/**
* enum iwl_vendor_fips_test_vector_hmac_kdf - test vector for HMAC/KDF tests
*
* @IWL_VENDOR_FIPS_TEST_VECTOR_HMAC_KDF_INVALID: attribute number 0 is
* reserved.
* @IWL_VENDOR_FIPS_TEST_VECTOR_HMAC_KDF_TYPE: which HMAC-SHA function to use.
* One of &enum iwl_vendor_fips_test_vector_sha_type.
* @IWL_VENDOR_FIPS_TEST_VECTOR_HMAC_KDF_KEY: key input for the HMAC-SHA
* function.
* @IWL_VENDOR_FIPS_TEST_VECTOR_HMAC_KDF_MSG: the message to generate the
* digest for.
* @IWL_VENDOR_FIPS_TEST_VECTOR_HMAC_KDF_RES_LEN: the requested digest length in
* bytes.
* @NUM_IWL_VENDOR_FIPS_TEST_VECTOR_HMAC_KDF: number of HMAC/KDF test vector
* attributes.
* @MAX_IWL_VENDOR_FIPS_TEST_VECTOR_HMAC_KDF: highest HMAC/KDF test vector
* attribute.
*/
enum iwl_vendor_fips_test_vector_hmac_kdf {
IWL_VENDOR_FIPS_TEST_VECTOR_HMAC_KDF_INVALID,
IWL_VENDOR_FIPS_TEST_VECTOR_HMAC_KDF_TYPE,
IWL_VENDOR_FIPS_TEST_VECTOR_HMAC_KDF_KEY,
IWL_VENDOR_FIPS_TEST_VECTOR_HMAC_KDF_MSG,
IWL_VENDOR_FIPS_TEST_VECTOR_HMAC_KDF_RES_LEN,
NUM_IWL_VENDOR_FIPS_TEST_VECTOR_HMAC_KDF,
MAX_IWL_VENDOR_FIPS_TEST_VECTOR_HMAC_KDF = NUM_IWL_VENDOR_FIPS_TEST_VECTOR_HMAC_KDF - 1,
};
/**
* enum iwl_vendor_fips_test_vector_flags - flags for FIPS HW test vector
* @IWL_VENDOR_FIPS_TEST_VECTOR_FLAGS_ENCRYPT: if this is set, the requested
* operation is encryption. Otherwise the requested operation is
* decryption.
*/
enum iwl_vendor_fips_test_vector_flags {
IWL_VENDOR_FIPS_TEST_VECTOR_FLAGS_ENCRYPT = BIT(0),
};
/**
* enum iwl_vendor_fips_test_vector_hw - test vector for FIPS HW tests
* @IWL_VENDOR_FIPS_TEST_VECTOR_HW_INVALID: attribute number 0 is reserved.
* @IWL_VENDOR_FIPS_TEST_VECTOR_HW_KEY: the key to use for
* encryption/decryption. For CCM, only 128-bit key is supported.
* For AES and GCM, 128-bit and 256-bit keys are supported.
* @IWL_VENDOR_FIPS_TEST_VECTOR_HW_NONCE: for CCM use 13 bytes, for GCM only 12
* bytes. Not valid for AES tests.
* @IWL_VENDOR_FIPS_TEST_VECTOR_HW_AAD: adata. maximum supported size is 30
* bytes. Not valid for AES tests.
* @IWL_VENDOR_FIPS_TEST_VECTOR_HW_PAYLOAD: for encryption, this is the
* plaintext to encrypt. For decryption, this is the ciphertext + MIC (8
* bytes of MIC for CCM, 16 bytes for GCM).
* @IWL_VENDOR_FIPS_TEST_VECTOR_HW_FLAGS: &enum iwl_vendor_fips_test_vector_flags.
* @NUM_IWL_VENDOR_FIPS_TEST_VECTOR_HW: number of hw test vector attributes.
* @MAX_IWL_VENDOR_FIPS_TEST_VECTOR_HW: highest hw test vector attribute.
*/
enum iwl_vendor_fips_test_vector_hw {
IWL_VENDOR_FIPS_TEST_VECTOR_HW_INVALID,
IWL_VENDOR_FIPS_TEST_VECTOR_HW_KEY,
IWL_VENDOR_FIPS_TEST_VECTOR_HW_NONCE,
IWL_VENDOR_FIPS_TEST_VECTOR_HW_AAD,
IWL_VENDOR_FIPS_TEST_VECTOR_HW_PAYLOAD,
IWL_VENDOR_FIPS_TEST_VECTOR_HW_FLAGS,
NUM_IWL_VENDOR_FIPS_TEST_VECTOR_HW,
MAX_IWL_VENDOR_FIPS_TEST_VECTOR_HW = NUM_IWL_VENDOR_FIPS_TEST_VECTOR_HW - 1,
};
/**
* enum iwl_mvm_vendor_attr - attributes used in vendor commands
* @__IWL_MVM_VENDOR_ATTR_INVALID: attribute 0 is invalid
* @IWL_MVM_VENDOR_ATTR_LOW_LATENCY: low-latency flag attribute
* @IWL_MVM_VENDOR_ATTR_VIF_ADDR: interface MAC address
* @IWL_MVM_VENDOR_ATTR_VIF_LL: vif-low-latency (uint8_t, 0/1)
* @IWL_MVM_VENDOR_ATTR_LL: global low-latency (uint8_t, 0/1)
* @IWL_MVM_VENDOR_ATTR_VIF_LOAD: vif traffic load (uint8_t, see load enum)
* @IWL_MVM_VENDOR_ATTR_LOAD: global traffic load (uint8_t, see load enum)
* @IWL_MVM_VENDOR_ATTR_COUNTRY: MCC to set, for regulatory information (uint16_t)
* IWL_MVM_VENDOR_ATTR_FILTER_ARP_NA: filter gratuitous ARP and unsolicited
* Neighbor Advertisement frames
* IWL_MVM_VENDOR_ATTR_FILTER_GTK: filter Filtering Frames Encrypted using
* the GTK
* @IWL_MVM_VENDOR_ATTR_ADDR: MAC address
* @IWL_MVM_VENDOR_ATTR_TX_BYTES: number of bytes transmitted to peer
* @IWL_MVM_VENDOR_ATTR_RX_BYTES: number of bytes received from peer
* @IWL_MVM_VENDOR_ATTR_TXP_LIMIT_24: TX power limit for 2.4 GHz
* (int32_t in units of 1/8 dBm)
* @IWL_MVM_VENDOR_ATTR_TXP_LIMIT_52L: TX power limit for 5.2 GHz low (as 2.4)
* @IWL_MVM_VENDOR_ATTR_TXP_LIMIT_52H: TX power limit for 5.2 GHz high (as 2.4)
* @IWL_MVM_VENDOR_ATTR_OPPPS_WA: wa to pass Sigma test
* @IWL_MVM_VENDOR_ATTR_GSCAN_MAX_SCAN_CACHE_SIZE: scan cache size
* (in bytes)
* @IWL_MVM_VENDOR_ATTR_GSCAN_MAX_SCAN_BUCKETS: maximum number of channel
* buckets
* @IWL_MVM_VENDOR_ATTR_GSCAN_MAX_AP_CACHE_PER_SCAN: maximum number of AP's
* that can be stored per scan
* @IWL_MVM_VENDOR_ATTR_GSCAN_MAX_RSSI_SAMPLE_SIZE: number of RSSI samples
* used for averaging RSSI
* @IWL_MVM_VENDOR_ATTR_GSCAN_MAX_SCAN_REPORTING_THRESHOLD: max possible
* report threshold. see %IWL_MVM_VENDOR_ATTR_GSCAN_START_REPORT_THRESHOLD
* @IWL_MVM_VENDOR_ATTR_GSCAN_MAX_HOTLIST_APS: maximum number of entries for
* hotlist AP's
* @IWL_MVM_VENDOR_ATTR_GSCAN_MAX_SIGNIFICANT_CHANGE_APS: maximum number of
* entries for significant change AP's
* @IWL_MVM_VENDOR_ATTR_GSCAN_MAX_BSSID_HISTORY_ENTRIES: number of
* BSSID/RSSI entries that the device can hold
* @IWL_MVM_VENDOR_ATTR_GSCAN_MAC_ADDR: mac address to be used on gscan scans
* @IWL_MVM_VENDOR_ATTR_GSCAN_MAC_ADDR_MASK: mac address mask. Bits set to 0
* will be copied from %IWL_MVM_VENDOR_ATTR_GSCAN_MAC_ADDR. Bits set to 1
* will be randomized
* @IWL_MVM_VENDOR_ATTR_GSCAN_MAX_AP_PER_SCAN: number of AP's to store in each
* scan in the BSSID/RSSI history buffer (keep the highest RSSI AP's)
* @IWL_MVM_VENDOR_ATTR_GSCAN_REPORT_THRESHOLD: report that scan results
* are available when buffer is that much full. In percentage.
* @IWL_MVM_VENDOR_ATTR_GSCAN_BUCKET_SPECS: array of bucket specifications for
* this gscan start command. Each bucket spec is a nested attribute of
* &enum iwl_mvm_vendor_gscan_bucket_spec.
* @IWL_MVM_VENDOR_ATTR_GSCAN_RESULTS_EVENT_TYPE: gscan results event type as
* specified in &enum iwl_mvm_vendor_results_event_type.
* @IWL_MVM_VENDOR_ATTR_GSCAN_RESULTS: array of gscan results. Each result is a
* nested attribute of &enum iwl_mvm_vendor_gscan_result.
* @IWL_MVM_VENDOR_ATTR_GSCAN_LOST_AP_SAMPLE_SIZE: number of samples to confirm
* ap loss.
* @IWL_MVM_VENDOR_ATTR_GSCAN_AP_LIST: an array of nested attributes of
* &enum iwl_mvm_vendor_ap_threshold_param.
* @IWL_MVM_VENDOR_ATTR_GSCAN_RSSI_SAMPLE_SIZE: number of samples for averaging
* RSSI
* @IWL_MVM_VENDOR_ATTR_GSCAN_MIN_BREACHING: number of APs breaching threshold
* @IWL_MVM_VENDOR_ATTR_GSCAN_HOTLIST_AP_STATUS: indicates if a reported AP was
* lost or found as specified in &enum iwl_mvm_vendor_hotlist_ap_status.
* @IWL_MVM_VENDOR_ATTR_GSCAN_SIG_CHANGE_RESULTS: array of significant
* change results. Each result is a nested attribute of &enum
* iwl_mvm_vendor_significant_change_result.
* @IWL_MVM_VENDOR_ATTR_RXFILTER: uint32_t attribute.
* See %iwl_mvm_vendor_rxfilter_flags.
* @IWL_MVM_VENDOR_ATTR_RXFILTER_OP: uint32_t attribute.
* See %iwl_mvm_vendor_rxfilter_op.
* @IWL_MVM_VENDOR_ATTR_DBG_COLLECT_TRIGGER: description of collect debug data
* trigger.
* @IWL_MVM_VENDOR_ATTR_NAN_FAW_FREQ: uint32_t attribute. Frequency (in MHz) to be
* used for NAN further availability.
* @IWL_MVM_VENDOR_ATTR_NAN_FAW_SLOTS: uint8_t attribute. Number of 16TU slots
* the NAN device will be available on it's FAW between DWs.
* @IWL_MVM_VENDOR_ATTR_GSCAN_MAX_HOTLIST_SSIDS: maximum number of entries for
* hotlist SSID's
* @IWL_MVM_VENDOR_ATTR_GSCAN_MAX_NUM_EPNO_NETWORKS: max number of epno entries
* @IWL_MVM_VENDOR_ATTR_GSCAN_MAX_NUM_EPNO_NETWORKS_BY_SSID: max number of epno
* entries if ssid is specified
* @IWL_MVM_VENDOR_ATTR_GSCAN_MAX_NUM_WHITE_LISTED_SSID: max number of white
* listed SSIDs
* @IWL_MVM_VENDOR_ATTR_GSCAN_MAX_NUM_BLACK_LISTED_SSID: max number of black
* listed SSIDs
*
* @NUM_IWL_MVM_VENDOR_ATTR: number of vendor attributes
* @MAX_IWL_MVM_VENDOR_ATTR: highest vendor attribute number
* @IWL_MVM_VENDOR_ATTR_WIPHY_FREQ: frequency of the selected channel in MHz,
* defines the channel together with the attributes
* %IWL_MVM_VENDOR_ATTR_CHANNEL_WIDTH and if needed
* %IWL_MVM_VENDOR_ATTR_CENTER_FREQ1 and
* %IWL_MVM_VENDOR_ATTR_CENTER_FREQ2.
* @IWL_MVM_VENDOR_ATTR_CHANNEL_WIDTH: uint32_t attribute containing one of the
* values of &enum nl80211_chan_width, describing the channel width.
* See the documentation of the enum for more information.
* @IWL_MVM_VENDOR_ATTR_CENTER_FREQ1: Center frequency of the first part of the
* channel, used for anything but 20 MHz bandwidth.
* @IWL_MVM_VENDOR_ATTR_CENTER_FREQ2: Center frequency of the second part of
* the channel, used only for 80+80 MHz bandwidth.
* @IWL_MVM_VENDOR_ATTR_GSCAN_REPORT_THRESHOLD_NUM: report that scan results
* are available when buffer is that much full. In number of scans.
* @IWL_MVM_VENDOR_ATTR_GSCAN_CACHED_RESULTS: array of gscan cached results.
* Each result is a nested attribute of
* &enum iwl_mvm_vendor_gscan_cached_scan_res.
* @IWL_MVM_VENDOR_ATTR_LAST_MSG: Indicates that this message is the last one
* in the series of messages. (flag)
* @IWL_MVM_VENDOR_ATTR_SAR_CHAIN_A_PROFILE: SAR table idx for chain A.
* This is a uint8_t.
* @IWL_MVM_VENDOR_ATTR_SAR_CHAIN_B_PROFILE: SAR table idx for chain B.
* This is a uint8_t.
* @IWL_MVM_VENDOR_ATTR_SAR_ENABLED_PROFILE_NUM: number of enabled SAR profile
* This is a uint8_t.
* @IWL_MVM_VENDOR_ATTR_SSID: SSID (binary attribute, 0..32 octets)
* @IWL_MVM_VENDOR_ATTR_NEIGHBOR_LCI: Flag attribute specifying that the
* neighbor request shall query for LCI information.
* @IWL_MVM_VENDOR_ATTR_NEIGHBOR_CIVIC: Flag attribute specifying that the
* neighbor request shall query for CIVIC information.
* @IWL_MVM_VENDOR_ATTR_NEIGHBOR_REPORT: A list of neighbor APs as received in a
* neighbor report frame. Each AP is a nested attribute of
* &enum iwl_mvm_vendor_neighbor_report.
* @IWL_MVM_VENDOR_ATTR_SAR_GEO_PROFILE: geo profile info.
* see &enum iwl_vendor_sar_per_chain_geo_table.
* @IWL_MVM_VENDOR_ATTR_FIPS_TEST_VECTOR_SHA: data vector for FIPS SHA test.
* &enum iwl_vendor_fips_test_vector_sha.
* @IWL_MVM_VENDOR_ATTR_FIPS_TEST_VECTOR_HMAC: data vector for FIPS HMAC test.
* &enum iwl_vendor_fips_test_vector_hmac_kdf.
* @IWL_MVM_VENDOR_ATTR_FIPS_TEST_VECTOR_KDF: data vector for FIPS KDF test.
* &enum iwl_vendor_fips_test_vector_hmac_kdf.
* @IWL_MVM_VENDOR_ATTR_FIPS_TEST_RESULT: FIPS test result. Contains the
* output of the requested function.
* @IWL_MVM_VENDOR_ATTR_FIPS_TEST_VECTOR_HW_AES: data vector for FIPS AES HW
* test. &enum iwl_vendor_fips_test_vector_hw.
* @IWL_MVM_VENDOR_ATTR_FIPS_TEST_VECTOR_HW_CCM: data vector for FIPS CCM HW
* test. &enum iwl_vendor_fips_test_vector_hw.
* @IWL_MVM_VENDOR_ATTR_FIPS_TEST_VECTOR_HW_GCM: data vector for FIPS GCM HW
* test. &enum iwl_vendor_fips_test_vector_hw.
* @IWL_MVM_VENDOR_ATTR_FMAC_CONNECT_PARAMS_BLACKLIST: an array of BSSIDs to
* blacklist. The device shall not try to connect to blacklisted BSSIDs.
* This attribute shall not be set if
* IWL_MVM_VENDOR_ATTR_FMAC_CONNECT_PARAMS_WHITELIST is set.
* @IWL_MVM_VENDOR_ATTR_FMAC_CONNECT_PARAMS_WHITELIST: an array of BSSIDs to
* whitelist. The device shall only try to connect to BSSIDs from the list.
* This attribute shall not be set if
* IWL_MVM_VENDOR_ATTR_FMAC_CONNECT_PARAMS_BLACKLIST is set.
* @IWL_MVM_VENDOR_ATTR_FMAC_CONNECT_PARAMS_MAX_RETRIES: number of APs to try
* before notifying connection failure.
* @IWL_MVM_VENDOR_ATTR_FMAC_CONFIG_STR: a key=value string where key is an
* fmac configuration option.
*/
enum iwl_mvm_vendor_attr {
__IWL_MVM_VENDOR_ATTR_INVALID = 0x00,
IWL_MVM_VENDOR_ATTR_LOW_LATENCY = 0x01,
IWL_MVM_VENDOR_ATTR_VIF_ADDR = 0x02,
IWL_MVM_VENDOR_ATTR_VIF_LL = 0x03,
IWL_MVM_VENDOR_ATTR_LL = 0x04,
IWL_MVM_VENDOR_ATTR_VIF_LOAD = 0x05,
IWL_MVM_VENDOR_ATTR_LOAD = 0x06,
IWL_MVM_VENDOR_ATTR_COUNTRY = 0x07,
IWL_MVM_VENDOR_ATTR_FILTER_ARP_NA = 0x08,
IWL_MVM_VENDOR_ATTR_FILTER_GTK = 0x09,
IWL_MVM_VENDOR_ATTR_ADDR = 0x0a,
IWL_MVM_VENDOR_ATTR_TX_BYTES = 0x0b,
IWL_MVM_VENDOR_ATTR_RX_BYTES = 0x0c,
IWL_MVM_VENDOR_ATTR_TXP_LIMIT_24 = 0x0d,
IWL_MVM_VENDOR_ATTR_TXP_LIMIT_52L = 0x0e,
IWL_MVM_VENDOR_ATTR_TXP_LIMIT_52H = 0x0f,
IWL_MVM_VENDOR_ATTR_OPPPS_WA = 0x10,
IWL_MVM_VENDOR_ATTR_GSCAN_MAX_SCAN_CACHE_SIZE = 0x11,
IWL_MVM_VENDOR_ATTR_GSCAN_MAX_SCAN_BUCKETS = 0x12,
IWL_MVM_VENDOR_ATTR_GSCAN_MAX_AP_CACHE_PER_SCAN = 0x13,
IWL_MVM_VENDOR_ATTR_GSCAN_MAX_RSSI_SAMPLE_SIZE = 0x14,
IWL_MVM_VENDOR_ATTR_GSCAN_MAX_SCAN_REPORTING_THRESHOLD = 0x15,
IWL_MVM_VENDOR_ATTR_GSCAN_MAX_HOTLIST_APS = 0x16,
IWL_MVM_VENDOR_ATTR_GSCAN_MAX_SIGNIFICANT_CHANGE_APS = 0x17,
IWL_MVM_VENDOR_ATTR_GSCAN_MAX_BSSID_HISTORY_ENTRIES = 0x18,
IWL_MVM_VENDOR_ATTR_GSCAN_MAC_ADDR = 0x19,
IWL_MVM_VENDOR_ATTR_GSCAN_MAC_ADDR_MASK = 0x1a,
IWL_MVM_VENDOR_ATTR_GSCAN_MAX_AP_PER_SCAN = 0x1b,
IWL_MVM_VENDOR_ATTR_GSCAN_REPORT_THRESHOLD = 0x1c,
IWL_MVM_VENDOR_ATTR_GSCAN_BUCKET_SPECS = 0x1d,
IWL_MVM_VENDOR_ATTR_GSCAN_RESULTS_EVENT_TYPE = 0x1e,
IWL_MVM_VENDOR_ATTR_GSCAN_RESULTS = 0x1f,
IWL_MVM_VENDOR_ATTR_GSCAN_LOST_AP_SAMPLE_SIZE = 0x20,
IWL_MVM_VENDOR_ATTR_GSCAN_AP_LIST = 0x21,
IWL_MVM_VENDOR_ATTR_GSCAN_RSSI_SAMPLE_SIZE = 0x22,
IWL_MVM_VENDOR_ATTR_GSCAN_MIN_BREACHING = 0x23,
IWL_MVM_VENDOR_ATTR_GSCAN_HOTLIST_AP_STATUS = 0x24,
IWL_MVM_VENDOR_ATTR_GSCAN_SIG_CHANGE_RESULTS = 0x25,
IWL_MVM_VENDOR_ATTR_RXFILTER = 0x26,
IWL_MVM_VENDOR_ATTR_RXFILTER_OP = 0x27,
IWL_MVM_VENDOR_ATTR_DBG_COLLECT_TRIGGER = 0x28,
IWL_MVM_VENDOR_ATTR_NAN_FAW_FREQ = 0x29,
IWL_MVM_VENDOR_ATTR_NAN_FAW_SLOTS = 0x2a,
IWL_MVM_VENDOR_ATTR_GSCAN_MAX_HOTLIST_SSIDS = 0x2b,
IWL_MVM_VENDOR_ATTR_GSCAN_MAX_NUM_EPNO_NETWORKS = 0x2c,
IWL_MVM_VENDOR_ATTR_GSCAN_MAX_NUM_EPNO_NETWORKS_BY_SSID = 0x2d,
IWL_MVM_VENDOR_ATTR_GSCAN_MAX_NUM_WHITE_LISTED_SSID = 0x2e,
IWL_MVM_VENDOR_ATTR_GSCAN_MAX_NUM_BLACK_LISTED_SSID = 0x2f,
IWL_MVM_VENDOR_ATTR_WIPHY_FREQ = 0x30,
IWL_MVM_VENDOR_ATTR_CHANNEL_WIDTH = 0x31,
IWL_MVM_VENDOR_ATTR_CENTER_FREQ1 = 0x32,
IWL_MVM_VENDOR_ATTR_CENTER_FREQ2 = 0x33,
/* 0x34 is deprecated */
/* 0x35 is deprecated */
/* 0x36 is deprecated */
IWL_MVM_VENDOR_ATTR_GSCAN_REPORT_THRESHOLD_NUM = 0x37,
IWL_MVM_VENDOR_ATTR_GSCAN_CACHED_RESULTS = 0x38,
IWL_MVM_VENDOR_ATTR_LAST_MSG = 0x39,
IWL_MVM_VENDOR_ATTR_SAR_CHAIN_A_PROFILE = 0x3a,
IWL_MVM_VENDOR_ATTR_SAR_CHAIN_B_PROFILE = 0x3b,
IWL_MVM_VENDOR_ATTR_SAR_ENABLED_PROFILE_NUM = 0x3c,
IWL_MVM_VENDOR_ATTR_SSID = 0x3d,
IWL_MVM_VENDOR_ATTR_NEIGHBOR_LCI = 0x3e,
IWL_MVM_VENDOR_ATTR_NEIGHBOR_CIVIC = 0x3f,
IWL_MVM_VENDOR_ATTR_NEIGHBOR_REPORT = 0x40,
IWL_MVM_VENDOR_ATTR_SAR_GEO_PROFILE = 0x41,
IWL_MVM_VENDOR_ATTR_FIPS_TEST_VECTOR_SHA = 0x42,
IWL_MVM_VENDOR_ATTR_FIPS_TEST_VECTOR_HMAC = 0x43,
IWL_MVM_VENDOR_ATTR_FIPS_TEST_VECTOR_KDF = 0x44,
IWL_MVM_VENDOR_ATTR_FIPS_TEST_RESULT = 0x45,
IWL_MVM_VENDOR_ATTR_FIPS_TEST_VECTOR_HW_AES = 0x46,
IWL_MVM_VENDOR_ATTR_FIPS_TEST_VECTOR_HW_CCM = 0x47,
IWL_MVM_VENDOR_ATTR_FIPS_TEST_VECTOR_HW_GCM = 0x48,
IWL_MVM_VENDOR_ATTR_FMAC_CONNECT_PARAMS_BLACKLIST = 0x49,
IWL_MVM_VENDOR_ATTR_FMAC_CONNECT_PARAMS_WHITELIST = 0x4a,
IWL_MVM_VENDOR_ATTR_FMAC_CONNECT_PARAMS_MAX_RETRIES = 0x4b,
IWL_MVM_VENDOR_ATTR_FMAC_CONFIG_STR = 0x4c,
NUM_IWL_MVM_VENDOR_ATTR,
MAX_IWL_MVM_VENDOR_ATTR = NUM_IWL_MVM_VENDOR_ATTR - 1,
};
#define IWL_MVM_VENDOR_FILTER_ARP_NA IWL_MVM_VENDOR_ATTR_FILTER_ARP_NA
#define IWL_MVM_VENDOR_FILTER_GTK IWL_MVM_VENDOR_ATTR_FILTER_GTK
#endif // SRC_CONNECTIVITY_WLAN_DRIVERS_THIRD_PARTY_INTEL_IWLWIFI_IWL_VENDOR_CMD_H_