Hi Jouni, Could you please review our update and provide any suggestions. Regards, Vinayak On Thu, Jan 2, 2025 at 2:28 PM Vinayak Yadawad <vinayak.yadawad@xxxxxxxxxxxx> wrote: > > Hi Jouni, > > The scenario is of multiple APs containing both OWE-transition and OWE > only mode APs in same network. The OWE BSS of transition mode and OWE > only AP > is configured with same SSID and roam is attempted between them. > Initially the STA is connected to OWE-transition AP in OWE mode. > For e.g: open mode SSID is "SSID_open" and transition mode SSID is > "SSID1_owe". Now when a roam is triggered to an OWE-only AP with name > "SSID1_owe", the SSID comparison fails as ssid profile stores open BSS > SSID (SSID_open). The roam fails with error "No network configuration > found for the current AP". > So the current change would help to compare the previous connection > SSID instead of conf->SSID. > > Logs for roam failure from OWE-transition to OWE-only AP: > 689.959 2125 2125 D wpa_supplicant: wlan0: Associated to a new > BSS: BSSID=00:90:4c:4c:84:99 > 689.959 2125 2125 D wpa_supplicant: wlan0: Driver-initiated BSS > selection changed the SSID to G3_Tb_58_AP_ROAM_2G_6_19_owe > 689.959 2125 2125 D wpa_supplicant: wlan0: Select network based > on association information > 689.959 2125 2125 I wpa_supplicant: wlan0: No network > configuration found for the current AP > 689.959 2125 2125 D wpa_supplicant: wlan0: Request to > deauthenticate - bssid=00:90:4c:4c:84:99 > pending_bssid=00:00:00:00:00:00 reason=3 (DEAUTH_LEAVING) > state=ASSOCIATED valid_links=0x0 ap_mld_addr=00:00:00:00:00:00 > 689.959 2125 2125 D wpa_supplicant: TDLS: Tear down peers > 689.959 2125 2125 D wpa_supplicant: > wpa_driver_nl80211_disconnect(reason_code=3) > 690.388 2125 2125 I wpa_supplicant: nl80211: send_event_marker > failed: Source based routing not supported > 690.388 2125 2125 D wpa_supplicant: wlan0: Event DEAUTH (11) received > 690.388 2125 2125 D wpa_supplicant: wlan0: Deauthentication notification > 690.388 2125 2125 D wpa_supplicant: wlan0: * reason 3 > (DEAUTH_LEAVING) locally_generated=1 > 690.388 2125 2125 D wpa_supplicant: Deauthentication frame IE(s) > - hexdump(len=0): [NULL] > 690.388 2125 2125 I wpa_supplicant: wlan0: > CTRL-EVENT-DISCONNECTED bssid=00:90:4c:4c:84:99 reason=3 > locally_generated=1 > > Regards, > Vinayak > > > On Fri, Dec 27, 2024 at 12:34 AM Jouni Malinen <j@xxxxx> wrote: > > > > On Fri, Dec 13, 2024 at 02:15:27PM +0530, Vinayak Yadawad wrote: > > > Currently STA roam works fine in case of OWE only AP to > > > OWE-transition mode AP. The roam fails when STA is connected > > > in OWE mode with OWE transition AP to an OWE only AP. In the > > > OWE transition case, the current_ssid stores only open network > > > SSID, specific check is required to compare the OWE BSS ssid > > > from the previous target and new target. > > > > The change in owe_trans_ssid() is a clear fix to a recent regression, so > > I applied that separately. As far as the changes in > > wpa_supplicant_select_config() are concerned, I'm not completely sure I > > understood them since the comment about the added OWE transition mode AP > > to OWE-only AP comparison of the SSID does not seem to match what I > > would have expected from the actual memcmp(). The SSID of the previous > > BSS (i.e., the transition mode AP) is a random value that does not match > > the network profile whereas the SSID of the selected BSS (i.e., OWE-only > > AP) is the SSID of the network profile. Those are different and as such, > > the new memcmp() == 0 case would not be met.. > > > > Would you be able to share a debug log showing what fails without this > > patch? > > > > I did some cleanup while reviewing and trying to understand this and > > this is what I came up with while still not fully understanding what > > this trying to do: > > > > From: Vinayak Yadawad <vinayak.yadawad@xxxxxxxxxxxx> > > Date: Fri, 13 Dec 2024 14:15:27 +0530 > > Subject: [PATCH] OWE: Allow roam from OWE transition mode AP to OWE-only AP > > > > Currently STA roam works fine in case of OWE only AP to > > OWE-transition mode AP. The roam fails when STA is connected > > in OWE mode with OWE transition AP to an OWE only AP. In the > > OWE transition case, the current_ssid stores only open network > > SSID, specific check is required to compare the OWE BSS ssid > > from the previous target and new target. > > > > Signed-off-by: Vinayak Yadawad <vinayak.yadawad@xxxxxxxxxxxx> > > --- > > wpa_supplicant/events.c | 38 ++++++++++++++++++++++++++++++++------ > > 1 file changed, 32 insertions(+), 6 deletions(-) > > > > diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c > > index 279838afa2bf..e7285fcb5cea 100644 > > --- a/wpa_supplicant/events.c > > +++ b/wpa_supplicant/events.c > > @@ -226,6 +226,15 @@ static int wpa_supplicant_select_config(struct wpa_supplicant *wpa_s, > > int res; > > > > if (wpa_s->conf->ap_scan == 1 && wpa_s->current_ssid) { > > +#ifdef CONFIG_OWE > > + struct wpa_bss *prev_bss; > > + > > + /* Remember the current BSS entry before update to a new one to > > + * allow appropriate comparison in OWE transition mode cases > > + * below. */ > > + prev_bss = wpa_s->current_bss; > > +#endif /* CONFIG_OWE */ > > + > > wpa_supplicant_update_current_bss(wpa_s, wpa_s->bssid); > > > > if (wpa_s->current_ssid->ssid_len == 0) > > @@ -245,12 +254,29 @@ static int wpa_supplicant_select_config(struct wpa_supplicant *wpa_s, > > > > #ifdef CONFIG_OWE > > if ((wpa_s->current_ssid->key_mgmt & WPA_KEY_MGMT_OWE) && > > - wpa_s->current_bss && > > - (wpa_s->current_bss->flags & WPA_BSS_OWE_TRANSITION) && > > - drv_ssid_len == wpa_s->current_bss->ssid_len && > > - os_memcmp(drv_ssid, wpa_s->current_bss->ssid, > > - drv_ssid_len) == 0) > > - return 0; /* current profile still in use */ > > + wpa_s->current_bss) { > > + /* Handle the case where the selected BSS uses OWE > > + * transition mode */ > > + if ((wpa_s->current_bss->flags & > > + WPA_BSS_OWE_TRANSITION) && > > + drv_ssid_len == wpa_s->current_bss->ssid_len && > > + os_memcmp(drv_ssid, wpa_s->current_bss->ssid, > > + drv_ssid_len) == 0) > > + return 0; /* current profile still in use */ > > + > > + /* Handle the case where the selected BSS uses OWE-only > > + * mode and the previous one uses OWE transition mode. > > + * The connected SSID would be that of the OWE network > > + * where as current_ssid stores the open network SSID. > > + */ > > + if (prev_bss && > > + (prev_bss->flags & WPA_BSS_OWE_TRANSITION) && > > + (prev_bss->ssid_len == > > + wpa_s->current_bss->ssid_len) && > > + os_memcmp(prev_bss->ssid, wpa_s->current_bss->ssid, > > + wpa_s->current_bss->ssid_len) == 0) > > + return 0; /* current profile still in use */ > > + } > > #endif /* CONFIG_OWE */ > > > > wpa_msg(wpa_s, MSG_DEBUG, > > -- > > 2.43.0 > > > > -- > > Jouni Malinen PGP id EFC895FA
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature
_______________________________________________ Hostap mailing list Hostap@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/hostap