mbox series

[RFC,0/4] wifi: cfg80211/mac80211: capability advertisement infra for multi-hw abstraction under one wiphy

Message ID 20220920100518.19705-1-quic_vthiagar@quicinc.com (mailing list archive)
Headers show
Series wifi: cfg80211/mac80211: capability advertisement infra for multi-hw abstraction under one wiphy | expand

Message

Vasanthakumar Thiagarajan Sept. 20, 2022, 10:05 a.m. UTC
There may be hardware design (ath12k as of now) supporting MLO across multiple
discrete hardware each acting as a link in the MLO operation. Since the prerequisite
for MLO support in cfg80211/mac80211 is that all the links participating in MLO
must be from the same wiphy/ieee80211_hw, driver needs to handle the discreate hardware
abstraction under single wiphy.  Though most of the hw specific abstractions
can be handled with in the driver, there are some capabilities like interface
combination which can be specific to each constituent physical hardware. This patch set
tries to add an infrastructure to advertise underlying hw specific capabilities like
channel and interface combinations.

Some of the todos

- Make runtime iface combination validation logic be aware of this extension
- More than one concurrent monitor mode support each operating on different
  channels under one ieee80211_hw
- Mechanism for each underlying radio specific configurations like txpower, channel, etc. 
- Should we make the capability advertisement changes to mac80211_hwsim?
- Should we enable some of concurrent operations like allow scan on each physical
  hardware concurrently?


Vasanthakumar Thiagarajan (4):
  wifi: cfg80211: Add provision to advertise multiple radio in one wiphy
  wifi: nl80211: send underlying multi-hardware channel capabilities to
    user space
  wifi: cfg80211/mac80211: extend iface comb advertisement for
    multi-hardware dev
  wifi: nl80211: send iface combination to user space in multi-hardware
    wiphy

 include/net/cfg80211.h       | 130 +++++++++++++++++
 include/uapi/linux/nl80211.h |  78 +++++++++-
 net/mac80211/main.c          |  54 +++++++
 net/wireless/core.c          | 275 +++++++++++++++++++++++++++++------
 net/wireless/nl80211.c       | 118 +++++++++++++++
 net/wireless/util.c          |  18 +++
 6 files changed, 629 insertions(+), 44 deletions(-)

Comments

Johannes Berg Oct. 21, 2022, 11:57 a.m. UTC | #1
Hi,

Sorry for the delay!

> - Should we make the capability advertisement changes to mac80211_hwsim?

I don't think we can, unless we teach hwsim and even mac80211 about
this? IMHO doesn't make much sense.

> - Should we enable some of concurrent operations like allow scan on each physical
>   hardware concurrently?

Isn't that up to the driver? If userspace requests scanning all bands in
a single scan request you can parallelize it using multiple HW
resources?

johannes
Vasanthakumar Thiagarajan Oct. 21, 2022, 12:11 p.m. UTC | #2
On 10/21/2022 5:27 PM, Johannes Berg wrote:
> Hi,
> 
> Sorry for the delay!

no worries.

> 
>> - Should we make the capability advertisement changes to mac80211_hwsim?
> 
> I don't think we can, unless we teach hwsim and even mac80211 about
> this? IMHO doesn't make much sense.
> 

Sure.

>> - Should we enable some of concurrent operations like allow scan on each physical
>>    hardware concurrently?
> 
> Isn't that up to the driver? If userspace requests scanning all bands in
> a single scan request you can parallelize it using multiple HW
> resources?

Correct, driver should be able to handle the scanning on multiple HW in 
parallel. We saw resource busy error code when tried to bring up 
multiple AP interfaces on different band at the same time due to
an existing scan request still in progress. I agree, it makes sense
to give a single scan request with all the bands and let the ACS in
user space share the results for AP bring up on any band.

Vasanth