In my
CAPsMAN provisioning post
I showed the WiFi configuration with .ft=yes .ft-over-ds=yes but never
really explained what that is. 802.11r Fast Transition is supposed to speed
up roaming between access points by pre-authenticating with the target AP
before switching. Handoff time drops from ~150ms to ~50ms. Sounds great for
walking between floors where I have two wAP ax units, right?
Well, it did not work out that way.
The Problem #
My Motorola Edge started showing “connected, no internet” and falling back to mobile data. Disconnecting and reconnecting fixed it every time. Looking at the logs, I found this pattern:
11:36:20 wireless,info BC:1D:89:16:93:2C@cap-wifi2(Bezdrotova-siet) disconnected, connection lost, signal strength -60
11:36:23 wireless,info BC:1D:89:16:93:2C@cap-wifi2(Bezdrotova-siet) connected, signal strength -60
Disconnect and immediate reconnect to the same AP with decent signal. That is not normal roaming, that is something failing mid-handshake. An iOS phone on my guest network had it even worse - disconnecting every 5 minutes while staying on the same AP.
A quick search revealed this is a known issue. Some Android phones, particularly Motorola, have buggy 802.11r implementations. The FT handshake does not complete cleanly, Android’s connectivity check fails, and the phone decides WiFi has no internet.
The Fix #
Disabled 802.11r on both networks and bumped DHCP lease from 10 minutes to 1 hour while at it:
/interface wifi configuration set cfg1 security.ft=no security.ft-over-ds=no
/interface wifi configuration set cfg2 security.ft=no security.ft-over-ds=no
/ip dhcp-server set dhcp1 lease-time=1h
/ip dhcp-server set dhcp-guest lease-time=1h
Standard WPA2 reassociation takes slightly longer but works reliably. I kept 802.11k and 802.11v enabled since those help with AP discovery without the problematic authentication handshake.
Result #
Few days in, no more “no internet” issues on my Motorola. The logs now show clean roaming - disconnect from weak signal, connect to stronger AP:
07:56:09 wireless,info BC:1D:89:16:93:2C@cap-wifi2(Bezdrotova-siet) disconnected, not responding, signal strength -83
07:56:10 wireless,info BC:1D:89:16:93:2C@cap-wifi4(Bezdrotova-siet) connected, signal strength -31
Will update if things change. Enjoy!
Links #
- https://forum.openwrt.org/t/802-11r-roaming-disconnects-on-android/241835
- https://forum.openwrt.org/t/problems-with-wifi-roaming-fast-transitions-frame-protection-in-some-devices/115744
- https://github.com/openwrt/openwrt/issues/9767
- https://forum.mikrotik.com/t/finally-success-802-11r-k-v-fast-roaming-works-reliably-with-wifiwave2/169733
- https://forum.mikrotik.com/viewtopic.php?t=137533
- https://issuetracker.google.com/issues/36929997