[Guide] Slate AX / Flint - 802.11k/v/r/s & Mesh Support

Tested FW version: 4.1.0-166

  1. Reset to factory defaults
  2. Never touch the Wi-Fi from the GL.iNet Wireless page, only use LuCI for Wi-Fi
  3. SSH to the router
  4. Type opkg update && opkg remove wpad-openssl && opkg install wpad-openssl --force-overwrite
  5. Configure mesh like you would from OpenWrt Wiki in LuCI.

My current mesh configuration to be used as an example with 802.11r and 802.11kv using usteer:


Slate AX is the mesh main

Command: opkg install usteer ; service usteer enable ; server usteer start

Content: /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'platform/soc/c000000.wifi'
        option band '5g'
        option htmode 'HE80'
        option htmod 'HE80'
        option country 'US'
        option cell_density '0'
        option channel '161'
        option channels '36,40,44,48,149,153,157,161,165'
        option rts '500'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option encryption 'psk2+ccmp'
        option ssid 'Example'
        option dtim_period '3'
        option key 'password'
        option bss_transition '1'
        option wnm_sleep_mode '1'
        option time_advertisement '2'
        option time_zone 'GMT0'
        option ieee80211k '1'
        option rrm_neighbor_report '1'
        option rrm_beacon_report '1'
        option ieee80211r '1'
        option ft_psk_generate_local '1'
        option ft_over_ds '0'

config wifi-device 'radio1'
        option type 'mac80211'
        option path 'platform/soc/c000000.wifi+1'
        option band '2g'
        option cell_density '0'
        option noscan '1'
        option channel '11'
        option htmode 'HE40'
        option rts '500'

config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option ssid 'Example-2.4G'
        option dtim_period '3'
        option encryption 'psk2+ccmp'
        option key 'password'
        option skip_inactivity_poll '1'
        option disassoc_low_ack '0'
        option bss_transition '1'
        option wnm_sleep_mode '1'
        option time_advertisement '2'
        option time_zone 'GMT0'
        option ieee80211k '1'
        option rrm_neighbor_report '1'
        option rrm_beacon_report '1'
        option ieee80211r '1'
        option ft_psk_generate_local '1'
        option ft_over_ds '0'

config wifi-iface 'wifinet2'
        option device 'radio0'
        option mode 'mesh'
        option encryption 'sae'
        option mesh_id 'Example-Mesh'
        option mesh_fwding '1'
        option mesh_rssi_threshold '0'
        option key 'password'
        option network 'lan'

Archer C7 v2 is the mesh peer

Command: opkg remove wpad-basic-wolfssl ; opkg install wpad-wolfssl
Command: opkg install usteer ; service usteer enable ; server usteer start

Content: /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'pci0000:00/0000:00:00.0'
        option band '5g'
        option htmode 'VHT80'
        option cell_density '0'
        option channel '161'
        option rts '500'
        option beacon_int '100'
        option country 'US'

config wifi-device 'radio1'
        option type 'mac80211'
        option path 'platform/ahb/18100000.wmac'
        option band '2g'
        option cell_density '0'
        option noscan '1'
        option htmode 'HT40'
        option disabled '0'
        option rts '500'
        option beacon_int '100'
        option channel '3'
        option country 'US'

config wifi-iface 'wifinet1'
        option device 'radio0'
        option mode 'ap'
        option ssid 'Example'
        option encryption 'psk2+ccmp'
        option dtim_period '3'
        option key 'password'
        option network 'lan'
        option skip_inactivity_poll '1'
        option disassoc_low_ack '0'
        option bss_transition '1'
        option wnm_sleep_mode '1'
        option time_advertisement '2'
        option time_zone 'GMT0'
        option ieee80211k '1'
        option ieee80211r '1'
        option ft_over_ds '0'
        option ft_psk_generate_local '1'

config wifi-iface 'wifinet2'
        option device 'radio1'
        option mode 'ap'
        option ssid 'Example-2.4G'
        option encryption 'psk2+ccmp'
        option dtim_period '3'
        option key 'password'
        option network 'lan'
        option skip_inactivity_poll '1'
        option disassoc_low_ack '0'
        option bss_transition '1'
        option wnm_sleep_mode '1'
        option time_advertisement '2'
        option time_zone 'GMT0'
        option ieee80211k '1'
        option ieee80211r '1'
        option ft_over_ds '0'
        option ft_psk_generate_local '1'

config wifi-iface 'wifinet3'
        option device 'radio0'
        option mode 'mesh'
        option encryption 'sae'
        option mesh_id 'Example-Mesh'
        option mesh_fwding '1'
        option mesh_rssi_threshold '0'
        option skip_inactivity_poll '1'
        option disassoc_low_ack '0'
        option key 'password'
        option network 'lan'


Extras:

  • usteer can also help certain devices to steer from 2.4Ghz to 5Ghz with equal SSID (requires configuration - not recommended)
  • Compared to WDS (fake bridging/L3) and “Extender” (proxy/relay ARP): with roaming the transition speed with mesh/802.11s is around 60ms, 130ms without, making 802.11r actually useful with mesh or wired back haul/dumb-AP, whereas it’s somewhat useless with repeaters and WDS as they take ~350ms on average when roaming. It is noticeable with VoWiFi calls silent periods and video calls reducing quality & taking a minute before restoring full bit rate.
  • Use FT-over-Air for roaming.
  • IPv6 is more stable with 802.11s than WDS/RA-relay from my tests.
  • 802.11k/v is only useful with Windows, Pixel + few Android phones, and modern Linux distros.You can skip usteer and k/v configuration.
  • usteer is needed for 802.11k/v , to check peering info ubus call usteer get_clients
5 Likes

Performance tests with official OpenWrt builds (21.02.1):

Slate AX WDS to:

  • Atheros QCA9880: WDS 180Mbit down / 160Mbit up 15ms max, slows down to 90 after 12 hours
  • MediaTek MT7615N: WDS 150Mbit down / 70Mbit up with 400ms latency on load, stable speed

Notes

  1. Both cutoff randomly every few days requiring a restart.
  2. There is a noticeable packet loss on client connect/disconnect in simultaneous mode: AP and Client (WDS) a.k.a Repeater mode.

Slate AX Mesh/802.11s to:

  • Atheros QCA9880: 260Mbit down / 210 Mbit up 20ms max, stable for weeks
  • MediaTek MT7615N: 290Mbit down / 200 Mbit up 30ms max, no latency increase, stable for weeks
  • Unofficial OpenWrt build is doing ~400Mbit with Atheros QCA9880

To add more, including Slate AX to Flint and recent Mediatek (since they’re contributing to Linux mainline now)

Thank you for sharing.
One question, in the performance test, is Slate AX used as the main node(AP mode)?

2 Likes

Yes it’s the main router. Both doing AP+Mesh (LAN bridge) and the Slate is the main gateway.

1 Like

Update for latest release (4.2), GL.iNet’s DAWN is outdated, start a fresh install and replace /etc/opkg/distfeeds.conf with:

src/gz glinet_core https://fw.gl-inet.com/releases/v21.02-SNAPSHOT/kmod-4.2.1/arm_cortex-a7/ip60xx
#src/gz glinet_gli_pub https://fw.gl-inet.com/releases/v21.02-SNAPSHOT/packages-4.1/arm_cortex-a7/glinet
#src/gz opnwrt_packages https://fw.gl-inet.com/releases/v21.02-SNAPSHOT/packages-4.0/arm_cortex-a7/packages

src/gz openwrt_base https://downloads.openwrt.org/releases/21.02-SNAPSHOT/packages/arm_cortex-a7/base
src/gz openwrt_luci https://downloads.openwrt.org/releases/21.02-SNAPSHOT/packages/arm_cortex-a7/luci
src/gz openwrt_packages https://downloads.openwrt.org/releases/21.02-SNAPSHOT/packages/arm_cortex-a7/packages
src/gz openwrt_routing https://downloads.openwrt.org/releases/21.02-SNAPSHOT/packages/arm_cortex-a7/routing
src/gz openwrt_telephony https://downloads.openwrt.org/releases/21.02-SNAPSHOT/packages/arm_cortex-a7/telephony
opkg update && opkg remove wpad-openssl --force-depends && opkg install wpad-openssl --force-overwrite

Then install and configure DAWN after enabling 802.11r in LuCI, you just need to check the box. Do not use WPA3 or sae-mixed.

Rename keyword radio0 and radio1 in /etc/config/wireless to anything else since the repeater app seems to overwrite changes.

With DAWN’s default kicking set to mode 3, reduce all APs transmission power to ~15dB for 5Ghz, 10dB for 2.4Ghz depending on your setup.
Note that DAWN may cause tiny latency spikes every 5 seconds for a duration of 30ms delaying packet by 100ms measured on Slate AX, this is caused by background scanning.

Mods: It may be useful to enable Wiki mode in Discourse, can’t edit original.

2 Likes