As another clue, the un-fairness goes away when ECN is enabled on the client (both results with ingress keyword in use):
sysctl -w net.ipv4.tcp_ecn=2
IP1, 1 up: 46.7 Mbit
IP2, 16 up: 46.7 Mbit
IP1, 16 down: 41.0 Mbit
IP2, 1 down: 49.3 Mbit
sysctl -w net.ipv4.tcp_ecn=1
IP1, 1 up: 47.0 Mbit
IP2, 16 up: 47.0 Mbit
IP1, 16 down: 46.1 Mbit
IP2, 1 down: 46.1 Mbit
I find the different TCP RTT “slots” interesting (see the rtt graphs, all times in ms):
no ingress: 4, 8.5, 13, 17
no ingress+ecn: 8, 12, 16 (a few outliers at 20)
ingress: 4, 8, 12, 16, 20
ingress+ecn: 8, 12, 16 (outliers at 4 and 20 later in test)
Oops, sorry I didn’t notice this before but it’s the ingress keyword that makes the difference:
qdisc cake 802c: dev ifbLink2 parent 1:1 bandwidth unlimited besteffort dual-dsthost nonat nowash ingress no-ack-filter no-split-gso rtt 100.0ms raw overhead 0
IP1, 1 up: 46.8 Mbit
IP2, 16 up: 46.8 Mbit
IP1, 16 down: 41.9 Mbit
IP2, 1 down: 51.1 Mbit
qdisc cake 803a: dev ifbLink2 parent 1:1 bandwidth unlimited besteffort dual-dsthost nonat nowash no-ack-filter no-split-gso rtt 100.0ms raw overhead 0
IP1, 1 up: 46.6 Mbit
IP2, 16 up: 46.5 Mbit
IP1, 16 down: 46.4 Mbit
IP2, 1 down: 46.5 Mbit
Also, my setup is different in that I use cake as a leaf to either hfsc or htb. But, it’s adding the ingress keyword that causes the imbalance for me.
Great, thanks for trying it. That strongly suggests a problem with the kernel (or driver) I’m using. Feels better to know it works as it should in recent kernels though...
On Mar 2, 2019, at 5:47 AM, George Amanakis <gamanakis@gmail.com> wrote:
On Fri, 2019-03-01 at 22:02 -0500, George Amanakis wrote:
I will setup a vlan and try again.
I replicated Pete's VLAN setup, and I am getting fairness:
IP1,2 <---> router enp1s0 / router enp1s0.100 <---> server
IP1, 1 up: 46.73 mbit/s
IP2, 32 up: 46.91
IP1, 32 down: 46.70
IP2, 1 down: 46.89
qdisc cake 8006: dev enp1s0.100 root refcnt 2 bandwidth 100Mbit
diffserv3 dual-srchost nonat nowash no-ack-filter split-gso nofwmark
rtt 100.0ms noatm overhead 4
qdisc cake 8002: dev ifb0 root refcnt 2 bandwidth 100Mbit diffserv3
dual-dsthost nonat nowash no-ack-filter split-gso nofwmark rtt 100.0ms
noatm overhead 4