diff mbox series

HE: Fix HE capability check for PPE threshold present

Message ID 20190612185304.8367-1-sven@narfation.org
State Superseded, archived
Headers show
Series HE: Fix HE capability check for PPE threshold present | expand

Commit Message

Sven Eckelmann June 12, 2019, 6:53 p.m. UTC
From: Sven Eckelmann <seckelmann@datto.com>

The the mask for PPE threshold present in the HE phy capability byte 6 is
0x80 and not 0x6. The latter breaks the length calculation and the
acceptance of the HE capabilities for STAs which either:

* don't have PPE threshold present AND the highest bit of the sounding
  dimension <= 80 Mhz or lowest bit of the sounding dimension > 80Mhz set
* do have PPE threshold present AND not the highest bit of the sounding
  dimension <= 80 Mhz and not lowest bit of the sounding dimension > 80Mhz
  set

Fixes: 8f5fc369e263 ("HE: Fix HE Capabilities element variable length encoding")
Signed-off-by: Sven Eckelmann <seckelmann@datto.com>
---
Cc: John Crispin <john@phrozen.org>
Cc: Shashidhar Lakkavalli <slakkavalli@datto.com>
---
 src/ap/ieee802_11_he.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Sven Eckelmann June 12, 2019, 11:11 p.m. UTC | #1
On Wednesday, 12 June 2019 20:53:04 CEST Sven Eckelmann wrote:
> * don't have PPE threshold present AND the highest bit of the sounding
>   dimension <= 80 Mhz or lowest bit of the sounding dimension > 80Mhz set
> * do have PPE threshold present AND not the highest bit of the sounding
>   dimension <= 80 Mhz and not lowest bit of the sounding dimension > 80Mhz
>   set

Just looked the bits for the sounding dimension up again in the spec and seems 
I've looked at the wrong position when adding this to the commit message. 
Correct one would be triggered SU beamforming feedback and codebook size mu 
feedback. New version will be submitted in a sec.

Kind regards,
	Sven
diff mbox series

Patch

diff --git a/src/ap/ieee802_11_he.c b/src/ap/ieee802_11_he.c
index ba22a174a..d3d3c1db3 100644
--- a/src/ap/ieee802_11_he.c
+++ b/src/ap/ieee802_11_he.c
@@ -23,7 +23,7 @@  static u8 ieee80211_he_ppet_size(u8 ppe_thres_hdr, const u8 *phy_cap_info)
 	u8 sz = 0, ru;
 
 	if ((phy_cap_info[HE_PHYCAP_PPE_THRESHOLD_PRESENT_IDX] &
-	     HE_PHYCAP_PPE_THRESHOLD_PRESENT_IDX) == 0)
+	     HE_PHYCAP_PPE_THRESHOLD_PRESENT) == 0)
 		return 0;
 
 	ru = (ppe_thres_hdr >> HE_PPE_THRES_RU_INDEX_BITMASK_SHIFT) &