802.11r and time to switch

Hi,

currently I have 2 identical Access Point (Redmin AC2100) with:

  • Same SSID for each AP.
  • Same SSID for each frequency (2.5 & 5G).
  • Different channel for each AP.
  • Using 802.11r fast roaming.

When I switch AP I have a breaking time when my device wait IP aquissition. It's like IP blocked on the other AP and waiting transfert to the new.

My configuration is good ? Why switching AP need to waiting several minuts ?

Best regards.

Post your config for each AP. Hopefully a couple tweaks will help. Post the results of these:


uname -a

cat /etc/config/wireless

I keep my 2.4ghz and 5 ghz SSIDs separate. Less jumps (device has two network options rather than four options). 2.4ghz is slow and good for low bandwidth IoT. 5ghz is best for most roaming / faster devices.

1 Like

@llaumgui Strip your wireless keys before posting configuration file contents though.

1 Like

Hi,

Thx for your help.

From my routeur / AP (a.k.a hubble):

config wifi-device 'radio0'
	option type 'mac80211'
	option hwmode '11g'
	option path '1e140000.pcie/pci0000:00/0000:00:01.0/0000:02:00.0'
	option htmode 'HT20'
	option country 'FR'
	option channel '3'

config wifi-iface 'default_radio0'
	option device 'radio0'
	option network 'lan'
	option mode 'ap'
	option ssid 'starfleet'
	option encryption 'psk2+ccmp'
	option key 'XXXXXXXX'
	option ieee80211r '1'
	option ft_over_ds '1'
	option ft_psk_generate_local '1'
	option mobility_domain '74ed'
	option wds '1'

config wifi-device 'radio1'
	option type 'mac80211'
	option channel '36'
	option hwmode '11a'
	option path '1e140000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0'
	option htmode 'VHT80'
	option country 'FR'

config wifi-iface 'wifinet2'
	option device 'radio1'
	option mode 'ap'
	option ssid 'starfleet'
	option encryption 'psk2+ccmp'
	option key 'XXXXXXXX'
	option network 'lan'
	option ieee80211r '1'
	option mobility_domain '74ed'
	option ft_over_ds '1'
	option ft_psk_generate_local '1'
	option wds '1'

From my AP (a.k.a farpoint):

config wifi-device 'radio0'
	option type 'mac80211'
	option hwmode '11g'
	option path '1e140000.pcie/pci0000:00/0000:00:01.0/0000:02:00.0'
	option htmode 'HT20'
	option channel '8'
	option country 'FR'

config wifi-device 'radio1'
	option type 'mac80211'
	option hwmode '11a'
	option path '1e140000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0'
	option htmode 'VHT80'
	option country 'FR'
	option channel '100'

config wifi-iface 'wifinet0'
	option device 'radio0'
	option mode 'ap'
	option ssid 'starfleet'
	option encryption 'psk2+ccmp'
	option key 'XXXXXXXX'
	option network 'lan'
	option ieee80211r '1'
	option mobility_domain '74ed'
	option ft_over_ds '1'
	option ft_psk_generate_local '1'
	option wds '1'

config wifi-iface 'wifinet1'
	option device 'radio1'
	option mode 'ap'
	option ssid 'starfleet'
	option encryption 'psk2+ccmp'
	option key 'XXXXXXXX'
	option network 'lan'
	option ieee80211r '1'
	option mobility_domain '74ed'
	option ft_over_ds '1'
	option ft_psk_generate_local '1'
	option wds '1'

Thx

For 802.11r settings looks like the mobility domain is different from the defaults (on luci if you leave all the boxes blank it should just use the default). For the easiest 802.11r - I’d use the defaults:

https://openwrt.org/docs/guide-user/network/wifi/basic#fast_bss_transition_options

Hi ! I setup this some days ago regarding
this post.
Also i found a script via google where you can put in BSSID of the APs and prints out settings for 802.11r
for my 3 Archer C7 its like

gerd@capricorn:~/cloud/linux_dev$ ./openwrt_roaming.py 0 --ap C6:6E:1F:EA:EF:CA --ap EA:DE:27:FC:22:86 --ap 62:E3:27:88:BE:45 --format config

Configuration for AP with BSSID C6:6E:1F:EA:EF:CA:

    option ieee80211r '1'
    option mobility_domain '8d4d'
    option pmk_r1_push '1'
    option nasid 'C66E1FEAEFCA'
    option r1_key_holder 'C66E1FEAEFCA'
    list r0kh 'C6:6E:1F:EA:EF:CA,C66E1FEAEFCA,0f6e5daed5492160166a83dafb27b9cf'
    list r0kh 'EA:DE:27:FC:22:86,EADE27FC2286,0f6e5daed5492160166a83dafb27b9cf'
    list r0kh '62:E3:27:88:BE:45,62E32788BE45,0f6e5daed5492160166a83dafb27b9cf'
    list r1kh 'C6:6E:1F:EA:EF:CA,C6:6E:1F:EA:EF:CA,0f6e5daed5492160166a83dafb27b9cf'
    list r1kh 'EA:DE:27:FC:22:86,EA:DE:27:FC:22:86,0f6e5daed5492160166a83dafb27b9cf'
    list r1kh '62:E3:27:88:BE:45,62:E3:27:88:BE:45,0f6e5daed5492160166a83dafb27b9cf'

Configuration for AP with BSSID EA:DE:27:FC:22:86:

    option ieee80211r '1'
    option mobility_domain '8d4d'
    option pmk_r1_push '1'
    option nasid 'EADE27FC2286'
    option r1_key_holder 'EADE27FC2286'
    list r0kh 'C6:6E:1F:EA:EF:CA,C66E1FEAEFCA,0f6e5daed5492160166a83dafb27b9cf'
    list r0kh 'EA:DE:27:FC:22:86,EADE27FC2286,0f6e5daed5492160166a83dafb27b9cf'
    list r0kh '62:E3:27:88:BE:45,62E32788BE45,0f6e5daed5492160166a83dafb27b9cf'
    list r1kh 'C6:6E:1F:EA:EF:CA,C6:6E:1F:EA:EF:CA,0f6e5daed5492160166a83dafb27b9cf'
    list r1kh 'EA:DE:27:FC:22:86,EA:DE:27:FC:22:86,0f6e5daed5492160166a83dafb27b9cf'
    list r1kh '62:E3:27:88:BE:45,62:E3:27:88:BE:45,0f6e5daed5492160166a83dafb27b9cf'

Configuration for AP with BSSID 62:E3:27:88:BE:45:

    option ieee80211r '1'
    option mobility_domain '8d4d'
    option pmk_r1_push '1'
    option nasid '62E32788BE45'
    option r1_key_holder '62E32788BE45'
    list r0kh 'C6:6E:1F:EA:EF:CA,C66E1FEAEFCA,0f6e5daed5492160166a83dafb27b9cf'
    list r0kh 'EA:DE:27:FC:22:86,EADE27FC2286,0f6e5daed5492160166a83dafb27b9cf'
    list r0kh '62:E3:27:88:BE:45,62E32788BE45,0f6e5daed5492160166a83dafb27b9cf'
    list r1kh 'C6:6E:1F:EA:EF:CA,C6:6E:1F:EA:EF:CA,0f6e5daed5492160166a83dafb27b9cf'
    list r1kh 'EA:DE:27:FC:22:86,EA:DE:27:FC:22:86,0f6e5daed5492160166a83dafb27b9cf'
    list r1kh '62:E3:27:88:BE:45,62:E3:27:88:BE:45,0f6e5daed5492160166a83dafb27b9cf'

script is from here and can also setup direct AP via uci (i prefer the config option)

Ciao Gerd

1 Like

That reddit post is now old. 802.11r works right out of the box without all the manual keys / complexity. :sunglasses: Just turn it on and the keys are auto generated with the defaults. No further settings changes needed.

The only reason to go thru and manually set it up is if you have a very custom setup.

2 Likes

Hi !

But How will the next AP know that it has to handover tha client ? Or do they talking to each other w/o configuration ? Or do i have to set at leat a mobility domain and a NASID

Ciao Gerd

This commit made 802.11r work right out of the box by changing the defaults.

“ Use ft_psk_generate_local=1 by default, as it makes everything else fairly trivial. All of the r0kh/r1kh and key management stuff goes away and hostapd fairly much does it all for us.”

https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=3cc56a5534b8b49a7e9ba57edf9878ec32bdd27a

Defaults looks like this in luci:
image

I'm on OpenWrt SNAPSHOT r13628-870588b6eb / LuCI Master git-20.183.58415-2e2ab59 (I use snapshot because I have 2 Xiaomi Redmi Router AC2100). I think I have it.

All seem good for me.

config wifi-device 'radio0'
        option type 'mac80211'
        option hwmode '11g'
        option path '1e140000.pcie/pci0000:00/0000:00:01.0/0000:02:00.0'
        option htmode 'HT20'
        option country 'FR'
        option channel '3'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'starfleet'
        option encryption 'psk2+ccmp'
        option key 'XXX'
        option ieee80211r '1'
        option ft_over_ds '1'
        option ft_psk_generate_local '1'
        option mobility_domain 'YYY'
        option wds '1'
        option pmk_r1_push '1'

config wifi-device 'radio1'
        option type 'mac80211'
        option channel '36'
        option hwmode '11a'
        option path '1e140000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0'
        option htmode 'VHT80'
        option country 'FR'

config wifi-iface 'wifinet2'
        option device 'radio1'
        option mode 'ap'
        option ssid 'starfleet'
        option encryption 'psk2+ccmp'
        option key 'XXX'
        option network 'lan'
        option ieee80211r '1'
        option mobility_domain 'YYY'
        option ft_over_ds '1'
        option ft_psk_generate_local '1'
        option wds '1'
        option pmk_r1_push '1'
config wifi-device 'radio0'
        option type 'mac80211'
        option hwmode '11g'
        option path '1e140000.pcie/pci0000:00/0000:00:01.0/0000:02:00.0'
        option htmode 'HT20'
        option channel '8'
        option country 'FR'

config wifi-device 'radio1'
        option type 'mac80211'
        option hwmode '11a'
        option path '1e140000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0'
        option htmode 'VHT80'
        option country 'FR'
        option channel '100'

config wifi-iface 'wifinet0'
        option device 'radio0'
        option mode 'ap'
        option ssid 'starfleet'
        option encryption 'psk2+ccmp'
        option key 'XXX'
        option network 'lan'
        option ieee80211r '1'
        option mobility_domain 'YYY'
        option ft_over_ds '1'
        option ft_psk_generate_local '1'
        option wds '1'
        option pmk_r1_push '1'

config wifi-iface 'wifinet1'
        option device 'radio1'
        option mode 'ap'
        option ssid 'starfleet'
        option encryption 'psk2+ccmp'
        option key 'XXX'
        option network 'lan'
        option ieee80211r '1'
        option mobility_domain 'YYY'
        option ft_over_ds '1'
        option ft_psk_generate_local '1'
        option wds '1'
        option pmk_r1_push '1'

Same SSID but not same channel. I have a long time waiting to have an IP when I switch.

Looks like you still have some extra options that might be making 802.11r not work for you. Mobility domain should be blank (recommend deleting it in luci, it’ll use the default, the option should not show up in your config). With a wds you might need to use ft over air (try using the default mobility domain first, then try the ft over air option)


config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ft_over_ds '1'
        option ssid ''
        option ft_psk_generate_local '1'
        option key ''
        option ieee80211r '1'
        option encryption 'psk2+ccmp'

1 Like

Not working.

I try it.

Thx.

Same issue over the air... WDS can be the problem ?

You said it takes a while for your devices to get a new IP when the switch happens. Are you using two different subnets and/or two DHCP servers? For proper functionality, they need to be on the same layer 2 network (ie Bridged together) and you should have only one DHCP server running (only on the router, not on the AP).

[quote="Mushoz, post:14, topic:69918"]
proper functionality, they need to be on the same layer 2 network (ie Bridged together) and you should have only one DHCP server running (only on the router, not on the AP).
[/quote]1 DHCP and same network with same IP because I use dhcp leases.

I’d turn off wds (if you don’t need it). Keep your settings simple.

Do your settings look like this?


config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ft_over_ds '1'
        option ssid ''
        option ft_psk_generate_local '1'
        option key ''
        option ieee80211r '1'
        option encryption 'psk2+ccmp'

Same issue... Perhaps the DHCP leases ?

config wifi-device 'radio0'
	option type 'mac80211'
	option hwmode '11g'
	option path '1e140000.pcie/pci0000:00/0000:00:01.0/0000:02:00.0'
	option htmode 'HT20'
	option channel '8'
	option country 'FR'

config wifi-device 'radio1'
	option type 'mac80211'
	option hwmode '11a'
	option path '1e140000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0'
	option htmode 'VHT80'
	option country 'FR'
	option channel '100'

config wifi-iface 'wifinet0'
	option device 'radio0'
	option mode 'ap'
	option ssid 'starfleet'
	option encryption 'psk2+ccmp'
	option key 'xxx'
	option network 'lan'
	option ieee80211r '1'
	option ft_psk_generate_local '1'
	option pmk_r1_push '1'
	option ft_over_ds '0'

config wifi-iface 'wifinet1'
	option device 'radio1'
	option mode 'ap'
	option ssid 'starfleet'
	option encryption 'psk2+ccmp'
	option key 'xxx'
	option network 'lan'
	option ieee80211r '1'
	option ft_psk_generate_local '1'
	option pmk_r1_push '1'
	option ft_over_ds '0'

Two recommendations:

The r1 push is not required and should be cleared out.

The FT over ds (Over air is the minimum) is required and should be enabled.

1 Like

Thx ! I try it...