A Wireguard comparison DB

Occasionally I came across this GitHub page about WG device benchmark, then I think we can create a simple DB for some general comparison so people can select device easier as more people using WG in contrast to OpenVPN.

Disclaimer: This test includes a packet generator which is normally not a use case of VPN and this affects performance of older routers, please only take the numbers showing here as a rough estimation only.

To summerize, do the following on your router (note if your router has very small flash size, you might not have enough room to install git-http package, then skip it and go to the GitHub page to copy those files manually to your router):

opkg update
opkg install wireguard-tools ip-full kmod-veth iperf3 git-http
git clone https://github.com/cyyself/wg-bench
cd wg-bench
./setup-netns.sh
./benchmark.sh
(You can also run in reverse way by ./benchmark.sh -R)
After test, clean up by ./clean-up.sh

As mentioned in the GitHub page, processors with a mix of large/small core might show strange results, so please just take it as a simple reference only.

P.S. I will try to read this thread and group the data into this first post, however please do me a favor, in your post please create a line similar to the following format so that I can easily adding to table, thanks.

Device SoC Description OpenWrt version
(or snapshot kernel)
Tested Wireguard Result
Banana Pi BPI-R4 Mediatek MT7988A
(Quad Core A73, 1.8GHz)
Snapshot (6.6.30) 1.22 Gbps
IEI Puzzle-M902 Marvell CN9130
(Quad Core A72, 2.2GHz)
23.05.3 1.43 Gbps
Asus TUF-AX4200 Mediatek MT7986AV
(Quad Core A53, 2GHz)
Snapshot (6.1.78) 936 Mbps
Asus TUF-AX4200 Mediatek MT7986AV
(Quad Core A53, 2GHz)
23.05.2 820 Mbps
Asus TUF-AX6000 Mediatek MT7986AV
(Quad Core A53, 2GHz)
Snapshot (6.1.78) 761 Mbps
Mikrotik RB5009UG+S+IN Marvell Armada 7040
(Quad Core A72, 1.4GHz)
Snapshot (6.1.79) 986 Mbps
Raspberry Pi
Model B
Broadcom BCM2835
(ARM11, 700MHz)
23.05.2 16.1 Mbps
Raspberry Pi
Model 3B
Broadcom BCM2837
(Quad Core A53, 1.2GHz)
23.05.2 (64bit) 522 Mbps
Raspberry Pi
Model 3B
Broadcom BCM2837
(Quad Core A53, 1.2GHz)
23.05.2 (32bit) 518 Mbps
Raspberry Pi
Zero 2W
Broadcom BCM2710A1
(Quad Core A53, 1GHz)
23.05.2 (32bit) 443 Mbps
Raspberry Pi
Model 4B (Rev. 1.1)
Broadcom BCM2711
(Quad Core A72, 1.5GHz)
23.05.2 (64bit) 881 Mbps
Raspberry Pi
Model 4B (Rev. 1.1)
Broadcom BCM2711
(Quad Core A72, 2.0GHz)
23.05.2 (64bit) 1.02 Gbps
Raspberry Pi
Model 4B (Rev. 1.1)
Broadcom BCM2711
(Quad Core A72, 1.5GHz)
23.05.2 (32bit) 892 Mbps
Raspberry Pi
Model 5
Broadcom BCM2712
(Quad Core A76, 2.4GHz)
Snapshot (6.1.77) 2.6 Gbps
NanoPi R2S RockChip RK3328
(Quad Core A53, 1.2GHz)
23.05.2 234 Mbps
Linksys WRT1900ACv2 (cobra) Marvell 88F6820
(Dual Core ARMv7, 1.3GHz)
23.05.2 361 Mbps
Linksys WRT1900ACSv2 (shelby) Marvell 88F6820
(Dual Core ARMv7, 1.6GHz)
23.05.2 369 Mbps
Linksys WRT3200ACM (rango) Marvell 88F6820
(Dual Core ARMv7, 1.8GHz)
23.05.2 426 Mbps
Redmi AX6 Qualcomm IPQ8071A
(Quad Core A53, 1.4GHz)
Snapshot (6.1.77) 603 Mbps
Xiaomi AX3600 Qualcomm IPQ8071A
(Quad Core A53, 1.4GHz)
Snapshot (6.1.80) 569 Mbps
QNAP QHora-301W Qualcomm IPQ8072A
(Quad Core A53, 2.2GHz)
Snapshot 6.1.80 772 Mbps
QNAP QHora-301W Qualcomm IPQ8072A
(Quad Core A53, 2.2GHz)
Snapshot 6.6.22 NSS 714 Mbps
GL-INET MT1300 (Beryl) Mediatek MT7621A
(MIPS 2 Core 4 Thread, 880MHz)
23.05.2 82.5 Mbps
GL-INET MT3000 (Beryl AX) Mediatek MT7981BA
(Dual Core A53, 1.3 GHz)
23.05.3 393 Mbps
GL-INET MT6000 (Flint 2) Mediatek MT7986AV
(Quad Core A53, 2GHz)
Snapshot (6.1.78) 806 Mbps
GL-INET MT300N V1 Mediatek MT7620N
(MIPS, 580MHz)
23.05.2 19.2 Mbps
Netgear WAX206 Mediatek MT7622BV
(Dual Core A53, 1.35GHz)
23.05.2 381 Mbps
Linksys E8450 MediaTek MT7622BV
(Dual Core A53, 1.35GHz)
23.05.2 302 Mbps
Buffalo WCR-1166DS Mediatek MT7628AN
(MIPS, 580MHz)
23.05.2 18.3 Mbps
ZyXEL P-2812HNU-F1 Lantiq XWAY VRX288
(Dual Core MIPS, 500MHz)
23.05.2 25.6 Mbps
Zyxel WSM20 Mediatek MT7621AT
(MIPS 2 Core 4 Thread, 880MHz)
23.05.2 98.3 Mbps
Ubiquit EdgeRouter-X Mediatek MT7621AT
(MIPS 2 Core 4 Thread, 880MHz)
23.05.2 99 Mbps
D-Link COVR-X1860 A1 Mediatek MT7621A
(MIPS 2 Core 4 Thread, 880MHz)
Snapshot (6.1.81) 107 Mbps
Routerich AX3000 Mediatek MT7981BA
(Dual Core A53, 1.3GHz)
23.05.2 381 Mbps
Cudy WR3000v1 Mediatek MT7981BA
(Dual Core A53, 1.3 GHz)
23.05.2 413 Mbps
CMCC RAX3000M Mediatek MT7981BA
(Dual Core A53, 1.3GHz)
23.05.2 348 Mbps
TP-Link EC330-G5u V1 Mediatek MT7621A
(MIPS 2 Core 4 Thread, 880MHz)
23.05.2 104 Mbps
Beeline SmartBox TURBO+ Mediatek MT7621A
(MIPS 2 Core 4 Thread, 880MHz)
Snapshot (5.15.148) 104 Mbps
Mercusys MR90X v1 Mediatek MT7986BA
(Quad Core A53, 1.6GHz)
23.05.2 754 Mbps
Xiaomi Mi Router HD (R3D) Qualcomm IPQ8064
(ARMv7 Dual Core, 1.4GHz)
Snapshot (6.1.77) 214 Mbps
Netgear Nighthawk X4S R7800 Qualcomm IPQ8065
(Dual Core ARMv7, 1.7GHz)
23.05.2 291 Mbps
Google WiFi (Gale) Qualcomm IPQ4019
(Quad Core ARMv7, 717MHz)
23.05.2 164 Mbps
Asus RT-AC88U Broadcom BCM4709C0KFEBG
(Dual Core ARM A9, 1.4GHz)
23.05.3 184 Mbps
x86-64 Intel Atom E3825
(2 Core 2 Thread, 1.33GHz)
23.05.2 259 Mbps
x86-64 Intel Celeron N2930
(4 Core 4 Thread, 1.83GHz)
23.05.2 762 Mbps
x86-64 Intel N100
(4 Core 4 Thread, 3.4GHz)
23.05.2 4.69 Gbps
x86-64 Intel Atom C3558
(4 Core 4 Thread, 2.2GHz)
23.05.3 1.3 Gbps
x86-64 AMD GX-210UA
(2 Core 2 Thread, 1GHz)
Snapshot 6.1.80 315 Mbps
x86-64 AMD GX-415GA
(4 Core 4 Thread, 1.5GHz)
23.05.3 798 Mbps
x86-64 Intel Celeron J1900
(4 Core 4 Thread, 2GHz)
23.05.3 699 Mbits
x86-64 Intel Core i5-7500T VM
(4 Core 4 Thread, 2.7GHz)
Snapshot (6.6.30) 2.95 Gbps
16 Likes

Weird, why is the table not showing properly?

|Routerich AX3000 | MT7981 (ARM, 1.3 GHz) | 23.05.2 | 381 Mbps|

ubus call system board
    "kernel": "5.15.137",
    "hostname": "RouteRich",
    "system": "ARMv8 Processor rev 4",
    "model": "Routerich AX3000",
    "board_name": "routerich,ax3000",
    "rootfs_type": "squashfs",
    "release": {
            "distribution": "OpenWrt",
            "version": "23.05.2",
            "revision": "r23630-842932a63d",
            "target": "mediatek/filogic",
            "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 56276 connected to 169.254.200.2 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 43.8 MBytes 367 Mbits/sec 0 969 KBytes
[ 5] 1.00-2.00 sec 43.6 MBytes 366 Mbits/sec 0 969 KBytes
[ 5] 2.00-3.00 sec 45.0 MBytes 377 Mbits/sec 0 969 KBytes
[ 5] 3.00-4.00 sec 45.5 MBytes 382 Mbits/sec 0 969 KBytes
[ 5] 4.00-5.00 sec 47.0 MBytes 394 Mbits/sec 0 969 KBytes
[ 5] 5.00-6.00 sec 45.6 MBytes 383 Mbits/sec 0 969 KBytes
[ 5] 6.00-7.00 sec 46.1 MBytes 387 Mbits/sec 0 969 KBytes
[ 5] 7.00-8.00 sec 45.9 MBytes 385 Mbits/sec 0 969 KBytes
[ 5] 8.00-9.00 sec 47.1 MBytes 395 Mbits/sec 0 969 KBytes
[ 5] 9.00-10.00 sec 44.9 MBytes 376 Mbits/sec 0 969 KBytes


[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 454 MBytes 381 Mbits/sec 0 sender
[ 5] 0.00-10.01 sec 454 MBytes 380 Mbits/sec receiver

iperf Done.

use the </> button on top of the text window, to sandwitch the preformated text ?

-----------------------------------------------------
 OpenWrt 23.05.2, r23630-842932a63d
-----------------------------------------------------
root@c9-mesh:~#  ubus call system board
{
        "kernel": "5.15.137",
        "hostname": "c9-mesh",
        "system": "MediaTek MT7621 ver:1 eco:3",
        "model": "TP-Link EC330-G5u v1",
        "board_name": "tplink,ec330-g5u-v1",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "23.05.2",
                "revision": "r23630-842932a63d",
                "target": "ramips/mt7621",
                "description": "OpenWrt 23.05.2 r23630-842932a63d"
        }
}

root@c9-mesh:/tmp/wg-bench# ./benchmark.sh
Connecting to host 169.254.200.2, port 5201
[  5] local 169.254.200.1 port 55334 connected to 169.254.200.2 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  12.4 MBytes   104 Mbits/sec    0    178 KBytes
[  5]   1.00-2.00   sec  12.5 MBytes   105 Mbits/sec    0    196 KBytes
[  5]   2.00-3.00   sec  12.5 MBytes   105 Mbits/sec    0    207 KBytes
[  5]   3.00-4.00   sec  12.5 MBytes   105 Mbits/sec    0    218 KBytes
[  5]   4.00-5.00   sec  12.5 MBytes   105 Mbits/sec    0    218 KBytes
[  5]   5.00-6.00   sec  12.4 MBytes   104 Mbits/sec    0    218 KBytes
[  5]   6.00-7.00   sec  12.4 MBytes   104 Mbits/sec    0    238 KBytes
[  5]   7.00-8.00   sec  12.6 MBytes   106 Mbits/sec    0    238 KBytes
[  5]   8.00-9.00   sec  12.5 MBytes   105 Mbits/sec    0    319 KBytes
[  5]   9.00-10.00  sec  12.5 MBytes   105 Mbits/sec    0    319 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   125 MBytes   105 Mbits/sec    0             sender
[  5]   0.00-10.01  sec   124 MBytes   104 Mbits/sec                  receiver

iperf Done.

| TP-Link EC330-G5u v1 | MediaTek MT7621 (MIPS, 880 MHz) | 23.05.2 | 104 Mbps|
 -----------------------------------------------------
 OpenWrt 23.05.2, r23630-842932a63d
 -----------------------------------------------------
root@mr90:/tmp# ubus call system board
{
        "kernel": "5.15.137",
        "hostname": "mr90",
        "system": "ARMv8 Processor rev 4",
        "model": "MERCUSYS MR90X v1",
        "board_name": "mercusys,mr90x-v1",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "23.05.2",
                "revision": "r23630-842932a63d",
                "target": "mediatek/filogic",
                "description": "OpenWrt 23.05.2 r23630-842932a63d"
        }
}

root@mr90:/tmp/wg-bench# ./benchmark.sh
Connecting to host 169.254.200.2, port 5201
[  5] local 169.254.200.1 port 41444 connected to 169.254.200.2 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  89.9 MBytes   753 Mbits/sec    0    541 KBytes
[  5]   1.00-2.00   sec  90.1 MBytes   756 Mbits/sec    0    541 KBytes
[  5]   2.00-3.00   sec  89.5 MBytes   751 Mbits/sec    0    570 KBytes
[  5]   3.00-4.00   sec  90.5 MBytes   759 Mbits/sec    0    603 KBytes
[  5]   4.00-5.00   sec  90.1 MBytes   756 Mbits/sec    0    603 KBytes
[  5]   5.00-6.00   sec  90.2 MBytes   757 Mbits/sec    0    603 KBytes
[  5]   6.00-7.00   sec  90.5 MBytes   759 Mbits/sec    0    603 KBytes
[  5]   7.00-8.00   sec  89.4 MBytes   750 Mbits/sec    0    603 KBytes
[  5]   8.00-9.00   sec  90.8 MBytes   761 Mbits/sec    0    603 KBytes
[  5]   9.00-10.00  sec  90.2 MBytes   757 Mbits/sec    0    603 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   901 MBytes   756 Mbits/sec    0             sender
[  5]   0.00-10.00  sec   900 MBytes   754 Mbits/sec                  receiver

iperf Done.

| MERCUSYS MR90X v1 | MediaTek MT7986B (ARM, 1.6 GHz) | 23.05.2 | 754 Mbps|

@fakemanhk First of all - thank you! I have been waiting for a simple wg performance test that does not require special test environment.

P.S. I couldn't run the test on a device with existing wg tunnels.

root@ax59u:/tmp/wg-bench# ./benchmark.sh
Usage: iperf3 [-s|-c host] [options]
Try `iperf3 --help' for more information.
Usage: iperf3 [-s|-c host] [options]
Try `iperf3 --help' for more information.
cat: can't open './iperf3.pid': No such file or directory
kill: you need to specify whom to kill

Raspberry Pi 5

root@OpenWrt:~# ubus call system board
{
        "kernel": "6.1.77",
        "hostname": "OpenWrt",
        "system": "ARMv8 Processor rev 1",
        "model": "Raspberry Pi 5 Model B Rev 1.0",
        "board_name": "raspberrypi,5-model-b",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "SNAPSHOT",
                "revision": "r25104-f0e732f488",
                "target": "bcm27xx/bcm2712",
                "description": "OpenWrt SNAPSHOT r25104-f0e732f488"
        }
}
root@OpenWrt:wg-bench# ./benchmark.sh
Connecting to host 169.254.200.2, port 5201
[  5] local 169.254.200.1 port 57776 connected to 169.254.200.2 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   304 MBytes  2.55 Gbits/sec    0   1.72 MBytes       
[  5]   1.00-2.00   sec   297 MBytes  2.49 Gbits/sec    0   1.86 MBytes       
[  5]   2.00-3.00   sec   298 MBytes  2.50 Gbits/sec    0   1.86 MBytes       
[  5]   3.00-4.00   sec   298 MBytes  2.50 Gbits/sec   37   1.66 MBytes       
[  5]   4.00-5.00   sec   310 MBytes  2.60 Gbits/sec  303   1.33 MBytes       
[  5]   5.00-6.00   sec   303 MBytes  2.54 Gbits/sec    0   1.39 MBytes       
[  5]   6.00-7.00   sec   317 MBytes  2.66 Gbits/sec    0   1.46 MBytes       
[  5]   7.00-8.00   sec   324 MBytes  2.71 Gbits/sec    9   1.09 MBytes       
[  5]   8.00-9.00   sec   322 MBytes  2.70 Gbits/sec    0   1.15 MBytes       
[  5]   9.00-10.00  sec   325 MBytes  2.73 Gbits/sec    0   1.20 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  3.03 GBytes  2.60 Gbits/sec  349             sender
[  5]   0.00-10.00  sec  3.02 GBytes  2.60 Gbits/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 53546 connected to 169.254.200.2 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   309 MBytes  2.59 Gbits/sec                  
[  5]   1.00-2.00   sec   304 MBytes  2.55 Gbits/sec                  
[  5]   2.00-3.00   sec   305 MBytes  2.56 Gbits/sec                  
[  5]   3.00-4.00   sec   306 MBytes  2.57 Gbits/sec                  
[  5]   4.00-5.00   sec   320 MBytes  2.68 Gbits/sec                  
[  5]   5.00-6.00   sec   319 MBytes  2.68 Gbits/sec                  
[  5]   6.00-7.00   sec   308 MBytes  2.58 Gbits/sec                  
[  5]   7.00-8.00   sec   308 MBytes  2.58 Gbits/sec                  
[  5]   8.00-9.00   sec   307 MBytes  2.57 Gbits/sec                  
[  5]   9.00-10.00  sec   308 MBytes  2.59 Gbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  3.02 GBytes  2.60 Gbits/sec  188             sender
[  5]   0.00-10.00  sec  3.02 GBytes  2.60 Gbits/sec                  receiver

iperf Done.
1 Like

It's interesting that when I'm on mobile I can view it without problem.

 -----------------------------------------------------
 OpenWrt SNAPSHOT, r25104-f0e732f488
 -----------------------------------------------------
root@turboplus:~# ubus call system board
{
        "kernel": "5.15.148",
        "hostname": "turboplus",
        "system": "MediaTek MT7621 ver:1 eco:3",
        "model": "Beeline SmartBox TURBO+",
        "board_name": "beeline,smartbox-turbo-plus",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "SNAPSHOT",
                "revision": "r25104-f0e732f488",
                "target": "ramips/mt7621",
                "description": "OpenWrt SNAPSHOT r25104-f0e732f488"
        }
}

root@turboplus:/tmp/wg-bench# ./benchmark.sh
Connecting to host 169.254.200.2, port 5201
[  5] local 169.254.200.1 port 46614 connected to 169.254.200.2 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  12.4 MBytes   104 Mbits/sec    0    187 KBytes
[  5]   1.00-2.00   sec  12.5 MBytes   105 Mbits/sec    0    199 KBytes
[  5]   2.00-3.00   sec  12.4 MBytes   104 Mbits/sec    0    208 KBytes
[  5]   3.00-4.00   sec  12.2 MBytes   103 Mbits/sec    0    208 KBytes
[  5]   4.00-5.00   sec  12.4 MBytes   104 Mbits/sec    0    219 KBytes
[  5]   5.00-6.00   sec  12.2 MBytes   103 Mbits/sec    0    230 KBytes
[  5]   6.00-7.00   sec  12.9 MBytes   108 Mbits/sec    0    230 KBytes
[  5]   7.00-8.00   sec  12.5 MBytes   105 Mbits/sec    0    230 KBytes
[  5]   8.00-9.00   sec  12.2 MBytes   103 Mbits/sec    0    230 KBytes
[  5]   9.00-10.00  sec  12.5 MBytes   105 Mbits/sec    0    230 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   124 MBytes   104 Mbits/sec    0             sender
[  5]   0.00-10.01  sec   124 MBytes   104 Mbits/sec                  receiver

iperf Done.

| Beeline SmartBox TURBO+ | MediaTek MT7621 (MIPS, 880 MHz) | SNAPSHOT r25104 | 104 Mbps |

Can you try to run it with -R?

Looks like my GL INET MT1300 is 20% slower even it's using the same MT7621A

I really can't imagine Pi5 can be 3 times faster than the 4, maybe I need to try with snapshot kernel 6.1.x

With -R:

[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.01  sec   121 MBytes   102 Mbits/sec    0             sender
[  5]   0.00-10.00  sec   120 MBytes   101 Mbits/sec                  receiver
1 Like

The MT7621 GL INET MT1300 result of 83 Mbps is quite slow compared to MT7621 ER-X Wireguard performance of 150-160 Mbps reported here. Though the MT1300 result is consistent with performance of ~90 Mbps for the MT1300 advertised by GL INET, so there is that.

The NanoPi R2S result of 234 Mbps compared to 517 Mbps on a Pi 3B looks odd too, considering both are running quad core A53 ARM CPU's at the same 1.2 GHz clock rate.

1 Like

If I understand correctly we test wireguard on localhost. As the result the CPU is loaded by encryption and decryption both. That's the the reason why the result is worse than in download test only.

Actually I also feel weird about Pi3 vs R2S result, probably I should try a bit more in it to see what's going on there.

Yes, however 8X Mbps vs 10X Mbps is still an observable difference.

{
        "kernel": "5.15.137",
        "hostname": "OpenWrt",
        "system": "Intel(R) Atom(TM) CPU  E3825  @ 1.33GHz",
        "model": "Lanner NCA-1010B-ST1",
        "board_name": "lanner-nca-1010b-st1",
        "rootfs_type": "ext4",
        "release": {
                "distribution": "OpenWrt",
                "version": "23.05.2",
                "revision": "r23630-842932a63d",
                "target": "x86/64",
                "description": "OpenWrt 23.05.2 r23630-842932a63d"
        }
}
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   312 MBytes   262 Mbits/sec   25             sender
[  5]   0.00-10.01  sec   310 MBytes   259 Mbits/sec                  receiver

qcom ipq8064 (ARMv7)

ubus call system board
"kernel": "6.1.77",
"hostname": "OpenWrt",
"system": "ARMv7 Processor rev 0 (v7l)",
"model": "Xiaomi Mi Router HD (R3D)",
"board_name": "xiaomi,mi-router-hd",
"rootfs_type": "squashfs",
"release": {
        "distribution": "OpenWrt",
        "version": "SNAPSHOT",
        "revision": "r25139-936a08464c",
        "target": "ipq806x/generic",
        "description": "SNAPSHOT 240212"
}
./benchmark.sh
Connecting to host 169.254.200.2, port 5201
[  5] local 169.254.200.1 port 41058 connected to 169.254.200.2 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  29.0 MBytes   243 Mbits/sec    0    569 KBytes
[  5]   1.00-2.00   sec  28.1 MBytes   236 Mbits/sec    0    799 KBytes
[  5]   2.00-3.00   sec  29.5 MBytes   248 Mbits/sec    0   1009 KBytes
[  5]   3.00-4.00   sec  27.0 MBytes   226 Mbits/sec  124   1.09 MBytes
[  5]   4.00-5.00   sec  28.2 MBytes   237 Mbits/sec    0   1.22 MBytes
[  5]   5.00-6.00   sec  28.8 MBytes   241 Mbits/sec    0   1.27 MBytes
[  5]   6.00-7.00   sec  27.5 MBytes   231 Mbits/sec    0   1.33 MBytes
[  5]   7.00-8.00   sec  28.0 MBytes   235 Mbits/sec    0   1.39 MBytes
[  5]   8.00-9.00   sec  28.4 MBytes   238 Mbits/sec    0   1.39 MBytes
[  5]   9.00-10.00  sec  28.8 MBytes   241 Mbits/sec  123   1.06 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   283 MBytes   238 Mbits/sec  247             sender
[  5]   0.00-10.01  sec   280 MBytes   235 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 59094 connected to 169.254.200.2 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  25.6 MBytes   215 Mbits/sec
[  5]   1.00-2.00   sec  25.2 MBytes   212 Mbits/sec
[  5]   2.00-3.00   sec  23.9 MBytes   200 Mbits/sec
[  5]   3.00-4.00   sec  25.9 MBytes   217 Mbits/sec
[  5]   4.00-5.00   sec  26.8 MBytes   225 Mbits/sec
[  5]   5.00-6.00   sec  26.0 MBytes   218 Mbits/sec
[  5]   6.00-7.00   sec  25.9 MBytes   217 Mbits/sec
[  5]   7.00-8.00   sec  25.4 MBytes   213 Mbits/sec
[  5]   8.00-9.00   sec  24.4 MBytes   205 Mbits/sec
[  5]   9.00-10.00  sec  26.0 MBytes   218 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   258 MBytes   216 Mbits/sec  165             sender
[  5]   0.00-10.00  sec   255 MBytes   214 Mbits/sec                  receiver

The result is slower than what I think.....

BTW, not sure if it's possible to have this DB integrating into ToH or some other existing device DB in Wiki?