Re: [tsvwg] draft-morton-tsvwg-sce: "Permitted ECN codepoint packet transitions"

Dave Taht <dave@taht.net> Thu, 14 November 2019 19:44 UTC

Return-Path: <dave@taht.net>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A01F812009C for <tsvwg@ietfa.amsl.com>; Thu, 14 Nov 2019 11:44:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6Ip6ITW9m0wF for <tsvwg@ietfa.amsl.com>; Thu, 14 Nov 2019 11:44:35 -0800 (PST)
Received: from mail.taht.net (mail.taht.net [IPv6:2a01:7e00:e000:2d4:f00f:f00f:b33b:b33b]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 74CC912004F for <tsvwg@ietf.org>; Thu, 14 Nov 2019 11:44:35 -0800 (PST)
Received: from dancer.taht.net (c-73-170-84-247.hsd1.ca.comcast.net [73.170.84.247]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.taht.net (Postfix) with ESMTPSA id 3D8AC21B1C; Thu, 14 Nov 2019 19:44:32 +0000 (UTC)
From: Dave Taht <dave@taht.net>
To: Matt Mathis <mattmathis@google.com>
Cc: G Fairhurst <gorry@erg.abdn.ac.uk>, tsvwg <tsvwg@ietf.org>
References: <201911141350.xAEDo99J048928@gndrsh.dnsmgr.net> <CADVnQynGEEmt2vYEX5e=bA9YW+mHpSJ7Z3W9K4nSfv_gk_Svwg@mail.gmail.com> <5DCD9D37.3000904@erg.abdn.ac.uk> <878soi482u.fsf@taht.net> <CAH56bmC5oyeQpnupk-MuBRx5+-8KG8xbAKccMN_1r1zTwjtZ_w@mail.gmail.com>
Date: Thu, 14 Nov 2019 11:44:29 -0800
In-Reply-To: <CAH56bmC5oyeQpnupk-MuBRx5+-8KG8xbAKccMN_1r1zTwjtZ_w@mail.gmail.com> (Matt Mathis's message of "Thu, 14 Nov 2019 11:10:46 -0800")
Message-ID: <87zhgy2qg2.fsf@taht.net>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/iyX2u02Mz3EDaXl4nG0pcL7jZUg>
Subject: Re: [tsvwg] draft-morton-tsvwg-sce: "Permitted ECN codepoint packet transitions"
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsvwg/>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Nov 2019 19:44:38 -0000

Matt Mathis <mattmathis@google.com> writes:

> Note that the most common case would actually be two bottlenecks
> having completely different statistics: a highly aggregated short
> queue "core" device where approximately all drops are caused by bursts
> in other flows, and an edge bottleneck which is properly marking CE,
> and is in good control of its total load.
>
> In this environment, the best solution is the MIN() of independent
> loss based and ECN based controllers. All other functional combination
> of those signals will cause fairness problems where unrelated core
> losses reduce a flow's share of the well controlled edge bottleneck.

Agree. We can wave hands a little regarding other lossage on the
link(s), in an environment where we see no SCE, CE and some drop,
or in an environment where we are seeing SCE and some drop.


>
> This is one of the observations that flipped me into strongly pro BBR,
> where in principle it is trivial to run multiple independent rate
> controllers, and explicitly pick the min. (Did we mention that BBR
> isn't really done yet? - There is a lot to do...)

I'm pro-BBR as well, and looking forward to the SCE version.

>
> Going back to the original question, I would expect it to be a rare
> corner case for the losses and partial CE marks to come from the same
> bottleneck. (100% CE is a different story). Rare == bad bottleneck
> design, and not worthy of addressing in congestion control.

Regrettably that's not the measured case with pie, at least, in that
the standard (with ecn enabled) it starts dropping at 10% drop probability.

So does fq-pie.

fq-codel does not drop until queue overload, however (due to memory
constraints on consumer routers) shorter queues than desirable are often
deployed, and the bulk dropper has been observed to kick in more often
than it should, so a typical pattern is CEs with a big bulk drop
periodically in the case of overload. There's a partial cure for the non
O(1) cpu overhead of finding the fattest queue now in linux head, and a
complete removal of the non O(1) search in the fq_codel_fast (SCE)
repository that's a tad probalistic. (It's O(1) but relies on finding
the next fattest flow in under 32 packet deliveries)


https://github.com/dtaht/fq_codel_fast/commit/f00ad01168e6d4e18b2d46f3de4f12aaee2bb778


100% CE is also easy to do, given that modern TCPs cap cwnd reduction to
2 or (4 in BBR's case), and all you need to do is have enough ECN
enabled tcp flows going through the bottleneck, to get stuck there at
any X maximum queue length. This should be an easy figure to calculate,
and why sub-packet windows (and/or a MSS reduction) should be
requirements IMHO for a more fully ecn-abled internet, and why I like
RFC3168 sec 6.1.5 and other things like losing syns vs things like ECN++.

I haven't really catagorized dualpie's behaviors, not having the kind of
time for I had 2011-2014. 

as for cake, well, I think cake should revert to drop far sooner than
it does, but that's a pretty lonely opinion thus far.

And in all cases, so far as I know, the combination of CE, (or SCE) +
drop has not been explored well in any transport so it's early to dismiss
the idea entirely, and don't know how rare these corner cases actually
are. Until recently the dctcp implementation in linux had no response to
drop at all (no cwnd reduction!!), and all my data on it predates that change.

>
> Thanks,
> --MM--
> The best way to predict the future is to create it. - Alan Kay
>
> We must not tolerate intolerance;
> however our response must be carefully measured: 
> too strong would be hypocritical and risks spiraling out of control;
> too weak risks being mistaken for tacit approval.
>
> On Thu, Nov 14, 2019 at 10:38 AM Dave Taht <dave@taht.net> wrote:
>
>     G Fairhurst <gorry@erg.abdn.ac.uk> writes:
>     
>     > I would expect loss to be an important mechanism to deal with
>     overload
>     > of a ECT(0) queue.
>     
>     I expect loss to be an important mechanism to deal with overload
>     of
>     ECT(0) *or* ECT(1).
>     
>     In fact, I'd rather like it if transports considered a mixture of
>     loss
>     and CE, in the SCE case, as an indication of grosser overload with
>     a
>     correspondingly higher rate reduction.
>     
>     This idea is not possible in the L4S case, sadly enough.
>     
>     A bit more below.
>     
>     >
>     > The observation that TCP senders received two signals - loss and
>     > CE-marking was the important step behind RFC8511 to take
>     advantage of
>     > any lower queuing delay that an ECN-capable AQM can provide,
>     while
>     > accepting that bursts and other traffic can exceed the router's
>     > buffering and induce loss. That is somewhat different in L4S
>     which
>     > seeks to keep a much lower queuing delay.
>     >
>     > Gory
>     >
>     >
>     > On 14/11/2019, 22:16, Neal Cardwell wrote:
>     >> On Thu, Nov 14, 2019 at 8:50 AM Rodney W. Grimes
>     >> <4bone@gndrsh.dnsmgr.net> wrote:
>     >>> Hello tsvwg list members,
>     >>>
>     >>> It is our intent to ask for adoption by the TSVWG of
>     draft-morton-tsvwg-sce
>     >>> (https://tools.ietf.org/html/draft-morton-tsvwg-sce-01) during
>     the IETF/106
>     >>> Singapore TSVWG session.
>     >> One random thought: the draft-morton-tsvwg-sce-01 draft
>     mentions:
>     >>
>     >> Permitted ECN codepoint packet transitions by middleboxes are:
>     >>
>     >> Not-ECT -> Not-ECT (or drop)
>     >> ECT -> ECT or SCE or CE
>     >> SCE -> SCE or CE
>     >> CE -> CE
>     >>
>     >> Presumably if the buffer space is full and an ECT-, SCE-, or
>     CE-marked
>     >> packet arrives then that packet can be dropped. So presumably
>     "drop"
>     >> is permitted from those codepoint states as well. (I see the
>     point
>     >> that hopefully this will be rare for ECT/SCE/CE packets, but
>     with
>     >> bursty connection arrivals it seems important to clarify that
>     this is
>     >> possible.)
>     >>
>     >> Since a drop is not really an "ECN codepoint packet
>     transition", and
>     >> can happen to any packet, perhaps "(or drop)" could be omitted
>     from
>     >> the table, for clarity? And as a replacement, the text could
>     mention
>     >> something about "drop" being a possibility for packets marked
>     with any
>     >> of those ECN code points?
>     
>     Good idea.
>     
>     >>
>     >> best,
>     >> neal
>     
>