[RFC v3 2/8] wifi: cfg80211: add support for advertising multiple radios belonging to a wiphy
Felix Fietkau
nbd at nbd.name
Fri Jun 7 03:00:31 PDT 2024
On 07.06.24 11:24, Johannes Berg wrote:
> On Thu, 2024-06-06 at 20:07 +0200, Felix Fietkau wrote:
>
>> The prerequisite for MLO support in cfg80211/mac80211 is that all the links
>> participating in MLO must be from the same wiphy/ieee80211_hw. To meet this
>> expectation, some drivers may need to group multiple discrete hardware each
>> acting as a link in MLO under single wiphy.
>
> This is of course the motivation now, but I do wonder if this wouldn't
> potentially also apply to a single device that's full dual-band capable
> in some way? But doesn't really matter now.
>
> But the thing is that it would let userspace differentiate between what
> we mostly have today in a single device (multiple channels can be used,
> but you have to go to powersave etc.), vs. a fully concurrent device.
>
> IOW, it feels like this could be used to advertise fully concurrent
> capabilities?
Yes, that's my intention with the patches as well. I will update the
description.
>> + * struct wiphy_radio - This structure describes a physical radio belonging
>> + * to a wiphy. It is used to describe concurrent-channel capabilities of the
>> + * phy. Only one channel can be active on the radio described by struct
>> + * wiphy_radio.
>
> that's a bit long for the 'short description' :P
>
> maybe just say "struct wiphy_radio - physical radio of a wiphy" and move
> the full description down.
Sure
>> + *
>> + * @radio: radios belonging to this wiphy
>> + * @n_radio: number of radios
>
> Somewhere - either here or above - we should probably say that it's
> assumed you only have a single radio (with the properties covered by the
> interface combinations in the wiphy itself) if this isn't given at all.
>
> (Which is what we assume today, more or less.)
>
>> +++ b/include/uapi/linux/nl80211.h
>> @@ -3401,6 +3401,8 @@ enum nl80211_attrs {
>>
>> NL80211_ATTR_ASSOC_SPP_AMSDU,
>>
>> + NL80211_ATTR_RADIOS,
>
> missing docs
>
>> +/**
>> + * enum nl80211_wiphy_radio_attrs - wiphy radio attributes
>> + *
>> + * @__NL80211_WIPHY_RADIO_ATTR_INVALID: Invalid
>
> maybe if this is WIPHY_RADIO also call it NL80211_ATTR_WIPHY_RADIOS
> above?
Will do
>> + * @NL80211_WIPHY_RADIO_ATTR_FREQ_RANGES: Nested array of frequency ranges
>> + * supported by this radio.
>
> Do we really want this complexity? We only have a single range now, do
> we expect that to change? Non-contiguous ranges, where a hole in the
> middle is supported by another radio?
>
> Not sure I see the value vs. just having min/max freq directly here?
I think there's hardware where one of the radios can be dual-band
(non-concurrent).
>> + freqs = nla_nest_start_noflag(msg, NL80211_WIPHY_RADIO_ATTR_FREQ_RANGES);
>
> Please don't add new _noflag code.
>
>> + nl_combis = nla_nest_start_noflag(msg,
>> + NL80211_WIPHY_RADIO_ATTR_INTERFACE_COMBINATIONS);
>
> same here
>
> (and yes maybe userspace wants to unify the parsing of this with the
> existing interface combinations attribute and pass the attribute ID or
> something, but then it can fix the nested flag too.)
Will remove _noflag.
- Felix
More information about the ath12k
mailing list