From: Johannes Berg <johannes@sipsolutions.net>
To: Arend van Spriel <arend.vanspriel@broadcom.com>,
Gokul Sivakumar <gokulkumar.sivakumar@infineon.com>
Cc: linux-wireless@vger.kernel.org, brcm80211@lists.linux.dev,
wlan-kernel-dev-list@infineon.com
Subject: Re: [PATCH] brcmfmac: support AP isolation to restrict reachability between stations
Date: Thu, 24 Apr 2025 13:46:56 +0200 [thread overview]
Message-ID: <29fa5ea7f4cc177bed823ec3489d610e1d69a08f.camel@sipsolutions.net> (raw)
In-Reply-To: <2a6f7d20-2901-46d6-a16a-b977ff0a3724@broadcom.com>
On Thu, 2025-04-24 at 13:36 +0200, Arend van Spriel wrote:
> On 4/24/2025 12:22 PM, Johannes Berg wrote:
> > On Thu, 2025-04-24 at 11:50 +0200, Arend van Spriel wrote:
> > >
> > > Looked at other drivers implementing this callback and here are the results:
> > >
> > > [wil6210] wil_cfg80211_change_bss(): does exactly the same thing.
> > > [wilc1000] change_bss(): worse! it accepts everything and does nothing.
> > > [rtl8723bs] cfg80211_rtw_change_bss(): same. just an empty callback.
> >
> > OK, though I guess other drivers being bad doesn't mean this one should
> > be :)
>
> Sure. I am on your team in this. Can you recommend a plan of attack
> here? Should we add a mechanism to expose what BSS parameter changes the
> driver can handle similar to what is used for struct
> station_info::bss_params?
I don't even know off the top of my head what's there and what isn't,
just thought the code looked odd. I guess mac80211 just mostly supports
all of them anyway.
Today the change is simply rejected by cfg80211 with -EOPNOTSUPP:
static int nl80211_set_bss(struct sk_buff *skb, struct genl_info *info)
{
...
if (!rdev->ops->change_bss)
return -EOPNOTSUPP;
why not keep doing that for everything but ap_isolate?
Oh, I see what you mean, there's no way to keep that updated since you'd
have to check each value for being changed and reject that ...
Hmm, yeah, that's not great. I guess ideally then we'd have a bitmap of
what changed, and what the driver can support?
enum {
CFG80211_BSS_PARAM_CHANGE_CTS_PROT = BIT(0),
CFG80211_BSS_PARAM_CHANGE_SHORT_PRE = BIT(1),
CFG80211_BSS_PARAM_CHANGE_SHORT_SLOT = BIT(2),
...
CFG80211_BSS_PARAM_CHANGE_AP_ISOLATE = BIT(N),
...
};
and
struct bss_parameters {
int link_id;
u32 changed;
...
}
and then this driver can just do
if (params->changed & ~CFG80211_BSS_PARAM_CHANGE_AP_ISOLATE)
return -EOPNOTSUPP;
or so?
Not sure how that'd be related to station_info::bss_param, that's just
output from the driver.
johannes
next prev parent reply other threads:[~2025-04-24 11:46 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-23 17:51 [PATCH] brcmfmac: support AP isolation to restrict reachability between stations Gokul Sivakumar
2025-04-23 22:15 ` Johannes Berg
2025-04-24 9:50 ` Arend van Spriel
2025-04-24 10:22 ` Johannes Berg
2025-04-24 11:36 ` Arend van Spriel
2025-04-24 11:46 ` Johannes Berg [this message]
2025-04-24 12:16 ` Arend van Spriel
2025-04-26 7:51 ` Gokul Sivakumar
2025-04-26 8:37 ` Johannes Berg
2025-04-29 8:22 ` Arend van Spriel
2025-04-30 9:56 ` Johannes Berg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=29fa5ea7f4cc177bed823ec3489d610e1d69a08f.camel@sipsolutions.net \
--to=johannes@sipsolutions.net \
--cc=arend.vanspriel@broadcom.com \
--cc=brcm80211@lists.linux.dev \
--cc=gokulkumar.sivakumar@infineon.com \
--cc=linux-wireless@vger.kernel.org \
--cc=wlan-kernel-dev-list@infineon.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox