}
+#ifdef CONFIG_OWE
+static int wpa_bss_owe_trans_known(struct wpa_supplicant *wpa_s,
+ struct wpa_bss *bss,
+ const u8 *entry_ssid, size_t entry_ssid_len)
+{
+ const u8 *owe, *owe_bssid, *owe_ssid;
+ size_t owe_ssid_len;
+
+ owe = wpa_bss_get_vendor_ie(bss, OWE_IE_VENDOR_TYPE);
+ if (!owe)
+ return 0;
+
+ if (wpas_get_owe_trans_network(owe, &owe_bssid, &owe_ssid,
+ &owe_ssid_len))
+ return 0;
+
+ return entry_ssid_len == owe_ssid_len &&
+ os_memcmp(owe_ssid, entry_ssid, owe_ssid_len) == 0;
+}
+#endif /* CONFIG_OWE */
+
+
static int wpa_bss_known(struct wpa_supplicant *wpa_s, struct wpa_bss *bss)
{
struct wpa_ssid *ssid;
if (ssid->ssid_len == bss->ssid_len &&
os_memcmp(ssid->ssid, bss->ssid, ssid->ssid_len) == 0)
return 1;
+#ifdef CONFIG_OWE
+ if (wpa_bss_owe_trans_known(wpa_s, bss, ssid->ssid,
+ ssid->ssid_len))
+ return 1;
+#endif /* CONFIG_OWE */
}
return 0;