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  
11  enum {
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  
28  enum {
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  
43  enum {
44  	ILA_CSUM_ADJUST_TRANSPORT,
45  	ILA_CSUM_NEUTRAL_MAP,
46  	ILA_CSUM_NO_ACTION,
47  	ILA_CSUM_NEUTRAL_MAP_AUTO,
48  };
49  
50  enum {
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  
63  enum {
64  	ILA_HOOK_ROUTE_OUTPUT,
65  	ILA_HOOK_ROUTE_INPUT,
66  };
67  
68  #endif /* _UAPI_LINUX_ILA_H */
69