ipv6: ioam: Support for IOAM injection with lwtunnels
authorJustin Iurman <justin.iurman@uliege.be>
Tue, 20 Jul 2021 19:42:59 +0000 (21:42 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 21 Jul 2021 15:14:33 +0000 (08:14 -0700)
commit3edede08ff37c6a9370510508d5eeb54890baf47
tree290995c14ae43eae8a0e6ee11604d81f6a7c6972
parent8c6f6fa6772696be0c047a711858084b38763728
ipv6: ioam: Support for IOAM injection with lwtunnels

Add support for the IOAM inline insertion (only for the host-to-host use case)
which is per-route configured with lightweight tunnels. The target is iproute2
and the patch is ready. It will be posted as soon as this patchset is merged.
Here is an overview:

$ ip -6 ro ad fc00::1/128 encap ioam6 trace type 0x800000 ns 1 size 12 dev eth0

This example configures an IOAM Pre-allocated Trace option attached to the
fc00::1/128 prefix. The IOAM namespace (ns) is 1, the size of the pre-allocated
trace data block is 12 octets (size) and only the first IOAM data (bit 0:
hop_limit + node id) is included in the trace (type) represented as a bitfield.

The reason why the in-transit (IPv6-in-IPv6 encapsulation) use case is not
implemented is explained on the patchset cover.

Signed-off-by: Justin Iurman <justin.iurman@uliege.be>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/ioam6_iptunnel.h [new file with mode: 0644]
include/net/ioam6.h
include/uapi/linux/ioam6.h
include/uapi/linux/ioam6_iptunnel.h [new file with mode: 0644]
include/uapi/linux/lwtunnel.h
net/core/lwtunnel.c
net/ipv6/Kconfig
net/ipv6/Makefile
net/ipv6/ioam6.c
net/ipv6/ioam6_iptunnel.c [new file with mode: 0644]