I'd write more but it started turning into a rant. Staying constructive:
On Sun, Jul 22, 2018 at 1:56 PM Jonathan Morton <
chrom...@gmail.com> wrote:
>
> > On 22 Jul, 2018, at 11:39 pm, Neal Cardwell <
ncar...@google.com> wrote:
> >
> > o RFC 3168 is a 17-year-old standard, and yet I am not aware of any large scale deployments of bottlenecks marking with RFC 3168 ECN. [...] Though perhaps there are other data points that I'm not yet aware of.
>
> Those results are mainly due to the general absence of AQM *in general* at bottlenecks, and the general non-use of ECN in endpoint hosts, until very recently. Frankly, it's taken a criminally long time to get ECN deployed and into actual use, mostly because of severe inertia among the many middlebox vendors and operators.
>
> The default qdisc in several major Linux distributions is now fq_codel. The sqm_scripts package is one of the most popular components of OpenWRT, and now includes Cake support - all Codel based. The make-wifi-fast patches are all based around a variant of fq_codel, and any router running a recent enough version of OpenWRT and with ath9k/10k hardware will be using it.
>
> Existing endpoint hosts (running Windows, OSX, iOS, Linux, Android) support RFC3168-style ECN in their TCP stacks. It might not be actually turned on by default, but if it is, that's what is supported. The necessary TCP extensions for Accurate ECN reporting, which is required for DCTCP, are generally not supported. Codel is designed and carefully tuned to work with these TCP stacks.
Apple enabled classic ecn universally over a year ago. Systemd last month.
You could get some data on the deployment from enabling classic ecn on
those google servers that still run cubic.
> So from a consumer point of view, Codel is *the* dominant deployment of AQM with ECN support, while anything implementing L4S/DCTCP is invisible and irrelevant. Hence my concern about BBR2's inability to benefit from Codel's signalling behaviour. These concerns would be substantially reduced if:
>
> - A single ECE was sufficient cause to exit STARTUP and enter a normal probing mode.
PLEASE. The world consists of hundreds of short flows in slow start a
minute. theorist tests tend to consist of two long duration flows.
> - The ECN response threshold was reduced to 1%, the same as the packet loss threshold.
Um, I'd prefer something even more drastic. A single CE response could
be min(lowest observed delay in the last 100ms,whatever cubic would
do) and, further, entering probertt in circumstances where the
observed rtt has not budged downward even that much would reduce the
latecomer problem bbr has. [1]
Wouldn't it be great if bbr found the right rate in 100ms rather than 10 sec?
Anyway, with patches of any sort for bbr2 in hand + some ecn response
I can deploy something bbr-like to my
flent-wherever.bufferbloat.net
testbeds around the world... would ease my cake testing a lot, because
currently I get bbr + ecn being an unresponsive sender which is truly
ugly. (engages fq_codel's bulk dropper, and (theoretically), cake's
BLUE)
I'm hoping we really nailed the ack-filter, as random ack drop and
dctcp don't mix.
[1] I know full well this is the wrong thing for single queued RED.
But being ultra gentle as a staring point for research would be cool,
and it instantly moves the flow into the fast fq_codel queue, giving
the closest thing to
the actual rtt I can think of. our usual fq_codeled uplink also starts
falling into the fast queue for acks.
> Anything less would be incompatible with existing deployments of ECN on the consumer-facing Internet.
+10. There are some gradual steps like using ect(1) as a dctcp
indicator, which we could leverage ce_threshold for.
>
> - Jonathan Morton