Uninterrupted WiFi: Roaming (Fast Transition)

Diese Seite gibt es auch in Deutsch

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. routerI 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 firmware: 22.03.2. 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 2022.

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:

On all access points, the same SSID, and the same key should be used for both 2.4GHz and 5GHz:

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

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. Unfortunately these can not be done in the GUI, which requires a connection with Putty or another SSH client to all routers or access points, or 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

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

After setup it is worth to have a look at the system log:

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 management interface to show 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 2022.


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

THANK YOU for your review!

Publication: 2022-11-01 from Bernhard ūüĒĒ

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.

OpenWRT hardware recommendation - available devices 2022
OpenWRT provides a uniform and up-to-date software for different network devices like routers or access points and delivers countless additional setting options, software packages and functions. This makes it possible to combine new and old devices from different manufacturers and, among other things, to use low-cost hardware in a common WiFi, see: Setting up a home network: Extending LAN and WLAN | Improving.

List all IP addresses in the network even if the firewall is enabled
If you want to get a quick overview of all active devices in a network, you can do this with network discovery, commands in the command prompt, in PowerShell or with 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, see als...

Questions / Comments

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