[PATCH 1/1] hostapd: Allow roam from OWE transition to OWE only AP

Vinayak Yadawad vinayak.yadawad at broadcom.com
Tue Apr 15 21:31:26 PDT 2025


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 at broadcom.com> 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 at w1.fi> 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 at broadcom.com>
> > 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 at broadcom.com>
> > ---
> >  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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4205 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.infradead.org/pipermail/hostap/attachments/20250416/e244c42a/attachment.p7s>


More information about the Hostap mailing list