Hi, While playing around with OWE transition mode I noticed the hidden OWE network has no OWE transition mode element. The two network configs are attached. According to the OWE Spec v1.1, section 2.2.1: "The OWE BSS shall include the OWE Transition Mode element in all Beacon and Probe Response frames to encapsulate the BSSID and SSID of the Open BSS." I figured it was a misconfiguration but then I found the following code in src/ap/ieee802_11_shared.c: static int hostapd_eid_owe_trans_enabled(struct hostapd_data *hapd) { return hapd->conf->owe_transition_ssid_len > 0 && !is_zero_ether_addr(hapd->conf->owe_transition_bssid); } This is called prior to appending the OWE transition element so for the hidden SSID (where ssid_len < 0) it returns false and the IE is never built/appended. Removing the SSID length check seems to fix this and I see the OWE transition element for the hidden OWE network. Attached is the patch to remove this length check. Thanks, James
ssid=owe-hidden bssid=a6:44:ce:d8:61:6f channel=1 ignore_broadcast_ssid=1 ieee80211w=1 wpa=2 wpa_key_mgmt=OWE rsn_pairwise=CCMP owe_transition_ssid="transition" owe_transition_bssid=fe:e1:de:ce:a5:ed
channel=1 ssid=transition bssid=fe:e1:de:ce:a5:ed owe_transition_ssid="owe-hidden" owe_transition_bssid=a6:44:ce:d8:61:6f
From 49bc686b2d05acef909449e61f1492e346a7dff4 Mon Sep 17 00:00:00 2001 From: James Prestwood <prestwoj@xxxxxxxxx> Date: Thu, 9 Sep 2021 16:05:24 -0700 Subject: [PATCH] owe: remove ssid length check for OWE transition element This removes the SSID length check when appending the OWE transition element. With this check in place the transition element is never appended to the hidden OWE network. Signed-off-by: James Prestwood <prestwoj@xxxxxxxxx> --- src/ap/ieee802_11_shared.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/ap/ieee802_11_shared.c b/src/ap/ieee802_11_shared.c index 4bff9e591..fc3b2e01e 100644 --- a/src/ap/ieee802_11_shared.c +++ b/src/ap/ieee802_11_shared.c @@ -812,8 +812,7 @@ u8 hostapd_mbo_ie_len(struct hostapd_data *hapd) #ifdef CONFIG_OWE static int hostapd_eid_owe_trans_enabled(struct hostapd_data *hapd) { - return hapd->conf->owe_transition_ssid_len > 0 && - !is_zero_ether_addr(hapd->conf->owe_transition_bssid); + return !is_zero_ether_addr(hapd->conf->owe_transition_bssid); } #endif /* CONFIG_OWE */ -- 2.31.1
_______________________________________________ Hostap mailing list Hostap@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/hostap