How to enable 802.11v 802.11k

Dear all,

How do I enable 802.11v and k?
I cannot seem to find anything for 802.11k in hostapd documentation. I guess it is currently not possible?
For 802.11v hostapd mentions what i quoted below. Is it as easy as executing:
uci set wireless.bss_transistion=1

Thank you,

Ramon

##### IEEE 802.11v-2011 #######################################################

# Time advertisement
# 0 = disabled (default)
# 2 = UTC time at which the TSF timer is 0
#time_advertisement=2

# Local time zone as specified in 8.3 of IEEE Std 1003.1-2004:
# stdoffset[dst[offset][,start[/time],end[/time]]]
#time_zone=EST5

# WNM-Sleep Mode (extended sleep mode for stations)
# 0 = disabled (default)
# 1 = enabled (allow stations to use WNM-Sleep Mode)
#wnm_sleep_mode=1

# WNM-Sleep Mode GTK/IGTK workaround
# Normally, WNM-Sleep Mode exit with management frame protection negotiated
# would result in the current GTK/IGTK getting added into the WNM-Sleep Mode
# Response frame. Some station implementations may have a vulnerability that
# results in GTK/IGTK reinstallation based on this frame being replayed. This
# configuration parameter can be used to disable that behavior and use EAPOL-Key
# frames for GTK/IGTK update instead. This would likely be only used with
# wpa_disable_eapol_key_retries=1 that enables a workaround for similar issues
# with EAPOL-Key. This is related to station side vulnerabilities CVE-2017-13087
# and CVE-2017-13088. To enable this AP-side workaround, set the parameter to 1.
#wnm_sleep_mode_no_keys=0

# BSS Transition Management
# 0 = disabled (default)
# 1 = enabled
#bss_transition=1

# Proxy ARP
# 0 = disabled (default)
# 1 = enabled
#proxy_arp=1

# IPv6 Neighbor Advertisement multicast-to-unicast conversion
# This can be used with Proxy ARP to allow multicast NAs to be forwarded to
# associated STAs using link layer unicast delivery.
# 0 = disabled (default)
# 1 = enabled
#na_mcast_to_ucast=0
1 Like

I have these enabled on mine

uci set wireless.default_radio0.ieee80211r='1'
uci set wireless.default_radio0.ieee80211k='1'
uci set wireless.default_radio0.ieee80211v='1'
uci set wireless.default_radio0.wnm_sleep_mode='1'
uci set wireless.default_radio0.bss_transition='1'
uci set wireless.default_radio0.time_advertisement='2'
uci set wireless.default_radio0.time_zone='[time_zone_string]'

802.11k is RRM, look for that instead in the documentation. It's understood by /lib/netifd/hostapd.sh, if it's enabled, you'll see 2 rrm lines in /var/run/hostapd-phy0.conf

5 Likes

Thanks! I switched on k and v now. As timezone I used CET-1CEST,M3.5.0,M10.5.0/3 (as found in /etc/TZ). And yes I do see the rrm lines in the conf.
How do i know it its working?

Note 802.11r does not seem to work for me... Clients lose internet access after they sleep somehow. And if i roam clients tend to disconnect then quickly do reconnect. Or do you think it may work now, with k and v enabled?

Thank you for your answer.

1 Like

You could check what the router sends out using wireshark https://weekly-geekly.github.io/articles/340140/

You only need 802.11r for fast transition to work, k and v are to provide additional information to help clients decide when to roam, they don't speed up the disconnect/reconnect process. For them to work, the client also needs to support these features (usually they do unless the hardware is fairly old). So when a client roams from one AP to another, both APs and the client need to support 802.11r for fast transition to work, and AP settings need to be compatible, e.g. same SSID, encryption/key, mobility domain, PMK etc, it's easier to use OpenWrt default (the example above uses default 802.11r settings)

If 802.11r is enabled, wpa_key_mgmt=WPA-PSK FT-PSK should appear in /var/run/hostapd-phy0.conf, FT-PSK wouldn't appear without 802.11r. Some apps could also show detailed WiFi diagnostic information.

WiFi client getting disconnected when it goes to sleep is not related to roaming, it's more to do with power saving. Most Android devices can be configured to keep WiFi connected in standby.

1 Like

Thanks again.
I can see that the two APs emit the K and V in the identification [WPA-EAP+EAP-SHA256-CCMP][RSN EAP+EAP-SHA256-CCMP][K][V][PMFC][ESS] and [WPA2-PSK+PSK-SHA256-CCMP][RSN PSK+PSK-SHA256-CCMP][K][V][PMFC][ESS] for the guestnet. Not sure if it contains any useful information or if the clients are using it. I have 2 identical APs (r7800) running the exact same latest stable openwrt to make things easier.

And yes if I add 802.11r it will transmit FT as well. But like i said, if i switch it on, then when e.g. my android phone after sleeping reconnects it does not have internet access, while it does show the Wifi symbol+signal strength, but then with an exclamation mark. I guess the STA is associated then but not authenticated anymore. I tried both the "generate PMK locally" as well as filling out the fields, made no difference. Maybe it has got to do with KRACK countermeasures, or maybe with 802.11w. I read somewhere that other ppl have an issue with that, though i tried switching to no avail. (I have that on optional at the moment, not really sure if that is needed or not.).

Thanks for any pointers.

1 Like

Default settings work for me. You could try other clients to see whether the problem is with the APs or with the client. You could also check OpenWrt log (logread) and Android log (adb).

Is there a step-by-step full manual on how to really enable 802.11v and .11k on OpenWrt?
Is it even supported on 19.07.3 stable release?
Does ath10k-ct(-htt) non-ct FW and drivers matter on this situation?

I just want to steer my client to 5GHz whenever the signal is good and use 2.4GHz when the signal is bad.

1 Like

I think I read somewhere that 19.07.3 stable you can enable it but it does not transmit useful information. Apparently the master master does. Im currently running OpenWrt SNAPSHOT r13866 there it seems to work. Roaming is fine even without 802.11r (which i cant seem to get working).
Note that, as far as I understood, k and v just transmits information to the clients and the clients themselves decide where to go. You can add scripting to forcefully disconnect clients though or send the "disconnect imminent" message.

can you write the steps you followed? commands and apps etc.

can I sysupgrade to snapshot release from luci straight away?
if yes, I will also install dawn app, will I still need scripts for extra?

edit: or I can wait till 19.07.4 if they are going to make it in stable release.

2 Likes

If you can wait or not depend on yourself and the timing of the next stable. Both of which i do not know. I am pretty sure they will include it though.

But if you want to copy what did, i actually wrote it down already here:
Link

Edit: and yeah you can upgrade to the snapshot from luci. Make sure though that you use the right version (i think its called sysupgrade if i remember correctly)

But like i said, if i switch it on, then when e.g. my android phone after sleeping reconnects it does not have internet access, while it does show the Wifi symbol+signal strength, but then with an exclamation mark.

I had the exact same problem (with just a simple AP config). This did the trick for me:

In etc/config/wireless, under wifi-iface:

option skip_inactivity_poll '1'
option disassoc_low_ack '0'

Hope it will work for you too.

I tried disabling inactivity poll and disassoc on low ack, it didnt help. But actually, im fine with the way it is now. Roaming seems good enough.

Thanks for the suggestion though.

I use this for 802.11k
https://github.com/simonyiszk/openwrt-rrm-nr-distributor

BlockquoteThe 802.11k standard specifies how the neighboring BSS' could report each other to a STA. OpenWRT's hostapd supports this feature, but the syncronization has to be done in a separate daemon such as this one.

1 Like