[tsvwg] Options for improving L4S safety

"alex.burr@ealdwulf.org.uk" <alex.burr@ealdwulf.org.uk> Mon, 08 June 2020 23:47 UTC

Return-Path: <alex.burr@ealdwulf.org.uk>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id E7AC73A07D6 for <tsvwg@ietfa.amsl.com>; Mon, 8 Jun 2020 16:47:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.121
X-Spam-Status: No, score=-1.121 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NEUTRAL=0.779] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yahoo.com
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id sZ-Me9ZoNBUg for <tsvwg@ietfa.amsl.com>; Mon, 8 Jun 2020 16:47:44 -0700 (PDT)
Received: from sonic303-3.consmr.mail.bf2.yahoo.com (sonic303-3.consmr.mail.bf2.yahoo.com []) (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 3237F3A07D4 for <tsvwg@ietf.org>; Mon, 8 Jun 2020 16:47:43 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1591660062; bh=QFevU+u46Z07LQ3FiHg2PamkxaNXQYvkvzguOA1eUpw=; h=Date:From:Reply-To:To:In-Reply-To:References:Subject:From:Subject; b=WjIx2DESwZoPAznK8+ReHBMNNjsU6ulaO9tE4Ne7Ky9z6cK2PdJ2fdGjRHiAGNgCYHGNZCDXbHxRw81VdudEpPn+3VvHiN6XDh1kwB4SKSc0cIG3yQp1W6mSkYEASPtF4eoYu0+9vELoYvobvk0Ky0qF5HLkDK3FlVQRCxfwM1ZJQTghREiDbA7RERo3mYUKtQPIrvDv6AnQJvAFf27SPtSZmjFYvki+zkTmtEFmg3kHledtt1LpLUqxNbhOueR/D5m3o9UDcQeskPoBGhRG6+FEMmuBCfB9QgDqSd46y8FsXOFSrTpyq2kaX3OVMVYgsGAmhbHy1PfeXkMRzOAVTA==
X-YMail-OSG: WQbDC1oVM1nkCIn1pcMKbbOlOW3Ch4HC605EhH0wcdZajJ_38X_Nni22vU8VWcm dad9stsO2nVfvvAoenmDNNuQfA9iBW3zpjlrGPMZTO2lho.BvcpwVGOWGNyARzgdE42fdaCClSHd iL1QkEzahpK67k5VZn2I_9VexfCJyMOM2TA9ifHY5vEKgCJpRhcKRCCBNp8l9Sd5Pz3Z.pCglKv4 4yuBi7tgl3i2ywdQR9rOMRwZOz7sO6niUBVlKUWINI7e6dJhIUpzveDlr8jN4uPOIy2.CR7ebS9M r7UcI0LEPZBRiG2094wGIMsbN7cO3kbvHmntjuBokLCvhtBHpUBYUyBehORGbKNwv6q6IPlq4FiB AWR8VUKSAQNE2KJCtoEMjFuOr8HQuV0Xnc4BOteq7UfLpV2etDHeRBXhkkIJxcHWRfvO1MfpN_Kg 2W._l.Ok.b7zXGG9HFvBhBrak_.DOi18ZeHZsHKJhTvy6bKByj5YPTlaNPhXhW.RVkh0hJsIpCoP Ya0BGNENL4f85BJrJH_OcQP3HvfW8f3cVxBA.Q9QI1Fs4p0y.boeXcoentEYDsZL1KrugUhACCA9 t5E7shUz4JREa7azu5M1GT5c6o.RZbm9Tnk571pJWHsY32I6y3iKDA4djcghxPAGwpG02_yQa1Nn YA7HUnfvN._4hk8RkiZ8zOfmV3gHocvcNoeBc4_Znp1jyU6OaySJ.NaEt9RAfsI6KKwsWfqljrWQ fSI4SLcsRSvibR77EkCbyQlJr.CkZcMLS9uxLXjEJP25uvSeUQZ0OeGDNifO.IA4igNOLiAolrDJ f4ZuBPU4gTWYajHhoGftnywtRmk967I0FThaqsJX.WUSF8zAXUQm.DSNpfyeNxKGKtNRXDYiFvTs CwxkWkpTQcMBiEzfIzGa39l0xh7ms2CuDepF88PJD0_yegeLnW4yrzuqKJH5voETISCCo9aUEUqv bINhUOd9oIbOJK1HDOE8X.FjQASGuib49pP0_nr_wkrc4U8N1p50A9trR9zylFEqodFpxIFacHXe 427ZQ9oeayhSLl3CKyQfeGraYrTZQw9SxxP25JtCP_pzqhIkORgcYULOyy0mn9Et9blRS08xlbmW PHRg9bbHuN.bWvA.1zWLzmDb8r.rmVHXSC5PTpadlQtbgSV6mnwjYxbpfgpmKeWZo_kBNbFIrqC6 cHozQl2_HQvmrZw9yp5fmwUjrT2j7ymsgAX4Pa8SAxxnt0GwDK3BNVdJNEVxirPtvVJclei.F28m 31DC6VIu8jnVxP8XwzxxLv3IUVHolJXI_I61TEDAdG_PuPD5ywsQ4W2n5Pi74EbLTUgIvNSbcSb4 VX8Nmgno-
Received: from sonic.gate.mail.ne1.yahoo.com by sonic303.consmr.mail.bf2.yahoo.com with HTTP; Mon, 8 Jun 2020 23:47:42 +0000
Date: Mon, 8 Jun 2020 23:47:37 +0000 (UTC)
From: "alex.burr@ealdwulf.org.uk" <alex.burr@ealdwulf.org.uk>
Reply-To: "alex.burr@ealdwulf.org.uk" <alex.burr@ealdwulf.org.uk>
To: "tsvwg@ietf.org" <tsvwg@ietf.org>
Message-ID: <1696157627.904108.1591660057208@mail.yahoo.com>
In-Reply-To: <MN2PR19MB404568DB25537BBEAC2D869983850@MN2PR19MB4045.namprd19.prod.outlook.com>
References: <8a8947e1-f852-c489-c85a-be874039f132@mti-systems.com> <MN2PR19MB404584BEA107C796469F311C83860@MN2PR19MB4045.namprd19.prod.outlook.com> <MN2PR19MB404568DB25537BBEAC2D869983850@MN2PR19MB4045.namprd19.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Mailer: WebService/1.1.16072 YMailNorrin Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:77.0) Gecko/20100101 Firefox/77.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/2prfdtCseQnVrurTFONGOvMbMyM>
Subject: [tsvwg] Options for improving L4S safety
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, 08 Jun 2020 23:47:46 -0000

If we're now discussing ways to make L4S more safe, it seems to me that it might be useful to attempt to enumerate all the
possibilities. I think there are a few that have not been previously mentioned; most have difficulties, but perhaps some of the experts here can a way forward:

1) As frequently mentioned, if L4S marks were distinguishable from RFC3168 marks, L4S endpoints would be able to react more appropriately. 
Since the group is now persuing ECT(1) as network input, this approach is currently without an codepoint, although there has been some speculation that DSCP could be used as an output. This is sufficient for safety, but perhaps it is not necessary. However the 'safe by construction' 
attributes are obviously attractive. 

2) RFC3168 detection, as proposed by Bob's working paper. The immediate difficulty seems to be in defining a set of test cases sufficient to convince the group.

3) Change DUALQ such that marks from a DUALQ can be more easily distinguished from RFC3168 marks.
I raise this as a possibility in order to see if any aspect of "safe by construction" can be incorporated into the RFC3168 detection scheme.
I can see two possibilities:
 a) DUALQ to never mark certain packets, comprising a known,  substantial % of packets.
 b) DUALQ redefined to always mark consecutive packets from a flow

Both of these have their difficulties. 

In case a), if a CE were observed on one of the forbidden packets, then it could be assumed to be RFC3168 and fallback should occur. If the % of forbidden packets were known, and these are independent RFC31680 CE marking, then the statistics of when fallback should occur will only be determined by the rate of RFC3168 CE marking. I think this would get us a lot closer to 'safe by construction', as we can decide if the tail distribution of fallback time looks okay. It would be necessary to see how much this degrades the L4S congestion signal.

In case b), if a lone CE were observed then it would be clear an RFC3168 AQM was present, and fallback would occur. The statistics of this are more complicated because they depend on the rate of DUALQ marking as well as RFC3168 marking, since the proportion of RFC3168 marks masked by L4S marks is less obvious. It would be more obvious if DUALQ marking were capped at 50 or 75% instead of 100%. I don't know 
how that would affect the L4S goals.

Both of these have the advantage that the mechanism for detecting RFC3168 AQMs is simple and predictable. Unfortunately there are other obstacles. 

In the case of a), it would seem to require some codepoint that could be used as another input to the IP layer, to inform DUALQ which packets are forbidden. If those were easy to find, we wouldn't be having this whole discussion. So we are left looking for one that, for some reason, couldn't be used for the L4S  ID, but could be used here. There are a few options, with various difficulties:

i) In previous work, it's been proposed to use an IPv6 destopt as a network input (rfc7837). I'm not sure if that was ever deployed, and obviously it only works for ipv6.
ii) The LSB of TTL. The sender could modulate the LSB of TTL. Although the actual value would not be be visible at the AQM, it's probably had some constant subtracted from it. So if the AQM refrains from marking when TTL.0==1, the receiver could work out fairly swiftly whether the constant offset was odd or even. However, this would not work inside tunnels as the inner TTL is not propagated to the outer on encapsulation
iii) The LSB of payload length (or, the 3rd LSB of payload length). This has the distinct disadvantage that modulating payload length might not be possible just in the TCP implementation, but also involve the application layer. The 3rd LSB could be modulated by adding TCP options, but those might be intefered with by middleboxes. 

The difficulty of b) is more obvious - it requires DUALQ to be flow aware, even more so that FQ, since binning would not be sufficient. It wouldn't need to keep the flow state very long (just long enough to mark the next packet) but I would guess this is still too much.

The open question here is whether there is any such modification of DUALQ that doesn't have the above difficulties.
There might be ways to modify the statistics of DUALQ marks to make them more distinguishable  from RFC3168 marks, without requiring either another input or FQ.  This brings me to:

c) We could change the marking function to in introduce a discontinuity, so that the L queue never adopts a marking rate between 0% and (say) 20%. (It would still be linear between 20% and 100%).  There would still need to be a region when 0% marks occur. This is a bit odd, but it still makes good use of the available bandwidth of ECN, and conveys the same signal, so I guess it should still be scalable. With such a modification, if a lone CE mark was observed on a flow, it would be highly likely that it came from an RFC3168 AQM. However it's much less obvious (to me at least) how to write down P(RFC3168 is present | marks seen), and even less obvious what the statistics of fallback time would be  (since it would depend on how much time the DUALQ spent in the 0% marking region), although I suspect it would be a lot better than in 2). The DUALQ linkage, along with prague, would need adaption. It may prove complicated around the discontinuity region. Nevertheless this seems most in line with the spirit of the L4S design. The other issue is whether it is possible to build up a queue in both an DUALQ AQM and an RFC3168 AQM at the same time on the same path. If this was a significant possibility, the DUALQ marks at the >20% regime would would obscure the RFC3168 marks. But this state of affairs would need to persist otherwise fallback would occur when only the RFC3168 AQM was the bottlebeck.

Obviously, modifying DUALQ would be an annoyance to vendors who have already implemented it in silicon, but perhaps less of one than other options...

4) Modifying networks containing RFC3168 AQMs

Obviously this category has the disadvantage that operators not deploying L4S need to take action, but David has indicated that it may be acceptable.

Here we have
 a) Bleaching ECT(1)
 b) Modifying RFC3168 AQMs to be aware of ECT(1)

a) Has the problem that it will cause deployment problems for this and any other use of ECT(1), but has the advantage that it requires an operator to act only on the perimeter of their network
b) Requires an operator to inspect and possibly modify  every device  on their network.

Probably here it would be necessary to have a suite of options depending on what RFC3168 AQMs the operator thinks they might have, eg
c) if you know you have no RFC3168 AQMs, no action required

One option which occurs to me is to 
d) provide operators a way to signal that their network doesn't yet support L4S. What's not obvious to me is:
 i) since that requires tcp prague and all other L4S transport implementations to adhere to it, will operators trust it? Possibly they would up to the point that some transport implementation implements it incorrectly.
 ii) what's a suitable way of probing for support?