Tplink Archer C7: speed between two routers over 5GHz

I'm not sure what kind of speeds should i expect here, but 200MBit over 5GHz seems too low. I have Openwrt on two Archer C7, one is v2 the other one is v5. Those two routers are linked over wifi: v5 is client, v2 is AP.

I know there are some issues over NAT which i am not using here (hopefully), but is it realistic to expect close to 500Mbit+ over wifi link between those two routers?
Routers are in adjacent rooms, where distance is max 10 meters with a wall in between.

iperf3 says the following:

iperf from PC2 to router Archer C7 v5 (i installed iperf3 package on the router) - this is over wire, which seems strange:

r@r7:~$ iperf3 -c 192.168.42.1
Connecting to host 192.168.42.1, port 5201
[  5] local 192.168.42.10 port 50346 connected to 192.168.42.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  32.7 MBytes   275 Mbits/sec    1    226 KBytes       
[  5]   1.00-2.00   sec  32.7 MBytes   274 Mbits/sec    0    273 KBytes       
[  5]   2.00-3.00   sec  31.9 MBytes   268 Mbits/sec    0    273 KBytes       
[  5]   3.00-4.00   sec  32.5 MBytes   273 Mbits/sec    0    273 KBytes       
[  5]   4.00-5.00   sec  31.3 MBytes   263 Mbits/sec    0    273 KBytes       
[  5]   5.00-6.00   sec  33.1 MBytes   278 Mbits/sec    0    301 KBytes       
[  5]   6.00-7.00   sec  31.5 MBytes   264 Mbits/sec    0    301 KBytes       
[  5]   7.00-8.00   sec  32.1 MBytes   270 Mbits/sec    0    301 KBytes       
[  5]   8.00-9.00   sec  31.8 MBytes   267 Mbits/sec    0    331 KBytes       
[  5]   9.00-10.00  sec  33.0 MBytes   277 Mbits/sec    0    331 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   323 MBytes   271 Mbits/sec    1             sender
[  5]   0.00-10.04  sec   321 MBytes   268 Mbits/sec                  receiver

iperf Done.

Since the wire speed is ~300Mbit, i cannot achieve more between PC1 and PC2, iperf here gives the following output:

r@r7:~$ iperf3 -c antec.lan
Connecting to host antec.lan, port 5201
[  5] local 192.168.42.10 port 55210 connected to 192.168.40.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  21.1 MBytes   177 Mbits/sec   22    351 KBytes       
[  5]   1.00-2.00   sec  23.6 MBytes   198 Mbits/sec    0    397 KBytes       
[  5]   2.00-3.00   sec  24.8 MBytes   208 Mbits/sec    5    303 KBytes       
[  5]   3.00-4.00   sec  24.5 MBytes   206 Mbits/sec    0    359 KBytes       
[  5]   4.00-5.00   sec  24.5 MBytes   206 Mbits/sec    0    407 KBytes       
[  5]   5.00-6.00   sec  20.9 MBytes   175 Mbits/sec    1    331 KBytes       
[  5]   6.00-7.00   sec  22.6 MBytes   189 Mbits/sec    0    370 KBytes       
[  5]   7.00-8.00   sec  25.2 MBytes   212 Mbits/sec    0    419 KBytes       
[  5]   8.00-9.00   sec  23.8 MBytes   200 Mbits/sec    7    346 KBytes       
[  5]   9.00-10.00  sec  25.2 MBytes   212 Mbits/sec    0    396 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   236 MBytes   198 Mbits/sec   35             sender
[  5]   0.00-10.00  sec   234 MBytes   197 Mbits/sec                  receiver

iperf Done.

Setup looks like the picture below. All links are wired gigabit except the dotted one between two routers. Dotted link is 5GHz wifi.

unless you setup WDS link with all devices in the same subnet, you are still using NAT.

post your network and wireless configs

Plus if you use the 5 GHz band on any of the routers for its other clients then this effectively halves the bandwidth.

Running iperf on a relatively low powered router (at least by today's standards) will distort the results quite a bit. My Archer C7v2 units couldn't push much more than ~400-500 Mbps through Ethernet (no NAT, no SQM, ...) before becoming CPU bound.

That's actually "a long way" for 5 GHz, depending on the construction of that wall.

@psyborg
even when using client mode (different subnets) and masquarading disabled?

anyhow, here is the config

/etc/config/network

v5

root@archerc7v5:/etc/config# cat network 

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

config globals 'globals'
	option ula_prefix 'fd2f:fa20:ad12::/48'

config interface 'lan'
	option type 'bridge'
	option ifname 'eth0.1'
	option proto 'static'
	option netmask '255.255.255.0'
	option ipaddr '192.168.42.1'
	option dns '192.168.40.1'
	option delegate '0'
	option stp '1'

config interface 'wan'
	option ifname 'eth0.2'
	option type 'bridge'
	option proto 'dhcp'
	option delegate '0'
	option stp '1'

config interface 'wan6'
	option ifname 'eth0.2'
	option proto 'dhcpv6'
	option reqaddress 'none'
	option reqprefix 'no'

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

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

config switch_vlan
	option device 'switch0'
	option vlan '2'
	option ports '1 0t'

config interface 'wwan'
	option proto 'static'
	option ipaddr '192.168.41.2'
	option netmask '255.255.255.0'
	option gateway '192.168.41.1'
	option dns '192.168.40.1'
	option delegate '0'

config route
	option interface 'lan'
	option target '192.168.43.0'
	option netmask '255.255.255.0'
	option gateway '192.168.42.99'

/etc/config/wireless

root@archerc7v5:/etc/config# cat wireless 

config wifi-device 'radio0'
	option type 'mac80211'
	option channel '36'
	option hwmode '11a'
	option path 'pci0000:00/0000:00:00.0'
	option htmode 'VHT80'
	option country 'AT'
	option disabled '0'
	option legacy_rates '0'

config wifi-device 'radio1'
	option type 'mac80211'
	option hwmode '11g'
	option path 'platform/qca956x_wmac'
	option country 'AT'
	option htmode 'HT20'
	option channel '11'
	option legacy_rates '0'

config wifi-iface 'default_radio1'
	option device 'radio1'
	option network 'lan'
	option mode 'ap'
	option ssid 'R7'
	option key 'x'
	option encryption 'psk2+ccmp'

config wifi-iface
	option network 'wwan'
	option ssid 'R5'
	option encryption 'psk2'
	option device 'radio0'
	option mode 'sta'
	option bssid '14:CC:20:BE:62:40'
	option key 'x'

v2

/etc/config/network

root@archerc7v2:/etc/config# cat network 

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

config globals 'globals'
	option ula_prefix 'fdcb:1487:2f4f::/48'

config interface 'lan'
	option type 'bridge'
	option ifname 'eth1.1'
	option proto 'static'
	option netmask '255.255.255.0'
	option stp '1'
	option ipaddr '192.168.41.1'
	option delegate '0'

config interface 'wan'
	option ifname 'eth0.2'
	option proto 'static'
	option netmask '255.255.255.0'
	option ipaddr '192.168.40.2'
	option gateway '192.168.40.1'
	option dns '192.168.40.1'

config interface 'wan6'
	option ifname 'eth0.2'
	option proto 'dhcpv6'

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

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

config switch_vlan
	option device 'switch0'
	option vlan '2'
	option ports '1 6t'

config route
	option interface 'lan'
	option target '192.168.42.0'
	option netmask '255.255.255.0'
	option gateway '192.168.41.2'

config route
	option interface 'lan'
	option target '192.168.43.0'
	option netmask '255.255.255.0'
	option gateway '192.168.41.2'

/etc/config/wireless

root@archerc7v2:/etc/config# cat wireless 

config wifi-device 'radio0'
	option type 'mac80211'
	option channel '36'
	option hwmode '11a'
	option path 'pci0000:01/0000:01:00.0'
	option htmode 'VHT80'
	option country 'AT'
	option legacy_rates '0'

config wifi-iface 'default_radio0'
	option device 'radio0'
	option network 'lan'
	option mode 'ap'
	option encryption 'psk2+ccmp'
	option key 'x'
	option ssid 'R5'

config wifi-device 'radio1'
	option type 'mac80211'
	option hwmode '11g'
	option path 'platform/qca955x_wmac'
	option country 'AT'
	option legacy_rates '1'
	option htmode 'HT20'
	option channel '6'

config wifi-iface 'default_radio1'
	option device 'radio1'
	option network 'lan'
	option mode 'ap'
	option encryption 'psk2+ccmp'
	option key 'x'
	option ssid 'R3'

@mhegab: 5ghz would be used only for the link between the routers. big consumers would be using wired network and other wireless devices would be using 2.4ghz wifi on each router to access internet.

@jeff: i tried iperf as a server on PC1 on the attached picture, so link PC1-PC2 has around 200mbit/s bandwidth and this is what i am interested in. for the distance, i tried going 1m from the router and doing iperf with a laptop over 5ghz (thinkpad t440s) it increases speed to 300mbit/s. this could be limitation of the laptop though. when you say that your v2 was cpu bound, do you mean iperf was hitting your cpu or that v2 is really not able to reach advertised speeds? per their webpage:

  • Simultaneous 2.4GHz 450 Mbps and 5GHz 1300 Mbps connections for 1.75Gbps of total available bandwidth

the 5ghz link would be used only router2router link, so i guess this should suffice.

yes, you are still translating between subnets. when you use transparent bridge (WDS AP+STA) you can disable dnsmasq and firewall services completely which also drops some load off the devices cpu

So instead of client mode I should move to wds? Aren't there penalties for bandwidth when using wds?

Dnsmasq should work for dhcp clients, but fw can be disabled...

as far as i know there should be opposite

That, like the similar statements of all the manufacturers out there, is nothing more than marketing hype that they now all have to follow to remain competitive with each other.

Adding up the theoretical maximum modulation bandwidth ignores important things like; channel throughput is significantly less than the modulation rate, maximum rate is only achievable under very high SNR conditions, wider channels are impossible to use in most situations, and may clients aren't able to use provided MIMO either at all, or with all provided streams.

Single-core MIPs-based SoCs come from an era when ISDN and 3 Mbps was common, 30 Mbps was fast and 300 Mbps was screamingly fast. Those SoCs can't handle moving much more than several hundred Mbps through the Ethernet interface, Archer C7 or otherwise.

1 Like

@jeff when you say ethernet, you mean physical, wired ports?

so, long story short i should pick up some new equipment with 2+ cores. any recommendations?
goal is to have set up as in original post and the whole line should be 500mbit/s - 1gbit/s. hopefully cheaper than 300eur

have you ever tried to measure performance while running tp-link firmware on archers? that should get you close to advertised speeds. open drivers in combination with latest kernels not.

No, because AFAIK original firmware did not support wan over WiFi.

Edit: also, I wasn't burdened with abundance of internet speed, nor did i need to use wifi ... which now changed. And it is a pain to replace whole setup again. I did try disabling firewall, but I gained nothing in terms of performance.

Routing with NAT and the kinds of SQM that people seem to (reasonably) demand at those rates would be hgh-end ARM or x86_64.

See, for example this thread

APs, your choice (dedicated AP, all-in-one configured as AP) with ARM preferred over MIPS at rates above 400-500 200 Mbps aggregate throughput on wireless.

The Archer C7 units are solid. I've used them for many years here as APs. In close proximity, with a MacBook Pro, I get 150-250 Mbps throughput on 5 GHz to a wired host. A quick check shows the CPU running well over 50% during these tests.

unless you need routing and different subnets (which doesn't seem to be the case, at least not according to network setup diagram) put back tp-link firmware and all devices into the same subnet. that will get you bandwidth increase between PC1 and PC2. how much i can't tell since i have only one archer and my laptop's wifi card is 2x2 only

Effective wireless throughputs around (and slightly beyond) 1 GBit/s require 802.11ax gear (which isn't supported by OpenWrt yet), with range and interference limiting the throughput at reasonable (indoor) distances below that anyways.

@jeff - not NAT needed. i actually need a bridge since i would forbid usage of 5ghz network for anything but for the link between those routers. in the picture, PC1 is doing nat towards the internet. this pc1 i may replace with rpi4, but it depends on the performance. for the tests, i saw as well that iperf between pc1 and pc2 spikes cpu on the router, around 50%-60%.

@psyborg no i dont need different subnets, but is there a way to use wifi in the client/bridge (but not repeater mode) with stock firmware? i tried also wds, which you suggested, and i get between 200 and 300 Mbps between the two pc-s, so no major change.

@slh ok, so this is out of reach. i would be ok with 500Mbps -1 Gbps ... this should be achiavable with 802.11ac

yes, AP+STA works in bridge mode with stock fw, and there is also a choice of using WDS bridge

ok... great. i will try this tomorrow.

There is one thing I stumbled upon serching for ideas. https://www.reddit.com/r/openwrt/comments/2t5ual/-/cnw1tjq

If I bridge on router v2 wan, lan and WiFi and allow pc1 to handle dhcp, would I actually avoid CPU as bottleneck (since there is no routing)?

Edit: i tried setting up all connections as bridges. The bandwidth is now:

r@r7:~$ iperf3 -c antec.lan
Connecting to host antec.lan, port 5201
[  5] local 192.168.40.10 port 39564 connected to 192.168.40.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  48.8 MBytes   409 Mbits/sec   54    385 KBytes       
[  5]   1.00-2.00   sec  37.5 MBytes   315 Mbits/sec   32    329 KBytes       
[  5]   2.00-3.00   sec  38.8 MBytes   325 Mbits/sec    0    410 KBytes       
[  5]   3.00-4.00   sec  46.2 MBytes   388 Mbits/sec    0    485 KBytes       
[  5]   4.00-5.00   sec  51.2 MBytes   430 Mbits/sec    0    559 KBytes       
[  5]   5.00-6.00   sec  51.2 MBytes   430 Mbits/sec   66    457 KBytes       
[  5]   6.00-7.00   sec  40.0 MBytes   336 Mbits/sec   36    399 KBytes       
[  5]   7.00-8.00   sec  35.0 MBytes   294 Mbits/sec   27    359 KBytes       
[  5]   8.00-9.00   sec  46.2 MBytes   388 Mbits/sec    0    445 KBytes       
[  5]   9.00-10.00  sec  47.5 MBytes   398 Mbits/sec    0    515 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   443 MBytes   371 Mbits/sec  215             sender
[  5]   0.00-10.00  sec   439 MBytes   369 Mbits/sec                  receiver

iperf Done.