2017-03-06 22:08:39

by Johannes Berg

[permalink] [raw]
Subject: [PATCH] mac80211: ignore VHT membership selector when parsing rates

From: Johannes Berg <[email protected]>

There isn't really much harm in not ignoring, since it doesn't
represent a valid rate, but since we already ignore the HT one
also ignore VHT. Also simplify the code a bit.

Signed-off-by: Johannes Berg <[email protected]>
---
net/mac80211/mlme.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 1568a74757bc..6340127a71c6 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -2823,15 +2823,15 @@ static void ieee80211_get_rates(struct ieee80211_supported_band *sband,
*have_higher_than_11mbit = true;

/*
- * BSS_MEMBERSHIP_SELECTOR_HT_PHY is defined in 802.11n-2009
- * 7.3.2.2 as a magic value instead of a rate. Hence, skip it.
+ * Skip HT and VHT BSS membership selectors since they're not
+ * rates.
*
* Note: Even through the membership selector and the basic
* rate flag share the same bit, they are not exactly
* the same.
*/
- if (!!(supp_rates[i] & 0x80) &&
- (supp_rates[i] & 0x7f) == BSS_MEMBERSHIP_SELECTOR_HT_PHY)
+ if (supp_rates[i] == (0x80 | BSS_MEMBERSHIP_SELECTOR_HT_PHY) ||
+ supp_rates[i] == (0x80 | BSS_MEMBERSHIP_SELECTOR_VHT_PHY))
continue;

for (j = 0; j < sband->n_bitrates; j++) {
--
2.11.0


2017-03-07 09:57:37

by Arend Van Spriel

[permalink] [raw]
Subject: Re: [PATCH] mac80211: ignore VHT membership selector when parsing rates



On 7-3-2017 9:42, Johannes Berg wrote:
>
>>>
>>> /*
>>> - * BSS_MEMBERSHIP_SELECTOR_HT_PHY is defined in
>>> 802.11n-2009
>>> - * 7.3.2.2 as a magic value instead of a rate.
>>> Hence, skip it.
>>> + * Skip HT and VHT BSS membership selectors since
>>> they're not
>>> + * rates.
>>> *
>>> * Note: Even through the membership selector and
>>> the basic
>>
>> typo: through -> though.
>
> That's just existing context ;-)
>
> Will fix here.

I noticed and indeed could create a patch for it, but this is easier
(for me :-p ).

Gr. AvS

2017-03-07 09:18:27

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] mac80211: ignore VHT membership selector when parsing rates


> >  
> >   /*
> > -  * BSS_MEMBERSHIP_SELECTOR_HT_PHY is defined in
> > 802.11n-2009
> > -  * 7.3.2.2 as a magic value instead of a rate.
> > Hence, skip it.
> > +  * Skip HT and VHT BSS membership selectors since
> > they're not
> > +  * rates.
> >    *
> >    * Note: Even through the membership selector and
> > the basic
>
> typo: through -> though.

That's just existing context ;-)

Will fix here.

johannes

2017-03-07 10:35:29

by Arend Van Spriel

[permalink] [raw]
Subject: Re: [PATCH] mac80211: ignore VHT membership selector when parsing rates

On 6-3-2017 23:01, Johannes Berg wrote:
> From: Johannes Berg <[email protected]>
>
> There isn't really much harm in not ignoring, since it doesn't
> represent a valid rate, but since we already ignore the HT one
> also ignore VHT. Also simplify the code a bit.
>
> Signed-off-by: Johannes Berg <[email protected]>
> ---
> net/mac80211/mlme.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
> index 1568a74757bc..6340127a71c6 100644
> --- a/net/mac80211/mlme.c
> +++ b/net/mac80211/mlme.c
> @@ -2823,15 +2823,15 @@ static void ieee80211_get_rates(struct ieee80211_supported_band *sband,
> *have_higher_than_11mbit = true;
>
> /*
> - * BSS_MEMBERSHIP_SELECTOR_HT_PHY is defined in 802.11n-2009
> - * 7.3.2.2 as a magic value instead of a rate. Hence, skip it.
> + * Skip HT and VHT BSS membership selectors since they're not
> + * rates.
> *
> * Note: Even through the membership selector and the basic

typo: through -> though.

Regards,
Arend

> * rate flag share the same bit, they are not exactly
> * the same.
> */
> - if (!!(supp_rates[i] & 0x80) &&
> - (supp_rates[i] & 0x7f) == BSS_MEMBERSHIP_SELECTOR_HT_PHY)
> + if (supp_rates[i] == (0x80 | BSS_MEMBERSHIP_SELECTOR_HT_PHY) ||
> + supp_rates[i] == (0x80 | BSS_MEMBERSHIP_SELECTOR_VHT_PHY))
> continue;
>
> for (j = 0; j < sband->n_bitrates; j++) {
>