I'm trying to set up a wireless access point on a Slackware 14.2 based system. After much fiddling, all clients in my house can now connect.
However throughput is substantially worse than I would expect. A quick test with iperf is indicative of the performance:
Code:
------------------------------------------------------------
Client connecting to 192.168.1.1, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.3.131 port 37778 connected with 192.168.1.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 18.6 MBytes 15.6 Mbits/sec
Multiple parallel connections improve on that somewhat:
Code:
$ iperf -c 192.168.1.1 -P 5
------------------------------------------------------------
Client connecting to 192.168.1.1, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[ 7] local 192.168.3.131 port 37844 connected with 192.168.1.1 port 5001
[ 4] local 192.168.3.131 port 37838 connected with 192.168.1.1 port 5001
[ 3] local 192.168.3.131 port 37836 connected with 192.168.1.1 port 5001
[ 5] local 192.168.3.131 port 37840 connected with 192.168.1.1 port 5001
[ 6] local 192.168.3.131 port 37842 connected with 192.168.1.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 5] 0.0-10.0 sec 7.12 MBytes 5.96 Mbits/sec
[ 6] 0.0-10.0 sec 7.12 MBytes 5.95 Mbits/sec
[ 4] 0.0-10.1 sec 7.12 MBytes 5.94 Mbits/sec
[ 7] 0.0-10.1 sec 7.12 MBytes 5.93 Mbits/sec
[ 3] 0.0-10.1 sec 7.12 MBytes 5.93 Mbits/sec
[SUM] 0.0-10.1 sec 35.6 MBytes 29.7 Mbits/sec
The highest summative throughput I've seen is just shy 50Mbits/sec. This is a 802.11n network, so at minimum I would expect throughput approaching 150Mbits. In fact, Android and Windows clients report a link speed of 150Mbits/sec.
Throughput over UDP is larger. I saw 100Mbits/sec with 100 parallel connections with iperf, though I cannot reproduce that now. Using speedtest.net while connected to the wireless network yields a speed of ~60Mbits/sec. I guess that is using UDP also.
In any case, I'm pretty sure that the NIC is capable of 300Mbits/sec theoretical throughput on 2.4GHz, I'm not sure why that is not being achieved either.
Some additional info:
Code:
$ uname -a
Linux xenon 4.4.38 #1 SMP Sun Feb 19 14:25:36 GMT 2017 x86_64 Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz GenuineIntel GNU/Linux
Code:
hostapd -v
hostapd v2.6
User space daemon for IEEE 802.11 AP management,
IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
Copyright (c) 2002-2016, Jouni Malinen <j@w1.fi> and contributors
Relevant output of
Code:
03:00.0 Network controller [0280]: Qualcomm Atheros QCA986x/988x 802.11ac Wireless Network Adapter [168c:003c]
Flags: bus master, fast devsel, latency 0, IRQ 137
Memory at df000000 (64-bit, non-prefetchable) [size=2M]
Expansion ROM at df200000 [disabled] [size=64K]
Capabilities: [40] Power Management version 2
Capabilities: [50] MSI: Enable+ Count=8/8 Maskable+ 64bit-
Capabilities: [70] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Virtual Channel
Capabilities: [160] Device Serial Number 00-00-00-00-00-00-00-00
Kernel driver in use: ath10k_pci
Kernel modules: ath10k_pci
I guess the hostapd config file is usefull ;-) (though to be clear, performance doesn't seem to depend strongly on the settings):
Code:
$ cat /etc/hostapd/hostapd.conf
interface=wlan0
driver=nl80211
ssid=TheCrypt
hw_mode=g
channel=1
ieee80211d=1
country_code=GB
ieee80211n=1
wmm_enabled=1
ht_capab=[HT40+][SMPS-STATIC][SHORT-GI-20][SHORT-GI-40][TX-STBC][RX-STBC1][MAX-AMSDU-7935][DSSS_CCK-40][LDPC]
ieee80211ac=1
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_psk_file=/etc/hostapd/hostapd.wpa_psk
rsn_pairwise=CCMP TKIP
# 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
# Note: for IEEE 802.11b mode: cWmin=5 cWmax=10
#
# Normal priority / AC_BE = best effort
wmm_ac_be_aifs=3
wmm_ac_be_cwmin=3
wmm_ac_be_cwmax=10
wmm_ac_be_txop_limit=0
wmm_ac_be_acm=0
# Note: for IEEE 802.11b mode: cWmin=5 cWmax=7
#
# 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
# Note: for IEEE 802.11b mode: cWmin=4 cWmax=5 txop_limit=188
#
# 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
# Note: for IEEE 802.11b mode: cWmin=3 cWmax=4 burst=102
I applied a patch that forces hostapd to run the NIC in dual channel mode (before it would check for interference). That brought the stated links speed up from 72Mbits/sec to 150Mbits/sec, but it made no difference to actual throughput.
My suspicion is that interference from neighboring access points (there are around 7 of them) is causing this, however I don't know how to test that. I don't control the other access points, so shutting them off is not an option.
Any help would be greatly appreciated.
Max