18c6f6fa6SJustin Iurman /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ 28c6f6fa6SJustin Iurman /* 38c6f6fa6SJustin Iurman * IPv6 IOAM Generic Netlink API 48c6f6fa6SJustin Iurman * 58c6f6fa6SJustin Iurman * Author: 68c6f6fa6SJustin Iurman * Justin Iurman <justin.iurman@uliege.be> 78c6f6fa6SJustin Iurman */ 88c6f6fa6SJustin Iurman 98c6f6fa6SJustin Iurman #ifndef _UAPI_LINUX_IOAM6_GENL_H 108c6f6fa6SJustin Iurman #define _UAPI_LINUX_IOAM6_GENL_H 118c6f6fa6SJustin Iurman 128c6f6fa6SJustin Iurman #define IOAM6_GENL_NAME "IOAM6" 138c6f6fa6SJustin Iurman #define IOAM6_GENL_VERSION 0x1 148c6f6fa6SJustin Iurman 158c6f6fa6SJustin Iurman enum { 168c6f6fa6SJustin Iurman IOAM6_ATTR_UNSPEC, 178c6f6fa6SJustin Iurman 188c6f6fa6SJustin Iurman IOAM6_ATTR_NS_ID, /* u16 */ 198c6f6fa6SJustin Iurman IOAM6_ATTR_NS_DATA, /* u32 */ 208c6f6fa6SJustin Iurman IOAM6_ATTR_NS_DATA_WIDE,/* u64 */ 218c6f6fa6SJustin Iurman 228c6f6fa6SJustin Iurman #define IOAM6_MAX_SCHEMA_DATA_LEN (255 * 4) 238c6f6fa6SJustin Iurman IOAM6_ATTR_SC_ID, /* u32 */ 248c6f6fa6SJustin Iurman IOAM6_ATTR_SC_DATA, /* Binary */ 258c6f6fa6SJustin Iurman IOAM6_ATTR_SC_NONE, /* Flag */ 268c6f6fa6SJustin Iurman 278c6f6fa6SJustin Iurman IOAM6_ATTR_PAD, 288c6f6fa6SJustin Iurman 298c6f6fa6SJustin Iurman __IOAM6_ATTR_MAX, 308c6f6fa6SJustin Iurman }; 318c6f6fa6SJustin Iurman 328c6f6fa6SJustin Iurman #define IOAM6_ATTR_MAX (__IOAM6_ATTR_MAX - 1) 338c6f6fa6SJustin Iurman 348c6f6fa6SJustin Iurman enum { 358c6f6fa6SJustin Iurman IOAM6_CMD_UNSPEC, 368c6f6fa6SJustin Iurman 378c6f6fa6SJustin Iurman IOAM6_CMD_ADD_NAMESPACE, 388c6f6fa6SJustin Iurman IOAM6_CMD_DEL_NAMESPACE, 398c6f6fa6SJustin Iurman IOAM6_CMD_DUMP_NAMESPACES, 408c6f6fa6SJustin Iurman 418c6f6fa6SJustin Iurman IOAM6_CMD_ADD_SCHEMA, 428c6f6fa6SJustin Iurman IOAM6_CMD_DEL_SCHEMA, 438c6f6fa6SJustin Iurman IOAM6_CMD_DUMP_SCHEMAS, 448c6f6fa6SJustin Iurman 458c6f6fa6SJustin Iurman IOAM6_CMD_NS_SET_SCHEMA, 468c6f6fa6SJustin Iurman 478c6f6fa6SJustin Iurman __IOAM6_CMD_MAX, 488c6f6fa6SJustin Iurman }; 498c6f6fa6SJustin Iurman 508c6f6fa6SJustin Iurman #define IOAM6_CMD_MAX (__IOAM6_CMD_MAX - 1) 518c6f6fa6SJustin Iurman 52*5fa918a3SJustin Iurman #define IOAM6_GENL_EV_GRP_NAME "ioam6_events" 53*5fa918a3SJustin Iurman 54*5fa918a3SJustin Iurman enum ioam6_event_type { 55*5fa918a3SJustin Iurman IOAM6_EVENT_UNSPEC, 56*5fa918a3SJustin Iurman IOAM6_EVENT_TRACE, 57*5fa918a3SJustin Iurman }; 58*5fa918a3SJustin Iurman 59*5fa918a3SJustin Iurman enum ioam6_event_attr { 60*5fa918a3SJustin Iurman IOAM6_EVENT_ATTR_UNSPEC, 61*5fa918a3SJustin Iurman 62*5fa918a3SJustin Iurman IOAM6_EVENT_ATTR_TRACE_NAMESPACE, /* u16 */ 63*5fa918a3SJustin Iurman IOAM6_EVENT_ATTR_TRACE_NODELEN, /* u8 */ 64*5fa918a3SJustin Iurman IOAM6_EVENT_ATTR_TRACE_TYPE, /* u32 */ 65*5fa918a3SJustin Iurman IOAM6_EVENT_ATTR_TRACE_DATA, /* Binary */ 66*5fa918a3SJustin Iurman 67*5fa918a3SJustin Iurman __IOAM6_EVENT_ATTR_MAX 68*5fa918a3SJustin Iurman }; 69*5fa918a3SJustin Iurman 70*5fa918a3SJustin Iurman #define IOAM6_EVENT_ATTR_MAX (__IOAM6_EVENT_ATTR_MAX - 1) 71*5fa918a3SJustin Iurman 728c6f6fa6SJustin Iurman #endif /* _UAPI_LINUX_IOAM6_GENL_H */ 73