Re: [tsvwg] Update to Position Statement on ECT(1)

"C. M. Heard" <heard@pobox.com> Sun, 10 May 2020 14:37 UTC

Return-Path: <heard@pobox.com>
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 249433A09FF for <tsvwg@ietfa.amsl.com>; Sun, 10 May 2020 07:37:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=pobox.com; domainkeys=pass (1024-bit key) header.from=heard@pobox.com header.d=pobox.com
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 W_MgCoYgQC6Z for <tsvwg@ietfa.amsl.com>; Sun, 10 May 2020 07:37:11 -0700 (PDT)
Received: from pb-smtp2.pobox.com (pb-smtp2.pobox.com [64.147.108.71]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B25B83A09FC for <tsvwg@ietf.org>; Sun, 10 May 2020 07:37:10 -0700 (PDT)
Received: from pb-smtp2.pobox.com (unknown [127.0.0.1]) by pb-smtp2.pobox.com (Postfix) with ESMTP id B6F6B5D604 for <tsvwg@ietf.org>; Sun, 10 May 2020 10:37:09 -0400 (EDT) (envelope-from heard@pobox.com)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=mime-version :references:in-reply-to:from:date:message-id:subject:to:cc :content-type; s=sasl; bh=DDU6WNarDJ5nmBSnNL2Q77FX618=; b=xltB7n ftdD0Fm55LaHYg39RsgtmTUGdqcp/GHufGQjxTkpZqeSUdaslGQ9ekiFp2xoqvMe pam/UUva8jhiBVkxWL+GGi+VsoMr9/ydxESG6F2q/zm40n0vAWcnQPmkIwRQuDhq S4lBkOpw+ESJI/4XaSpcsWsC3q09ID2OFzVxE=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=mime-version :references:in-reply-to:from:date:message-id:subject:to:cc :content-type; q=dns; s=sasl; b=hDEM3Fl/LpVL4h3U0cHnH1RdtzfCN83e mCRX9O9J2jpPQTMPHHEokuWe/bpWhxnFROV21E7QIzjYsAVNGBqNPC6H6oGOeMwD wOvLw5gHc9wYC+TEoywKL6xYocZh+UiHG6hlNkIi/KnOQwELyT11Ev7j+gTXbY6C C5G3oxjxIzI=
Received: from pb-smtp2.nyi.icgroup.com (unknown [127.0.0.1]) by pb-smtp2.pobox.com (Postfix) with ESMTP id AFF945D603 for <tsvwg@ietf.org>; Sun, 10 May 2020 10:37:09 -0400 (EDT) (envelope-from heard@pobox.com)
Received: from mail-il1-f182.google.com (unknown [209.85.166.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pb-smtp2.pobox.com (Postfix) with ESMTPSA id 358945D602 for <tsvwg@ietf.org>; Sun, 10 May 2020 10:37:09 -0400 (EDT) (envelope-from heard@pobox.com)
Received: by mail-il1-f182.google.com with SMTP id w6so5987334ilg.1 for <tsvwg@ietf.org>; Sun, 10 May 2020 07:37:09 -0700 (PDT)
X-Gm-Message-State: AGi0PubKm0LOKAokyMs0+sCYn8iNHWgm+9/ScUWNO+5pfjKV+YEAiwpt mIhFKpzKRaUP8SwFtDAEwUJDB4K0B/C1BW2xPgI=
X-Google-Smtp-Source: APiQypJNTRvMV7+vZMhpYny+ljnlE7xZVHONKMB4PjvJzLW+HrXES/YMP6K/mcmXIh3di/tEY5ucdYEP42vHItyGYrY=
X-Received: by 2002:a05:6e02:1044:: with SMTP id p4mr220629ilj.183.1589121428546; Sun, 10 May 2020 07:37:08 -0700 (PDT)
MIME-Version: 1.0
References: <BE44EAE9-5CFB-4F5D-85B8-05AFA516C151@akamai.com>
In-Reply-To: <BE44EAE9-5CFB-4F5D-85B8-05AFA516C151@akamai.com>
From: "C. M. Heard" <heard@pobox.com>
Date: Sun, 10 May 2020 07:36:56 -0700
X-Gmail-Original-Message-ID: <CACL_3VEbUHB-Omwp1-g5Tq3G3J-kKj9N3jPZLcfruicw3X=AsA@mail.gmail.com>
Message-ID: <CACL_3VEbUHB-Omwp1-g5Tq3G3J-kKj9N3jPZLcfruicw3X=AsA@mail.gmail.com>
To: "Holland, Jake" <jholland=40akamai.com@dmarc.ietf.org>
Cc: TSVWG <tsvwg@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000040ecb505a54c2ad5"
X-Pobox-Relay-ID: BA7303CA-92CB-11EA-8F42-D1361DBA3BAF-06080547!pb-smtp2.pobox.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/R3PFNnNYsO6Na2pXItkAVVVgK_A>
Subject: Re: [tsvwg] Update to Position Statement on ECT(1)
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: Sun, 10 May 2020 14:37:13 -0000

On Fri, May 8, 2020 at 12:42 PM Holland, Jake wrote:

> It has come to my attention that a technical fix is possible for my safety
> concerns with "ECT(1) as an input" by changing the signaling scheme.
>
[...]

> - ECT(1) is set from sender after negotiating endpoint support
> - On-path devices change ECT(1)->ECT(0) to signal low levels of congestion
> - On-path devices continue to use CE, as in RFC3168, to signal high levels
>   of congestion, resulting in a required multiplicative decrease response.
>
> Under this scheme, for any path with a single AQM that's dualq, ECT(1)
> remains a very good classifier for that AQM.  Since this covers most
> relevant paths that aren't within a controlled environment like
> datacenters,
> it has a low downside.
>
> Under this scheme, ECT(0) becomes the 1/p signal for dualq+TCP Prague, and
> CE becomes the 1/sqrt(p) signal from the classic queue if the LL queue
> overflows, and results in multiplicative decrease from the sender.
>
> This would make L4S compatible with RFC 3168 without relying on a fragile
> classic queue detection algorithm, so it would address my safety concerns.
>

Thank you for presenting this idea. If the details can be worked out it
looks very promising.


> As with all available signaling schemes, I acknowledge that this approach
> is not perfect, and comes with tradeoffs.  A few of the known tradeoffs
> would include (with thanks to Bob, Koen, and Kyle for explaining some of
> these to me offline):
> - existing tunneling decapsulation specs would often lose non-CE signals
>

Yes, combinations marked (**) below would have to changed from RFC 6040:

            +---------+------------------------------------------------+
            |Arriving |            Arriving Outer Header               |
            |   Inner +---------+------------+------------+------------+
            |  Header | Not-ECT | ECT(0)     | ECT(1)     |     CE     |
            +---------+---------+------------+------------+------------+
            | Not-ECT | Not-ECT |Not-ECT(!!!)|Not-ECT(!!!)| <drop>(!!!)|
            |  ECT(0) |  ECT(0) | ECT(0)     | ECT(0) (**)|     CE     |
            |  ECT(1) |  ECT(1) | ECT(0) (**)| ECT(1)     |     CE     |
            |    CE   |      CE |     CE     |     CE(!!!)|     CE     |
            +---------+---------+------------+------------+------------+


Similar changes would be needed for draft-ietf-tsvwg-rfc6040update-shim and
draft-ietf-tsvwg-ecn-encap-guidelines.

Clearly, the need to get such changes deployed would be a barrier to
barrier to adoption.

- the existing accecn spec would often lose non-CE signals
>

Actually, I would go farther and say that something rather different from
the existing AccECN draft would be needed. AccECN provides accurate
feedback of the number of CE marks observed. Under the proposed scheme L4S
would need to getting accurate feedback of the number of ECT(0)
(pre-congestion / some congestion) marks. AccECN would need to be
re-worked to provide both that and, in addition, either the existing
ECE/CWR handshake or something else that performs the equivalent function.
The most obvious solution would be to repurpose NS and one or  more
currently reserved flag bits (or use other ideas from RFC 7560 Sec 5.2) and
leave ECE/CWR unchaged. I note in passing the SCE proposal would have to do
something along the same lines (though AFAICT that has not yet been fully
fleshed out).


> - For paths with multiple AQMs, the classifier partially loses integrity in
>   later AQMs when earlier AQMs are loaded.  (Note also the worse downside
>   that increasing deployment of new AQMs potentially reduces the fidelity
>   further.)
>

If I understand what is being said, this is because ECT(0) would become
ambiguous, as it can appear either on an L4S packet with a pre-congestion
marking, or a non-L4S packet.  Doesn't the same issue exist with the
current L4S proposal for CE-marked packets?

In spite of the downside from these tradeoffs (and the work that would be
> necessary to fix the specs and their deployment to capture the most value
> from L4S), a signaling scheme with the backward compatibility that this
> approach provides is what would make the key difference between a safely
> deployable L4S and not, IMO.
>

+1


> Since this approach would give almost the same benefits as "ECT(1) as
> output", and also provides a classifier that can serve dualq's needs well
> in most of the deployment scenarios, "ECT(1) as input" is my current
> preference, because of my new belief that it can be made compatible
> with RFC 3168 queues and still mostly get the classification job done.
>

Actually, it seems to me that this approach would yield exactly the same
congestion signaling capability as using ECT(1) as a  pre-congestion / some
congestion mark. All that has been done is to reverse the role of ECT(1)
and ECT(0) compared to what the SCE draft and RFC 6040 envisioned. In other
words:

      +-----+-----+
      | ECN FIELD |
      +-----+-----+
         0     0        Not-ECT
         0     1        ECT(1) - L4S/SCE Capable AND No Congestion
         1     0        ECT(0) - Some Congestion OR RFC 3168 ECN Capable
         1     1        CE


Jake, you said that the three issues discussed above -- tunnels, AccECN,
and multiple AQMs in the path are "a few of the known tradeoffs." What are
the others?

Mike Heard