public inbox for ath12k@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH v4 00/10] cfg80211/mac80211: support defining multiple radios per wiphy
@ 2024-07-02 11:35 Felix Fietkau
  2024-07-02 11:35 ` [PATCH v4 01/10] wifi: nl80211: split helper function from nl80211_put_iface_combinations Felix Fietkau
                   ` (9 more replies)
  0 siblings, 10 replies; 12+ messages in thread
From: Felix Fietkau @ 2024-07-02 11:35 UTC (permalink / raw)
  To: linux-wireless; +Cc: johannes, quic_adisi, quic_periyasa, ath12k

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.

With this change, supported frequencies and interface combinations of each
individual radio are reported to user space. This allows user space to figure
out the limitations of what combination of channels can be used concurrently.

Each mac80211 channel context is assigned to a radio based on radio specific
frequency ranges and interface combinations.

Even for non-MLO devices, this improves support for devices capable of
running on multiple channels at the same time.

This is loosely based on Karthikeyan Periyasamy's series
"[PATCH 00/13] wifi: Add multi physical hardware iface combination support"
with some differences:

 - a struct wiphy_radio is defined, which holds the frequency ranges and
   a full struct ieee80211_iface_combination array
 - a channel context is explicitly assigned to a radio when created
 - both global and per-radio interface combination limits are checked
   and enforced on channel context assignment
 - improve comments/docs and attributes
 - add cfg80211 helper for checking radio freq range

Changes since PATCH v3:
 - add documentation note for interface combinations
 - fix ibss ifcomb check
 - drop redundant/incorrect lines in mac80211 radio ifcomb code

Changes since PATCH v2:
 - fix locking annotation for get_radio_mask
 - fix related rcu access in mac80211
 - fix nl80211 radio data type docs
 - remove __counted_by
 - fix unwinding on netlink attr/nest
 - consmetic fixes
 - remove WARN_ON_ONCE in hwsim

Changes since PATCH v1:
 - add nested flag to newly added nested attributes
 - make per-radio attributes multi-attr
 - add __counted_by annotation
 - remove unnecessary tracing
 - fix hwsim attribute docs
 - add hwsim attribute policy
 - add radio index

Changes since RFC v4:
 - report the first radio's ifcomb as main ifcomb for legacy compatibility
 - report the global wiphy ifcomb separately
 - add mac80211_hwsim support

Changes since RFC v3:
 - fix __ieee80211_get_radio_mask to return per-vif radio mask
 - fix params->radio in ieee80211_check_combinations()
 - fix indentation
 - pass radio_idx in struct iface_combination_params
 - improve get_radio_mask callback

Changes since RFC v2:
 - fix uninitialized variables
 - fix multiple radios with DFS
 - add support for per-radio beacon interval checking

Changes since RFC:
 - replace static per-radio number of channels limit with full ifcomb
   checks
 - remove band bitmask in favor of only using freq ranges

Felix Fietkau (10):
  wifi: nl80211: split helper function from nl80211_put_iface_combinations
  wifi: cfg80211: add support for advertising multiple radios belonging to a wiphy
  wifi: cfg80211: extend interface combination check for multi-radio
  wifi: cfg80211: add helper for checking if a chandef is valid on a radio
  wifi: mac80211: add support for DFS with multiple radios
  wifi: mac80211: add radio index to ieee80211_chanctx_conf
  wifi: mac80211: extend ifcomb check functions for multi-radio
  wifi: mac80211: move code in ieee80211_link_reserve_chanctx to a helper
  wifi: mac80211: add wiphy radio assignment and validation
  wifi: mac80211_hwsim: add support for multi-radio wiphy

 drivers/net/wireless/virtual/mac80211_hwsim.c |  74 +++++--
 drivers/net/wireless/virtual/mac80211_hwsim.h |   4 +-
 include/net/cfg80211.h                        |  56 ++++-
 include/net/mac80211.h                        |   2 +-
 include/uapi/linux/nl80211.h                  |  65 ++++++-
 net/mac80211/cfg.c                            |   7 +-
 net/mac80211/chan.c                           | 210 +++++++++++--------
 net/mac80211/ibss.c                           |   2 +-
 net/mac80211/ieee80211_i.h                    |   5 +-
 net/mac80211/iface.c                          |   2 +-
 net/mac80211/main.c                           |  50 +++--
 net/mac80211/util.c                           | 143 ++++++++-----
 net/wireless/nl80211.c                        | 202 +++++++++++++-----
 net/wireless/rdev-ops.h                       |  12 +-
 net/wireless/util.c                           |  68 +++++-
 15 files changed, 673 insertions(+), 229 deletions(-)

base-commit: 8c62617295d3c4cd03f1a02c3b9bf9d4e6d6e0c6
-- 
git-series 0.9.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2024-07-09  2:45 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-02 11:35 [PATCH v4 00/10] cfg80211/mac80211: support defining multiple radios per wiphy Felix Fietkau
2024-07-02 11:35 ` [PATCH v4 01/10] wifi: nl80211: split helper function from nl80211_put_iface_combinations Felix Fietkau
2024-07-02 11:35 ` [PATCH v4 02/10] wifi: cfg80211: add support for advertising multiple radios belonging to a wiphy Felix Fietkau
2024-07-02 11:35 ` [PATCH v4 03/10] wifi: cfg80211: extend interface combination check for multi-radio Felix Fietkau
2024-07-02 11:35 ` [PATCH v4 04/10] wifi: cfg80211: add helper for checking if a chandef is valid on a radio Felix Fietkau
2024-07-02 11:36 ` [PATCH v4 05/10] wifi: mac80211: add support for DFS with multiple radios Felix Fietkau
2024-07-02 11:36 ` [PATCH v4 06/10] wifi: mac80211: add radio index to ieee80211_chanctx_conf Felix Fietkau
2024-07-02 11:36 ` [PATCH v4 07/10] wifi: mac80211: extend ifcomb check functions for multi-radio Felix Fietkau
2024-07-09  2:44   ` kernel test robot
2024-07-02 11:36 ` [PATCH v4 08/10] wifi: mac80211: move code in ieee80211_link_reserve_chanctx to a helper Felix Fietkau
2024-07-02 11:36 ` [PATCH v4 09/10] wifi: mac80211: add wiphy radio assignment and validation Felix Fietkau
2024-07-02 11:36 ` [PATCH v4 10/10] wifi: mac80211_hwsim: add support for multi-radio wiphy Felix Fietkau

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox