OK. I share some details of my tests with iperf3 and speedtest-cli.
I tested gigabit and 100mbit settings with both rx flow control on and off.
1st test at normal/standard settings:
osmc@osmc:~$ sudo ethtool -a eth0
Pause parameters for eth0:
Autonegotiate: on
RX: on
TX: on
RX negotiated: on
TX negotiated: on
osmc@osmc:~$ iperf3 -c 192.168.1.19
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 375 MBytes 315 Mbits/sec 0 sender
[ 4] 0.00-10.00 sec 374 MBytes 314 Mbits/sec receiver
osmc@osmc:~$ speedtest-cli
Download: 52.47 Mbit/s
Upload: 39.31 Mbit/s
P.S. I used “sudo ethtool -A eth0 rx off”, “sudo ethtool -A eth0 RX off” (with capitals) was not working
2nd test, testing flow control with rx setting off:
osmc@osmc:~$ sudo ethtool -A eth0 rx off
osmc@osmc:~$ sudo ethtool -a eth0
Pause parameters for eth0:
Autonegotiate: on
RX: off
TX: on
RX negotiated: off
TX negotiated: on
osmc@osmc:~$ sudo iperf3 -c 192.168.1.19
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 371 MBytes 311 Mbits/sec 0 sender
[ 4] 0.00-10.00 sec 370 MBytes 311 Mbits/sec receiver
osmc@osmc:~$ speedtest-cli
Download: 44.72 Mbit/s
Upload: 38.89 Mbit/s
Not much of a difference. The download speed is a bit, but not notably lower.
Test 3: Now i changed the network speed to 100 mbits (RX flowcontrol on)
osmc@osmc:~$ sudo ethtool -A eth0 rx on
osmc@osmc:~$ sudo ethtool -a eth0
Pause parameters for eth0:
Autonegotiate: on
RX: on
TX: on
RX negotiated: on
TX negotiated: on
osmc@osmc:~$ sudo ethtool -s eth0 speed 100 duplex full autoneg on
osmc@osmc:~$ sudo iperf3 -c 192.168.1.19
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 113 MBytes 94.8 Mbits/sec 0 sender
[ 4] 0.00-10.00 sec 113 MBytes 94.5 Mbits/sec receiver
osmc@osmc:~$ speedtest-cli
Download: 87.78 Mbit/s
Upload: 38.95 Mbit/s
iperf3 shows a lower bandwith close to the 100mbit setting which is expected.
speedtest-cli shows a download speed which is much higher and is as expected given the 100mbit setting.
Test 4: at 100mbits, now with RX setting off again
osmc@osmc:~$ sudo ethtool -A eth0 rx off
osmc@osmc:~$ sudo ethtool -a eth0
Pause parameters for eth0:
Autonegotiate: on
RX: off
TX: on
RX negotiated: off
TX negotiated: on
osmc@osmc:~$ sudo iperf3 -c 192.168.1.19
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 114 MBytes 95.4 Mbits/sec 0 sender
[ 4] 0.00-10.00 sec 113 MBytes 95.0 Mbits/sec receiver
osmc@osmc:~$ speedtest-cli
Download: 91.96 Mbit/s
Upload: 39.07 Mbit/s
The rx setting doesn’t give much different results. Setting eth0 to 100mbits/s does.
I hope this clears things up?