Commit f92e0cf1 authored by Felix Fietkau's avatar Felix Fietkau Committed by Johannes Berg
Browse files

wifi: mac80211: filter on monitor interfaces based on configured channel



When a monitor interface has an assigned channel (only happens with the
NO_VIRTUAL_MONITOR feature), only pass packets received on that channel.
This is useful for monitoring on multiple channels at the same time using
multiple monitor interfaces.

Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
Link: https://patch.msgid.link/1bbe55107ba0f2e62ea90f305faeb7ba9247ef29.1728462320.git-series.nbd@nbd.name


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 342afe69
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -837,6 +837,13 @@ ieee80211_rx_monitor(struct ieee80211_local *local, struct sk_buff *origskb,
	ieee80211_handle_mu_mimo_mon(monitor_sdata, origskb, rtap_space);

	list_for_each_entry_rcu(sdata, &local->mon_list, u.mntr.list) {
		struct cfg80211_chan_def *chandef;

		chandef = &sdata->vif.bss_conf.chanreq.oper;
		if (chandef->chan &&
		    chandef->chan->center_freq != status->freq)
			continue;

		if (!prev_sdata) {
			prev_sdata = sdata;
			continue;