seg6: add support for SRv6 H.Encaps.Red behavior
authorAndrea Mayer <andrea.mayer@uniroma2.it>
Wed, 27 Jul 2022 18:54:05 +0000 (20:54 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 29 Jul 2022 11:14:02 +0000 (12:14 +0100)
commitb07c8cdbe918aa17da864da9a89b22afaed0393e
treec1953c862b931d74fa1223f7b602c5652d7cf3a5
parent5b91884bf50b21d34bd3daa5c8f8b7e92e0a2c46
seg6: add support for SRv6 H.Encaps.Red behavior

The SRv6 H.Encaps.Red behavior described in [1] is an optimization of
the SRv6 H.Encaps behavior [2].

H.Encaps.Red reduces the length of the SRH by excluding the first
segment (SID) in the SRH of the pushed IPv6 header. The first SID is
only placed in the IPv6 Destination Address field of the pushed IPv6
header.
When the SRv6 Policy only contains one SID the SRH is omitted, unless
there is an HMAC TLV to be carried.

[1] - https://datatracker.ietf.org/doc/html/rfc8986#section-5.2
[2] - https://datatracker.ietf.org/doc/html/rfc8986#section-5.1

Signed-off-by: Andrea Mayer <andrea.mayer@uniroma2.it>
Signed-off-by: Anton Makarov <anton.makarov11235@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/uapi/linux/seg6_iptunnel.h
net/ipv6/seg6_iptunnel.c