OpenWRT WLAN FT configuration - Online generator


To be able to set my WLAN settings for OpenWrt more quickly, I have put together an online wizard for creating the necessary commands. The aim of the setup is to create a common WLAN mobility domain for several access points: so that roaming - FT (Fast Transition) - between the access points works properly. Access points with an existing 2.4 GHz and 5 GHz band are required as hardware. The commands are compiled for the first two WLAN interfaces to enable band steering between the two interfaces. When the page is loaded, a random mobility domain and optionally a random 128-bit key for the r0kh and r1kh keys are generated purely in the browser. When customizing the form, the bash commands can be updated via "Recompile commands".

Separate bash commands are used for certain settings so that the settings can be used universally on all access points. The mobility domain and the password for the r0kh and r1kh keys are generated purely in the browser and no information is sent to the web server. The Wpad Full and Usteer software packages are required. The settings overwrite the settings of the first WLAN interface. Tested with OpenWrt version 23.05.3

WLAN Settings

Mobility Domain (Optional,
Proposal was generated automatically)
SSID (Optional)
WLAN KEY (Optional)
Generate PMK locally (ft_psk_generate_local)
Password (for the r0kh and r1khs keys, a suggestion was generated automatically)
BSSIDs of the WLAN interfaces (The example MAC addresses must be replaced by the MAC addresses of all access points, see also: Read BSSIDs

Recompile commands

Compiled commands for the WLAN setup

#activate Wifi 0 and 1:
uci set wireless.radio0.disabled='0'
uci set'DE'
uci set wireless.radio1.disabled='0'
uci set'DE'
uci commit wireless
wifi reload

#WiFi Interface 0
uci set wireless.@wifi-iface[0].dtim_period=$(if [ $(uci get wireless.radio0.htmode | grep 'V') ]; then echo '3';else echo '1'; fi)
uci set wireless.@wifi-iface[0].ieee80211k='1'
uci set wireless.@wifi-iface[0].disassoc_low_ack='0'
uci set wireless.@wifi-iface[0].ieee80211r='1'
uci set wireless.@wifi-iface[0].ft_over_ds='0'
uci set wireless.@wifi-iface[0].reassociation_deadline='20000'
uci set wireless.@wifi-iface[0].bss_transition='1'
uci set wireless.@wifi-iface[0].mobility_domain='e6bb'
uci set wireless.@wifi-iface[0].wnm_sleep_mode='1'
uci set wireless.@wifi-iface[0].ft_psk_generate_local='1'

#WiFi Interface 1
uci set wireless.@wifi-iface[1].dtim_period=$(if [ $(uci get wireless.radio1.htmode | grep 'V') ]; then echo '3';else echo '1'; fi)
uci set wireless.@wifi-iface[1].ieee80211k='1'
uci set wireless.@wifi-iface[1].disassoc_low_ack='0'
uci set wireless.@wifi-iface[1].ieee80211r='1'
uci set wireless.@wifi-iface[1].ft_over_ds='0'
uci set wireless.@wifi-iface[1].reassociation_deadline='20000'
uci set wireless.@wifi-iface[1].bss_transition='1'
uci set wireless.@wifi-iface[1].mobility_domain='e6bb'
uci set wireless.@wifi-iface[1].wnm_sleep_mode='1'
uci set wireless.@wifi-iface[1].ft_psk_generate_local='1'

#Usteer Settings
uci set usteer.@usteer[0].band_steering_threshold='19'
uci set usteer.@usteer[0].roam_scan_snr='-60'
uci set usteer.@usteer[0].roam_trigger_snr='-70'
uci set usteer.@usteer[0].signal_diff_threshold='15'
uci set usteer.@usteer[0].load_balancing_threshold='10'

#Please check the settings before committing with the uci changes command:
uci changes

#Changes can be undone with the following command: rm -rf /tmp/.uci/

#The settings can be saved with 'uci commit':
uci commit

#Either restart the device, or at least reload WiFi and Usteer:
wifi reload
/etc/init.d/usteer reload

Please check all changes with “uci changes” before saving “uci commit”. The commands can simply be copied into an SSH terminal connection (e.g. putty, Linux Shell, or Windows Terminal) and executed. The command: ssh root@ and the IP address can be used to connect to the access points: 

PS C:\Users\LiBe> ssh root@
root@'s password:

Commit Show changes

uci changes

Undoing changes

Before the "commit", all pending changes can be discarded with the following command:

rm -rf /tmp/.uci/

Read out BSSIDs (MACs) of all APs (optional: when using r0kh and r1kh keys):

If the WLAN has not yet been set up, the MAC addresses of the first 2 interfaces can be read out with the following command:

cat /sys/class/net/wlan[01]/address

If the WLAN has already been activated, the WLAN interfaces change to "phyx-ap0" and the following command shows the addresses:

cat /sys/class/net/phy[01]-ap0/address

For a shared mobilty domain without the option: ft_psk_generate_local, an FT setup can be compiled using all MAC addresses of the AccessPoints used. 

Information on the settings used

positive Bewertung({{pro_count}})
Rate Post:
{{percentage}} % positive
negative Bewertung({{con_count}})

THANK YOU for your review!

Questions / Comments

By continuing to browse the site, you agree to our use of cookies. More Details