mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-09 15:29:16 +00:00
wifi: iwlwifi: mvm: support U-SIG EHT validate checks
Support new firmware that can validate the validate bits in sniffer mode, and advertise that fact and the result of the checks in the U-SIG radiotap field. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> Link: https://lore.kernel.org/r/20230613155501.c20480aa1171.Icc0d077dae01d662ccb948823e196aa9c5c87976@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
f3c21ed9ce
commit
557b56d523
@ -292,7 +292,7 @@ enum iwl_rx_phy_he_data0 {
|
||||
/* TSF overload low dword */
|
||||
enum iwl_rx_phy_eht_data0 {
|
||||
/* info type: EHT any */
|
||||
/* 1 bits reserved */
|
||||
IWL_RX_PHY_DATA0_EHT_VALIDATE = BIT(0),
|
||||
IWL_RX_PHY_DATA0_EHT_UPLINK = BIT(1),
|
||||
IWL_RX_PHY_DATA0_EHT_BSS_COLOR_MASK = 0x000000fc,
|
||||
IWL_RX_PHY_DATA0_ETH_SPATIAL_REUSE_MASK = 0x00000f00,
|
||||
|
@ -467,6 +467,7 @@ enum iwl_ucode_tlv_capa {
|
||||
IWL_UCODE_TLV_CAPA_PPAG_CHINA_BIOS_SUPPORT = (__force iwl_ucode_tlv_capa_t)112,
|
||||
IWL_UCODE_TLV_CAPA_OFFLOAD_REJ_BTM_SUPPORT = (__force iwl_ucode_tlv_capa_t)113,
|
||||
IWL_UCODE_TLV_CAPA_STA_EXP_MFP_SUPPORT = (__force iwl_ucode_tlv_capa_t)114,
|
||||
IWL_UCODE_TLV_CAPA_SNIFF_VALIDATE_SUPPORT = (__force iwl_ucode_tlv_capa_t)116,
|
||||
|
||||
#ifdef __CHECKER__
|
||||
/* sparse says it cannot increment the previous enum member */
|
||||
|
@ -1773,6 +1773,15 @@ static void iwl_mvm_decode_eht_phy_data(struct iwl_mvm *mvm,
|
||||
IEEE80211_RADIOTAP_EHT_USIG_COMMON_BSS_COLOR);
|
||||
}
|
||||
|
||||
if (fw_has_capa(&mvm->fw->ucode_capa,
|
||||
IWL_UCODE_TLV_CAPA_SNIFF_VALIDATE_SUPPORT)) {
|
||||
usig->common |=
|
||||
cpu_to_le32(IEEE80211_RADIOTAP_EHT_USIG_COMMON_VALIDATE_BITS_CHECKED);
|
||||
usig->common |=
|
||||
LE32_DEC_ENC(data0, IWL_RX_PHY_DATA0_EHT_VALIDATE,
|
||||
IEEE80211_RADIOTAP_EHT_USIG_COMMON_VALIDATE_BITS_OK);
|
||||
}
|
||||
|
||||
eht->known |= cpu_to_le32(IEEE80211_RADIOTAP_EHT_KNOWN_SPATIAL_REUSE);
|
||||
eht->data[0] |= LE32_DEC_ENC(data0,
|
||||
IWL_RX_PHY_DATA0_ETH_SPATIAL_REUSE_MASK,
|
||||
|
@ -535,6 +535,8 @@ enum ieee80211_radiotap_eht_usig_common {
|
||||
IEEE80211_RADIOTAP_EHT_USIG_COMMON_BSS_COLOR_KNOWN = 0x00000008,
|
||||
IEEE80211_RADIOTAP_EHT_USIG_COMMON_TXOP_KNOWN = 0x00000010,
|
||||
IEEE80211_RADIOTAP_EHT_USIG_COMMON_BAD_USIG_CRC = 0x00000020,
|
||||
IEEE80211_RADIOTAP_EHT_USIG_COMMON_VALIDATE_BITS_CHECKED = 0x00000040,
|
||||
IEEE80211_RADIOTAP_EHT_USIG_COMMON_VALIDATE_BITS_OK = 0x00000080,
|
||||
IEEE80211_RADIOTAP_EHT_USIG_COMMON_PHY_VER = 0x00007000,
|
||||
IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW = 0x00038000,
|
||||
IEEE80211_RADIOTAP_EHT_USIG_COMMON_UL_DL = 0x00040000,
|
||||
|
Loading…
x
Reference in New Issue
Block a user