From: Nick Hainke <vincent@systemli.org>
To: linux-wireless@vger.kernel.org
Cc: nbd@nbd.name, Nick Hainke <vincent@systemli.org>,
Johannes Berg <johannes@sipsolutions.net>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>
Subject: [PATCH] wifi: mac80211: add support for scanning in ap mode
Date: Tue, 10 Jan 2023 12:05:24 +0100 [thread overview]
Message-ID: <20230110110524.511258-1-vincent@systemli.org> (raw)
OpenWRT has shipped a patch since 2011 that allows it to perform a scan
in AP mode, whether it is supported by the driver or not. In certain
situations, it may be desirable to scan an interface that is currently
in AP mode regardless of whether frames are missed. The patch adds a
module parameter "allow_ap_scan" that, if set to true, allows the behavior
described above.
Tested-on: TP Link Archer C7 V2 (Qualcomm Atheros QCA9558,
Qualcomm Atheros QCA9880-BR4A) with OpenWrt Linux 5.15.86
Signed-off-by: Nick Hainke <vincent@systemli.org>
---
net/mac80211/cfg.c | 3 +++
net/mac80211/ieee80211_i.h | 3 +++
net/mac80211/main.c | 5 +++++
3 files changed, 11 insertions(+)
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 8f9a2ab502b3..04730fb0f621 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -2723,6 +2723,9 @@ static int ieee80211_scan(struct wiphy *wiphy,
*/
fallthrough;
case NL80211_IFTYPE_AP:
+ /* Support scanning in AP mode regardless of driver support. */
+ if (allow_ap_scan)
+ break;
/*
* If the scan has been forced (and the driver supports
* forcing), don't care about being beaconing already.
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 63ff0d2524b6..d48c7dd00dd4 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -2566,4 +2566,7 @@ ieee80211_eht_cap_ie_to_sta_eht_cap(struct ieee80211_sub_if_data *sdata,
const struct ieee80211_eht_cap_elem *eht_cap_ie_elem,
u8 eht_cap_len,
struct link_sta_info *link_sta);
+
+extern bool allow_ap_scan;
+
#endif /* IEEE80211_I_H */
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index 846528850612..c33d99717cd0 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -33,6 +33,11 @@
#include "led.h"
#include "debugfs.h"
+bool allow_ap_scan;
+module_param(allow_ap_scan, bool, 0644);
+MODULE_PARM_DESC(allow_ap_scan,
+ "Support scanning in AP mode regardless of driver support.");
+
void ieee80211_configure_filter(struct ieee80211_local *local)
{
u64 mc;
--
2.39.0
next reply other threads:[~2023-01-10 11:07 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-10 11:05 Nick Hainke [this message]
2023-01-10 11:07 ` [PATCH] wifi: mac80211: add support for scanning in ap mode Johannes Berg
2023-01-10 11:18 ` Nick
2023-01-10 11:19 ` Johannes Berg
2023-01-10 11:20 ` Johannes Berg
2023-01-10 12:31 ` Nick
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=20230110110524.511258-1-vincent@systemli.org \
--to=vincent@systemli.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=johannes@sipsolutions.net \
--cc=kuba@kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=nbd@nbd.name \
--cc=pabeni@redhat.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