Joel,

> a host in an SRv6 domain must not have explicitly configured uSID
containers

I presume you wanted to say instead "not have" - "now have"

And if so I think it applies only to segment endpoints and only such
segment endpoint must know his own uSID isn't it ?

Is there any reason to that such segment endpoint should know uSIDs in
entire container/carrier ?

Thx,
R.




On Fri, Apr 5, 2024 at 4:26 PM Joel Halpern <j...@joelhalpern.com> wrote:

> <No Hats.>
>
> I think I understand your description.  At base, I think you are arguing
> that a compresssed container should be understood to be a representation of
> a segment list.  As a corollary of that, you are saying that the text in
> 9.1 means that a host in an SRv6 domain must not have explicitly configured
> uSID containers as destination addresses (either in config files, in
> manually entered destinations, or from DNS resolution>)  And that 9.1 is
> sufficiently clear that users or admins will not be surprised by failures?
>
> Yours,
>
> Joel
> On 4/5/2024 4:02 AM, Francois Clad wrote:
>
> Hi Joel,
>
> The current text of section 9.1 says:
>
> "When pinging a SID of this document without a segment list, the SR source
> node places the SID in the destination address of the ICMPv6 echo request
> and MUST set the Argument of the SID to 0. [...]"
>
> "When pinging a SID of this document via a segment list, the SR source
> node MUST construct the IPv6 packet as described in Section 6 and compute
> the ICMPv6 checksum as described in Section 6.5.”
>
> It seems to me that the two cases are explicitly spelled out.
>
> If I understand correctly, the system that you are referring to is
> steering traffic onto a segment list. Diagnostic packets should thus be
> handled in the same way (2nd case above). From a user perspective, the
> diagnostic tools (e.g., ping) are used with a compressed SRv6 SID-list in
> the same that they are used with any other SRv6 SID-list.
>
> Cheers,
> Francois
>
> On 4 Apr 2024 at 23:17:53, Joel Halpern <j...@joelhalpern.com> wrote:
>
>> <No Hats>
>>
>> A uSID container is a list of destination.  It can  e specified as a DA
>> without an SRH.  If I had a sysstme which was using that, and I was
>> having trouble, trying a ping with the uSID container as the DA would
>> seem to be an obvious diagnostic.   If we want to tell folks they cabn't
>> do that, it seems like we need to say so. The existing text Francois
>> points to seems too vague to expect folks to understand the limitation
>> (assuming there is such a limitation.)
>>
>> Yours,
>>
>> Joel
>>
>> On 4/4/2024 2:47 PM, Martin Vigoureux (Nokia) wrote:
>>
>> Joel,
>>
>>
>> do you mean specifying the sid *list* as the DA?
>>
>>
>> -m
>>
>>
>> Le 2024-04-04 à 19:26, jmh.direct a écrit :
>>
>> >
>>
>> > CAUTION:This is an external email. Please be very careful when
>>
>> > clicking links or opening attachments. See the URL nok.it/ext for
>>
>> > additional information.
>>
>> >
>>
>> > So you can't ping a uSID list by just specifying the uSID as the DA?
>>
>> > Yours,
>>
>> > Joel
>>
>> >
>>
>> >
>>
>> >
>>
>> > Sent via the Samsung Galaxy S20 FE 5G, an AT&T 5G smartphone
>>
>> >
>>
>> >
>>
>> > -------- Original message --------
>>
>> > From: Francois Clad <fclad.i...@gmail.com>
>>
>> > Date: 4/4/24 1:10 PM (GMT-05:00)
>>
>> > To: Joel Halpern <jmh.dir...@joelhalpern.com>
>>
>> > Cc: SPRING WG List <spring@ietf.org>, Robert Raszuk
>>
>> > <rob...@raszuk.net>, Andrew Alston - IETF <andrew-i...@liquid.tech>
>> <andrew-i...@liquid.tech>
>>
>> > Subject: Re: [spring] C-SIDs and upper layer checksums
>>
>> > (draft-ietf-spring-srv6-srh-compression)
>>
>> >
>>
>> > Hi Joel,
>>
>> >
>>
>> > One can ping a SID of this document without a segment list by simply
>>
>> > running the ping command with that SID as an argument (2nd paragraph
>>
>> > of section 9.1).
>>
>> >
>>
>> > To ping a SID of this document via a SID list, one needs to configure
>>
>> > the originator node to impose that SID list, like any other SRv6 SID
>>
>> > list.
>>
>> >
>>
>> > Hope this helps.
>>
>> >
>>
>> > Cheers,
>>
>> > Francois
>>
>> >
>>
>> >
>>
>> > On 4 Apr 2024 at 16:29:11, Joel Halpern <jmh.dir...@joelhalpern.com
>>
>> > <mailto:jmh.dir...@joelhalpern.com>> wrote:
>>
>> >>
>>
>> >> <No Hats>
>>
>> >>
>>
>> >> It seems that the text you quote requires that the ping code or
>>
>> >> kernel code know that the user has specified a uSID for the ping
>>
>> >> DA.   Maybe I am missing something, but it is not obvious to me how
>>
>> >> that would be achieved?  And does seem to imply that an unmodified
>>
>> >> ping will get incompatible and unexpected results?
>>
>> >>
>>
>> >> Yours,
>>
>> >>
>>
>> >> Joel
>>
>> >>
>>
>> >> On 4/4/2024 10:23 AM, Francois Clad wrote:
>>
>> >>> Hi Joel,
>>
>> >>>
>>
>> >>> The ping behavior is described in section 9.1 of the draft
>>
>> >>> (
>> https://www.ietf.org/archive/id/draft-ietf-spring-srv6-srh-compression-14.html#section-9.1
>> ).
>>
>> >>>
>>
>> >>> Specifically,
>>
>> >>> "When pinging a SID of this document via a segment list, the SR
>>
>> >>> source node MUST construct the IPv6 packet as described in Section
>>
>> >>> 6 and compute the ICMPv6 checksum as described in Section 6.5."
>>
>> >>>
>>
>> >>> Please let me know if anything in this text is not clear.
>>
>> >>>
>>
>> >>> Thanks,
>>
>> >>> Francois
>>
>> >>>
>>
>> >>> On 4 Apr 2024 at 16:10:11, Joel Halpern
>>
>> >>> <jmh.dir...@joelhalpern.com> wrote:
>>
>> >>>>
>>
>> >>>> <No Hat>
>>
>> >>>>
>>
>> >>>> Does this mean that if I have a source and destiantion host inside
>>
>> >>>> an SRv6 domain, and I am trying to verify a uSID path between
>>
>> >>>> them, so I issue the command ping <usUD-DA>, it will fail?  Given
>>
>> >>>> that we have documents describing the use of ping and traceroute
>>
>> >>>> with SRv6, shouldn't the comrpession document say someething about
>>
>> >>>> this?
>>
>> >>>>
>>
>> >>>> Your,s
>>
>> >>>>
>>
>> >>>> Joel
>>
>> >>>>
>>
>> >>>> On 4/4/2024 9:59 AM, Francois Clad wrote:
>>
>> >>>>> Hi Andrew,
>>
>> >>>>>
>>
>> >>>>> The originator (TX Linux box in your case) acting as an SR source
>>
>> >>>>> node for C-SID must follow the entire Section 6 of
>>
>> >>>>> draft-ietf-spring-srv6-srh-compression, including section 6.5
>>
>> >>>>> about the checksum calculation. One cannot expect it to work if
>>
>> >>>>> it only implements half of it.
>>
>> >>>>>
>>
>> >>>>> On the receive side, there is nothing special to do. The DA in
>>
>> >>>>> the received IPv6 header is the one that was used for the
>>
>> >>>>> checksum calculation.
>>
>> >>>>>
>>
>> >>>>> I do not see anything broken.
>>
>> >>>>>
>>
>> >>>>> Cheers,
>>
>> >>>>> Francois
>>
>> >>>>>
>>
>> >>>>> On 4 Apr 2024 at 15:32:12, Andrew Alston - IETF
>>
>> >>>>> <andrew-i...@liquid.tech> <andrew-i...@liquid.tech> wrote:
>>
>> >>>>>>
>>
>> >>>>>> So in investgiating this further, there is a further problem.
>>
>> >>>>>>
>>
>> >>>>>> I’ve checked on 4 different linux boxes with 4 different network
>>
>> >>>>>> cards.
>>
>> >>>>>>
>>
>> >>>>>> Linux by default offloads TX checksumming on a lot of network
>>
>> >>>>>> cards.  If you originate a packet with a microsid and no SRH –
>>
>> >>>>>> and the linux box offloads the checksum generation – the
>>
>> >>>>>> checksum generated by the NIC will be incorrect – and when the
>>
>> >>>>>> packet arrives at the end host – if that end host is running RX
>>
>> >>>>>> checksumming – the checksum will fail and the packet will be
>>
>> >>>>>> dropped.
>>
>> >>>>>>
>>
>> >>>>>> If you disable TX checksumming – the kernel will have no way to
>>
>> >>>>>> tell if the packet is an Ipv6 or a microsid packet, it will
>>
>> >>>>>> therefore use the DA – and generate an incorrect checksum.
>>
>> >>>>>> Again – if RX checksumming is enabled on the receiving end point
>>
>> >>>>>> – the packet will get dropped.
>>
>> >>>>>>
>>
>> >>>>>> Effectively this does NOT just affect middle boxes – it effects
>>
>> >>>>>> anything generating a packet directed to a microsid that either
>>
>> >>>>>> offloads the tx to hardware (whichi will have no clue this is a
>>
>> >>>>>> microsid) or in the alternative is generating tx checksums
>>
>> >>>>>> itself via kernel mechanisms that will treat these packets as
>>
>> >>>>>> standard Ipv6 packets.
>>
>> >>>>>>
>>
>> >>>>>> This is broken – severely broken.
>>
>> >>>>>>
>>
>> >>>>>> Andrew
>>
>> >>>>>>
>>
>> >>>>>> *
>>
>> >>>>>> *
>>
>> >>>>>>
>>
>> >>>>>> *
>>
>> >>>>>>
>>
>> >>>>>> Internal All Employees
>>
>> >>>>>>
>>
>> >>>>>> From: *spring <spring-boun...@ietf.org> on behalf of Francois
>>
>> >>>>>> Clad <fclad.i...@gmail.com>
>>
>> >>>>>> *Date: *Thursday, 4 April 2024 at 14:49
>>
>> >>>>>> *To: *Joel Halpern <jmh.dir...@joelhalpern.com>
>>
>> >>>>>> *Cc: *SPRING WG List <spring@ietf.org>, Robert Raszuk
>>
>> >>>>>> <rob...@raszuk.net>
>>
>> >>>>>> *Subject: *Re: [spring] C-SIDs and upper layer checksums
>>
>> >>>>>> (draft-ietf-spring-srv6-srh-compression)
>>
>> >>>>>>
>>
>> >>>>>>
>>
>> >>>>>>
>>
>> >>>>>> Some people who received this message don't often get email from
>>
>> >>>>>> fclad.i...@gmail.com. Learn why this is important
>>
>> >>>>>> <https://aka.ms/LearnAboutSenderIdentification>
>>
>> >>>>>>
>>
>> >>>>>>
>>
>> >>>>>>
>>
>> >>>>>> CAUTION: This email has originated from a free email service
>>
>> >>>>>> commonly used for personal email services, please be guided
>>
>> >>>>>> accordingly especially if this email is asking to click links or
>>
>> >>>>>> share information.
>>
>> >>>>>>
>>
>> >>>>>> Hi all,
>>
>> >>>>>>
>>
>> >>>>>> Section 6.5 of draft-ietf-spring-srv6-srh-compression specifies
>>
>> >>>>>> how an SR source node originating a packet with an upper layer
>>
>> >>>>>> checksum determines the Destination Address for use in the IPv6
>>
>> >>>>>> pseudo-header.
>>
>> >>>>>>
>>
>> >>>>>> As a co-author, I’d say that the current text of 6.5 is good.
>>
>> >>>>>>
>>
>> >>>>>> This text is aligned with RFC 8200. It only indicates how the
>>
>> >>>>>> text in Section 8.1 of RFC 8200 applies to the SIDs of
>>
>> >>>>>> draft-ietf-spring-srv6-srh-compression. This is necessary since
>>
>> >>>>>> RFC 8200 does not specify the format nor behavior of any source
>>
>> >>>>>> routing scheme.
>>
>> >>>>>>
>>
>> >>>>>> Thanks,
>>
>> >>>>>>
>>
>> >>>>>> Francois
>>
>> >>>>>>
>>
>> >>>>>> On 4 Apr 2024 at 00:10:55, Joel Halpern
>>
>> >>>>>> <jmh.dir...@joelhalpern.com> wrote:
>>
>> >>>>>>
>>
>> >>>>>>     I can not speak to the "norm" for other working groups.  The
>>
>> >>>>>>     SPRING charter is very specific about what we have to do if we
>>
>> >>>>>>     want to change an underlying protocol.  We have to go back to
>>
>> >>>>>>     the WG which owns that protocol.
>>
>> >>>>>>
>>
>> >>>>>>     6man gets to decide if the change is acceptable, and if it is
>>
>> >>>>>>     acceptable how it is to be represented.  SPRINGs job is to
>>
>> >>>>>>     make sure we are asking the question we intend.
>>
>> >>>>>>
>>
>> >>>>>>     Yours,
>>
>> >>>>>>
>>
>> >>>>>>     Joel
>>
>> >>>>>>
>>
>> >>>>>>     On 4/3/2024 6:05 PM, Robert Raszuk wrote:
>>
>> >>>>>>
>>
>> >>>>>>         Ok Joel,
>>
>> >>>>>>
>>
>> >>>>>>         Thank you for this clarification.
>>
>> >>>>>>
>>
>> >>>>>>         To me the actual spirit of RFC8200 8.1 is to say that it
>>
>> >>>>>>         is ok to compute the checksum by the src such that it
>>
>> >>>>>>         comes out right at the final destination.
>>
>> >>>>>>
>>
>> >>>>>>         But I guess we can have different opinions about that.
>>
>> >>>>>>
>>
>> >>>>>>         But what I find specifically surprising here is that it is
>>
>> >>>>>>         a norm in IETF to have new specifications
>>
>> >>>>>>         defining protocol extensions and their behaviour and never
>>
>> >>>>>>         go back to the original protocol RFC to check if this is
>>
>> >>>>>>         ok or not. If that would not be a normal process I bet we
>>
>> >>>>>>         would still be using classful IPv4 routing all over the
>>
>> >>>>>>         place.
>>
>> >>>>>>
>>
>> >>>>>>         Regards,
>>
>> >>>>>>
>>
>> >>>>>>         Robert
>>
>> >>>>>>
>>
>> >>>>>>         On Wed, Apr 3, 2024 at 11:28 PM Joel Halpern
>>
>> >>>>>>         <j...@joelhalpern.com> wrote:
>>
>> >>>>>>
>>
>> >>>>>>             The concern with regard to the text that the chairs
>>
>> >>>>>>             are asking about is not about intermediate nodes
>>
>> >>>>>>             verifying the checksum.  The text does not talk aabout
>>
>> >>>>>>             that, so we are not asking about that.
>>
>> >>>>>>
>>
>> >>>>>>             But, the text in 8200 specifies how the originating
>>
>> >>>>>>             node is to compute the upper layer checksum.  It
>>
>> >>>>>>             doesn't say "do whatever you need to do to make the
>>
>> >>>>>>             destination come out right".  It provides specific
>>
>> >>>>>>             instructions.  Yes, it is understandable that those
>>
>> >>>>>>             instructions do not cover the compressed container
>>
>> >>>>>>             cases.  Which is why the compression document
>>
>> >>>>>>             specifies changes to those procedures.
>>
>> >>>>>>
>>
>> >>>>>>             Thus, we need to ask 6man how they want to handle the
>>
>> >>>>>>             change in the instructions in 8200.
>>
>> >>>>>>
>>
>> >>>>>>             the question we are asking SPRING is whether there is
>>
>> >>>>>>             any clarification people want to the text in the
>>
>> >>>>>>             compression draft before we send the question over to
>>
>> >>>>>>             6man.
>>
>> >>>>>>
>>
>> >>>>>>             Yours,
>>
>> >>>>>>
>>
>> >>>>>>             Joel
>>
>> >>>>>>
>>
>> >>>>>>             On 4/3/2024 5:15 PM, Robert Raszuk wrote:
>>
>> >>>>>>
>>
>> >>>>>>                 Hi Joel,
>>
>> >>>>>>
>>
>> >>>>>>                 My interpretation of text from RFC8200 is that it
>>
>> >>>>>>                 allows discrepancy between the header and the
>>
>> >>>>>>                 upper layer checksum as long as final packet's
>>
>> >>>>>>                 destination sees the correct one.
>>
>> >>>>>>
>>
>> >>>>>>                 The last condition is met.
>>
>> >>>>>>
>>
>> >>>>>>                 So I see no issue.
>>
>> >>>>>>
>>
>> >>>>>>                 Sure RFC8200 does not talk about SRH nor cSIDs,
>>
>> >>>>>>                 but provides a hint on how to handle such future
>>
>> >>>>>>                 situations.
>>
>> >>>>>>
>>
>> >>>>>>                 With that being said I would like to still
>>
>> >>>>>>                 understand what real problem are we hitting here
>>
>> >>>>>> ...
>>
>> >>>>>>
>>
>> >>>>>>                 Kind regards,
>>
>> >>>>>>
>>
>> >>>>>>                 Robert
>>
>> >>>>>>
>>
>> >>>>>>                 On Wed, Apr 3, 2024 at 11:09 PM Joel Halpern
>>
>> >>>>>>                 <j...@joelhalpern.com> wrote:
>>
>> >>>>>>
>>
>> >>>>>>                     There are two cases covered in section 6.5 of
>>
>> >>>>>>                     the compression draft that appear to be at
>>
>> >>>>>>                     variance with secton 8.1 of RFC 8200.
>>
>> >>>>>>
>>
>> >>>>>>                     First, if the final destination in the routing
>>
>> >>>>>>                     header is a compressed container, then the
>>
>> >>>>>>                     ultimate destination address will not be the
>>
>> >>>>>>                     same as the final destination shown in the
>>
>> >>>>>>                     routing header.
>>
>> >>>>>>
>>
>> >>>>>>                     Second, if a uSID container is used as the
>>
>> >>>>>>                     destination address and no SRH is present,
>>
>> >>>>>>                     then in addition to the above problem there is
>>
>> >>>>>>                     no routing header to trigger the behavior
>>
>> >>>>>>                     described.
>>
>> >>>>>>
>>
>> >>>>>>                     Yours,
>>
>> >>>>>>
>>
>> >>>>>>                     Joel
>>
>> >>>>>>
>>
>> >>>>>>                     On 4/3/2024 4:22 PM, Robert Raszuk wrote:
>>
>> >>>>>>
>>
>> >>>>>>                         Hi Alvaro,
>>
>> >>>>>>
>>
>> >>>>>>                             Section 6.5 of
>>
>> >>>>>> draft-ietf-spring-srv6-srh-compression
>>
>> >>>>>>                             describes the
>>
>> >>>>>>                             behavior when an originating node
>>
>> >>>>>>                             inside an SRv6 domain creates a
>>
>> >>>>>>                             packet with a C-SID as the final
>>
>> >>>>>>                             destination. _This description differs
>>
>> >>>>>>                             from the text in Section 8.1 of
>>
>> >>>>>> RFC8200._
>>
>> >>>>>>
>>
>> >>>>>>                         I would like you to clarify the above
>>
>> >>>>>>                         statement - specifically of the last
>>
>> >>>>>>                         sentence.
>>
>> >>>>>>
>>
>> >>>>>>                         Reason for this that after looking at both
>>
>> >>>>>>                         drafts I find section 6.5 of the subject
>>
>> >>>>>>                         draft to be exactly in line with RFC8200
>>
>> >>>>>>                         section 8.1 especially with the paragraf
>>
>> >>>>>>                         which says:
>>
>> >>>>>>
>>
>> >>>>>>                         *         If the IPv6 packet contains a
>>
>> >>>>>>                         Routing header, the Destination
>>
>> >>>>>>                                  Address used in the pseudo-header
>>
>> >>>>>>                         is that of the final
>>
>> >>>>>>                                  destination.  At the originating
>>
>> >>>>>>                         node, that address will be in
>>
>> >>>>>>                                  the last element of the Routing
>>
>> >>>>>>                         header; at the recipient(s),
>>
>> >>>>>>                                  that address will be in the
>>
>> >>>>>>                         Destination Address field of the
>>
>> >>>>>>                                  IPv6 header.*
>>
>> >>>>>>
>>
>> >>>>>>                         So before we dive into solutions (as
>>
>> >>>>>>                         Andrew has already provided a few of) I
>>
>> >>>>>>                         think we should first agree on what
>>
>> >>>>>>                         precise problem are we solving here ?
>>
>> >>>>>>
>>
>> >>>>>>                         Many thx,
>>
>> >>>>>>
>>
>> >>>>>>                         Robert
>>
>> >>>>>>
>>
>> >>>>>>                         PS. As a side note I spoke with my
>>
>> >>>>>>                         hardware folks - just to check if
>>
>> >>>>>>                         validation of upper-layer checksum is even
>>
>> >>>>>>                         an option for transit nodes. The answer is
>>
>> >>>>>>                         NO as most data plane hardware can read at
>>
>> >>>>>>                         most 256 bytes of packets. So unless there
>>
>> >>>>>>                         is some specialized hardware processing up
>>
>> >>>>>>                         to 9K packets in hardware at line rates
>>
>> >>>>>>                         this entire discussion about checksum
>>
>> >>>>>>                         violations, fears of firing appeals is
>>
>> >>>>>>                         just smoke.
>>
>> >>>>>>
>>
>> >>>>>>     _______________________________________________
>>
>> >>>>>>     spring mailing list
>>
>> >>>>>>     spring@ietf.org
>>
>> >>>>>>     https://www.ietf.org/mailman/listinfo/spring
>>
>> >>>>>>
>>
>> >
>>
>> > _______________________________________________
>>
>> > spring mailing list
>>
>> > spring@ietf.org
>>
>> > https://www.ietf.org/mailman/listinfo/spring
>>
>>
>> _______________________________________________
>>
>> spring mailing list
>>
>> spring@ietf.org
>>
>> https://www.ietf.org/mailman/listinfo/spring
>>
>>
>> _______________________________________________
>> spring mailing list
>> spring@ietf.org
>> https://www.ietf.org/mailman/listinfo/spring
>>
> _______________________________________________
> spring mailing list
> spring@ietf.org
> https://www.ietf.org/mailman/listinfo/spring
>
_______________________________________________
spring mailing list
spring@ietf.org
https://www.ietf.org/mailman/listinfo/spring

Reply via email to