On 20-Oct-21 05:02, Tom Herbert wrote:
> 
> 
> On Tue, Oct 19, 2021, 12:10 AM Mark Smith <markzzzsm...@gmail.com 
> <mailto:markzzzsm...@gmail.com>> wrote:
> 
>     Hi Brian,
> 
>     On Tue, 19 Oct 2021 at 15:51, Brian E Carpenter
>     <brian.e.carpen...@gmail.com <mailto:brian.e.carpen...@gmail.com>> wrote:
>     >
>     > Hi,
>     >
>     > After reading a lot of messages, I'm going to offer my considered
>     > opinion as a direct response to Joel's OP.
>     >
>     > Firstly, I don't believe that in the end this draft raises any
>     > concerns that are *significantly* different than those raised
>     > when RFC 8986 was in draft. As Ted Hardie mentioned, section 5
>     > of RFC 8754 explains that SIDs of any shape or size are only
>     > meaningful within an SR domain. That applies to srh-compression
>     > too.
>     >
>     > Secondly, I was concerned about how these strange looking
>     > "addresses" would potentially interfere with normal IPv6
>     > addresses and their handling by normal IPv6 nodes. Well, I
>     > now believe that they won't. The reason is that in the SR model
>     > these "addresses" are *never used for final delivery of IPv6
>     > packets to a host.* All SRv6 participants are routers. The
>     > last hop for a packet whose DA is set to (say) 2001:db8:a:1900::
>     > is *not* the last hop on a LAN, mediated by neighbor discovery
>     > for 2001:db8:a:1900::. It's just a hop from one router to another,
>     > using the entry for 2001:db8:a:1900::/64 in the FIB of the last
>     > router that actually forwards the packet. 2001:db8:a:1900:: is
>     > not assigned to a physical interface so RFC 4861 is never invoked.
>     >
> 
>     So I'm guessing you're probably thinking of a router as a physical
>     device (as most of us will by default), rather than as routing as a
>     function.
> 
>     RFC8200 definitions:
> 
>     "router       a node that forwards IPv6 packets 
not explicitly
>                     addressed to itself.  (See Note below.)
> 
>        host         any node that is 
not a router.  (See Note below.)"
>     (the note is about hosts having multiple interfaces)
> 
>     (A node doesn't have to be a device, and a device doesn't have to be
>     physical, so the above are really function descriptions.)
> 
>     If a router as a physical device has IPv6 addresses that are sent to
>     the device itself, then the router as a physical device is also
>     performing host functions. For packets with those "router addresses",
>     the router as a physical device is not "forward[ing] IPv6 packets not
>     explicitly addressed to itself. "
> 
>     In a router as a physical device, the forwarding plane is performing
>     the router function above. In a router as a physical device, the
>     "control plane" (really just a fancy name for a host) is performing
>     host functions on packets that are directly to and from it (BGP, OSPF,
>     SSH, SNMP etc. packets).
> 
>     The consequence is that all IPv6 addresses are host addresses, and all
>     processing of packets at the device that holds a packet's DA is host
>     processing of the packet.
> 
>     It is the same in IPv4  - from RFC791, "The internet protocol provides
>     for transmitting blocks of data called datagrams from sources to
>     destinations, where sources and destinations are hosts identified by
>     fixed length addresses."
> 
>     So these packets with CSID rotating IPv6 DAs are being host processed
>     by the router (as a device), after the forwarding plane in the router
>     (as a device) has forwarded the packet to the colocated host function.
> 
>     (A more practical example to support the above observation. If a
>     router as a device is bought from a router vendor, and then is run as
>     a BGP route reflector, meaning it is never in a packet forwarding
>     path, and therefore never "forwards IPv6 packets not explicitly
>     addressed to itself" is the router device still a router? Functionally
>     no, it is a host, even though it looks like a router (as a device).)
> 
> 
> Mark,
> 
> On the other hand, when a node is processing a routing it header it does 
> forward packets addressed to it self (but not being the final destination). 
> Processing a router header is intuitively router functionality and not host 
> functionality. The RFC8200 definition of host and router don't seem to 
> consider routing headers, perhaps this should be amended to say that a host 
> is the final destination of the packet.

That is the case even if the host is also a router and if it recognises the DA 
of a packet delivered to it in its role as a router as a DA that it 
handles in its role as a host. (In Linux jargon, that means "if the DA is 
assigned to its loopback interface", but that is an implementation detail.)

The point here is that the *previous* router doesn't know that the DA is 
assigned that way; it just forwards the packet to whoever announced the 
longest-matching prefix. It *does not* send the packet to DA.

   Brian

> 
> Tom
> 
> 
>     Regards,
>     Mark.
> 
>     > Another way to say it is RFC 7608 is the relevant architectural
>     > standard. CIDR rules, even within an SR domain.
>     >
>     > For that reason, the fact that the bottom 64 bits in the
>     > "address" look funny or change is simply irrelevant. They are
>     > invisible to routing (which is done based on the prefix)
>     > and invisible to neighbor discovery (because it never happens).
>     >
>     > I apologise if this is all obvious to everybody, but I needed
>     > to spell it out for my own understanding.
>     >
>     > Now back to Joel's questions:
>     >
>     >
>     > On 13-Oct-21 20:37, Joel M. Halpern wrote:
>     > > There is a typo in the below which if not understood as a typo would 
> be
>     >
>     > > quite confusing.   I wrote that I raised the issue with
>     > > "with the Internet ADs and SPRING chairs".
>     > > That should have read "with the Internet ADs and 6man chairs".
>     > > The SPRING co-chairs are recused, and the charter requirement leads to
>     > > the 6man chairs.  Which is who I talked to.
>     > >
>     > > Also, I am sending a courtesy copy to the routing ADs, which I should
>     > > have done originally.
>     > >
>     > > Thank you and enjoy.
>     > > Yours,
>     > > Joel
>     > >
>     > > On 10/12/2021 11:52 PM, Joel M. Halpern wrote:
>     > >> The SPRING working group is in the midst of an adoption call on
>     > >> 
> https://datatracker.ietf.org/doc/draft-filsfilscheng-spring-srv6-srh-compression/
>  
> <https://datatracker.ietf.org/doc/draft-filsfilscheng-spring-srv6-srh-compression/>.
>     > >>
>     > >>
>     > >> The SPRING charter has text that is explicit that modifications to 
> data
>     > >> planes and architectures standardized by other working groups may 
> not be
>     > >> modified in SPRING unless the chairs and ADs responsible for that 
> data
>     >
>     > >> plane and / or architecture agree.
>     > >>
>     > >> To complete the context, as my SPRING co-chairs are co-authors 
on the
>     > >> document in question, they have recused themselves from decisional
>     > >> activities regarding the document.  Therefore, this message is coming
>     > >> just from my as the responsible SPRING co-chair managing this 
> adoption
>     >
>     > >> call.
>     > >>
>     > >> As you have seen, multiple questions have been raised about the
>     > >> relationship of the document to the IPv6 defined data plane and
>     > >> architecture (particularly RFC 4291 and 8200). In particular the
>     > >> questions seem to revolve around what the document describes as the
>     > >> NEXT-C-SID flavor of compressed SID, and its relationship to the IPv6
>     > >> standards.  (For those seeking more context without reading the full
>     > >> document, a paraphrase and simplification of the NEXT-C_SID flavor is
>     > >> provided as a postscript.)
>     > >>
>     > >> I raised the question of concurrence as required by the SPRING 
charter
>     >
>     > >> with the Internet ADs and SPRING chairs.  They quite reasonably 
> asked me
>     > >> to write a note to 6man explaining the concerns as clearly as a can, 
> so
>     > >> that they can then determine how to proceed.
>     > >>
>     > >> The questions that prompted my inquiry are:
>     > >>
>     > >> 1) Does the placement of a list of sids in the IPv6 DA field change 
> the
>     > >> IPv6 architectural description of that field.
>     >
>     > I think it should be noted explicitly somewhere that since the contents
>     > of the DA field are *never* used for last-hop neighbor discovery,
>     > the IID aspect of RFC 4291 is irrelevant, and RFC 4861 + RFC 5942
>     > are irrelevant. Another citation is RFC 7608: for routing, all that
>     > counts is the prefix, and it can be anything up to 128.
>     >
>     > Perhaps this should have been in section 5 of RFC 8754, but I leave
>     > that to the wordsmiths.
>     >
>     > >> 2) Does the operation of shifting information around in the IPv6
>     > >> destination address field represent a modification or extension of 
> the
>     >
>     > >> IPv6 data plane.
>     >
>     > No. As my text above indicates, the SRv6 DA field is only ever used
>     > by routing, where RFC 7608 rules. And of course it vanishes as soon
>     > as the packet is decapsulated.
>     >
>     > Regards
>     >     Brian
>     >
>     > >>
>     > >> On a related note, the document in question also defines two other
>     > >> flavors, REPLACE-C-SID, and NEXT-and-REPLACE-C-SID.  The
>     > >> NEXT-and-REPLACE-C_SID flavor is defined to include the NEXT-C_SID
>     > >> flavor operation, so seems to be affected by the same question.
>     > >>
>     > >>  From my own reading, it appears that the REPLACE-C-SID flavor does 
> not
>     > >> raise issues requiring 6man leadership concurrence.
>     > >>
>     > >> Yours,
>     > >> Joel M. Halpern for the SPRING working group
>     > >>
>     > >>
>     > >> PS:
>     > >> Clearly, understanding the question requires some understanding of 
> what
>     > >> the NEXT-C_SID flavor does.   This explanation is a simplification 
> for
>     > >> length and context.  Really, the best place to understand 
it is the
>     > >> draft.  However, to give you enough information to let you decide
>     >
>     > >> whether you care, I will try to provide a fair summary.  My 
> apologies in
>     > >> advance to the authors for necessary liberties for length.  
Also,
>     >
>     > >> discussion of the draft contents (as distinct from the interaction 
> with
>     > >> the IPv6 data plane and architecture) belongs on the SPRING list, and
>     > >> should not clutter up 6man.
>     > >>
>     > >> SIDs are the identifiers used in segment routing.
>     > >> In SRv6, as document in the current RFCs, these are 128 bits.   As
>     > >> defined in the relevant RFCs, SIDs which identify endpoints to 
which
>     > >> packets are directed are identified by endpoint SIDs.  These can have
>     > >> behaviors (decapsulate and forward is one example).  They 
can have
>     > >> flavors such as where the SRH is removed.
>     > >>
>     > >> The topic under discussion is means to compress these SIDs in the
>     > >> packets on the wire.  The document under discussion provides three
>     > >> flavors of compression.
>     > >>
>     > >> The fundamental mechanism of the draft is to use a single SRH entry 
> as
>     > a
>     > >> container for multiple SIDs.  In the NEXT-C_SID mechanism, when it is
>     > >> first encountered the entire container is copied into the desination
>     > >> address of the IPv6 packet.  The container has a common routing 
> prefix
>     > >> used for all the NEXT-C-SID SIDs.  It is followed by a sequence of
>     > >> compressed SIDs of a configured length.  One could configure 16, 24, 
> or
>     > >> 32 bits.  Or whatever length.  The routing advertisements are 
> arranged
>     > >> so that the IPv6 packet is directed to the node represented by 
the first
>     > >> compressed SID on the basis of longest prefix match matching the
>     > >> combination of the common routing prefix and that compressed SID.
>     > >>
>     > >> When the packet arrives at that node, it looks up the configured
>     > >> portion, the compressed SID, and determines the behavior and flavor. 
>  In
>     > >> the case of the NEXT-C-SID flavor, the resulting operation is to 
> shift
>     >
>     > >> the entire remaining contents of the IPv6 address (the bits past the
>     > >> first compressed sid) so as to over-write the first compressed 
SID.  0
>     > >> bits are shifted into the low order positions.  If the result is a
>     > >> non-zero new first compressed SID, then the packets is forwarded and 
> the
>     > >> process repeats.  When all that is left are 0s, if there is an SRH, 
> it
>     > >> is consulted to find the next SRH entry, which is, per normal SRv6
>     > >> processing, put into the IPv6 DA.
>     > >> Note that in the common case where the SIDS needed all fit in to a
>     > >> single container, the analysis also assumes the use of the reduced
>     > >> encapsulation options which omits the SRH that is not needed as it 
> would
>     > >> have no entries.  This the packet contains a normal IPv6 header, 
> with a
>     > >> sequence of compressed SIDs (what one might or might not call a 
> source
>     >
>     > >> route) in the IPv6 destination address field.
>     > >>
>     > >> PPS: If the authors of the NEXT-C-SID flavor feel I have 
> mis-represented
>     > >> the work, please, send clarifications or corrections.   Again, the 
> best
>     > >> source of information is the draft itself.  I was asked to provide 
> extra
>     > >> context in this email.
>     > >
>     > > --------------------------------------------------------------------
>     > > IETF IPv6 working group mailing list
>     > > i...@ietf.org <mailto:i...@ietf.org>
>     > > Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6 
> <https://www.ietf.org/mailman/listinfo/ipv6>
>     > > --------------------------------------------------------------------
>     > >
>     >
>     > --------------------------------------------------------------------
>     > IETF IPv6 working group mailing list
>     > i...@ietf.org <mailto:i...@ietf.org>
>     > Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6 
> <https://www.ietf.org/mailman/listinfo/ipv6>
>     > --------------------------------------------------------------------
> 
>     --------------------------------------------------------------------
>     IETF IPv6 working group mailing list
>     i...@ietf.org <mailto:i...@ietf.org>
>     Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6 
<https://www.ietf.org/mailman/listinfo/ipv6>
>     --------------------------------------------------------------------
> 

_______________________________________________
spring mailing list
spring@ietf.org
https://www.ietf.org/mailman/listinfo/spring

Reply via email to