I'm trying to use L4S queue management feature in MacOS Sonoma.
I've followed the online guides: "Reduce network delays with L4S" and "Testing and Debugging L4S in Your App".
Basically I setup "Internet sharing" to allow traffic to pass through a Mac Mini using Linux devices as the endpoints. (This requires two ethernet ports so I use an USB Ethernet adapter as the second port).
The Linux client sends the TCP SYN with the correct flags enabled ECE, CWR and AE.
However, at the receive side, the SYN is received with only the flags ECE, CWR.
This causes a fallback to classic ECN which means there's no L4S (TCP Prague) enabled.
Anyone know why this happens. Do I need to enable something?
I have used the following:
defaults write -g network_enable_l4s -bool true
And also tried an undocumented (?) sysctl option:
sysctl -w net.inet.tcp.accurate_ecn=1
However, that doesn't seem to make a difference.
Does anyone know how to get the AccurateECN negotation to work?