Re: [spring] How CRH support SFC/Segment Endpoint option?

"Xiejingrong (Jingrong)" <xiejingrong@huawei.com> Mon, 25 May 2020 09:50 UTC

Return-Path: <xiejingrong@huawei.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5AF443A0A4E; Mon, 25 May 2020 02:50:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level:
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H3=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 lWJ74VjeK66E; Mon, 25 May 2020 02:50:34 -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 DA49A3A0A51; Mon, 25 May 2020 02:50:33 -0700 (PDT)
Received: from lhreml706-chm.china.huawei.com (unknown [172.18.7.107]) by Forcepoint Email with ESMTP id ED011F0228DB4DC34CB2; Mon, 25 May 2020 10:50:31 +0100 (IST)
Received: from nkgeml707-chm.china.huawei.com (10.98.57.157) by lhreml706-chm.china.huawei.com (10.201.108.55) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1913.5; Mon, 25 May 2020 10:50:31 +0100
Received: from nkgeml705-chm.china.huawei.com (10.98.57.154) by nkgeml707-chm.china.huawei.com (10.98.57.157) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1913.5; Mon, 25 May 2020 17:50:28 +0800
Received: from nkgeml705-chm.china.huawei.com ([10.98.57.154]) by nkgeml705-chm.china.huawei.com ([10.98.57.154]) with mapi id 15.01.1913.007; Mon, 25 May 2020 17:50:28 +0800
From: "Xiejingrong (Jingrong)" <xiejingrong@huawei.com>
To: Robert Raszuk <robert@raszuk.net>, Ron Bonica <rbonica@juniper.net>
CC: "spring@ietf.org" <spring@ietf.org>, 6man <6man@ietf.org>
Thread-Topic: [spring] How CRH support SFC/Segment Endpoint option?
Thread-Index: AdYwBYkgTau2vInrR6WP+x+iqlpN9gAPJDmwADf+cOAAEX/LgAACg0+AABaWjIAAAXdcAAAEWnWAAAbEQwAADCRiAAARSP0w
Date: Mon, 25 May 2020 09:50:28 +0000
Message-ID: <89aa2aecf8ce4e8ebe2bc068e78a4d9d@huawei.com>
References: <C7C2E1C43D652C4E9E49FE7517C236CB02A2CD12@dggeml529-mbx.china.huawei.com> <DM6PR05MB63482CFA4D5AB938D5A4B818AEB40@DM6PR05MB6348.namprd05.prod.outlook.com> <C7C2E1C43D652C4E9E49FE7517C236CB02A37DC6@dggeml509-mbs.china.huawei.com> <DM6PR05MB63489256A7C8357BEF526EE2AEB20@DM6PR05MB6348.namprd05.prod.outlook.com> <CAOj+MMGLj9OgFCcsB21oWXbcCqHZ7B4qTvCcrK9LXuKDYVu_vQ@mail.gmail.com> <CALx6S36yJ5CS6ykQhd_sW3T6=PjVJNOqewtg2joUtHnbsZPxSA@mail.gmail.com> <15815a80-7fe3-7d85-61a8-f7168a99cabb@gmail.com> <CALx6S35j=c9BUyyf1qs+As-51YVR6DTQAP+Xkc4zS05CGVJCHQ@mail.gmail.com> <DM6PR05MB63484B690AF323ACE5853D79AEB30@DM6PR05MB6348.namprd05.prod.outlook.com> <CAOj+MMGGZeZz2CHKQk_JhLVEZbKjFnpw_iEQ13hkahNScRgCSQ@mail.gmail.com>
In-Reply-To: <CAOj+MMGGZeZz2CHKQk_JhLVEZbKjFnpw_iEQ13hkahNScRgCSQ@mail.gmail.com>
Accept-Language: en-US, zh-CN
Content-Language: zh-CN
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.108.202.118]
Content-Type: multipart/alternative; boundary="_000_89aa2aecf8ce4e8ebe2bc068e78a4d9dhuaweicom_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/WRrJzkkHJ-ki_SpuRK4STDC1QNA>
Subject: Re: [spring] How CRH support SFC/Segment Endpoint option?
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Source Packet Routing in NetworkinG \(SPRING\)" <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 25 May 2020 09:50:38 -0000

Hi Robert,

"What … would happen … if there is no Routing Header at all and I still modify DA at each segment endpoint"
----Good question. I saw no less than 2 existing drafts and no less than 2 potential proposals with this behavior, and IMO they are all reasonable.

Or reading the RFC8200 verbatim first DOH must be placed before RH hence to have more then one DOH in a packet RH is mandatory
----2nd good question. I saw no less than 2 RFCs that have 3 DOHs in it optionally.
----I believe there could be more than one DOH in a packet without mandatory of requiring DOH before RH,  per below [1] (a higher level observation of IPv6 design IMO, not just the “recommended” text).

What exactly tells the router to process or not to process last 4 headers ? Is there a rule anywhere that unless RH is present and segments left = 0 destination must not follow next header in RH ?
----3rd good question. A router does NOT check/assume/guarantee the “8200 recommended order” at all IMO (would you do that?). Once a packet with the DA being the IPv6 address of a node is received, the node just “catch” it to its local-process.
----I believe below [2]  is another higher level observation of IPv6 design IMO about “EH order” from implementation view, not just the “recommended order” text.

In summary, I believe the “recommended order” of RFC8200 does not make a proposal superior than others at all.

Thanks
Jingrong


[1] RFC8200
   Defining new IPv6 extension headers is not recommended, unless there
   are no existing IPv6 extension headers that can be used by specifying
   a new option for that IPv6 extension header.  A proposal to specify a
   new IPv6 extension header must include a detailed technical
   explanation of why an existing IPv6 extension header can not be used
   for the desired new function.  See [RFC6564] for additional
   background information.

   Instead of defining new extension headers, it is recommended that the
   Destination Options header is used to carry optional information that
   must be examined only by a packet's destination node(s), because they
   provide better handling and backward compatibility.

[2] RFC8200
   When more than one extension header is used in the same packet, it is
   recommended that those headers appear in the following order:

   If and when other extension headers are defined, their ordering
   constraints relative to the above listed headers must be specified.

   IPv6 nodes must accept and attempt to process extension headers in
   any order and occurring any number of times in the same packet,
   except for the Hop-by-Hop Options header, which is restricted to
   appear immediately after an IPv6 header only.  Nonetheless, it is
   strongly advised that sources of IPv6 packets adhere to the above
   recommended order until and unless subsequent specifications revise
   that recommendation.



From: ipv6 [mailto:ipv6-bounces@ietf.org] On Behalf Of Robert Raszuk
Sent: Monday, May 25, 2020 4:57 PM
To: Ron Bonica <rbonica@juniper.net>
Cc: spring@ietf.org; 6man <6man@ietf.org>
Subject: Re: [spring] How CRH support SFC/Segment Endpoint option?

Hi Ron,

So what in your opinion would happen with the below if there is no Routing Header at all and I still modify DA at each segment endpoint ?

Can I still put two Destination options ?

Or reading the RFC8200 verbatim first DOH must be placed before RH hence to have more then one DOH in a packet RH is mandatory ?

If so can it contain only 4 octets and no type specific data (so called be a NULL RH) ?

What exactly tells the router to process or not to process last 4 headers ? Is there a rule anywhere that unless RH is present and segments left = 0 destination must not follow next header in RH ?

Thank you,
R.


IPv6 extension header are ordered as follows:

- Headers processed at every node along the delivery path
        - Hop-by-hop
- Headers processed at every segment endpoint
        - Destination options
        - Routing header
- Headers processed at the ultimate destination only
        - Fragment header
        - Authentication header
        - ESP header
        - Destination Options header

Note that the Destination Options header is the only extension header that can appear twice in a packet. The Destination Options header must immediately precede the Routing header or the upper-0layer header.