Band steering / switching between bands not working

Hello everybody!
I have two access points with the same wireless configuration on both 2.4G and 5G bands. Only the wifi channels are different on the second. The roaming works very nice and i get no connection aborts while i walking throuh the house. But i noticed that my devices are not switching to the 5G band when its connected to the 2.4G band even if i stand direct next to the router. Then if i turn on wifi off/on on my device it uses the 5G band. The switch from the 5G band to the 2.4G band works, but not revese.

Here is my /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option hwmode '11a'
        option path 'pci0000:00/0000:00:00.0'
        option htmode 'VHT80'
        option country 'US'
        option txpower '23'
        option bursting '1'
        option ff '1'
        option compression '1'
        option turbo '1'
        option noscan '1'
        option channel '36'
        option ar '1'
        option xr '1'

config wifi-device 'radio1'
        option type 'mac80211'
        option hwmode '11g'
        option path 'platform/ahb/18100000.wmac'
        option country 'US'
        option txpower '99'
        option bursting '1'
        option ff '1'
        option compression '1'
        option turbo '1'
        option noscan '1'
        option htmode 'HT40'
        option channel '3'
        option ar '1'
        option xr '1'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option key 'Secret!'
        option ssid 'MY_SSID'
        option encryption 'psk2+ccmp'
        option ieee80211r '1'
        option ft_over_ds '1'
        option ft_psk_generate_local '1'
        option mobility_domain 'AFFE'
        option pmk_r1_push '1'
        option ieee80211v '1'
        option bss_transition '1'
        option ieee80211k '1'
        option tdls_prohibit '1'
        option tdls_prohibit_chan_switch '1'

config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option key 'Secret!'
        option ssid 'MY_SSID'
        option encryption 'psk2+ccmp'
        option ieee80211r '1'
        option ft_over_ds '1'
        option ft_psk_generate_local '1'
        option mobility_domain 'AFFE'
        option pmk_r1_push '1'
        option ieee80211v '1'
        option bss_transition '1'
        option ieee80211k '1'
        option tdls_prohibit '1'
        option tdls_prohibit_chan_switch '1'

Does anybody has an idea what i can do further?
Thanks

Choice of which ap to connect to is entirely up to the device. The main thing you can do is reduce the signal strength on 2.4GHz so that it doesn't seem like such a great choice.

I don't know what txpower 99 even means but try setting this to something small, like 15

Also this is not a good idea, usually 2.4GHz should be on 1, 6, or 11 and should always be on 20MHz channels IMHO, unless you live on a 10 acre farm a few miles from the nearest neighbor

Several of these options are very specific to certain hardware and might not be relevant. Several of these settings are no longer on the wiki and might be doing nothing for you depending on your hardware. Regarding roaming - Roaming is determined by the client, every client behaves differently.

Two questions - What type of router are you using? Why not use a separate 5ghz and 2.4ghz SSID - that will fix the majority of your roaming issues (keep fast devices on 5ghz, leave slow 2.4ghz to the IoT devices)?

As an example here are my settings for a R7800 (I get 500mbps+ on 5ghz speed tests and my devices roam well on a shared 5ghz only SSID between two APs)


root@OpenWrt:~# cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option hwmode '11a'
        option path 'soc/1b500000.pci/pci0000:00/0000:00:00.0/0000:01:00.0'
        option htmode 'VHT80'
        option txpower '20'
        option country 'US'
        option legacy_rates '0'
        option beacon_int '101'
        option channel '161'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid ''
        option encryption 'psk2+ccmp'
        option key ''
        option ieee80211r '1'
        option ft_over_ds '1'
        option ft_psk_generate_local '1'
        option wpa_disable_eapol_key_retries '1'
        option ieee80211v '1'
        option ieee80211k '1'
        option bss_transition '1'
        option wnm_sleep_mode '1'
        option time_advertisement '2'
        option time_zone 'CST6CDT,M3.2.0,M11.1.0'

config wifi-device 'radio1'
        option type 'mac80211'
        option channel '11'
        option hwmode '11g'
        option path 'soc/1b700000.pci/pci0001:00/0001:00:00.0/0001:01:00.0'
        option htmode 'HT20'
        option txpower '20'
        option country 'US'
        option legacy_rates '0'
        option beacon_int '191'

config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option ssid ''
        option encryption 'psk2+ccmp'
        option key ''

1 Like

Channel 3 and 11 are the non overlapping channels for 40MHz 2.4G Wifi
Wifi Channels Wikipedia

Can you explain why you set the beacon interval this way for each radios?

Also is "wnm_sleep_mode" making the 5Ghz sleeps? Thanks :laughing:

Prime beacon interval theory is that my beacons will be at different intervals from my multiple neighbors.

It is just a theory, I’ve never noticed any issues with the default 100ms setting. Maybe time to let this historic setting go (from dd-wrt days) and just rock the default.

1 Like

This is much less related to your neighbors than it is to your connected clients.