TL; DR:
I am getting measurements around 40Mbps over wifi 5 with OpenWRT on my Archer A7 and Archer C7. The link speed says it should be closer to 450MBps. I want it to be at least over 80Mbps, which is the speed of my Internet connection.
Data
I am running iperf3 -s on an older laptop (connected via ethernet and one 1Gbps router).
- Running iperf3 -c on my phone to that laptop shows rates between 25Mbps and 45Mbps, average always under 40Mbps. This is a pixel 6 pro. The settings say it is "Wi-Fi 5" and the tx/rx link speeds are in the 300-400Mbps range. I am running iperf3 in termux.
- Running iperf3 -c on my newer ubuntu laptop show similar rates of 40Mbps. The network connection info says "Speed: 351Mb/s". This is what the AP says about the connection:
351.0 Mbit/s, 80 MHz, VHT-MCS 4, VHT-NSS 2 468.0 Mbit/s, 80 MHz, VHT-MCS 5, VHT-NSS 2
- Running iperf3 -c on that same laptop on Ethernet shows 950Mbps or so transfer rates.
OpenWRT hardware
- an Archer C7 v4 as the dumb AP
- an Archer A7 v5 as the router.
- They are configured with the same ssid in 5GHz and 2.4Ghz.
- They have the 802.11r FT enabled on both frequencies.
- I have the channels set to auto. This is a suburb, with a lot of neighbors in range. Maybe picking something would be better, but I am not looking for incredible speed.
- OpenWRT 22.03.3. Installed over the weekend. I was using dd-wrt and I remember similar speeds (but I don't have the numbers, so take that data with a grain of salt).
Additional Background
I see some other posts about these routers and the OPs are saying things like, "I can only get 300Mbps, and I want 900Mbps". Something is definitely different for me. I am not getting anywhere close to those speeds. I have a good GB ethernet network for the desks and servers in my house. So I really just need a wifi connection that is as fast as the 80Mbps DSL connection I have. If I need to do fast NAS transfers, I can just grab a cord.
I have a lot of wifi devices in my house. I have created a lot of wifi IoT devices and I have about 80 devices on my wifi. They are mostly tiny ESP32/ESP8266 devices running open source firmware. There are a handful of chromecasts and a dozen or so user devices (phones, tablets, laptops). There are few SBCs and servers doing things like NAS and Home Assistant. I suppose I could change the AP ssid and then force the channels to be separate, on a separate LAN to try to isolate these devices as the issue.
Config dumps (from my router)
iwinfo
root@OpenWrt:~# iwinfo
wlan0 ESSID: "xxxxxx"
Access Point: D8:07:B6:F8:8B:5F
Mode: Master Channel: 36 (5.180 GHz) HT Mode: VHT80
Center Channel 1: 42 2: unknown
Tx-Power: 23 dBm Link Quality: 44/70
Signal: -66 dBm Noise: -99 dBm
Bit Rate: 293.8 MBit/s
Encryption: WPA2 PSK (CCMP)
Type: nl80211 HW Mode(s): 802.11ac/n
Hardware: 168C:003C 0000:0000 [Qualcomm Atheros QCA9880]
TX power offset: none
Frequency offset: none
Supports VAPs: yes PHY name: phy0
wlan1 ESSID: "xxxxxx"
Access Point: D8:07:B6:F8:8B:60
Mode: Master Channel: 1 (2.412 GHz) HT Mode: HT20
Center Channel 1: 1 2: unknown
Tx-Power: 24 dBm Link Quality: 65/70
Signal: -45 dBm Noise: -95 dBm
Bit Rate: 60.8 MBit/s
Encryption: WPA2 PSK (CCMP)
Type: nl80211 HW Mode(s): 802.11b/g/n
Hardware: 168C:0033 168C:9560 [Qualcomm Atheros QCA9560]
TX power offset: none
Frequency offset: none
Supports VAPs: yes PHY name: phy1
os-release
root@OpenWrt:~# cat /etc/os-release
NAME="OpenWrt"
VERSION="22.03.3"
ID="openwrt"
ID_LIKE="lede openwrt"
PRETTY_NAME="OpenWrt 22.03.3"
VERSION_ID="22.03.3"
HOME_URL="https://openwrt.org/"
BUG_URL="https://bugs.openwrt.org/"
SUPPORT_URL="https://forum.openwrt.org/"
BUILD_ID="r20028-43d71ad93e"
OPENWRT_BOARD="ath79/generic"
OPENWRT_ARCH="mips_24kc"
OPENWRT_TAINTS=""
OPENWRT_DEVICE_MANUFACTURER="OpenWrt"
OPENWRT_DEVICE_MANUFACTURER_URL="https://openwrt.org/"
OPENWRT_DEVICE_PRODUCT="Generic"
OPENWRT_DEVICE_REVISION="v0"
OPENWRT_RELEASE="OpenWrt 22.03.3 r20028-43d71ad93e"
iw list
root@OpenWrt:~# iw list
Wiphy phy1
wiphy index: 1
max # scan SSIDs: 4
max scan IEs length: 2257 bytes
max # sched scan SSIDs: 0
max # match sets: 0
Retry short limit: 7
Retry long limit: 4
Coverage class: 0 (up to 0m)
Device supports AP-side u-APSD.
Device supports T-DLS.
Available Antennas: TX 0x7 RX 0x7
Configured Antennas: TX 0x7 RX 0x7
Supported interface modes:
* IBSS
* managed
* AP
* AP/VLAN
* monitor
* mesh point
* P2P-client
* P2P-GO
* outside context of a BSS
Band 1:
Capabilities: 0x11ee
HT20/HT40
SM Power Save disabled
RX HT20 SGI
RX HT40 SGI
TX STBC
RX STBC 1-stream
Max AMSDU length: 3839 bytes
DSSS/CCK HT40
Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
Minimum RX AMPDU time spacing: 8 usec (0x06)
HT TX/RX MCS rate indexes supported: 0-23
Frequencies:
* 2412 MHz [1] (24.0 dBm)
* 2417 MHz [2] (24.0 dBm)
* 2422 MHz [3] (24.0 dBm)
* 2427 MHz [4] (24.0 dBm)
* 2432 MHz [5] (24.0 dBm)
* 2437 MHz [6] (24.0 dBm)
* 2442 MHz [7] (24.0 dBm)
* 2447 MHz [8] (24.0 dBm)
* 2452 MHz [9] (24.0 dBm)
* 2457 MHz [10] (24.0 dBm)
* 2462 MHz [11] (24.0 dBm)
* 2467 MHz [12] (disabled)
* 2472 MHz [13] (disabled)
* 2484 MHz [14] (disabled)
valid interface combinations:
* #{ managed } <= 2048, #{ AP, mesh point } <= 8, #{ P2P-client, P2P-GO } <= 1, #{ IBSS } <= 1,
total <= 2048, #channels <= 1, STA/AP BI must match, radar detect widths: { 20 MHz (no HT), 20 MHz, 40 MHz }
HT Capability overrides:
* MCS: ff ff ff ff ff ff ff ff ff ff
* maximum A-MSDU length
* supported channel width
* short GI for 40 MHz
* max A-MPDU length exponent
* min MPDU start spacing
max # scan plans: 1
max scan plan interval: -1
max scan plan iterations: 0
Supported extended features:
* [ RRM ]: RRM
* [ FILS_STA ]: STA FILS (Fast Initial Link Setup)
* [ CQM_RSSI_LIST ]: multiple CQM_RSSI_THOLD records
* [ CONTROL_PORT_OVER_NL80211 ]: control port over nl80211
* [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
* [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
* [ SCAN_RANDOM_SN ]: use random sequence numbers in scans
* [ SCAN_MIN_PREQ_CONTENT ]: use probe request with only rate IEs in scans
* [ CAN_REPLACE_PTK0 ]: can safely replace PTK 0 when rekeying
* [ CONTROL_PORT_NO_PREAUTH ]: disable pre-auth over nl80211 control port support
* [ DEL_IBSS_STA ]: deletion of IBSS station support
* [ MULTICAST_REGISTRATIONS ]: mgmt frame registration for multicast
* [ SCAN_FREQ_KHZ ]: scan on kHz frequency support
* [ CONTROL_PORT_OVER_NL80211_TX_STATUS ]: tx status for nl80211 control port support
Wiphy phy0
wiphy index: 0
max # scan SSIDs: 16
max scan IEs length: 199 bytes
max # sched scan SSIDs: 0
max # match sets: 0
Retry short limit: 7
Retry long limit: 4
Coverage class: 0 (up to 0m)
Device supports AP-side u-APSD.
Available Antennas: TX 0x7 RX 0x7
Configured Antennas: TX 0x7 RX 0x7
Supported interface modes:
* IBSS
* managed
* AP
* AP/VLAN
* monitor
* mesh point
* P2P-client
* P2P-GO
* P2P-device
Band 2:
Capabilities: 0x19ef
RX LDPC
HT20/HT40
SM Power Save disabled
RX HT20 SGI
RX HT40 SGI
TX STBC
RX STBC 1-stream
Max AMSDU length: 7935 bytes
DSSS/CCK HT40
Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
Minimum RX AMPDU time spacing: 8 usec (0x06)
HT TX/RX MCS rate indexes supported: 0-23
VHT Capabilities (0x338001b2):
Max MPDU length: 11454
Supported Channel Width: neither 160 nor 80+80
RX LDPC
short GI (80 MHz)
TX STBC
RX antenna pattern consistency
TX antenna pattern consistency
VHT RX MCS set:
1 streams: MCS 0-9
2 streams: MCS 0-9
3 streams: MCS 0-9
4 streams: not supported
5 streams: not supported
6 streams: not supported
7 streams: not supported
8 streams: not supported
VHT RX highest supported: 0 Mbps
VHT TX MCS set:
1 streams: MCS 0-9
2 streams: MCS 0-9
3 streams: MCS 0-9
4 streams: not supported
5 streams: not supported
6 streams: not supported
7 streams: not supported
8 streams: not supported
VHT TX highest supported: 0 Mbps
Frequencies:
* 5180 MHz [36] (23.0 dBm)
* 5200 MHz [40] (23.0 dBm)
* 5220 MHz [44] (23.0 dBm)
* 5240 MHz [48] (23.0 dBm)
* 5260 MHz [52] (24.0 dBm) (radar detection)
* 5280 MHz [56] (24.0 dBm) (radar detection)
* 5300 MHz [60] (24.0 dBm) (radar detection)
* 5320 MHz [64] (24.0 dBm) (radar detection)
* 5500 MHz [100] (24.0 dBm) (radar detection)
* 5520 MHz [104] (24.0 dBm) (radar detection)
* 5540 MHz [108] (24.0 dBm) (radar detection)
* 5560 MHz [112] (24.0 dBm) (radar detection)
* 5580 MHz [116] (24.0 dBm) (radar detection)
* 5600 MHz [120] (24.0 dBm) (radar detection)
* 5620 MHz [124] (24.0 dBm) (radar detection)
* 5640 MHz [128] (24.0 dBm) (radar detection)
* 5660 MHz [132] (24.0 dBm) (radar detection)
* 5680 MHz [136] (24.0 dBm) (radar detection)
* 5700 MHz [140] (24.0 dBm) (radar detection)
* 5720 MHz [144] (24.0 dBm) (radar detection)
* 5745 MHz [149] (30.0 dBm)
* 5765 MHz [153] (30.0 dBm)
* 5785 MHz [157] (30.0 dBm)
* 5805 MHz [161] (30.0 dBm)
* 5825 MHz [165] (30.0 dBm)
* 5845 MHz [169] (27.0 dBm) (no IR)
* 5865 MHz [173] (27.0 dBm) (no IR)
valid interface combinations:
* #{ managed, P2P-client } <= 16, #{ P2P-GO } <= 3, #{ AP } <= 16, #{ IBSS } <= 1,
total <= 16, #channels <= 1, STA/AP BI must match, radar detect widths: { 20 MHz (no HT), 20 MHz, 40 MHz, 80 MHz, 80+80 MHz, 160 MHz }
HT Capability overrides:
* MCS: ff ff ff ff ff ff ff ff ff ff
* maximum A-MSDU length
* supported channel width
* short GI for 40 MHz
* max A-MPDU length exponent
* min MPDU start spacing
max # scan plans: 1
max scan plan interval: -1
max scan plan iterations: 0
Maximum associated stations in AP mode: 0
Supported extended features:
* [ VHT_IBSS ]: VHT-IBSS
* [ RRM ]: RRM
* [ SET_SCAN_DWELL ]: scan dwell setting
* [ FILS_STA ]: STA FILS (Fast Initial Link Setup)
* [ CQM_RSSI_LIST ]: multiple CQM_RSSI_THOLD records
* [ CONTROL_PORT_OVER_NL80211 ]: control port over nl80211
* [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
* [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
* [ AQL ]: Airtime Queue Limits (AQL)
* [ CONTROL_PORT_NO_PREAUTH ]: disable pre-auth over nl80211 control port support
* [ DEL_IBSS_STA ]: deletion of IBSS station support
* [ SCAN_FREQ_KHZ ]: scan on kHz frequency support
* [ CONTROL_PORT_OVER_NL80211_TX_STATUS ]: tx status for nl80211 control port support
/etc/config/wireless
root@OpenWrt:~# cat /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 'auto'
config wifi-iface 'default_radio0'
option device 'radio0'
option network 'lan'
option mode 'ap'
option encryption 'psk2'
option key 'redacted'
option ieee80211r '1'
option nasid 'alsoredacted'
option ft_over_ds '0'
option ft_psk_generate_local '1'
option ssid 'xxxxxx'
config wifi-device 'radio1'
option type 'mac80211'
option path 'platform/ahb/18100000.wmac'
option band '2g'
option htmode 'HT20'
option cell_density '0'
option channel 'auto'
config wifi-iface 'default_radio1'
option device 'radio1'
option network 'lan'
option mode 'ap'
option encryption 'psk2'
option key 'redacted'
option ieee80211r '1'
option nasid 'alsoredacted'
option ft_over_ds '0'
option ft_psk_generate_local '1'
option ssid 'xxxxxx'
If you want these same dumps from the AP, I can get them.
Direct Questions
- What settings should I look at to test a difference?
- What logs or info would be helpful for debugging?
- I have seen a lot of warnings that theoretical maxes are higher than reality (which is totally fine). But they refer to something like a 25-50% reduction in speed, not 90% reduction. Am I right to want more from wifi?
Thank you for reading and responding. This community and project are awesome.