On Thu, 2025-03-13 at 15:59 -0700, Aloka Dixit wrote: > On 3/12/2025 1:55 AM, Johannes Berg wrote: > > Hi Aloka, all, > > > > > + * @NL80211_MBSSID_CONFIG_ATTR_TX_LINK_ID: Link ID of the transmitted profile. > > > + * This parameter is mandatory if the transmitted profile is part of an MLD > > > + * and the interface getting configured is a non-transmitted profile. For all > > > + * other cases it will be ignored. > > > > So I guess it's a question of what "the interface getting configured" > > means, but I guess you could set up the transmitting interface? > > > Right, if the interface getting configured is the transmitted profile > the link_id is ignored. But I guess I don't understand yet why it's not needed? If you want to configure MBSSID stuff for the transmitting profile it seems you'd need the right link anyway? But if it's not needed, should we at least validate it's correct or so? > The 'else' case in the highlighted snippet above is the same scenario as > the 'else' case you referred to, which is one layer out: "else if > (!config->index) {". > > Both are executed when the interface getting configured is the > transmitting interface. The difference between these two 'else's is that > in one case userspace explicitly provides > "NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX" and in other it hasn't. Right. > Similarly, for MLO, mac80211 does not need the link_id of the tx > interface because it already has the link_conf for it as part of basic > AP configuration parameters, hence link_id is ignored in both 'else's. Oh so you're saying that you have an outer link_id already in nl80211_start_ap() (or other callers). So then I guess we're back to validating it, in line with how we say: if ((!config->index && tx_ifindex != dev->ifindex) || (config->index && tx_ifindex == dev->ifindex)) return -EINVAL; now? johannes