From 3caba52dba3b9756e97c3026b5b767a801d8e0cd Mon Sep 17 00:00:00 2001 From: Sundareswar Date: Mon, 19 May 2025 15:41:43 +0530 Subject: [PATCH] EAP105: Roaming failed, if MPSK (AAA server) is configured (#515) * While Roaming the AP couldn't find the wildcard R0KH and R1KH ids, which are required by Fast transistion. * Issue caused by the placement of conf parser in the invalid location. Fixes: WIFI-14544 Signed-off-by: Marek Kwaczynski --- .../hostapd/patches/zzz-roaming-key.patch | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/feeds/qca-wifi-7/hostapd/patches/zzz-roaming-key.patch b/feeds/qca-wifi-7/hostapd/patches/zzz-roaming-key.patch index 3e34b2361..2af7a8098 100644 --- a/feeds/qca-wifi-7/hostapd/patches/zzz-roaming-key.patch +++ b/feeds/qca-wifi-7/hostapd/patches/zzz-roaming-key.patch @@ -1,3 +1,4 @@ +unchanged: --- a/hostapd/config_file.c +++ b/hostapd/config_file.c @@ -3003,6 +3003,8 @@ static int hostapd_config_fill(struct ho @@ -9,12 +10,10 @@ #endif /* CONFIG_IEEE80211R_AP */ #ifndef CONFIG_NO_CTRL_IFACE } else if (os_strcmp(buf, "ctrl_interface") == 0) { -@@ -4958,8 +4960,22 @@ int hostapd_set_iface(struct hostapd_con - return -1; - } +@@ -4982,6 +4982,19 @@ struct hostapd_config * hostapd_config_r + fclose(f); -- for (i = 0; i < conf->num_bss; i++) -+ for (i = 0; i < conf->num_bss; i++) { + for (i = 0; i < conf->num_bss; i++) { + if (*conf->bss[i]->ft_key) { + u8 buffer[128]; + sprintf(buffer, "%02X:%02X:%02X:%02X:%02X:%02X %02X%02X%02X%02X%02X%02X %s", MAC2STR(conf->bss[i]->bssid), MAC2STR(conf->bss[i]->bssid), conf->bss[i]->ft_key); @@ -25,14 +24,12 @@ + add_r0kh(conf->bss[i], buffer); + sprintf(buffer, "00:00:00:00:00:00 00:00:00:00:00:00 %s", conf->bss[i]->ft_key); + add_r1kh(conf->bss[i], buffer); -+ hexstr2bin(conf->bss[i]->bssid, conf->bss[i]->r1_key_holder, FT_R1KH_ID_LEN); ++ hexstr2bin(conf->bss[i]->bssid, conf->bss[i]->r1_key_holder, FT_R1KH_ID_LEN); + conf->bss[i]->r0_key_holder_bssid = 1; + } - hostapd_set_security_params(conf->bss[i], 0); -+ } - - if (hostapd_config_check(conf, 0)) { - wpa_printf(MSG_ERROR, "Configuration check failed"); + hostapd_set_security_params(conf->bss[i], 1); + #ifdef CONFIG_IEEE80211BE + if (conf->ieee80211be && conf->bss[i]->ieee80211w > 0 --- a/src/ap/ap_config.h +++ b/src/ap/ap_config.h @@ -398,6 +398,7 @@ struct hostapd_bss_config {