mbox series

[RFC,0/6] wifi: cfg80211/mac80211: improve support for multiple radios

Message ID cover.c32cfe64c671566c111b1b7ea426dbd1e8f2c568.1722885720.git-series.nbd@nbd.name (mailing list archive)
Headers show
Series wifi: cfg80211/mac80211: improve support for multiple radios | expand

Message

Felix Fietkau Aug. 5, 2024, 7:23 p.m. UTC
This series adds support for restricting vifs to a set of radios.
The allowed radios mask is used to restrict scanning, off-channel activity.
This is also used for per-radio start/stop ops, monitor state and filter
flags. It can also limit per-monitor-vif rx to specific radios.

Felix Fietkau (6):
  wifi: cfg80211/mac80211: add option for vif allowed radios
  wifi: mac80211: remove status->ampdu_delimiter_crc
  wifi: mac80211: notify driver about per-radio monitor enabled state
  wifi: mac80211: support per-radio driver start/stop calls
  wifi: mac80211: support per-radio filter flags
  wifi: mac80211: check vif radio_mask for monitor mode rx

 include/net/cfg80211.h       |  14 +++-
 include/net/mac80211.h       |  33 +++++--
 include/uapi/linux/nl80211.h |   5 +-
 net/mac80211/cfg.c           |   7 ++-
 net/mac80211/chan.c          |  13 ++-
 net/mac80211/driver-ops.h    |  50 +++++++++++-
 net/mac80211/ieee80211_i.h   |  29 +++++--
 net/mac80211/iface.c         | 159 +++++++++++++++++++++++++++---------
 net/mac80211/main.c          |  72 ++++++++++++----
 net/mac80211/mesh.c          |  33 +++++--
 net/mac80211/rx.c            |  65 +++++++--------
 net/mac80211/scan.c          |  10 +-
 net/mac80211/trace.h         |  38 +++++++++-
 net/wireless/nl80211.c       |  46 +++++++++-
 net/wireless/scan.c          |  10 +-
 net/wireless/util.c          |  29 +++++++-
 16 files changed, 494 insertions(+), 119 deletions(-)

base-commit: 30335bbc777aa14ccf5ea329296f59bb30d0180f

Comments

Johannes Berg Aug. 23, 2024, 10:14 a.m. UTC | #1
On Mon, 2024-08-05 at 21:23 +0200, Felix Fietkau wrote:
> This series adds support for restricting vifs to a set of radios.
> The allowed radios mask is used to restrict scanning, off-channel activity.
> This is also used for per-radio start/stop ops, monitor state and filter
> flags. It can also limit per-monitor-vif rx to specific radios.
> 

I see the idea, I guess, but but honestly I don't like the way this is
all mixed up between cfg80211 and mac80211.

I think more of this should be in cfg80211 (e.g. not sure why the
changes to ieee80211_change_iface, nothing there that cfg80211 couldn't
do; and generally would prefer to have the patch split), but since it
can never be perfect there (internal scans like in mac80211, etc.), I
guess it really also should come with a feature flag. That'd also make
the series more robust, with enabling the feature only in the last
commit.

johannes