Archer A7: Slower Wi-Fi, Ethernet and Powerline speeds with OpenWrt

Hi, all! A few years ago, I bought a TP-Link Archer A7 specifically to flash OpenWrt onto it and enjoy wireless freedom. Last year, I got a new internet contract offering 1 Gbit/s instead of 100 Mbit/s. However, the internet speed measured through the Archer A7 has always been significantly below that.

My setup

FRITZ!Box 6660 Cable

  • runs the official FRITZ!OS 7.58
  • capable of up to 2.5 Gbit/s

Archer A7 v5

  • runs OpenWrt 23.05.5 r24106-10cc5fcd00 / LuCI openwrt-23.05 branch git-24.264.56413-c7a3562
  • 450 Mbit/s via 2.4 GHz Wi-Fi
  • 1300 Mbit/s via 5 GHz Wi-Fi
  • 4 Gigabit LAN ports

D-Link DGS-105GL

  • Gigabit Ethernet network switch

Ethernet adapter

  • “i-tec USB-C Hub 3 Port + Gigabit Ethernet Adapter”
  • P/N: C31GL3SLIM
  • for my laptop that doesn't have a native Ethernet port

AV600 Powerline starter kit

  • TL-PA4010 KIT
  • standards: HomePlug AV, IEEE 1901, IEEE 802.3, IEEE 802.3u
  • range: up to 300 meters of electrical wiring
  • 600 Mbit/s

Methodology

  • I tried different speed tests:
  • I tried different devices and operating systems:
    • Windows 11
    • Zorin 17.2 Core
    • Android 13 on Fairphone 3, Samsung Galaxy A12
    • Android 14 on Samsung Galaxy A53
  • I tried different Gigabit ethernet cables.

Results

The image represents the results that I got with all improvements I was able to do.

FRITZ!Box modem

The internet speed between my ISP and the FRITZ!Box modem is perfectly fine at slightly more than the 1 Gbit/s agreed upon in the internet contract. Between the modem and the network switch, there's a slight drop in bandwidth, which is caused by the rather old and very long Ethernet cable between them. In fact, I am surprised that the cable loses only 70 Mbit/s and not more.

Please note that I have no clue why the Ethernet speed at the ports not occupied by the network switch with the 12m cable deliver only 580 Mbit/s. It does, however, not appear related to the Archer A7's issues.

Network switch

The network switch loses virtually no bandwidth. In fact, there was one situation where I measured >940 Mbit/s behind the switch but <840 Mbit/s before the switch. Overall, this is covered by tolerance.

Powerline

I know very well that I cannot expect to get Gigabit internet via Powerline due to interference and other issues with the electrical wiring, which is why I'm already content with “only” 95 Mbit/s. That's perfectly fine considering the age of the wiring. Also, the maximum speed I could possibly expect is 600 Mbit/s due to the Powerline adapters.

Archer A7

  • 310 Mbit/s via 5 GHz Wi-Fi over an air distance of approximately 50 centimetres (67% bandwidth loss relative to the 940 Mbit/s input)
  • 520 Mbit/s via Ethernet (45% loss)
  • 13 Mbit/s via Powerline (86% loss)

I'm less annoyed by the absolute speeds than by the relative bandwidth loss compared to the connections that don't go through the Archer A7. I would be willing to tolerate up to 20% loss, but percentages between 45% and 86% is something I just cannot be satisfied with.

Also, I refuse to believe that the Archer A7 is of “too poor quality” or “just doesn't support Gigabit internet”. If that were the case, in my jurisdiction, it would have been a crime (namely fraud) by TP-Link to advertise the Archer A7 as a Gigabit router, and those responsible for the theoretically fraudulent marketing would have risked facing prison sentences.

What I tried

  • Enabling software offloading increased
    • the 5 GHz Wi-Fi bandwidth from ~120 Mbit/s to >200 Mbit/s
    • the Ethernet bandwidth from 250 Mbit/s to >350 Mbit/s
  • Enabling hardware offloading resulted in a further increase to 310 Mbit/s (Wi-Fi) and 520 Mbit/s (Ethernet), respectively.
  • Packet steering decreased the Wi-Fi and Ethernet bandwidths by ~25%.
  • Configuring a static IPv4 route in the FRITZ!Box and simultaneously disabling IPv4 masquerading (NAT4) in OpenWrt (in order to avoid double NAT) resulted in a 25% decrease.

Is there a possibility to install TP-Links original (potentially proprietary) drivers or something like that? Maybe I just have to toggle more OpenWrt settings? Or install a couple packages?

Additional remarks

Please note that I'm not intending to blame anyone or just rant. In fact, I'm very thankful to the OpenWrt developers and device maintainers who have made wireless freedom a reality, for me and everyone else. Many thanks to them! :heart:

My question

I'd be really grateful for any tips on what I can realistically do to improve the itnernet speed or how I could potentially help the OpenWrt team in doing so.

1 Like

Rates are typical of archer a7.
You can try swapping ath10k firmware and driver between ct and mainline.

There are some cpu hogs removed in master branch of firewall4, hard offload is not supported, your measurement just shows daytime variation, it just goes 2-3 times faster (reducing cpu usage) with either offload.
Powerline if not in same segment, like passing 2 extra fuses, is very error prone. Just try different wall socket for starters.

Noneof your clients has 3 antennas, so max speed is half of 866 or 433 and 144 or 72

1 Like

Which package(s) should I install? There are 35 named something with ath10k, and 3 of them are pre-installed :thinking:

I don't get better speeds even if I put the adapters into two sockets that are right next to each other, i.e. 95 Mbit/s is the maximum I ever measured via any two sockets in my home. But I'm fine with that; I only wished OpenWrt offered something like 80 Mbit/s via Powerline rather than <15 Mbit/s. :sweat_smile:

You mean my devices aren't capable of Gigabit Wi-Fi in the first place? Damn, I didn't consider that possibility at all. :flushed: Seems plausible, thanks. Not sure how I could then test Wi-Fi speeds more reliably (even though it would be a bit pointless considering I couldn't make full use of increased Wi-Fi speeds). :thinking:

1 Like

Last two, versions without -ct in the end.
(ill get to keyboard and answer the rest)

opkg update
opkg remove kmod-ath10k-ct ath10k-firmware-qca988x-ct
opkg install kmod-ath10k ath10k-firmware-qca988x

Probably you need luci-app-attendedsysupgrade to keep packages across upgrades.


Openwrt has nothing to do with power line quality. Test performance between nearby sockets, then expand maintaining speed.


160wide AX with 2 antennas is approximately gigabit ethernet (gigabit up gigabit down at once)
Firstly in 2.4 advertised 40MHz channels work only in absence of competing access points, you can force-enable it but I promise transmissions will be slower with even higher link speed shown)
Then 5GHz gets (above) half, and to add insult to injury router's CPU cannot forward well at that half speed...

1 Like

Thanks, I'll try that tomorrow when I've got more time :slight_smile:

Thanks, this worked fine, without any errors other complications. I'm getting mixed results for Ethernet now. I sorted them by my estimate of their accuracy (descending):

Speedtest maximum average
Vodafone 380 Mbit/s -
Telekom 800 Mbit/s 620 Mbit/s
Speedtest.net 700 Mbit/s 530 Mbit/s
AVM 600 Mbit/s 350 Mbit/s
Federal Network Agency 200 Mbit/s -
Uni Mannheim 570 Mbit/s -
Devolo 500 Mbit/s 420 Mbit/s
fast.com 530 Mbit/s -
Chip 815 Mbit/s -
Netzwelt 300 Mbit/s -
Geschwindigkeit.de 600 Mbit/s 500 Mbit/s

While I can't certainly conclude whether that improved the speed, the fact that some tests measured bandwidths well above the 500 Mbit/s makes me hope for the best. If I consistently get around 800 Mbit/s, I'd be fully satifsfied.

I'll also need to check the other connection types.

You can try latest firewall4

wget -O /usr/share/ucode/fw4.uc https://github.com/openwrt/firewall4/raw/dfbcc1cd127c78fc61bb870d36d2512b571d223b/root/usr/share/ucode/fw4.uc
wget -O /usr/share/firewall4/templates/zone-mssfix.uc https://github.com/openwrt/firewall4/raw/dfbcc1cd127c78fc61bb870d36d2512b571d223b/root/usr/share/firewall4/templates/zone-mssfix.uc
wget -O /usr/share/firewall4/templates/ruleset.uc https://github.com/openwrt/firewall4/raw/dfbcc1cd127c78fc61bb870d36d2512b571d223b/root/usr/share/firewall4/templates/ruleset.uc

Oradd some more of my own developments

wget -O /usr/share/firewall4/templates/ruleset.uc https://github.com/openwrt/firewall4/raw/fe27543b55e55b71cbba1502d7f569058111e0f9/root/usr/share/firewall4/templates/ruleset.uc

For somewhat lighter offload entry/exit. https://github.com/openwrt/firewall4/pull/22

AND
https://github.com/openwrt/firewall4/pull/37 reducing per-packet inspection weight

wget -O /usr/share/firewall4/templates/zone-mssfix.uc https://github.com/openwrt/firewall4/raw/90436c00e52c70de312b60cefb8d7b97c0974ae2/root/usr/share/firewall4/templates/zone-mssfix.uc

run fw4 check right away, then either service firewall restart or restore original files accessible via /rom/usr/share/...

Best is to compare with stable test eg https://www.waveform.com/tools/bufferbloat which does not include your IP in shared reports (before and after and then wifi)

Powerline speed has remained unchanged. Here are the 5 GHz Wi-Fi speeds over 50 cm on the same laptop (that probably doesn't support Gigabit Wi-Fi):

Speed test maximum average
Vodafone 330 Mbit/s -
Telekom N/A N/A
Speedtest.net 300 Mbit/s 290 Mbit/s
AVM 280 Mbit/s 270 Mbit/s
Federal Network Agency 300 Mbit/s -
Uni Mannheim 326 Mbit/s -
Devolo 285 Mbit/s 264 Mbit/s
fast.com 330 Mbit/s -
Chip 300 Mbit/s -
Netzwelt 210 Mbit/s 200 Mbit/s
Geschwindigkeit.de 280 Mbit/s 280 Mbit/s

via Ethernet: https://www.waveform.com/tools/bufferbloat?test-id=e9b9c5cb-1611-465d-b505-1a221e2d6c63

After that, I tried out your recommendation to download the latest firewall rulesets:

These three updates reduced the bandwidth across all speed tests by 15% to 20%.

After downloading these two additional updates, the bandwidth was reduced by further 15% to 20% on top of the previous losses. Waveform's bufferbloat test also shows a drop in bandwidth: https://www.waveform.com/tools/bufferbloat?test-id=07521319-6824-4733-887c-0aca889199f8

Were the previously downloaded ruleset.uc and zone-mssfix.us completely replaced by your own developments or just appended?

I think I'll stick with the unpatched firewall rules for now. Thanks for your efforts, though! :smiling_face:

You can restore originals from /rom/usr/share....
Files were completely replaced.

1 Like

My measurements:

debian tv box (alx adapter) -> TUF-AX4200 LAN1 (iperf3 -s)
C7V5 wan -> TUF-AX4200 LAN2
Lenovo (e1000e) -> C7 lan1 or Direct TUF LAN2 (iperf3 -Z -c)

offload\conf old new --bidir new sum
direct 950 950 1920
no offload 210 350 350
sw offload 950 890 900
hw offload 950 950 920

note that "new" "hardware offload" just breaks roaming (one MAC address between interfaces in same bridge) by adding more interfaces to offload pool.

1 Like

Connected to 1000/500 ftth CPE
OLD
https://www.waveform.com/tools/bufferbloat?test-id=c1d11e46-aeb7-4389-941a-d65b22d2adc9
NEW
https://www.waveform.com/tools/bufferbloat?test-id=ff0192f1-f8d1-43b2-8c04-2bc09c8fd550
DIRECT
https://www.waveform.com/tools/bufferbloat?test-id=e82708e1-9dee-46bc-822a-e16b7ca90c59

1 Like

This EOL router supports wired Gigabit with the stock firmware only. The SoC is over a decade old and good for up to 500 Mbit/s WAN speeds, which matches the 3x3 Wi-Fi performance, as it's 80 MHz Wi-Fi 5 is outdated. Your AVM 6660 box is already Wi-Fi 6 capable, so just use that instead. Its 2x2 160 MHz will do Gigabit with suitable clients.

I suggest using the Archer A7 platform to provide a WDS/relay client to replace the outdated power line connections. It's perfectly suited for that, as it draws half the power of one typical HomePNA plug while relaying with much higher speeds.

It can do sum(in+out)<1Gbps with soft offload, likely clamped by memory copy speed, just like no-offload is clamped by CPU speed < 350.

I never reached anywhere close to 800 Mbit/s with the similar Archer C7 v5. Its SoC is IMHO unsuited for gigabit, and the Wi-Fi maxes out at below 500 Mbit/s 2x2, so that's perfectly fine.

When I bought multiple of these rather cheap routers a decade ago, the advertisement read "gigabit ethernet" to me, not "gigabit wire-speed routing". The builtin switch does indeed gigabit and that was all I expected.

Check fw4 master branch, i get 900 in iperf and 800 with scattered life-like load, no special magic setup involved. Sum gigabit is dictated by bouncing every packet via CPU port (some A7/C7 have 2 CPU ports)
eg you can have 600/200 but not 1000/50 handled well

My C7 v2 has, that's the issue at hand.