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