diff --git a/src/ap/beacon.c b/src/ap/beacon.c index 0bab464c2..e5e81e78c 100644 --- a/src/ap/beacon.c +++ b/src/ap/beacon.c @@ -1421,6 +1421,11 @@ int ieee802_11_set_beacon(struct hostapd_data *hapd) hapd->iface->conf->spr.srg_obss_pd_min_offset; params.he_spr_srg_obss_pd_max_offset = hapd->iface->conf->spr.srg_obss_pd_max_offset; + params.he_bss_color_disabled = + hapd->iface->conf->he_op.he_bss_color_disabled; + params.he_bss_color_partial = + hapd->iface->conf->he_op.he_bss_color_partial; + params.he_bss_color = hapd->iface->conf->he_op.he_bss_color; params.twt_responder = hostapd_get_he_twt_responder(hapd, IEEE80211_MODE_AP); #endif /* CONFIG_IEEE80211AX */ diff --git a/src/drivers/driver.h b/src/drivers/driver.h index 148e4999d..e0cf8d122 100644 --- a/src/drivers/driver.h +++ b/src/drivers/driver.h @@ -1481,6 +1481,21 @@ struct wpa_driver_ap_params { */ int he_spr_srg_obss_pd_max_offset; + /** + * he_bss_color - Whether the BSS Color is disabled + */ + int he_bss_color_disabled; + + /** + * he_bss_color_partial - The BSS Color AID equation + */ + int he_bss_color_partial; + + /** + * he_bss_color - The BSS Color of the AP + */ + int he_bss_color; + /** * twt_responder - Whether Target Wait Time responder is enabled */ diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index d55d8e8f5..1421aff45 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -4362,6 +4362,21 @@ static int wpa_driver_nl80211_set_ap(void *priv, nla_nest_end(msg, spr); } + if (params->freq && params->freq->he_enabled) { + struct nlattr *bss_color; + + bss_color = nla_nest_start(msg, NL80211_ATTR_HE_BSS_COLOR); + if (!bss_color || + (params->he_bss_color_disabled && + nla_put_flag(msg, NL80211_HE_BSS_COLOR_ATTR_DISABLED)) || + (params->he_bss_color_partial && + nla_put_flag(msg, NL80211_HE_BSS_COLOR_ATTR_PARTIAL)) || + nla_put_u8(msg, NL80211_HE_BSS_COLOR_ATTR_COLOR, + params->he_bss_color)) + goto fail; + nla_nest_end(msg, bss_color); + } + if (params->twt_responder) { wpa_printf(MSG_DEBUG, "nl80211: twt_responder=%d", params->twt_responder);