@darksky -
thank you for your prompt feedback and config.
Regarding your questions:
Not an in-place swap, but reconnected cables to the T8 (instead of wall outlet). Same cables were used, just total length was shorter. Cables were swapped to rule out cable issue
Cisco SG350-20
"kernel": "5.10.176"
Essentially I had the same set up as you (but without VLANs). DHCP client on eth1 (WAN), static on eth0 (LAN).
I then moved them into the same bridge and zone for the re-test, without effect on the iperf3 results.
I’ll have a closer look at htop as suggested by @konus and @frollic above.
Yes, you are right - mine is the T8 Pro (not T8 plus).
Glad you’re not seeing the issue. Maybe it’s just the T8 Pro. Will post findings here.
-- EDIT --
Tried again, different cables & different machines (xeon && i7) - issue has gone away (kind off)
Iperf3 now reports ~700 Mbps in either direction, both forward and reverse testing.
Hooking up the raspberry pi shows the same behaviour - so probably bad cable (connection). Still puzzled why that would be unidirectional...
In comparison to my switch, there is still a ~30% performance hit (~700 vs ~940 Mbps) when using the T8pro. Maybe caused by the slower CPU as compared to the T8plus.
I've been having roughly the same issue since i got my T8plus. It's still in the testing phase, and i could narrow my issue to this:
Somehow, the nics in this mini pc do not like switches.
If i do a direct cable between a pc and the device ( doesnt matter if its the lan or wan interface) iperf3 results are stable ~950mbit. If i put any switch ( i tried unifi switch and a cisco) between a pc and the device, one direction in iperf3 will be ~80-90mbit, while the reverse will be ~940mbit. And it gets more weird... If i do iperf3 with 4-5 parts, sometimes it does ~940mbit combined, sometimes ~70-80mbit.
Also, for a quick test i just plugged the WAN port into my existing network, disabled the input fw on it and did some speed tests with the ookloa speedtest script. My gigabit fiber had like... 4 mbit down and ~900mbit up according to it. If i leave out the switch connecting directly to my old routers lan port, its 940/940. Something is wrong here but i can't really find it why.
Tried replacing cables, changing ports on the switch, changing ports on the t8plus, nothing really helps. Also its the same with 23.05-rc2 and 22.03.5.
Does anyone have any advice about this? I can't put this into production in this state...
disable auto neg, and force 1gbit full duplex using ethtool (if it works for RTL NICs)
boot some recent Linux dist from a flash drive, see if the same issue occurs there
Tried the first, nothing happened. Even when auto is on, it is negotiated at 1gbit. Also tried disabling energy efficient stuff on the switch still the same.
So quickly booted an ubuntu 23.04 with 6.2 kernel, and... everything is perfect there.
Same r8169 driver... so i guess it's probably the kernel. 5.15 is quite old. Also it feels like the intel pstate driver behaves differently on 6.2, though nothing scientific i can provide to prove that.
I mentioned, that i tried 22.03.5 briefly, and it behaved exactly like 23.05-rc2.
Next step to try would be to virtualize the whole thing, it seems like i won't be able to avoid it.
Fisihed debugging and found the solution.
It seemed fine on ubuntu 23.04, but after installing proxmox ve 8.0 it behaved exactly the same. Both have 6.2 kernel, so it's not in the kernel. Did some more digging, ended there: https://bugzilla.redhat.com/show_bug.cgi?id=1671958
Issue is exactly like mine. It seems there are some problems with realtek nics and aspm.
Long story short, on proxmox i can fix the nics with:
Update:
Reinstalled openwrt, but it does not have any link under /sys/class/net/eth0/device/ .
So the root cause is known, but i have no clue how to apply this onto openwrt.
Maybe someone has some idea.
The param is set on both 6.2 kernels i tested with. This just exposes the sysfs knobs. Ubuntu has an udev rule that disables aspm on r8169 pcie links, while the proxmox kernel does not. Openwrt x86 kernels are not compiled with that config option. Interestingly, some other platforms do have it.
Also, ASPM controls are not exposed in the device bios either so can't fix it there.
I might create a ticket on github to include this config flag in x86 kernel, though i guess that won't go anywhere anytime soon, if ever.
Wow, I wouldn't have expected that, so it seems to be a device quirk ...
It's probably easier to get it enabled for x86, than it'd have been for other platforms, since there aren't any real space restrictions, compared to "regular" routers.
It's no big deal, if the kernel grows by a couple kb ...