Linux wireless drivers development
 help / color / mirror / Atom feed
From: Wen Gong <quic_wgong@quicinc.com>
To: Johannes Berg <johannes@sipsolutions.net>,
	<linux-wireless@vger.kernel.org>
Cc: <ath11k@lists.infradead.org>, <ath12k@lists.infradead.org>
Subject: Re: [PATCH 24/27] wifi: mac80211: implement link switching
Date: Mon, 27 Mar 2023 16:40:55 +0800	[thread overview]
Message-ID: <31b91fad-bd14-b6e1-8abe-fceb66085ecb@quicinc.com> (raw)
In-Reply-To: <50719d34bc48d816d00b56d3d9efdb59e3e51a16.camel@sipsolutions.net>

On 3/27/2023 4:31 PM, Johannes Berg wrote:
> Hi,
>
>>> +	list_for_each_entry(sta, &local->sta_list, list) {
>>> +		if (sdata != sta->sdata)
>>> +			continue;
>>> +		ret = drv_change_sta_links(local, sdata, &sta->sta,
>>> +					   old_active,
>>> +					   old_active | active_links);
>>> +		WARN_ON_ONCE(ret);
>>> +	}
>>> +
>>> +	ret = ieee80211_key_switch_links(sdata, rem, add);
>> I see ieee80211_key_switch_link() only handler the per-link(link_id >=
>> 0) keys,
>>
>> So I think lower driver also install the pairwise keys(link_id = -1) for
>> the added links at this moment?
> Well from mac80211 POV they're already installed, so we can't really
> install them again. We'd have to remove them but that's racy, obviously.
> So I think the low-level driver just has to handle that, e.g. when the
> station links are updated (and the key belongs to the station.)
Got it, thanks.
>
>>> +	WARN_ON_ONCE(ret);
>>> +
>>> +	list_for_each_entry(sta, &local->sta_list, list) {
>>> +		if (sdata != sta->sdata)
>>> +			continue;
>>> +		ret = drv_change_sta_links(local, sdata, &sta->sta,
>>> +					   old_active | active_links,
>>> +					   active_links);
>>> +		WARN_ON_ONCE(ret);
>>> +	}
>>> +
>> I see 2 times to call drv_change_sta_link() above, and with sequence
>> old_active->old_active | active_links->active_links
>>
>> May I know is it has some design here?
> The problem is that we can't really have no links active even as an
> intermediate step, so you can't just deactivate old and then activate
> new.
Got it, thanks.
>
>>> +	for_each_set_bit(link_id, &add, IEEE80211_MLD_MAX_NUM_LINKS) {
>>> +		struct ieee80211_link_data *link;
>>> +
>>> +		link = sdata_dereference(sdata->link[link_id], sdata);
>>> +
>>> +		ret = ieee80211_link_use_channel(link, &link->conf->chandef,
>>> +						 IEEE80211_CHANCTX_SHARED);
>> For the 1st link of MLO connection/NON-MLO connetion, ieee80211_link_use_channel() is called before drv_change_sta_link(),
>> And now it is after drv_change_sta_link(), May I know is it also has some design here?
> Hmm, probably not really, at least I don't remember anything about that.
>
> Not sure it makes a huge difference? But I suppose we could change it, I
> don't really see why not either.
Not huge difference, I have made little change in lower-driver to match 
that. So it is OK now.
>> Also I see commit(8fb7e2ef4bab mac80211_hwsim: always activate all links) and ieee80211_if_parse_active_links()
>> will use ieee80211_set_active_links(), so I think ieee80211_set_active_links() has passed test case with some type lower driver/chip?
> Yes, we have this working on iwlwifi/mvm.

Got it, thanks.

I also have tested ieee80211_set_active_links() to enable the 2nd link 
for station success in my lower-driver after a little change in 
lower-driver.

>
> johannes

  reply	other threads:[~2023-03-27  8:45 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-02 14:12 [PATCH 00/27] another set of MLO patches Johannes Berg
2022-09-02 14:12 ` [PATCH 01/27] wifi: mac80211_hwsim: remove multicast workaround Johannes Berg
2022-09-02 14:12 ` [PATCH 02/27] wifi: mac80211: remove unused arg to ieee80211_chandef_eht_oper Johannes Berg
2022-09-02 14:12 ` [PATCH 03/27] wifi: mac80211_hwsim: check STA magic in change_sta_links Johannes Berg
2022-09-02 14:12 ` [PATCH 04/27] wifi: mac80211_hwsim: refactor RX a bit Johannes Berg
2022-09-02 14:12 ` [PATCH 05/27] wifi: mac80211: move link code to a new file Johannes Berg
2022-09-02 14:12 ` [PATCH 06/27] wifi: mac80211: mlme: assign link address correctly Johannes Berg
2022-09-02 14:12 ` [PATCH 07/27] wifi: mac80211_hwsim: warn on invalid link address Johannes Berg
2022-09-02 14:12 ` [PATCH 08/27] wifi: mac80211: use correct rx link_sta instead of default Johannes Berg
2022-09-02 14:12 ` [PATCH 09/27] wifi: mac80211: make smps_mode per-link Johannes Berg
2022-09-02 14:12 ` [PATCH 10/27] wifi: mac80211: isolate driver from inactive links Johannes Berg
2022-09-08 15:23   ` Wen Gong
2022-09-08 15:36     ` Johannes Berg
2022-09-08 15:51       ` Wen Gong
2022-09-08 15:52         ` Johannes Berg
2022-09-09  4:16           ` Wen Gong
2022-09-09  7:28             ` Johannes Berg
2022-09-09  8:38               ` Wen Gong
2022-09-09  8:58               ` Wen Gong
2022-09-28 15:20                 ` Wen Gong
2022-09-28 15:28                   ` Johannes Berg
2022-10-11  4:07                     ` Wen Gong
2022-10-11  7:26                       ` Johannes Berg
2023-04-04  2:54                         ` Wen Gong
2023-04-11  7:32                           ` Johannes Berg
2023-04-17 14:07                             ` Wen Gong
2023-04-18  8:15                               ` Johannes Berg
2023-04-18  8:59                                 ` Wen Gong
2023-04-18  9:11                                   ` Johannes Berg
2023-04-18  9:22                                     ` Wen Gong
2023-04-18  9:31                                       ` Johannes Berg
2023-04-18  9:37                                         ` Wen Gong
2023-04-18  9:38                                           ` Johannes Berg
2023-04-18  9:44                                             ` Wen Gong
2023-04-18 10:18                                               ` Johannes Berg
     [not found]                                                 ` <5bd1776e-0691-d0a8-d198-e5b4ee676494@quicinc.com>
2023-04-18 10:47                                                   ` Johannes Berg
2023-04-04  3:28       ` Wen Gong
2023-04-11  7:38         ` Johannes Berg
2023-04-17 14:13           ` Wen Gong
2023-04-18  8:18             ` Johannes Berg
2023-04-18  9:27               ` Wen Gong
2023-04-18  9:34                 ` Johannes Berg
2023-04-18  9:52                   ` Wen Gong
2023-05-24  7:39                   ` Wen Gong
2023-05-24  7:41                   ` Wen Gong
2023-06-14 18:32                     ` Johannes Berg
2023-06-15  2:26                       ` Wen Gong
2023-06-15  7:56                         ` Johannes Berg
2023-06-21  7:55                           ` Wen Gong
2023-06-27 11:02                             ` Wen Gong
2023-06-30  9:32                           ` Wen Gong
2023-05-10 11:06           ` Wen Gong
2023-05-10 11:24             ` Johannes Berg
2023-05-10 12:25               ` Wen Gong
2023-05-10 12:25                 ` Johannes Berg
2022-09-02 14:12 ` [PATCH 11/27] wifi: mac80211: add ieee80211_find_sta_by_link_addrs API Johannes Berg
2022-09-02 14:12 ` [PATCH 12/27] wifi: mac80211_hwsim: skip inactive links on TX Johannes Berg
2022-09-02 14:12 ` [PATCH 13/27] wifi: mac80211_hwsim: track active STA links Johannes Berg
2022-09-02 14:12 ` [PATCH 14/27] wifi: mac80211: mlme: refactor QoS settings code Johannes Berg
2022-09-02 14:12 ` [PATCH 15/27] wifi: mac80211: extend ieee80211_nullfunc_get() for MLO Johannes Berg
2022-09-02 14:12 ` [PATCH 16/27] wifi: mac80211_hwsim: send NDP for link (de)activation Johannes Berg
2022-09-02 14:12 ` [PATCH 17/27] wifi: mac80211_hwsim: fix multi-channel handling in netlink RX Johannes Berg
2022-09-02 14:12 ` [PATCH 18/27] wifi: nl80211: add MLD address to assoc BSS entries Johannes Berg
2022-09-02 14:12 ` [PATCH 19/27] wifi: mac80211: call drv_sta_state() under sdata_lock() in reconfig Johannes Berg
2022-09-02 14:12 ` [PATCH 20/27] wifi: mac80211: add vif/sta link RCU dereference macros Johannes Berg
2022-09-02 14:12 ` [PATCH 21/27] wifi: mac80211: set up beacon timing config on links Johannes Berg
2022-09-02 14:12 ` [PATCH 22/27] wifi: mac80211: keep A-MSDU data in sta and per-link Johannes Berg
2022-09-02 14:12 ` [PATCH 23/27] wifi: mac80211: fix double SW scan stop Johannes Berg
2022-09-02 14:12 ` [PATCH 24/27] wifi: mac80211: implement link switching Johannes Berg
2023-03-25 14:33   ` Wen Gong
2023-03-27  8:31     ` Johannes Berg
2023-03-27  8:40       ` Wen Gong [this message]
2023-03-27  9:04         ` Johannes Berg
2023-03-27  9:10           ` Wen Gong
2023-03-28  7:37       ` Wen Gong
2023-03-28  7:39         ` Johannes Berg
2023-04-03 14:15           ` Wen Gong
2023-04-11 10:16             ` Johannes Berg
2023-04-03 14:21       ` Wen Gong
2023-04-11 10:18         ` Johannes Berg
2022-09-02 14:12 ` [PATCH 25/27] wifi: mac80211_hwsim: always activate all links Johannes Berg
2022-09-02 14:12 ` [PATCH 26/27] wifi: mac80211: prevent 4-addr use on MLDs Johannes Berg
2022-09-02 14:12 ` [PATCH 27/27] wifi: mac80211: prevent VLANs " Johannes Berg
2022-09-06  7:18 ` [PATCH 00/27] another set of MLO patches Wen Gong
2022-09-06  7:28   ` Johannes Berg
2022-09-06  7:58     ` Wen Gong
2022-09-06  8:03       ` Johannes Berg
2022-09-06  8:42         ` Wen Gong
2022-09-12 13:17           ` Otcheretianski, Andrei
2022-09-13  4:26             ` Wen Gong
2022-09-28 15:12             ` Wen Gong
2022-10-11  2:28               ` Wen Gong
2022-10-19 10:04                 ` wifi: hostapd:/wpa_supplicant MLO " Wen Gong
2022-10-19 13:31                   ` Otcheretianski, Andrei
2022-11-28  8:45                   ` Wen Gong
2022-11-28 14:05                     ` Otcheretianski, Andrei
2022-11-29  2:06                       ` Wen Gong
2022-11-29  6:59                         ` Otcheretianski, Andrei
2022-11-29  7:04                           ` Wen Gong
2022-09-07  3:34         ` 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=31b91fad-bd14-b6e1-8abe-fceb66085ecb@quicinc.com \
    --to=quic_wgong@quicinc.com \
    --cc=ath11k@lists.infradead.org \
    --cc=ath12k@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox