Re: [PATCH 2/2] HE: propagate BSS color settings to nl80211

Jouni Malinen <[email protected]>
Newsgroups gmane.linux.drivers.hostap
Message-ID <[email protected]>
On Tue, Feb 04, 2020 at 09:04:55AM +0100, John Crispin wrote:
> This patch adds the code required to send the BSS color settings to the kernel.
> 
> It depends on the latest nl80211.h from the linux-wireless tree.

And on a new libnl version as well which is problematic..

> diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
> @@ -4108,6 +4108,9 @@ static int wpa_driver_nl80211_set_ap(void *priv,
> +	bss_color = nla_nest_start(msg, NL80211_ATTR_HE_BSS_COLOR);

This breaks all AP functionality with commonly used libnl versions if
the kernel includes a check for NLA_F_NESTED. And this happens even if
no IEEE 802.11ax is used.

nl80211: kernel reports: NLA_F_NESTED is missing
nl80211: Beacon set failed: -22 (Invalid argument)

This would need the following libnl commit:
https://github.com/thom311/libnl/commit/7de65a051fb37ece16f896a7385073274b77a133

But that is not included in commonly used libnl releases (it was added
in 3.5.0)..

At minimum, this addition of NL80211_ATTR_HE_BSS_COLOR would need to
depend on HE being enabled in the configuration, but even that does not
sound nice. Maybe doing an ugly hack like this would be justifiable
here:

bss_color = nla_nest_start(msg, NL80211_ATTR_HE_BSS_COLOR | NLA_F_NESTED);

This could be conditional based on the used libnl version. Maybe
something with NL_CAPABILITY_VERSION_3_5_0 (which is defined in
netlink/utils.h) or nl_has_capability() at runtime.
 
-- 
Jouni Malinen                                            PGP id EFC895FA
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.