WireGuard speeds on various builds I have tested today. All via a 1GB port.
Test suite: https://github.com/cyyself/wg-bench
On device to on device (loopback)
These tests are indicative of kernel performance where packet steering does not affect locally tested WireGuard speeds.
- Current master snapshot shows a slightly speed regression
- GL.iNETs 4.6.4-op24 release2 firmware shows a large speed regression
I am unable to test pesa1234s custom build yet.
From fastest to slowest:
OpenWrt 23.05.5 r24106-10cc5fcd00
"kernel": "5.15.167"
[ WITHOUT PACKET STEERING ]
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 994 MBytes 834 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 993 MBytes 833 Mbits/sec receiver
=======
GLiNET 4.6.4 release 1
"kernel": "5.4.238"
"description": "OpenWrt 21.02-SNAPSHOT r15812+1075-46b6ee7ffc"
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 956 MBytes 802 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 954 MBytes 800 Mbits/sec receiver
=======
GLiNET 4.5.8 release 4
"kernel": "5.4.238"
"description": "OpenWrt 21.02-SNAPSHOT r15812+1071-46b6ee7ffc"
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 953 MBytes 799 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 951 MBytes 798 Mbits/sec receiver
=======
GLiNET 4.7.0 beta3
"kernel": "5.4.238"
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 947 MBytes 795 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 946 MBytes 793 Mbits/sec receiver
=======
2024-10-10 snapshot
OpenWrt SNAPSHOT r27719-3f6e087b6f / LuCI Master 24.281.62975~383edb4
[ WITHOUT PACKET STEERING ]
"kernel": "6.6.54"
"description": "OpenWrt SNAPSHOT r27719-3f6e087b6f"
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 894 MBytes 750 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 892 MBytes 748 Mbits/sec receiver
=======
4.6.4-op24 release2
"kernel": "6.6.47"
"description": "OpenWrt 24.0 r27229+44-ebe7c5f1a3"
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 787 MBytes 660 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 786 MBytes 659 Mbits/sec receiver
=======
Test between two devices
Using the fastest above firmware:
OpenWrt 23.05.5 r24106-10cc5fcd00
"kernel": "5.15.167"
AP as SERVER through a WireGuard tunnel
The following tests do not show that I saturate all cores according to htop, so evidently there is room for improvement (irq affinities or packet steering).
Running the iperf3 -c 192.168.1.1 -u -b 500000000
results in roughly 500mbit before packet loss starts
OpenWrt 23.05.5 r24106-10cc5fcd00
"kernel": "5.15.167"
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-10.00 sec 579 MBytes 486 Mbits/sec 0.014 ms 12939/456868 (2.8%) receiver
Running iperf3 -c 192.168.1.1 -t -z
is slightly worse
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-33.00 sec 1.69 GBytes 440 Mbits/sec receiver
AP as CLIENT through a WireGuard tunnel
performs better
Run iperf3 -c 192.168.1.3
TCP test
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 913 MBytes 766 Mbits/sec 525 sender
[ 5] 0.00-10.01 sec 910 MBytes 763 Mbits/sec receiver
Run iperf3 -c 192.168.1.3 -u -b 1000000000 -M 1000
UDP test
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-10.00 sec 1001 MBytes 839 Mbits/sec 0.000 ms 0/766915 (0%) sender
[ 5] 0.00-10.00 sec 992 MBytes 832 Mbits/sec 0.009 ms 6524/766893 (0.85%) receiver