[PATCH] wpa_supplicant: multi_ap: only enable 4addr mode if not already enabled

Janusz Dziedzic janusz.dziedzic at gmail.com
Tue Feb 9 04:26:51 EST 2021


pon., 8 lut 2021 o 18:30 Raphaël Mélotte <raphael.melotte at mind.be> napisał(a):
>
> If 4addr mode is already enabled, the call to enable it a second time
> may fail. If this happens when roaming, it leads to deauthentication.
>
> Signed-off-by: Raphaël Mélotte <raphael.melotte at mind.be>
> ---
>  wpa_supplicant/events.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c
> index 199829bcf..7682dae76 100644
> --- a/wpa_supplicant/events.c
> +++ b/wpa_supplicant/events.c
> @@ -2627,11 +2627,13 @@ static void multi_ap_set_4addr_mode(struct wpa_supplicant *wpa_s)
>                 goto fail;
>         }
>
> -       if (wpa_drv_set_4addr_mode(wpa_s, 1) < 0) {
> -               wpa_printf(MSG_ERROR, "Failed to set 4addr mode");
> -               goto fail;
> +       if (wpa_s->enabled_4addr_mode == 0) {
> +               if (wpa_drv_set_4addr_mode(wpa_s, 1) < 0) {
> +                       wpa_printf(MSG_ERROR, "Failed to set 4addr mode");
> +                       goto fail;
> +               }
> +               wpa_s->enabled_4addr_mode = 1;
>         }
> -       wpa_s->enabled_4addr_mode = 1;
>         return;
>
Thanks for patch.

Today set_4addr_mode(1) fail with EBUSY if netdev is already in the bridge.
So, maybe we should fix it in cfg80211?

janusz at t2:~$ sudo ifconfig wlp1s0 up

janusz at t2:~$ sudo iw wlp1s0 set 4addr on
janusz at t2:~$ sudo iw wlp1s0 set 4addr on
janusz at t2:~$ sudo iw wlp1s0 set 4addr on

janusz at t2:~$ sudo brctl addbr br0
janusz at t2:~$ sudo brctl addif br0 wlp1s0
janusz at t2:~$ sudo iw wlp1s0 set 4addr on
command failed: Device or resource busy (-16)

janusz at t2:~$ sudo iw wlp1s0 info
Interface wlp1s0
ifindex 3
wdev 0x1
addr 68:94:23:28:a7:25
type managed
wiphy 0
txpower 16.00 dBm
multicast TXQ:
qsz-byt qsz-pkt flows drops marks overlmt hashcol tx-bytes tx-packets
0 0 0 0 0 0 0 0 0
4addr: on

BR
Janusz



More information about the Hostap mailing list