diff mbox series

wifi: mac80211: Re: unicast probe response bssid changed by "wifi: mac80211: do link->MLD address translation on RX"

Message ID 9fe7c0f2-e02f-e87f-dced-90e973c8992f@quicinc.com
State New
Headers show
Series wifi: mac80211: Re: unicast probe response bssid changed by "wifi: mac80211: do link->MLD address translation on RX" | expand

Commit Message

Wen Gong Oct. 19, 2022, 9:35 a.m. UTC
On 9/14/2022 11:13 AM, Wen Gong wrote:
> Hi Johannes,
>
> The mac addr of unicast rx packet all changed to the MLD address by 
> below patch.
> Now the probe presponse which is unicast packet is also changed mac 
> address here.
> I found bssid which is the MLD address of my test AP in 
> cfg80211_get_bss().
> For example, if the AP has 2 mlo links, link 1 is 5 GHz band, link 2 
> is 2.4 GHz band,
> then the 2 probe reponse will be changed to a same one.
> seems we should skip probe presponse for the mac address change here, 
> right?
>
> https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?id=42fb9148c078004d07b4c39bd7b1086b6165780c 
>
> wifi: mac80211: do link->MLD address translation on RX
>
Hi Johannes,

May I get your comment about this?

I did below change in my local test to workaround the issue.

              ether_addr_copy(hdr->addr1, rx->sdata->vif.addr);
diff mbox series

Patch

diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index a57811372027..eaff5353520a 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -4858,7 +4858,8 @@  static bool ieee80211_prepare_and_rx_handle(struct 
ieee80211_rx_data *rx,
          shwt->hwtstamp = skb_hwtstamps(skb)->hwtstamp;
      }

-    if (unlikely(link_sta)) {
+    if (unlikely(link_sta) &&
+        !(ieee80211_is_probe_resp(hdr->frame_control))) {
          /* translate to MLD addresses */
          if (ether_addr_equal(link->conf->addr, hdr->addr1))