[net-next v5 0/4] seg6: add support for SRv6 Headend Reduced

From: Andrea Mayer
Date: Wed Jul 27 2022 - 15:12:16 EST


This patchset adds support for SRv6 Headend behavior with Reduced
Encapsulation. It introduces the H.Encaps.Red and H.L2Encaps.Red versions
of the SRv6 H.Encaps and H.L2Encaps behaviors, according to RFC 8986 [1].

In details, the patchset is made of:
- patch 1/4: add support for SRv6 H.Encaps.Red behavior;
- Patch 2/4: add support for SRv6 H.L2Encaps.Red behavior;
- patch 2/4: add selftest for SRv6 H.Encaps.Red behavior;
- patch 3/4: add selftest for SRv6 H.L2Encaps.Red behavior.

The corresponding iproute2 patch for supporting SRv6 H.Encaps.Red and
H.L2Encaps.Red behaviors is provided in a separated patchset.

[1] - https://datatracker.ietf.org/doc/html/rfc8986

V4 -> v5:
- Fix skb checksum for SRH Reduced encapsulation/insertion;

- Improve selftests by:
i) adding a random suffix to network namespaces;
ii) creating net devices directly into network namespaces;
iii) using trap EXIT command to properly clean up selftest networks.

Thanks to Paolo Abeni.

v3 -> v4:
- Add selftests to the Makefile, thanks to Jakub Kicinski.

v2 -> v3:
- Keep SRH when HMAC TLV is present;

- Split the support for H.Encaps.Red and H.L2Encaps.Red behaviors in two
patches (respectively, patch 1/4 and patch 2/4);

- Add selftests for SRv6 H.Encaps.Red and H.L2Encaps.Red.

v1 -> v2:
- Fixed sparse warnings;

- memset now uses sizeof() instead of hardcoded value;

- Removed EXPORT_SYMBOL_GPL.

Andrea Mayer (4):
seg6: add support for SRv6 H.Encaps.Red behavior
seg6: add support for SRv6 H.L2Encaps.Red behavior
selftests: seg6: add selftest for SRv6 H.Encaps.Red behavior
selftests: seg6: add selftest for SRv6 H.L2Encaps.Red behavior

include/uapi/linux/seg6_iptunnel.h | 2 +
net/ipv6/seg6_iptunnel.c | 140 ++-
tools/testing/selftests/net/Makefile | 2 +
.../net/srv6_hencap_red_l3vpn_test.sh | 879 ++++++++++++++++++
.../net/srv6_hl2encap_red_l2vpn_test.sh | 821 ++++++++++++++++
5 files changed, 1842 insertions(+), 2 deletions(-)
create mode 100755 tools/testing/selftests/net/srv6_hencap_red_l3vpn_test.sh
create mode 100755 tools/testing/selftests/net/srv6_hl2encap_red_l2vpn_test.sh

--
2.20.1