Hi Andrew,

The originator of an IPv6 packet with a SID in its destination address is
an SR source node per RFC 8754. If this SID is one
of draft-ietf-spring-srv6-srh-compression, then the node must follow the SR
source node specification in section 6 of this document.

I am curious to know which Linux box would verify the upper-layer checksum
of transit packets by default (and drop them if unable to validate it). Can
you share any pointer (e.g., kernel version)?

In my testing on a Linux 5.15 node acting as a software router (default
config with only IPv6 forwarding enabled and a static route), those packets
were forwarded without any issue.

Thanks,
Francois


On 4 Apr 2024 at 16:27:51, Andrew Alston - IETF <andrew-i...@liquid.tech>
wrote:

> Francois,
>
>
>
> Node A sends packet to a microsid – without an SRH
>
>
>
>    1. The system by default and in all current implementations will have
>    no way to know it’s a microsid – TX checksumming would therefore break and
>    the packet would be dropped – irrespective of if its on hardware offload to
>    every NIC in existence or if the kernel is doing it – the kernel cannot
>    differentiate between a microsid outbound and a normal ipv6 address
>    2. If you get around (a) then the checksum is invalid in flight until
>    the end node – if you have a software router that is doing RX validation on
>    received packets – which – most linux boxes will do by default – the packet
>    will get dropped
>    3. If you get around (a) and assume that the linux box in question is
>    doing RX HW checksumming – same thing applies – the checksum will be
>    invalid according to the DA – and without an SRH it cannot calculate it
>
>
>
>
>
> This makes this entire thing incompatible with existing deployments of any
> software based routers out there based on bsd, linux and other such kernels
> – and is therefore – a direct violation of the spring charter which says
> that compatibility with existing deployments cannot be affected.
>
>
>
> Andrew
>
>
>
>
>
> * Internal All Employees From: *Francois Clad <fclad.i...@gmail.com>
> *Date: *Thursday, 4 April 2024 at 17:19
> *To: *Andrew Alston - IETF <andrew-i...@liquid.tech>
> *Cc: *SPRING WG List <spring@ietf.org>, Robert Raszuk <rob...@raszuk.net>,
> Joel Halpern <jmh.dir...@joelhalpern.com>
> *Subject: *Re: [spring] C-SIDs and upper layer checksums
> (draft-ietf-spring-srv6-srh-compression)
>
> 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.
>
>
>
> Andrew,
>
>
>
> What do you mean “in the middle”? Is this software router the SR source
> node, transit node, an intermediate SR segment endpoint, or the last SR
> segment endpoint node by RFC 8754 terminology?
>
>
>
> Thanks,
>
> Francois
>
>
>
> On 4 Apr 2024 at 16:07:31, Andrew Alston - IETF <andrew-i...@liquid.tech>
> wrote:
>
> Francois,
>
>
>
> So what happens with software routers in the middle that are doing rx
> offloading? The NIC’s will reject the packets.  And in a pure software
> router by default any software router will see an incorrect checksum – and
> reject the packet.  Because effectively in this case software routers are
> acting as middle boxes.
>
>
>
> Thanks
>
>
>
> Andrew
>
>
>
>
>
>
>
>
>
> Internal All Employees
>
> *From: *Francois Clad <fclad.i...@gmail.com>
> *Date: *Thursday, 4 April 2024 at 16:59
> *To: *Andrew Alston - IETF <andrew-i...@liquid.tech>
> *Cc: *SPRING WG List <spring@ietf.org>, Robert Raszuk <rob...@raszuk.net>,
> Joel Halpern <jmh.dir...@joelhalpern.com>
> *Subject: *Re: [spring] C-SIDs and upper layer checksums
> (draft-ietf-spring-srv6-srh-compression)
>
> 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 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>
> 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