Re: Size of CR in CRH

Robert Raszuk <robert@raszuk.net> Thu, 21 May 2020 23:13 UTC

Return-Path: <robert@raszuk.net>
X-Original-To: ipv6@ietfa.amsl.com
Delivered-To: ipv6@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 259BB3A0C97 for <ipv6@ietfa.amsl.com>; Thu, 21 May 2020 16:13:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=raszuk.net
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 u3lt2uX2rCxP for <ipv6@ietfa.amsl.com>; Thu, 21 May 2020 16:13:23 -0700 (PDT)
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com [IPv6:2a00:1450:4864:20::636]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CFE2C3A0C9A for <6man@ietf.org>; Thu, 21 May 2020 16:13:22 -0700 (PDT)
Received: by mail-ej1-x636.google.com with SMTP id n24so10889944ejd.0 for <6man@ietf.org>; Thu, 21 May 2020 16:13:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raszuk.net; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=EtUVQP5mtf1WrOu+hS/EqkPw/yQ31e+eNn62hSW1j+Y=; b=EtA3rFHvEOXH9GAxRWo+KRhb8ngK4A3ctUpEI1CIk8RQPEZTyYL9e03xJ8516r1Owg ofytRQRWFUASXNzOuZcJYm8v0GTYqdRh2ZHc7WLVIBalqfLXfmquRnRQYy7BJLdx8fCU T7T0TZ017gcc2DSLW+s7N92KQPLpuDrESscBLNCNZYyrmSR8Vi99NA+c3JymUk3x1Qt5 aWVfmSVMm5oW89oYD/GRvjiClJUUfBRwwGdycIhvcHyP/Um2ZledIKzM1W8dBhXGETgN S2dMm5GtFdmAWAydztN8RnKTukdwhtd++otL+jMjLOJpkNopKUdBNt4gl0ydOzG1/9X2 ZOuQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=EtUVQP5mtf1WrOu+hS/EqkPw/yQ31e+eNn62hSW1j+Y=; b=MxKqfrDcgsBU5sY9ZR1mfixMFEYT1qvZOAuxJGz9NLzkQ1swuRrNKtiZ5oohaEVVKy BgXs8q6heSpLRx+8eg5xO6GccPRE4lRgSBBX6nZnoI0Ny0WPZK0KtrJLSKN3f5LmACji KldYsUO+THuu0ztEwZQEqHVI3jjJ/H+o8X6b1voRpERCax57WmQym0K0ZixyBaauIKQ0 hyURjRKs1nNK05471CP+ZYXQnGahS0YTa76aS2GCTvsA5kkkK71NOsI0aMF4KkCT7bbA cd6ixd2q7kKWTlgTVBMMFgc1znROrr2Jh+4b9qG7qovYYAOo+kbuH/DG9O0FRhCiraSm kNGA==
X-Gm-Message-State: AOAM532JlKPnf7w5Cnvn7fpzsJ+K8FlRRvnDNX24YNUr4kUH8hJs0vE5 xQnF4qCqFqV8ZC0PcBvx0idI4UY8ifps5pH/X/9KTbbjMMk=
X-Google-Smtp-Source: ABdhPJzAEpfys2Ay4+PrFesewOr+LVAJg4cPvOjj3j0xdiWS4wzv49HyM4zeTUPf+f9DjemfLVkxwxcI8YtQdqPu7cQ=
X-Received: by 2002:a17:906:39c3:: with SMTP id i3mr6003968eje.417.1590102800978; Thu, 21 May 2020 16:13:20 -0700 (PDT)
MIME-Version: 1.0
References: <CAOj+MMFsy=dDciY=TMwSf75CZCr_i1Mfv6oUiPs5U6hT2Bq94w@mail.gmail.com> <DM6PR05MB6348D0DB381145F1A4C53450AEB70@DM6PR05MB6348.namprd05.prod.outlook.com> <CAOj+MMHT=TWqf=A71PhvCcrFggCQ=okRrP=sGaO4hrcbmsCvGw@mail.gmail.com> <CAOj+MMGYbw83c-T9GWCs_cLDWWbGi1dZ_Xfc8tS6TV6EfvWsDw@mail.gmail.com> <DM6PR05MB63484502B4CFCB745DFCED3EAEB70@DM6PR05MB6348.namprd05.prod.outlook.com> <CAOj+MMEfkenHmSLje62wNRw3OrxBzJJq_MwesozK-ABeLXbZ2Q@mail.gmail.com> <DM6PR05MB634807B4AAB6452B6FDA535CAEB70@DM6PR05MB6348.namprd05.prod.outlook.com> <CAOj+MMEX3qxQw0WHt3b69-KL5w+Ozufh_2eod-VO6Bt-ojSf9A@mail.gmail.com> <DM6PR05MB6348382D4496673BA96140C3AEB70@DM6PR05MB6348.namprd05.prod.outlook.com> <CAOj+MMFB3fYuYn5euzUzPpZbxr81eN5zfa2ATyHhC3RJbtch=A@mail.gmail.com> <DM6PR05MB634817EB3CB574C5A7D0BA77AEB70@DM6PR05MB6348.namprd05.prod.outlook.com> <CAOj+MMF9SsxSMXuVVQJmrQQGdsGN=RMeb2Kxu88+bjH__7r=Lg@mail.gmail.com> <DM6PR05MB6348D6482205735F43C9A754AEB70@DM6PR05MB6348.namprd05.prod.outlook.com>
In-Reply-To: <DM6PR05MB6348D6482205735F43C9A754AEB70@DM6PR05MB6348.namprd05.prod.outlook.com>
From: Robert Raszuk <robert@raszuk.net>
Date: Fri, 22 May 2020 01:13:10 +0200
Message-ID: <CAOj+MMFPhU0NWgx4gaNMiDqeN-_vzx19-ou56+fmo_9ObZDAVA@mail.gmail.com>
Subject: Re: Size of CR in CRH
To: Ron Bonica <rbonica@juniper.net>
Cc: 6man <6man@ietf.org>
Content-Type: multipart/related; boundary="0000000000009d5a9c05a630a816"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/RCOtNCpveWX7iMqhffHciw0ipSg>
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <ipv6.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ipv6>, <mailto:ipv6-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ipv6/>
List-Post: <mailto:ipv6@ietf.org>
List-Help: <mailto:ipv6-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipv6>, <mailto:ipv6-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 21 May 2020 23:13:28 -0000

Hi Ron,

Sure ... we went via this already but why not one more time :)

[image: image.png]

Node B allocated SID = 15 locally to go to Node C and Node Z allocated SID
15
locally to go to Node D.

So Node B will have two CRH-FIB entries:

  Identifier = 15, IPv6 Address = Node C, Method = strict, Link = B->C
  Identifier = 15, IPv6 Address = Node Z, Method = loose, Link = Z->D

CRH send by Node A is [15,15] & DA = Node B

Please describe how node B will know that we need to go via IPv6 network
to Node Z vs go locally to Node C ?

Cheers,
Robert.


On Fri, May 22, 2020 at 12:55 AM Ron Bonica <rbonica@juniper.net> wrote:

> Robert,
>
>
>
> I think that we are talking past each other. Please help me to understand
> your question by providing an example network and the CRH-FIB on each node.
>
>
>
>                                                                        Ron
>
>
>
>
>
>
>
> Juniper Business Use Only
>
> *From:* Robert Raszuk <robert@raszuk.net>
> *Sent:* Thursday, May 21, 2020 6:30 PM
> *To:* Ron Bonica <rbonica@juniper.net>
> *Cc:* 6man <6man@ietf.org>
> *Subject:* Re: Size of CR in CRH
>
>
>
> *[External Email. Be cautious of content]*
>
>
>
> Hi Ron,
>
>
>
> I don't think we need to go through a tutorial here what the FIB, CRH-FIB
> or LFIB is.
>
>
>
> I asked specific question on which you have not provided any answer:
>
>
>
> If I have part of the network non CRH aware and each node is free to
> allocate their own SID - as you are claiming SIDs are locally significant -
> how would the CRH look like in case of SID conflict between local node and
> remote node SID collision.
>
>
>
> Now rest of your answer is rather vague at best. And this is not just a
> detail. This is fundamental frame to the proposal we are discussing
> adoption of.
>
>
>
> Sure once document becomes a WG a collective brains can paint it well -
> but if it does not even have solid frames it may be a pretty hard task.
>
>
>
> Just my own little side input. Others may see it different way,
>
>
>
> Many thx,
>
> R.
>
>
>
>
>
> On Fri, May 22, 2020 at 12:22 AM Ron Bonica <rbonica@juniper.net> wrote:
>
> Robert,
>
>
>
> I think that you are confusing two data structures. The CRH-FIB is just
> that, a FIB. I contains enough information to resolve an incoming
> identifier to an IPv6 address and a forwarding method. Each node maintains
> a unique CRH-FIB and there is no requirement for nodes to share their
> CRH-FIBs with one another. The CRH-FIB lives on the forwarding plane and is
> an appropriate topic for 6man.
>
>
>
> Somewhere in the network, there is an entity constructs the CRH and the
> list that it contains. That entity needs access to another data structure,
> that includes a global view of each node’s CRH-FIB. That entity might be:
>
>
>
>    - A human, manually constructing forwarding policy
>    - A controller
>    - Path computation software on a router.
>
>
>
>
> Ron
>
>
>
>
>
>
>
> Juniper Business Use Only
>
> *From:* Robert Raszuk <robert@raszuk.net>
> *Sent:* Thursday, May 21, 2020 4:05 PM
> *To:* Ron Bonica <rbonica@juniper.net>
> *Cc:* 6man <6man@ietf.org>
> *Subject:* Re: Size of CR in CRH
>
>
>
> *[External Email. Be cautious of content]*
>
>
>
> Hello Ron,
>
>
>
> > Why should it? It isn’t attached to link X->Y. So it couldn’t use that
> entry even if it had it.
>
>
>
> This question I think exposes or uncovers (at least for me) the crux of
> your proposal ... perhaps even fatal one.
>
>
>
> You are assuming that only locally allocated SIDs are in CRH-FIB - that is
> fatal assumption for bunch of reasons ... one swapping DA to some node N
> hops away. How are you going to accomplish that if such entries are not
> even in CRH-FIB ?
>
>
>
> I guess it is very clear now why the other day you stated that "all nodes
> in the domain must support CRH".
>
>
>
> What seems you are doing here ... and of course this is not written
> anywhere in any document ... so this is pure acceptance call guessing - is
> a forward referencing SIDs against the peers.
>
>
>
> So on any node you are allocating SID per interface - strictly speaking
> per forwarding adjacency. Clearly you can not build such construct for
> remote nodes based on the above.
>
>
>
> Furthermore you are building forwarding chain on the basis of ordered
> forwarding list of SIDs just hoping that the peer will accept the packet if
> his DA address is in the IPv6 header. Then it will look up his own SID and
> continue.
>
>
>
> One thing I must agree with you that this is not Segment Routing ... In
> fact I am not sure how to call this architecture. Maybe forward referenced
> source routing ?
>
>
>
> You can not do TI-LFA with this approach unless you pre-program any
> possible alternative paths to all nodes in the network.
>
>
>
> Sure you can demo this in the lab or even on a network just like you could
> demo static mpls labels. Yes it is very simple and you got attention of few
> folks with that. And yes you could perhaps even show that if you just add
> few lines of xml config you could tunnel it across non CRH capable nodes
> ... But is this solution for any production network ?
>
>
>
> I think and I was told by unicast emails that I am not alone - we are just
> guessing what the vehicle looks like after seeing the first wheel. So far
> it does not even look like a car ... maybe bike or scooter. Who knows ....
>
>
>
> If I may recommend next action without dismissing your proposal a wise
> thing to do would be to get from you set of slides or perhaps youtube
> recording showing exactly not only all mapping distribution, but more
> over illustrating exact packet's header including CRH in all various cases
> I and others asked when packet is traversing throughout a controlled domain.
>
>
>
> Only after that we could start a new adoption call when more folks
> actually has a clear picture what it is being adopted here. Is it a
> brilliant and cool solution or is it some form of wild animal which can
> bite.
>
>
>
> Many thx,
>
> Robert.
>
>
>
>
>
> On Thu, May 21, 2020 at 9:46 PM Ron Bonica <rbonica@juniper.net> wrote:
>
> Robert,
>
>
>
> I am assuming that B is attached to Z. When I say, it isn’t attached, I
> mean that B isn’t attached to Link X->Y. Link X->Y is attached to Z.
>
>
>
>
> Ron
>
>
>
>
>
>
>
> Juniper Business Use Only
>
> *From:* Robert Raszuk <robert@raszuk.net>
> *Sent:* Thursday, May 21, 2020 3:14 PM
> *To:* Ron Bonica <rbonica@juniper.net>
> *Cc:* 6man <6man@ietf.org>
> *Subject:* Re: Size of CR in CRH
>
>
>
> *[External Email. Be cautious of content]*
>
>
>
> > It isn’t attached to link X->Y.
>
>
>
> Please assume it is attached.
>
>
>
> I stated very clearly: "(or maybe even connected to B)"
>
>
>
> Thx,
> R.
>
>
>
>
>
>
>
> On Thu, May 21, 2020 at 8:45 PM Ron Bonica <rbonica@juniper.net> wrote:
>
> Robert,
>
>
>
> Identifiers have node local scope. This means:
>
>
>
>    - One a single node, there is a one-to-one mapping between identifiers
>    and the CRH-FIB entries that they identify
>    - Nodes A through Z can all have a CRH-FIB entry that is identified by
>    N. However, all of those CRH-FIB entries do not need to contain the same
>    information.
>
>
>
> Referring back to your example, Node B will never have the following entry
> in its CRH-FIB:
>
>
>
>    - Identifier = 15, IPv6 Address = Node Z, Method = strict, Link = X->Y
>
>
>
> Why should it? It isn’t attached to link X->Y. So it couldn’t use that
> entry even if it had it.
>
>
>
>                                                          Ron
>
>
>
>
>
>
>
>
>
> Juniper Business Use Only
>
> *From:* Robert Raszuk <robert@raszuk.net>
> *Sent:* Thursday, May 21, 2020 11:25 AM
> *To:* Ron Bonica <rbonica@juniper.net>
> *Cc:* 6man <6man@ietf.org>
> *Subject:* Re: Size of CR in CRH
>
>
>
> *[External Email. Be cautious of content]*
>
>
>
> Hi Ron,
>
>
>
> > Node B decrements Segments Left and looks for entry 15 in **its**
> CRH-FIB. If finds:
>
> >
>
> >     On Node B:  Identifier = 15, IPv6 Address = Node C, Method = strict,
> Link = B->C
>
>
>
> Your example works when the entire network has a single segment routed
> path :)
>
>
>
> What happens if also Node Z somewhere in the domain (or maybe even
> connected to B) advertised SID 15 with some different outbound link ?
>
>
>
> So Node B will have two FIB entries:
>
>
>
>   Identifier = 15, IPv6 Address = Node C, Method = strict, Link = B->C
>
>   Identifier = 15, IPv6 Address = Node Z, Method = strict, Link = X->Y
>
>
>
> So how will B decided which one to use ?
>
>
>
> Best,
>
> R.
>
>
>
>
>
>
>
>
>
> On Thu, May 21, 2020 at 5:11 PM Ron Bonica <rbonica@juniper.net> wrote:
>
> Robert,
>
>
>
> Let’s address your question with an example. Assume that Node A is sending
> a packet to Node D. The delivery path includes the following strictly
> routed hops:
>
>
>
>    - Node A to Node B over link A->B
>    - Node B to Node C over link B->C
>    - Node C to Node D over link C->D
>
>
>
> Now we populate the CRH-FIB on Nodes B and C as follows:
>
>
>
>    - On Node B:  Identifier = 15, IPv6 Address = Node C, Method = strict,
>    Link = B->C
>    - On Node C:  Identifier = 15, IPv6 Address = Node D, Method = strict,
>    Link = C->D
>
>
>
> Now, Node A formats a packet as follows:
>
>
>
>    - IPv6 Destination Address = Node B
>    - CRH Segments Left = 2
>    - Identifier list = [15,15]
>
>
>
> Node A sends this packet to Node B over link A->B. Node B decrements
> Segments Left and looks for entry 15 in **its** CRH-FIB. If finds:
>
>
>
>    - On Node B:  Identifier = 15, IPv6 Address = Node C, Method = strict,
>    Link = B->C
>
>
>
> So, Node B updates the IPv6 address and sends the packet to Node C over
> link B->C. Node C decrements Segments Left and looks for entry 15 in *
> *its** CRH-FIB. If finds:
>
>
>
>    - On Node C:  Identifier = 15, IPv6 Address = Node D, Method = strict,
>    Link = C->D
>
>
>
> So, Node C updates the IPv6 address and sends the packet to Node D over
> link C->D.
>
>
>
>                                                           Ron
>
>
>
>
>
>
>
> Juniper Business Use Only
>
> *From:* Robert Raszuk <robert@raszuk.net>
> *Sent:* Thursday, May 21, 2020 10:35 AM
> *To:* Ron Bonica <rbonica@juniper.net>
> *Cc:* 6man <6man@ietf.org>
> *Subject:* Re: Size of CR in CRH
>
>
>
> *[External Email. Be cautious of content]*
>
>
>
> Ron,
>
>
>
> While we are at the local vs global significance of SIDs can you please
> elaborate how do you resolve the conflict where given SID value is
> advertised by more then one node ? In fact imagine that all nodes in a
> domain choose to advertise the same SID value "15" to forward the traffic
> to their respective peers. So packet arrives at segment endpoint node A
> with CRH consisting of SID list 15, 15, 15, 15 ... where each value 15
> means different behaviour on different node.
>
>
>
> How do you even know which way to forward the packet ?
>
>
>
> See in this case your mapping plane will contain different functions on
> different nodes signalled with the same SID.
>
>
>
> I understand that you are trying to silently borrow set of procedures from
> SR-MPLS here as documented in RFC8660. But if you just open this RFC you
> will see section 2.5 or 2.6 without which you just can not simply propose
> to treat SID as locally significant in any form of segment routing. Of
> course unless you would consume two SIDs per node.
>
>
>
> Thx,
> Robert.
>
>
>
>
>
> On Thu, May 21, 2020 at 10:34 AM Robert Raszuk <robert@raszuk.net> wrote:
>
> Ron,
>
>
>
> > Now recall that identifiers have node local significance.
>
>
>
> I was talking about case described in yr draft section 7:
>
>
>
> "Applications can:
>
>
>
>        o Allocate SIDs so that they have *domain-wide significance*."
>
>
>
> While not a must - it is an option. So I believe my observation stays
> valid till draft either removes that option or describes scaling properties
> differences between both domain wide and local significance of the SIDs.
>
>
>
> Thx,
>
> R.
>
>
>
>
>
> On Thu, May 21, 2020 at 4:01 AM Ron Bonica <rbonica@juniper.net> wrote:
>
> Robert,
>
>
>
> Consider the following network:
>
>
>
>    - Contains 65,000 routers
>    - Each router has 500 directly connected neighbors or fewer
>    - Uses 16-bit CRH
>
>
>
> In this network, each node might have 65,499 CRH-FIB entries:
>
>
>
>    - 64,999 CRH-FIB entries cause packets to follow the least-cost path
>    to another node in the domain
>    - 500 CRH-FIB entries cause packets to traverse a specific link to a
>    specific neighbor.
>
>
>
> As a mnemonic device, an operator might assign identifiers as follows:
>
>
>
>    - 0-65,000 identify CRH-FIB entries that cause packets to follow the
>    least-cost path to another node in the domain
>    - 65,001 – 65,565 identify CRH-FIB entries that that cause packets to
>    traverse a specific link to a specific neighbor.
>
>
>
> Now recall that identifiers have node local significance. So, Node A and
> Node B might both have a CRH-FIB entry that is identified by the value
> 65,001. However:
>
>
>
>    - The CRH-FIB entry on Node A causes packets to traverse a particular
>    link towards Node X
>    - The CRH-FIB entry on Node B causes packets to traverse a different
>    link towards Node Y.
>
>
>
> I think that this example refutes the premise of your argument, so there
> is not further need to address the conclusion.
>
>
>
>
> Ron
>
>
>
>
>
>
>
>
>
> Juniper Business Use Only
>
> *From:* Robert Raszuk <robert@raszuk.net>
> *Sent:* Wednesday, May 20, 2020 6:20 PM
> *To:* Ron Bonica <rbonica@juniper.net>
> *Cc:* 6man <6man@ietf.org>
> *Subject:* RE: Size of CR in CRH
>
>
>
> *[External Email. Be cautious of content]*
>
>
>
> HI,
>
>
>
> So just to make sure I understand this analogy of 16 bit -- 2^16 = 65536
> nodes. I think this is only on paper.
>
>
>
> Imagine I have 1000 routers so if I divide the 16 bit space by 1000 I get
> at most 65 local node behaviours if anyone would like to embed such into
> the SID.
>
>
>
> That means that if my router have more then 65 interfaces I am not able to
> steer packets by src route out of my router ... I must always depend on the
> lookup of next SID how to forward the packets.
>
>
>
> That also means that if I want to apply any form of NP in segment endpoint
> I am quite limited to the number of local functions I could use.
>
>
>
> To conclude - Let me restate to what I and others already said - flat SID
> space domain wide in mapping plane is a mistake. Yes this is like MPLS, but
> this does not make it great again due to that legacy.
>
>
>
> Many thx,
> R.
>
>