[PATCH net-next 0/2] Support for the ip6ip6 encapsulation of IOAM
From: Justin Iurman <hidden>
Date: 2021-09-28 19:03:53
In the current implementation, IOAM can only be inserted directly (i.e., only
inside packets generated locally) by default, to be compliant with RFC8200.
This patch adds support for in-transit packets and provides the ip6ip6
encapsulation of IOAM. Therefore, three explicit encap modes are defined:
- inline: directly inserts IOAM inside packets.
- encap: ip6ip6 encapsulation of IOAM inside packets.
- auto: either inline mode for packets generated locally or encap mode for
in-transit packets.
With current iproute2 implementation, it is configured this way:
$ ip -6 r [...] encap ioam6 trace prealloc type 0x800000 ns 1 size 12 [...]
Now, an encap mode must be specified:
(inline mode)
$ [...] encap ioam6 mode inline trace prealloc [...]
(encap mode)
$ [...] encap ioam6 mode encap tundst fc00::2 trace prealloc [...]
(auto mode)
$ [...] encap ioam6 mode auto tundst fc00::2 trace prealloc [...]
A tunnel destination address must be configured when using the encap mode or the
auto mode.
Justin Iurman (2):
ipv6: ioam: Add support for the ip6ip6 encapsulation
selftests: net: Test for the IOAM encapsulation with IPv6
include/net/ioam6.h | 3 +-
include/uapi/linux/ioam6_iptunnel.h | 19 +-
net/ipv6/Kconfig | 6 +-
net/ipv6/exthdrs.c | 2 +-
net/ipv6/ioam6.c | 11 +-
net/ipv6/ioam6_iptunnel.c | 299 ++++++++++++++++++++-------
tools/testing/selftests/net/ioam6.sh | 209 ++++++++++++++-----
7 files changed, 409 insertions(+), 140 deletions(-)
--
2.25.1