On 9/8/2022 11:52 PM, Johannes Berg wrote:
On Thu, 2022-09-08 at 23:51 +0800, Wen Gong wrote:
Another thing is what is the local MLD addr and local primary link(send
authentication/assoc requset) addr relation?
I think they are same address for station, right?
No, they aren't, and shouldn't be.
IEEE P802.11be™/D2.0
35.3.3 Multi-link device addressing
An MLD has an MLD MAC address that singly identifies the MLD.
Each STA affiliated with an MLD shall have a different MAC address.
NOTE 1—The MLD MAC address of an MLD might be the same as the MAC
address of one affiliated STA or different
from the MAC address of any affiliated STA.
This means the MLD address can be same with one link.
I suggest to set primary link local addr same with MLD address for station.
reason is:
When station up, one link interface of driver will be created with the
addr of struct ieee80211_vif,
it is used for scan and non-MLO connection.
If station start to do MLO connection now, then random local link addr
will be generated by below call stack.
for the 1st link. This lead driver must change the link interface local
address to this random addr.
After disconnect MLO connection, driver also need to change the link
interface local address back to
addr of struct ieee80211_vif. It increased the complexity and driver
need to sync the link interface
if this is a scan running at this moment.
ieee80211_mgd_auth()
->ieee80211_prep_connection()
->ieee80211_vif_set_links()
->ieee80211_vif_update_links()
->ieee80211_link_setup()
->ieee80211_mgd_setup_link()
eth_random_addr(link->conf->addr);//sdata->u.mgd.assoc_data is null at
this point
And the others local link address is random generated by eth_random_addr
in ieee80211_mgd_assoc() , right?
Yes, at least for now all the link addresses are randomly generated.
johannes