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 15enum { 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 34enum { 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 54enum ioam6_event_type { 55 IOAM6_EVENT_UNSPEC, 56 IOAM6_EVENT_TRACE, 57}; 58 59enum 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