All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wen Gong <quic_wgong@quicinc.com>
To: Johannes Berg <johannes@sipsolutions.net>,
	linux-wireless <linux-wireless@vger.kernel.org>
Cc: <ath11k@lists.infradead.org>
Subject: Re: wifi: mac80211: mlo rx nss value 0 of wifi
Date: Mon, 17 Oct 2022 16:00:52 +0800	[thread overview]
Message-ID: <c52e6634-4a90-f165-9f41-8f23df9414a4@quicinc.com> (raw)
In-Reply-To: <2a2c466fbdcc2c3cc7af81bcd4d370d0119ea865.camel@sipsolutions.net>

On 10/17/2022 3:49 PM, Johannes Berg wrote:
> On Mon, 2022-10-17 at 09:48 +0200, Johannes Berg wrote:
>> Hi,
>>
>>>> Currently for MLO test, the others links's rx_nss of struct
>>>> ieee80211_link_sta is still value 0 in ieee80211_set_associated(),
>>>> becaue they are not pass into ieee80211_sta_set_rx_nss() in
>>>> mac80211 except the deflink which means the primary link in
>>>> rate_control_rate_init(). This lead driver get nss = 0 for
>>>> other links. Will you fix it or is it design by default?
>>>>
>>>> Only primary link has valid rx_nss value which is not 0 by below call
>>>> stack.
>>>> ieee80211_assoc_success()
>>>>      ->rate_control_rate_init(sta);
>>>>          ->ieee80211_sta_set_rx_nss(&sta->deflink);
>> Right, none of the rate scaling related stuff was updated yet.
>>
> Though for this case maybe we can just move ieee80211_sta_set_rx_nss()
> to some better place outside of rate_control_rate_init() and have it
> done with the right link, and also on changes?
>
> johannes

I did below change in my internal test, and not found the NSS=0 issue 
again for 2 link MLO.

wifi: mac80211: update all links rx nss by ieee80211_sta_set_rx_nss() in 
ieee80211_assoc_success()


diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index a21e0f34423b..f03568512f05 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -4972,6 +4972,13 @@ static bool ieee80211_assoc_success(struct 
ieee80211_sub_if_data *sdata,
         }

         rate_control_rate_init(sta);
+       for (link_id = 0; link_id < IEEE80211_MLD_MAX_NUM_LINKS; 
link_id++) {
+               if (!(sta->sta.valid_links & BIT(link_id)) ||
+                   sta->deflink.link_id == link_id)
+                       continue;
+
+               ieee80211_sta_set_rx_nss(sta->link[link_id]);
+       }

         if (ifmgd->flags & IEEE80211_STA_MFP_ENABLED) {
                 set_sta_flag(sta, WLAN_STA_MFP);


WARNING: multiple messages have this Message-ID (diff)
From: Wen Gong <quic_wgong@quicinc.com>
To: Johannes Berg <johannes@sipsolutions.net>,
	linux-wireless <linux-wireless@vger.kernel.org>
Cc: <ath11k@lists.infradead.org>
Subject: Re: wifi: mac80211: mlo rx nss value 0 of wifi
Date: Mon, 17 Oct 2022 16:00:52 +0800	[thread overview]
Message-ID: <c52e6634-4a90-f165-9f41-8f23df9414a4@quicinc.com> (raw)
In-Reply-To: <2a2c466fbdcc2c3cc7af81bcd4d370d0119ea865.camel@sipsolutions.net>

On 10/17/2022 3:49 PM, Johannes Berg wrote:
> On Mon, 2022-10-17 at 09:48 +0200, Johannes Berg wrote:
>> Hi,
>>
>>>> Currently for MLO test, the others links's rx_nss of struct
>>>> ieee80211_link_sta is still value 0 in ieee80211_set_associated(),
>>>> becaue they are not pass into ieee80211_sta_set_rx_nss() in
>>>> mac80211 except the deflink which means the primary link in
>>>> rate_control_rate_init(). This lead driver get nss = 0 for
>>>> other links. Will you fix it or is it design by default?
>>>>
>>>> Only primary link has valid rx_nss value which is not 0 by below call
>>>> stack.
>>>> ieee80211_assoc_success()
>>>>      ->rate_control_rate_init(sta);
>>>>          ->ieee80211_sta_set_rx_nss(&sta->deflink);
>> Right, none of the rate scaling related stuff was updated yet.
>>
> Though for this case maybe we can just move ieee80211_sta_set_rx_nss()
> to some better place outside of rate_control_rate_init() and have it
> done with the right link, and also on changes?
>
> johannes

I did below change in my internal test, and not found the NSS=0 issue 
again for 2 link MLO.

wifi: mac80211: update all links rx nss by ieee80211_sta_set_rx_nss() in 
ieee80211_assoc_success()


diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index a21e0f34423b..f03568512f05 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -4972,6 +4972,13 @@ static bool ieee80211_assoc_success(struct 
ieee80211_sub_if_data *sdata,
         }

         rate_control_rate_init(sta);
+       for (link_id = 0; link_id < IEEE80211_MLD_MAX_NUM_LINKS; 
link_id++) {
+               if (!(sta->sta.valid_links & BIT(link_id)) ||
+                   sta->deflink.link_id == link_id)
+                       continue;
+
+               ieee80211_sta_set_rx_nss(sta->link[link_id]);
+       }

         if (ifmgd->flags & IEEE80211_STA_MFP_ENABLED) {
                 set_sta_flag(sta, WLAN_STA_MFP);


-- 
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k

  reply	other threads:[~2022-10-17  8:01 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-13  4:37 mlo rx nss value 0 of wifi Wen Gong
2022-09-13  4:37 ` Wen Gong
2022-09-28 15:15 ` Wen Gong
2022-09-28 15:15   ` Wen Gong
2022-10-17  7:10 ` wifi: mac80211: " Wen Gong
2022-10-17  7:10   ` Wen Gong
2022-10-17  7:48   ` Johannes Berg
2022-10-17  7:48     ` Johannes Berg
2022-10-17  7:49     ` Johannes Berg
2022-10-17  7:49       ` Johannes Berg
2022-10-17  8:00       ` Wen Gong [this message]
2022-10-17  8:00         ` Wen Gong
2022-10-17  8:02         ` Johannes Berg
2022-10-17  8:02           ` Johannes Berg
2022-10-17  8:12           ` Wen Gong
2022-10-17  8:12             ` Wen Gong
2022-10-17  8:14             ` Johannes Berg
2022-10-17  8:14               ` Johannes Berg
2022-10-18  8:45               ` Wen Gong
2022-10-18  8:45                 ` Wen Gong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c52e6634-4a90-f165-9f41-8f23df9414a4@quicinc.com \
    --to=quic_wgong@quicinc.com \
    --cc=ath11k@lists.infradead.org \
    --cc=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.