Re: [tsvwg] Fragmentation & ECN encapsulation drafts, one more try

Jonathan Morton <chromatix99@gmail.com> Wed, 18 March 2020 17:12 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 262DA3A1835 for <tsvwg@ietfa.amsl.com>; Wed, 18 Mar 2020 10:12:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.849
X-Spam-Level:
X-Spam-Status: No, score=-1.849 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, SPF_HELO_NONE=0.001, SPF_PASS=-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 g60tkv8fyvxq for <tsvwg@ietfa.amsl.com>; Wed, 18 Mar 2020 10:12:27 -0700 (PDT)
Received: from mail-lj1-x22b.google.com (mail-lj1-x22b.google.com [IPv6:2a00:1450:4864:20::22b]) (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 E97333A18F0 for <tsvwg@ietf.org>; Wed, 18 Mar 2020 10:12:26 -0700 (PDT)
Received: by mail-lj1-x22b.google.com with SMTP id y17so6714073ljk.12 for <tsvwg@ietf.org>; Wed, 18 Mar 2020 10:12:26 -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=MiYRJ1RBbO5RuEhR6HfsTCuCn0C+Npzy+BOO6QdOHpY=; b=S7P9cxZ3DBV9K4awz2aAobgBC8fqg+zxVCC2wWV0bfY9eT+whiQ8Fz7Bsh/z1a0t1S MHFS2CdI86d9RvgyAjPIBF4dy7R0eT/ycFz8EYJFduopajTSfNarqoco0IQggZncCWGO nfZNvf6tQrquHjc5iA8Cg79Qy/huxvVmpHmT0FD0Th1cozu06BX6dot7xruqTThixaKP 8eZzLkbuT8jYosloMnYV6Az5dgzJ2St0dY0KXJWPUYM2U2CeC1IArIVUDnCdgrHCHxaD o1b0wZkhc0WUpYmsrJ9412nteHEesi79bYAlyLt8yijCmE52iK1rNDO2fTN023rBhm89 LWIg==
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=MiYRJ1RBbO5RuEhR6HfsTCuCn0C+Npzy+BOO6QdOHpY=; b=lAj2zw+vfnqzLqqbrv0LNNe1dFJ/THBfKOjNe7BoQLBrvgS6heC01V5x/UyWPoo7Np T0Hlkc8yaRdiG9cXdtuDNwKW8Ym9aZbS2JTK0IgETTdG8LZ8N3rO3rPbSLk2VtThuIho 04fktjnRTtAosv1liTtHTIXg9PEHEsQSMezqeZsX99iO7mmjX036131tND8y4XhJyXUt QR/6YXmaDh3EzWac+hRXkwmYLsKNIJfqRAUCKVZJ+OuDTq0GQGSqwG/0Qab+wW9TbC6X 6T+1Q6ScHsPw3q3m1UhQaajwtR3nzzNEOWZcXX4wX/UKn9q6LGkj+TISLzYsSSHBldS7 ueHQ==
X-Gm-Message-State: ANhLgQ0Y5bSH5Onx9NPJFt+UTbR1nYQPYLBPLNM6XLsmZIYq1z2aFC/H X+FIRNMsKf4J8uALdRgoeao=
X-Google-Smtp-Source: ADFU+vt7TDSyaJV5JBe2mCZNJnJKxzgFVkND4FiMXktTHWm17jJ+fd+ybfrVI6XnUSBG6UsdNc6dBw==
X-Received: by 2002:a2e:3608:: with SMTP id d8mr3065321lja.189.1584551544749; Wed, 18 Mar 2020 10:12:24 -0700 (PDT)
Received: from jonathartonsmbp.lan (83-245-250-250-nat-p.elisa-mobile.fi. [83.245.250.250]) by smtp.gmail.com with ESMTPSA id r7sm4534289ljc.3.2020.03.18.10.12.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 18 Mar 2020 10:12:23 -0700 (PDT)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Jonathan Morton <chromatix99@gmail.com>
In-Reply-To: <MN2PR19MB40454A8F2A88B864C6A768BE83F70@MN2PR19MB4045.namprd19.prod.outlook.com>
Date: Wed, 18 Mar 2020 19:12:21 +0200
Cc: Bob Briscoe <ietf@bobbriscoe.net>, "tsvwg@ietf.org" <tsvwg@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <8D235CB0-28B6-4ED6-8E25-3B1B6494F661@gmail.com>
References: <MN2PR19MB40454A8F2A88B864C6A768BE83F70@MN2PR19MB4045.namprd19.prod.outlook.com>
To: "Black, David" <David.Black@dell.com>
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/DAhjATFOeXueI_mh2lU5kjtmQ1Q>
Subject: Re: [tsvwg] Fragmentation & ECN encapsulation drafts, one more try
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: Wed, 18 Mar 2020 17:12:29 -0000

> On 18 Mar, 2020, at 2:49 pm, Black, David <David.Black@dell.com> wrote:
> 
> Given how we got to this point, I believe that the rough consensus of the TSVWG WG is not to use either of these drafts to update RFC 3168, and instead to use a new draft to propose changes to RFC 3168 for fairness across fragmented and non-fragmented flows.

Agreed.

> Another important reason for a new draft is that this WG and other impacted WGs need to discuss the implementation impacts of the proposed changes, as implementations can be expected to have complied with the “MUST” in section 5.3 of RFC 3168 that results in fragmented IPv4 flows receiving more congestion indications that similar-sized flows that are not fragmented.  That discussion and determination of what to do is going to take a while, including a broad WG Last Call that includes all the affected areas of the IETF – that’s much better done via a new draft focused on that topic rather than the existing rfc6040update-shim draft.

Fair.

> However, the path forward cannot just delete Section 5 of the rfc6040update-shim draft, thereby ignoring the concern, as we do have a WGLC comment to resolve that requires stating something about fragmentation.  I suggest that the overall goal should be to state as little as possible.  There appear to be 3 things that need to be dealt with:
> 	• When a tunnel ingress fragments a packet, the ECN field in every fragment has the same value as the original packet.
> 		• This was implicit in RFC 3168, at least as I read Section 5.3 of RFC 3168.
> 		• It makes sense to state this explicitly with a MUST and have that statement update RFC 6040.  Such a statement would not be changed by the new draft to propose updates to RFC 3168.

Okay.

> 	• When a packet is reassembled by a tunnel egress, and one of the fragments is marked with CE, RFC 3168 specifies what to do.
> 		• Given the desire to change RFC 3168, that is all that should be stated here..
> 		• That avoids repeating or reinforcing text from RFC 3168 for which changes may be proposed in the not too distant future.

Yes.

> 	• When a packet is reassembled by a tunnel egress, and none of the fragments are marked with CE, RFC 3168 does not specify what to do.
> 		• In fact, RFC 3168 even allows use of an ECN value that was in none of the fragments (see the last paragraph in Section 5.3 of RFC 3168), but I’d be surprised to find “running code” that behaves that way.
> 		• I think I’ve seen some list discussion to the effect that RFC 3168 applies a bitwise “logical OR” across the ECN field values in the fragments - RFC 3168 does not do that.  The use of “logical OR” in the text below (from Bob) refers to case 2 above – if any fragment is marked with CE and the reassembled packet is forwarded, then RFC 3168 requires the reassembled packet to be marked with CE.

I think it may have been suggested that applying a bitwise-OR across all ECN fields of fragments would be an expedient and high-performance implementation of the logical-OR requirement over CE marks, so may have been used in practice.  Additional logic would be needed to catch the case where one but not all of the fragments carried Not-ECT, whether or not this was done instead of a true logical-OR.

Because of the laxness of the RFC-3168 specification with respect to mixed codepoints, an implementation that did this would still be conformant.  And because ECN codepoints are normally the same across fragments (except for CE marks set on the tunnel path), it wouldn't have shown any noticeable bad effects.

I'm in favour of trying to tighten this language a bit, while accepting that implementations of this type *may* be out there in practice.

> 		• Going back to earlier list discussion (October of last year), the clear outcome was to use the ECN value from “any” fragment in the reassembled packet, with the implementation choosing the fragment from which that value is obtained.
> 		• Trying to walk a fine line, I’d suggest crafting text to states that using the ECN value from one of the fragment is a suggested implementation that meets the requirements of RFC 3168, and leave it there without applying a “SHOULD” keyword to that behavior, lest that keyword have to be updated in the not too distant future by proposed changes to RFC 3168.

This seems like a reasonable proposal for RFC-6040.

 - Jonathan Morton