1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2/* ila.h - ILA Interface */
3
4#ifndef _UAPI_LINUX_ILA_H
5#define _UAPI_LINUX_ILA_H
6
7/* NETLINK_GENERIC related info */
8#define ILA_GENL_NAME		"ila"
9#define ILA_GENL_VERSION	0x1
10
11enum {
12	ILA_ATTR_UNSPEC,
13	ILA_ATTR_LOCATOR,			/* u64 */
14	ILA_ATTR_IDENTIFIER,			/* u64 */
15	ILA_ATTR_LOCATOR_MATCH,			/* u64 */
16	ILA_ATTR_IFINDEX,			/* s32 */
17	ILA_ATTR_DIR,				/* u32 */
18	ILA_ATTR_PAD,
19	ILA_ATTR_CSUM_MODE,			/* u8 */
20	ILA_ATTR_IDENT_TYPE,			/* u8 */
21	ILA_ATTR_HOOK_TYPE,			/* u8 */
22
23	__ILA_ATTR_MAX,
24};
25
26#define ILA_ATTR_MAX		(__ILA_ATTR_MAX - 1)
27
28enum {
29	ILA_CMD_UNSPEC,
30	ILA_CMD_ADD,
31	ILA_CMD_DEL,
32	ILA_CMD_GET,
33	ILA_CMD_FLUSH,
34
35	__ILA_CMD_MAX,
36};
37
38#define ILA_CMD_MAX	(__ILA_CMD_MAX - 1)
39
40#define ILA_DIR_IN	(1 << 0)
41#define ILA_DIR_OUT	(1 << 1)
42
43enum {
44	ILA_CSUM_ADJUST_TRANSPORT,
45	ILA_CSUM_NEUTRAL_MAP,
46	ILA_CSUM_NO_ACTION,
47	ILA_CSUM_NEUTRAL_MAP_AUTO,
48};
49
50enum {
51	ILA_ATYPE_IID = 0,
52	ILA_ATYPE_LUID,
53	ILA_ATYPE_VIRT_V4,
54	ILA_ATYPE_VIRT_UNI_V6,
55	ILA_ATYPE_VIRT_MULTI_V6,
56	ILA_ATYPE_NONLOCAL_ADDR,
57	ILA_ATYPE_RSVD_1,
58	ILA_ATYPE_RSVD_2,
59
60	ILA_ATYPE_USE_FORMAT = 32, /* Get type from type field in identifier */
61};
62
63enum {
64	ILA_HOOK_ROUTE_OUTPUT,
65	ILA_HOOK_ROUTE_INPUT,
66};
67
68#endif /* _UAPI_LINUX_ILA_H */
69