Thread (17 messages) flat view 17 messages, 9 authors, 2021-10-18

Re: [PATCH net-next 2/2] fq_codel: implement L4S style ce_threshold_ect1 marking

From: Eric Dumazet <edumazet@google.com>
Date: 2021-10-14 21:35:41

On Thu, Oct 14, 2021 at 12:54 PM Toke Høiland-Jørgensen [off-list ref] wrote:
Eric Dumazet [off-list ref] writes:
quoted
From: Eric Dumazet <edumazet@google.com>

Add TCA_FQ_CODEL_CE_THRESHOLD_ECT1 boolean option to select Low Latency,
Low Loss, Scalable Throughput (L4S) style marking, along with ce_threshold.

If enabled, only packets with ECT(1) can be transformed to CE
if their sojourn time is above the ce_threshold.

Note that this new option does not change rules for codel law.
In particular, if TCA_FQ_CODEL_ECN is left enabled (this is
the default when fq_codel qdisc is created), ECT(0) packets can
still get CE if codel law (as governed by limit/target) decides so.
The ability to have certain packets receive a shallow marking threshold
and others regular ECN semantics is no doubt useful. However, given that
it is by no means certain how the L4S experiment will pan out (and I for
one remain sceptical that the real-world benefits will turn out to match
the tech demos), I think it's premature to bake the ECT(1) semantics
into UAPI.
Chicken and egg problem.
We had fq_codel in linux kernel years before RFC after all :)
So how about tying this behaviour to a configurable skb->mark instead?
That way users can get the shallow marking behaviour for any subset of
packets they want, simply by installing a suitable filter on the
qdisc...
This seems an idea, but do you really expect users installing a sophisticated
filter ? Please provide more details, and cost analysis.
(Having to install a filter is probably more expensive than testing a boolean,
after the sojourn time  has exceeded the threshold)

Given that INET_ECN_set_ce(skb) only operates on ECT(1) and ECT(0),
I guess we could  use a bitmask of two bits so that users can decide
which code points can become CE.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help