mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-27 17:18:59 +00:00
87033c3a0b
- add support for configuring allowed radios for a vif - add support for monitor mode on multiple channels Signed-off-by: Felix Fietkau <nbd@nbd.name>
57 lines
2.1 KiB
Diff
57 lines
2.1 KiB
Diff
From: Felix Fietkau <nbd@nbd.name>
|
|
Date: Mon, 30 Sep 2024 17:04:09 +0200
|
|
Subject: [PATCH] wifi: cfg80211: add monitor SKIP_TX flag
|
|
|
|
This can be used to indicate that the user is not interested in receiving
|
|
locally sent packets on the monitor interface.
|
|
|
|
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|
---
|
|
|
|
--- a/include/net/cfg80211.h
|
|
+++ b/include/net/cfg80211.h
|
|
@@ -2272,6 +2272,7 @@ static inline int cfg80211_get_station(s
|
|
* @MONITOR_FLAG_OTHER_BSS: disable BSSID filtering
|
|
* @MONITOR_FLAG_COOK_FRAMES: report frames after processing
|
|
* @MONITOR_FLAG_ACTIVE: active monitor, ACKs frames on its MAC address
|
|
+ * @MONITOR_FLAG_SKIP_TX: do not pass locally transmitted frames
|
|
*/
|
|
enum monitor_flags {
|
|
MONITOR_FLAG_CHANGED = BIT(__NL80211_MNTR_FLAG_INVALID),
|
|
@@ -2281,6 +2282,7 @@ enum monitor_flags {
|
|
MONITOR_FLAG_OTHER_BSS = BIT(NL80211_MNTR_FLAG_OTHER_BSS),
|
|
MONITOR_FLAG_COOK_FRAMES = BIT(NL80211_MNTR_FLAG_COOK_FRAMES),
|
|
MONITOR_FLAG_ACTIVE = BIT(NL80211_MNTR_FLAG_ACTIVE),
|
|
+ MONITOR_FLAG_SKIP_TX = BIT(NL80211_MNTR_FLAG_SKIP_TX),
|
|
};
|
|
|
|
/**
|
|
--- a/include/uapi/linux/nl80211.h
|
|
+++ b/include/uapi/linux/nl80211.h
|
|
@@ -4703,6 +4703,7 @@ enum nl80211_survey_info {
|
|
* overrides all other flags.
|
|
* @NL80211_MNTR_FLAG_ACTIVE: use the configured MAC address
|
|
* and ACK incoming unicast packets.
|
|
+ * @NL80211_MNTR_FLAG_SKIP_TX: do not pass local tx packets
|
|
*
|
|
* @__NL80211_MNTR_FLAG_AFTER_LAST: internal use
|
|
* @NL80211_MNTR_FLAG_MAX: highest possible monitor flag
|
|
@@ -4715,6 +4716,7 @@ enum nl80211_mntr_flags {
|
|
NL80211_MNTR_FLAG_OTHER_BSS,
|
|
NL80211_MNTR_FLAG_COOK_FRAMES,
|
|
NL80211_MNTR_FLAG_ACTIVE,
|
|
+ NL80211_MNTR_FLAG_SKIP_TX,
|
|
|
|
/* keep last */
|
|
__NL80211_MNTR_FLAG_AFTER_LAST,
|
|
--- a/net/wireless/nl80211.c
|
|
+++ b/net/wireless/nl80211.c
|
|
@@ -4201,6 +4201,7 @@ static const struct nla_policy mntr_flag
|
|
[NL80211_MNTR_FLAG_OTHER_BSS] = { .type = NLA_FLAG },
|
|
[NL80211_MNTR_FLAG_COOK_FRAMES] = { .type = NLA_FLAG },
|
|
[NL80211_MNTR_FLAG_ACTIVE] = { .type = NLA_FLAG },
|
|
+ [NL80211_MNTR_FLAG_SKIP_TX] = { .type = NLA_FLAG },
|
|
};
|
|
|
|
static int parse_monitor_flags(struct nlattr *nla, u32 *mntrflags)
|