xref: /linux/include/uapi/linux/ioam6_genl.h (revision 79790b6818e96c58fe2bffee1b418c16e64e7b80)
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