seg6: add support for SRv6 H.L2Encaps.Red behavior
authorAndrea Mayer <andrea.mayer@uniroma2.it>
Wed, 27 Jul 2022 18:54:06 +0000 (20:54 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 29 Jul 2022 11:14:03 +0000 (12:14 +0100)
commit13f0296be8ece1189cbc4383a45ba97cafaecc09
treedfdf50120c363846b61b6afcb4428bae4b504aff
parentb07c8cdbe918aa17da864da9a89b22afaed0393e
seg6: add support for SRv6 H.L2Encaps.Red behavior

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

H.L2Encaps.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.4
[2] - https://datatracker.ietf.org/doc/html/rfc8986#section-5.3

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