RE: Adoption Call for "The IPv6 Compact Routing Header (CRH)"

"Chengli (Cheng Li)" <> Fri, 29 May 2020 09:17 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id D53A33A0D69 for <>; Fri, 29 May 2020 02:17:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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 ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id VkPctpC7ZzWr for <>; Fri, 29 May 2020 02:17:42 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 546713A0D6C for <>; Fri, 29 May 2020 02:17:42 -0700 (PDT)
Received: from (unknown []) by Forcepoint Email with ESMTP id E2FA16148319817AF1BD; Fri, 29 May 2020 10:17:38 +0100 (IST)
Received: from ( by ( with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1913.5; Fri, 29 May 2020 10:17:38 +0100
Received: from ( by ( with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.1.1913.5 via Frontend Transport; Fri, 29 May 2020 10:17:38 +0100
Received: from ([]) by ([]) with mapi id 14.03.0487.000; Fri, 29 May 2020 17:17:31 +0800
From: "Chengli (Cheng Li)" <>
To: Bob Hinden <>, IPv6 List <>
Subject: RE: Adoption Call for "The IPv6 Compact Routing Header (CRH)"
Thread-Topic: Adoption Call for "The IPv6 Compact Routing Header (CRH)"
Thread-Index: AQHWKwY/H+hpxh+xuEKXCTJR6XsWxKi+3VTg
Date: Fri, 29 May 2020 09:17:31 +0000
Message-ID: <>
References: <>
In-Reply-To: <>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
x-originating-ip: []
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <>
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 29 May 2020 09:17:51 -0000

Hi 6man,

Since the first day CRH is proposed, it reminds me that we may need to address the overhead problem of SRv6 when SID list is long, that is great, thanks to Ron and others. 

But personally, I hope the solution should be compatible with SRv6 and SRH, which will simplify the issue and save a lot of works and time. Unfortunately, CRH is not. 
Truly, some people may jump up to say there is no requirement to be compatible with SRv6. I respect them and their POVs, but I also respect my POV. 
I do not hope the IETF to spend a lot of time to build a brand new data plane and control plane, while some compatible solutions are there[1]. But people are free to develop a tech like that if they want.

However, the development roadmap of CRH really shocked me. 
	* At the beginning, SRv6+ was proposed, the data plane is CRH
	* them it became SRm6, the data plane is CRH.
	* SRm6 requested to be adopted in SPRING, and get the answer "too early". 
	* In Feb, 2020, CRH removed the normative reference to SRm6, and stated to be replacement of RH0. In this way, CRH was stated to have no dependency on SRm6, while the data plane of SRm6 is CRH[2]. Amazing! 
                * In May 5th,  CRH asked for WG adoption in 6man, and get "Too early" again.
	* RH0 was removed after discussion in ML, and CRH get another base on general purpose of RH.
	* And several days later, a WG adoption poll is issued. Amazing+! 

Right now, I do not know where the requirements of CRH come from, and how CRH can get here.
At the beginning, the requirements of CRH may be:
      * Challenges from overhead of SRv6 when SID list is long( SID >5 )
      * IPv6 address needs to be ONLY the address of interface.
Regarding SRv6 overhead,
* If CRH aims to solve the SRv6 compression, there are some competing solutions there. They are starting from the requirement[3], architecture, but why CRH can jump to data plane adoption?
* If CRH does not aim to solve the SRv6 overhead, then what? It should be stated clear. And the work should follow the IETF progress of requirements-> use case->architecture->solution. The rules should be respected. 
But I may be wrong, hidden rules may be somewhere that I don't know.

Personally, I don't think the progress of CRH is a good case of progressing a work in IETF for young generation. Other people may follow the same direction to do something else again, and again.
Regarding IPv6 address, we have a lot of discussion on this. Will not repeat.

>From the technology aspects, I do spend a lot of time to read the documents of SRm6, not only CRH, but including the CP extensions, VPN and SFC extensions, etc.
I may be wrong, but I think CRH is not that simple as some people stated.

First of all, the below is my understanding of SRv6 and CRH based SRm6, again, I may be wrong.
* SRv6 uses one ID(128 bits address) to present
	* forwarding ID: 128 bits address
	* routing ID: 128 bits address
	* service ID: 128 bits address
* SRm6 use three IDs to present
	* forwarding ID: 128 bits address
	* routing ID:16/32 bits tag/CRID/?
	* service ID: option TLV in DOH
* When comparing TE Steering, SRv6 END/END.X is really simple, CRH I think it is the similar or the same. I don't see any more simplicities than SRH based SRv6.
* When a service instruction is added, SRv6 introduces a new ID value without introducing any new data plane encapsulation modifications. CRH based SRv6 introduce an option TLV in DOH with new data plane encapsulation modifications. I think adding an ID is simpler than a TLV, and more hardware friendly.
* When supporting SFC, SRv6 introduces some IDs, that is all, without new data plane encapsulation modifications. CRH does not support. CRH based SRm6 may support by using Options TLV in the first DOH[4] or NSH.
	* Option TLV in First DOH: The option in first DOH should apply to all the Segment endpoint. If configure different behavior to a same Option TLV, then the Option ID is like a Service Path ID, and per-flow/per SFC states are introduced back to all the nodes. SRm6 is still a source routing paradigm?
	* NSH:  too complicated to combination, per-flow/per-SFC states need to be maintained on all the nodes along the path.
* When supporting VPN, SRv6 introduces a new ID, without new data plane encapsulation modifications. SRm6 introduces a new TLV in DOH.
* When supporting FRR, I don't see the solution of CRH yet.
* When supporting OAM, do we need solution to support mapping table debugging? No idea.
* No reserved bits in CRH, I do not think the 32 bits are critical for hardware processing, but extensibilities are needed in almost protocol design. Less overhead does not mean best. I think this is a drawback of CRH instead of a advantage. But I may be wrong.
* In SRv6 or SR-MPLS, a SID is allocated by the node and processed by the node. Like an Adj SID in SR-MPLS and SRv6, the Adj Label and END.X SID are the value allocated by a node, and the forwarding ID is also ended at that node. But in CRH, the SID is allocated by the node, while the forwarding ID is allocated by the next segment endpoint, which is the interface address allocated by the next segment endpoint node, it looks very strange to me. But I may be wrong again!
* Flag, Tag, Last Entry provide more programmability to operators to support various services, they are features not overhead. Again, extensibilities is required and very important for a basic solution like a RH. Even for RH3 [5] in IOT. 
* SRH TLV works like the DOH TLVs, so I think this is a alterative solution. But SID is the best option to specify a specific behavior on a specific node, rather than Option TLV with local configurations or container TLV design.
Therefore, I really do not see the simplicity brought by CRH when CRH is used for supporting services.
It has the simplicity as SRH in TE. But has more complexities when supporting other services. 
I prefer to comparing solutions in a service solution level instead of a peace of the whole solution, no meaning to me.

Base on the above analysis, personally I don't think right now is the timing to adopt this document, so I do not support the adoption. 



-----Original Message-----
From: ipv6 [] On Behalf Of Bob Hinden
Sent: Saturday, May 16, 2020 6:14 AM
To: IPv6 List <>
Cc: Bob Hinden <>
Subject: Adoption Call for "The IPv6 Compact Routing Header (CRH)"

This message starts a two-week 6MAN call on adopting:

 Title:          The IPv6 Compact Routing Header (CRH)
 Authors:        R. Bonica, Y. Kamite, T. Niwa, A. Alston, L. Jalil
 File Name:      draft-bonica-6man-comp-rtg-hdr-21
 Document date:  2020-05-14

as a working group item. Substantive comments regarding adopting this document should be directed to the mailing list.  Editorial suggestions can be sent to the authors.

Please note that this is an adoption call, it is not a w.g. last call for advancement, adoption means that it will become a w.g. draft.  As the working group document, the w.g. will decide how the document should change going forward.

This adoption call will end on 29 May 2020.

The chairs note there has been a lot of discussions on the list about this draft.   After discussing with our area directors, we think it is appropriate to start a working group adoption call.  The authors have been active in resolving issues raised on the list.

Could those who are willing to work on this document, either as contributors, authors or reviewers please notify the list.   That gives us an indication of the energy level in the working group
to work on this.

Bob and Ole