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 #endif /* _UAPI_LINUX_IOAM6_GENL_H */
53