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

Tom Herbert <> Fri, 29 May 2020 19:40 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id D18DA3A1013 for <>; Fri, 29 May 2020 12:40:02 -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 K-lsjpsimL5t for <>; Fri, 29 May 2020 12:40:00 -0700 (PDT)
Received: from ( [IPv6:2a00:1450:4864:20::542]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 71B4B3A1011 for <>; Fri, 29 May 2020 12:40:00 -0700 (PDT)
Received: by with SMTP id c35so2607121edf.5 for <>; Fri, 29 May 2020 12:40:00 -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=PsgOPESHLNB5Q5i/ra+Y/DIrWlx/tvvSQhcsC4YhVo0=; b=V21BxvoDfq6h1akf9D0n2ZGC69Pf+xxq5clKQNdX8AiPOqZWNrj0fWWy7qM07cMxpR S6X004FsZVmtSldzvbcQLkqxWBdtOE6UXGPeLLuFG5Z4Fry1369Zo37VQ78PbxuMXIe8 S+TQVO9fwyxV3v5foQOMUJhvkjSb4ousHDBjTEUMJFGJkCrqN0Pb8H4NgktI8WSBu/iC BsUhNqz15h5Wh/QQpOYmsxZUwYiiheoQHutLxQMbf2FBs8cSxoP/KLh9URAg/ynFVJNX q5MZT3Wwrua/V9NtyxgIbNPH9VWla6+rTGyJsIAgDrGmV3WYxoGUNOeeJzT8LJ6ZF92T reyg==
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=PsgOPESHLNB5Q5i/ra+Y/DIrWlx/tvvSQhcsC4YhVo0=; b=U4jEB5oSIcHP115tteJbYdyQWgdG3CDLFf0CWr8cVTiaO/swJe65CCgpiDTkbtQT5w QyEDXlJYXp5Oy7OOK45yLHSbtOgf8F9cHGIVsrVGOC/FCb+8coYqwlUZGTe5TGoMgp8W 6g4IUNzLoEs4FNOrXTqVuATnnyJ9HTRQZ74ahd8V1MEvFxtyb6mPru2cN82XRrlZSFHN Btcq3POUDyfgI5iAMTjVqhP+FP0oIsK3GL5BUn4oUr2htHLgU2TT0eN/DE3BJlbULIzo tOiOadB0r3rDkkUGVORjHV30iw9pitzT9QvR1i0cZklIra0MfF0eXrmgDMscdVNA1cXi h8kQ==
X-Gm-Message-State: AOAM530+ketXX2oZvzDEQ9E0kdIflMe8dHS6U8YlsSx80wtBBHZjtzPi FAWFTvr27TIOcmzzUUcULdhkr8sNjwx/MdWb5qJuVw==
X-Google-Smtp-Source: ABdhPJxI6tW097kHEToHP2LkpZ+8sZCS6R3AU59mqZgHbPLTdbyLWHt1D38L73hESM2yaFwKzeg+g+MgUwHLgmPohkM=
X-Received: by 2002:a05:6402:2d4:: with SMTP id b20mr10059213edx.118.1590781198667; Fri, 29 May 2020 12:39:58 -0700 (PDT)
MIME-Version: 1.0
References: <> <>
In-Reply-To: <>
From: Tom Herbert <>
Date: Fri, 29 May 2020 12:39:47 -0700
Message-ID: <>
Subject: Compatibility with SRH requirement (was Re: Adoption Call for "The IPv6 Compact Routing Header (CRH)")
To: "Chengli (Cheng Li)" <>
Cc: Bob Hinden <>, IPv6 List <>
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 19:40:03 -0000

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.


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).


> 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].
> [2].
> [3].
> [4].
> [5].
> -----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.
> Regards,
> Bob and Ole
> --------------------------------------------------------------------
> IETF IPv6 working group mailing list
> Administrative Requests:
> --------------------------------------------------------------------