Search Linux Wireless

Re: [PATCH 2/3] wifi: mac80211: add support to allow driver to set active link while connection for station

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 9/13/2023 4:58 PM, Johannes Berg wrote:
On Wed, 2023-09-06 at 06:34 -0400, Wen Gong wrote:
There are 2 fields valid_links and active_links in struct ieee80211_vif
of mac80211. For station mode, valid_links is always include the bitmap
of active_links. valid_links stores the bitmap of links which is created
in mac80211, and mac80211 only indicate the info of links which is existed
in active_links to driver. Finally, the active_links is the bitmap of
links which station can interactive with MLO AP it is connected to.

Currently the active links is always only contain the primary link,
primary link means the link used by the latest exchange of successful
(Re)Association Request/Response frames. Then it will always have only
one link in driver after connected.

Hence add this ops in struct ieee80211_ops to allow driver to determine
the active links bit map dynamically while connecting to MLO AP.
This commit log does nothing to address the question "why do we need
this", particularly since we already have
ieee80211_set_active_links(/_async), so the driver can pretty much
immediately enable all the links it wants.

I see no value in this patch whatsoever.
For ieee80211_set_active_links(), driver need save and install pairwise
keys for the other links as you said in link below. But driver do not
save the key data currently. So driver could not install the pairwise
keys by itself.
https://lore.kernel.org/linux-wireless/50719d34bc48d816d00b56d3d9efdb59e3e51a16.camel@xxxxxxxxxxxxxxxx/

And driver could ensure this rule in spec as I said before in link below:
"For MLO, if RSNA has not been established, each message of the 4-way
handshake shall be sent on the same link used by the latest exchange of
successful (Re)Association Request/Response frames."
https://lore.kernel.org/linux-wireless/b6314b61-0700-0e1c-7b39-21c305dc28b3@xxxxxxxxxxx/

It will be complext for driver/ath12k to use ieee80211_set_active_links(/_async).

@@ -166,6 +167,13 @@ static void ieee80211_set_vif_links_bitmaps(struct ieee80211_sub_if_data *sdata,
  		WARN_ON(dormant_links);
  		break;
  	case NL80211_IFTYPE_STATION:
+		active_links = drv_calculate_active_links(sdata->local, sdata,
+							  valid_links & ~dormant_links);
+		if (active_links) {
+			sdata->vif.active_links = active_links;
+			break;
+		}

I also _really_ don't think this should operate at this low-level
infrastructure.

I really want to know the reason why active *only* the assoc link for station, but

active *all* links for AP here😁?

johannes



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux