TP-Link TL-WDR4300 and Intel AC8265. RX = 300, TX = 150. Why?

I think I installed the latest version of OpenWrt (LEDE Reboot 17.01.4 r3560-79f57e422d / LuCI lede-17.01 branch (git-17.290.79498-d3f0685). When I tried to post a question to the OpenWrt forum, the page said that the site is down and use LEDE forum instead, so I am posting it here.

Anyways, the router is TP-Link WDR4300. The laptop has the Wi-Fi module Intel Dual Band Wireless AC8265. The router supports 802.11n and has 3x antennas for 5GHz. So, I should get 300Mbps. The thing is, even though in the connection properties the link speed is displayed as 300, in the web administration page, its RX is 300 and TX is 150 when copying a file (the values go down when doing nothing).

I do not think that the router is incapable of 300 even with OpenWrt, because on the same page the RX and TX speed of my phone, which is also capable of 802.11n and 5Ghz, are both 300.

I have tried changing the channels a lot to see if this is a congestion issue, but other than only once for a brief moment, the TX of my laptop stuck at 150. I really do not understand. If both TX and RX were 300, it would be more understandable but why is the RX 300 and the TX 150? Consequently I get only 12.5MB/s file copy speed.

What settings should I change to make the TX of my laptop 300?

I think you're referring to the PHY width or channel bandwidth (20, 40 or 80 MHz), not the actual speed...this bandwidth will go down when there's no traffic. You must perform a Speedtest or other high-traffic testing while measuring this.

This seems somewhat normal...That's approx 100 Mbps...not bad, depending on the SoC and other processes running (i.e. LuCI)....but...

Have you tried enabling Software and/or Hardware flow offloading?

The PC is connected through Ethernet (wired) and the laptop is connected by Wi-Fi. I know that the RX/TX value drop when there is no copying, but that TX 150 was was when I was copying a large file (10+ GB) for testing.

Is that normal? On Windows, the link speed is displayed as 300Mbps, yet the TX value is 150Mbps on OpenWrt's web page. Today, I had installed the stock firmware and copied the same file, and the speed was about 25MB/s. That was faster than OpenWrt's 12.5, but still low for some reason. 300Mbps = 37.5MB/s. I know there could be some overheads, but that's almost 33%.

Where is that flow setting, on Windows' driver properties? I can see "ARP and NS offload for WowLAN" but they are both enabled.

I'm only referencing the router (since this the forum for the router)...but you did bring up something:

  • Regarding the Windows PC, if on the wired LAN connection, it could be that the client does not support tx and rx port flow. you can test this by running the command on the router: swconfig dev switch0 show. You would see something similar to the following if your laptop suports it:

link: port:5 link:up speed:1000baseT full-duplex txflow rxflow auto

About flow offloading in OpenWrt:

  • The flow offloading is configured under the OpenWrt firewall, if you have an up-to-date (18.06-SNAPSHOT or master snapshot) LuCI its's on the General Firewall Page
  • OpenWrt has recently received NAT offloading, so if using an older version - speed compared to the proprietary stock firmware may vastly differ
  • I'm not certain how Windows is calculating your bandwidth, or if it even updates the information on-screen in real-time

In /etc/config/firewall under config defaults:

        option flow_offloading '1'
        option flow_offloading_hw '1'

The TP-Link TL-WDR4300 is an ar71xx device, a target that's still on kernel 4.9, while flow-offloading requires at least kernel 4.14. Hardware flow-offloading so far only exists for ramips devices, neither ar71xx, nor the AR8327n chip used therein (so in the best of all cases the first config won't do anything, while the second has potential to break).