Is the ECN marking in the IP header is performed by default in Ubuntu (4.15.x kernel) or should the kernel be recompiled with a special option? I configured a RED ingress queue at an Ubuntu machine, net.ipv4.tcp_ecn is set to 1 in all hosts of the network and ECN is enabled in the tc qdisc command.
I am using 4 ubuntu machines using this topology: client --- rt1 --- rt2 --- server.
iperf -s
is running at the server side and iperf -c server -P 100 -d
at the client side.
(client --- rt1): 100mbit 1 ms latency; (rt1 --- rt2): 10mbit 1ms latency; (rt2 --- server): 100mbit 1ms latency;
The RED queue is configured at the client-facing interface of rt1 as following:
Create ingress on external interface
tc qdisc add dev $ext handle ffff: ingress
ifconfig $ext_ingress up
Forward all ingress traffic to the IFB device
tc filter add dev $ext parent ffff: protocol all u32 match u32 0 0 action mirred egress redirect dev $ext_ingress
Apply RED on the IFB device
tc qdisc add dev $ext_ingress root red limit 50000 min 4167 max 12500 burst 7 avpkt 1000 probability 0.5 bandwidth 100mbit ecn
I see dropped packets as early drop due to congestion but there are no marked packets.