Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

wifi: mt76: Fix EHT NSS radiotap reporting.

Wireshark and iwlwifi use zero-based NSS reporting, adjust
mt76 to do the same.

Signed-off-by: Ben Greear <greearb@candelatech.com>
Link: https://patch.msgid.link/20240909211238.3237111-2-greearb@candelatech.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>

authored by

Ben Greear and committed by
Felix Fietkau
512e26db e016239f

+3 -2
+3 -2
drivers/net/wireless/mediatek/mt76/mt76_connac3_mac.c
··· 231 231 EHT_PREP(DATA0_PE_DISAMBIGUITY_OM, PE_DISAMBIG, rxv[5]) | 232 232 EHT_PREP(DATA0_LDPC_EXTRA_SYM_OM, LDPC_EXT_SYM, rxv[4]); 233 233 234 - eht->data[7] |= le32_encode_bits(status->nss, IEEE80211_RADIOTAP_EHT_DATA7_NSS_S); 234 + /* iwlwifi and wireshark expect radiotap to report zero-based NSS, so subtract 1. */ 235 + eht->data[7] |= le32_encode_bits(status->nss - 1, IEEE80211_RADIOTAP_EHT_DATA7_NSS_S); 235 236 236 237 eht->user_info[0] |= 237 238 EHT_BITS(USER_INFO_MCS_KNOWN) | ··· 241 240 EHT_BITS(USER_INFO_BEAMFORMING_KNOWN_O) | 242 241 EHT_BITS(USER_INFO_DATA_FOR_USER) | 243 242 le32_encode_bits(status->rate_idx, IEEE80211_RADIOTAP_EHT_USER_INFO_MCS) | 244 - le32_encode_bits(status->nss, IEEE80211_RADIOTAP_EHT_USER_INFO_NSS_O); 243 + le32_encode_bits(status->nss - 1, IEEE80211_RADIOTAP_EHT_USER_INFO_NSS_O); 245 244 246 245 if (le32_to_cpu(rxv[0]) & MT_PRXV_TXBF) 247 246 eht->user_info[0] |= EHT_BITS(USER_INFO_BEAMFORMING_O);