diff mbox series

[1/2] ath9k: Set RX filter based to allow broadcast Action frame RX

Message ID 20200426084733.7889-1-jouni@codeaurora.org (mailing list archive)
State Accepted
Commit c01c320d24ac42802ee5e6db5342477d64a23e8f
Delegated to: Kalle Valo
Headers show
Series [1/2] ath9k: Set RX filter based to allow broadcast Action frame RX | expand

Commit Message

Jouni Malinen April 26, 2020, 8:47 a.m. UTC
Advertise support for multicast frame registration and update the RX
filter based on the recently added FIF_MCAST_ACTION to allow broadcast
Action frames to be received. This is needed for Device Provisioning
Protocol (DPP) use cases that use broadcast Public Action frames.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
---
 drivers/net/wireless/ath/ath9k/init.c | 2 ++
 drivers/net/wireless/ath/ath9k/main.c | 1 +
 drivers/net/wireless/ath/ath9k/recv.c | 3 ++-
 3 files changed, 5 insertions(+), 1 deletion(-)

This depends on "mac80211: Process multicast RX registration for Action
frames" from mac80211-next.

Comments

Kalle Valo May 8, 2020, 8:39 a.m. UTC | #1
Jouni Malinen <jouni@codeaurora.org> wrote:

> Advertise support for multicast frame registration and update the RX
> filter based on the recently added FIF_MCAST_ACTION to allow broadcast
> Action frames to be received. This is needed for Device Provisioning
> Protocol (DPP) use cases that use broadcast Public Action frames.
> 
> Signed-off-by: Jouni Malinen <jouni@codeaurora.org>

Depends on:

873b1cf61105 mac80211: Process multicast RX registration for Action frames

Currently in mac80211-next.
Kalle Valo May 30, 2020, 2:18 p.m. UTC | #2
Jouni Malinen <jouni@codeaurora.org> wrote:

> Advertise support for multicast frame registration and update the RX
> filter based on the recently added FIF_MCAST_ACTION to allow broadcast
> Action frames to be received. This is needed for Device Provisioning
> Protocol (DPP) use cases that use broadcast Public Action frames.
> 
> Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>

2 patches applied to ath-next branch of ath.git, thanks.

c01c320d24ac ath9k: Set RX filter based to allow broadcast Action frame RX
2a9311b5d39a ath9k_htc: Set RX filter based to allow broadcast Action frame RX
diff mbox series

Patch

diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c
index 17c318902cb8..289a2444d534 100644
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -1012,6 +1012,8 @@  static void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
 
 	wiphy_ext_feature_set(hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);
 	wiphy_ext_feature_set(hw->wiphy, NL80211_EXT_FEATURE_AIRTIME_FAIRNESS);
+	wiphy_ext_feature_set(hw->wiphy,
+			      NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS);
 }
 
 int ath9k_init_device(u16 devid, struct ath_softc *sc,
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index 457e9b0d21ca..a47f6e978095 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -1476,6 +1476,7 @@  static int ath9k_config(struct ieee80211_hw *hw, u32 changed)
 	FIF_OTHER_BSS |				\
 	FIF_BCN_PRBRESP_PROMISC |		\
 	FIF_PROBE_REQ |				\
+	FIF_MCAST_ACTION |			\
 	FIF_FCSFAIL)
 
 /* FIXME: sc->sc_full_reset ? */
diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c
index 06e660858766..0c0624a3b40d 100644
--- a/drivers/net/wireless/ath/ath9k/recv.c
+++ b/drivers/net/wireless/ath/ath9k/recv.c
@@ -413,7 +413,8 @@  u32 ath_calcrxfilter(struct ath_softc *sc)
 	if (sc->cur_chandef.width != NL80211_CHAN_WIDTH_20_NOHT)
 		rfilt |= ATH9K_RX_FILTER_COMP_BAR;
 
-	if (sc->cur_chan->nvifs > 1 || (sc->cur_chan->rxfilter & FIF_OTHER_BSS)) {
+	if (sc->cur_chan->nvifs > 1 ||
+	    (sc->cur_chan->rxfilter & (FIF_OTHER_BSS | FIF_MCAST_ACTION))) {
 		/* This is needed for older chips */
 		if (sc->sc_ah->hw_version.macVersion <= AR_SREV_VERSION_9160)
 			rfilt |= ATH9K_RX_FILTER_PROM;