genetlink.h
01: #ifndef __LINUX_GENERIC_NETLINK_H
02: #define __LINUX_GENERIC_NETLINK_H
03:
04: #include <linux/types.h>
05: #include <linux/netlink.h>
06:
07: #define GENL_NAMSIZ 16
08:
09: #define GENL_MIN_ID NLMSG_MIN_TYPE
10: #define GENL_MAX_ID 1023
11:
12: struct genlmsghdr {
13: __u8 cmd;
14: __u8 version;
15: __u16 reserved;
16: };
17:
18: #define GENL_HDRLEN NLMSG_ALIGN(sizeof(struct genlmsghdr))
19:
20: #define GENL_ADMIN_PERM 0x01
21: #define GENL_CMD_CAP_DO 0x02
22: #define GENL_CMD_CAP_DUMP 0x04
23: #define GENL_CMD_CAP_HASPOL 0x08
24:
25:
26:
27:
28: #define GENL_ID_GENERATE 0
29: #define GENL_ID_CTRL NLMSG_MIN_TYPE
30:
31:
32:
33:
34:
35: enum {
36: CTRL_CMD_UNSPEC,
37: CTRL_CMD_NEWFAMILY,
38: CTRL_CMD_DELFAMILY,
39: CTRL_CMD_GETFAMILY,
40: CTRL_CMD_NEWOPS,
41: CTRL_CMD_DELOPS,
42: CTRL_CMD_GETOPS,
43: CTRL_CMD_NEWMCAST_GRP,
44: CTRL_CMD_DELMCAST_GRP,
45: CTRL_CMD_GETMCAST_GRP,
46: __CTRL_CMD_MAX,
47: };
48:
49: #define CTRL_CMD_MAX (__CTRL_CMD_MAX - 1)
50:
51: enum {
52: CTRL_ATTR_UNSPEC,
53: CTRL_ATTR_FAMILY_ID,
54: CTRL_ATTR_FAMILY_NAME,
55: CTRL_ATTR_VERSION,
56: CTRL_ATTR_HDRSIZE,
57: CTRL_ATTR_MAXATTR,
58: CTRL_ATTR_OPS,
59: CTRL_ATTR_MCAST_GROUPS,
60: __CTRL_ATTR_MAX,
61: };
62:
63: #define CTRL_ATTR_MAX (__CTRL_ATTR_MAX - 1)
64:
65: enum {
66: CTRL_ATTR_OP_UNSPEC,
67: CTRL_ATTR_OP_ID,
68: CTRL_ATTR_OP_FLAGS,
69: __CTRL_ATTR_OP_MAX,
70: };
71:
72: #define CTRL_ATTR_OP_MAX (__CTRL_ATTR_OP_MAX - 1)
73:
74: enum {
75: CTRL_ATTR_MCAST_GRP_UNSPEC,
76: CTRL_ATTR_MCAST_GRP_NAME,
77: CTRL_ATTR_MCAST_GRP_ID,
78: __CTRL_ATTR_MCAST_GRP_MAX,
79: };
80:
81: #define CTRL_ATTR_MCAST_GRP_MAX (__CTRL_ATTR_MCAST_GRP_MAX - 1)
82:
83:
84: #endif
85:
© Andrew Scott 2006 -
2025,
All Rights Reserved