Re: [tsvwg] David Black's WGLC review of draft-ietf-tsvwg-rfc6040update-shim-08

Bob Briscoe <ietf@bobbriscoe.net> Sat, 18 May 2019 07:57 UTC

Return-Path: <ietf@bobbriscoe.net>
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 AD9EA12014E for <tsvwg@ietfa.amsl.com>; Sat, 18 May 2019 00:57:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.989
X-Spam-Level:
X-Spam-Status: No, score=-1.989 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=bobbriscoe.net
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 3fA8y1jXkdeR for <tsvwg@ietfa.amsl.com>; Sat, 18 May 2019 00:57:44 -0700 (PDT)
Received: from server.dnsblock1.com (server.dnsblock1.com [85.13.236.178]) (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 68E8A1200FB for <tsvwg@ietf.org>; Sat, 18 May 2019 00:57:43 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=bobbriscoe.net; s=default; h=Content-Type:In-Reply-To:MIME-Version:Date: Message-ID:References:To:From:Subject:Sender:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=w99SKBvZRfl6uh7GtvB+AzrCmNOexslK/cU0P6vBybw=; b=BauIV58Ruv4frrzHJh9LCKBRS dG0DoiP5bf3+WjsyDvLxS+TtxSlOOs80jf8qoG1xUjH3meRjMraw5Zv6zwr+0BFOV9ogc1czHkQ0F D8PE/jcQoCmzjX8SyEmqFr9wqGUdfjaniLyvT6ngQ/LqED0o+LRsFaUtnjYk8PYuXC5E+oui2SXRr K/eVI64zKGOfqBPxXMyzQG00qS877VPe4Bi221515DNEL2iY/krai5+stfsaaaeUTIBTpxMVzujGv 9TBu4A9ePGyaQQBqzUBfq7RByBL/+J/hqQHYxygbo5+Sizhqg3tHKFisUYhdKdd/Rf+MClx6M8rIS DsMfcLq9Q==;
Received: from [31.185.135.221] (port=33102 helo=[192.168.0.5]) by server.dnsblock1.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.91) (envelope-from <ietf@bobbriscoe.net>) id 1hRuDr-0004lo-TJ; Sat, 18 May 2019 08:57:41 +0100
From: Bob Briscoe <ietf@bobbriscoe.net>
To: "Black, David" <David.Black@dell.com>, "tsvwg@ietf.org" <tsvwg@ietf.org>
References: <CE03DB3D7B45C245BCA0D243277949363055BC3F@MX307CL04.corp.emc.com> <CE03DB3D7B45C245BCA0D243277949363055BDDC@MX307CL04.corp.emc.com> <89e67cfc-9574-c7a7-b837-c909c2180595@bobbriscoe.net> <CE03DB3D7B45C245BCA0D243277949363056D070@MX307CL04.corp.emc.com> <d8ab6fb1-250b-2bf4-64ae-c3572f9a10d4@bobbriscoe.net>
Message-ID: <63cb3350-7abe-7ec1-cd49-a983105111f6@bobbriscoe.net>
Date: Sat, 18 May 2019 08:57:37 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1
MIME-Version: 1.0
In-Reply-To: <d8ab6fb1-250b-2bf4-64ae-c3572f9a10d4@bobbriscoe.net>
Content-Type: multipart/alternative; boundary="------------7204D8BC908785051D02F0DD"
Content-Language: en-GB
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server.dnsblock1.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - bobbriscoe.net
X-Get-Message-Sender-Via: server.dnsblock1.com: authenticated_id: in@bobbriscoe.net
X-Authenticated-Sender: server.dnsblock1.com: in@bobbriscoe.net
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/dmvgmyXknBK8p5Dp02pfgMlH12g>
Subject: Re: [tsvwg] David Black's WGLC review of draft-ietf-tsvwg-rfc6040update-shim-08
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: Sat, 18 May 2019 07:57:48 -0000

David, An extra thought added to (d) below...

On 18/05/2019 00:27, Bob Briscoe wrote:
> David,
>
> Three push backs and a question:
> a) The MUST and SHOULD you quote below are surely not BCP, they are 
> straight protocol implementation spec.
>
> b) I believe it is important that this safety update to RFC6040 is 
> formally flagged as an update, so it gets noticed and hopefully acted 
> upon.
>
> c) Also, all the updates to specific protocols in the shim draft start 
> with a section like the following example:
>
>
>           5.1.4.1
>           <https://tools.ietf.org/html/draft-ietf-tsvwg-rfc6040update-shim-08#section-5.1.4.1>.
>           Safe Configuration of a 'Non-ECN' Ingress AMT Relay
>
>     The following text is appended toSection 4.2.2 of [RFC7450]  <https://tools.ietf.org/html/rfc7450#section-4.2.2>  as an
>     update to the AMT specification:
>
>        The operator of an AMT relay that does not supportRFC 6040  <https://tools.ietf.org/html/rfc6040>  or one
>        of its compatible predecessors (RFC 4301  <https://tools.ietf.org/html/rfc4301>  or the full functionality
>        mode ofRFC 3168  <https://tools.ietf.org/html/rfc3168>) MUST follow the configuration requirements in
>        Section 4  <https://tools.ietf.org/html/draft-ietf-tsvwg-rfc6040update-shim-08#section-4>  of RFCXXXX to ensure it clears the outer IP ECN field to
>        zero. {RFCXXXX refers to the present document so it will need to
>        be inserted by the RFC Editor}
>
> For implementers updating a particular protocol (e.g. AMT) it would be 
> gratuitously weird to have moved Section 4 into a different RFC 
> (especially one that did not have PS status).
>
> d) Do you agree with my assessment that the MUST you quote below 
> doesn't make anything non-compliant that wasn't already non-compliant 
> with 2474. And anything that wants to claim support for anything to do 
> with ECN has to comply with the aspect of 2474 that split off the last 
> 2 bits from the ToS byte?
>
> If so, there's no longer a problem to solve. Let's move on. This has 
> dragged on long enough.

[BB] Would the following text change to S.4 of the shim draft also help?

CURRENT:

    There might be concern that the above "MUST" makes compliant
    equipment non-compliant at a stroke.  However, any equipment that is
    still treating the former ToS octet (IPv4) or the former Traffic
    Class octet (IPv6) as a single 8-bit field is already non-compliant,
    and has been since 1998 when the upper 6 bits were separated off for
    the Diffserv field [RFC2474  <https://tools.ietf.org/html/rfc2474>], [RFC3260  <https://tools.ietf.org/html/rfc3260>].

SUGGESTED:

    There might be concern that the above "MUST" makes compliant
    equipment non-compliant at a stroke.  However, by definition it solely applies to
    equipment that provides Diffserv configuration. Any such Diffserv equipment that is
    configuring treatment of the former ToS octet (IPv4) or the former Traffic
    Class octet (IPv6) as a single 8-bit field must have always been non-compliant
    with the definition of the 6-bit Diffserv codepoint in [RFC2474  <https://tools.ietf.org/html/rfc2474>].




Bob

>
>
> Bob
>
> PS. Thx for other response on ecn-encap - mañana.
>
>
> On 17/05/2019 16:34, Black, David wrote:
>>
>> Before going further down the compliance rathole, let me suggest an 
>> alternative that might resolve this quickly.
>>
>> The crucial text (whose technical correctness is not in question) is:
>>
>>       In order that the network operator can comply with the above
>>
>> safety rules, even if an implementation of a tunnel ingress does
>>
>> not claim to support RFC 6040, RFC 4301 or the full functionality
>>
>> mode of RFC 3168:
>>
>>       * it MUST make propagation of the ECN field between inner and
>>
>> outer IP headers independent of any configuration of Diffserv
>>
>> codepoint propagation;
>>
>>       * it SHOULD be able to be configured to zero the outer ECN field.
>>
>> The headaches are being caused by treating that text as an update to 
>> RFC 6040, but looking at it now,
>>
>> it reads like a best current practice recommendation, so …
>>
>> Would it be reasonable to move that text into the ecn-encapsulation 
>> draft (which is intended to become
>>
>> a BCP)? Doing that would sidestep the entire discussion of 
>> consequences of the consequences of
>>
>> updating RFC 6040 with that text.
>>
>> If that sounds plausible, we should take a look at whether any of the 
>> other RFC 6040 update text in section
>>
>> 4 should likewise be moved to the ECN encapsulation draft.
>>
>> Thanks, --David
>>
>> *From:*Bob Briscoe <ietf@bobbriscoe.net>
>> *Sent:* Thursday, May 16, 2019 7:44 PM
>> *To:* Black, David; tsvwg@ietf.org
>> *Subject:* Re: [tsvwg] David Black's WGLC review of 
>> draft-ietf-tsvwg-rfc6040update-shim-08
>>
>> [EXTERNAL EMAIL]
>>
>> David,
>>
>> I'll split your email in two and solely deal with the major issue 
>> first. See inline.
>>
>> On 09/05/2019 02:08, Black, David wrote:
>>
>>     idnits found a couple of minor things:
>>
>>       * Current reference for IKEv2 is RFC 7296 instead of RFC 5996
>>       * If any text was copied from pre-5378 RFCs, an additional
>>         boilerplate disclaimer is required.
>>
>>     Thanks, --David
>>
>>     *From:* Black, David
>>     *Sent:* Wednesday, May 8, 2019 8:50 PM
>>     *To:* tsvwg@ietf.org <mailto:tsvwg@ietf.org>
>>     *Subject:* David Black's WGLC review of
>>     draft-ietf-tsvwg-rfc6040update-shim-08
>>
>>     This is a solidly written draft on updating tunnel protocols that
>>     use shim headers to propagate ECN according to RFC 6040.
>>
>>     Unfortunately, I found a major issue with the updates [1] along
>>     with a few minor issues (easily dealt with) and a bunch of
>>     editorial items.
>>
>>     The major issue [1] on updates creating non-compliant
>>     implementations looks like it will need WG discussion on what
>>     should be done, as the “right thing to do” appears to be in
>>     potential conflict with deployed “running code”.
>>
>>     --- Major ---
>>
>>     [1] Compliance with RFC 6040 update
>>
>>     Section 3.1 says:
>>
>>     However, an RFC has no jurisdiction over implementations that choose
>>
>>     not to comply with it or cannot comply with it, including all those
>>
>>     implementations that pre-dated the RFC.  Therefore it would have been
>>
>>     unreasonable to add such a requirement to RFC 6040.
>>
>>     But then Section 4 goes on to do exactly that by updating RFC 6040 to
>>
>>     add this text:
>>
>>     In order that the network operator can comply with the above
>>
>>     safety rules, even if an implementation of a tunnel ingress does
>>
>>     not claim to support RFC 6040, RFC 4301 or the full functionality
>>
>>     mode of RFC 3168:
>>
>>     *  it MUST make propagation of the ECN field between inner and
>>
>>     outer IP headers independent of any configuration of Diffserv
>>
>>     codepoint propagation;
>>
>>     *  it SHOULD be able to be configured to zero the outer ECN field.
>>
>>     followed by this attempt to excuse the result:
>>
>>     There might be concern that the above "MUST" makes compliant
>>
>>     equipment non-compliant at a stroke.  However, any equipment that is
>>
>>     still treating the former ToS octet (IPv4) or the former Traffic
>>
>>     Class octet (IPv6) as a single 8-bit field is already non-compliant,
>>
>>     and has been since 1998 when the upper 6 bits were separated off for
>>
>>     the Diffserv field [RFC2474], [RFC3260].  For instance, copying the
>>
>>     ECN field as a side-effect of copying the DSCP is a seriously unsafe
>>
>>     bug that risks breaking the feedback loops that regulate load on a
>>
>>     tunnel.
>>
>>     These three chunks of text need to be aligned..  I'm not sure
>>     what should
>>
>>     be done here, as the concern about updating RFC 6040 to cause
>>     non-compliance
>>
>>     is an important concern.
>>
>> [BB] This draft proposes to update RFC6040, which in turn updated 
>> RFC3168, which in turn updated RFC2474 (there were other RFCs in the 
>> tree of updates ending at RFC6040, but those updates were not with 
>> respect to the Diffserv/ECN fields).
>>
>> I fully agree that we have to be careful not to make any equipment 
>> that already complies with any of these RFCs non-compliant. And we 
>> don't...
>>
>> If any equipment does not satisfy the proposed 'MUST' statement 
>> above, it will not be treating the DSCP and the ECN fields 
>> independently. Such equipment would not have complied with RFC2474, 
>> which separated out the last 2 bits of the ToS byte, which made it 
>> possible to specify ECN in the first place.
>>
>> So the proposed 'MUST' statement does not make any equipment that 
>> complied with any of these RFCs non-compliant, unless it was already 
>> non-compliant with RFC2474. And RFC2474 grandfathered all these RFCs. 
>> So the equipment would already be non-compliant with all these RFCs.
>>
>> Now, check the detailed wording:
>>
>> even if an implementation of a tunnel ingress does
>>
>> not claim to support RFC 6040, RFC 4301 or the full functionality
>>
>> mode of RFC 3168:
>>
>> *  it MUST make propagation of the ECN field between inner and
>>
>> outer IP headers independent of any configuration of Diffserv
>>
>> codepoint propagation;
>>
>>
>> You'll notice RFC2474 is not in the list of RFCs that an 
>> implementation might even not claim to support. That's because the 
>> MUST is about Diffserv configuration. If equipment offers any 
>> Diffserv configuration, it already has to comply with RFC2474. 
>> However, if it doesn't already comply with this MUST, it already 
>> doesn't comply with RFC2474.
>>
>> So again, this MUST does not make any equipment that complied with 
>> any of the chain of RFCs non-compliant, unless they were already 
>> non-compliant with RFC2474, and therefore non-compliant with all the 
>> RFCs in the chain of updates up to RFC6040, because RFC2474 
>> grandfathered the chain.
>>
>>
>>
>>     Analogous non-compliance concerns apply to the updates to other
>>     RFCs in
>>
>>     Section 5 to varying degrees.
>>
>> If you accept my arguments above, but can still find other 
>> non-compliance concerns, please do point them out.
>>
>> Nonetheless, I'm pretty sure I've been similarly careful to avoid 
>> introducing any non-compliance surprises.
>>
>>
>>
>> Bob
>>
>>
>>
>>
>> -- 
>> ________________________________________________________________
>> Bob Briscoehttp://bobbriscoe.net/
>
> -- 
> ________________________________________________________________
> Bob Briscoehttp://bobbriscoe.net/

-- 
________________________________________________________________
Bob Briscoe                               http://bobbriscoe.net/