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

Reply via email to