| /****************************************************************************** |
| * |
| * 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_ |
| |
| #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_ |