summaryrefslogtreecommitdiff
path: root/include/net
diff options
context:
space:
mode:
authorPeddolla Harshavardhan Reddy <peddolla.reddy@oss.qualcomm.com>2026-04-20 12:08:45 +0300
committerJohannes Berg <johannes.berg@intel.com>2026-05-05 14:25:27 +0300
commit4dbd1829045ee4146ae16b0e1ad122d855a694cb (patch)
tree9dd58818e86a67a41bc0970f7917a2bde0a84c29 /include/net
parentbef9d5e378f07ccdf967b929897de84a9931d1e3 (diff)
downloadlinux-4dbd1829045ee4146ae16b0e1ad122d855a694cb.tar.xz
wifi: cfg80211: Add MAC address filter to remain_on_channel
Currently the remain_on_channel operation does not support filtering incoming frames by destination MAC address. This prevents use cases such as PASN authentication in the responder side that need to receive frames addressed to a specific MAC during the off-channel period. Add an rx_addr parameter to the remain_on_channel operation callback and propagate it through the call chain from nl80211 to driver implementations. Introduce the extended feature NL80211_EXT_FEATURE_ROC_ADDR_FILTER as a capability gate so that cfg80211 rejects the request if the driver does not advertise support for address filtering. Extract the address from the NL80211_ATTR_MAC attribute when provided in the netlink message and update the tracing infrastructure to include the address in remain_on_channel trace events. The rx_addr parameter is optional and can be NULL, maintaining backward compatibility with existing drivers. Signed-off-by: Peddolla Harshavardhan Reddy <peddolla.reddy@oss.qualcomm.com> Link: https://patch.msgid.link/20260420090856.2152905-3-peddolla.reddy@oss.qualcomm.com Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/cfg80211.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index b0a908b2ba73..897dbe325b7e 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -5270,7 +5270,7 @@ struct cfg80211_ops {
struct wireless_dev *wdev,
struct ieee80211_channel *chan,
unsigned int duration,
- u64 *cookie);
+ u64 *cookie, const u8 *rx_addr);
int (*cancel_remain_on_channel)(struct wiphy *wiphy,
struct wireless_dev *wdev,
u64 cookie);