2020-04-26 08:50:14

by Jouni Malinen

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

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 <[email protected]>
---
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.

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;
--
2.20.1


2020-05-08 08:43:13

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH 1/2] ath9k: Set RX filter based to allow broadcast Action frame RX

Jouni Malinen <[email protected]> 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 <[email protected]>

Depends on:

873b1cf61105 mac80211: Process multicast RX registration for Action frames

Currently in mac80211-next.

--
https://patchwork.kernel.org/patch/11510285/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2020-05-30 14:19:17

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH 1/2] ath9k: Set RX filter based to allow broadcast Action frame RX

Jouni Malinen <[email protected]> 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 <[email protected]>
> Signed-off-by: Kalle Valo <[email protected]>

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

--
https://patchwork.kernel.org/patch/11510285/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches