GL.iNET Flint 2 (GL-MT6000) discussions

Hello

I connected my MT6000 to a 2.5 GBit switch and ran an iperf3 benchmark, only to find that it has to resend a lot of packets in reverse mode.

My NAS (ugreen DXP4800, 2.5 Gbit) and my WiFi AP (Zyxel NWA50AXPRO, Openwrt, 2.5 Gbit) are also connected to the switch.

I tested it back and forth and the problem occurs when I start iperf3 as a client with the MT6000 and set the reverse flag at the same time. For example:

‘iperf3 -c 192.168.8.10 -R -P8’

Then one core goes to maximum load (100% according to htop) and another to 70% load. And lots of retries.

However, when I start a test without the reverse flag, i.e.:

‘iperf3 -c 192.168.8.10 -P8’

I have a much lower CPU load and exactly 0 retries!

Now I'm wondering why this is causing problems with such a well-equipped router.

The Zyxel NWA50AXPRO laughs at this. It has a CPU load of approx. 40% on both cores, 0 retries, in both directions. (measured between ugreen NAS and zyxel AP)

Is there anything I can do about this?

Does somebody have / had a similar problem?

I am already using openwrt 24.10.4.

root@MT6000:~# iperf3 -c 192.168.8.10 -R -P 8
Connecting to host 192.168.8.10, port 5201
Reverse mode, remote host 192.168.8.10 is sending
[  5] local 192.168.8.1 port 40536 connected to 192.168.8.10 port 5201
[  7] local 192.168.8.1 port 40552 connected to 192.168.8.10 port 5201
[  9] local 192.168.8.1 port 40564 connected to 192.168.8.10 port 5201
[ 11] local 192.168.8.1 port 40580 connected to 192.168.8.10 port 5201
[ 13] local 192.168.8.1 port 40594 connected to 192.168.8.10 port 5201
[ 15] local 192.168.8.1 port 40604 connected to 192.168.8.10 port 5201
[ 17] local 192.168.8.1 port 40606 connected to 192.168.8.10 port 5201
[ 19] local 192.168.8.1 port 40616 connected to 192.168.8.10 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  30.1 MBytes   252 Mbits/sec                  
[  7]   0.00-1.00   sec  29.8 MBytes   249 Mbits/sec                  
[  9]   0.00-1.00   sec  46.9 MBytes   393 Mbits/sec                  
[ 11]   0.00-1.00   sec  31.9 MBytes   267 Mbits/sec                  
[ 13]   0.00-1.00   sec  31.2 MBytes   262 Mbits/sec                  
[ 15]   0.00-1.00   sec  31.6 MBytes   265 Mbits/sec                  
[ 17]   0.00-1.00   sec  46.6 MBytes   391 Mbits/sec                  
[ 19]   0.00-1.00   sec  31.4 MBytes   263 Mbits/sec                  
[SUM]   0.00-1.00   sec   280 MBytes  2.34 Gbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   1.00-2.00   sec  33.2 MBytes   279 Mbits/sec                  
[  7]   1.00-2.00   sec  26.5 MBytes   222 Mbits/sec                  
[  9]   1.00-2.00   sec  32.9 MBytes   276 Mbits/sec                  
[ 11]   1.00-2.00   sec  33.1 MBytes   278 Mbits/sec                  
[ 13]   1.00-2.00   sec  29.8 MBytes   250 Mbits/sec                  
[ 15]   1.00-2.00   sec  38.2 MBytes   321 Mbits/sec                  
[ 17]   1.00-2.01   sec  51.5 MBytes   430 Mbits/sec                  
[ 19]   1.00-2.01   sec  28.6 MBytes   239 Mbits/sec                  
[SUM]   1.00-2.00   sec   274 MBytes  2.30 Gbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   2.00-3.00   sec  35.5 MBytes   298 Mbits/sec                  
[  7]   2.00-3.00   sec  40.2 MBytes   338 Mbits/sec                  
[  9]   2.00-3.01   sec  30.6 MBytes   256 Mbits/sec                  
[ 11]   2.00-3.01   sec  38.4 MBytes   320 Mbits/sec                  
[ 13]   2.00-3.01   sec  24.1 MBytes   201 Mbits/sec                  
[ 15]   2.00-3.01   sec  30.0 MBytes   251 Mbits/sec                  
[ 17]   2.01-3.01   sec  39.9 MBytes   335 Mbits/sec                  
[ 19]   2.01-3.01   sec  36.0 MBytes   302 Mbits/sec                  
[SUM]   2.00-3.00   sec   275 MBytes  2.30 Gbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   3.00-4.00   sec  35.6 MBytes   299 Mbits/sec                  
[  7]   3.00-4.00   sec  31.5 MBytes   264 Mbits/sec                  
[  9]   3.01-4.00   sec  39.9 MBytes   336 Mbits/sec                  
[ 11]   3.01-4.00   sec  49.4 MBytes   416 Mbits/sec                  
[ 13]   3.01-4.00   sec  34.8 MBytes   293 Mbits/sec                  
[ 15]   3.01-4.00   sec  22.5 MBytes   190 Mbits/sec                  
[ 17]   3.01-4.00   sec  30.4 MBytes   255 Mbits/sec                  
[ 19]   3.01-4.00   sec  30.2 MBytes   254 Mbits/sec                  
[SUM]   3.00-4.00   sec   274 MBytes  2.30 Gbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   4.00-5.00   sec  41.2 MBytes   346 Mbits/sec                  
[  7]   4.00-5.00   sec  34.6 MBytes   290 Mbits/sec                  
[  9]   4.00-5.00   sec  25.2 MBytes   212 Mbits/sec                  
[ 11]   4.00-5.00   sec  42.6 MBytes   358 Mbits/sec                  
[ 13]   4.00-5.00   sec  37.4 MBytes   314 Mbits/sec                  
[ 15]   4.00-5.00   sec  32.8 MBytes   275 Mbits/sec                  
[ 17]   4.00-5.00   sec  27.2 MBytes   229 Mbits/sec                  
[ 19]   4.00-5.00   sec  33.8 MBytes   284 Mbits/sec                  
[SUM]   4.00-5.00   sec   275 MBytes  2.31 Gbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   5.00-6.00   sec  29.8 MBytes   250 Mbits/sec                  
[  7]   5.00-6.00   sec  30.9 MBytes   259 Mbits/sec                  
[  9]   5.00-6.00   sec  43.4 MBytes   364 Mbits/sec                  
[ 11]   5.00-6.00   sec  34.5 MBytes   289 Mbits/sec                  
[ 13]   5.00-6.00   sec  30.9 MBytes   259 Mbits/sec                  
[ 15]   5.00-6.00   sec  35.8 MBytes   300 Mbits/sec                  
[ 17]   5.00-6.00   sec  40.1 MBytes   337 Mbits/sec                  
[ 19]   5.00-6.00   sec  34.0 MBytes   285 Mbits/sec                  
[SUM]   5.00-6.00   sec   279 MBytes  2.34 Gbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   6.00-7.00   sec  31.1 MBytes   261 Mbits/sec                  
[  7]   6.00-7.00   sec  30.9 MBytes   259 Mbits/sec                  
[  9]   6.00-7.00   sec  47.6 MBytes   400 Mbits/sec                  
[ 11]   6.00-7.00   sec  31.0 MBytes   260 Mbits/sec                  
[ 13]   6.00-7.00   sec  31.6 MBytes   265 Mbits/sec                  
[ 15]   6.00-7.00   sec  30.8 MBytes   258 Mbits/sec                  
[ 17]   6.00-7.00   sec  45.5 MBytes   382 Mbits/sec                  
[ 19]   6.00-7.00   sec  31.1 MBytes   261 Mbits/sec                  
[SUM]   6.00-7.00   sec   280 MBytes  2.35 Gbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   7.00-8.00   sec  31.1 MBytes   261 Mbits/sec                  
[  7]   7.00-8.00   sec  31.8 MBytes   266 Mbits/sec                  
[  9]   7.00-8.00   sec  48.1 MBytes   404 Mbits/sec                  
[ 11]   7.00-8.00   sec  31.1 MBytes   261 Mbits/sec                  
[ 13]   7.00-8.00   sec  31.1 MBytes   261 Mbits/sec                  
[ 15]   7.00-8.00   sec  30.5 MBytes   256 Mbits/sec                  
[ 17]   7.00-8.00   sec  45.0 MBytes   377 Mbits/sec                  
[ 19]   7.00-8.00   sec  31.1 MBytes   261 Mbits/sec                  
[SUM]   7.00-8.00   sec   280 MBytes  2.35 Gbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   8.00-9.00   sec  31.1 MBytes   261 Mbits/sec                  
[  7]   8.00-9.00   sec  30.2 MBytes   254 Mbits/sec                  
[  9]   8.00-9.00   sec  48.1 MBytes   404 Mbits/sec                  
[ 11]   8.00-9.00   sec  31.2 MBytes   262 Mbits/sec                  
[ 13]   8.00-9.00   sec  31.5 MBytes   264 Mbits/sec                  
[ 15]   8.00-9.00   sec  31.8 MBytes   266 Mbits/sec                  
[ 17]   8.00-9.00   sec  45.1 MBytes   378 Mbits/sec                  
[ 19]   8.00-9.00   sec  31.0 MBytes   260 Mbits/sec                  
[SUM]   8.00-9.00   sec   280 MBytes  2.35 Gbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   9.00-10.00  sec  31.1 MBytes   261 Mbits/sec                  
[  7]   9.00-10.00  sec  30.9 MBytes   259 Mbits/sec                  
[  9]   9.00-10.00  sec  46.6 MBytes   391 Mbits/sec                  
[ 11]   9.00-10.00  sec  31.1 MBytes   261 Mbits/sec                  
[ 13]   9.00-10.00  sec  31.1 MBytes   261 Mbits/sec                  
[ 15]   9.00-10.00  sec  31.1 MBytes   261 Mbits/sec                  
[ 17]   9.00-10.00  sec  46.6 MBytes   391 Mbits/sec                  
[ 19]   9.00-10.00  sec  31.0 MBytes   260 Mbits/sec                  
[SUM]   9.00-10.00  sec   280 MBytes  2.35 Gbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   332 MBytes   278 Mbits/sec  127             sender
[  5]   0.00-10.00  sec   330 MBytes   277 Mbits/sec                  receiver
[  7]   0.00-10.00  sec   320 MBytes   268 Mbits/sec  127             sender
[  7]   0.00-10.00  sec   317 MBytes   266 Mbits/sec                  receiver
[  9]   0.00-10.00  sec   412 MBytes   345 Mbits/sec  139             sender
[  9]   0.00-10.00  sec   410 MBytes   343 Mbits/sec                  receiver
[ 11]   0.00-10.00  sec   357 MBytes   299 Mbits/sec  138             sender
[ 11]   0.00-10.00  sec   354 MBytes   297 Mbits/sec                  receiver
[ 13]   0.00-10.00  sec   316 MBytes   265 Mbits/sec  121             sender
[ 13]   0.00-10.00  sec   314 MBytes   263 Mbits/sec                  receiver
[ 15]   0.00-10.00  sec   318 MBytes   266 Mbits/sec  159             sender
[ 15]   0.00-10.00  sec   315 MBytes   264 Mbits/sec                  receiver
[ 17]   0.00-10.00  sec   421 MBytes   353 Mbits/sec  252             sender
[ 17]   0.00-10.00  sec   418 MBytes   351 Mbits/sec                  receiver
[ 19]   0.00-10.00  sec   321 MBytes   269 Mbits/sec  171             sender
[ 19]   0.00-10.00  sec   318 MBytes   267 Mbits/sec                  receiver
[SUM]   0.00-10.00  sec  2.73 GBytes  2.35 Gbits/sec  1234             sender
[SUM]   0.00-10.00  sec  2.71 GBytes  2.33 Gbits/sec                  receiver

iperf Done.

I don’t have any specific advice, but running a speedtest that terminates on the router (whether as client or server) doesn’t really measure the router’s routing performance.

1 Like

That's correct.

But I'm more concerned with the retries. I believe the performance at 2.35 Gbit/s is very close to the maximum. Unfortunately, I don't have a 2.5 Gbit+ internet connection to test with. My main concern is that it runs smoothly on my local network.

I find it very strange that the dual-core NWA50AX Pro seems to outperform the MT6000 here.

I’m a recent owner of a Flint 2 (2-3 days). I noticed the same. I went down a rabbit hole to solve it and it might not apply to you but sharing anyway in case it is useful for anyone else.

I have 2x Flint 2 devices running 24.10.4. One is a router and the other acts as a dump AP. They are both hardwired. I have an M4 mac mini that is connected to the port lan1 of the AP, and configured eth1 as another lan port on the AP.

I noticed when doing similar speed tests to you that I would get 22-2300 mbps up and 1800-1900 down (I have a 2.5G symmetric line).

I did some reading and it seems that mac os and realtek devices (I have a 2.5GbE realtek ethernet adapter) don’t always play nicely. The port my mac was connected to had flow control enabled, and as soon as I disabled that I got ~2300 up and down.

If you have it enabled it looks like this:

root@OpenWrt:~# ethtool -a lan1
Pause parameters for lan1:
Autonegotiate:  on
RX:             off
TX:             off
RX negotiated: on
TX negotiated: on

And you can turn it off on a port temporarily with ethtool -A lan1 autoneg off rx off tx off - you’ll probably have to install ethool first though.

2 Likes

They’re not retries but attempted retransmissions and to understand what’s actually going on requires a very detailed understanding of what’s happening on the wire and in the respective networking stacks. The practical reality is that your test is pushing your receiving device to the limit of it’s available processing power (as one CPU hit’s 100%), in the absence of better tuning (or more multithreaded tooling), while maxing out the bandwidth (2.35Gbps is practically maximum possible payload throughput for a 2.5Gbps network). One tuning option you could try is to set packet steering to Enabled (All CPUs) instead of the default Enabled which might help spread the load across more cores.

2 Likes

SOLUTION - If you have flaky WiFi on a GL.iNet Flint 2 router whenever you add more than one SSID to your guest network, then the solution is to create a new bridge device, br-guest, unattached to any ports, and then create a new 'guest2' Static address interface and assign br-guest as its device and an IP address (such as 10.0.0.1 with 255.255.255.0 subnet) and the guest firewall for its firewall and enable DHCP and then assign any new guest SSIDs to this 'guest2' interface.

I could not get more than 1 guest SSID to function. If I added 2 SSIDs to the default 'guest' interface then even lan SSIDs would fail. My wifi would go haywire. I read about people blaming this on the kernel modules so I spent about 15 hours debugging the kernel modules and I couldn't find any problems with the kernel modules. I saw people with the Banani PI R4 complaining about the same thing which made me suspect it was a kernel issue initially as that's also mediatek and shares the same major kernel drive project (mt76). But... I suspect their firware's default guest interface config just needs to have an underlying bridge. I think that should be how the default Flint 2 firmware is configured for its 'guest' interface. I wrote a bit more about it here, but there's a lot of duplicate info.

The firmware's default 'guest' interface has no underlying device. So it can't handle more than one attached SSID. If you add a second SSID to it then you'll experience all kinds of WiFi errors even with seemingly unrelated SSIDs.

The solution is that any time you add more than one SSID to an interface, that interface should likely have an attached bridge device. You can create a very simple bridge for this - unconnected to any ports and using just the default field vals.

1 Like

Does the Flint 2 CPUs works always at fixed max frequencies or the frequency dynamically changes based on system load?
htop doesn't show CPUs frequencies.
I have an RT3200 with governor options but I can't find the same options on Flint 2.

Always max.

Is there a way to tweak the governor to ondemand to make the CPUs run slower when not under load?
If yes, does it make sense doing it for power saving?

No there’s not a way… and any power savings is negligible anyway. We’re talking about ARM chips, not x86. I previously have had an R7800 and Dynalink WRX36 with Qualcomm chipsets, and those do support frequency scaling… the difference between their on-demand / performance governors at idle was about 0.1w (maybe that was under load? I don’t remember fully, but I do remember even at idle it was negligible). There would be some performance trade offs though as I would find it to be less responsive to burst loads on my network… so I just ran them on their performance governors (non scaling).

3 Likes

Do you know what is the power consumption after wifi down, without any client connected on wired LAN and with just the ONT active on WAN?
If you have also data in other scenarios can you share them?

With this set to Enabled (All CPUs)and the option below to 256 I can go up to 12 stream with iperf without retransmissions.

Don't know if this improves all day usage much. But i will leave it like this.

1 Like

Those are the settings I’ve used on this router for almost 2 years, works great.

2 Likes

Not sure if anyone else noticed but the devs added a sizable mt76 (wifi) driver update for our router on 24.10 branch (cherry picked from main). Lots of wifi 7 stuff, but for us some bug fixes, and things like WED supports WDS now, and a beamforming fix. Been testing it on a 24.10-snapshot for a day, so far so good.

15 Likes

Where does one look to see these updates? Thanks.

What are the specific commands to apply these two changes? Thanks.

In LuCI they are under Network -> Interfaces -> Global network options.

1 Like

Thanks. In case anyone else is wondering.

1 Like

The whole project is on github, you can see the commits, changes, source code, etc.

Are the commits, changes, etc. in the mt76 repo? Do you need to search through all repos? Thanks.