Re: [PATCH] nl80211: correct netlink attributes of set_supp_port() for MLD

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Nov 22, 2024 at 04:21:43PM +0800, Zong-Zhe Yang wrote:
> When MLD, wpa_driver_nl80211_set_supp_port() gets
> `nl80211: Failed to set STA flag: -22 (Invalid argument)`
> due to imprecise netlink attributes.

Would you be able to share a debug log showing that? I was unable to
reproduce that in my testing.

> For MLD, NL80211_ATTR_MLO_LINK_ID is required. Otherwise,
> sta_link_apply_parameters() cannot get the target link.

That sounds wrong since Authorization status is at MLD level and mixing
this with link ID would seem to imply this is being done at a different
level, but it is possible that there are some inconvenient constraints
in how NL80211_CMD_SET_STATION might need to be used.

> Additionally, for MLD, NL80211_ATTR_MAC describes "link" address.
> And, NL80211_ATTR_MLD_ADDR describes MLD address.

Adding NL80211_ATTR_MLD_ADDR would seem reasonable, but that need for
link specific information needs to be documented more clearly since this
function is for an MLD level operation and specifying a link ID here is
quite confusing.

> diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
> @@ -7730,6 +7732,16 @@ static int wpa_driver_nl80211_set_supp_port(void *priv, int authorized)

> +	if (!mld)
> +		goto send;
> +
> +	if (nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, mld->assoc_link_id) ||
> +	    nla_put(msg, NL80211_ATTR_MLD_ADDR, ETH_ALEN, mld->ap_mld_addr)) {
> +		nlmsg_free(msg);
> +		return -ENOBUFS;
> +	}
> +
> +send:
>  	ret = send_and_recv_cmd(drv, msg);

That would look nicer if the unnecessary goto were removed:

	if (mld &&
	    (nla_put_u8(...) ||
	     nla_put(...)) {
		...
	}

-- 
Jouni Malinen                                            PGP id EFC895FA

_______________________________________________
Hostap mailing list
Hostap@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/hostap



[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux