802.11r wifi roaming doesn't seem to work for some android devices

Just enabled 802.11r on my network. Two OpenWrt routers, one running 17.01.6 and serving as my Gateway (old router and already on the latest supported OpenWrt), and the 'wifi repeater' running 19.07.3 (this one seemingly has better coverage so I am using it as a repeater). I'll call the Gateway AP #1 and the Repeater AP #2.

Tested 802.11r with an old iPhone 6s and my current phone which is a Xiaomi Mi 9.

iPhone - doesn't need much testing. Played a video while connected to AP #1, while playing I moved to an area out of coverage for AP #1. Movie continued to play. And AP #2 showed it is now connected to the phone. Repeated several times, same result. No problem. Test passed with flying colors.

Mi 9 - repeated the above test. Video playing stopped, network got disconnected for a couple of seconds before AP #2 picks it up. Problem can be reproduced with the same test 99% of the time (the only time it seemed to have worked was probably just fluke).

Searched on the web, seems Android is notorious for 802.11r compatibility, and only a handful of Samsung phones claim to support 802.11r. So... not much I can do to fix this problem, right? My Mi 9 is rooted btw so if any commands can be sent to trigger the recognition of 802.11r I would probably be able to do it. But I use the WifiAnalyzer app on this phone and it already shows the expected "+FT" for the two APs.

Or will the addition of 802.11k and 802.11v help at all? I believe however my old router doesn't have this capability as it is running an old version of OpenWrt, thus an old hostapd.

Any help appreciated !

For 17.01.x it is not done with merely enabling 802.11r, you'd have to do the full configuration dance (you really want 19.07.x or newer, there it's simply option ieee80211r '1' and everything is done and dusted), likewise 802.11k and 802.11v support need a newer version (I think not even 19.07.x has the complete feature set available).

802.11k and 802.11v can help the client to make a good decision, but it's still down to the client's decision - if it doesn't do 802.11r at all, adding k/v won't really work either. If you want to play with these features, you really want a recent master snapshot (or the future 20.xy.0 release).

Thanks for your response.

Just for the record, all I did for the two router (and yes like I said one of them is on 17.01.x) all I did was option ieee80211r '1' and option mobility_domain '<just a random 4-digit ID>'. But at least my mothballed iphone is utilizing the fast roaming feature for sure. So it seems to work for my setup.

That said, I'd really like my Android phone to be able to roam to a different AP as well as this one is my current phone. So any info would be greatly appreciated.

(In fact, I started my 802.11r config with the whole shebang in my first try. I think that was setup correctly, but the test results were the same, i.e. iphone working, Android phone connection severed)

Get rid of the 17.0.x device or update it (if it was dropped due to space constraints you might be able to build a mini version yourself dropping some unneeded packages). It's deprecated and full of known security holes. You're literally putting your entire network at risk .

Older OpenWRT versions were always finicky with respect to 802.11r and its configuration, so also for that issue I recommend running two up-to-date devices.

Thanks, I would if I could.. maybe it is time to buy a new router. This router I have only supports up to 17.0.6. There is no 18 or 19 Openwrt firmware for it. (Edit: now that I've read your comment once again I realize you are telling me to build a 19.0.x firmware using only the modules I absolutely need to save space... I doubt it is even possible, as I already had to compile even the current 17.0.6 myself and it still just barely fits after dropping IPv6 entirely and a few other things just to accommodate the full fleged wpad. Don't think it is worth the effort to even try building a 19 Openwrt for my router with very limited memory)

But as far as 802.11r goes I think it works. I just got a hold of a Samsung A8+, and this phone works well too with my 802.11r setup. I guess this sort of validates what I've read somewhere that says Apple and Samsung phones support 802.11r but a lot of other phones don't...

I am ready to give up. If my phone simply doesn't support wifi roaming it is probably not worth it to buy a new router and upgrade OpenWrt. To minimize security risk I may just swap the two router so the one with the latest OpenWrt becomes the gateway.

Solution finally found. Sharing it here just to close this whole thread and others can benefit.

I was using this method for my repeater - Relayd for Openwrt

While the basic repeater was working fine (not really to be honest, it would break down after running for a prolonged period - like 2 weeks or so), I ended up trying WDS instead to link my two routers - https://openwrt.org/docs/guide-user/network/wifi/atheroswds

Just finished setting up WDS, seems stable so far, and of course I added the necessary 802.11r lines into /etc/config/wireless within my new configuration. And I noticed quickly my Xiaomi Mi 9 now does wifi roaming without issues !!

Problem solved.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.