On 09/07/2017 05:47 PM, Richard Schütz wrote: > According to IEEE Std 802.11-2016 (16.2.3.4 Long PHY SIGNAL field) all of > the following rates are mandatory for a HR/DSSS PHY: 1 Mb/s, 2 Mb/s, > 5.5 Mb/s and 11 Mb/s. Set IEEE80211_RATE_MANDATORY_B flag for all of these > instead of just 1 Mb/s to correctly reflect this. > > Signed-off-by: Richard Schütz <rschuetz@xxxxxxxxxxxxxx> We've noticed that this is breaking interoperability of 11s nodes in OpenWrt: association is only possible when neither or both peers have this patch. I have not tested interop with non-Linux 11s peers. I propose to revert this for now (I assume it's too late for 4.15, but hopefully the regression can be fixed in 4.15.1). Regards, Matthias > --- > net/wireless/util.c | 22 +++++++++------------- > 1 file changed, 9 insertions(+), 13 deletions(-) > > diff --git a/net/wireless/util.c b/net/wireless/util.c > index bcb1284c3415..c69b5c31caf8 100644 > --- a/net/wireless/util.c > +++ b/net/wireless/util.c > @@ -157,32 +157,28 @@ static void set_mandatory_flags_band(struct ieee80211_supported_band *sband) > case NL80211_BAND_2GHZ: > want = 7; > for (i = 0; i < sband->n_bitrates; i++) { > - if (sband->bitrates[i].bitrate == 10) { > + if (sband->bitrates[i].bitrate == 10 || > + sband->bitrates[i].bitrate == 20 || > + sband->bitrates[i].bitrate == 55 || > + sband->bitrates[i].bitrate == 110) { > sband->bitrates[i].flags |= > IEEE80211_RATE_MANDATORY_B | > IEEE80211_RATE_MANDATORY_G; > want--; > + } else { > + sband->bitrates[i].flags |= > + IEEE80211_RATE_ERP_G; > } > > - if (sband->bitrates[i].bitrate == 20 || > - sband->bitrates[i].bitrate == 55 || > - sband->bitrates[i].bitrate == 110 || > - sband->bitrates[i].bitrate == 60 || > + if (sband->bitrates[i].bitrate == 60 || > sband->bitrates[i].bitrate == 120 || > sband->bitrates[i].bitrate == 240) { > sband->bitrates[i].flags |= > IEEE80211_RATE_MANDATORY_G; > want--; > } > - > - if (sband->bitrates[i].bitrate != 10 && > - sband->bitrates[i].bitrate != 20 && > - sband->bitrates[i].bitrate != 55 && > - sband->bitrates[i].bitrate != 110) > - sband->bitrates[i].flags |= > - IEEE80211_RATE_ERP_G; > } > - WARN_ON(want != 0 && want != 3 && want != 6); > + WARN_ON(want != 0 && want != 3); > break; > case NL80211_BAND_60GHZ: > /* check for mandatory HT MCS 1..4 */ >
Attachment:
signature.asc
Description: OpenPGP digital signature