netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [net-next 0/3] seg6: add PSP flavor support for SRv6 End behavior
@ 2023-02-15 13:46 Andrea Mayer
  2023-02-15 13:46 ` [net-next 1/3] seg6: factor out End lookup nexthop processing to a dedicated function Andrea Mayer
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Andrea Mayer @ 2023-02-15 13:46 UTC (permalink / raw)
  To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	David Ahern, Shuah Khan, linux-kernel, netdev, linux-kselftest
  Cc: Stefano Salsano, Paolo Lungaroni, Ahmed Abdelsalam, Andrea Mayer

Segment Routing for IPv6 (SRv6 in short) [1] is the instantiation of the
Segment Routing (SR) [2] architecture on the IPv6 dataplane. 
In SRv6, the segment identifiers (SID) are IPv6 addresses and the segment list
(SID List) is carried in the Segment Routing Header (SRH). A segment may be
bound to a specific packet processing operation called "behavior". The RFC8986
[3] defines and standardizes the most common/relevant behaviors for network
operators, e.g., End, End.X and End.T and so on.

The RFC8986 also introduces the "flavors" framework aiming to modify or extend
the capabilities of SRv6 End, End.X and End.T behaviors. Specifically, these
behaviors support the following flavors (either individually or in
combinations):
 - Penultimate Segment Pop (PSP);
 - Ultimate Segment Pop (USP);
 - Ultimate Segment Decapsulation (USD).

Such flavors enable an End/End.X/End.T behavior to pop the SRH on the
penultimate/ultimate SR endpoint node listed in the SID List or to perform a
full decapsulation.

Currently, the Linux kernel supports a large subset of behaviors described in
RFC8986, including the End, End.X and End.T. However, PSP, USP and USD flavors
have not yet been implemented.

In this patchset, we extend the SRv6 subsystem to implement the PSP flavor in
the SRv6 End behavior. To accomplish this task, we leverage the flavor
framework previously introduced by another patchset required for supporting the
efficient representation of the SID List through the NEXT-C-SID mechanism [4].

In details, the patchset is made of:
 - patch 1/3: seg6: factor out End lookup nexthop processing to a dedicated 
              function
 - patch 2/3: seg6: add PSP flavor support for SRv6 End behavior
 - patch 3/3: selftests: seg6: add selftest for PSP flavor in SRv6 End 
              behavior

From the user space perspective, we do not need to change the iproute2 code to
support the PSP flavor. However, we provide the man page for the PSP flavor in
a separate patch.

Comments, improvements and suggestions are always appreciated.

Thank you all,
Andrea

[1] - RFC8754: https://datatracker.ietf.org/doc/html/rfc8754
[2] - RFC8402: https://datatracker.ietf.org/doc/html/rfc8402
[3] - RFC8986: https://datatracker.ietf.org/doc/html/rfc8986
[4] - https://datatracker.ietf.org/doc/html/draft-ietf-spring-srv6-srh-compression

Andrea Mayer (3):
  seg6: factor out End lookup nexthop processing to a dedicated function
  seg6: add PSP flavor support for SRv6 End behavior
  selftests: seg6: add selftest for PSP flavor in SRv6 End behavior

 net/ipv6/seg6_local.c                         | 352 ++++++-
 tools/testing/selftests/net/Makefile          |   1 +
 .../selftests/net/srv6_end_flavors_test.sh    | 869 ++++++++++++++++++
 3 files changed, 1213 insertions(+), 9 deletions(-)
 create mode 100755 tools/testing/selftests/net/srv6_end_flavors_test.sh

-- 
2.20.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2023-02-16 14:40 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-15 13:46 [net-next 0/3] seg6: add PSP flavor support for SRv6 End behavior Andrea Mayer
2023-02-15 13:46 ` [net-next 1/3] seg6: factor out End lookup nexthop processing to a dedicated function Andrea Mayer
2023-02-16  6:06   ` David Ahern
2023-02-15 13:46 ` [net-next 2/3] seg6: add PSP flavor support for SRv6 End behavior Andrea Mayer
2023-02-16  6:07   ` David Ahern
2023-02-15 13:46 ` [net-next 3/3] selftests: seg6: add selftest for PSP flavor in " Andrea Mayer
2023-02-16  6:10   ` David Ahern
2023-02-16 14:40 ` [net-next 0/3] seg6: add PSP flavor support for " patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).