|
|
Subscribe / Log in / New account

seg6: add support for SRv6 Headend Reduced

From:  Andrea Mayer <andrea.mayer-AT-uniroma2.it>
To:  "David S. Miller" <davem-AT-davemloft.net>, Hideaki YOSHIFUJI <yoshfuji-AT-linux-ipv6.org>, David Ahern <dsahern-AT-kernel.org>, Eric Dumazet <edumazet-AT-google.com>, Jakub Kicinski <kuba-AT-kernel.org>, Paolo Abeni <pabeni-AT-redhat.com>, Shuah Khan <shuah-AT-kernel.org>, Anton Makarov <anton.makarov11235-AT-gmail.com>, linux-kernel-AT-vger.kernel.org, netdev-AT-vger.kernel.org, linux-kselftest-AT-vger.kernel.org
Subject:  [net-next v5 0/4] seg6: add support for SRv6 Headend Reduced
Date:  Wed, 27 Jul 2022 20:54:04 +0200
Message-ID:  <20220727185408.7077-1-andrea.mayer@uniroma2.it>
Cc:  Stefano Salsano <stefano.salsano-AT-uniroma2.it>, Paolo Lungaroni <paolo.lungaroni-AT-uniroma2.it>, Ahmed Abdelsalam <ahabdels.dev-AT-gmail.com>, Andrea Mayer <andrea.mayer-AT-uniroma2.it>
Archive-link:  Article

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



Copyright © 2022, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds