On 9/13/2023 4:55 PM, Johannes Berg wrote:
On Wed, 2023-09-06 at 06:34 -0400, Wen Gong wrote:
[...]
Maybe after all this explanation, all we need is a flag "reuse MLD
address for assoc link"?
yes. It is similar as I said before here:
https://lore.kernel.org/linux-wireless/b9c6d022-12c3-a696-c4b9-cb14a6d30a45@xxxxxxxxxxx/
+ ret = drv_generate_link_addr(sdata->local, sdata,
+ link_id, link->conf->addr);
+ if (ret)
+ eth_random_addr(link->conf->addr);
should probably refactor this into a separate function though.
OK.
I'm also not sure how the driver even knows that a link it's being asked
to get the address for *is* the assoc link? Do you want to rely on that
being the first address handed out?
Current I used (vif->valid_links==0) check for assoc link. When
drv_generate_link_addr() called for the assoc link, vif->valid_links
is 0, and it is not 0 for other links.
johannes