Re: Compatibility with SRH requirement (was Re: Adoption Call for "The IPv6 Compact Routing Header (CRH)")

Tom Herbert <> Fri, 29 May 2020 21:53 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 9450B3A10EB for <>; Fri, 29 May 2020 14:53:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id OGfO2NCUxSEz for <>; Fri, 29 May 2020 14:53:03 -0700 (PDT)
Received: from ( [IPv6:2a00:1450:4864:20::543]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id C23AA3A1083 for <>; Fri, 29 May 2020 14:53:02 -0700 (PDT)
Received: by with SMTP id s19so2829218edt.12 for <>; Fri, 29 May 2020 14:53:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=mRSwUHRqWZ/j7GpJ2630cBCbox3EkuLT1LbUyvT+vTc=; b=Rl+MnYkUVNES1PWxKuUP6LwYvQG1VP6r6Y3h91QZoS6uHSi8T7HfUbD5ue+O1bL/6v ZELV6tqnzlMe917g1Quftvw7mnDd+hAF6QdbLxkhv36oxTJMnUuo01c4U/QMTSBVCXSd 8rycLyWndNLZIyibAEXPyFZKqhN5KhkE8oaTLworDH+CIR2DbrEPK2aJ3wxPcRUF3Hj6 8goputGHX4HnRMrrcM3xJ78y1AExQXkunF4IjDCYmR8TD9DDOmOr+SRhQ2Cr4XansjNh U9A0LQ924jQe8S8Aa93Q0cEXEzQCfFVp8Joe9nJ/ZEGz9UplRnCBtih0Eo3IdOVfGEmC OyTA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=mRSwUHRqWZ/j7GpJ2630cBCbox3EkuLT1LbUyvT+vTc=; b=pkcjsBO2VWbMaH10K2s9a00Z+NC2YvWE1XPBi83OY954WGbtY3RpZjjaGuMCfV9hD4 zbO//I1VRS1KuRzhJzcJGVdt9tTRKieKeODgIMqc4mF6UlevTozk2zaQvIoIDs+Vew+Q 4+OybLQAIY+ZNIxbV8e+mkxuZ5B6FgsUVneL4e8z1/YBc5XSjkt11U+d1NydyAjU002H 4UAOPjaufCTmFkahCaUq5gl6Tyy0KYbbhu+M8Zilewb6z/hJdHw877DCJmB0gTMT4aHP VWsREoEtPoemPFruBiaDhw+Y71XUB8uDpK3SEBN9m4vhluktcsA7yC/J0eO4I/Z7G6n/ eKDA==
X-Gm-Message-State: AOAM5325u56Mv1gHVg+is2frZxIy82sulxfWU+DnY+QlTg7ofgtYHs7B ftv4mnSVxrVHVPXB1OpUh40ngjeGUxrqxkUikPRzMg==
X-Google-Smtp-Source: ABdhPJwG4r43/kUFwp+aD0mQcY8aPdPkqOYZ2j/OWcX6vrOUCFmfdnjrByF3pD0T6EjnZrCL17sBRwQA89ypNjuUZ/w=
X-Received: by 2002:aa7:d312:: with SMTP id p18mr10569554edq.88.1590789180892; Fri, 29 May 2020 14:53:00 -0700 (PDT)
MIME-Version: 1.0
References: <> <> <> <>
In-Reply-To: <>
From: Tom Herbert <>
Date: Fri, 29 May 2020 14:52:49 -0700
Message-ID: <>
Subject: Re: Compatibility with SRH requirement (was Re: Adoption Call for "The IPv6 Compact Routing Header (CRH)")
To: James Guichard <>
Cc: "Chengli (Cheng Li)" <>, IPv6 List <>, Bob Hinden <>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
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 21:53:14 -0000

On Fri, May 29, 2020 at 2:31 PM James Guichard
<> wrote:
> Hi Tom,
> If you look at section 7 it says:
>       *  No control plane modification: Controller can install the SR
>          policy with 128-bits G-SID Containers, and the ingress treats
>          the G-SID Container as an opaque 128-bits SID without
>          understanding the structure of it.  G-SRv6 capable nodes
>          understand the COC flavor behaviors, while Compression disable
>          SRv6 nodes are unaware of Compression.
> Given this then I would say that the assumption is a non-compression capable node should not be selected as a segment within the G-SID container and therefore should never have to process a compressed SID within a received G-SRH. Of course, a non-compression capable node could still be part of the G-SRH as long as the segment it must process is of non-COC behavior.


That would have to be more than an assumption, it would need to be a
normative requirement like "a non-compression capable node MUST NOT be
selected as a segment within the G-SID container". But then the
question is how does the sender know which nodes are compression
capable and which are non-compression capable"-- there is no concept
of this distinction in RFC8754, so that information needs to come from
an external source of the protocol definition, ie. configuration or
negotiation. So that would mean that basic correctness of SRH protocol
processing becomes dependent on the control plane.


> Jim
> -----Original Message-----
> From: ipv6 <> On Behalf Of Tom Herbert
> Sent: Friday, May 29, 2020 3:40 PM
> To: Chengli (Cheng Li) <>
> Cc: IPv6 List <>rg>; Bob Hinden <>
> Subject: Compatibility with SRH requirement (was Re: Adoption Call for "The IPv6 Compact Routing Header (CRH)")
> On Fri, May 29, 2020 at 2:18 AM Chengli (Cheng Li) <> wrote:
> >
> > 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.
> Cheng,
> I don't see how any solution for compressed SIDs can be compatible with SRH without employing a new routing type . Consider that one litmus test of compatibility is what happens when a legacy implementation receives a packet with the new protocol. To be compatible, the receiver must recognize that the protocol is unknown to it and not attempt to process it. If the receiver doesn't do that and processes the protocol anyway, then the results are non-deterministic and can actaully lead to harmful or insercure behavior (in other words it's not robust).
> So if legacy receiver receives a SRH header that contains compressed SIDs that are less than 128 bits, it cannot correctly process the packet. Someone might argue that this could be a configuration option or SID length could be a negotiated parameter, that doesn't work since
> RFC8754 has no provision for negotiating or configuring an alternate SID length or format. RFC8754 is very clear on SID length and the fact they are IPv6 addresses. From the draft: "Segment List[0..n]:  128-bit
> IPv6 addresses representing the nth segment in the Segment List.". So
> 128 bit SIDs are an invariant propery of the SRH routing type. The only way to change the SID length and be compatilble with SRH is to use a new routing type, which means that CRH _is_ compatible with SRH (an SRH receiver that receives a CRH RH won't attempt to process it).
> Tom
> > 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 Then
> > * 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.
> >
> > Respect!
> > Cheng
> >
> >
> > [1].
> >
> >
> > &amp;
> > 1c00908d804082129%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C0%7C6372637
> > 80261923845&amp;sdata=DA4SX0kvjslMv48d6JBGbWk5rwY%2BGowA64MasmY6RSs%3D
> > &amp;reserved=0 [2].
> >
> >
> > mp;
> > 00908d804082129%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C0%7C637263780
> > 261923845&amp;sdata=9JDUZkDB9Wv8ahQ%2FSXzXnrMBJ33gArtla%2F6WbSYD09M%3D
> > &amp;reserved=0 [3].
> >
> >
> > &amp;
> > 1c00908d804082129%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C0%7C6372637
> > 80261923845&amp;sdata=DErYZazF4CUGR096chaqMHzNNp6Zhk15jSFB%2FOBPoFw%3D
> > &amp;reserved=0 [4].
> >
> >;d
> >
> > 8d804082129%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C0%7C6372637802619
> > 23845&amp;sdata=lHiNW7wz%2Ffk0%2FWZ2cxs0Ahyp0f1%2BZ9tjjcsKUKz3J5g%3D&a
> > mp;reserved=0 [5].
> >
> >;data=02%7C01%7Cjames.n.gui
> >
> > 240189c753a1d5591fedc%7C1%7C0%7C637263780261923845&amp;sdata=trRPntkM5
> > wNWfkgjNcY9hzwOajlM%2Feu%2F%2FAh3sr8ii0I%3D&amp;reserved=0
> >
> >
> >
> > -----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
> >
> >
> >
> >;data=02%7C01%7C
> >
> > 0fee8ff2a3b240189c753a1d5591fedc%7C1%7C0%7C637263780261923845&amp;sdat
> > a=uney8BmhjqknfjS%2FNEu1kpJFIUDM7RFniOO%2BT6n%2Ftvg%3D&amp;reserved=0
> >
> > 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.
> >
> > Regards,
> > Bob and Ole
> >
> >
> > --------------------------------------------------------------------
> > IETF IPv6 working group mailing list
> >
> > Administrative Requests:
> >
> >;data=02%7C01%7Cjames.n.guicha
> >
> > 189c753a1d5591fedc%7C1%7C0%7C637263780261923845&amp;sdata=UyBGPL0ehGhH
> > 8Vr0DmFSo0nVZfHU22WmKxso60KXKRI%3D&amp;reserved=0
> > --------------------------------------------------------------------
> --------------------------------------------------------------------
> IETF IPv6 working group mailing list
> Administrative Requests:;;sdata=UyBGPL0ehGhH8Vr0DmFSo0nVZfHU22WmKxso60KXKRI%3D&amp;reserved=0
> --------------------------------------------------------------------