mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 19:00:25 +00:00
iwlwifi: mvm: move RX API into its own file
The RX API is currently mixed up into the general fw-api.h file, but we're going to need to extend it significantly in the future, so move it to its own file. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
This commit is contained in:
parent
2df5328e78
commit
ee6dbb2937
2 changed files with 239 additions and 167 deletions
238
drivers/net/wireless/iwlwifi/mvm/fw-api-rx.h
Normal file
238
drivers/net/wireless/iwlwifi/mvm/fw-api-rx.h
Normal file
|
@ -0,0 +1,238 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* This file is provided under a dual BSD/GPLv2 license. When using or
|
||||
* redistributing this file, you may do so under either license.
|
||||
*
|
||||
* GPL LICENSE SUMMARY
|
||||
*
|
||||
* Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
|
||||
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
|
||||
* Copyright(c) 2015 Intel Deutschland GmbH
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of version 2 of the GNU General Public License as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110,
|
||||
* USA
|
||||
*
|
||||
* The full GNU General Public License is included in this distribution
|
||||
* in the file called COPYING.
|
||||
*
|
||||
* Contact Information:
|
||||
* Intel Linux Wireless <ilw@linux.intel.com>
|
||||
* Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
|
||||
*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
|
||||
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
|
||||
* Copyright(c) 2015 Intel Deutschland GmbH
|
||||
* 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 __fw_api_rx_h__
|
||||
#define __fw_api_rx_h__
|
||||
|
||||
#define IWL_RX_INFO_PHY_CNT 8
|
||||
#define IWL_RX_INFO_ENERGY_ANT_ABC_IDX 1
|
||||
#define IWL_RX_INFO_ENERGY_ANT_A_MSK 0x000000ff
|
||||
#define IWL_RX_INFO_ENERGY_ANT_B_MSK 0x0000ff00
|
||||
#define IWL_RX_INFO_ENERGY_ANT_C_MSK 0x00ff0000
|
||||
#define IWL_RX_INFO_ENERGY_ANT_A_POS 0
|
||||
#define IWL_RX_INFO_ENERGY_ANT_B_POS 8
|
||||
#define IWL_RX_INFO_ENERGY_ANT_C_POS 16
|
||||
|
||||
/**
|
||||
* struct iwl_rx_phy_info - phy info
|
||||
* (REPLY_RX_PHY_CMD = 0xc0)
|
||||
* @non_cfg_phy_cnt: non configurable DSP phy data byte count
|
||||
* @cfg_phy_cnt: configurable DSP phy data byte count
|
||||
* @stat_id: configurable DSP phy data set ID
|
||||
* @reserved1:
|
||||
* @system_timestamp: GP2 at on air rise
|
||||
* @timestamp: TSF at on air rise
|
||||
* @beacon_time_stamp: beacon at on-air rise
|
||||
* @phy_flags: general phy flags: band, modulation, ...
|
||||
* @channel: channel number
|
||||
* @non_cfg_phy_buf: for various implementations of non_cfg_phy
|
||||
* @rate_n_flags: RATE_MCS_*
|
||||
* @byte_count: frame's byte-count
|
||||
* @frame_time: frame's time on the air, based on byte count and frame rate
|
||||
* calculation
|
||||
* @mac_active_msk: what MACs were active when the frame was received
|
||||
*
|
||||
* Before each Rx, the device sends this data. It contains PHY information
|
||||
* about the reception of the packet.
|
||||
*/
|
||||
struct iwl_rx_phy_info {
|
||||
u8 non_cfg_phy_cnt;
|
||||
u8 cfg_phy_cnt;
|
||||
u8 stat_id;
|
||||
u8 reserved1;
|
||||
__le32 system_timestamp;
|
||||
__le64 timestamp;
|
||||
__le32 beacon_time_stamp;
|
||||
__le16 phy_flags;
|
||||
__le16 channel;
|
||||
__le32 non_cfg_phy[IWL_RX_INFO_PHY_CNT];
|
||||
__le32 rate_n_flags;
|
||||
__le32 byte_count;
|
||||
__le16 mac_active_msk;
|
||||
__le16 frame_time;
|
||||
} __packed;
|
||||
|
||||
/*
|
||||
* TCP offload Rx assist info
|
||||
*
|
||||
* bits 0:3 - reserved
|
||||
* bits 4:7 - MIC CRC length
|
||||
* bits 8:12 - MAC header length
|
||||
* bit 13 - Padding indication
|
||||
* bit 14 - A-AMSDU indication
|
||||
* bit 15 - Offload enabled
|
||||
*/
|
||||
enum iwl_csum_rx_assist_info {
|
||||
CSUM_RXA_RESERVED_MASK = 0x000f,
|
||||
CSUM_RXA_MICSIZE_MASK = 0x00f0,
|
||||
CSUM_RXA_HEADERLEN_MASK = 0x1f00,
|
||||
CSUM_RXA_PADD = BIT(13),
|
||||
CSUM_RXA_AMSDU = BIT(14),
|
||||
CSUM_RXA_ENA = BIT(15)
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iwl_rx_mpdu_res_start - phy info
|
||||
* @assist: see CSUM_RX_ASSIST_ above
|
||||
*/
|
||||
struct iwl_rx_mpdu_res_start {
|
||||
__le16 byte_count;
|
||||
__le16 assist;
|
||||
} __packed; /* _RX_MPDU_RES_START_API_S_VER_2 */
|
||||
|
||||
/**
|
||||
* enum iwl_rx_phy_flags - to parse %iwl_rx_phy_info phy_flags
|
||||
* @RX_RES_PHY_FLAGS_BAND_24: true if the packet was received on 2.4 band
|
||||
* @RX_RES_PHY_FLAGS_MOD_CCK:
|
||||
* @RX_RES_PHY_FLAGS_SHORT_PREAMBLE: true if packet's preamble was short
|
||||
* @RX_RES_PHY_FLAGS_NARROW_BAND:
|
||||
* @RX_RES_PHY_FLAGS_ANTENNA: antenna on which the packet was received
|
||||
* @RX_RES_PHY_FLAGS_AGG: set if the packet was part of an A-MPDU
|
||||
* @RX_RES_PHY_FLAGS_OFDM_HT: The frame was an HT frame
|
||||
* @RX_RES_PHY_FLAGS_OFDM_GF: The frame used GF preamble
|
||||
* @RX_RES_PHY_FLAGS_OFDM_VHT: The frame was a VHT frame
|
||||
*/
|
||||
enum iwl_rx_phy_flags {
|
||||
RX_RES_PHY_FLAGS_BAND_24 = BIT(0),
|
||||
RX_RES_PHY_FLAGS_MOD_CCK = BIT(1),
|
||||
RX_RES_PHY_FLAGS_SHORT_PREAMBLE = BIT(2),
|
||||
RX_RES_PHY_FLAGS_NARROW_BAND = BIT(3),
|
||||
RX_RES_PHY_FLAGS_ANTENNA = (0x7 << 4),
|
||||
RX_RES_PHY_FLAGS_ANTENNA_POS = 4,
|
||||
RX_RES_PHY_FLAGS_AGG = BIT(7),
|
||||
RX_RES_PHY_FLAGS_OFDM_HT = BIT(8),
|
||||
RX_RES_PHY_FLAGS_OFDM_GF = BIT(9),
|
||||
RX_RES_PHY_FLAGS_OFDM_VHT = BIT(10),
|
||||
};
|
||||
|
||||
/**
|
||||
* enum iwl_mvm_rx_status - written by fw for each Rx packet
|
||||
* @RX_MPDU_RES_STATUS_CRC_OK: CRC is fine
|
||||
* @RX_MPDU_RES_STATUS_OVERRUN_OK: there was no RXE overflow
|
||||
* @RX_MPDU_RES_STATUS_SRC_STA_FOUND:
|
||||
* @RX_MPDU_RES_STATUS_KEY_VALID:
|
||||
* @RX_MPDU_RES_STATUS_KEY_PARAM_OK:
|
||||
* @RX_MPDU_RES_STATUS_ICV_OK: ICV is fine, if not, the packet is destroyed
|
||||
* @RX_MPDU_RES_STATUS_MIC_OK: used for CCM alg only. TKIP MIC is checked
|
||||
* in the driver.
|
||||
* @RX_MPDU_RES_STATUS_TTAK_OK: TTAK is fine
|
||||
* @RX_MPDU_RES_STATUS_MNG_FRAME_REPLAY_ERR: valid for alg = CCM_CMAC or
|
||||
* alg = CCM only. Checks replay attack for 11w frames. Relevant only if
|
||||
* %RX_MPDU_RES_STATUS_ROBUST_MNG_FRAME is set.
|
||||
* @RX_MPDU_RES_STATUS_SEC_NO_ENC: this frame is not encrypted
|
||||
* @RX_MPDU_RES_STATUS_SEC_WEP_ENC: this frame is encrypted using WEP
|
||||
* @RX_MPDU_RES_STATUS_SEC_CCM_ENC: this frame is encrypted using CCM
|
||||
* @RX_MPDU_RES_STATUS_SEC_TKIP_ENC: this frame is encrypted using TKIP
|
||||
* @RX_MPDU_RES_STATUS_SEC_CCM_CMAC_ENC: this frame is encrypted using CCM_CMAC
|
||||
* @RX_MPDU_RES_STATUS_SEC_ENC_ERR: this frame couldn't be decrypted
|
||||
* @RX_MPDU_RES_STATUS_SEC_ENC_MSK: bitmask of the encryption algorithm
|
||||
* @RX_MPDU_RES_STATUS_DEC_DONE: this frame has been successfully decrypted
|
||||
* @RX_MPDU_RES_STATUS_PROTECT_FRAME_BIT_CMP:
|
||||
* @RX_MPDU_RES_STATUS_EXT_IV_BIT_CMP:
|
||||
* @RX_MPDU_RES_STATUS_KEY_ID_CMP_BIT:
|
||||
* @RX_MPDU_RES_STATUS_ROBUST_MNG_FRAME: this frame is an 11w management frame
|
||||
* @RX_MPDU_RES_STATUS_CSUM_DONE: checksum was done by the hw
|
||||
* @RX_MPDU_RES_STATUS_CSUM_OK: checksum found no errors
|
||||
* @RX_MPDU_RES_STATUS_HASH_INDEX_MSK:
|
||||
* @RX_MPDU_RES_STATUS_STA_ID_MSK:
|
||||
* @RX_MPDU_RES_STATUS_RRF_KILL:
|
||||
* @RX_MPDU_RES_STATUS_FILTERING_MSK:
|
||||
* @RX_MPDU_RES_STATUS2_FILTERING_MSK:
|
||||
*/
|
||||
enum iwl_mvm_rx_status {
|
||||
RX_MPDU_RES_STATUS_CRC_OK = BIT(0),
|
||||
RX_MPDU_RES_STATUS_OVERRUN_OK = BIT(1),
|
||||
RX_MPDU_RES_STATUS_SRC_STA_FOUND = BIT(2),
|
||||
RX_MPDU_RES_STATUS_KEY_VALID = BIT(3),
|
||||
RX_MPDU_RES_STATUS_KEY_PARAM_OK = BIT(4),
|
||||
RX_MPDU_RES_STATUS_ICV_OK = BIT(5),
|
||||
RX_MPDU_RES_STATUS_MIC_OK = BIT(6),
|
||||
RX_MPDU_RES_STATUS_TTAK_OK = BIT(7),
|
||||
RX_MPDU_RES_STATUS_MNG_FRAME_REPLAY_ERR = BIT(7),
|
||||
RX_MPDU_RES_STATUS_SEC_NO_ENC = (0 << 8),
|
||||
RX_MPDU_RES_STATUS_SEC_WEP_ENC = (1 << 8),
|
||||
RX_MPDU_RES_STATUS_SEC_CCM_ENC = (2 << 8),
|
||||
RX_MPDU_RES_STATUS_SEC_TKIP_ENC = (3 << 8),
|
||||
RX_MPDU_RES_STATUS_SEC_EXT_ENC = (4 << 8),
|
||||
RX_MPDU_RES_STATUS_SEC_CCM_CMAC_ENC = (6 << 8),
|
||||
RX_MPDU_RES_STATUS_SEC_ENC_ERR = (7 << 8),
|
||||
RX_MPDU_RES_STATUS_SEC_ENC_MSK = (7 << 8),
|
||||
RX_MPDU_RES_STATUS_DEC_DONE = BIT(11),
|
||||
RX_MPDU_RES_STATUS_PROTECT_FRAME_BIT_CMP = BIT(12),
|
||||
RX_MPDU_RES_STATUS_EXT_IV_BIT_CMP = BIT(13),
|
||||
RX_MPDU_RES_STATUS_KEY_ID_CMP_BIT = BIT(14),
|
||||
RX_MPDU_RES_STATUS_ROBUST_MNG_FRAME = BIT(15),
|
||||
RX_MPDU_RES_STATUS_CSUM_DONE = BIT(16),
|
||||
RX_MPDU_RES_STATUS_CSUM_OK = BIT(17),
|
||||
RX_MPDU_RES_STATUS_HASH_INDEX_MSK = (0x3F0000),
|
||||
RX_MPDU_RES_STATUS_STA_ID_MSK = (0x1f000000),
|
||||
RX_MPDU_RES_STATUS_RRF_KILL = BIT(29),
|
||||
RX_MPDU_RES_STATUS_FILTERING_MSK = (0xc00000),
|
||||
RX_MPDU_RES_STATUS2_FILTERING_MSK = (0xc0000000),
|
||||
};
|
||||
|
||||
#endif /* __fw_api_rx_h__ */
|
|
@ -67,6 +67,7 @@
|
|||
#define __fw_api_h__
|
||||
|
||||
#include "fw-api-rs.h"
|
||||
#include "fw-api-rx.h"
|
||||
#include "fw-api-tx.h"
|
||||
#include "fw-api-sta.h"
|
||||
#include "fw-api-mac.h"
|
||||
|
@ -1071,173 +1072,6 @@ struct iwl_hs20_roc_res {
|
|||
__le32 status;
|
||||
} __packed; /* HOT_SPOT_RSP_API_S_VER_1 */
|
||||
|
||||
#define IWL_RX_INFO_PHY_CNT 8
|
||||
#define IWL_RX_INFO_ENERGY_ANT_ABC_IDX 1
|
||||
#define IWL_RX_INFO_ENERGY_ANT_A_MSK 0x000000ff
|
||||
#define IWL_RX_INFO_ENERGY_ANT_B_MSK 0x0000ff00
|
||||
#define IWL_RX_INFO_ENERGY_ANT_C_MSK 0x00ff0000
|
||||
#define IWL_RX_INFO_ENERGY_ANT_A_POS 0
|
||||
#define IWL_RX_INFO_ENERGY_ANT_B_POS 8
|
||||
#define IWL_RX_INFO_ENERGY_ANT_C_POS 16
|
||||
|
||||
/**
|
||||
* struct iwl_rx_phy_info - phy info
|
||||
* (REPLY_RX_PHY_CMD = 0xc0)
|
||||
* @non_cfg_phy_cnt: non configurable DSP phy data byte count
|
||||
* @cfg_phy_cnt: configurable DSP phy data byte count
|
||||
* @stat_id: configurable DSP phy data set ID
|
||||
* @reserved1:
|
||||
* @system_timestamp: GP2 at on air rise
|
||||
* @timestamp: TSF at on air rise
|
||||
* @beacon_time_stamp: beacon at on-air rise
|
||||
* @phy_flags: general phy flags: band, modulation, ...
|
||||
* @channel: channel number
|
||||
* @non_cfg_phy_buf: for various implementations of non_cfg_phy
|
||||
* @rate_n_flags: RATE_MCS_*
|
||||
* @byte_count: frame's byte-count
|
||||
* @frame_time: frame's time on the air, based on byte count and frame rate
|
||||
* calculation
|
||||
* @mac_active_msk: what MACs were active when the frame was received
|
||||
*
|
||||
* Before each Rx, the device sends this data. It contains PHY information
|
||||
* about the reception of the packet.
|
||||
*/
|
||||
struct iwl_rx_phy_info {
|
||||
u8 non_cfg_phy_cnt;
|
||||
u8 cfg_phy_cnt;
|
||||
u8 stat_id;
|
||||
u8 reserved1;
|
||||
__le32 system_timestamp;
|
||||
__le64 timestamp;
|
||||
__le32 beacon_time_stamp;
|
||||
__le16 phy_flags;
|
||||
__le16 channel;
|
||||
__le32 non_cfg_phy[IWL_RX_INFO_PHY_CNT];
|
||||
__le32 rate_n_flags;
|
||||
__le32 byte_count;
|
||||
__le16 mac_active_msk;
|
||||
__le16 frame_time;
|
||||
} __packed;
|
||||
|
||||
/*
|
||||
* TCP offload Rx assist info
|
||||
*
|
||||
* bits 0:3 - reserved
|
||||
* bits 4:7 - MIC CRC length
|
||||
* bits 8:12 - MAC header length
|
||||
* bit 13 - Padding indication
|
||||
* bit 14 - A-AMSDU indication
|
||||
* bit 15 - Offload enabled
|
||||
*/
|
||||
enum iwl_csum_rx_assist_info {
|
||||
CSUM_RXA_RESERVED_MASK = 0x000f,
|
||||
CSUM_RXA_MICSIZE_MASK = 0x00f0,
|
||||
CSUM_RXA_HEADERLEN_MASK = 0x1f00,
|
||||
CSUM_RXA_PADD = BIT(13),
|
||||
CSUM_RXA_AMSDU = BIT(14),
|
||||
CSUM_RXA_ENA = BIT(15)
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iwl_rx_mpdu_res_start - phy info
|
||||
* @assist: see CSUM_RX_ASSIST_ above
|
||||
*/
|
||||
struct iwl_rx_mpdu_res_start {
|
||||
__le16 byte_count;
|
||||
__le16 assist;
|
||||
} __packed; /* _RX_MPDU_RES_START_API_S_VER_2 */
|
||||
|
||||
/**
|
||||
* enum iwl_rx_phy_flags - to parse %iwl_rx_phy_info phy_flags
|
||||
* @RX_RES_PHY_FLAGS_BAND_24: true if the packet was received on 2.4 band
|
||||
* @RX_RES_PHY_FLAGS_MOD_CCK:
|
||||
* @RX_RES_PHY_FLAGS_SHORT_PREAMBLE: true if packet's preamble was short
|
||||
* @RX_RES_PHY_FLAGS_NARROW_BAND:
|
||||
* @RX_RES_PHY_FLAGS_ANTENNA: antenna on which the packet was received
|
||||
* @RX_RES_PHY_FLAGS_AGG: set if the packet was part of an A-MPDU
|
||||
* @RX_RES_PHY_FLAGS_OFDM_HT: The frame was an HT frame
|
||||
* @RX_RES_PHY_FLAGS_OFDM_GF: The frame used GF preamble
|
||||
* @RX_RES_PHY_FLAGS_OFDM_VHT: The frame was a VHT frame
|
||||
*/
|
||||
enum iwl_rx_phy_flags {
|
||||
RX_RES_PHY_FLAGS_BAND_24 = BIT(0),
|
||||
RX_RES_PHY_FLAGS_MOD_CCK = BIT(1),
|
||||
RX_RES_PHY_FLAGS_SHORT_PREAMBLE = BIT(2),
|
||||
RX_RES_PHY_FLAGS_NARROW_BAND = BIT(3),
|
||||
RX_RES_PHY_FLAGS_ANTENNA = (0x7 << 4),
|
||||
RX_RES_PHY_FLAGS_ANTENNA_POS = 4,
|
||||
RX_RES_PHY_FLAGS_AGG = BIT(7),
|
||||
RX_RES_PHY_FLAGS_OFDM_HT = BIT(8),
|
||||
RX_RES_PHY_FLAGS_OFDM_GF = BIT(9),
|
||||
RX_RES_PHY_FLAGS_OFDM_VHT = BIT(10),
|
||||
};
|
||||
|
||||
/**
|
||||
* enum iwl_mvm_rx_status - written by fw for each Rx packet
|
||||
* @RX_MPDU_RES_STATUS_CRC_OK: CRC is fine
|
||||
* @RX_MPDU_RES_STATUS_OVERRUN_OK: there was no RXE overflow
|
||||
* @RX_MPDU_RES_STATUS_SRC_STA_FOUND:
|
||||
* @RX_MPDU_RES_STATUS_KEY_VALID:
|
||||
* @RX_MPDU_RES_STATUS_KEY_PARAM_OK:
|
||||
* @RX_MPDU_RES_STATUS_ICV_OK: ICV is fine, if not, the packet is destroyed
|
||||
* @RX_MPDU_RES_STATUS_MIC_OK: used for CCM alg only. TKIP MIC is checked
|
||||
* in the driver.
|
||||
* @RX_MPDU_RES_STATUS_TTAK_OK: TTAK is fine
|
||||
* @RX_MPDU_RES_STATUS_MNG_FRAME_REPLAY_ERR: valid for alg = CCM_CMAC or
|
||||
* alg = CCM only. Checks replay attack for 11w frames. Relevant only if
|
||||
* %RX_MPDU_RES_STATUS_ROBUST_MNG_FRAME is set.
|
||||
* @RX_MPDU_RES_STATUS_SEC_NO_ENC: this frame is not encrypted
|
||||
* @RX_MPDU_RES_STATUS_SEC_WEP_ENC: this frame is encrypted using WEP
|
||||
* @RX_MPDU_RES_STATUS_SEC_CCM_ENC: this frame is encrypted using CCM
|
||||
* @RX_MPDU_RES_STATUS_SEC_TKIP_ENC: this frame is encrypted using TKIP
|
||||
* @RX_MPDU_RES_STATUS_SEC_CCM_CMAC_ENC: this frame is encrypted using CCM_CMAC
|
||||
* @RX_MPDU_RES_STATUS_SEC_ENC_ERR: this frame couldn't be decrypted
|
||||
* @RX_MPDU_RES_STATUS_SEC_ENC_MSK: bitmask of the encryption algorithm
|
||||
* @RX_MPDU_RES_STATUS_DEC_DONE: this frame has been successfully decrypted
|
||||
* @RX_MPDU_RES_STATUS_PROTECT_FRAME_BIT_CMP:
|
||||
* @RX_MPDU_RES_STATUS_EXT_IV_BIT_CMP:
|
||||
* @RX_MPDU_RES_STATUS_KEY_ID_CMP_BIT:
|
||||
* @RX_MPDU_RES_STATUS_ROBUST_MNG_FRAME: this frame is an 11w management frame
|
||||
* @RX_MPDU_RES_STATUS_CSUM_DONE: checksum was done by the hw
|
||||
* @RX_MPDU_RES_STATUS_CSUM_OK: checksum found no errors
|
||||
* @RX_MPDU_RES_STATUS_HASH_INDEX_MSK:
|
||||
* @RX_MPDU_RES_STATUS_STA_ID_MSK:
|
||||
* @RX_MPDU_RES_STATUS_RRF_KILL:
|
||||
* @RX_MPDU_RES_STATUS_FILTERING_MSK:
|
||||
* @RX_MPDU_RES_STATUS2_FILTERING_MSK:
|
||||
*/
|
||||
enum iwl_mvm_rx_status {
|
||||
RX_MPDU_RES_STATUS_CRC_OK = BIT(0),
|
||||
RX_MPDU_RES_STATUS_OVERRUN_OK = BIT(1),
|
||||
RX_MPDU_RES_STATUS_SRC_STA_FOUND = BIT(2),
|
||||
RX_MPDU_RES_STATUS_KEY_VALID = BIT(3),
|
||||
RX_MPDU_RES_STATUS_KEY_PARAM_OK = BIT(4),
|
||||
RX_MPDU_RES_STATUS_ICV_OK = BIT(5),
|
||||
RX_MPDU_RES_STATUS_MIC_OK = BIT(6),
|
||||
RX_MPDU_RES_STATUS_TTAK_OK = BIT(7),
|
||||
RX_MPDU_RES_STATUS_MNG_FRAME_REPLAY_ERR = BIT(7),
|
||||
RX_MPDU_RES_STATUS_SEC_NO_ENC = (0 << 8),
|
||||
RX_MPDU_RES_STATUS_SEC_WEP_ENC = (1 << 8),
|
||||
RX_MPDU_RES_STATUS_SEC_CCM_ENC = (2 << 8),
|
||||
RX_MPDU_RES_STATUS_SEC_TKIP_ENC = (3 << 8),
|
||||
RX_MPDU_RES_STATUS_SEC_EXT_ENC = (4 << 8),
|
||||
RX_MPDU_RES_STATUS_SEC_CCM_CMAC_ENC = (6 << 8),
|
||||
RX_MPDU_RES_STATUS_SEC_ENC_ERR = (7 << 8),
|
||||
RX_MPDU_RES_STATUS_SEC_ENC_MSK = (7 << 8),
|
||||
RX_MPDU_RES_STATUS_DEC_DONE = BIT(11),
|
||||
RX_MPDU_RES_STATUS_PROTECT_FRAME_BIT_CMP = BIT(12),
|
||||
RX_MPDU_RES_STATUS_EXT_IV_BIT_CMP = BIT(13),
|
||||
RX_MPDU_RES_STATUS_KEY_ID_CMP_BIT = BIT(14),
|
||||
RX_MPDU_RES_STATUS_ROBUST_MNG_FRAME = BIT(15),
|
||||
RX_MPDU_RES_STATUS_CSUM_DONE = BIT(16),
|
||||
RX_MPDU_RES_STATUS_CSUM_OK = BIT(17),
|
||||
RX_MPDU_RES_STATUS_HASH_INDEX_MSK = (0x3F0000),
|
||||
RX_MPDU_RES_STATUS_STA_ID_MSK = (0x1f000000),
|
||||
RX_MPDU_RES_STATUS_RRF_KILL = BIT(29),
|
||||
RX_MPDU_RES_STATUS_FILTERING_MSK = (0xc00000),
|
||||
RX_MPDU_RES_STATUS2_FILTERING_MSK = (0xc0000000),
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iwl_radio_version_notif - information on the radio version
|
||||
* ( RADIO_VERSION_NOTIFICATION = 0x68 )
|
||||
|
|
Loading…
Reference in a new issue