Openwrt Router Firmware

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
35,806
Reaction score
12,041
Using OOkla SpeedTest CLI to compare wireless latency.

Acer Windows 11 laptop with Inte AX201 WiFi 6 adapter. Close reange test, signal strength is good at around -40dBm to -45dBm for all three routers. With three wireless broadcasters forming a triangle, there will be some interferences among them even though I try to spread out the channel used.

From the results, we can still see that in terms of upload latency, RT-AX86U is the best among the three and H3C NX30 Pro is the worst. Kind of expected as well since the price of RT-AX86U is still the highest whereas H3C NX30 Pro is a very low cost WiFi 6 router. And in terms of speed, all three are actually pretty much the same.

1) H3C NX30 Pro running MediaTek vendor driver, CH36, 80MHz channel bandwidth, no QoS/SQM measures, router mode (Double NAT).

加速状态
快速转发引擎MediaTek HNAT
全锥形 NATBoardcom Fullcone
TCP 拥塞控制算法BBR

Bash:
root@OpenWrt:~# uname -a
Linux OpenWrt 5.4.255 #0 SMP Thu Dec 14 17:24:08 2023 aarch64 GNU/Linux
root@OpenWrt:~# ubus call system board | grep 'model\|description'
        "model": "H3C NX30PRO",
                "description": "ImmortalWrt 21.02-SNAPSHOT r20458-417b4cba51"

We can see upload latency is not that good.
Bash:
PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     4.54 ms   (jitter: 0.25ms, low: 4.19ms, high: 4.73ms)
    Download:   615.16 Mbps (data used: 1.0 GB)
                  9.38 ms   (jitter: 10.14ms, low: 4.08ms, high: 131.58ms)
      Upload:   298.00 Mbps (data used: 363.9 MB)
                 66.96 ms   (jitter: 41.50ms, low: 3.94ms, high: 567.14ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/ca13613a-588a-4992-9872-6d6418cc2185

2) ZTE BE7200 Pro+, CH149, 80MHz channel bandwidth, router mode (Double NAT)

Bash:
PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     3.31 ms   (jitter: 0.84ms, low: 3.22ms, high: 4.92ms)
    Download:   630.57 Mbps (data used: 981.1 MB)
                  9.98 ms   (jitter: 16.81ms, low: 4.22ms, high: 125.54ms)
      Upload:   388.82 Mbps (data used: 694.4 MB)
                 48.35 ms   (jitter: 17.87ms, low: 5.77ms, high: 167.79ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/84c771ce-3a5c-4150-87a5-5771fcede69e

3) Asus RT-AX86U, CH60, 80MHz channel bandwidth, router mode (no Double NAT)

Bash:
PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     3.27 ms   (jitter: 0.48ms, low: 2.76ms, high: 3.90ms)
    Download:   611.67 Mbps (data used: 962.1 MB)
                  9.31 ms   (jitter: 14.63ms, low: 3.12ms, high: 131.11ms)
      Upload:   370.16 Mbps (data used: 670.9 MB)
                 28.90 ms   (jitter: 14.02ms, low: 3.60ms, high: 239.34ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/ff75e180-bbd2-443c-85c8-031c20100d97

4) H3C NX30 Pro with Open Source driver -- speed is a bit slower but latency is a bit better than vendor driver.

Bash:
root@ImmortalWrt:~# uname -a
Linux ImmortalWrt 5.15.155 #0 SMP Fri May 3 14:16:03 2024 aarch64 GNU/Linux
root@ImmortalWrt:~# ubus call system board | grep 'model\|description'
        "model": "H3C Magic NX30 Pro (NMBM layout)",
                "description": "ImmortalWrt 23.05-SNAPSHOT r27694-e540dc745a"

PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     4.34 ms   (jitter: 0.44ms, low: 3.70ms, high: 4.66ms)
    Download:   531.01 Mbps (data used: 629.5 MB)
                  9.39 ms   (jitter: 7.69ms, low: 4.03ms, high: 116.73ms)
      Upload:   478.65 Mbps (data used: 791.9 MB)
                 37.11 ms   (jitter: 26.70ms, low: 9.54ms, high: 489.05ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/d247ee1f-9f06-4ba0-a0aa-fe0342185e97
PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     4.37 ms   (jitter: 0.41ms, low: 4.10ms, high: 4.83ms)
    Download:   450.82 Mbps (data used: 655.6 MB)
                 10.15 ms   (jitter: 13.69ms, low: 3.30ms, high: 71.26ms)
      Upload:   439.26 Mbps (data used: 488.0 MB)
                 38.62 ms   (jitter: 18.51ms, low: 7.51ms, high: 342.70ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/af297a1d-06e8-47be-a391-3119943e103c
 
Last edited:

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
35,806
Reaction score
12,041
Using OOkla SpeedTest CLI to compare wireless latency.

Acer Windows 11 laptop with Inte AX201 WiFi 6 adapter. Close reange test, signal strength is good at around -40dBm to -45dBm for all three routers. With three wireless broadcasters forming a triangle, there will be some interferences among them even though I try to spread out the channel used.

4) H3C NX30 Pro with Open Source driver -- speed is a bit slower but latency is a bit better than vendor driver.
And then as mentioned earlier, sqm can be used to improve the latency with the compromise on the speed.

Bash:
root@ImmortalWrt:~# uname -a
Linux ImmortalWrt 5.15.155 #0 SMP Fri May 3 14:16:03 2024 aarch64 GNU/Linux
root@ImmortalWrt:~# ubus call system board | grep 'model\|description'
        "model": "H3C Magic NX30 Pro (NMBM layout)",
                "description": "ImmortalWrt 23.05-SNAPSHOT r27694-e540dc745a"

root@ImmortalWrt:~#  LIMIT=5000 ; for ac in 0 1 2 3; do echo $ac $LIMIT $LIMIT > /sys/kernel/debug/ieee80211/phy1/aql_txq_limit; done

root@ImmortalWrt:~# cat /sys/kernel/debug/ieee80211/phy1/aql_txq_limit
AC      AQL limit low   AQL limit high
VO      5000            5000
VI      5000            5000
BE      5000            5000
BK      5000            5000

root@ImmortalWrt:~# cat /etc/config/sqm

config queue 'eth1'
        option enabled '1'
        option interface 'eth1'
        option download '200000'
        option upload '200000'
        option qdisc 'cake'
        option script 'piece_of_cake.qos'
        option linklayer 'ethernet'
        option debug_logging '0'
        option verbosity '5'
        option overhead '44'

root@ImmortalWrt:~# ./speedtest

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     2.66 ms   (jitter: 0.18ms, low: 2.57ms, high: 2.82ms)
    Download:   187.65 Mbps (data used: 86.9 MB)
                  2.43 ms   (jitter: 0.35ms, low: 1.88ms, high: 5.00ms)
      Upload:   187.39 Mbps (data used: 165.9 MB)
                  2.38 ms   (jitter: 0.40ms, low: 1.85ms, high: 13.20ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/21ff0617-c380-4bff-b5e2-7803e8605581

We can see that the wireless upload latency gets much better.

The CPU usage of both cores goes up to around 67% during the wireless speed test. CAKE SQM does tax the CPU a bit.

Bash:
PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     4.34 ms   (jitter: 0.20ms, low: 4.17ms, high: 4.50ms)
    Download:   186.36 Mbps (data used: 88.9 MB)
                  6.65 ms   (jitter: 4.45ms, low: 2.59ms, high: 20.70ms)
      Upload:   183.97 Mbps (data used: 151.6 MB)
                  5.85 ms   (jitter: 3.05ms, low: 3.75ms, high: 27.88ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/b02a206b-f916-4fe9-8c99-a5cecc6a57ae

PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     4.59 ms   (jitter: 0.29ms, low: 4.40ms, high: 5.10ms)
    Download:   185.32 Mbps (data used: 179.7 MB)
                  7.05 ms   (jitter: 4.80ms, low: 3.18ms, high: 25.45ms)
      Upload:   185.59 Mbps (data used: 169.3 MB)
                  5.38 ms   (jitter: 2.43ms, low: 3.18ms, high: 34.62ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/c4a9697b-d076-4649-aed9-3ac037fe5986

BTW, the CPU does not seem to be able to handle 300Mbps/300Mbps CAKE SQM as the wireless download speed drops significantly to around 150Mbps.
 
Last edited:

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
35,806
Reaction score
12,041
Another firmware image using mainline OpenWRT kernel but with WED on (HW wireless offload).

Enable Fast Forwarding
Enable Fast Forwarding Hardware Offload
Enable Fast Forwarding Hardware Offload WED

Router info
Code:
root@X-WRT:~# uname -a
Linux X-WRT 6.6.30 #0 SMP Sat May 11 05:03:48 2024 aarch64 GNU/Linux
root@X-WRT:~# ubus call system board | grep 'model\|description'
        "model": "H3C Magic NX30 Pro (NMBM-Enabled layout)",
                "description": "X-WRT 24.04_b202405111313 Noble"
root@X-WRT:~# cat /sys/kernel/debug/ieee80211/phy1/aql_txq_limit
AC      AQL limit low   AQL limit high
VO      5000            12000
VI      5000            12000
BE      5000            12000
BK      5000            12000
BC/MC   50000
root@X-WRT:~# LIMIT=5000 ; for ac in 0 1 2 3; do echo $ac $LIMIT $LIMIT > /sys/kernel/debug/ieee80211/phy1/aql_txq_limit
; done
root@X-WRT:~#  cat /sys/kernel/debug/ieee80211/phy1/aql_txq_limit
AC      AQL limit low   AQL limit high
VO      5000            5000
VI      5000            5000
BE      5000            5000
BK      5000            5000
BC/MC   50000
root@X-WRT:~# iwinfo | grep 'Hardware:\|PHY name'
          Hardware: embedded [MediaTek MT7981]
          Supports VAPs: yes  PHY name: phy1
root@X-WRT:~#  iw list | grep 'Wiphy\|TXQS\|AIRTIME_FAIRNESS\|AQL'
Wiphy phy1
                * [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
                * [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
                * [ AQL ]: Airtime Queue Limits (AQL)
Wiphy phy0
                * [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
                * [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
                * [ AQL ]: Airtime Queue Limits (AQL)
root@X-WRT:~# ./speedtest

   Speedtest by Ookla

      Server: MyRepublic Singapore - Singapore (id: 5935)
         ISP: Singtel Fibre
Idle Latency:     3.14 ms   (jitter: 0.28ms, low: 2.79ms, high: 3.31ms)
    Download:   699.24 Mbps (data used: 662.6 MB)
                  3.79 ms   (jitter: 1.07ms, low: 2.00ms, high: 14.40ms)
      Upload:   907.60 Mbps (data used: 965.4 MB)
                  8.30 ms   (jitter: 1.14ms, low: 3.67ms, high: 20.03ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/7c61b3d3-18f4-4be7-bf60-77bf28988ee0

Wired Speedtest: LAN client
The above OOkla Speedtest is running from within the router. Using the Windows Acer 11 laptop with Ugreen USB to gigabit adapter shows a bit different result, as it goes through NAT.

Bash:
PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     4.01 ms   (jitter: 0.47ms, low: 3.51ms, high: 4.35ms)
    Download:   898.28 Mbps (data used: 425.5 MB)
                  3.84 ms   (jitter: 0.76ms, low: 2.18ms, high: 5.16ms)
      Upload:   519.02 Mbps (data used: 603.1 MB)
                 35.49 ms   (jitter: 2.73ms, low: 5.08ms, high: 40.61ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/d3a88e77-06c0-4195-8e9b-076835276a54
PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     3.46 ms   (jitter: 0.47ms, low: 3.14ms, high: 3.90ms)
    Download:   899.13 Mbps (data used: 450.6 MB)
                  4.46 ms   (jitter: 0.76ms, low: 2.48ms, high: 7.22ms)
      Upload:   728.86 Mbps (data used: 1.3 GB)
                 31.62 ms   (jitter: 2.87ms, low: 4.65ms, high: 43.92ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/014603f7-3e57-4127-b721-9f1f7d2072f8

Wireless speedtest:
Acer Windows 11 laptop with Intel AX201 adapter, 3m away, -55dBm singal strength. The H3C NX30 Pro router is using CH40 and 80MHz channel bandwidth, no SQM/QoS settings. BTW, SQM does not seem to work in this case.

Bash:
PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     4.73 ms   (jitter: 0.43ms, low: 4.32ms, high: 5.03ms)
    Download:   579.50 Mbps (data used: 802.1 MB)
                  9.57 ms   (jitter: 5.30ms, low: 4.88ms, high: 119.04ms)
      Upload:   571.49 Mbps (data used: 953.8 MB)
                 30.93 ms   (jitter: 9.29ms, low: 9.03ms, high: 76.62ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/6f84972e-cead-422d-80f5-2d03faa889e7
PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     4.39 ms   (jitter: 0.40ms, low: 3.84ms, high: 4.63ms)
    Download:   622.90 Mbps (data used: 689.3 MB)
                  9.10 ms   (jitter: 2.93ms, low: 4.37ms, high: 17.37ms)
      Upload:   664.36 Mbps (data used: 799.0 MB)
                 26.51 ms   (jitter: 8.04ms, low: 6.57ms, high: 82.09ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/32f48d62-bbba-4cd3-aa2c-c9491b7ee007
 
Last edited:

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
35,806
Reaction score
12,041
Recent update from OpenWRT -- support for Linksys MX4200 v1/v2 (still with snapshot release)
https://openwrt.org/toh/linksys/mx4200_v1_and_v2

Potential Limitations and issue
1) Ath11k memory: The ath11k driver needed for the main wireless radios uses a lot of memory when there are few stations connected and low bandwidth traffic flowing.
2) NSS acceleration: the Qualcom NSS hardware acceleration is not available and maybe never will be. There is a community effort to enable it in the forum but this does not guarantee that it will be officially supported in the future.
3) The IPQ807x target has not yet support for DSA, on OpenWrt: See this forum post. The regular DSA instructions on the mini tutorial do demonstrably work however; wireless interfaces need to be set up in the Network→Wireless section and then be bridged in their Interface Configuration→General Setup→Network menu to connect them to wired interfaces, and the contributor making this statement only uses tagged VLANs on the wired ports.
 

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
35,806
Reaction score
12,041
If I look at the OpenWRT support for WiFi 6 routers, looks like MediaTek Filogic 830 is the way to go for mid-end and MediaTek FIlogic 820 for the lower-end.
https://openwrt.org/toh/views/toh_available_16128_ax-wifi

1) More popular ones from OpenWRT forum -- Filogic 830
GL.iNet GL-MT6000
Asus TUF-AX6000
Asus TUF-AX4200
Xiaomi Redmi AX6000

TP-Link XDR-4288/6086/6088

2) More popular ones from OpenWRT forum -- Filogic 820
GL.iNet GL-MT3000
Xiaomi AX3000T


3) MT7922x based routers were the first batch of WiFi 6 routers supported by OpenWRT. I think they can still be used.

Linksys E8450
Xiaomi AX3200
Xiaomi AX6S

D-Link Eagle Pro AI M32
D-Link Eagle Pro AI R32
 
Last edited:

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
35,806
Reaction score
12,041
Interestingly once I set up H3C NX30 Pro (with Open Source WiFi driver) in AP mode, the wireless speed goes up quite significantly.

Same setup: Singtel 1Gbps Fibre Internet, Acer Windows 11 laptop with Intel AX201 WiFi 6 adapter, 3m close range, CH36, 80MHz channel bandwidth.

Bash:
PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     4.16 ms   (jitter: 1.23ms, low: 3.93ms, high: 6.30ms)
    Download:   629.54 Mbps (data used: 645.0 MB)
                  8.64 ms   (jitter: 5.74ms, low: 4.61ms, high: 115.73ms)
      Upload:   694.20 Mbps (data used: 822.4 MB)
                 24.72 ms   (jitter: 9.97ms, low: 11.30ms, high: 111.52ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/3427ced4-9c6a-4b3b-b1ee-33c90380701e

PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     3.46 ms   (jitter: 0.29ms, low: 3.01ms, high: 3.67ms)
    Download:   608.07 Mbps (data used: 1.1 GB)
                  8.54 ms   (jitter: 3.90ms, low: 3.21ms, high: 31.04ms)
      Upload:   580.85 Mbps (data used: 978.4 MB)
                 30.82 ms   (jitter: 11.68ms, low: 4.45ms, high: 142.90ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/409e20c0-e211-4d12-8546-5b503311795d

OpenWRT dumb AP setup guide:
https://openwrt.org/docs/guide-user/network/wifi/dumbap
 
Last edited:

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
35,806
Reaction score
12,041
Interestingly once I set up H3C NX30 Pro (with Open Source WiFi driver) in AP mode, the wireless speed goes up quite significantly.

Same setup: Singtel 1Gbps Fibre Internet, Acer Windows 11 laptop with Intel AX201 WiFi 6 adapter, 3m close range, CH36, 80MHz channel bandwidth.

Bash:
PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     3.46 ms   (jitter: 0.29ms, low: 3.01ms, high: 3.67ms)
    Download:   608.07 Mbps (data used: 1.1 GB)
                  8.54 ms   (jitter: 3.90ms, low: 3.21ms, high: 31.04ms)
      Upload:   580.85 Mbps (data used: 978.4 MB)
                 30.82 ms   (jitter: 11.68ms, low: 4.45ms, high: 142.90ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/409e20c0-e211-4d12-8546-5b503311795d

The above test is with the following configuration.
Singtel ONT -- TP-Link TL-SG105E Smart Switch -- OpenWRT virtual router on Intel N100 Proxmox PVE 8.2 (no SQM/QoS settings) -- H3C NX30 Pro in AP mode

We can see the upload latency is on the high side. If I set up the SQM Cake on the main OpenWRT virtual router (900Mbps download, 500Mbps upload limit), then the upload latency will become better (lower latency).

Bash:
PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     3.23 ms   (jitter: 0.40ms, low: 2.71ms, high: 3.85ms)
    Download:   647.39 Mbps (data used: 893.6 MB)
                  7.64 ms   (jitter: 3.88ms, low: 2.28ms, high: 36.32ms)
      Upload:   453.38 Mbps (data used: 802.8 MB)
                  9.76 ms   (jitter: 6.09ms, low: 2.71ms, high: 59.67ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/67fcd504-eaae-4354-a828-0c4d0dbd1dde
 

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
35,806
Reaction score
12,041
I have 4 units of old TP-Link Deco M4 v1 AC1200 bought in 2019 (take note TP-Link still supports this old version).
https://forums.hardwarezone.com.sg/threads/tp-link-deco-m4-pretty-good-for-the-price.6030292/

I have not used them for a while, today, I tried to flash the main Deco to OpenWRT and it seems to work fine. It is a bit complicated but you just need to follow the guide here. Take note you need to set up the Deco using the Deco App before flashing OpenWRT as per the guide.
https://forum.openwrt.org/t/openwrt-support-for-tp-link-deco-m4r/68940/144

Only thing different from the above guide is that I use the following exploit file.
https://github.com/naf419/tplink_deco_exploits/releases/tag/v2

Some other reference from TP-Link.
Method 2: HTTP Uboot web-based interface (Taking Deco M4 as an example)
https://community.tp-link.com/us/home/kb/detail/490

I use my Mac Mini M1 2020's built-in TFTP server in this case. But you can use Linux or Windows as well.
https://bacnh.com/howto-start-tftp-server-on-macos

Strange thing I can see only one LAN interface and no WAN interface. So I set it up as a dumb AP.
https://openwrt.org/docs/guide-user/network/wifi/dumbap

Note: this is just an experiment. You should probably stick to TP-Link Stock FW since it is still supported by TP-Link. Proceed at your own risk if you want to try OpenWRT.
 
Last edited:

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
35,806
Reaction score
12,041
TP-Link Deco M4 v1 with OpenWRT 23.05.3 release Wireless speed is similar to TP-Link Stock FW.

3m close range, Acer Windows 11 laptop with Intel AX201 WiFi 6 adapter.

Bash:
PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     5.14 ms   (jitter: 0.15ms, low: 4.88ms, high: 5.25ms)
    Download:   314.30 Mbps (data used: 164.9 MB)
                 12.23 ms   (jitter: 4.01ms, low: 4.47ms, high: 19.07ms)
      Upload:   403.50 Mbps (data used: 449.0 MB)
                 51.80 ms   (jitter: 18.29ms, low: 5.38ms, high: 392.81ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/d793d20d-e231-4c1b-aefc-f8d0733875d8

LAN speed is fine as well, using the same laptop with Ugreen USB 3.0 to Gigabit Ethernet adapter.
Bash:
PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     4.18 ms   (jitter: 0.52ms, low: 3.65ms, high: 4.47ms)
    Download:   912.73 Mbps (data used: 604.9 MB)
                  3.73 ms   (jitter: 0.55ms, low: 1.85ms, high: 5.20ms)
      Upload:   946.06 Mbps (data used: 1.1 GB)
                 12.39 ms   (jitter: 1.05ms, low: 4.16ms, high: 32.27ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/fab90325-e014-455f-bc1f-c8d2a7b6eb3a

Info for OpenWRT, take note it has a low end CPU and only 128MB RAM, so it is better to use as an AP anyway.
https://openwrt.org/toh/hwdata/tp-link/tp-link_m4r_v1

CPU: Qualcomm Atheros QCA9563, single core MIPS_24kc CPU at about 650MHz
Flash: 16MB
RAM: 128MB
WLAN Hardware:Qualcomm Atheros QCA9563, Qualcomm Atheros QCA9886WLAN
2.4GHz:b/g/nWLAN
5.0GHz:a/n/ac
WLAN driver:ath10k-ct

HostnameOpenWrt
ModelTP-Link Deco M4R v1
ArchitectureQualcomm Atheros QCA956X ver 1 rev 0
Target Platformath79/generic
Firmware VersionOpenWrt 23.05.3 r23809-234f1a2efa / LuCI openwrt-23.05 branch git-24.073.29889-cd7e519
Kernel Version5.15.150

Bash:
root@OpenWrt:~# cat /etc/config/network

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd1a:0c50:034c::/48'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'eth0.1'

config interface 'lan'
        option device 'br-lan'
        option proto 'dhcp'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '3 5 0t'

root@OpenWrt:~# free
              total        used        free      shared  buff/cache   available
Mem:         122056       47764       57632         996       16660       40888
Swap:             0           0           0

root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 4.3M      4.3M         0 100% /rom
tmpfs                    59.6M    996.0K     58.6M   2% /tmp
/dev/mtdblock4            7.7M      3.7M      4.0M  48% /overlay
overlayfs:/overlay        7.7M      3.7M      4.0M  48% /
tmpfs                   512.0K         0    512.0K   0% /dev

root@OpenWrt:~# ubus call system board | grep 'model\|description'
        "model": "TP-Link Deco M4R v1",
                "description": "OpenWrt 23.05.3 r23809-234f1a2efa"

root@OpenWrt:~# iw list | grep 'Wiphy\|TXQS\|AIRTIME_FAIRNESS\|AQL'
Wiphy phy1
                * [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
                * [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
Wiphy phy0
                * [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
                * [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
                * [ AQL ]: Airtime Queue Limits (AQL)
root@OpenWrt:~# iwinfo | grep 'Hardware:\|PHY name'
          Hardware: 168C:0056 0000:0000 [Qualcomm Atheros QCA9886]
          Supports VAPs: yes  PHY name: phy0
          Hardware: embedded [Qualcomm Atheros QCA9560]
          Supports VAPs: yes  PHY name: phy1

Edit: Stock TP-Link FW wireless performance seems to be a bit better.
Bash:
PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     3.78 ms   (jitter: 0.34ms, low: 3.00ms, high: 4.21ms)
    Download:   488.44 Mbps (data used: 342.0 MB)
                  9.84 ms   (jitter: 3.40ms, low: 3.35ms, high: 25.53ms)
      Upload:   323.72 Mbps (data used: 549.9 MB)
                 14.94 ms   (jitter: 11.87ms, low: 5.64ms, high: 326.45ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/0eaf45bc-80b7-4064-9610-25437ae963ae
 
Last edited:

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
35,806
Reaction score
12,041
I have two old TP-Link range extenders: RE350v1 and RE305v1, bought in 2018.

1) I have flashed RE350v1 with OpenWRT 19.07 last time. I can see the latest support is only until 21.02.7.

Hostname: OpenWrt
Model: TP-LINK RE350 v1
Architecture: MediaTek MT7621 ver:1 eco:3
Firmware Version:
OpenWrt 19.07.9 r11405-2a3558b0de / LuCI openwrt-19.07 branch git-22.045.73925-36e5c1c
Kernel Version: 4.14.267

Using it as a wireless media bridge (WWAN and LAN).

Speedtest:

Bash:
PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     3.09 ms   (jitter: 0.33ms, low: 3.01ms, high: 3.63ms)
    Download:   369.24 Mbps (data used: 368.0 MB)
                 13.02 ms   (jitter: 3.89ms, low: 3.26ms, high: 23.29ms)
      Upload:   284.63 Mbps (data used: 367.5 MB)
                 14.20 ms   (jitter: 5.48ms, low: 5.01ms, high: 64.70ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/f60eb7c1-b2f4-48f0-8cab-2bdcab9d7ff0

OpenWRT info.
Bash:
root@OpenWrt:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00020000 00010000 "u-boot"
mtd1: 005e0000 00010000 "firmware"
mtd2: 001cbea2 00010000 "kernel"
mtd3: 0041415e 00010000 "rootfs"
mtd4: 001a0000 00010000 "rootfs_data"
mtd5: 00050000 00010000 "config"
mtd6: 00010000 00010000 "radio"
root@OpenWrt:~#  ubus call system board | grep 'model\|description'
        "model": "TP-LINK RE350 v1",
                "description": "OpenWrt 19.07.9 r11405-2a3558b0de"
root@OpenWrt:~# iw list | grep 'Wiphy\|TXQS\|AIRTIME_FAIRNESS\|AQL'
Wiphy phy1
                * [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
Wiphy phy0
                * [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
root@OpenWrt:~# iwinfo | grep 'Hardware:\|PHY name'
          Hardware: 14C3:7603 14C3:7603 [MediaTek MT7603E]
          Supports VAPs: yes  PHY name: phy0
          Hardware: 14C3:7662 14C3:7662 [MediaTek MT76x2E]
          Supports VAPs: yes  PHY name: phy1
root@OpenWrt:~# cat /sys/kernel/debug/ieee80211/phy1/aql_txq_limit
cat: can't open '/sys/kernel/debug/ieee80211/phy1/aql_txq_limit': No such file or directory
root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 2.5M      2.5M         0 100% /rom
tmpfs                    28.7M    268.0K     28.4M   1% /tmp
/dev/mtdblock4            1.6M    236.0K      1.4M  14% /overlay
overlayfs:/overlay        1.6M    236.0K      1.4M  14% /
tmpfs                   512.0K         0    512.0K   0% /dev
root@OpenWrt:~# free
              total        used        free      shared  buff/cache   available
Mem:          58768       26040       23160         268        9568       16600
Swap:             0           0           0
root@OpenWrt:~# uname -a
Linux OpenWrt 4.14.267 #0 SMP Wed Feb 16 20:47:59 2022 mips GNU/Linux

2) As for RE305 (AS V1), I have never been able to flash with OpenWRT since the stock FW always says that the uploaded image has checksum error. So I gave up. It is not that useful anyway as it has only 100Mbps LAN port.
 
Last edited:

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
35,806
Reaction score
12,041
Upgrading RE350v1 to the latest supported OpenWRT version 21.02.7.

HostnameOpenWrt
ModelTP-LINK RE350 v1
ArchitectureMediaTek MT7621 ver:1 eco:3
Target Platformramips/mt7621
Firmware VersionOpenWrt 21.02.7 r16847-f8282da11e / LuCI openwrt-21.02 branch git-23.093.57360-e98243e
Kernel Version5.4.238

OpenWRT info.
Bash:
root@OpenWrt:~# uname -a
Linux OpenWrt 5.4.238 #0 SMP Mon Apr 17 13:15:36 2023 mips GNU/Linux

root@OpenWrt:~# ubus call system board | grep 'model\|description'
        "model": "TP-LINK RE350 v1",
                "description": "OpenWrt 21.02.7 r16847-f8282da11e"

root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 3.3M      3.3M         0 100% /rom
tmpfs                    27.9M      1.1M     26.9M   4% /tmp
tmpfs                    27.9M     64.0K     27.9M   0% /tmp/root
tmpfs                   512.0K         0    512.0K   0% /dev
/dev/mtdblock4          384.0K    284.0K    100.0K  74% /overlay
overlayfs:/overlay      384.0K    284.0K    100.0K  74% /

root@OpenWrt:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00020000 00010000 "u-boot"
mtd1: 005e0000 00010000 "firmware"
mtd2: 0024990c 00010000 "kernel"
mtd3: 003966f4 00010000 "rootfs"
mtd4: 00060000 00010000 "rootfs_data"
mtd5: 00050000 00010000 "config"
mtd6: 00010000 00010000 "radio"

root@OpenWrt:~# iw list | grep 'Wiphy\|TXQS\|AIRTIME_FAIRNESS\|AQL'
Wiphy phy1
                * [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
                * [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
                * [ AQL ]: Airtime Queue Limits (AQL)
Wiphy phy0
                * [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
                * [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
                * [ AQL ]: Airtime Queue Limits (AQL)

root@OpenWrt:~# cat /sys/kernel/debug/ieee80211/phy1/aql_txq_limit
AC      AQL limit low   AQL limit high
VO      5000            12000
VI      5000            12000
BE      5000            12000
BK      5000            12000

root@OpenWrt:~# LIMIT=5000 ; for ac in 0 1 2 3; do echo $ac $LIMIT $LIMIT > /sys/kernel/debug/ieee80211/phy1/aql_txq_limit; done

root@OpenWrt:~# cat /sys/kernel/debug/ieee80211/phy1/aql_txq_limit
AC      AQL limit low   AQL limit high
VO      5000            5000
VI      5000            5000
BE      5000            5000
BK      5000            5000

SpeedTest: using it as a wireless media bridge (WWAN + LAN).
Bash:
PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     3.48 ms   (jitter: 0.44ms, low: 3.21ms, high: 4.98ms)
    Download:   321.37 Mbps (data used: 291.3 MB)
                 13.92 ms   (jitter: 5.53ms, low: 5.52ms, high: 29.60ms)
      Upload:   303.11 Mbps (data used: 410.3 MB)
                 23.72 ms   (jitter: 5.58ms, low: 6.23ms, high: 43.32ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/0bf02b5f-d40f-44b9-a987-d7dd3a48f726
 

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
35,806
Reaction score
12,041
Just follow the following guide to setup TP-Link RE350v1 running OpenWRT as a wireless bridge using WDS (same network as the main wireless AP, no Double NAT)
https://openwrt.org/docs/guide-user/network/wifi/atheroswds

The following are the main configuration files (2.4G radio disabled, 5G radio linked to the upstream AP, no wireless AP function).
Bash:
root@OpenWrt:~# cat /etc/config/network

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option packet_steering '1'
        option ula_prefix 'fda2:547b:d6dd::/48'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'lan'
        option stp '1'
        option ipv6 '0'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.38.2'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option gateway '192.168.38.1'

root@OpenWrt:~# cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option path '1e140000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0'
        option channel '1'
        option band '2g'
        option htmode 'HT20'
        option disabled '1'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'OpenWrt'
        option encryption 'none'

config wifi-device 'radio1'
        option type 'mac80211'
        option path '1e140000.pcie/pci0000:00/0000:00:01.0/0000:02:00.0'
        option channel '36'
        option band '5g'
        option htmode 'VHT80'
        option country 'SG'
        option cell_density '0'

config wifi-iface 'wifinet2'
        option device 'radio1'
        option mode 'sta'
        option ssid 'Linksys12030'
        option key 'xxxxxxxxxxxxxxxxx'
        option encryption 'psk2+ccmp'
        option wds '1'
        option network 'lan'

root@OpenWrt:~# cat /etc/config/dhcp

config dnsmasq
        option domainneeded '1'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
        option localservice '1'
        option ednspacket_max '1232'
        list server '192.168.38.1'

config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv4 'server'
        option ignore '1'
        list ra_flags 'none'

config dhcp 'wan'
        option interface 'wan'
        option ignore '1'

config odhcpd 'odhcpd'
        option maindhcp '0'
        option leasefile '/tmp/hosts/odhcpd'
        option leasetrigger '/usr/sbin/odhcpd-update'
        option loglevel '4'

Speedtest for LAN client
Bash:
PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     3.50 ms   (jitter: 0.69ms, low: 2.98ms, high: 4.68ms)
    Download:   333.82 Mbps (data used: 159.1 MB)
                 13.55 ms   (jitter: 6.75ms, low: 3.65ms, high: 26.98ms)
      Upload:   411.83 Mbps (data used: 459.2 MB)
                 20.49 ms   (jitter: 6.37ms, low: 5.40ms, high: 35.66ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/e60b1686-2ec3-43f9-8df4-34af3341cb0e

BTW, even though I disable IPv6 of the RE350v1, LAN client will still gets IPv6 address from the main router (192.168.38.1).
Bash:
PS C:\work\speedtest\iperf-3.16-win64> ping ipv6.google.com

Pinging ipv6.l.google.com [2404:6800:4003:c1c::8b] with 32 bytes of data:
Reply from 2404:6800:4003:c1c::8b: time=4ms
Reply from 2404:6800:4003:c1c::8b: time=5ms
Reply from 2404:6800:4003:c1c::8b: time=6ms
Reply from 2404:6800:4003:c1c::8b: time=5ms

Ping statistics for 2404:6800:4003:c1c::8b:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 4ms, Maximum = 6ms, Average = 5ms
 
Last edited:

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
35,806
Reaction score
12,041
Upgraded Linksys EA7500v2 from 23.05.0 to 23.05.3. The upgrade is very smooth as I can keep the configurations (configured as a dumb AP).
https://openwrt.org/docs/guide-user/network/wifi/dumbap

HostnameOpenWrt
ModelLinksys EA7500 v2
ArchitectureMediaTek MT7621 ver:1 eco:3
Target Platformramips/mt7621
Firmware VersionOpenWrt 23.05.3 r23809-234f1a2efa / LuCI openwrt-23.05 branch git-24.073.29889-cd7e519
Kernel Version5.15.150
Local Time2024-05-22 03:08:46
Uptime0h 17m 7s
Load Average0.16, 0.11, 0.09

OpenWRT info:
Bash:
root@OpenWrt:~# uname -a
Linux OpenWrt 5.15.150 #0 SMP Fri Mar 22 22:09:42 2024 mips GNU/Linux
root@OpenWrt:~# ubus call system board | grep 'model\|description'
        "model": "Linksys EA7500 v2",
                "description": "OpenWrt 23.05.3 r23809-234f1a2efa"
root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 4.3M      4.3M         0 100% /rom
tmpfs                   122.2M   1020.0K    121.2M   1% /tmp
/dev/ubi0_1              24.0M      3.9M     18.8M  17% /overlay
overlayfs:/overlay       24.0M      3.9M     18.8M  17% /
tmpfs                   512.0K         0    512.0K   0% /dev
root@OpenWrt:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00080000 00020000 "boot"
mtd1: 00040000 00020000 "u_env"
mtd2: 00040000 00020000 "factory"
mtd3: 00040000 00020000 "s_env"
mtd4: 00040000 00020000 "devinfo"
mtd5: 00400000 00020000 "kernel"
mtd6: 02400000 00020000 "ubi"
mtd7: 00400000 00020000 "alt_kernel"
mtd8: 02400000 00020000 "alt_rootfs"
mtd9: 00100000 00020000 "sysdiag"
mtd10: 02d00000 00020000 "syscfg"
root@OpenWrt:~# iw list | grep 'Wiphy\|TXQS\|AIRTIME_FAIRNESS\|AQL'
Wiphy phy1
                * [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
                * [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
                * [ AQL ]: Airtime Queue Limits (AQL)
Wiphy phy0
                * [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
                * [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
                * [ AQL ]: Airtime Queue Limits (AQL)
root@OpenWrt:~# cat /sys/kernel/debug/ieee80211/phy1/aql_txq_limit
AC      AQL limit low   AQL limit high
VO      5000            12000
VI      5000            12000
BE      5000            12000
BK      5000            12000
root@OpenWrt:~# LIMIT=5000 ; for ac in 0 1 2 3; do echo $ac $LIMIT $LIMIT > /sys/kernel/debug/ieee80211/phy1/aql_txq_limit; done
root@OpenWrt:~# cat /sys/kernel/debug/ieee80211/phy1/aql_txq_limit
AC      AQL limit low   AQL limit high
VO      5000            5000
VI      5000            5000
BE      5000            5000
BK      5000            5000

SpeedTest result is decent.
Bash:
PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     5.01 ms   (jitter: 0.84ms, low: 4.25ms, high: 5.66ms)
    Download:   456.85 Mbps (data used: 398.6 MB)
                 10.64 ms   (jitter: 4.27ms, low: 4.25ms, high: 38.25ms)
      Upload:   458.49 Mbps (data used: 630.2 MB)
                 11.41 ms   (jitter: 5.20ms, low: 3.12ms, high: 81.22ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/a0b4584f-fd1f-4381-9c24-00f03cd8f506

Take note upstream main router is OpenWRT virtual router (192.168.38.1) with SQM ON. This helps to reduce the upload latency.
Bash:
root@OpenWrt:~# cat /etc/config/sqm

config queue 'eth1'
        option enabled '1'
        option interface 'eth0'
        option download '900000'
        option upload '500000'
        option qdisc 'cake'
        option script 'piece_of_cake.qos'
        option linklayer 'ethernet'
        option debug_logging '0'
        option verbosity '5'
        option overhead '44'
 

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
35,806
Reaction score
12,041
OpenWRT mainline seems to have problem with Linksys WRT1900AC v1 as reported previously. So I just upgrade the installation from OpenWRT 22.03 to an unofficial snapshot build, which is quite up to date with Kernel 6.6.30.
https://divested.dev/unofficial-openwrt-builds/mvebu-linksys/
https://forum.openwrt.org/t/diveste...ened-builds-for-linksys-wrt-series/80522/1473

Bash:
root@OpenWrt:~# uname -a
Linux OpenWrt 6.6.30 #0 SMP Thu May 16 17:43:04 2024 armv7l GNU/Linux
root@OpenWrt:~# ubus call system board | grep 'model\|description'
        "model": "Linksys WRT1900AC v1",
                "description": "Divested-WRT SNAPSHOT r26335+10-96e402aef7"
root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                12.5M     12.5M         0 100% /rom
tmpfs                   120.2M     19.4M    100.9M  16% /tmp
/dev/ubi0_1              16.4M    200.0K     15.3M   1% /overlay
overlayfs:/overlay       16.4M    200.0K     15.3M   1% /
ubi1:syscfg              30.8M    440.0K     28.8M   1% /tmp/syscfg
tmpfs                   512.0K         0    512.0K   0% /dev
root@OpenWrt:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00100000 00020000 "u-boot"
mtd1: 00040000 00020000 "u_env"
mtd2: 00040000 00020000 "s_env"
mtd3: 00100000 00020000 "devinfo"
mtd4: 02800000 00020000 "kernel1"
mtd5: 02400000 00020000 "rootfs1"
mtd6: 02800000 00020000 "kernel2"
mtd7: 02400000 00020000 "ubi"
mtd8: 02600000 00020000 "syscfg"
mtd9: 00780000 00020000 "unused_area"
mtd10: 00008000 00008000 "spi0.0"
root@OpenWrt:~# iw list | grep 'Wiphy\|TXQS\|AIRTIME_FAIRNESS\|AQL'
Wiphy phy1
                * [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
Wiphy phy0
                * [ TXQS ]: FQ-CoDel-enabled intermediate TXQs

Wireless speedtest: Linksys WRT1900AC V1 in router mode (Double NAT) behind OpenWRT virtual router. The speed seems to be on the low side. But then this router is more than 10 years old (I got it in April 2014 and used it as main router until early 2020).
Bash:
PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     3.55 ms   (jitter: 0.19ms, low: 3.39ms, high: 3.96ms)
    Download:   356.22 Mbps (data used: 187.1 MB)
                 13.59 ms   (jitter: 3.96ms, low: 5.27ms, high: 30.37ms)
      Upload:   298.98 Mbps (data used: 320.2 MB)
                 44.49 ms   (jitter: 11.71ms, low: 21.88ms, high: 180.42ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/a704777f-1c7d-4c07-b2ef-1c7d2add89e0

Wired OOkla SpeedTest running from within the router (disable upstream OpenWRT virtual router SQM).
Bash:
root@OpenWrt:~# ./speedtest

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     1.84 ms   (jitter: 0.16ms, low: 1.62ms, high: 1.95ms)
    Download:   853.74 Mbps (data used: 502.5 MB)
                  6.98 ms   (jitter: 0.83ms, low: 2.72ms, high: 8.91ms)
      Upload:   935.98 Mbps (data used: 1.1 GB)
                  3.31 ms   (jitter: 0.69ms, low: 1.20ms, high: 12.54ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/efb71102-7d41-4416-853f-c5531f9509f8

After the above tests, I have changed it to run as a dumb AP.
https://openwrt.org/docs/guide-user/network/wifi/dumbap

Wired client speed is good.
Bash:
PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     1.68 ms   (jitter: 0.54ms, low: 1.35ms, high: 2.13ms)
    Download:   934.03 Mbps (data used: 432.7 MB)
                  2.89 ms   (jitter: 0.48ms, low: 1.85ms, high: 3.39ms)
      Upload:   945.72 Mbps (data used: 1.1 GB)
                  3.96 ms   (jitter: 0.81ms, low: 2.36ms, high: 26.83ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/19862aa1-7bb4-445e-b994-b192c9702cee

Wireless speed is still not that good.
Bash:
PS C:\work\speedtest\ookla-speedtest-1.2.0-win64> .\speedtest.exe -s 13623

   Speedtest by Ookla

      Server: Singtel - Singapore (id: 13623)
         ISP: Singtel Fibre
Idle Latency:     2.96 ms   (jitter: 0.40ms, low: 2.71ms, high: 3.99ms)
    Download:   331.81 Mbps (data used: 356.9 MB)
                 14.47 ms   (jitter: 5.50ms, low: 6.82ms, high: 34.04ms)
      Upload:   277.94 Mbps (data used: 501.8 MB)
                 61.75 ms   (jitter: 18.60ms, low: 4.67ms, high: 181.62ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/f2574ad4-21de-43ee-877a-884cb14a6dc1
 
Last edited:

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
35,806
Reaction score
12,041
If you are just into OpenWRT, you may get confused with the mesh options for OpenWRT here.
https://openwrt.org/docs/guide-user/network/wifi/mesh/start

They are more for mesh using wireless backhaul (eg: 802.11s).

If you are using multiple AP (wired bridge mode), then you may want to take a look at the following to have better roaming performance (more with 802.11 k/v and may also include 802.11r).
https://openwrt.org/docs/guide-user/network/wifi/usteer
https://openwrt.org/docs/guide-user/network/wifi/dawn

Interesting discussions:
https://forum.openwrt.org/t/proper-configuration-of-802-11k-and-802-11v/152994/28

However, I am thinking it is not necessary to use Dawn or usteer. Need to carry out some tests.
 
Last edited:

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
35,806
Reaction score
12,041
Out of the following APs running OpenWRT, I can see some of them do not support 802.11 k/v.

1) Linksys EA7500 v2 -- no 802.11 k/v support, only 802.11 r

2) Linksys WRT1900AC v1 -- support 802.11 k/v/r.

3) H3C NX3 Pro -- support 802.11 k/v/r.

4) TP-Link Deco M4R v1 -- no 802.11 k/v support, only 802.11 r

Edit: the above is incorrect. All 4 APs are able to support 802.11 k/v/r with the correct wpad package installed.
 
Last edited:

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
35,806
Reaction score
12,041
Out of the following APs running OpenWRT, I can see some of them do not support 802.11 k/v.

1) Linksys EA7500 v2 -- no 802.11 k/v support, only 802.11 r

2) Linksys WRT1900AC v1 -- support 802.11 k/v/r.

3) H3C NX3 Pro -- support 802.11 k/v/r.

4) TP-Link Deco M4R V1 -- no 802.11 k/v support, only 802.11 r

The above is not correct. Rather it is because of the different wpad packages installed. I just installed wpad-mbedtls on the Deco M4R V1 and I can see the support of 802.11 k/v/r. Same for Linksys EA7500 v2.

Bash:
root@OpenWrt:~# opkg remove wpad-basic-mbedtls
Removing package wpad-basic-mbedtls from root...
root@OpenWrt:~# opkg install wpad-mbedtls
Installing wpad-mbedtls (2023-09-08-e5ccbfc6-6) to root...
Downloading https://downloads.openwrt.org/releases/23.05.3/packages/mipsel_24kc/base/wpad-mbedtls_2023-09-08-e5ccbfc6-6_mipsel_24kc.ipk
Configuring wpad-mbedtls.

Reference:
https://openwrt.org/docs/guide-user/network/wifi/mesh/80211s

Notes:
  1. From September 2019, wpad-openssl or wpad-wolfssl became capable of 802.11s encyption. wpad-mbedtls was added later.
  2. The wpad-basic-* versions only have 802.11r and 802.11w support.
  3. The wpad-mesh-* versions only have 802.11r/w and 802.11s support.
  4. The wpad-* are the full version of wpad and have 802.11k/v/r/w and 802.11s support.
  5. The full version of wpad means that nothing was trimmed to reduce its size.
 
Last edited:

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
35,806
Reaction score
12,041
Testing of OpenWRT based AP roaming using Dawn.
https://openwrt.org/docs/guide-user/network/wifi/dawn

1) Test setup
Main wired router: OpenWRT virtual router running on Intel N100 mini PC (Proxmox PVE 8.2)
AP 1 -- H3C NX30 Pro running OpenWRT, 802.11 k/v/r + Dawn, in the living room, Tx power 23dBm (driver default), CH36, 80MHz
AP 2 -- TP-Link Deco M4R v1 running OpenWRT, 802.11 k/v/r + Dawn, in the corner of main bedroom, Tx power setting 23dBm (driver defaul), CH36, 80MHz

Wireless client: Xiaomi Poco X4 GT Android phone

App used to test roaming: Ubiquiti WiFiman

2) Initial test results: not very good.
a) walking from living room to main bedroom
The client is kind stick to the AP 1, until the signal goes down to -68dBm and it then switched to AP2
b) walking from main bedroom to living room
The client switch to AP 1 only when the signal goes down to -75dBm

3) Need to tune more parameters to see if it is better later.
a) to use different channel
b) to use lower Tx power
c) to tune the 802.11 k/v/r settings
d) to tune DAWN settings
 
Last edited:

xiaofan

High Supremacy Member
Joined
Sep 16, 2018
Messages
35,806
Reaction score
12,041
Testing of OpenWRT based AP roaming using Dawn.
https://openwrt.org/docs/guide-user/network/wifi/dawn

1) Test setup
Main wired router: OpenWRT virtual router running on Intel N100 mini PC (Proxmox PVE 8.2)
AP 1 -- H3C NX30 Pro running OpenWRT, 802.11 k/v/r + Dawn, in the living room, Tx power 23dBm (driver default), CH36, 80MHz
AP 2 -- TP-Link Deco M4R v1 running OpenWRT, 802.11 k/v/r + Dawn, in the corner of main bedroom, Tx power setting 23dBm (driver defaul), CH36, 80MHz

Wireless client: Xiaomi Poco X4 GT Android phone

App used to test roaming: Ubiquiti WiFiman

2) Initial test results: not very good.
a) walking from living room to main bedroom
The client is kind stick to the AP 1, until the signal goes down to -68dBm and it then switched to AP2
b) walking from main bedroom to living room
The client switch to AP 1 only when the signal goes down to -75dBm

3) Need to tune more parameters to see if it is better later.
a) to use different channel
b) to use lower Tx power
c) to tune the 802.11 k/v/r settings
d) to tune DAWN settings

1) With much better roaming results.

Using Windows 11 laptop and I can see it will roam as well and the ping test usually shows one drop and occassionally two drops.

AP 1 -- H3C NX30 Pro running OpenWRT, 802.11 k/v/r + Dawn, in the living room, Tx power 20dBm, CH36, 80MHz
AP 2 -- TP-Link Deco M4R v1 running OpenWRT, 802.11 k/v/r + Dawn, in the corner of main bedroom, Tx power setting 20dBm, CH52, 80MHz

2) Further reduce the Tx power to 18dBm or even 15dBm will help the roaming between the two APs but then the coverage may suffer. So in the end it needs to be a trade off.

3) Placement of the AP is also important. I can see that the client may stick to the previous AP even if the signal drops below -72 dBm.
 
Last edited:
Important Forum Advisory Note
This forum is moderated by volunteer moderators who will react only to members' feedback on posts. Moderators are not employees or representatives of HWZ Forums. Forum members and moderators are responsible for their own posts. Please refer to our Community Guidelines and Standards and Terms and Conditions for more information.
Top