Strange problem with 802.11k and 802.11v

I have an Android device that apparently will utilize Openwrt's 802.11k and 802.11v to do wifi roaming.

... sometimes, that is. I am facing a very strange issue. Here are the details:

  1. Some background - only with these 802.11k and 802.11v options listed in /etc/config/wireless will my Android phone roam between my AP's:
        option ieee80211k '1'
        option rrm_neighbor_report '1'
        option rrm_beacon_report '1'
        option ieee80211v '1'
        option time_advertisement '1'
        option time_zone 'HKT-8'
        option wnm_sleep_mode '1'
        option bss_transition '0'
  1. When my routers are rebooted with these options included, the Android phone would roam well THE FIRST TIME it is connected to the network.

  2. Then if I stop wifi on the phone and start it again later, it will stick to one of the APs (usually the one closest to the phone) and will no longer roam even if that means going out of coverage and disconnecting (i.e. exactly the behavior with no 802.11k / v enabled in network).

  3. But if I force a different IP address, e.g. by changing my phone to static IP and setting a different IP address, then this new address will roam the FIRST TIME it connects to the network. And just like point 3 above, this IP address is good for roaming only for one wifi session. It is like something in the 802.11k / v function isn't flushed clean after my phone disconnects from wifi and things get screwed up when the same device with the same IP reconnects. Unless I use another IP address to connect again, roaming will break (hope I am making myself clear).

  4. If I reboot the routers, all these IP address that have 'gone bad' will be good for use once again (but again for only a SINGLE connection per IP).

  5. This strange issue appears only on my Android phone. For my iPhone no such issue. Roaming works (but it works anyway even with no 802.11k / v configuration. All that's needed by the iPhone to do roaming is 802.11r it seems).

I tried setting log_level to 0 in /etc/config/wireless, but the log messages still didn't reveal anything suspicious. I am simply unable to find anything relevant to 802.11k/v in syslog.

Does this sound at all like a bug in 802.11k/v? I'd be happy to file bug reports if I can capture anything relevant to help the devs to troubleshoot. But there is zero appearance of any log message related to 802.11k/v although I am pretty sure these features are doing SOMETHING to make my Android phone roam.

I should also mention that I am using this script How does rrm work? - #2 by muddyfeet to populate my neighbor list for 802.11k. I have done the necessary modification to make the script compatible with my network environment. So based on my limited knowledge my 802.11k should be properly up and running on both routers.

Didn't do anything besides the uci parameters mentioned above to activate 802.11v. Not using Dawn or anything similar.

Closing this post. It seems to be an issue with my phone (Xiaomi Mi11). It just doesn't comply with 802.11v. When it roams it makes it own decisions. And it does roaming really poorly.

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