TP-Link Archer C50 V4 Upload Speed Issue - Almost 0 Mbps

Hi guys,

I'm trying to correctly setup the OpenWrt router (TP-Link Archer C50 V4) such that:

  • It connects wirelessly to existing network A (router is 192.168.1.1)
  • It creates its own network B (with its router address being 192.168.2.1)
  • It shares the internet connection from A with all devices on B
  • Devices can connect to B via LAN ports or wifi

What I did so far:

  • Change the IPv4 of LAN interface to 192.168.2.1
  • Connect to the existing network A wirelessly by doing Network > Wireless > Scan and then connect
  • Create private wireless network

I can now connect via LAN or wifi and can reach internet.

However, the upload speed is almost 0. Download is fast as expected (around 70Mbps) but upload just doesn't seem to work.

Is there something I'm missing? Please help me figure this out.

NOTE: In speedtest, download is very fast but it still takes very long to open websites for some reason.

Many thanks,
Lukas

Could there be a misconfiguration in firewall? Perhaps something is blocking outgoing traffic (although not all of it)?

I can't seem to be able to find anything about this issue. Any ideas about how to debug to find the cause?

Any TCP connection needs traffic in both directions; even if you are just downloading, the client has to upload the request and the acknowledge packets. So, there is definitely traffic flowing in both directions.

I think you should post the config files on the OpenWrt router.

fwiw, I've never tried this with Mediatek SoC, but if you want a wireless bridge, see whether section 9.10 and 9.12 (Untick Rebind Protection setting?) in the Install PDF for HH5A is any help:
https://openwrt.ebilan.co.uk/viewtopic.php?f=7&t=266

Hmm, I've just tried but doesn't seem to change anything. @eduperez there is upload flow too but just very very slow.

For reference:

Here is the config:

dhcp:

config dnsmasq
	option domainneeded '1'
	option localise_queries '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.auto'
	option nonwildcard '1'
	option localservice '1'
	option rebind_protection '0'

config dhcp 'lan'
	option interface 'lan'
	option start '100'
	option limit '150'
	option leasetime '12h'
	option dhcpv6 'server'
	option ra 'server'
	option ra_management '1'

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'
firewall:

config defaults
	option syn_flood '1'
	option input 'ACCEPT'
	option output 'ACCEPT'
	option forward 'REJECT'

config zone
	option name 'lan'
	option input 'ACCEPT'
	option output 'ACCEPT'
	option forward 'ACCEPT'
	option network 'lan'

config zone
	option name 'wan'
	option input 'REJECT'
	option output 'ACCEPT'
	option forward 'REJECT'
	option masq '1'
	option mtu_fix '1'
	option network 'wan wan6 wwan'

config forwarding
	option src 'lan'
	option dest 'wan'

config rule
	option name 'Allow-DHCP-Renew'
	option src 'wan'
	option proto 'udp'
	option dest_port '68'
	option target 'ACCEPT'
	option family 'ipv4'

config rule
	option name 'Allow-Ping'
	option src 'wan'
	option proto 'icmp'
	option icmp_type 'echo-request'
	option family 'ipv4'
	option target 'ACCEPT'

config rule
	option name 'Allow-IGMP'
	option src 'wan'
	option proto 'igmp'
	option family 'ipv4'
	option target 'ACCEPT'

config rule
	option name 'Allow-DHCPv6'
	option src 'wan'
	option proto 'udp'
	option src_ip 'fc00::/6'
	option dest_ip 'fc00::/6'
	option dest_port '546'
	option family 'ipv6'
	option target 'ACCEPT'

config rule
	option name 'Allow-MLD'
	option src 'wan'
	option proto 'icmp'
	option src_ip 'fe80::/10'
	list icmp_type '130/0'
	list icmp_type '131/0'
	list icmp_type '132/0'
	list icmp_type '143/0'
	option family 'ipv6'
	option target 'ACCEPT'

config rule
	option name 'Allow-ICMPv6-Input'
	option src 'wan'
	option proto 'icmp'
	list icmp_type 'echo-request'
	list icmp_type 'echo-reply'
	list icmp_type 'destination-unreachable'
	list icmp_type 'packet-too-big'
	list icmp_type 'time-exceeded'
	list icmp_type 'bad-header'
	list icmp_type 'unknown-header-type'
	list icmp_type 'router-solicitation'
	list icmp_type 'neighbour-solicitation'
	list icmp_type 'router-advertisement'
	list icmp_type 'neighbour-advertisement'
	option limit '1000/sec'
	option family 'ipv6'
	option target 'ACCEPT'

config rule
	option name 'Allow-ICMPv6-Forward'
	option src 'wan'
	option dest '*'
	option proto 'icmp'
	list icmp_type 'echo-request'
	list icmp_type 'echo-reply'
	list icmp_type 'destination-unreachable'
	list icmp_type 'packet-too-big'
	list icmp_type 'time-exceeded'
	list icmp_type 'bad-header'
	list icmp_type 'unknown-header-type'
	option limit '1000/sec'
	option family 'ipv6'
	option target 'ACCEPT'

config rule
	option name 'Allow-IPSec-ESP'
	option src 'wan'
	option dest 'lan'
	option proto 'esp'
	option target 'ACCEPT'

config rule
	option name 'Allow-ISAKMP'
	option src 'wan'
	option dest 'lan'
	option dest_port '500'
	option proto 'udp'
	option target 'ACCEPT'

config include
	option path '/etc/firewall.user'
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 'fd5e:30fe:8be1::/48'

config interface 'lan'
	option type 'bridge'
	option ifname 'eth0.1'
	option proto 'static'
	option netmask '255.255.255.0'
	option ip6assign '60'
	option ipaddr '192.168.2.1'

config device 'lan_dev'
	option name 'eth0.1'
	option macaddr '98:da:c4:e1:70:95'

config interface 'wan'
	option ifname 'eth0.2'
	option proto 'dhcp'

config device 'wan_dev'
	option name 'eth0.2'
	option macaddr '98:da:c4:e1:70:96'

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 '1 2 3 4 6t'

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

config interface 'wwan'
	option proto 'dhcp'

wireless:

config wifi-device 'radio0'
	option type 'mac80211'
	option channel '11'
	option hwmode '11g'
	option path 'platform/10300000.wmac'
	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 hwmode '11a'
	option path 'pci0000:00/0000:00:00.0/0000:01:00.0'
	option htmode 'VHT80'
	option disabled '0'
	option channel '44'
	option country '00'
	option legacy_rates '1'

config wifi-iface 'default_radio1'
	option device 'radio1'
	option network 'lan'
	option mode 'ap'
	option ssid 'NetB' # obfuscated
	option encryption 'psk-mixed'
	option key 'NetBPassword' # obfuscated

config wifi-iface
	option network 'wwan'
	option ssid 'NetA' # obfuscated
	option encryption 'psk2'
	option device 'radio1'
	option mode 'sta'
	option bssid '00:00:00:00:00:00' # obfuscated
	option key 'NetAPassword' # obfuscated

Can you see something that I should change?

Thanks!

fwiw, I just reset a spare HH5A (atheros wifi) to openwrt defaults, then changed LAN IP address and scan/joined my 5 GHz wifi network just like your original first post. No other changes. No problem with upload speeds when I run speed tests.

Installed very latest 19.07 snapshots r10605. No problems with speeds

hmm, your issue may be specific to Mediatek SoC and/or C50v4 ?

Have you tried connecting to a different wifi router?

What is the RX/TX speeds reported in LuCI > Status > Overview > Associated Stations for the wireless connection to your router?

Hmm, the RX/TX on the connection to network A seems pretty good:

I'll see if I can try with a different wifi as well.

Only other suggestion is to use 'iperf3' running on two computers.
Each one connected on each side of the wireless link and see if speed is still poor in one direction.

Why do you need to tinker with the MAC addresses on the WAN and LAN?
Are you sure there is no possibility of conflicts with other devices?

1 Like

I've exported the config from LuCI. I didn't set them myself but I guess they were set while connecting the WiFi, etc.

How should I do it without explicitly stating the MAC addresses?

Thanks!

I think you can just delete both "option macaddr" lines.

I've removed the mac address lines but unfortunately it didn't change anything. The upload speed is still moving around 0.2Mbps.

Connecting to the same WiFi network directly from other devices results in upload speed of around 80Mpbs though.

@bill888 @eduperez do you have any other ideas about what settings I could possibly try changing? I really can't think of anything else. Perhaps a different version of OpenWrt could help?

Thanks a lot for your help!

Some ideas:

Do you see same behaviour on both 2.4 and 5 GHz wifi?

Is it possible to connect c50v4 to a different model wireless router?

Did you use iperf as suggested earlier to test just the transfer speed across just the wireless link to the C50v4?

ie. install iperf3 on PC1. Connect PC1 to LAN port of your main router. Install iperf3 on PC2. Connect PC2 to LAN port of C50v4. Run iperf3 speed test across the wireless link.

You could perhaps try latest development snapshot. Remember to install LuCI package.

If problem persists, you may have discovered a bug.

(I don't own a C50v4 any more, so cannot test.)

Thanks @bill888, unfortunately I don't have another router that I could try connecting to.

I've tried iperf3 and the speed was only about 2Mbps. This I believe explains the slow upload.

I've had the latest snapshot (without LuCI) installed before and had the same issue.

If there's nothing else, I'm going to need to flash original firmware and return the c50v4. This upload speed issue is super strange though, seems like this is the only case of this around!

What do you think?

Perhaps there's a much better supported router around a similar price point? There are so many I really can't tell which one would be best.

In general though, what I need:

  • Strong WiFi connection so I get very good signal when connecting wirelessly to the host network

  • Strong enough WiFi to cover my whole flat (c50v4 is also struggling at this)

Any ideas?

TBH, I don't own any other Mediatek based routers, so can't comment on slow upload issue. I've never witnessed it on old Atheros based routers I own.

Unfortunately, I cannot remember for certain whether I tested 'pseudo bridge' mode (see earlier post) when I did briefly own a C50v4 last summer. I think I did test it but any test would not have been for more than 15 minutes to see how it compared to my Home Hub 5A operating in same mode connecting wirelessly to my main wifi network. But I could be wrong.

The open source wifi drivers used in OpenWrt will always be inferior to closed source wifi drivers included in OEM firmwares. I'm no expert but I don't think the Mediatek wifi drivers are as mature as ath9k and ath10k which have been around for far longer.

The C50 is a low cost router at end of the day. Have you considered spending a bit more money and buying an off the shelf mesh system such as Tenda MW3 if it is available in your country if coverage is more important than speed?

Otherwise, you may have to look in the 'Hardware Questions & Recommendations' sub-forum for further advice on hardware.

Alright, I'm going to restore and return it and find another device.

Is this still the correct process for restoring factory firmware (Support for Archer c50 v4)?

Just want to be sure I do it correctly. I'd really appreciate it if you could just let me know if this is the way.

Thanks a lot for all your help and comments so far!

You wrote, you can connect to the web via WiFi. How ? Only possible on 5GHz, as 2.4 is disabled. And you configured 5GHz both as AP_and_ STA. Which will not work. As I understand, you want to use 5GHz as upstream connection (wan), so neds to be STA. And 2.4GHz as AP, to connect to clients.