Uninterrupted WiFi: Roaming (Fast Transition)


The marketing term "mesh WiFi" often refers to the desire for a WiFi that simply works everywhere in the house. But what actually is a mesh WiFi? And what is really needed for WiFi to work everywhere and even when switching from one receiving station to another? My setup consists of two access points, which as a unit provide a single WiFi SSID. As access points I use devices from different manufacturers and OpenWrt as firmware. The access points provide uninterrupted reception when I move from one floor to another and switch to a slower 2.4GHz connection when I leave the 5GHz reception range, so that the WiFi works best everywhere. I explain my settings in detail at the end of the article.

Mesh WiFi

The term mesh WiFi is not clearly defined, yet it refers to multiple WiFi devices that together provide a single WiFi. Classic mesh WiFi systems usually also communicate with each other via WiFi, which is not suitable for all circumstances. As an example, LAN cabling between different floors of a building could often ensure a faster and more stable connection between WiFi access points.

What do I really need for an uninterrupted WiFi?

What most people expect with the term mesh WiFi is actually the 802.11r Fast Basic Service Set (BSS) Transition feature: the basis for allowing clients to move from one WiFi access point to another as quickly as possible: without interruption. Depending on the hardware used, the access points can be connected to each other via a wide variety of connections, such as WiFi, PowerLine or LAN cabling. The decision as to which access point is used for the connection lies with the client. Even though current devices together with access points and 802.11r already have very good roaming functionality, their behavior can be further optimized when 802.11k and 802.11v (seamless roaming: access point and band steering) are used.

How does 802.11r work?

In the case of multiple access points with the same SSID and key, the end device decides when to switch to another access point with better reception. When an end device connects to a WiFi, it must first authenticate itself and get an IP address from the DHCP server, which takes a little time. Normally, when switching from one access point to another, the device would have to go through the entire login process again and stop data traffic until the connection is complete. The 802.11r standard simplifies the connection process by shortening the login process when switching from one access point to another. Time-consuming tasks are eliminated. Without the need to fetch a new IP address from the DHCP server, the process of switching from one access point to another can be reduced to the point where the connection change results in no noticeable interruption.

What is Seamless Roaming?

The term seamless roaming is often used to describe the seamless change from one radio cell to the next. In addition to the 802.11r standard, the 802.11k and 802.11v standards are usually used, which provide clients with information about neighboring WiFi access points so that they can make better decisions about the connection.

What is Access Point Steering?

Access Point Steering is a router function that monitors all WiFi access points and their connected end devices and actively informs the end devices if another access point can provide a significantly better connection. Technically, Access Point Steering is based on the 802.11r, 802.11k and 802.11v standards.

What is Band Steering?

Two different frequency bands are used for WiFi: 2.4GHz and 5GHz. The 5GHz band delivers higher data throughput than the older 2.4GHz band, but has a shorter range. Band steering is a router feature that helps devices use the most appropriate frequency band for the connection, providing the most throughput and the best connection quality.

My setup: seamless WiFi reception over 2 floors with 2 different access points.

The two floors of my house are separated by a concrete ceiling, which makes it impossible to place a single WiFi access point in such a way that it can provide sufficient WiFi reception everywhere. Since the router of my provider offers only limited possibilities, I deactivated the WiFi on it and use the device purely for the Internet connection. The WiFi on the first floor is supplied by an additional router. I have placed this router centrally on the first floor. To improve the WiFi reception on the second floor, I placed another access point in the front hall. The devices are connected via LAN cabling, similar to the following experimental setup:

Instead of the Switch, another AccessPoint can be used, see also: Cabling, Variant 2

As router I use an already outdated but still fast Linksys WRT3200ACM and as access point a relatively new and relatively cheap Netgear WAC104. On both devices I have installed the latest OpenWrt firmware23.05.3. If I need another access point in the future, for example to improve reception in the basement, I can use any hardware with OpenWrt support for that, see: OpenWrt hardware recommendation - available devices 2024.

In the article "LAN & WiFi in the home network: the ultimate guide" I simply enabled 802.11r in the OpenWrt options, which already allows an uninterrupted switch from one reception zone to another. Furthermore, enabling 802.11k and using a Client Steering Deamon can help the devices to always use the best connection if possible.

Prerequisite: OpenWrt-Wpad Full

To be able to use all WiFi features of OpenWrt, I replaced wpad-basic-wolfssl with the full version: wpad.


WiFi Setup:

The same SSID, encryption and key should be used on all access points for both 2.4GHz and 5GHz: 

In my setup, I use WPA2-PSK and AES as encryption. The encryption on "auto" caused problems with certain clients.

If not already done, 802.11r Fast Transition should be enabled in the WiFi settings of all interfaces with the same WiFi key:

The country code should also be set in the device settings:

Background: With the default setting Country Code: "driver default", I was unable to activate the WLAN interface on one of my access points.

The "disabled" status only changed after the country code was set on one of my APs.

As already described in the article LAN & WiFi in the home network: the ultimate guide, this setting is sufficient for the devices to connect without interruption when switching from one receiving zone to another. The responsibility for switching to another reception zone lies purely with the end device. For additional support on the part of the router, a so-called Client Steering Deamon can be set up.

Client Steering

For OpenWrt there are two different client steering deamon: usteer and dawn, both need the following settings in the WiFi settings.

Alternatively, these settings can also be made in the terminal, which requires a connection with Putty or another SSH client to all routers or access points, or to their IP address:

In the terminal, the WiFi settings can be edited with the following command:

vi /etc/config/wireless

For the operation of the terminal editor VI, see: VI Editor - Commands.

On all access points and for all WiFi SSIDs where 802.11r has been enabled, the following configuration lines in `/etc/config/wireless` are required:

      option bss_transition '1'
      option wnm_sleep_mode '1'
      option time_advertisement '2'
      option time_zone 'GMT0'
      option ieee80211k '1'
      option rrm_neighbor_report '1'
      option rrm_beacon_report '1'

The documentation of the Client Steering Deamon "dawn" is more detailed, but I still decided to use "usteer". To use "usteer" simply install the package of the same name "usteer":

Client Steering Daemon: usteer

"usteer" can be installed via terminal, or via GUI as a software package:

 opkg update && opkg install usteer luci-app-usteer

The usteer package is purely responsible for the functionality. luci-app-usteer provides an overview in the GUI of which clients are currently connected to which access point, or via the "hearing map": which client is visible on which access point. The client list also shows whether all access points are ready for WLAN reception:

Usteer can also be restricted to a specific WLAN in the settings:

See also: openwrt.org/docs/guide-user/network/wifi/usteer

As an alternative to "usteer", "dawn" can also be used for seamless roaming:

dawn (Decentralized Wifi Controller).

"dawn" also requires the previously mentioned settings in the file "/etc/config/wireless". Again, the installation is done by installing a software package:

 opkg update && opkg install dawn

The official documentation on OpenWrt warns about a problem with umdns: as a workaround, disabling the umdns seccomp profile is recommended:

root@OpenWrt2:~# /etc/init.d/umdns restart
Command failed: Request timed out
root@OpenWrt2:~#  mv /etc/seccomp/umdns.json /etc/seccomp/umdns.json.disable
root@OpenWrt2:~# /etc/init.d/umdns restart

Lastly, in the /etc/config/dawn-opkg file, adjust the network to 192.168.1.x:

root@OpenWrt2:~# vi /etc/config/dawn-opkg
root@OpenWrt2:~# /etc/init.d/dawn restart
Starting Service...
UMDNS with port 1026
Dawn instance started!
root@OpenWrt2:~#   opkg install luci-app-dawn
Installing luci-app-dawn (git-21.282.29102-4a78122) to root...
Downloading https://downloads.openwrt.org/releases/22.03.1/packages/mipsel_24kc/luci/luci-app-dawn_git-21.282.29102-4a78122_all.ipk
Installing luci-compat (git-22.069.45071-03bb0e2) to root...
Downloading https://downloads.openwrt.org/releases/22.03.1/packages/mipsel_24kc/luci/luci-compat_git-22.069.45071-03bb0e2_all.ipk
Installing luci-lib-json (git-18.184.37844-cde13dc) to root...
Downloading https://downloads.openwrt.org/releases/22.03.1/packages/mipsel_24kc/luci/luci-lib-json_git-18.184.37844-cde13dc_all.ipk
Configuring luci-compat.
Configuring luci-lib-json.
Configuring luci-app-dawn.
root@OpenWrt2:~#   /etc/init.d/network restart

dawn" also has an extension for the administration interface to display a summary of the network:

Details, See: openwrt.org/docs/guide-user/network/wifi/dawn


When using the WiFi standards 802.11r/k/v, several access points can act as a common unit and provide the best possible WiFi reception. In addition to specific devices from one manufacturer, the standards can also be used with an open source firmware such as OpenWrt and devices from different manufacturers can be used: OpenWrt hardware recommendation - available devices 2024.


positive Bewertung({{pro_count}})
Rate Post:
{{percentage}} % positive
negative Bewertung({{con_count}})

THANK YOU for your review!

Updated: 2024-03-27 von Bernhard | Übersetzung Deutsch |🔔 | Comments:0

Alternative router firmware: OpenWrt and no longer DD-WRT | Network | https web services as VPN alternative: access to the network
OpenWrt Upgrade: Keep packages and settings | the easy way | OpenWrt | OpenWRT - my setup

Top articles in this section

Ping with Port | cmd vs. PowerShell: Test-Netconnection

As is well known, the tool ping can be used to test the access to a certain network device and its response time. Not all devices will respond to a ping, but they may respond to a particular Tcp-Port if a particular network service is provided through it. Windows PowerShell allows you to test a specific port using Windows board tools. The psping tool can also measure the response time to a specific port.

show active network connections and processes | Windows

For a quick overview of which programs or services have an active network connection, they can be listed via simple commands or monitored and analyzed via specific tools. 

List all IP addresses in the network even if the firewall is enabled

A quick overview of all active devices in the network can be  listed - in addition to the router's management interface - by commands in the command prompt, in PowerShell or special IP scanners. The PowerShell commands presented at the beginning of this post give a quick overview of all devices on the local network and may make special programs for scanning the network unnecessary. If you would like to see the commands in action, you can do so in my YouTube video. For expanding your own network,...

Questions / Comments

By continuing to browse the site, you agree to our use of cookies. More Details