On Fri, 2023-09-15 at 16:11 +0800, Wen Gong wrote: > 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. That seems a bit questionable? Well then again, what do you want for AP mode? Anyway you can still distinguish, and if we later need to change an internal API that's not the end of the world either ... So OK, I guess we can live with this, just would like to see it wrapped up into a single function. johannes