Message ID | 9fe7c0f2-e02f-e87f-dced-90e973c8992f@quicinc.com (mailing list archive) |
---|---|
State | Not Applicable |
Delegated to: | Johannes Berg |
Headers | show |
Series | wifi: mac80211: Re: unicast probe response bssid changed by "wifi: mac80211: do link->MLD address translation on RX" | expand |
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
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.
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))