xref: /aosp_15_r20/external/iproute2/include/uapi/linux/genetlink.h (revision de1e4e894b0c224df933550f0afdecc354b238c4)
1*de1e4e89SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2*de1e4e89SAndroid Build Coastguard Worker #ifndef __LINUX_GENERIC_NETLINK_H
3*de1e4e89SAndroid Build Coastguard Worker #define __LINUX_GENERIC_NETLINK_H
4*de1e4e89SAndroid Build Coastguard Worker 
5*de1e4e89SAndroid Build Coastguard Worker #include <linux/types.h>
6*de1e4e89SAndroid Build Coastguard Worker #include <linux/netlink.h>
7*de1e4e89SAndroid Build Coastguard Worker 
8*de1e4e89SAndroid Build Coastguard Worker #define GENL_NAMSIZ	16	/* length of family name */
9*de1e4e89SAndroid Build Coastguard Worker 
10*de1e4e89SAndroid Build Coastguard Worker #define GENL_MIN_ID	NLMSG_MIN_TYPE
11*de1e4e89SAndroid Build Coastguard Worker #define GENL_MAX_ID	1023
12*de1e4e89SAndroid Build Coastguard Worker 
13*de1e4e89SAndroid Build Coastguard Worker struct genlmsghdr {
14*de1e4e89SAndroid Build Coastguard Worker 	__u8	cmd;
15*de1e4e89SAndroid Build Coastguard Worker 	__u8	version;
16*de1e4e89SAndroid Build Coastguard Worker 	__u16	reserved;
17*de1e4e89SAndroid Build Coastguard Worker };
18*de1e4e89SAndroid Build Coastguard Worker 
19*de1e4e89SAndroid Build Coastguard Worker #define GENL_HDRLEN	NLMSG_ALIGN(sizeof(struct genlmsghdr))
20*de1e4e89SAndroid Build Coastguard Worker 
21*de1e4e89SAndroid Build Coastguard Worker #define GENL_ADMIN_PERM		0x01
22*de1e4e89SAndroid Build Coastguard Worker #define GENL_CMD_CAP_DO		0x02
23*de1e4e89SAndroid Build Coastguard Worker #define GENL_CMD_CAP_DUMP	0x04
24*de1e4e89SAndroid Build Coastguard Worker #define GENL_CMD_CAP_HASPOL	0x08
25*de1e4e89SAndroid Build Coastguard Worker #define GENL_UNS_ADMIN_PERM	0x10
26*de1e4e89SAndroid Build Coastguard Worker 
27*de1e4e89SAndroid Build Coastguard Worker /*
28*de1e4e89SAndroid Build Coastguard Worker  * List of reserved static generic netlink identifiers:
29*de1e4e89SAndroid Build Coastguard Worker  */
30*de1e4e89SAndroid Build Coastguard Worker #define GENL_ID_CTRL		NLMSG_MIN_TYPE
31*de1e4e89SAndroid Build Coastguard Worker #define GENL_ID_VFS_DQUOT	(NLMSG_MIN_TYPE + 1)
32*de1e4e89SAndroid Build Coastguard Worker #define GENL_ID_PMCRAID		(NLMSG_MIN_TYPE + 2)
33*de1e4e89SAndroid Build Coastguard Worker /* must be last reserved + 1 */
34*de1e4e89SAndroid Build Coastguard Worker #define GENL_START_ALLOC	(NLMSG_MIN_TYPE + 3)
35*de1e4e89SAndroid Build Coastguard Worker 
36*de1e4e89SAndroid Build Coastguard Worker /**************************************************************************
37*de1e4e89SAndroid Build Coastguard Worker  * Controller
38*de1e4e89SAndroid Build Coastguard Worker  **************************************************************************/
39*de1e4e89SAndroid Build Coastguard Worker 
40*de1e4e89SAndroid Build Coastguard Worker enum {
41*de1e4e89SAndroid Build Coastguard Worker 	CTRL_CMD_UNSPEC,
42*de1e4e89SAndroid Build Coastguard Worker 	CTRL_CMD_NEWFAMILY,
43*de1e4e89SAndroid Build Coastguard Worker 	CTRL_CMD_DELFAMILY,
44*de1e4e89SAndroid Build Coastguard Worker 	CTRL_CMD_GETFAMILY,
45*de1e4e89SAndroid Build Coastguard Worker 	CTRL_CMD_NEWOPS,
46*de1e4e89SAndroid Build Coastguard Worker 	CTRL_CMD_DELOPS,
47*de1e4e89SAndroid Build Coastguard Worker 	CTRL_CMD_GETOPS,
48*de1e4e89SAndroid Build Coastguard Worker 	CTRL_CMD_NEWMCAST_GRP,
49*de1e4e89SAndroid Build Coastguard Worker 	CTRL_CMD_DELMCAST_GRP,
50*de1e4e89SAndroid Build Coastguard Worker 	CTRL_CMD_GETMCAST_GRP, /* unused */
51*de1e4e89SAndroid Build Coastguard Worker 	__CTRL_CMD_MAX,
52*de1e4e89SAndroid Build Coastguard Worker };
53*de1e4e89SAndroid Build Coastguard Worker 
54*de1e4e89SAndroid Build Coastguard Worker #define CTRL_CMD_MAX (__CTRL_CMD_MAX - 1)
55*de1e4e89SAndroid Build Coastguard Worker 
56*de1e4e89SAndroid Build Coastguard Worker enum {
57*de1e4e89SAndroid Build Coastguard Worker 	CTRL_ATTR_UNSPEC,
58*de1e4e89SAndroid Build Coastguard Worker 	CTRL_ATTR_FAMILY_ID,
59*de1e4e89SAndroid Build Coastguard Worker 	CTRL_ATTR_FAMILY_NAME,
60*de1e4e89SAndroid Build Coastguard Worker 	CTRL_ATTR_VERSION,
61*de1e4e89SAndroid Build Coastguard Worker 	CTRL_ATTR_HDRSIZE,
62*de1e4e89SAndroid Build Coastguard Worker 	CTRL_ATTR_MAXATTR,
63*de1e4e89SAndroid Build Coastguard Worker 	CTRL_ATTR_OPS,
64*de1e4e89SAndroid Build Coastguard Worker 	CTRL_ATTR_MCAST_GROUPS,
65*de1e4e89SAndroid Build Coastguard Worker 	__CTRL_ATTR_MAX,
66*de1e4e89SAndroid Build Coastguard Worker };
67*de1e4e89SAndroid Build Coastguard Worker 
68*de1e4e89SAndroid Build Coastguard Worker #define CTRL_ATTR_MAX (__CTRL_ATTR_MAX - 1)
69*de1e4e89SAndroid Build Coastguard Worker 
70*de1e4e89SAndroid Build Coastguard Worker enum {
71*de1e4e89SAndroid Build Coastguard Worker 	CTRL_ATTR_OP_UNSPEC,
72*de1e4e89SAndroid Build Coastguard Worker 	CTRL_ATTR_OP_ID,
73*de1e4e89SAndroid Build Coastguard Worker 	CTRL_ATTR_OP_FLAGS,
74*de1e4e89SAndroid Build Coastguard Worker 	__CTRL_ATTR_OP_MAX,
75*de1e4e89SAndroid Build Coastguard Worker };
76*de1e4e89SAndroid Build Coastguard Worker 
77*de1e4e89SAndroid Build Coastguard Worker #define CTRL_ATTR_OP_MAX (__CTRL_ATTR_OP_MAX - 1)
78*de1e4e89SAndroid Build Coastguard Worker 
79*de1e4e89SAndroid Build Coastguard Worker enum {
80*de1e4e89SAndroid Build Coastguard Worker 	CTRL_ATTR_MCAST_GRP_UNSPEC,
81*de1e4e89SAndroid Build Coastguard Worker 	CTRL_ATTR_MCAST_GRP_NAME,
82*de1e4e89SAndroid Build Coastguard Worker 	CTRL_ATTR_MCAST_GRP_ID,
83*de1e4e89SAndroid Build Coastguard Worker 	__CTRL_ATTR_MCAST_GRP_MAX,
84*de1e4e89SAndroid Build Coastguard Worker };
85*de1e4e89SAndroid Build Coastguard Worker 
86*de1e4e89SAndroid Build Coastguard Worker #define CTRL_ATTR_MCAST_GRP_MAX (__CTRL_ATTR_MCAST_GRP_MAX - 1)
87*de1e4e89SAndroid Build Coastguard Worker 
88*de1e4e89SAndroid Build Coastguard Worker 
89*de1e4e89SAndroid Build Coastguard Worker #endif /* __LINUX_GENERIC_NETLINK_H */
90