@@ -5225,6 +5225,8 @@ static int hostapd_config_fill(struct hostapd_config *conf,
return 1;
} else if (os_strcmp(buf, "mld_indicate_disabled") == 0) {
bss->mld_indicate_disabled = atoi(pos);
+ } else if (os_strcmp(buf, "no_ml_probe_sta_profiles") == 0) {
+ bss->no_ml_probe_sta_profiles = atoi(pos);
} else if (os_strcmp(buf, "disable_mcs15_rx") == 0) {
conf->disable_mcs15_rx = atoi(pos);
#endif /* CONFIG_TESTING_OPTIONS */
@@ -725,6 +725,7 @@ struct hostapd_bss_config {
#ifdef CONFIG_IEEE80211BE
u16 eht_oper_puncturing_override;
+ bool no_ml_probe_sta_profiles;
#endif /* CONFIG_IEEE80211BE */
#endif /* CONFIG_TESTING_OPTIONS */
@@ -1155,6 +1155,14 @@ static void hostapd_fill_probe_resp_ml_params(struct hostapd_data *hapd,
params->mld_ap = hapd;
}
+#ifdef CONFIG_TESTING_OPTIONS
+ if (hapd->conf->no_ml_probe_sta_profiles) {
+ wpa_printf(MSG_DEBUG,
+ "TESTING: Do not add the requested per-STA profiles to the ML probe response");
+ return;
+ }
+#endif /* CONFIG_TESTING_OPTIONS */
+
for_each_mld_link(link, hapd) {
struct mld_link_info *link_info;
u8 mld_link_id = link->mld_link_id;
An AP MLD is expected to answer a multi-link probe request with the per-STA profiles of the requested APs. Not all AP MLDs do so, and a non-AP MLD then has to discover the information for those links some other way. hostapd always includes the requested profiles, so that case cannot be covered by the hwsim test cases. Add a testing option that leaves the requested per-STA profiles out of the multi-link probe response. The Basic Multi-Link element with the common information of the responding AP is still included, which is what was observed from an AP MLD that does not honor the Per-STA Profile subelements of a Probe Request Multi-Link element. Signed-off-by: Louis Kotze <loukot@gmail.com> --- hostapd/config_file.c | 2 ++ src/ap/ap_config.h | 1 + src/ap/beacon.c | 8 ++++++++ 3 files changed, 11 insertions(+)