On 4/18/2023 5:31 PM, Johannes Berg wrote:
On Tue, 2023-04-18 at 17:22 +0800, Wen Gong wrote:
It should work, I will test it later.
For the 1st assoc link, the data->u.mgd.assoc_data is empty in
ieee80211_mgd_setup_link(),
Yeah for the first link it should work.
because ieee80211_mgd_setup_link() is called from nl80211_authenticate()
for the 1st assoc link.
So ieee80211_mgd_setup_link() use eth_random_addr() for the 1st assoc link.
Right.
For the 2nd link, ieee80211_mgd_setup_link() is called from
nl80211_associate()
I don't think so, it should only be called from
ieee80211_assoc_success()?
Yes, I checked again, you are right. It is not from nl80211_associate().
the sdata->u.mgd.assoc_data is NOT empty,
and the sdata->u.mgd.assoc_data->link[link_id].addr is valid,
it is addr by eth_random_addr(assoc_data->link[i].addr) in
ieee80211_mgd_assoc().
Exactly, so we've already decided on the address long before we actually
add the link data structure, so your callback would be much too late.
We'd need to have it called from ieee80211_mgd_assoc() already?
For the 2nd link, is it OK for me to use the random addr which is set in
ieee80211_mgd_assoc().
I only need to set the 1st assoc link in low driver.
johannes