A Wireguard comparison DB

root@AP1:~/wg-bench# ubus call system board
{
        "kernel": "6.1.78",
        "hostname": "AP1",
        "system": "ARMv8 Processor rev 4",
        "model": "ASUS TUF-AX4200",
        "board_name": "asus,tuf-ax4200",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "SNAPSHOT",
                "revision": "r25242-0ef9274721",
                "target": "mediatek/filogic",
                "description": "OpenWrt SNAPSHOT r25242-0ef9274721"
        }
}
root@AP1:~/wg-bench# ./benchmark.sh
Connecting to host 169.254.200.2, port 5201
[  5] local 169.254.200.1 port 50624 connected to 169.254.200.2 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   112 MBytes   937 Mbits/sec    0    763 KBytes
[  5]   1.00-2.00   sec   113 MBytes   947 Mbits/sec    0    989 KBytes
[  5]   2.00-3.00   sec   112 MBytes   944 Mbits/sec    0   1.14 MBytes
[  5]   3.00-4.00   sec   110 MBytes   927 Mbits/sec    0   1.20 MBytes
[  5]   4.00-5.00   sec   112 MBytes   944 Mbits/sec    0   1.32 MBytes
[  5]   5.00-6.00   sec   105 MBytes   884 Mbits/sec    0   1.32 MBytes
[  5]   6.00-7.00   sec   105 MBytes   876 Mbits/sec   38   1.06 MBytes
[  5]   7.00-8.00   sec   114 MBytes   958 Mbits/sec    0   1.15 MBytes
[  5]   8.00-9.00   sec   114 MBytes   959 Mbits/sec    0   1.24 MBytes
[  5]   9.00-10.00  sec   119 MBytes  1.00 Gbits/sec    0   1.26 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.09 GBytes   938 Mbits/sec   38             sender
[  5]   0.00-10.00  sec  1.09 GBytes   936 Mbits/sec                  receiver

iperf Done.
4 Likes

Same SoC as the Flint 2 but this one is a lot faster.....looks like the GL firmware really needs some improvements.

| GL-MT6000 (Flint 2) | Mediatek MT7986AV (Quad Core A53, 2GHz) | Snapshot (6.1.78) | 807 Mbps |

ubus call system board
{
        "kernel": "6.1.78",
        "hostname": "GL-MT6000",
        "system": "ARMv8 Processor rev 4",
        "model": "GL.iNet GL-MT6000",
        "board_name": "glinet,gl-mt6000",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "SNAPSHOT",
                "revision": "r25267-2a752ff028",
                "target": "mediatek/filogic",
                "description": "OpenWrt SNAPSHOT r25267-2a752ff028"
        }
}
./benchmark.sh
Connecting to host 169.254.200.2, port 5201
[  5] local 169.254.200.1 port 42192 connected to 169.254.200.2 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  96.4 MBytes   808 Mbits/sec    0    516 KBytes
[  5]   1.00-2.00   sec  95.6 MBytes   802 Mbits/sec    0    541 KBytes
[  5]   2.00-3.00   sec  95.9 MBytes   805 Mbits/sec    0    541 KBytes
[  5]   3.00-4.00   sec  96.2 MBytes   807 Mbits/sec    0    541 KBytes
[  5]   4.00-5.00   sec  95.8 MBytes   804 Mbits/sec    0    541 KBytes
[  5]   5.00-6.00   sec  96.5 MBytes   810 Mbits/sec    0    569 KBytes
[  5]   6.00-7.00   sec  96.1 MBytes   806 Mbits/sec    0    569 KBytes
[  5]   7.00-8.00   sec  96.0 MBytes   805 Mbits/sec    0    600 KBytes
[  5]   8.00-9.00   sec  96.8 MBytes   812 Mbits/sec    0    600 KBytes
[  5]   9.00-10.00  sec  96.5 MBytes   809 Mbits/sec    0    600 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   962 MBytes   807 Mbits/sec    0             sender
[  5]   0.00-10.00  sec   960 MBytes   806 Mbits/sec                  receiver
./benchmark.sh -R
Connecting to host 169.254.200.2, port 5201
Reverse mode, remote host 169.254.200.2 is sending
[  5] local 169.254.200.1 port 48294 connected to 169.254.200.2 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  97.4 MBytes   816 Mbits/sec
[  5]   1.00-2.00   sec  96.1 MBytes   806 Mbits/sec
[  5]   2.00-3.00   sec  97.4 MBytes   817 Mbits/sec
[  5]   3.00-4.00   sec  97.8 MBytes   820 Mbits/sec
[  5]   4.00-5.00   sec  97.4 MBytes   817 Mbits/sec
[  5]   5.00-6.00   sec  96.5 MBytes   809 Mbits/sec
[  5]   6.00-7.00   sec  96.6 MBytes   811 Mbits/sec
[  5]   7.00-8.00   sec  97.5 MBytes   818 Mbits/sec
[  5]   8.00-9.00   sec  97.8 MBytes   820 Mbits/sec
[  5]   9.00-10.00  sec  97.9 MBytes   821 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   975 MBytes   817 Mbits/sec    0             sender
[  5]   0.00-10.00  sec   972 MBytes   816 Mbits/sec                  receiver

Snapshots are already faster than the stock firmware. But it's strange that the GL-MT6000 performs worse than the TUF-AX4200 in this test since the TUF-AX4200 has a much smaller heat sink and slower memory.

You will achieve the advertised 900Mbps when using the GL-MT6000 as a WireGuard client though, so at least GL.iNet was honest about that.

1 Like

Don't know if anyone else has the Asus TUF-AX6000 that can generate more comparison data on this SoC.

Compared to the existing Raspberry Pi 4 results, I got a noticeably better result with mine. I have a Flirc case (large aluminum heatsink providing passive cooling) and official power supply, which allows me to overclock to 2 GHz without throttling (and without voiding the warranty). It has 4 GB of RAM and is booted from a Micro SD card.

Raspberry Pi Model 4B (Rev 1.1) | Broadcom BCM2711
(Quad Core A72, 2.0GHz overclock) | 23.05.2 (64bit) | 1 Gbps|

ubus call system board
{
	"kernel": "5.15.137",
	"hostname": "Raspberry-Pi",
	"system": "ARMv8 Processor rev 3",
	"model": "Raspberry Pi 4 Model B Rev 1.1",
	"board_name": "raspberrypi,4-model-b",
	"rootfs_type": "ext4",
	"release": {
		"distribution": "OpenWrt",
		"version": "23.05.2",
		"revision": "r23630-842932a63d",
		"target": "bcm27xx/bcm2711",
		"description": "OpenWrt 23.05.2 r23630-842932a63d"
	}
}
./benchmark.sh
Connecting to host 169.254.200.2, port 5201
[  5] local 169.254.200.1 port 39062 connected to 169.254.200.2 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   127 MBytes  1.07 Gbits/sec    0    715 KBytes       
[  5]   1.00-2.00   sec   124 MBytes  1.04 Gbits/sec    0    715 KBytes       
[  5]   2.00-3.00   sec   124 MBytes  1.04 Gbits/sec    0    748 KBytes       
[  5]   3.00-4.00   sec   124 MBytes  1.04 Gbits/sec    0    748 KBytes       
[  5]   4.00-5.00   sec   125 MBytes  1.05 Gbits/sec    0    748 KBytes       
[  5]   5.00-6.00   sec   125 MBytes  1.05 Gbits/sec    0    748 KBytes       
[  5]   6.00-7.00   sec   125 MBytes  1.05 Gbits/sec    0    748 KBytes       
[  5]   7.00-8.00   sec   124 MBytes  1.04 Gbits/sec    0    748 KBytes       
[  5]   8.00-9.00   sec   125 MBytes  1.05 Gbits/sec    0    748 KBytes       
[  5]   9.00-10.00  sec   126 MBytes  1.05 Gbits/sec    0    748 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.22 GBytes  1.05 Gbits/sec    0             sender
[  5]   0.00-10.00  sec  1.22 GBytes  1.05 Gbits/sec                  receiver
/benchmark.sh -R
Connecting to host 169.254.200.2, port 5201
Reverse mode, remote host 169.254.200.2 is sending
[  5] local 169.254.200.1 port 59858 connected to 169.254.200.2 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   124 MBytes  1.04 Gbits/sec                  
[  5]   1.00-2.00   sec   123 MBytes  1.03 Gbits/sec                  
[  5]   2.00-3.00   sec   122 MBytes  1.02 Gbits/sec                  
[  5]   3.00-4.00   sec   121 MBytes  1.02 Gbits/sec                  
[  5]   4.00-5.00   sec   123 MBytes  1.03 Gbits/sec                  
[  5]   5.00-6.00   sec   122 MBytes  1.02 Gbits/sec                  
[  5]   6.00-7.00   sec   121 MBytes  1.02 Gbits/sec                  
[  5]   7.00-8.00   sec   122 MBytes  1.02 Gbits/sec                  
[  5]   8.00-9.00   sec   121 MBytes  1.02 Gbits/sec                  
[  5]   9.00-10.00  sec   121 MBytes  1.01 Gbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.19 GBytes  1.02 Gbits/sec    0             sender
[  5]   0.00-10.00  sec  1.19 GBytes  1.02 Gbits/sec                  receiver
1 Like

It's useless, you're comparing apples to oranges even more than we already are in this thread. Please point out in your post this is with OEM firmware, at least.

And please use code tags to keep your output readable.

1 Like

Well it's pretty normal to get better result when you overclock, right? :grinning:
I haven't tried on mine yet (I am using Pimoroni big passive heatsink as well but I haven't tested with such high clock rate), but it's good to see that it can be boosted to the extreme without throttling (One thing I don't like Pi very much is their 5.1V power requirement)

I would like to run on a TUF AX-6000, but I get this issue with the opkg install command:

Collected errors:
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 6.1.78-1-4a3c1cd3a4e65473dcdef01a32cbb597) for kmod-crypto-lib-poly1305
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 6.1.78-1-4a3c1cd3a4e65473dcdef01a32cbb597) for kmod-crypto-lib-chacha20poly1305
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 6.1.78-1-4a3c1cd3a4e65473dcdef01a32cbb597) for kmod-crypto-kpp
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 6.1.78-1-4a3c1cd3a4e65473dcdef01a32cbb597) for kmod-crypto-lib-curve25519
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 6.1.78-1-4a3c1cd3a4e65473dcdef01a32cbb597) for kmod-udptunnel4
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 6.1.78-1-4a3c1cd3a4e65473dcdef01a32cbb597) for kmod-udptunnel6
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for wireguard-tools:
 *      kernel (= 6.1.78-1-4a3c1cd3a4e65473dcdef01a32cbb597)
 * opkg_install_cmd: Cannot install package wireguard-tools.
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 6.1.78-1-4a3c1cd3a4e65473dcdef01a32cbb597) for kmod-veth

Has anyone else run into this?

If you're not using the latest snapshot then that'll be the issue.

Ah, OK. Will try to update later this weekend then.

Huh. Interesting. I have one but I didn't bother benching it because I assumed it would score the same as the 4200...

root@Router:~/wg-bench# ubus call system board
{
        "kernel": "6.1.78",
        "hostname": "Router",
        "system": "ARMv8 Processor rev 4",
        "model": "ASUS TUF-AX6000",
        "board_name": "asus,tuf-ax6000",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "SNAPSHOT",
                "revision": "r25242-0ef9274721",
                "target": "mediatek/filogic",
                "description": "OpenWrt SNAPSHOT r25242-0ef9274721"
        }
}
root@Router:~/wg-bench# ./benchmark.sh
Connecting to host 169.254.200.2, port 5201
[  5] local 169.254.200.1 port 41372 connected to 169.254.200.2 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  94.1 MBytes   789 Mbits/sec    0    442 KBytes
[  5]   1.00-2.00   sec  90.9 MBytes   762 Mbits/sec    0    442 KBytes
[  5]   2.00-3.00   sec  90.4 MBytes   758 Mbits/sec    0    442 KBytes
[  5]   3.00-4.00   sec  91.4 MBytes   767 Mbits/sec    0    442 KBytes
[  5]   4.00-5.00   sec  90.4 MBytes   758 Mbits/sec    0    525 KBytes
[  5]   5.00-6.00   sec  92.6 MBytes   777 Mbits/sec    0    578 KBytes
[  5]   6.00-7.00   sec  92.9 MBytes   779 Mbits/sec    0    578 KBytes
[  5]   7.00-8.00   sec  84.9 MBytes   712 Mbits/sec    0    578 KBytes
[  5]   8.00-9.00   sec  88.8 MBytes   744 Mbits/sec    0    609 KBytes
[  5]   9.00-10.00  sec  93.1 MBytes   781 Mbits/sec    0    609 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   909 MBytes   763 Mbits/sec    0             sender
[  5]   0.00-10.00  sec   908 MBytes   761 Mbits/sec                  receiver

iperf Done.
root@Router:~/wg-bench# ./benchmark.sh -R
Connecting to host 169.254.200.2, port 5201
Reverse mode, remote host 169.254.200.2 is sending
[  5] local 169.254.200.1 port 51328 connected to 169.254.200.2 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  95.0 MBytes   796 Mbits/sec
[  5]   1.00-2.00   sec  92.9 MBytes   779 Mbits/sec
[  5]   2.00-3.00   sec  87.1 MBytes   731 Mbits/sec
[  5]   3.00-4.00   sec  92.5 MBytes   776 Mbits/sec
[  5]   4.00-5.00   sec  96.0 MBytes   805 Mbits/sec
[  5]   5.00-6.00   sec  96.0 MBytes   805 Mbits/sec
[  5]   6.00-7.00   sec  94.6 MBytes   794 Mbits/sec
[  5]   7.00-8.00   sec  91.6 MBytes   768 Mbits/sec
[  5]   8.00-9.00   sec  95.8 MBytes   803 Mbits/sec
[  5]   9.00-10.00  sec  95.6 MBytes   802 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   940 MBytes   788 Mbits/sec    0             sender
[  5]   0.00-10.00  sec   937 MBytes   786 Mbits/sec                  receiver

iperf Done.

Which, apprently, isn't true.

Is there a trick to getting it to work with only 16MB of flash that fills up on the install command?

You could set up an extroot.

For 16MB flash, most likely the GIT package would cause the problem, refer to my original post, you need to go to the GITHUB page and manually download/copy the content of those 3 files, then you can skip the git-http package

That looks very similar to the Flint 2, I hope it will get a better result when both devices available in release.

One easiest way to get all these in snapshot is by adding those packages from firmware selector, everything included in one build.

The only differences between the TUF-AX6000 and TUF-AX4200 are the WLAN chips and the extra 2.5G port on the TUF-AX6000. So, I guess one of them things is hindering performance a little.

@fakemanhk When I shared the GL-MT6000 results I went off of the example that you linked to, which lists the speed from the sender. But if you're using the speed from the receiver and you're listing results from ./benchmark.sh -R then the result for the GL-MT6000 should actually be 816 Mbps.

root@OpenWrt:~/wg-bench# ubus call system board
{
        "kernel": "5.15.137",
        "hostname": "OpenWrt",
        "system": "MediaTek MT7621 ver:1 eco:3",
        "model": "Ubiquiti EdgeRouter X",
        "board_name": "ubnt,edgerouter-x",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "23.05.2",
                "revision": "r23630-842932a63d",
                "target": "ramips/mt7621",
                "description": "OpenWrt 23.05.2 r23630-842932a63d"
        }
}

root@OpenWrt:~/wg-bench# ./benchmark.sh
Connecting to host 169.254.200.2, port 5201
[  5] local 169.254.200.1 port 38812 connected to 169.254.200.2 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  11.8 MBytes  98.5 Mbits/sec    0    154 KBytes       
[  5]   1.00-2.00   sec  12.0 MBytes   101 Mbits/sec    0    178 KBytes       
[  5]   2.00-3.00   sec  11.9 MBytes  99.7 Mbits/sec    0    194 KBytes       
[  5]   3.00-4.00   sec  12.2 MBytes   103 Mbits/sec    0    206 KBytes       
[  5]   4.00-5.00   sec  12.5 MBytes   105 Mbits/sec    0    216 KBytes       
[  5]   5.00-6.00   sec  12.2 MBytes   103 Mbits/sec    0    216 KBytes       
[  5]   6.00-7.00   sec  12.5 MBytes   105 Mbits/sec    0    216 KBytes       
[  5]   7.00-8.00   sec  12.0 MBytes   101 Mbits/sec    0    216 KBytes       
[  5]   8.00-9.00   sec  12.5 MBytes   105 Mbits/sec    0    303 KBytes       
[  5]   9.00-10.00  sec  12.2 MBytes   103 Mbits/sec    0    303 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   122 MBytes   102 Mbits/sec    0             sender
[  5]   0.00-10.01  sec   121 MBytes   102 Mbits/sec                  receiver

iperf Done.
root@OpenWrt:~/wg-bench# ./benchmark.sh -R
Connecting to host 169.254.200.2, port 5201
Reverse mode, remote host 169.254.200.2 is sending
[  5] local 169.254.200.1 port 45556 connected to 169.254.200.2 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  11.1 MBytes  93.0 Mbits/sec                  
[  5]   1.00-2.00   sec  11.6 MBytes  97.7 Mbits/sec                  
[  5]   2.00-3.00   sec  11.8 MBytes  98.6 Mbits/sec                  
[  5]   3.00-4.00   sec  11.9 MBytes  99.6 Mbits/sec                  
[  5]   4.00-5.00   sec  11.8 MBytes  98.6 Mbits/sec                  
[  5]   5.00-6.00   sec  11.9 MBytes  99.6 Mbits/sec                  
[  5]   6.00-7.00   sec  11.9 MBytes  99.6 Mbits/sec                  
[  5]   7.00-8.00   sec  12.0 MBytes   101 Mbits/sec                  
[  5]   8.00-9.00   sec  11.9 MBytes  99.6 Mbits/sec                  
[  5]   9.00-10.00  sec  12.2 MBytes   103 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.01  sec   119 MBytes  99.5 Mbits/sec    0             sender
[  5]   0.00-10.00  sec   118 MBytes  99.0 Mbits/sec                  receiver

iperf Done.

2 Likes

When both commands are run, I tend to record the one with smaller number.

TUF-AX4200 is already in stable release, so I guess the future snapshot won't alter too much but TUF-AX4200/Flint 2 are both not even in stable yet, lots of issues to be addressed, sometimes fixing one bug might cause another issue, so I hope to get another comparison when it becomes stable.

I have merged the result above to https://github.com/cyyself/wg-bench in decreasing order. Thanks to all of the contributors.

3 Likes