A Wireguard comparison DB

On a ASUS RT-AX59U after nft flush ruleset

{
        "kernel": "5.15.167",
        "hostname": "RT-AX59U",
        "system": "ARMv8 Processor rev 4",
        "model": "ASUS RT-AX59U",
        "board_name": "asus,rt-ax59u",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "23.05.5",
                "revision": "r24106-10cc5fcd00",
                "target": "mediatek/filogic",
                "description": "OpenWrt 23.05.5 r24106-10cc5fcd00"
        }
}
root@RT-AX59U:~/wg-bench# ./benchmark.sh
Connecting to host 169.254.200.2, port 5201
[  5] local 169.254.200.1 port 46740 connected to 169.254.200.2 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   119 MBytes   998 Mbits/sec    0    882 KBytes
[  5]   1.00-2.00   sec   117 MBytes   981 Mbits/sec    0   1023 KBytes
[  5]   2.00-3.00   sec   115 MBytes   967 Mbits/sec    0   1.22 MBytes
[  5]   3.00-4.00   sec   115 MBytes   967 Mbits/sec    0   1.28 MBytes
[  5]   4.00-5.00   sec   115 MBytes   968 Mbits/sec    0   1.45 MBytes
[  5]   5.00-6.00   sec   117 MBytes   984 Mbits/sec    0   1.45 MBytes
[  5]   6.00-7.00   sec   118 MBytes   990 Mbits/sec    0   1.45 MBytes
[  5]   7.00-8.00   sec   116 MBytes   971 Mbits/sec    0   1.45 MBytes
[  5]   8.00-9.00   sec   119 MBytes   995 Mbits/sec    0   1.45 MBytes
[  5]   9.00-10.00  sec   120 MBytes  1.00 Gbits/sec    0   1.45 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.14 GBytes   983 Mbits/sec    0             sender
[  5]   0.00-10.00  sec  1.14 GBytes   980 Mbits/sec                  receiver

iperf Done.
root@RT-AX59U:~/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 40740 connected to 169.254.200.2 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   113 MBytes   944 Mbits/sec
[  5]   1.00-2.00   sec   114 MBytes   952 Mbits/sec
[  5]   2.00-3.00   sec   113 MBytes   945 Mbits/sec
[  5]   3.00-4.00   sec   114 MBytes   956 Mbits/sec
[  5]   4.00-5.00   sec   114 MBytes   953 Mbits/sec
[  5]   5.00-6.00   sec   113 MBytes   947 Mbits/sec
[  5]   6.00-7.00   sec   112 MBytes   938 Mbits/sec
[  5]   7.00-8.00   sec   112 MBytes   940 Mbits/sec
[  5]   8.00-9.00   sec   113 MBytes   951 Mbits/sec
[  5]   9.00-10.00  sec   112 MBytes   936 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.10 GBytes   949 Mbits/sec    0             sender
[  5]   0.00-10.00  sec  1.10 GBytes   947 Mbits/sec                  receiver

iperf Done.

What if you do it without flushing nft table? Since I believe most people submitted the data in a default status.

What is default status? On 12 March @remittor gave an explanation about this behavior. There are some packages installed which containing the string nftables, however I don't have luci-app-xray installed. For the rest, there is no special tuning and I am using the latest stable release.

I now have retested it without flushing that table and the result are considerably lower, from 824 till 837 Mbits/sec.

1 Like

This is what I am looking for, you don't need to flush the table.

As discussed: (don't add it to DB as this isn't official build, but me cherry picking commits =P)

Router details:
{
        "kernel": "5.15.167",
        "hostname": "OpenWrt-fwf50e2r",
        "system": "ARMv7 Processor rev 1 (v7l)",
        "model": "Fortinet FortiWiFi 50E-2R",
        "board_name": "fortinet,fwf-50e-2r",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "23.05.5",
                "revision": "r24106-10cc5fcd00",
                "target": "mvebu/cortexa9",
                "description": "OpenWrt 23.05.5 r24106-10cc5fcd00"
        }
}
Connecting to host 169.254.200.2, port 4242
[  5] local 169.254.200.1 port 33520 connected to 169.254.200.2 port 4242
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  48.0 MBytes   402 Mbits/sec    7   1.05 MBytes       
[  5]   1.00-2.00   sec  46.1 MBytes   387 Mbits/sec    0   1.17 MBytes       
[  5]   2.00-3.00   sec  46.1 MBytes   387 Mbits/sec    0   1.27 MBytes       
[  5]   3.00-4.00   sec  46.1 MBytes   387 Mbits/sec    5    967 KBytes       
[  5]   4.00-5.00   sec  45.0 MBytes   378 Mbits/sec    0   1.02 MBytes       
[  5]   5.00-6.00   sec  46.8 MBytes   392 Mbits/sec    0   1.06 MBytes       
[  5]   6.00-7.00   sec  46.0 MBytes   386 Mbits/sec    0   1.10 MBytes       
[  5]   7.00-8.00   sec  45.1 MBytes   379 Mbits/sec    0   1.11 MBytes       
[  5]   8.00-9.00   sec  46.1 MBytes   387 Mbits/sec    0   1.12 MBytes       
[  5]   9.00-10.00  sec  47.2 MBytes   396 Mbits/sec    0   1.13 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   463 MBytes   388 Mbits/sec   12             sender
[  5]   0.00-10.01  sec   459 MBytes   385 Mbits/sec                  receiver

iperf Done.
4242/tcp:             6928
root@OpenWrt-fwf50e2r:/# 

| x86 | AMD GX-420CA | 23.05.4 | 984 Mbps |

ubus call system board
ubus call system board
{
        "kernel": "5.15.162",
        "hostname": "OpenWrt",
        "system": "AMD GX-420CA SOC with Radeon(tm) HD Graphics",
        "model": "Hewlett-Packard HP t620 PLUS Quad Core TC",
        "board_name": "hewlett-packard-hp-t620-plus-quad-core-tc",
        "rootfs_type": "ext4",
        "release": {
                "distribution": "OpenWrt",
                "version": "23.05.4",
                "revision": "r24012-d8dd03c46f",
                "target": "x86/64",
                "description": "OpenWrt 23.05.4 r24012-d8dd03c46f"
        }
}
./benchmark.sh
./benchmark.sh
Connecting to host 169.254.200.2, port 5201
[  5] local 169.254.200.1 port 42148 connected to 169.254.200.2 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   118 MBytes   985 Mbits/sec    0    569 KBytes
[  5]   1.00-2.00   sec   119 MBytes   998 Mbits/sec    0    623 KBytes
[  5]   2.00-3.00   sec   118 MBytes   994 Mbits/sec    0    767 KBytes
[  5]   3.00-4.00   sec   118 MBytes   992 Mbits/sec    0    767 KBytes
[  5]   4.00-5.00   sec   118 MBytes   989 Mbits/sec    0    804 KBytes
[  5]   5.00-6.00   sec   118 MBytes   993 Mbits/sec    0    844 KBytes
[  5]   6.00-7.00   sec   116 MBytes   976 Mbits/sec    0    931 KBytes
[  5]   7.00-8.00   sec   114 MBytes   961 Mbits/sec    0   1.07 MBytes
[  5]   8.00-9.00   sec   118 MBytes   988 Mbits/sec    0   1.07 MBytes
[  5]   9.00-10.00  sec   116 MBytes   975 Mbits/sec    0   1.07 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.15 GBytes   985 Mbits/sec    0             sender
[  5]   0.00-10.00  sec  1.14 GBytes   983 Mbits/sec                  receiver

iperf Done.
1 Like

I did a new test and looked at the CPU-usage during the test, that was not as high as expected. One core at 30 percent and the other three between 20 and 30 and the load was about 0.4. Maybe because of the offloading by the crypto engine?

Unless you have the newer Intel AVX-512, otherwise I do not see any possible hardware acceleration of Wireguard available to consumer market these days.

Cisco / Meraki MX65: 2x cortex A9 1.2ghz BCM58625

Router details:
{
        "kernel": "6.6.58",
        "hostname": "OpenWrt",
        "system": "ARMv7 Processor rev 0 (v7l)",
        "model": "Cisco Meraki MX65",
        "board_name": "meraki,mx65",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "SNAPSHOT",
                "description": "OpenWrt SNAPSHOT",
                "revision": "r27993-2915cfb626",
                "target": "bcm53xx/generic",
                "builddate": "1730458149"
        }
}
Connecting to host 169.254.200.2, port 4242
[  5] local 169.254.200.1 port 60854 connected to 169.254.200.2 port 4242
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  27.1 MBytes   227 Mbits/sec    0    691 KBytes       
[  5]   1.00-2.00   sec  27.1 MBytes   227 Mbits/sec    0    826 KBytes       
[  5]   2.00-3.01   sec  28.2 MBytes   237 Mbits/sec    0    915 KBytes       
[  5]   3.01-4.00   sec  26.5 MBytes   223 Mbits/sec    0   1010 KBytes       
[  5]   4.00-5.00   sec  26.0 MBytes   219 Mbits/sec    0   1.04 MBytes       
[  5]   5.00-6.00   sec  27.8 MBytes   232 Mbits/sec    0   1.09 MBytes       
[  5]   6.00-7.01   sec  26.4 MBytes   220 Mbits/sec    0   1.09 MBytes       
[  5]   7.01-8.01   sec  27.0 MBytes   226 Mbits/sec    0   1.09 MBytes       
[  5]   8.01-9.00   sec  27.9 MBytes   236 Mbits/sec    0   1.15 MBytes       
[  5]   9.00-10.01  sec  25.5 MBytes   212 Mbits/sec    0   1.15 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.01  sec   270 MBytes   226 Mbits/sec    0             sender
[  5]   0.00-10.02  sec   268 MBytes   225 Mbits/sec                  receiver

iperf Done.
4242/tcp:             6316
root@OpenWrt:~# 

I think WG is still chacha20-poly1305, so not HW accel directly...

Turns out when I went onsite I still had one of these on the shelf =P

DGND3700v1, bcm6368, mips32 @ 400MHz | 29.2Mbps

Router details:
{
	"kernel": "5.15.167",
	"hostname": "OpenWrt",
	"system": "bcm63xx/U12L144T01 (0x6368/0xB2)",
	"model": "Netgear DGND3700v1/DGND3800B",
	"board_name": "netgear,dgnd3700-v1",
	"rootfs_type": "squashfs",
	"release": {
		"distribution": "OpenWrt",
		"version": "23.05.5",
		"revision": "r24106-10cc5fcd00",
		"target": "bcm63xx/smp",
		"description": "OpenWrt 23.05.5 r24106-10cc5fcd00"
	}
}
Connecting to host 169.254.200.2, port 4242
[  5] local 169.254.200.1 port 42790 connected to 169.254.200.2 port 4242
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  3.62 MBytes  30.3 Mbits/sec    0    132 KBytes       
[  5]   1.00-2.00   sec  3.50 MBytes  29.4 Mbits/sec    0    195 KBytes       
[  5]   2.00-3.00   sec  3.62 MBytes  30.4 Mbits/sec    0    195 KBytes       
[  5]   3.00-4.00   sec  3.62 MBytes  30.4 Mbits/sec    0    195 KBytes       
[  5]   4.00-5.00   sec  3.38 MBytes  28.3 Mbits/sec    0    195 KBytes       
[  5]   5.00-6.00   sec  3.62 MBytes  30.4 Mbits/sec    0    206 KBytes       
[  5]   6.00-7.00   sec  3.50 MBytes  29.4 Mbits/sec    0    206 KBytes       
[  5]   7.00-8.00   sec  3.50 MBytes  29.4 Mbits/sec    0    206 KBytes       
[  5]   8.00-9.00   sec  3.62 MBytes  30.4 Mbits/sec    0    206 KBytes       
[  5]   9.00-10.00  sec  3.50 MBytes  29.3 Mbits/sec    0    206 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  35.5 MBytes  29.8 Mbits/sec    0             sender
[  5]   0.00-10.03  sec  34.9 MBytes  29.2 Mbits/sec                  receiver

iperf Done.
4242/tcp:             3829
root@OpenWrt:~# 

This one is almost as slow as my RPi 1B.....

1 Like

Mm.

I'm surprised it actually beats MT7628, MT7620 and (barely) AR7161 hahaha.

Old and slow. But It can handle ~200-300Mbps NAT on the CPU and has sufficient storage and ram to hopefully be supported for a while.

1 Like

GL.iNet GL-MT6000 Flint 2

ubus call system board
{
        "kernel": "5.15.167",
        "hostname": "ar12",
        "system": "ARMv8 Processor rev 4",
        "model": "GL.iNet GL-MT6000",
        "board_name": "glinet,gl-mt6000",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "23.05.5",
                "revision": "r24106-10cc5fcd00",
                "target": "mediatek/filogic",
                "description": "OpenWrt 23.05.5 r24106-10cc5fcd00"
        }
}
./benchmark.sh
Connecting to host 169.254.200.2, port 5201
[  5] local 169.254.200.1 port 53558 connected to 169.254.200.2 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  99.0 MBytes   830 Mbits/sec    0    570 KBytes       
[  5]   1.00-2.00   sec  98.8 MBytes   828 Mbits/sec    0    570 KBytes       
[  5]   2.00-3.00   sec  98.4 MBytes   825 Mbits/sec    0    570 KBytes       
[  5]   3.00-4.00   sec  97.6 MBytes   819 Mbits/sec    0    600 KBytes       
[  5]   4.00-5.00   sec  99.9 MBytes   838 Mbits/sec    0    628 KBytes       
[  5]   5.00-6.00   sec  99.2 MBytes   833 Mbits/sec    0    628 KBytes       
[  5]   6.00-7.00   sec  98.8 MBytes   828 Mbits/sec    0    659 KBytes       
[  5]   7.00-8.00   sec  99.1 MBytes   831 Mbits/sec    0    659 KBytes       
[  5]   8.00-9.00   sec  96.9 MBytes   813 Mbits/sec    0    723 KBytes       
[  5]   9.00-10.00  sec  98.2 MBytes   824 Mbits/sec    0    723 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   986 MBytes   827 Mbits/sec    0             sender
[  5]   0.00-10.00  sec   985 MBytes   826 Mbits/sec                  receiver
1 Like

I want to share some real life data (WireGuard VPN speed test).
I ran lots of speedtests while I was connected to three different VPN providers using WireGuard.
I was able to get over 700 Mbps download speed and the CPU still had a headroom. The speed of course depends mostly on the VPN server load.
So I think I can get even more than that if the VPN servers are at low load.

OpenWrt SNAPSHOT, r28366-dbb4a1128c
 -----------------------------------------------------
root@QNAP:~# nss_diag
     MODEL: QNAP 301w
   OPENWRT: r28366-dbb4a1128c
IPQ BRANCH: main-nss
IPQ COMMIT: dbb4a1128c
  IPQ DATE: 2024-11-28
    NSS FW: NSS.FW.12.2-161-HK.R
  MAC80211: v6.11.2-0-g7aa21fec187b
 ATH11K FW: WLAN.HK.2.9.0.1-02146-QCAHKSWPL_SILICONZ-1
 INTERFACE: br-lan     tx-checksumming: on  rx-gro-list: off
            10g-1      tx-checksumming: on  rx-gro-list: off
            10g-2      tx-checksumming: on  rx-gro-list: off
            lan1       tx-checksumming: on  rx-gro-list: off
            lan2       tx-checksumming: on  rx-gro-list: off
            lan3       tx-checksumming: on  rx-gro-list: off
            lan4       tx-checksumming: on  rx-gro-list: off
            phy0-ap0   tx-checksumming: on  rx-gro-list: off
            phy1-ap0   tx-checksumming: on  rx-gro-list: off

  NSS PKGS: kmod-qca-mcs-6.6.63.12.5.2024.02.27~26d6424-r1 aarch64_cortex-a53 {feeds/nss_packages/qca-mcs} () [installed]
            kmod-qca-nss-dp-6.6.63.2024.04.16~5bf8b91e-r1 aarch64_cortex-a53 {feeds/base/kernel/qca-nss-dp} () [installed]
            kmod-qca-nss-drv-6.6.63.12.5.2024.04.06~53a0dc1-r15 aarch64_cortex-a53 {feeds/nss_packages/qca-nss-drv} () [installed]
            kmod-qca-nss-drv-bridge-mgr-6.6.63.12.5.2024.06.12~1bcef16-r7 aarch64_cortex-a53 {feeds/nss_packages/qca-nss-clients} () [installed]
            kmod-qca-nss-drv-igs-6.6.63.12.5.2024.06.12~1bcef16-r7 aarch64_cortex-a53 {feeds/nss_packages/qca-nss-clients} () [installed]
            kmod-qca-nss-drv-qdisc-6.6.63.12.5.2024.06.12~1bcef16-r7 aarch64_cortex-a53 {feeds/nss_packages/qca-nss-clients} () [installed]
            kmod-qca-nss-drv-vlan-mgr-6.6.63.12.5.2024.06.12~1bcef16-r7 aarch64_cortex-a53 {feeds/nss_packages/qca-nss-clients} () [installed]
            kmod-qca-nss-ecm-6.6.63.12.5.5.2024.09.02~bd5057b-r3 aarch64_cortex-a53 {feeds/nss_packages/qca-nss-ecm} () [installed]
            kmod-qca-ssdk-6.6.63.2024.06.13~c451136b-r3 aarch64_cortex-a53 {feeds/base/kernel/qca-ssdk} () [installed]
            nss-firmware-default-2024.08.04~794fe373-r1 aarch64_cortex-a53 {feeds/nss_packages/firmware/nss-firmware} () [installed]
            nss-firmware-ipq8074-2024.08.04~794fe373-r1 aarch64_cortex-a53 {feeds/nss_packages/firmware/nss-firmware} () [installed]

Linksys WRT1900ACS V2 | Marvell 88F6820
(Dual Core ARMv7, 1.6GHz) | 24.10.0-rc2 | 378Mbps

ubus call system board
    "kernel": "6.6.63",
    "hostname": "OpenWrt",
    "system": "ARMv7 Processor rev 1 (v7l)",
    "model": "Linksys WRT1900ACS",
    "board_name": "linksys,wrt1900acs",
    "rootfs_type": "squashfs",
    "release": {
            "distribution": "OpenWrt",
            "version": "24.10.0-rc2",
            "revision": "r28161-ea17e958b9",
            "target": "mvebu/cortexa9",
            "description": "OpenWrt 24.10.0-rc2 r28161-ea17e958b9",
            "builddate": "1733226068"
./benchmark.sh

Connecting to host 169.254.200.2, port 5201
[ 5] local 169.254.200.1 port 53618 connected to 169.254.200.2 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.01 sec 50.0 MBytes 415 Mbits/sec 0 1.05 MBytes
[ 5] 1.01-2.00 sec 48.0 MBytes 406 Mbits/sec 0 1.42 MBytes
[ 5] 2.00-3.00 sec 48.5 MBytes 408 Mbits/sec 28 1.18 MBytes
[ 5] 3.00-4.00 sec 49.1 MBytes 412 Mbits/sec 0 1.32 MBytes
[ 5] 4.00-5.00 sec 47.5 MBytes 398 Mbits/sec 4 1015 KBytes
[ 5] 5.00-6.00 sec 47.8 MBytes 401 Mbits/sec 0 1.05 MBytes
[ 5] 6.00-7.00 sec 48.8 MBytes 409 Mbits/sec 0 1.11 MBytes
[ 5] 7.00-8.00 sec 48.9 MBytes 410 Mbits/sec 0 1.15 MBytes
[ 5] 8.00-9.00 sec 48.9 MBytes 410 Mbits/sec 0 1.17 MBytes
[ 5] 9.00-10.00 sec 48.1 MBytes 403 Mbits/sec 0 1.18 MBytes


[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 487 MBytes 408 Mbits/sec 32 sender
[ 5] 0.00-10.01 sec 485 MBytes 406 Mbits/sec receiver

iperf Done.

./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 40822 connected to 169.254.200.2 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 44.6 MBytes 374 Mbits/sec
[ 5] 1.00-2.00 sec 45.4 MBytes 380 Mbits/sec
[ 5] 2.00-3.00 sec 45.0 MBytes 377 Mbits/sec
[ 5] 3.00-4.01 sec 45.2 MBytes 378 Mbits/sec
[ 5] 4.01-5.00 sec 44.9 MBytes 378 Mbits/sec
[ 5] 5.00-6.00 sec 45.6 MBytes 382 Mbits/sec
[ 5] 6.00-7.00 sec 45.0 MBytes 379 Mbits/sec
[ 5] 7.00-8.00 sec 44.4 MBytes 372 Mbits/sec
[ 5] 8.00-9.00 sec 45.2 MBytes 380 Mbits/sec
[ 5] 9.00-10.01 sec 45.5 MBytes 380 Mbits/sec


[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.01 sec 454 MBytes 381 Mbits/sec 199 sender
[ 5] 0.00-10.01 sec 451 MBytes 378 Mbits/sec receiver

iperf Done.

1 Like

OpenWrt One | MT7981B (Filogic 820)
(DualCore ARMv8 A53, 1.3 GHz) | 24.10.0-rc2 | 337Mbps

ubus call system board

root@OpenWrt:~/CODE/wg-bench# ubus call system board
{
"kernel": "6.6.63",
"hostname": "OpenWrt",
"system": "ARMv8 Processor rev 4",
"model": "OpenWrt One",
"board_name": "openwrt,one",
"rootfs_type": "squashfs",
"release": {
"distribution": "OpenWrt",
"version": "24.10.0-rc2",
"revision": "r28161-ea17e958b9",
"target": "mediatek/filogic",
"description": "OpenWrt 24.10.0-rc2 r28161-ea17e958b9",
"builddate": "1733226068"
}
}

./benchmark.sh

root@OpenWrt:~/CODE/wg-bench# ./benchmark.sh
Connecting to host 169.254.200.2, port 5201
[ 5] local 169.254.200.1 port 46276 connected to 169.254.200.2 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.01 sec 44.9 MBytes 372 Mbits/sec 0 840 KBytes
[ 5] 1.01-2.00 sec 43.4 MBytes 368 Mbits/sec 0 884 KBytes
[ 5] 2.00-3.00 sec 43.9 MBytes 368 Mbits/sec 0 1.04 MBytes
[ 5] 3.00-4.00 sec 43.6 MBytes 366 Mbits/sec 0 1.04 MBytes
[ 5] 4.00-5.00 sec 44.4 MBytes 372 Mbits/sec 0 1.11 MBytes
[ 5] 5.00-6.00 sec 42.5 MBytes 357 Mbits/sec 0 1.17 MBytes
[ 5] 6.00-7.00 sec 45.9 MBytes 385 Mbits/sec 0 1.22 MBytes
[ 5] 7.00-8.00 sec 44.5 MBytes 373 Mbits/sec 0 1.22 MBytes
[ 5] 8.00-9.00 sec 44.0 MBytes 369 Mbits/sec 0 1.22 MBytes
[ 5] 9.00-10.00 sec 43.6 MBytes 365 Mbits/sec 0 1.28 MBytes


[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 441 MBytes 369 Mbits/sec 0 sender
[ 5] 0.00-10.01 sec 438 MBytes 367 Mbits/sec receiver

iperf Done.

./benchmark.sh -R

root@OpenWrt:~/CODE/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 38734 connected to 169.254.200.2 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 39.2 MBytes 328 Mbits/sec
[ 5] 1.00-2.00 sec 40.2 MBytes 338 Mbits/sec
[ 5] 2.00-3.00 sec 39.6 MBytes 333 Mbits/sec
[ 5] 3.00-4.00 sec 40.5 MBytes 339 Mbits/sec
[ 5] 4.00-5.01 sec 40.8 MBytes 340 Mbits/sec
[ 5] 5.01-6.00 sec 39.9 MBytes 336 Mbits/sec
[ 5] 6.00-7.00 sec 40.4 MBytes 339 Mbits/sec
[ 5] 7.00-8.00 sec 40.8 MBytes 342 Mbits/sec
[ 5] 8.00-9.00 sec 40.8 MBytes 341 Mbits/sec
[ 5] 9.00-10.00 sec 39.8 MBytes 334 Mbits/sec


[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 404 MBytes 339 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 402 MBytes 337 Mbits/sec receiver

iperf Done.

2 Likes

Dynalink DL-WRX36 (Qualcomm IPQ8072A)
(QuadCore ARMv8 A53, 2.2 Ghz) | snapshot | 780Mbps

ubus call system board

ubus call system board
{
"kernel": "6.6.67",
"hostname": "dynatown",
"system": "ARMv8 Processor rev 4",
"model": "Dynalink DL-WRX36",
"board_name": "dynalink,dl-wrx36",
"rootfs_type": "squashfs",
"release": {
"distribution": "OpenWrt",
"version": "SNAPSHOT",
"revision": "r28382+10-af6c1f9497",
"target": "qualcommax/ipq807x",
"description": "OpenWrt SNAPSHOT r28382+10-af6c1f9497",
"builddate": "1734957276"
}
}

/benchmark.sh

./benchmark.sh
Connecting to host 169.254.200.2, port 5201
[ 5] local 169.254.200.1 port 55876 connected to 169.254.200.2 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 95.5 MBytes 800 Mbits/sec 0 462 KBytes
[ 5] 1.00-2.00 sec 93.6 MBytes 785 Mbits/sec 0 486 KBytes
[ 5] 2.00-3.00 sec 92.8 MBytes 778 Mbits/sec 0 508 KBytes
[ 5] 3.00-4.00 sec 92.5 MBytes 776 Mbits/sec 0 508 KBytes
[ 5] 4.00-5.00 sec 92.5 MBytes 776 Mbits/sec 0 508 KBytes
[ 5] 5.00-6.00 sec 94.4 MBytes 790 Mbits/sec 0 534 KBytes
[ 5] 6.00-7.00 sec 92.1 MBytes 774 Mbits/sec 0 534 KBytes
[ 5] 7.00-8.00 sec 92.8 MBytes 778 Mbits/sec 0 534 KBytes
[ 5] 8.00-9.00 sec 92.5 MBytes 776 Mbits/sec 0 564 KBytes
[ 5] 9.00-10.00 sec 92.5 MBytes 776 Mbits/sec 0 564 KBytes


[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 931 MBytes 781 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 930 MBytes 780 Mbits/sec receiver

iperf Done.

./benchmark.sh -R

./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 52876 connected to 169.254.200.2 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 88.4 MBytes 740 Mbits/sec
[ 5] 1.00-2.00 sec 87.8 MBytes 736 Mbits/sec
[ 5] 2.00-3.00 sec 87.8 MBytes 737 Mbits/sec
[ 5] 3.00-4.00 sec 87.1 MBytes 731 Mbits/sec
[ 5] 4.00-5.00 sec 87.0 MBytes 730 Mbits/sec
[ 5] 5.00-6.00 sec 86.9 MBytes 728 Mbits/sec
[ 5] 6.00-7.00 sec 87.5 MBytes 734 Mbits/sec
[ 5] 7.00-8.00 sec 86.6 MBytes 727 Mbits/sec
[ 5] 8.00-9.00 sec 86.8 MBytes 728 Mbits/sec
[ 5] 9.00-10.00 sec 86.6 MBytes 727 Mbits/sec


[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 874 MBytes 733 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 872 MBytes 732 Mbits/sec receiver

iperf Done.

1 Like

Question, if one runs both the forward and reverse test one gets 4 throughput numbers, am I right in reporting the lowest of these four in the summary line?

Yes, I would prefer a lower number, you can think that's kind of expectation management.

1 Like