Re: [tsvwg] L4S DSCP (was: L4S drafts: Next Steps)

Jonathan Morton <chromatix99@gmail.com> Mon, 29 March 2021 03:23 UTC

Return-Path: <chromatix99@gmail.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 0D2F23A2EA1 for <tsvwg@ietfa.amsl.com>; Sun, 28 Mar 2021 20:23:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.847
X-Spam-Level:
X-Spam-Status: No, score=-1.847 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_BLOCKED=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 (2048-bit key) header.d=gmail.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 x3eGik7sxIx8 for <tsvwg@ietfa.amsl.com>; Sun, 28 Mar 2021 20:23:28 -0700 (PDT)
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com [IPv6:2a00:1450:4864:20::135]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 61E293A2E9F for <tsvwg@ietf.org>; Sun, 28 Mar 2021 20:23:28 -0700 (PDT)
Received: by mail-lf1-x135.google.com with SMTP id a198so16265883lfd.7 for <tsvwg@ietf.org>; Sun, 28 Mar 2021 20:23:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=NtXUUMaaf3lMy8Q1Ef9/Ayt3GvDHWw7wj01m16rb4bU=; b=ZnLg0Yms7AIS6N7978rJuAC1zoohRLHPIP86ZB+RJhnPLn2LF35E4kJai2NlAtbm9O m0qFCC2RXZlOvqd7D2LPQ1AEoRj7nILrbkfHWLmjex7nZQEsvaKcSM/J97+f9ik/LXdo wztNA4zUuNpiOhc5aMl+DeTN6FX/ZmT9Znb3Oo7T9Stp/QA9wETl2xhky6ozgVVApCNZ uI6XE5jQGVktOh3edpC3pxFKrGPCYB/jb22/I+ffgZZmn52er5ly2yS87LthuSUKvtPi Q/+N9FBNXYKCtQjrqcNww9BIfVxgCbROwwyhqgyAllAVWr+1t9pnARYHVRuhA6ffsWwV v7kg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=NtXUUMaaf3lMy8Q1Ef9/Ayt3GvDHWw7wj01m16rb4bU=; b=tFqLQb3468Dnng3XEHW5bbZLz0HEo/cxnjAT9O0YAs5JCVvuh+JySH1o5T5rdukCrl xr7/QzHTkB1RD8h07CFdnPozPzgxzMv+EDo19dQrUhk6fLgsCpyvjohtQID3gaYKBtIE X5jaJRlxXoFh1p83U8kpbhkAJ1nyE6qJfvQK9MKpLMC0SbKfE/9P677K+PIjdXu/B+a9 a8EmomsxLkppz1RVqKkFj5ej1T+fHksDQg8EyfS/F2bPdwAd2PL/+SFz88V2SxGK7qGB PbKB/LeSfQNHZtAw777nZfvMZPB6/Q+2hMc5SGd8VlRVY5QHuYYLIeeAS3VDXMFv6Ltc NfmQ==
X-Gm-Message-State: AOAM5324clEvWYGVFSGFuSLXMzbhmK2fsa3vZZFgt9MTJGDrPej2+Fk9 YuEdh80eGCEW+RZ2GFPdxrU3KobFmCU=
X-Google-Smtp-Source: ABdhPJy1oWtglIlFcVAK57aQEtzUgKIgh38w4xoAvfviqjgB39Sz9u9XTymrdHtXnB9ZAKRO58r8Rg==
X-Received: by 2002:a19:e0d:: with SMTP id 13mr15026041lfo.549.1616988204733; Sun, 28 Mar 2021 20:23:24 -0700 (PDT)
Received: from jonathartonsmbp.lan (178-55-25-11.bb.dnainternet.fi. [178.55.25.11]) by smtp.gmail.com with ESMTPSA id z6sm1672820lfr.34.2021.03.28.20.23.23 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 28 Mar 2021 20:23:24 -0700 (PDT)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.7\))
From: Jonathan Morton <chromatix99@gmail.com>
In-Reply-To: <fe9b72cc-62fa-1587-64b4-4ed8b0b32d5a@bobbriscoe.net>
Date: Mon, 29 Mar 2021 06:23:22 +0300
Cc: "Black, David" <David.Black@dell.com>, "tsvwg@ietf.org" <tsvwg@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <712A4EA0-27AE-4037-9ED2-687A5A69689B@gmail.com>
References: <MN2PR19MB404527384A1B1DD9CFC2A3D983659@MN2PR19MB4045.namprd19.prod.outlook.com> <6f0ac4bf-bd1a-65cd-1d40-a97d4aa71aab@bobbriscoe.net> <7B4426F9-E1C5-4F88-A264-0D54C809D523@gmail.com> <d28a8ac1-83a3-d7b5-3106-80abdca8b5a7@bobbriscoe.net> <C05137C5-B972-4E8F-8B1A-3254A4BB9865@gmail.com> <fe9b72cc-62fa-1587-64b4-4ed8b0b32d5a@bobbriscoe.net>
To: Bob Briscoe <ietf@bobbriscoe.net>
X-Mailer: Apple Mail (2.3445.9.7)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/K2lR8D8RjokZaDes3C1QW0hpBKE>
Subject: Re: [tsvwg] L4S DSCP (was: L4S drafts: Next Steps)
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: Mon, 29 Mar 2021 03:23:33 -0000

> On 29 Mar, 2021, at 3:12 am, Bob Briscoe <ietf@bobbriscoe.net> wrote:

> There is no L4S design 'baked in' to existing standardization work. L4S is on the experimental track, and designed to build /on/ ECN feedback in existing standards track IETF transport protocols. Specifically QUIC, RTCP and TCP.

Well, in that case it should still be feasible to improve L4S' design and implementation before deployment.  Of course, the longer you spend resisting any and all efforts to suggest such improvements, the narrower that window of opportunity gets before the whole WG just gives up in disgust and refuses to publish.

> An L4S congestion control acts at the sender in one direction. The other direction might use a completely different congestion control. This is outlined in l4s-arch, but it's no different from the architecture of any CC. For instance, if Cubic is acting in one direction, you can have Vegas or BBR or whatever in the other.

That is indeed a case that would be problematic for the two-DSCP scheme as I presented it.  I think you could salvage it by adding explicit feedback of the relevant information to AccECN.  Or, for the purposes of the experiment, require that L4S signalling be used in both directions or not at all.  Or - and this is my preferred option - switch to a non-ambiguous signalling scheme where these complications are far less necessary.  Your choice.

Using a single DSCP would be adequate for preventing L4S traffic originating within the participating network from escaping it, provided the appropriate filtering is actually implemented at the network border.  It would prevent, for example, L4S endpoints in two *different* participating networks from accidentally making an L4S connection over the non-participating path between those networks.  But it would not prevent L4S endpoints from being set up outside the participating network entirely and communicating with each other over unprepared networks.  It does have the virtue of being very easy to set up.

> You are proposing that, in a connection between host X and host Y, if X sends using a scalable CC, it has to set both ECT(1) and a defined L4S DSCP. Then when peer Y sends, it has to set the same DSCP on the packets it sends to X. There are a number of problems with this:
> a) There is no reason or need for peer Y to know anything about L4S.

If a host is participating in an L4S-TCP transport connection then *of course* it needs to know about L4S, if nothing else to be able to provide the correct feedback.  Maybe that is different for QUIC et al.

> So how does it know to set this DSCP? A host doesn't normally even check what the incoming DSCP is.

Not reflecting the DSCP as required by the experimental protocol would indicate that it's not participating in the experiment.  That should be a strong indicator to the sender that it must switch out of L4S mode immediately.

> b) This currently would only be useful to make the L4S DSCP scheme work. So it would seem unlikely to be adopted in any of the busy WGs working on these transport protocols. Particularly given it's unorthodox architecture (overloading a L3 protocol with an additional L4 meaning)

Protecting an "alternate ECN" scheme with a DSCP is explicitly called out as a possibility in published RFCs.  The fact that is hasn't actually been done before should not be a barrier in itself.

> c) You seem to be assuming (or perhaps requiring) that the peer at one end of a connection can only use a scalable CC if the other peer also uses a scalable CC.
> d) This also means that a scalable CC cannot be tested with a Classic CC in the reverse direction.
> e) Requiring a 2-ended deployment greatly reduces the chances that any flow will use L4S.

That last one is not an argument.  We explicitly *want* to limit use of L4S signalling to connections where both endpoints know what's going on.

>>> LoF (2) There are no FIFO RFC3168 AQMs a) upstream of the participating network, b) downstream of it, or c) within it (see details below).

>> Incorrect.  Remember that when using a DSCP as a containment mechanism, it is assumed (as I spelled out previously) that the borders of the network at least bleach that DSCP, and may even block traffic carrying it.  That's how containment works.  So if the L4S traffic crosses a border of the participating network, it automatically switches to Classic mode and there is no more problem with RFC-3168 AQMs on any part of the path.
> 
> The a/b/c examples I gave (still below) solely involved /customers/ attaching to a single ISP participating in the L4S experiment. If an L4S network bleaches at the border where its own customers attach, how can any L4S traffic ever enter or leave the network? I'm not understanding you.

Obviously.

In your scenario, the customers are clearly within the participating network as defined by the border at which filtering of the DSCPs occurs.  Which means that any RFC-3168 equipment those customers happen to use, and the consequent effects, are automatically part of the experiment.

I hope you have plans to inform and educate those customers of what ill effects are possible, how to opt out of the experiment to avoid any possible ill effects, and how to inform relevant people about ill effects they might observe in practice during the experiment.

> Specifically:
> * at the first IP hop controlled by the L4S network, if it bleaches the L4S DSCP from attached L4S sending customers, how does any L4S traffic ever enter the network?
> * at the last IP hop controlled by the L4S network, if it bleaches the L4S DSCP before forwarding to attached customers, how does any host ever receive L4S traffic?
> 
> Please don't answer this here. Instead, please address the specific examples below (a/b/c), to keep the discussion concrete.

Please don't deliberately misunderstand me for the sake of argumentation.  Instead please re-read points 1 and 2 below from my earlier reply, in light of the brief clarification above.

>> Which leaves open two scenarios where an RFC-3168 could be encountered without crossing a border:
>> 
>> 1: Within the participating network.  But all RFC-3168 AQMs are supposed to have been removed from such a network before L4S was deployed on it.  So either the onus is on the network operator (who is at least an "interested observer") to deal with the problem, *or* the RFC-3168 AQM is present specifically for the purpose of experimentation, eg. to find out how the combination with L4S traffic really works in the real world.
> 
>> 2: The path runs entirely outside the participating network.  This implies that two communicating L4S endpoints were deployed outside the experimental network, which would violate the spirit of the experimental deployment and should not be allowed.  The two-DSCP scheme I outlined in my other post specifically attempts to detect and protect against this eventuality.

>>> In this last case, the L4S-paticipating network has to use techniques like those in l4sops to make sure any FIFO RFC3168 AQMs don't mark ECT(1). That's no different to if ECT(1) alone was the identifier.

>> Thank you for confirming that you understand that using ECT(1) alone as the identifier suffers from all of these problems.  That was a big sticking point over the past two years, and I'm glad we can now get past that.
> 
> We identified these potential problems before we brought L4S to the IETF, and at the very first ad hoc meeting about L4S (Prague Jul 2015), we proposed that this should be on the list of requirements that would need to be solved.

Okay, so why have you not solved it in the intervening time?

> Here, we are putting your idea for using a DSCP to the test. So please address the point about how an L4S-participating network still has to use the techniques in l4sops, whether it adds a DSCP or not.

My point is that l4s-ops as currently written doesn't solve the problem at hand.  I'm trying to suggest things that should go into either l4s-ops or the core design of L4S, in order to solve the problem.  I'm a problem solver, you see.

 - Jonathan Morton