mbox series

[wireless-next,v3,0/5] wifi: cfg80211: Add support to indicate changed AP BSS parameters to drivers

Message ID 20250603161057.19101-1-gokulkumar.sivakumar@infineon.com
Headers show
Series wifi: cfg80211: Add support to indicate changed AP BSS parameters to drivers | expand

Message

Gokul Sivakumar June 3, 2025, 4:10 p.m. UTC
In cfg80211, added provision for the drivers which registers the callback 
.change_bss() cfg80211_ops, to find which set of AP BSS params are changed
by the userpsace in the SET_BSS operation. With this the drivers can decide
to reject the operation if any of the changed AP BSS param is not supported
for explicit configuration. This helps ensuring that the driver does not
partially handle the AP BSS params and avoid misleading the userspace that
the SET_BSS operation is fully successful.

Also introduced the "changed" bitmask check in all the drivers that are
currently registering to .change_bss() cfg80211_ops. This would make the
condition for handling SET_BSS operation equally stirct across all drivers.

CHANGE LOG:
v3:
 - In drivers, added individual check for the CFG80211_BSS_PARAM_CHANGED_*
   flag before handling the corresponding AP BSS param from the userspace.
   This avoids the case where driver unnecessarily checks the value of
   all the supported AP BSS params, even if the userspace did not pass some
   of those params in the SET_BSS request. This addresses a review comment.
   Link: https://lore.kernel.org/linux-wireless/5095079184a282ae552c50c8c121a632d51b0419.camel@sipsolutions.net/

v2:
 - Rephrased the subject line for this v2 patchset cover letter to include
   new changes introduced for addressing review comments. Kindly refer the
   below mentioned v1 section for the reference to the previously submitted
   patch Link.

 - cfg80211: in a new patch in v2, introduced the "changed" bitmask for
   AP BSS parameters as suggested in Johannes's review comment in v1 patch.
   Link: https://lore.kernel.org/linux-wireless/29fa5ea7f4cc177bed823ec3489d610e1d69a08f.camel@sipsolutions.net/

 - brcmfmac & wil6210: added "changed" bitmask check for the supported
   "ap_isolate" param and reject the entire SET_BSS operation if the
   userspace passes any other unsupported AP BSS parameter.

 - brcmfmac: added changes to get the current "ap_isolate" param value from
   firmware before attempting to set the new value from userspace. If the
   new value is already set, skip this operation.

 - wilc1000: in a new patch in v2, added "changed" bitmask check for the
   SET_BSS operation, and return -EOPNOTSUPP instead of 0, if the userspace
   attempts to change any AP BSS param. This helps to avoid misleading the
   userspace that the operation is fully successful.

 - mac80211: in a new patch in v2, added "changed" bitmask check for the
   supported AP BSS params, and return -EOPNOTSUPP if any unsupported
   param is set by the userspace.
 
 - Link: https://lore.kernel.org/linux-wireless/20250603103252.18039-2-gokulkumar.sivakumar@infineon.com/

v1:
 - brcmfmac: support AP isolation to restrict reachability between stations

 - Link: https://lore.kernel.org/linux-wireless/20250423175125.7233-1-gokulkumar.sivakumar@infineon.com/


Gokul Sivakumar (4):
  wifi: cfg80211: Add support to indicate changed AP BSS parameters to
    driver
  wifi: wil6210: reject SET_BSS if any changed AP BSS param is not
    supported
  wifi: wilc1000: reject SET_BSS if any changed AP BSS param is not
    supported
  wifi: mac80211: reject SET_BSS if any changed AP BSS param is not
    supported

Wright Feng (1):
  wifi: brcmfmac: support AP isolation to restrict reachability between
    stations

 drivers/net/wireless/ath/wil6210/cfg80211.c   | 10 +++-
 .../broadcom/brcm80211/brcmfmac/cfg80211.c    | 47 ++++++++++++++++
 .../wireless/microchip/wilc1000/cfg80211.c    |  6 +++
 include/net/cfg80211.h                        | 30 +++++++++++
 net/mac80211/cfg.c                            | 54 +++++++++++++------
 net/wireless/nl80211.c                        | 28 ++++++++--
 6 files changed, 154 insertions(+), 21 deletions(-)