From: Wen Gong <quic_wgong@quicinc.com>
To: Johannes Berg <johannes@sipsolutions.net>,
<linux-wireless@vger.kernel.org>
Cc: Johannes Berg <johannes.berg@intel.com>, <ath11k@lists.infradead.org>
Subject: Re: [PATCH 10/27] wifi: mac80211: isolate driver from inactive links
Date: Thu, 8 Sep 2022 23:23:56 +0800 [thread overview]
Message-ID: <5d82e564-86bf-c26b-077a-d0bc14e2d3c3@quicinc.com> (raw)
In-Reply-To: <20220902161143.5ce3dad3be7c.I92e9f7a6c120cd4a3631baf486ad8b6aafcd796f@changeid>
On 9/2/2022 10:12 PM, Johannes Berg wrote:
> From: Johannes Berg <johannes.berg@intel.com>
>
> In order to let the driver select active links and properly
> make multi-link connections, as a first step isolate the
> driver from inactive links, and set the active links to be
> only the association link for client-side interfaces. For
> AP side nothing changes since APs always have to have all
> their links active.
>
> To simplify things, update the for_each_sta_active_link()
> API to include the appropriate vif pointer.
>
> This also implies not allocating a chanctx for an inactive
> link, which requires a few more changes.
>
> Since we now no longer try to program multiple links to the
> driver, remove the check in the MLME code.
>
> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
> ---
> include/net/mac80211.h | 30 +++----
> net/mac80211/chan.c | 6 ++
> net/mac80211/driver-ops.c | 172 ++++++++++++++++++++++++++++++++++++++
> net/mac80211/driver-ops.h | 165 ++++++------------------------------
> net/mac80211/key.c | 8 ++
> net/mac80211/link.c | 66 ++++++++++++---
> net/mac80211/mlme.c | 25 ++----
> net/mac80211/util.c | 2 +-
> 8 files changed, 286 insertions(+), 188 deletions(-)
>
> diff --git a/include/net/mac80211.h b/include/net/mac80211.h
> index d4e1d73d88cc..20a2f25a38fa 100644
> --- a/include/net/mac80211.h
> +++ b/include/net/mac80211.h
> @@ -1799,6 +1799,9 @@ struct ieee80211_vif_cfg {
> * @link_conf: in case of MLD, the per-link BSS configuration,
> * indexed by link ID
> * @valid_links: bitmap of valid links, or 0 for non-MLO.
> + * @active_links: The bitmap of active links, or 0 for non-MLO.
> + * The driver shouldn't change this directly, but use the
> + * API calls meant for that purpose.
> * @addr: address of this interface
> * @p2p: indicates whether this AP or STA interface is a p2p
> * interface, i.e. a GO or p2p-sta respectively
> @@ -1834,7 +1837,7 @@ struct ieee80211_vif {
> struct ieee80211_vif_cfg cfg;
> struct ieee80211_bss_conf bss_conf;
> struct ieee80211_bss_conf __rcu *link_conf[IEEE80211_MLD_MAX_NUM_LINKS];
> - u16 valid_links;
> + u16 valid_links, active_links;
> u8 addr[ETH_ALEN] __aligned(2);
> bool p2p;
>
...
> @@ -123,11 +132,38 @@ static int ieee80211_check_dup_link_addrs(struct ieee80211_sub_if_data *sdata)
> return 0;
> }
>
> +static void ieee80211_set_vif_links_bitmaps(struct ieee80211_sub_if_data *sdata,
> + u16 links)
> +{
> + sdata->vif.valid_links = links;
> +
> + if (!links) {
> + sdata->vif.active_links = 0;
> + return;
> + }
> +
> + switch (sdata->vif.type) {
> + case NL80211_IFTYPE_AP:
> + /* in an AP all links are always active */
> + sdata->vif.active_links = links;
> + break;
> + case NL80211_IFTYPE_STATION:
> + if (sdata->vif.active_links)
> + break;
> + WARN_ON(hweight16(links) > 1);
> + sdata->vif.active_links = links;
> + break;
> + default:
> + WARN_ON(1);
> + }
> +}
> +
Now I found it only active the primay link(the link for
authentication/assoc request) in my station MLO test,
change_vif_links of struct ieee80211_ops *ops of driver will only be
called one time for the primary link.
it means only one link for MLO.
I plan to revert this patch in my local test now.
Will you implement muti-links later?
> ...
next prev parent reply other threads:[~2022-09-08 15:24 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 [this message]
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
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=5d82e564-86bf-c26b-077a-d0bc14e2d3c3@quicinc.com \
--to=quic_wgong@quicinc.com \
--cc=ath11k@lists.infradead.org \
--cc=johannes.berg@intel.com \
--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