History

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.

Justin Iurman committed 5 years ago

Commit 3edede01 parent 8c6f6fa10 files · +358 −12Browse files

Showing the changes to include/uapi (3 of 10 files). Show all

Unified · Split

3 files
  1. include/uapi/linux/ioam6.h +1 −0
  2. include/uapi/linux/ioam6_iptunnel.h +20 −0
  3. include/uapi/linux/lwtunnel.h +1 −0
include/uapi/linux/ioam6.h+1−0
@@ -126,6 +126,7 @@ struct ioam6_trace_hdr { · 125 unmodified lines
126126 #error "Please fix <asm/byteorder.h>"
127127 #endif
128128
129+#define IOAM6_TRACE_DATA_SIZE_MAX 244
129130 __u8 data[0];
130131 } __attribute__((packed));
131132
include/uapi/linux/ioam6_iptunnel.h+20−0
@@ -0,0 +1,20 @@
1+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
2+/*
3+ * IPv6 IOAM Lightweight Tunnel API
4+ *
5+ * Author:
6+ * Justin Iurman <justin.iurman@uliege.be>
7+ */
8+
9+#ifndef _UAPI_LINUX_IOAM6_IPTUNNEL_H
10+#define _UAPI_LINUX_IOAM6_IPTUNNEL_H
11+
12+enum {
13+ IOAM6_IPTUNNEL_UNSPEC,
14+ IOAM6_IPTUNNEL_TRACE, /* struct ioam6_trace_hdr */
15+ __IOAM6_IPTUNNEL_MAX,
16+};
17+
18+#define IOAM6_IPTUNNEL_MAX (__IOAM6_IPTUNNEL_MAX - 1)
19+
20+#endif /* _UAPI_LINUX_IOAM6_IPTUNNEL_H */
include/uapi/linux/lwtunnel.h+1−0
@@ -14,6 +14,7 @@ enum lwtunnel_encap_types { · 13 unmodified lines
1414 LWTUNNEL_ENCAP_BPF,
1515 LWTUNNEL_ENCAP_SEG6_LOCAL,
1616 LWTUNNEL_ENCAP_RPL,
17+ LWTUNNEL_ENCAP_IOAM6,
1718 __LWTUNNEL_ENCAP_MAX,
1819 };
1920