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

"Holland, Jake" <jholland@akamai.com> Tue, 19 May 2020 20:13 UTC

Return-Path: <jholland@akamai.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 8CB7A3A0FAE for <tsvwg@ietfa.amsl.com>; Tue, 19 May 2020 13:13:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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 (2048-bit key) header.d=akamai.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 OibgqsQoMoMB for <tsvwg@ietfa.amsl.com>; Tue, 19 May 2020 13:13:32 -0700 (PDT)
Received: from mx0a-00190b01.pphosted.com (mx0a-00190b01.pphosted.com [IPv6:2620:100:9001:583::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3C5B43A0DFE for <tsvwg@ietf.org>; Tue, 19 May 2020 13:13:32 -0700 (PDT)
Received: from pps.filterd (m0050093.ppops.net [127.0.0.1]) by m0050093.ppops.net-00190b01. (8.16.0.42/8.16.0.42) with SMTP id 04JK9QP6030127; Tue, 19 May 2020 21:13:30 +0100
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akamai.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=jan2016.eng; bh=tHxQMaSYEqpBPIPMjMB6RwnZ89WFdML7UHtFThqO3pg=; b=mhwltGF87YdmQFpoNX0kbD5OgjhP3ZHf+pXIFmhquvAzU8Hv4tf3jVTPbkrEbizxEoKw q/5XqlqYEBjJzqRDIKWPtuW1vV2GVcRTRi2uTF+5l1BKfrR093mfLkHtMcfWaG+HqqJA Fb8oezdE1GWGtT7uzSxzA1OsWU7JBlOGG5SUrzwokuxQWZJzy8IjLXqTcmyApVtPc907 WFfHi6GRL8Zj3TtBvRdjiC/zG8uU5PEgpHLXGYbPa+cWQhwI2E5tYn7SiiBq9j1BkxR2 e4bUsIwfe5qrtVjx00jtZ5n9maYdsw7aqCtfPafO4zbVIvYSObX4krO0gtSdC+1hSq/J qQ==
Received: from prod-mail-ppoint8 (a72-247-45-34.deploy.static.akamaitechnologies.com [72.247.45.34] (may be forged)) by m0050093.ppops.net-00190b01. with ESMTP id 312rvpacte-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 19 May 2020 21:13:30 +0100
Received: from pps.filterd (prod-mail-ppoint8.akamai.com [127.0.0.1]) by prod-mail-ppoint8.akamai.com (8.16.0.27/8.16.0.27) with SMTP id 04JK2foW013766; Tue, 19 May 2020 16:13:29 -0400
Received: from email.msg.corp.akamai.com ([172.27.123.53]) by prod-mail-ppoint8.akamai.com with ESMTP id 314je0902u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 19 May 2020 16:13:28 -0400
Received: from usma1ex-dag1mb6.msg.corp.akamai.com (172.27.123.65) by usma1ex-dag1mb6.msg.corp.akamai.com (172.27.123.65) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 19 May 2020 16:13:27 -0400
Received: from usma1ex-dag1mb6.msg.corp.akamai.com ([172.27.123.65]) by usma1ex-dag1mb6.msg.corp.akamai.com ([172.27.123.65]) with mapi id 15.00.1497.006; Tue, 19 May 2020 16:13:27 -0400
From: "Holland, Jake" <jholland@akamai.com>
To: Martin Duke <martin.h.duke@gmail.com>
CC: "C. M. Heard" <heard@pobox.com>, TSVWG <tsvwg@ietf.org>
Thread-Topic: [tsvwg] Update to Position Statement on ECT(1)
Thread-Index: AQHWJXDCMj0HjdV7wk+M4pcr+ovB2aihqRUAgAAqnYCADOcbAP//2jKAgAFm54D//7rTAA==
Date: Tue, 19 May 2020 20:13:27 +0000
Message-ID: <DE770902-CA1E-405C-A944-F12114AF2C3B@akamai.com>
References: <BE44EAE9-5CFB-4F5D-85B8-05AFA516C151@akamai.com> <CACL_3VEbUHB-Omwp1-g5Tq3G3J-kKj9N3jPZLcfruicw3X=AsA@mail.gmail.com> <2CBBD8CD-2088-4E41-B113-EED665853D3C@akamai.com> <CAM4esxSFCBcxXjz5JJJg1z6+wwfN3mTrtJ8bKiBsj2TeOmmFSw@mail.gmail.com> <1D8D2AF8-F805-4BAC-8126-355A8337D830@akamai.com> <CAM4esxSMELAi0BMBRynYTx44iY6f-yLEWng4QQ2Pxt9J-haxFg@mail.gmail.com>
In-Reply-To: <CAM4esxSMELAi0BMBRynYTx44iY6f-yLEWng4QQ2Pxt9J-haxFg@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/16.37.20051002
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [172.19.119.102]
Content-Type: multipart/alternative; boundary="_000_DE770902CA1E405CA944F12114AF2C3Bakamaicom_"
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.216, 18.0.676 definitions=2020-05-19_09:2020-05-19, 2020-05-19 signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-2004280000 definitions=main-2005190171
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.216, 18.0.676 definitions=2020-05-19_09:2020-05-19, 2020-05-19 signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 lowpriorityscore=0 phishscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 mlxlogscore=999 bulkscore=0 spamscore=0 cotscore=-2147483648 mlxscore=0 adultscore=0 impostorscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2004280000 definitions=main-2005190172
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/Xn7J3gJmNKX3DYgi9pMqQ_lK77Q>
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: Tue, 19 May 2020 20:13:35 -0000

Hi Martin,

New responses with <JH2></JH2>

From: Martin Duke <martin.h.duke@gmail.com>
Date: Tuesday, May 19, 2020 at 10:21 AM

To me, the problem with loss as the only (viable) MD signal is the existing devices that don’t drop until well after exceeding reasonable fairness bounds from an unresponsive flow, so for TCP Prague to maintain compatibility with classic queues, it would still need a successful classic queue detection mechanism.

I probably misunderstood. I thought the desired signal was a MD signal in the low-latency queue. Yes, for 3168 queues you'd have to essentially treat ECT(1) as Not-ECT. So that may not be a productive direction.

<JH2>
As I understand it, this is the current L4S MD signal if the LL queue overflows into the low latency queue and has congestion there.

I agree this works as far as it goes, but the safety problem that seems to need an MD signal is the interaction with existing queue implementations that know nothing about L4S, and have a pre-existing interpretation of ECT(1).

(Even for FQ, the interaction is very poor, but shared queues is where the poor interaction is arguably a major safety concern.  Mostly nobody seems to care much about the occasional hash collision in FQ that would have the same problem, because most FQs are 1024 slots, so after birthday paradox considerations it’s only 1/32 or so of the competing flows.)

Anyway, if there was sufficiently good consensus that these classic queues are irrelevant, then deprecating them responsibly is a potentially viable way forward, but that’s not what any of the current BCPs or standards say today, I think.
</JH2>


Good catch -- soon after I sent this, I thought, "what about CWR". The problem with using a second codepoint is that the sender signal then pre-empts the feedback signal -- fine for functionally half-duplex connections, but not generally. I can see a few ways out of this:

1) Take another TCP header reserved bit so that we can keep CWR and the 3 bits for ACE. (Ugh)
2) Come up with a heuristic to stop sending ECE, obviating CWR.
3) Come up with a heuristic to mix packets with CWR and ACE as needed depending on counter activity.
Though I'll defer to Bob on the issues of re-engineering ACE -- it sounds like he's been through all the permutations.

<JH2>
My conclusion that it seemed workable to me came with the assumption that #3 would be pretty straightforward.

You don’t need very many CWRs, and it might be possible to clean up the specs a bit about when exactly they should be sent (like maybe they’re only appropriate when there’s a MD event, and maybe they shouldn’t be sent for linear reductions during a fine-tuning response, now that we’re contemplating such a thing).

So I was thinking for bidirectional traffic that has the newly suggested ACE signaling (with a codepoint for ECE and CWR, plus 6 count slots), you could just put CWR at the top priority, so the (only occasional) CWR would overrule either a latched ECE that’s still in progress or one of the fine-tuning signal slots, for the occasional packet reporting an MD event.  (The logic from 3168 still holds here: if CWR is on a data packet and the data packet is lost, you’ll still get an MD response, so it doesn’t need to be reliable like ECE, and the counter makes it so skipping a packet doesn’t lose the fine-tuning signal, since it’s no worse than thinning the acks would have been.)

I do worry a bit whether a 6-count is enough to detect rollover well, but like with the ESCE approach for reflecting the fine-tuning signal, losing some accuracy is acceptable if we have a reliable MD signal, so I think it’s probably ok.

I wouldn’t say no to #1 either, even if only to increase the ACE count and still keep a 2-codepoint signal for the non-counting signals.
</JH2>


I guess I don't understand the tunneling problem. If we have a mark that demands MD, that trumps feedback about low-latency fine tuning, does it not?

<JH2>
As tempting as it is to just answer “yes, of course”, I’ll acknowledge it’s not quite so clear-cut.  (And I feel like you might not be alone in not understanding this facet of the problem yet, so thanks for asking about it.  It hasn’t been very easy to follow.)

The issue as I understand it is that tunnels as they stand today can only export the CE signal, period.  (At best.  That’s if they’re RFC6040-compliant.  If we want to carry 2 signals, we’d need to obsolete RFC 6040 with a decapsulation algorithm that carries 2 signals instead, and update a lot of tunnel endpoints, hence a decade-long rollout before most tunnels have it.)

The L4S proponents have argued persistently that it’s not necessary to respond to a classic CE signal with MD, and that the value gained from the fine-tuning signal is key to the L4S value proposition, and therefore that the fine tuning should be carried in CE, regardless of the interactions with classic queues.

And it’s also fair to note that RFC 8311 introduced some significant question as to whether a mark from a classic queue now demands an MD response, so now it’s sort of a judgement call about whether we can get “effective congestion control” without honoring such a signal in the MD way that the classic queues are expecting.

So I think it’s an open question at this point about what constitutes a reasonable outcome when MD is not the response to a classic queue’s CE signal.

Some of that depends on whether you think the classic queue detection can be made successful, since it provides an alternative MD response that’s not a direct response to a CE signal from the classic queue.  (There are currently some differing opinions on how likely this is to work in practice, just in case it wasn’t complicated enough yet.)

I of course have my opinions, but I don’t know of an established consensus here, and to me it seems like the main crux of the debate over safety properties of L4S, at this point.
</JH2>