2022-09-14 03:51:32

by Wen Gong

[permalink] [raw]
Subject: unicast probe response bssid changed by "wifi: mac80211: do link->MLD address translation on RX"

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


2022-09-28 15:23:54

by Wen Gong

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

Hi Johannes,

May I get your comment about this?

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
>

2022-10-19 10:34:06

by Wen Gong

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

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.

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))
             ether_addr_copy(hdr->addr1, rx->sdata->vif.addr);

2022-10-19 10:42:52

by Wen Gong

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

On 10/19/2022 5:38 PM, Johannes Berg wrote:
> On Wed, 2022-10-19 at 17:35 +0800, Wen Gong wrote:
>> 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?
> Yes I've actually seen this issue as well.
>
>> I did below change in my local test to workaround the issue.
>>
>> 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 */
>>
> Maybe it should also be for beacons or so?
>
> johannes
Yes, it should also for beacons.

2022-10-19 11:24:56

by Johannes Berg

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

On Wed, 2022-10-19 at 17:35 +0800, Wen Gong wrote:
> 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?

Yes I've actually seen this issue as well.

> I did below change in my local test to workaround the issue.
>
> 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 */
>

Maybe it should also be for beacons or so?

johannes