WiFi radio test

Don’t underestimate the Turris:

I did some quick benchmarks - the setup:

  • Turris Omnia: As delivered with stock 5 Ghz wifi card and antennas
  • MacBook Pro (Mid 2014, OSX 10.11.6)
  • 5 Ghz Wifi set to 80 MHz channels and 27dBm (legally, thanks to DFS support - I wonder if the inital 60s radar scan is repeated any time later during usage… can’t find info on that)
  • No other 5 Ghz network in the neighborhood
  • Ridiculously ideal conditions: MacBook is ~1m directly in front of Turris with line-of-sight

MacBook -> Turris (iperf server)
Peaks at 777 Mb/s, average 645 Mb/s
WAN latency goes from ~5ms to ~15ms (SQM enabled on WAN interface)
------------------------------------------------------------
Client connecting to daller, TCP port 5001
TCP window size: 129 KByte (default)
------------------------------------------------------------
[ 5] local 10.30.12.158 port 61293 connected with 10.30.1.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 5] 0.0- 5.0 sec 388 MBytes 651 Mbits/sec
[ 5] 5.0-10.0 sec 349 MBytes 586 Mbits/sec
[ 5] 10.0-15.0 sec 366 MBytes 613 Mbits/sec
[ 5] 15.0-20.0 sec 374 MBytes 628 Mbits/sec
[ 5] 20.0-25.0 sec 400 MBytes 672 Mbits/sec
[ 5] 25.0-30.0 sec 412 MBytes 692 Mbits/sec
[ 5] 30.0-35.0 sec 463 MBytes 777 Mbits/sec
[ 5] 35.0-40.0 sec 376 MBytes 632 Mbits/sec
[ 5] 40.0-45.0 sec 365 MBytes 612 Mbits/sec
[ 5] 45.0-50.0 sec 364 MBytes 611 Mbits/sec
[ 5] 50.0-55.0 sec 373 MBytes 626 Mbits/sec
[ 5] 55.0-60.0 sec 385 MBytes 646 Mbits/sec
[ 5] 0.0-60.0 sec 4.51 GBytes 645 Mbits/sec

PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=58 time=5.608 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=58 time=5.953 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=58 time=6.699 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=58 time=5.589 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=58 time=5.338 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=58 time=5.674 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=58 time=5.449 ms
64 bytes from 8.8.8.8: icmp_seq=7 ttl=58 time=5.675 ms
64 bytes from 8.8.8.8: icmp_seq=8 ttl=58 time=5.686 ms
64 bytes from 8.8.8.8: icmp_seq=9 ttl=58 time=5.734 ms
64 bytes from 8.8.8.8: icmp_seq=10 ttl=58 time=5.668 ms
64 bytes from 8.8.8.8: icmp_seq=11 ttl=58 time=5.565 ms
64 bytes from 8.8.8.8: icmp_seq=12 ttl=58 time=5.626 ms
64 bytes from 8.8.8.8: icmp_seq=13 ttl=58 time=5.483 ms
64 bytes from 8.8.8.8: icmp_seq=14 ttl=58 time=5.580 ms
64 bytes from 8.8.8.8: icmp_seq=15 ttl=58 time=15.009 ms
64 bytes from 8.8.8.8: icmp_seq=16 ttl=58 time=11.919 ms
64 bytes from 8.8.8.8: icmp_seq=17 ttl=58 time=16.563 ms
64 bytes from 8.8.8.8: icmp_seq=18 ttl=58 time=16.295 ms
64 bytes from 8.8.8.8: icmp_seq=19 ttl=58 time=14.256 ms
64 bytes from 8.8.8.8: icmp_seq=20 ttl=58 time=16.093 ms
64 bytes from 8.8.8.8: icmp_seq=21 ttl=58 time=13.970 ms
64 bytes from 8.8.8.8: icmp_seq=22 ttl=58 time=14.872 ms
64 bytes from 8.8.8.8: icmp_seq=23 ttl=58 time=13.857 ms
64 bytes from 8.8.8.8: icmp_seq=24 ttl=58 time=12.877 ms
64 bytes from 8.8.8.8: icmp_seq=25 ttl=58 time=14.337 ms
64 bytes from 8.8.8.8: icmp_seq=26 ttl=58 time=13.647 ms
64 bytes from 8.8.8.8: icmp_seq=27 ttl=58 time=17.456 ms
64 bytes from 8.8.8.8: icmp_seq=28 ttl=58 time=11.873 ms
64 bytes from 8.8.8.8: icmp_seq=29 ttl=58 time=16.316 ms
64 bytes from 8.8.8.8: icmp_seq=30 ttl=58 time=15.365 ms
64 bytes from 8.8.8.8: icmp_seq=31 ttl=58 time=13.159 ms
64 bytes from 8.8.8.8: icmp_seq=32 ttl=58 time=17.427 ms
64 bytes from 8.8.8.8: icmp_seq=33 ttl=58 time=12.123 ms
64 bytes from 8.8.8.8: icmp_seq=34 ttl=58 time=12.765 ms
64 bytes from 8.8.8.8: icmp_seq=35 ttl=58 time=16.684 ms
64 bytes from 8.8.8.8: icmp_seq=36 ttl=58 time=12.312 ms
64 bytes from 8.8.8.8: icmp_seq=37 ttl=58 time=12.603 ms
64 bytes from 8.8.8.8: icmp_seq=38 ttl=58 time=11.244 ms
64 bytes from 8.8.8.8: icmp_seq=39 ttl=58 time=13.720 ms
64 bytes from 8.8.8.8: icmp_seq=40 ttl=58 time=14.320 ms
64 bytes from 8.8.8.8: icmp_seq=41 ttl=58 time=12.353 ms
64 bytes from 8.8.8.8: icmp_seq=42 ttl=58 time=10.380 ms
64 bytes from 8.8.8.8: icmp_seq=43 ttl=58 time=14.875 ms
64 bytes from 8.8.8.8: icmp_seq=44 ttl=58 time=11.396 ms
64 bytes from 8.8.8.8: icmp_seq=45 ttl=58 time=13.038 ms
64 bytes from 8.8.8.8: icmp_seq=46 ttl=58 time=9.667 ms
64 bytes from 8.8.8.8: icmp_seq=47 ttl=58 time=14.574 ms
64 bytes from 8.8.8.8: icmp_seq=48 ttl=58 time=15.222 ms
64 bytes from 8.8.8.8: icmp_seq=49 ttl=58 time=9.462 ms
64 bytes from 8.8.8.8: icmp_seq=50 ttl=58 time=15.640 ms
64 bytes from 8.8.8.8: icmp_seq=51 ttl=58 time=18.528 ms
64 bytes from 8.8.8.8: icmp_seq=52 ttl=58 time=10.984 ms
64 bytes from 8.8.8.8: icmp_seq=53 ttl=58 time=12.594 ms
64 bytes from 8.8.8.8: icmp_seq=54 ttl=58 time=14.696 ms
64 bytes from 8.8.8.8: icmp_seq=55 ttl=58 time=13.478 ms
64 bytes from 8.8.8.8: icmp_seq=56 ttl=58 time=17.183 ms
64 bytes from 8.8.8.8: icmp_seq=57 ttl=58 time=15.860 ms
64 bytes from 8.8.8.8: icmp_seq=58 ttl=58 time=15.452 ms
64 bytes from 8.8.8.8: icmp_seq=59 ttl=58 time=18.088 ms
64 bytes from 8.8.8.8: icmp_seq=60 ttl=58 time=15.048 ms
64 bytes from 8.8.8.8: icmp_seq=61 ttl=58 time=11.053 ms
64 bytes from 8.8.8.8: icmp_seq=62 ttl=58 time=14.627 ms
64 bytes from 8.8.8.8: icmp_seq=63 ttl=58 time=12.567 ms
64 bytes from 8.8.8.8: icmp_seq=64 ttl=58 time=20.604 ms
64 bytes from 8.8.8.8: icmp_seq=65 ttl=58 time=20.301 ms
64 bytes from 8.8.8.8: icmp_seq=66 ttl=58 time=13.901 ms
64 bytes from 8.8.8.8: icmp_seq=67 ttl=58 time=10.842 ms
64 bytes from 8.8.8.8: icmp_seq=68 ttl=58 time=11.648 ms
64 bytes from 8.8.8.8: icmp_seq=69 ttl=58 time=16.727 ms
64 bytes from 8.8.8.8: icmp_seq=70 ttl=58 time=15.835 ms
64 bytes from 8.8.8.8: icmp_seq=71 ttl=58 time=11.639 ms
64 bytes from 8.8.8.8: icmp_seq=72 ttl=58 time=12.072 ms
64 bytes from 8.8.8.8: icmp_seq=73 ttl=58 time=16.699 ms
64 bytes from 8.8.8.8: icmp_seq=74 ttl=58 time=18.162 ms
64 bytes from 8.8.8.8: icmp_seq=75 ttl=58 time=5.762 ms
64 bytes from 8.8.8.8: icmp_seq=76 ttl=58 time=5.556 ms
64 bytes from 8.8.8.8: icmp_seq=77 ttl=58 time=5.570 ms
64 bytes from 8.8.8.8: icmp_seq=78 ttl=58 time=5.524 ms
64 bytes from 8.8.8.8: icmp_seq=79 ttl=58 time=5.659 ms
64 bytes from 8.8.8.8: icmp_seq=80 ttl=58 time=5.749 ms
64 bytes from 8.8.8.8: icmp_seq=81 ttl=58 time=5.252 ms
^C
--- 8.8.8.8 ping statistics ---
82 packets transmitted, 82 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 5.252/11.959/20.604/4.370 ms

Turris -> MacBook (iperf server)
This is weird, throughput is lower and only grows slowly while latency stays flat until a spike at the test end.
Probably some broken Wifi buffering… I’m hoping to see some make-wifi-fast progress on the Turris.

Test 1:
------------------------------------------------------------
Client connecting to 10.30.12.158, TCP port 5001
TCP window size: 43.8 KByte (default)
------------------------------------------------------------
[  3] local 10.30.12.1 port 42524 connected with 10.30.12.158 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 5.0 sec  27.1 MBytes  45.5 Mbits/sec
[  3]  5.0-10.0 sec  50.9 MBytes  85.4 Mbits/sec
[  3] 10.0-15.0 sec   112 MBytes   188 Mbits/sec
[  3] 15.0-20.0 sec   166 MBytes   279 Mbits/sec
[  3] 20.0-25.0 sec   233 MBytes   391 Mbits/sec
[  3] 25.0-30.0 sec   244 MBytes   410 Mbits/sec
[  3] 30.0-35.0 sec   230 MBytes   386 Mbits/sec
[  3] 35.0-40.0 sec   232 MBytes   389 Mbits/sec
[  3] 40.0-45.0 sec   227 MBytes   381 Mbits/sec
[  3] 45.0-50.0 sec   212 MBytes   356 Mbits/sec
[  3] 50.0-55.0 sec   213 MBytes   357 Mbits/sec
[  3] 55.0-60.0 sec   213 MBytes   358 Mbits/sec
[  3]  0.0-60.0 sec  2.11 GBytes   302 Mbits/sec

Test 2:
------------------------------------------------------------
Client connecting to 10.30.12.158, TCP port 5001
TCP window size: 43.8 KByte (default)
------------------------------------------------------------
[  3] local 10.30.12.1 port 42526 connected with 10.30.12.158 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 5.0 sec  19.6 MBytes  32.9 Mbits/sec
[  3]  5.0-10.0 sec  19.5 MBytes  32.7 Mbits/sec
[  3] 10.0-15.0 sec  20.1 MBytes  33.8 Mbits/sec
[  3] 15.0-20.0 sec  29.9 MBytes  50.1 Mbits/sec
[  3] 20.0-25.0 sec  33.1 MBytes  55.6 Mbits/sec
[  3] 25.0-30.0 sec  34.0 MBytes  57.0 Mbits/sec
[  3] 30.0-35.0 sec  34.5 MBytes  57.9 Mbits/sec
[  3] 35.0-40.0 sec  46.6 MBytes  78.2 Mbits/sec
[  3] 40.0-45.0 sec  66.1 MBytes   111 Mbits/sec
[  3] 45.0-50.0 sec  65.2 MBytes   109 Mbits/sec
[  3] 50.0-55.0 sec  71.4 MBytes   120 Mbits/sec
[  3] 55.0-60.0 sec   168 MBytes   283 Mbits/sec
[  3]  0.0-60.0 sec   609 MBytes  85.1 Mbits/sec


...
64 bytes from 8.8.8.8: icmp_seq=1793 ttl=58 time=5.786 ms
64 bytes from 8.8.8.8: icmp_seq=1794 ttl=58 time=5.822 ms
64 bytes from 8.8.8.8: icmp_seq=1795 ttl=58 time=5.710 ms
64 bytes from 8.8.8.8: icmp_seq=1796 ttl=58 time=5.687 ms
64 bytes from 8.8.8.8: icmp_seq=1797 ttl=58 time=5.962 ms
64 bytes from 8.8.8.8: icmp_seq=1798 ttl=58 time=5.567 ms
64 bytes from 8.8.8.8: icmp_seq=1799 ttl=58 time=57.282 ms
64 bytes from 8.8.8.8: icmp_seq=1800 ttl=58 time=74.333 ms
64 bytes from 8.8.8.8: icmp_seq=1801 ttl=58 time=11.219 ms
64 bytes from 8.8.8.8: icmp_seq=1802 ttl=58 time=38.436 ms
64 bytes from 8.8.8.8: icmp_seq=1803 ttl=58 time=5.087 ms
64 bytes from 8.8.8.8: icmp_seq=1804 ttl=58 time=108.865 ms
64 bytes from 8.8.8.8: icmp_seq=1805 ttl=58 time=76.701 ms
64 bytes from 8.8.8.8: icmp_seq=1806 ttl=58 time=107.671 ms
64 bytes from 8.8.8.8: icmp_seq=1807 ttl=58 time=73.613 ms
64 bytes from 8.8.8.8: icmp_seq=1808 ttl=58 time=59.026 ms
64 bytes from 8.8.8.8: icmp_seq=1809 ttl=58 time=5.148 ms
64 bytes from 8.8.8.8: icmp_seq=1810 ttl=58 time=5.578 ms
64 bytes from 8.8.8.8: icmp_seq=1811 ttl=58 time=5.965 ms
64 bytes from 8.8.8.8: icmp_seq=1812 ttl=58 time=5.592 ms
...

I should probably do some proper testing with flent and a endpoint on the LAN instead of on the Turris itself…

1 Like