# 802.11r (roaming) implemented?

I am just playing around with 802.11r (roaming). Just before going mad: what is implemented, what works, what is missing?

Is wpa_supplicant compiled with ieee80211=yes, what must be done to the backend mimikry?

802.11r can be done with open source stuff (actual openwrt works). iOS devices work and android devices could work but they have a wrong configuration mimikry.

If it does not work yet this would be a feature-request.

edit retag close delete

1

( 2017-03-21 07:04:51 +0300 )edit

Sort by » oldest newest most voted

Hi.

I've been playing for a few days with this feature and my Jolla C. Based in what's explained here I've been able to force "Fast Transition" switch between 2 AP's without the 4-way handshake usually necessary for association & authentication:

[root@Sailfish nemo]# wpa_cli roam EC:08:6B:F9:23:FC
Selected interface 'wlan0'
OK
[root@Sailfish nemo]# wpa_cli roam 00:1A:2B:A5:42:7D
Selected interface 'wlan0'
OK
[root@Sailfish nemo]#


Where EC:08:6B:F9:23:FC and 00:1A:2B:A5:42:7D are the mac addresses of two APs I use at home. After a few more repetitions the handover fails and I still don't know why. This would be quite useful if we had a proper native VOIP support and integration for SailfishOS :)

Hope this helps.....

Regards.

UPDATE: 17/03/2017 14:55

After some tinkering around this issue I found out that the FT option is not included in the binaries. I changed the configuration in my device to support FT-PSK as key_mgmt and it diddn't work:

[root@Sailfish ~]# wpa_supplicant -C /var/run/wpa_supplicant/wlan0 -P /var/run/wpa_supplicant.pid -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -D nl80211
Successfully initialized wpa_supplicant
Line 5: invalid key_mgmt 'FT-PSK'
Line 5: failed to parse key_mgmt 'WPA-PSK FT-PSK'.
Line 8: failed to parse network block.
Failed to read or parse configuration '/etc/wpa_supplicant/wpa_supplicant.conf'.


This means that this option is not admitted in the binary package.

Sorry for the inconvinience, although I think it should be easy to enable it at compilation time in the future.....

Regards.

*UPDATE: 20/03/2017 21:11*

Ok.

After some more tinkering I finally made it to get 802.11r support in my JollaC.

Basically I downloaded the source code for the package, added the corresponding build option and generated the same rpm package with the option CONFIG_IEEE80211R enabled.

I think it works because now, when I use wpa_cli to scan for available APs, my two FT-compatible APs appear like this:

> bssid / frequency / signal level / flags / ssid
00:1a:2b:a5:42:7d   2437    -30 [WPA2-PSK+FT/PSK-CCMP-preauth][ESS]
ec:08:6b:f9:23:fc   2472    -79 [WPA2-PSK+FT/PSK-CCMP-preauth][ESS]


Here's the log of the process I followed. Keep in mind that this is the first time I compile something locally in my JollaC, and also that you will have to uninstall the original wpa_supplicant package and this might be potencially dangerous.

[root@Sailfish SOURCES]pkcon install -y rpm-build
[root@Sailfish SOURCES]pkcon install -y make
[root@Sailfish SOURCES]pkcon install -y gcc
[root@Sailfish SOURCES]vi build-config
** add line with CONFIG_IEEE80211R=y **
[root@Sailfish SOURCES]zypper in meego-rpm-config
[root@Sailfish rpmbuild]# rpmbuild -bb SPECS/wpa_supplicant.spec
[root@Sailfish nemo]# zypper rm wpa_supplicant
Resolving package dependencies...

Problem: This request will break your system!
This request will break your system!
This request will break your system!
This request will break your system!
This request will break your system!
connman-1.30+git31-1.34.1.armv7hl requires wpa_supplicant >= 0.7.1, but this requirement cannot be provided

Solution 1: Following actions will be done:
ignore the warning of a broken system (requires:feature-jolla)
ignore the warning of a broken system (requires:ssu-vendor-data-jolla)
ignore the warning of a broken system (requires:PackageKit)
ignore the warning of a broken system (requires:connectionagent-qt5)
ignore the warning of a broken system (requires:connman)
Solution 2: keep wpa_supplicant-2.5+git1-1.14.7.armv7hl
Solution 3: break connman-1.30+git31-1.34.1.armv7hl by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/3/c] (c): 3
Resolving dependencies...
Resolving package dependencies...

The following package is going to be REMOVED:
wpa_supplicant

1 package to remove.
After the operation, 1.3 MiB will be freed.
Continue? [y/n/?] (y): y
Removing wpa_supplicant-2.5+git1-1.14.7 ..................................[done]

[root@Sailfish nemo]zypper  in /root/rpmbuild/RPMS/armv7hl/wpa_supplicant-2.5+git1-1.14.7.armv7hl.rpm
Resolving package dependencies...

The following NEW package is going to be installed:
wpa_supplicant

1 new package to install.
be used.
Continue? [y/n/?] (y): y
Retrieving package wpa_supplicant-2.5+git1-1.14.7.armv7hl
(1/1), 529.3 KiB (  1.3 MiB unpacked)
Retrieving package wpa_supplicant-2.5+git1-1.14.7.armv7hl
(1/1), 529.3 KiB (  1.3 MiB unpacked)
Installing: wpa_supplicant-2.5+git1-1.14.7 ...............................[done]
rm: cannot remove /var/log/wpa_supplicant.log': No such file or directory

[root@Sailfish nemo]systemctl restart wpa_supplicant
`

I hope this helps anyone interested as it helped me :D

** UPDATE 23/10/2017

Hi.

Good news at least!! Finally I had a positive answer from mer-core/wpa_supplicant development branch and I've been confirmed that 802.11r will probably be available in the next release of SailFishOS.

For more details, see here:

Regards.

more

Hi.

Can anybody please mark this question as released?.

802.11r is supported since 2.1.4.13 \o/ :)

Regards.

( 2018-02-28 18:23:25 +0300 )edit