162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * IPv6 IOAM Lightweight Tunnel API 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Author: 662306a36Sopenharmony_ci * Justin Iurman <justin.iurman@uliege.be> 762306a36Sopenharmony_ci */ 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#ifndef _UAPI_LINUX_IOAM6_IPTUNNEL_H 1062306a36Sopenharmony_ci#define _UAPI_LINUX_IOAM6_IPTUNNEL_H 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci/* Encap modes: 1362306a36Sopenharmony_ci * - inline: direct insertion 1462306a36Sopenharmony_ci * - encap: ip6ip6 encapsulation 1562306a36Sopenharmony_ci * - auto: inline for local packets, encap for in-transit packets 1662306a36Sopenharmony_ci */ 1762306a36Sopenharmony_cienum { 1862306a36Sopenharmony_ci __IOAM6_IPTUNNEL_MODE_MIN, 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci IOAM6_IPTUNNEL_MODE_INLINE, 2162306a36Sopenharmony_ci IOAM6_IPTUNNEL_MODE_ENCAP, 2262306a36Sopenharmony_ci IOAM6_IPTUNNEL_MODE_AUTO, 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci __IOAM6_IPTUNNEL_MODE_MAX, 2562306a36Sopenharmony_ci}; 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci#define IOAM6_IPTUNNEL_MODE_MIN (__IOAM6_IPTUNNEL_MODE_MIN + 1) 2862306a36Sopenharmony_ci#define IOAM6_IPTUNNEL_MODE_MAX (__IOAM6_IPTUNNEL_MODE_MAX - 1) 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_cienum { 3162306a36Sopenharmony_ci IOAM6_IPTUNNEL_UNSPEC, 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci /* Encap mode */ 3462306a36Sopenharmony_ci IOAM6_IPTUNNEL_MODE, /* u8 */ 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci /* Tunnel dst address. 3762306a36Sopenharmony_ci * For encap,auto modes. 3862306a36Sopenharmony_ci */ 3962306a36Sopenharmony_ci IOAM6_IPTUNNEL_DST, /* struct in6_addr */ 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci /* IOAM Trace Header */ 4262306a36Sopenharmony_ci IOAM6_IPTUNNEL_TRACE, /* struct ioam6_trace_hdr */ 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci /* Insertion frequency: 4562306a36Sopenharmony_ci * "k over n" packets (0 < k <= n) 4662306a36Sopenharmony_ci * [0.0001% ... 100%] 4762306a36Sopenharmony_ci */ 4862306a36Sopenharmony_ci#define IOAM6_IPTUNNEL_FREQ_MIN 1 4962306a36Sopenharmony_ci#define IOAM6_IPTUNNEL_FREQ_MAX 1000000 5062306a36Sopenharmony_ci IOAM6_IPTUNNEL_FREQ_K, /* u32 */ 5162306a36Sopenharmony_ci IOAM6_IPTUNNEL_FREQ_N, /* u32 */ 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci __IOAM6_IPTUNNEL_MAX, 5462306a36Sopenharmony_ci}; 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci#define IOAM6_IPTUNNEL_MAX (__IOAM6_IPTUNNEL_MAX - 1) 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci#endif /* _UAPI_LINUX_IOAM6_IPTUNNEL_H */ 59