Search Linux Wireless

Re: [PATCH v2] mac80211: reject/clear user rate mask if not usable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2020-11-13 16:16, Johannes Berg wrote:
On Fri, 2020-11-13 at 16:14 +0800, Wen Gong wrote:
On 2020-11-13 15:38, Johannes Berg wrote:
> On Fri, 2020-11-13 at 10:08 +0800, Wen Gong wrote:
> > > Which was the intent of this change, wasn't it?
>
> Indeed. Permitting this leads to warnings later.
>
> > We need to set the tx rate to fixed at a single rate, e.g.,
> > 54M/48M/36M... for a test case.
> > I do not want a clear error message, I want to the 54M rate pass/set
> > success to lower wlan driver.
> > Then lower wlan driver can handle it.
>
> No, that will not happen. You should configure your test AP to actually
> support 54M.
Yes, the AP support 54M, but it is not basic rate, so
ieee80211_set_bitrate_mask will reject 54M
because fail for check (mask->control[band].legacy & basic_rates).

Ah. So this is what I said in the original commit message even:

Technically, selecting basic rates as the criterion is a bit too
restrictive, but calculating the usable rates over all stations
(e.g. in AP mode) is harder, and all stations must support the
basic rates. Similarly, in client mode, the basic rates will be
used anyway for control frames.

I guess if we really want to redefine the user rate mask to not apply to
control frames, then we can relax this?

Yes, for AP mode, it is hard to calculate the usable rates over all stations. But for STATION mode, it can set 54M because AP support it, so it should not reject it. If add a check for nl80211_iftype of ieee80211_vif in ieee80211_set_bitrate_mask, it can
solve this like this:
if (sdata->vif.type != NL80211_IFTYPE_STATION && !(mask->control[band].legacy & basic_rates))
johannes



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux