Re: Mirja Kühlewind's Discuss on draft-ietf-6man-rfc2460bis-09: (with DISCUSS and COMMENT)

"C. M. Heard" <heard@pobox.com> Mon, 17 April 2017 16:00 UTC

Return-Path: <heard@pobox.com>
X-Original-To: ipv6@ietfa.amsl.com
Delivered-To: ipv6@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6879313152D; Mon, 17 Apr 2017 09:00:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.201
X-Spam-Level:
X-Spam-Status: No, score=-2.201 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_SORBS_SPAM=0.5, RP_MATCHES_RCVD=-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 Ey2Skk0pfTEz; Mon, 17 Apr 2017 09:00:08 -0700 (PDT)
Received: from sasl.smtp.pobox.com (pb-smtp1.pobox.com [64.147.108.70]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F3FFD131513; Mon, 17 Apr 2017 09:00:07 -0700 (PDT)
Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by pb-smtp1.pobox.com (Postfix) with ESMTP id F0AA56D255; Mon, 17 Apr 2017 12:00:05 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=mime-version :from:date:message-id:subject:to:cc:content-type :content-transfer-encoding; s=sasl; bh=smLpLB3Tc/v2yCxAPJPJsoKdA NE=; b=kNt/Fpls9opoy5qJeciLolca1TuwRBWD7hEWP9dPwkFL+UrJXe9JYU24H in0n/HXK5mxIPdlWXFBGc34yzm7UHc7pzlgfDJ09Dk+EL7jso/jrwth3K0hz0+XE hzL/fm1hkDhHbvDYgbDX9+lo0Oc7+HbqJKEaJq7VxIlvzHmZHE=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=mime-version :from:date:message-id:subject:to:cc:content-type :content-transfer-encoding; q=dns; s=sasl; b=bZkCmrhDgcAUqxQNC96 RbI5fbOR3ZcHKVHLBEZaFjlLpdXTmHJAEwJ+39y6d6p6OJDX4zaD4Za8Ht+He/Pt NqyZ+fF5110NzgRJ2PDg79kHl4jhDkOyynBqmW7ClNT59dK2gxbq7kTjr0gUDNiG BUKc+qUAl/xWebenw0rIrFkE=
Received: from pb-smtp1.nyi.icgroup.com (unknown [127.0.0.1]) by pb-smtp1.pobox.com (Postfix) with ESMTP id C54356D254; Mon, 17 Apr 2017 12:00:05 -0400 (EDT)
Received: from mail-qk0-f170.google.com (unknown [209.85.220.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pb-smtp1.pobox.com (Postfix) with ESMTPSA id 57AB76D23A; Mon, 17 Apr 2017 12:00:03 -0400 (EDT)
Received: by mail-qk0-f170.google.com with SMTP id d131so108020882qkc.3; Mon, 17 Apr 2017 09:00:03 -0700 (PDT)
X-Gm-Message-State: AN3rC/5DPj4vXL96chSWATsRwxKJm0ZmNmJZaNAb5HVja4tqr2zyUslM Cpt8NLcHN7bxhjNnUmafdnDxeFCGfw==
X-Received: by 10.55.82.68 with SMTP id g65mr8978041qkb.116.1492444801437; Mon, 17 Apr 2017 09:00:01 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.140.40.180 with HTTP; Mon, 17 Apr 2017 08:59:41 -0700 (PDT)
From: "C. M. Heard" <heard@pobox.com>
Date: Mon, 17 Apr 2017 08:59:41 -0700
X-Gmail-Original-Message-ID: <CACL_3VHy0d3o8WRchVWNz05qDGybKA6Lbv4VSrO0j4J5mDV0BA@mail.gmail.com>
Message-ID: <CACL_3VHy0d3o8WRchVWNz05qDGybKA6Lbv4VSrO0j4J5mDV0BA@mail.gmail.com>
Subject: Re: Mirja Kühlewind's Discuss on draft-ietf-6man-rfc2460bis-09: (with DISCUSS and COMMENT)
To: 6MAN <6man@ietf.org>, tsvwg <tsvwg@ietf.org>
Cc: Bob Hinden <bob.hinden@gmail.com>, Brian Carpenter <brian.e.carpenter@gmail.com>, "Mirja Kuehlewind (IETF)" <ietf@kuehlewind.net>, draft-ietf-6man-rfc2460bis@ietf.org, IESG <iesg@ietf.org>, 6man Chairs <6man-chairs@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Pobox-Relay-ID: EB069A54-2386-11E7-93C6-E680B56B9B0B-06080547!pb-smtp1.pobox.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/R1c-dOgXIasstDgMsUekfWkavBE>
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <ipv6.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ipv6>, <mailto:ipv6-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ipv6/>
List-Post: <mailto:ipv6@ietf.org>
List-Help: <mailto:ipv6-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipv6>, <mailto:ipv6-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 17 Apr 2017 16:00:11 -0000

[ TSVWG added to solicit advice on implementation of RFC 3186 Section 5.3 ]

On Sat, Apr 15, 2017 at 11:50 AM, Bob Hinden wrote:
> On Apr 15, 2017, at 4:53 AM, C. M. Heard <heard@pobox.com> wrote:
>> On Fri, 14 Apr 2017 14:28:44 +1200 Brian E Carpenter wrote:
>>> On 13/04/2017 23:36, Mirja Kuehlewind (IETF) wrote:
>>> ...
>>>>>>>> ----------------------------------------------------------------------
>>>>>>>> COMMENT:
>>>>>>>> ----------------------------------------------------------------------
>>>>>>>>
>>>>>>>> One question because I'm not sure if I interpret this correct to make it
>>>>>>>> part of my discuss:
>>>>>>>> Section 4.5: "The number and content of the headers preceding the
>>>>>>>> Fragment
>>>>>>>>  header of different fragments of the same original packet may
>>>>>>>>  differ.  Whatever headers are present, preceding the Fragment
>>>>>>>>  header in each fragment packet, are processed when the packets
>>>>>>>>  arrive, prior to queueing the fragments for reassembly.  Only
>>>>>>>>  those headers in the Offset zero fragment packet are retained in
>>>>>>>>  the reassembled packet."
>>>>>>>> Does this mean the ECN codepoint (part of the Traffic Class field) is
>>>>>>>> copied from the first fragment? This doesn't seem to be correct, however,
>>>>>>>> also not sure what the correct answer is. I know this was not changed in
>>>>>>>> this revision but maybe we can still get this right.
>>>>>>>
>>>>>>> When fragments are created most of the fields are copied from the IPv6
>>>>>>> headers (e.g., Source Address, Destination address, flow label, traffic
>>>>>>> class, hop limit).  Some like payload length, next header, and hop limi
>>>>>>> t are modified.
>>>>>>>
>>>>>>> If I understand your question, the answer is yes, the ECN code point is
>>>>>>> copied from the first fragment, but should be the same from all of the
>>>>>>> fragments.
>>
>> That is inconsistent with the following guidance in RFC 3168 (see
>> https://tools.ietf.org/html/rfc3168#section-5.3):
>>
>> 5.3.  Fragmentation
>>
>>   ECN-capable packets MAY have the DF (Don't Fragment) bit set.
>>   Reassembly of a fragmented packet MUST NOT lose indications of
>>   congestion.  In other words, if any fragment of an IP packet to be
>>   reassembled has the CE codepoint set, then one of two actions MUST be
>>   taken:
>>
>>      * Set the CE codepoint on the reassembled packet.  However, this
>>        MUST NOT occur if any of the other fragments contributing to
>>        this reassembly carries the Not-ECT codepoint.
>>
>>      * The packet is dropped, instead of being reassembled, for any
>>        other reason.
>>
>>   If both actions are applicable, either MAY be chosen.  Reassembly of
>>   a fragmented packet MUST NOT change the ECN codepoint when all of the
>>   fragments carry the same codepoint.
>>
>>>>>> My concern is that the ECN code point could be changed on one of the
>>>>>> fragmented packets to signal congestion of a intermediate node and
>>>>>> then when you reassemble this information gets lost. That seems wrong.
>>>>>
>>>>> That is an interesting idea, but I think out of scope for advancing this
>>>>> document to Internet Standard.  Then there is the question of how to
>>>>> encode n of m fragments experienced congestion.  Interesting future work.
>>>>
>>>> Yes there might be some more further work needed but that still makes the
>>>> guidance in this text wrong. Maybe we can add some text that the Traffic
>>>> Class may be handled differently because it could be changed on the path.
>>>
>>> Good point. It's not only ECN that can change; the DSCP can change too.
>>> Both RFC2474 (diffserv) and ECN came after RFC2460, so it's logical
>>> for 2460bis to note this issue.
>>
>> It seems that we (6man WG) missed this because RFC 3168 was not marked
>> as updating RFC 2460. But in effect it did so for IPv6 implementations
>> of ECN, even though it was not written in an IP version-agnostic manner.
>>
>> At the very least text should be added to the description of the
>> reassembly process that points the reader to RFC 3168 or its
>> successor document.
>
> Do we have any evidence that the guidance in RFC 3168 regarding reassembling
> IPv6 fragments is implemented?  I don’t know, but think if it there is
> evidence I agree some text should be added to rfc2460bis, if not, then
> maybe not.

Since I lack the expertise to answer that question, I'm hoping that someone
in TSVWG will see this message and do so.

Regardless of the answer to that question, my position would be that since
2460bis already defers to RFC 2474 and RFC 3168 regarding the handling of
the Traffic Class field, the following modification to 2460bis Section 4.5
would be an appropriate way to deal with Mirja's comment:

OLD:
      The number and content of the headers preceding the Fragment
      header of different fragments of the same original packet may
      differ.  Whatever headers are present, preceding the Fragment
      header in each fragment packet, are processed when the packets
      arrive, prior to queueing the fragments for reassembly.  Only
      those headers in the Offset zero fragment packet are retained in
      the reassembled packet.
NEW:
      The number and content of the headers preceding the Fragment
      header of different fragments of the same original packet may
      differ.  Whatever headers are present, preceding the Fragment
      header in each fragment packet, are processed when the packets
      arrive, prior to queueing the fragments for reassembly.  Only
      those headers in the Offset zero fragment packet are retained in
      the reassembled packet; however, nodes that support Explicit
      Congestion Notification [RFC3168] may use information in the
      Traffic Class field from all fragment packets to reconstruct the
      Traffic Class field in the reassembled packet.

Note that this would not cause 2460bis itself to levy an additional
requirement on how IPv6 nodes reassemble fragmented packets. It would
simply be making note of a requirement that is already levied by
RFC 3168.

Thanks and regards,

Mike Heard