Re: [Idr] Poll on the RFC5575bis implementations about the suggested changes during IETF review

"Dongjie (Jimmy)" <jie.dong@huawei.com> Wed, 06 May 2020 16:10 UTC

Return-Path: <jie.dong@huawei.com>
X-Original-To: idr@ietfa.amsl.com
Delivered-To: idr@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 841163A0B8B; Wed, 6 May 2020 09:10:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 A2OhqBbfiOpv; Wed, 6 May 2020 09:10:44 -0700 (PDT)
Received: from huawei.com (lhrrgout.huawei.com [185.176.76.210]) (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 9B0A53A0B80; Wed, 6 May 2020 09:10:11 -0700 (PDT)
Received: from lhreml704-cah.china.huawei.com (unknown [172.18.7.108]) by Forcepoint Email with ESMTP id 874A3BD283CF965E877E; Wed, 6 May 2020 17:10:06 +0100 (IST)
Received: from dggeme701-chm.china.huawei.com (10.1.199.97) by lhreml704-cah.china.huawei.com (10.201.108.45) with Microsoft SMTP Server (TLS) id 14.3.487.0; Wed, 6 May 2020 17:10:06 +0100
Received: from dggeme754-chm.china.huawei.com (10.3.19.100) by dggeme701-chm.china.huawei.com (10.1.199.97) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1913.5; Thu, 7 May 2020 00:10:03 +0800
Received: from dggeme754-chm.china.huawei.com ([10.6.80.77]) by dggeme754-chm.china.huawei.com ([10.6.80.77]) with mapi id 15.01.1913.007; Thu, 7 May 2020 00:10:03 +0800
From: "Dongjie (Jimmy)" <jie.dong@huawei.com>
To: Jeffrey Haas <jhaas@pfrc.org>
CC: "Kirill.Kasavchenko@netscout.com" <Kirill.Kasavchenko@netscout.com>, "thomas.mangin@exa.net.uk" <thomas.mangin@exa.net.uk>, "jhaas@juniper.net" <jhaas@juniper.net>, "bduvivie@cisco.com" <bduvivie@cisco.com>, IDR List <idr@ietf.org>, "idr-chairs@ietf.org" <idr-chairs@ietf.org>
Thread-Topic: [Idr] Poll on the RFC5575bis implementations about the suggested changes during IETF review
Thread-Index: AdYdzirJcIjY0X+CQ6WojBM8V+RWPwAiJPyAAVLCOuA=
Date: Wed, 6 May 2020 16:10:03 +0000
Message-ID: <3bc53ae2d7524813b1b4d18f4fc51d99@huawei.com>
References: <14293c9f9c2e41219a13f09adacb6289@huawei.com> <20200430024817.GE28692@pfrc.org>
In-Reply-To: <20200430024817.GE28692@pfrc.org>
Accept-Language: en-US, zh-CN
Content-Language: zh-CN
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.45.208.44]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/idr/CMBNgz_epA2m7HyB15giktp_aVw>
Subject: Re: [Idr] Poll on the RFC5575bis implementations about the suggested changes during IETF review
X-BeenThere: idr@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Inter-Domain Routing <idr.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/idr>, <mailto:idr-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/idr/>
List-Post: <mailto:idr@ietf.org>
List-Help: <mailto:idr-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/idr>, <mailto:idr-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 May 2020 16:10:47 -0000

Hi Jeff, 

Thanks a lot for your reply, and sorry for the delay in response. Please see inline:

> -----Original Message-----
> From: Jeffrey Haas [mailto:jhaas@pfrc.org]
> Sent: Thursday, April 30, 2020 10:48 AM
> To: Dongjie (Jimmy) <jie.dong@huawei.com>
> Cc: Kirill.Kasavchenko@netscout.com; thomas.mangin@exa.net.uk;
> jhaas@juniper.net; bduvivie@cisco.com; IDR List <idr@ietf.org>rg>;
> idr-chairs@ietf.org
> Subject: Re: [Idr] Poll on the RFC5575bis implementations about the
> suggested changes during IETF review
> 
> Jie,
> 
> On Wed, Apr 29, 2020 at 02:52:30AM +0000, Dongjie (Jimmy) wrote:
> > Hi all,
> >
> > As you may have noticed, during the IETF review of draft-ietf-idr-rfc5575bis,
> there was some discussion about the description of bit/flag settings in this
> draft.
> >
> > Based on the discussion in IESG, our AD Alvaro suggested to make following
> changes to the draft:
> >
> > (1) A bit is defined as 0, but the definition is: "0 -  SHOULD be set to 0…”
> (§4.2.1.1).  If it’s 0, then I see no reason for that not to be a MUST.  In fact,
> if always set to 0 we’re probably over specifying the field.   There are 3
> occurrences of this in the document.
> >
> > (2) Unused (§7.3) or reserved (§7.5) defined as "SHOULD be set to
> 0...MUST be ignored”.  Again, if unused/reserved, I see no reason not to
> change to MUST.  I think Rob makes a good point about extensibility.
> >
> > In summary, it is suggested that in the bit/flag descriptions, “SHOULD be
> set to 0…”  is replaced with “MUST be set to 0…”.
> 
> The pattern we normally want to see is "MUST be set to zero and SHOULD be
> ignored on receipt".
> 
> By requiring it to be set, you have expectations for a compliant
> implementation of a given draft.
> 
> By ignoring it on receipt, you permit the field to be used for something
> further in the future.
> 
> The above is consistent with Postel's Maxim.

Both descriptions work for me, and both can be found in existing RFCs. 

Perhaps my understanding to Postel’s Maxim is slightly different (I'm not a native English speaker:), to me "MUST be ignored" aligns more with "be liberal in what you accept", as the reserved Flags are always ignored, hence always accepted on receipt.

> With regard to Juniper's implementation:
> - In sections 4.2.1.1 and 4.2.1.2 for operators, we originate zeroes when
>   generating new NLRI in the reserved bits and we ignore them on receipt.
>   However, we also propagate what we are sent and use when we're not the
>   originator of that NLRI.
> - In section 7.3 (traffic action), we similarly originate only the two bits
>   in question and zero the rest of the fields if we set the community, but
>   otherwise ignore the rest of the bits on receipt.
> - In section 7.5 (DSCP), we originate zero and ignore the top order bit and
>   any other bits that should be zero.

Thanks for providing the implementation information. 

I'd also like to provide information about Huawei's implementation, the behavior is similar: The reserved bits are set to zero on originator, and are ignored on receipt. Also the reserved bits are kept unchanged when the route is further propagated. 

> 
> However, there are related things you're not asking:
> - If we receive two NLRI that are otherwise functionally equivalent but have
>   the must-be-zero bits set differently, they are different NLRI per the
>   memcmp rule.
> - The BGP extended communities suffer the common curse of all "magic"
>   communities: More than one such extended community is present, we will
>   pick the "first" one for use, where first is the internal lexicographical
> ordering
>   of the collection of extended communities (again, roughly memcmp order).
> We
>   will also propagate all such received communities.

Both the above cases you mentioned are valid, and IMO they reflect generic issues which deserve some further discussion. Based on discussion, maybe we could produce a set of generic rules related to the setting, receipt and processing of the reserved fields in both NLRI and BGP attributes, or even other protocols. Such rules could provide guidance for the specification of the reserved fields in future.

What do you think?

Best regards,
Jie

> 
> -- Jeff