At home I have 2 OpenWRT devices switched to a Gigabit Switch, working like a charm.
The firts device is my router (192.168.1.1) x86 Celeron Machine J1900 CPU.
The second device is my AP (192.168.1.3) Archer C2600.
When I test the network speed with iperf from my J1900 to my C2600 I get:
Although it seems counter-intuitive, this is probably not an issue. It is curious, but not necessarily totally surprising, that the performance is so asymmetric.
As it turns out, routers (especially consumer grade) are really good at routing packets, but are very poor at generating or terminating them. This is because there is dedicated hardware for the routing functions, but the general purpose CPU (which is responsible for generating/terminating packets in an iPerf test) is generally not powerful enough to keep up with line-rate packets.
To really test your router's throughput, you'd want to run iPerf between a computer on the WAN side of the network and one on the LAN side. If you have (or can experiment with) a double-NAT configuration, it is a fairly easy test to run.
EDIT: Also, it is safe to assume that packets running through the switch (typically LAN side) will run at line rate (i.e. ~940 Mbps) assuming a high enough power general purpose computer (i.e. any normal mac/win/linux box in the last 5-10 years) and a gigabit connection with good cables between each computer and the router's LAN ports (switched). Easy to test, too.
If you're testing across two or more VLANs, you'd be testing the routing speed since it would still require some CPU and routing HW to move packets between the VLANs.
I have read iperf3 is not able to work in multicore, only uses one core. C2600 is a dual core 1.4 Ghz router.
Maybe that's the point? Maybe iperf3 can't handle it?
There are known ethernet performance issues on the ipq8 platform, not much you can do atm unless you have hardware docs and know your way around the driver source code.
Agreed but if you run the same test from 192.168.1.1 you will see the same result. The idea is to have the same result in both direction. You can tune the test to get higher bandwidth results.