add libnl-tiny as a small replacement for libnl with only genl support included
[openwrt.git] / package / libnl-tiny / src / include / linux / genetlink.h
1 #ifndef __LINUX_GENERIC_NETLINK_H
2 #define __LINUX_GENERIC_NETLINK_H
3
4 #include <linux/netlink.h>
5
6 #define GENL_NAMSIZ     16      /* length of family name */
7
8 #define GENL_MIN_ID     NLMSG_MIN_TYPE
9 #define GENL_MAX_ID     1023
10
11 struct genlmsghdr {
12         __u8    cmd;
13         __u8    version;
14         __u16   reserved;
15 };
16
17 #define GENL_HDRLEN     NLMSG_ALIGN(sizeof(struct genlmsghdr))
18
19 #define GENL_ADMIN_PERM         0x01
20 #define GENL_CMD_CAP_DO         0x02
21 #define GENL_CMD_CAP_DUMP       0x04
22 #define GENL_CMD_CAP_HASPOL     0x08
23
24 /*
25  * List of reserved static generic netlink identifiers:
26  */
27 #define GENL_ID_GENERATE        0
28 #define GENL_ID_CTRL            NLMSG_MIN_TYPE
29
30 /**************************************************************************
31  * Controller
32  **************************************************************************/
33
34 enum {
35         CTRL_CMD_UNSPEC,
36         CTRL_CMD_NEWFAMILY,
37         CTRL_CMD_DELFAMILY,
38         CTRL_CMD_GETFAMILY,
39         CTRL_CMD_NEWOPS,
40         CTRL_CMD_DELOPS,
41         CTRL_CMD_GETOPS,
42         __CTRL_CMD_MAX,
43 };
44
45 #define CTRL_CMD_MAX (__CTRL_CMD_MAX - 1)
46
47 enum {
48         CTRL_ATTR_UNSPEC,
49         CTRL_ATTR_FAMILY_ID,
50         CTRL_ATTR_FAMILY_NAME,
51         CTRL_ATTR_VERSION,
52         CTRL_ATTR_HDRSIZE,
53         CTRL_ATTR_MAXATTR,
54         CTRL_ATTR_OPS,
55         __CTRL_ATTR_MAX,
56 };
57
58 #define CTRL_ATTR_MAX (__CTRL_ATTR_MAX - 1)
59
60 enum {
61         CTRL_ATTR_OP_UNSPEC,
62         CTRL_ATTR_OP_ID,
63         CTRL_ATTR_OP_FLAGS,
64         __CTRL_ATTR_OP_MAX,
65 };
66
67 #define CTRL_ATTR_OP_MAX (__CTRL_ATTR_OP_MAX - 1)
68
69 #endif  /* __LINUX_GENERIC_NETLINK_H */