[PATCH v2] mac80211: reject/clear user rate mask if not usable
Wen Gong
wgong at codeaurora.org
Fri Nov 13 03:35:07 EST 2020
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
More information about the ath11k
mailing list