Re: [net] seg6: fix SRH processing to comply with RFC8754

From: David Miller
Date: Wed May 06 2020 - 20:22:15 EST


From: Ahmed Abdelsalam <ahabdels@xxxxxxxxx>
Date: Mon, 4 May 2020 14:42:11 +0000

> The Segment Routing Header (SRH) which defines the SRv6 dataplane is defined
> in RFC8754.
>
> RFC8754 (section 4.1) defines the SR source node behavior which encapsulates
> packets into an outer IPv6 header and SRH. The SR source node encodes the
> full list of Segments that defines the packet path in the SRH. Then, the
> first segment from list of Segments is copied into the Destination address
> of the outer IPv6 header and the packet is sent to the first hop in its path
> towards the destination.
>
> If the Segment list has only one segment, the SR source node can omit the SRH
> as he only segment is added in the destination address.
>
> RFC8754 (section 4.1.1) defines the Reduced SRH, when a source does not
> require the entire SID list to be preserved in the SRH. A reduced SRH does
> not contain the first segment of the related SR Policy (the first segment is
> the one already in the DA of the IPv6 header), and the Last Entry field is
> set to n-2, where n is the number of elements in the SR Policy.
>
> RFC8754 (section 4.3.1.1) defines the SRH processing and the logic to
> validate the SRH (S09, S10, S11) which works for both reduced and
> non-reduced behaviors.
>
> This patch updates seg6_validate_srh() to validate the SRH as per RFC8754.
>
> Signed-off-by: Ahmed Abdelsalam <ahabdels@xxxxxxxxx>

Applied, thanks.