Root/package/libnl-tiny/src/include/linux/genetlink.h

1#ifndef __LINUX_GENERIC_NETLINK_H
2#define __LINUX_GENERIC_NETLINK_H
3
4#include <linux/types.h>
5#include <linux/netlink.h>
6
7#define GENL_NAMSIZ 16 /* length of family name */
8
9#define GENL_MIN_ID NLMSG_MIN_TYPE
10#define GENL_MAX_ID 1023
11
12struct 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 * List of reserved static generic netlink identifiers:
27 */
28#define GENL_ID_GENERATE 0
29#define GENL_ID_CTRL NLMSG_MIN_TYPE
30
31/**************************************************************************
32 * Controller
33 **************************************************************************/
34
35enum {
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, /* unused */
46    __CTRL_CMD_MAX,
47};
48
49#define CTRL_CMD_MAX (__CTRL_CMD_MAX - 1)
50
51enum {
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
65enum {
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
74enum {
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#endif /* __LINUX_GENERIC_NETLINK_H */
84

Archive Download this file



interactive