(not adding much to your conversation):
same,
iperf3 between two linux realtek hosts (one of them a Wyse 5070)
[ 5] 0.00-10.00 sec 1.09 GBytes 939 Mbits/sec 286 sender
[ 5] 0.00-10.00 sec 1.09 GBytes 938 Mbits/sec receiver
Mine also shows
LnkSta: Speed 2.5GT/s, Width x1
iirc, Intel GbE controllers used to run at PCIe 1.1 speeds, mostly because the extra power of a PCIe 2.0 lane was unnecessary. 2.5GT/s is more than enough for 1GbE, even with overhead. Actual PCIe bandwidth at 2.5GT/s is something around 2Gbps. Protocol was still PCIe 2.0+, iirc. I have to assume Realtek is doing something similar, for similar reasons.
Latest 1.18 bios, Kernel 6.0 now.
iperf3 between a the Wyse 5070 and a Windows Connect-X4 host:
[ 5] 0.00-10.00 sec 1.09 GBytes 940 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 1.09 GBytes 939 Mbits/sec receiver
Fewer retries, FWIW
Same results in reverse (-R), though retries went to 0 on the two linux devices, and that column went away with the Windows host. Dunno why. [EDIT2: still Don't know why, but just running it multiple times seems to clear away the retries]
[EDIT3: spoke too soon]
EDIT: have you tried this with a direct connection? Maybe one of the hops is a router that is doing CPU packet handling, and is a bottleneck?