Page MenuHomeVyOS Platform

WiFi: Enable support for 6GHz AccesPoints
Open, WishlistPublicFEATURE REQUEST

Description

Since the last major overhaul (https://vyos.dev/T452), newer WiFi standards have been established and hardware is becoming available to the open market.

This feature request shall concentrate on implementing WiFi Access Points on the 6GHz band. To ease development, the focus should be on implementing WiFi-6e (IEEE 802.11ax for 6GHz).

Reasoning:

  • Implementing WiFi-6e (IEEE 802.11ax for 6GHz only) would be less complicated than adding yet another set of flags (HE) to the current set of WiFi configurations covering HT and VHT. In hostapd, WiFi-6e is done differently and requires a different set of settings.
  • The 6GHz band offers a vast improvement on bandwidth in many countries where the 5GHz bands are severely regulated (such as in Europe). While on 6GHz one may easily achieve throughput of more than 1GBit/sec, this is almost not possible on 5GHz, making development effort for 5GHz questionable.
  • Later implementations for WiFi-7 (IEEE 802.11be) would be similar to WiFi-6e. WiFi-7 would also use 6GHz, but is not limited to that band by standard IEEE 802.11be.

Suggested testbeds:

I have done some prior research on what hardware might be available to implement this. These were my results so far:

  • Atheros ath11k devices might be available on some places - however, I could not find a source in Europe for a decent device.
  • MEDIATEK Filogic 330 (mt7922e) and Filogic 630 (mt7916e) are available and support WiFi-6e AP mode on 6GHz. Sources below. I was able to set up a 6GHz AP based on Debian Trixie (Kernel 6.7) and connect to that AP, however, the connection was instable and only held for a minute or so. This time was enough to run iperf3 which yielded throughput of more than 100 MBytes/sec on that prototype. I used both, a mt7916e and mt7922e module as AP on a PC-Engines APU3.

Sources:

TODOs:

[x] Acquire a suitable NIC and make a testbed
[x] Find a stable hostapd.conf for WiFi-6e
[ ] Implement new settings to vyos-1x
[ ] Test thoroughly

Configurations:

While I'll be working on this topic and subsequently adding results to this post, I'd be glad for any help on further stabilizing the 6GHz AP configuration. The config below seems to make a sufficiently stable AP. Throughput remains acceptable and stable even behind one wall and is on par with 5GHz WiFi-5 through two walls (no steel reinforcement).

Rough throughput measurements for 6GHz at 160MHz bandwidth:

no walls100 - 150 MByte/s
one wall60 - 100 MByte/s
two walls30 - 60 MByte/s

My /etc/hostapd/hostapd-wifi6e.conf - start AP using hostapd -t -d -P /var/run/wlan0.pid /etc/hostapd/hostapd-wifi6e.conf

###################################################################
# HostAPd configuration for WiFi-6e for a MEDIATEK mt7916 NIC     #
#                                                                 #
# Requirements for WiFi-6e (ieee80211ax) on 6GHz:                 #
# - WPA3 for authentication                                       #
# - SAE key management required for WPA3                          #
# - Management Frame Protection required for WPA3                 #
# - Radar awareness required for some RegDomains on 5GHz and 6GHz #
# - WME/WMM required                                              #
###################################################################
# 
# Posix Socket - (i.e. for hostapd_cli)
ctrl_interface=/var/run/hostapd
# driver interface
driver=nl80211
# NIC to be configured
interface=<wlan0..n>
device_name=802.11ax 6GHz
# This WiFi NIC is a bridge slave...
bridge=<br0..n>
wds_sta=1
# Logging
logger_stdout=-1
logger_stdout_level=0
logger_syslog=-1
logger_syslog_level=0
# Registry Domain configured by Country Code
country_code=<2-LETTER-COUNTRY-CODE>
ieee80211d=1
# Fulfill requirements for AP operation on 6GHz -- This is an INDOOR ONLY AP
he_6ghz_reg_pwr_type=0
# Expect this AP not to change its position and antenna alignment
stationary_ap=1
he_6ghz_rx_ant_pat=1
# Activate beamforming capabilities 
he_mu_beamformer=1
he_su_beamformee=1
he_su_beamformer=1
# Limit number of concurrent "clients" (stations) and do not restrict them by MAC address
max_num_sta=24
macaddr_acl=0
# Frequency band and channel selection for 6GHz WiFi-6e using 160MHz bandwidth
hw_mode=a
op_class=134
channel=1
he_oper_centr_freq_seg0_idx=15
# Configure for WiFi-6e protocol (AX mode) and set a BSS color
ieee80211ax=1
he_bss_color=<1..63>
# Enable Radar detection and DFS support if available
ieee80211h=1
enable_background_radar=1
# Enforce Management Frame Protection (MFP) as required for WPA3
ieee80211w=2
beacon_prot=1
# Configure Ciphers, Re-Keying Intervals and Authentication Protocols for WPA3
wpa=2
wpa_key_mgmt=SAE
auth_algs=1
wpa_pairwise=CCMP CCMP-256 GCMP GCMP-256
rsn_pairwise=CCMP CCMP-256 GCMP GCMP-256
group_mgmt_cipher=AES-128-CMAC
extended_key_id=1
wpa_gmk_rekey=86400
wpa_group_rekey=86400
wpa_group_update_count=4
# Configure SSID and Passphrase
ssid=<SSID>
sae_password=<PASSPHRASE>
# 
# Wireless Multimedia Extensions (WME) and Wi-Fi Multimedia (WMM)
wme_enabled=1
wmm_enabled=1
#
# Default WMM parameters (IEEE 802.11 draft; 11-03-0504-03-000e):
# These parameters are used by the access point when transmitting frames to the clients.
# Low priority / AC_BK = background
tx_queue_data3_aifs=7
tx_queue_data3_cwmin=15
tx_queue_data3_cwmax=1023
tx_queue_data3_burst=0
# Normal priority / AC_BE = best effort
tx_queue_data2_aifs=3
tx_queue_data2_cwmin=15
tx_queue_data2_cwmax=63
tx_queue_data2_burst=0
# High priority / AC_VI = video
tx_queue_data1_aifs=1
tx_queue_data1_cwmin=7
tx_queue_data1_cwmax=15
tx_queue_data1_burst=3.0
# Highest priority / AC_VO = voice
tx_queue_data0_aifs=1
tx_queue_data0_cwmin=3
tx_queue_data0_cwmax=7
tx_queue_data0_burst=1.5
# Quality of Service (QoS) parameters
# Low priority / AC_BK = background
wmm_ac_bk_cwmin=4
wmm_ac_bk_cwmax=10
wmm_ac_bk_aifs=7
wmm_ac_bk_txop_limit=0
wmm_ac_bk_acm=0
# Normal priority / AC_BE = best effort
wmm_ac_be_aifs=3
wmm_ac_be_cwmin=4
wmm_ac_be_cwmax=10
wmm_ac_be_txop_limit=0
wmm_ac_be_acm=0
# High priority / AC_VI = video
wmm_ac_vi_aifs=2
wmm_ac_vi_cwmin=3
wmm_ac_vi_cwmax=4
wmm_ac_vi_txop_limit=94
wmm_ac_vi_acm=0
# Highest priority / AC_VO = voice
wmm_ac_vo_aifs=2
wmm_ac_vo_cwmin=2
wmm_ac_vo_cwmax=3
wmm_ac_vo_txop_limit=47
wmm_ac_vo_acm=0

I directly used wpa_supplicant to connect as NetworkManager mostly failed at first to detect and connect to the AP. With the more stable hostapd-wifi6e.conf and a DHCPd service in background, NetworkManager reliably connects to this AP.

Here is my wpa_supplicant.conf. Connect using sudo wpa_supplicant -d -i wlp1s0 -c /etc/wpa_supplicant/wpa_supplicant.conf.

ctrl_interface=/run/wpa_supplicant
update_config=1
#ap_scan=0
country=<COUNTRY-CODE>
network={
  scan_freq=5955 5975 5995 6015 6035 6055 6075 6095 6115 6135 6155 6175 6195 6215 6235 6255 6275 6295 6315 6335 6355 6375 6395 6415
  ssid="<SSID-IDENTIFIER>"
  key_mgmt=SAE
  auth_alg=OPEN
  ieee80211w=2
  sae_password="<PASSPHRASE>"
}

Quirks and Workarounds:

6GHz band is completely disabled in iw list. This may be the case if you try to use a MEDIATEK card on Linux 6.6.30 or 6.7.x or newer. There seems to be a lot going on in the Kernel's WiFi section right now. A new feature called "CLC" which must be disabled in the mt7921_common module to use the 6GHz band. Make a file in /etc/modprobe.d/ containing options mt7921_common disable_clc=1.

Details

Difficulty level
Unknown (require assessment)
Version
-
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)
Issue type
Feature (new functionality)