1 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ 2 /* 3 * IPv6 IOAM Generic Netlink API 4 * 5 * Author: 6 * Justin Iurman <justin.iurman@uliege.be> 7 */ 8 9 #ifndef _UAPI_LINUX_IOAM6_GENL_H 10 #define _UAPI_LINUX_IOAM6_GENL_H 11 12 #define IOAM6_GENL_NAME "IOAM6" 13 #define IOAM6_GENL_VERSION 0x1 14 15 enum { 16 IOAM6_ATTR_UNSPEC, 17 18 IOAM6_ATTR_NS_ID, /* u16 */ 19 IOAM6_ATTR_NS_DATA, /* u32 */ 20 IOAM6_ATTR_NS_DATA_WIDE,/* u64 */ 21 22 #define IOAM6_MAX_SCHEMA_DATA_LEN (255 * 4) 23 IOAM6_ATTR_SC_ID, /* u32 */ 24 IOAM6_ATTR_SC_DATA, /* Binary */ 25 IOAM6_ATTR_SC_NONE, /* Flag */ 26 27 IOAM6_ATTR_PAD, 28 29 __IOAM6_ATTR_MAX, 30 }; 31 32 #define IOAM6_ATTR_MAX (__IOAM6_ATTR_MAX - 1) 33 34 enum { 35 IOAM6_CMD_UNSPEC, 36 37 IOAM6_CMD_ADD_NAMESPACE, 38 IOAM6_CMD_DEL_NAMESPACE, 39 IOAM6_CMD_DUMP_NAMESPACES, 40 41 IOAM6_CMD_ADD_SCHEMA, 42 IOAM6_CMD_DEL_SCHEMA, 43 IOAM6_CMD_DUMP_SCHEMAS, 44 45 IOAM6_CMD_NS_SET_SCHEMA, 46 47 __IOAM6_CMD_MAX, 48 }; 49 50 #define IOAM6_CMD_MAX (__IOAM6_CMD_MAX - 1) 51 52 #define IOAM6_GENL_EV_GRP_NAME "ioam6_events" 53 54 enum ioam6_event_type { 55 IOAM6_EVENT_UNSPEC, 56 IOAM6_EVENT_TRACE, 57 }; 58 59 enum ioam6_event_attr { 60 IOAM6_EVENT_ATTR_UNSPEC, 61 62 IOAM6_EVENT_ATTR_TRACE_NAMESPACE, /* u16 */ 63 IOAM6_EVENT_ATTR_TRACE_NODELEN, /* u8 */ 64 IOAM6_EVENT_ATTR_TRACE_TYPE, /* u32 */ 65 IOAM6_EVENT_ATTR_TRACE_DATA, /* Binary */ 66 67 __IOAM6_EVENT_ATTR_MAX 68 }; 69 70 #define IOAM6_EVENT_ATTR_MAX (__IOAM6_EVENT_ATTR_MAX - 1) 71 72 #endif /* _UAPI_LINUX_IOAM6_GENL_H */ 73