Linux 6.12-rc1
[linux-block.git] / include / uapi / linux / ioam6_genl.h
CommitLineData
8c6f6fa6
JI
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
5fa918a3
JI
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
8c6f6fa6 72#endif /* _UAPI_LINUX_IOAM6_GENL_H */