wpa_supplicant bouncing between AP nodes

Dennis Bland dennis at dbperformance.com
Fri Jul 10 14:27:23 PDT 2026


> Hi all,
>
> I have a customer issue where they are running Ubuntu 24.04 and at their office site finding that their system is bouncing between AP nodes in the office mesh.
>
> I have full logs if useful, but it looks to me like wpa_supplicant is being perhaps over aggressive in switching between nodes when looking for better throughput.
> e.g. in below switches from ba:ee to b7:ee to ba:ee to b7:ee in less than a minute.
>
> Jul 01 09:57:19 ccalifan-l-pw0la38t wpa_supplicant[3444710]: wlp9s0f0: Considering within-ESS reassociation
> Jul 01 09:57:19 ccalifan-l-pw0la38t wpa_supplicant[3444710]: wlp9s0f0: Current BSS: a4:00:4e:05:ba:ee freq=5680 level=-66 snr=26 est_throughput=324302
> Jul 01 09:57:19 ccalifan-l-pw0la38t wpa_supplicant[3444710]: wlp9s0f0: Selected BSS: a4:00:4e:05:b7:ee freq=5280 level=-65 snr=27 est_throughput=331502
> Jul 01 09:57:19 ccalifan-l-pw0la38t wpa_supplicant[3444710]: wlp9s0f0: Using signal poll values for the current BSS: level=-66 snr=26 est_throughput=324302
> Jul 01 09:57:19 ccalifan-l-pw0la38t wpa_supplicant[3444710]: wlp9s0f0: Allow reassociation - selected BSS has better estimated throughput
>
> Jul 01 09:57:53 ccalifan-l-pw0la38t wpa_supplicant[3444710]: wlp9s0f0: Considering within-ESS reassociation
> Jul 01 09:57:53 ccalifan-l-pw0la38t wpa_supplicant[3444710]: wlp9s0f0: Current BSS: a4:00:4e:05:b7:ee freq=5280 level=-66 snr=26 est_throughput=324302
> Jul 01 09:57:53 ccalifan-l-pw0la38t wpa_supplicant[3444710]: wlp9s0f0: Selected BSS: a4:00:4e:05:ba:ee freq=5680 level=-65 snr=27 est_throughput=331502
> Jul 01 09:57:53 ccalifan-l-pw0la38t wpa_supplicant[3444710]: wlp9s0f0: Using signal poll values for the current BSS: level=-66 snr=26 est_throughput=324302
> Jul 01 09:57:53 ccalifan-l-pw0la38t wpa_supplicant[3444710]: wlp9s0f0: Allow reassociation - selected BSS has better estimated throughput
>
> Jul 01 09:58:26 ccalifan-l-pw0la38t wpa_supplicant[3444710]: wlp9s0f0: Considering within-ESS reassociation
> Jul 01 09:58:26 ccalifan-l-pw0la38t wpa_supplicant[3444710]: wlp9s0f0: Current BSS: a4:00:4e:05:ba:ee freq=5680 level=-66 snr=26 est_throughput=324302
> Jul 01 09:58:26 ccalifan-l-pw0la38t wpa_supplicant[3444710]: wlp9s0f0: Selected BSS: a4:00:4e:05:b7:ee freq=5280 level=-62 snr=30 est_throughput=353102
> Jul 01 09:58:26 ccalifan-l-pw0la38t wpa_supplicant[3444710]: wlp9s0f0: Using signal poll values for the current BSS: level=-67 snr=25 est_throughput=306252
> Jul 01 09:58:26 ccalifan-l-pw0la38t wpa_supplicant[3444710]: wlp9s0f0: Allow reassociation - selected BSS has better estimated throughput
>
> Is this 'normal' and are there any recommendations on how to avoid this?
>
> Thanks
> Mark
>

When wpa_supplicant estimates the throughput of a channel, it takes
into account the channel width advertised by the AP in 802.11 beacon
frames.

However, if the Ubuntu 24.04 WLAN STA driver actually connects with a
smaller channel width, then a ping-pong affect can occur where the
actual throughput becomes lower, and then the original channel looks
like a better candidate.  According to your wpa_supplicant logs, the
calculated throughput went down after switching to the new channel,
and the previous channel then had a higher estimated throughput.  The
lower channel width chosen by the STA can be due to spectrum
interference, or regulatory channel width limitations in the STA
driver (5280 MHz and 5680 MHz are DFS channels in Canada).

Ubuntu 24.04 does not have a way to specify channel width in the GUI.
The WLAN driver automatically selects the highest possible channel
width supported by both the STA and AP.  I'm assuming you've already
updated Ubuntu to the latest patch release and firmware files. If
possible, try reducing the AP channel width to see if the problem
still occurs.  Another option, if possible, is to change the APs to
non-DFS channels, or other DFS channels that may have less RF
interference due to overlap.

Best regards

Dennis



More information about the Hostap mailing list