genetlink.h revision 80c05b0976be86308e92b2837e0a94c484e388b4
1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com#ifndef __LINUX_GENERIC_NETLINK_H
28459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org#define __LINUX_GENERIC_NETLINK_H
3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com
48459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org#include <linux/netlink.h>
5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com
6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com#define GENL_NAMSIZ	16	/* length of family name */
78459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org
88459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org#define GENL_MIN_ID	NLMSG_MIN_TYPE
9ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com#define GENL_MAX_ID	1023
108459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org
118459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.orgstruct genlmsghdr {
128459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org	__u8	cmd;
138459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org	__u8	version;
148459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org	__u16	reserved;
158459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org};
168459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org
176addb1930013ebb2f984045141650fd7afcfa90fedisonn@google.com#define GENL_HDRLEN	NLMSG_ALIGN(sizeof(struct genlmsghdr))
1828be72b63e457c680c192a34fb9f58e1c693363fvandebo@chromium.org
198459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org#define GENL_ADMIN_PERM		0x01
208459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org#define GENL_CMD_CAP_DO		0x02
218459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org#define GENL_CMD_CAP_DUMP	0x04
228459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org#define GENL_CMD_CAP_HASPOL	0x08
238459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org
248459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org/*
258459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org * List of reserved static generic netlink identifiers:
268459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org */
278459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org#define GENL_ID_GENERATE	0
288459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org#define GENL_ID_CTRL		NLMSG_MIN_TYPE
298459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org
308459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org/**************************************************************************
314d73ac22a1b99402fc8cff78a4eb4b27aa8fe019robertphillips@google.com * Controller
324d73ac22a1b99402fc8cff78a4eb4b27aa8fe019robertphillips@google.com **************************************************************************/
338459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org
348459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.orgenum {
358459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org	CTRL_CMD_UNSPEC,
368459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org	CTRL_CMD_NEWFAMILY,
378459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org	CTRL_CMD_DELFAMILY,
388459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org	CTRL_CMD_GETFAMILY,
398459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org	CTRL_CMD_NEWOPS,
408459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org	CTRL_CMD_DELOPS,
41188838c20818307fda770ffc395a76ea63c1c8ccvandebo@chromium.org	CTRL_CMD_GETOPS,
426addb1930013ebb2f984045141650fd7afcfa90fedisonn@google.com	CTRL_CMD_NEWMCAST_GRP,
436addb1930013ebb2f984045141650fd7afcfa90fedisonn@google.com	CTRL_CMD_DELMCAST_GRP,
446addb1930013ebb2f984045141650fd7afcfa90fedisonn@google.com	CTRL_CMD_GETMCAST_GRP, /* unused */
456addb1930013ebb2f984045141650fd7afcfa90fedisonn@google.com	__CTRL_CMD_MAX,
466addb1930013ebb2f984045141650fd7afcfa90fedisonn@google.com};
476addb1930013ebb2f984045141650fd7afcfa90fedisonn@google.com
486addb1930013ebb2f984045141650fd7afcfa90fedisonn@google.com#define CTRL_CMD_MAX (__CTRL_CMD_MAX - 1)
49a518086928494319b8968abc09808eff492c194fvandebo@chromium.org
506addb1930013ebb2f984045141650fd7afcfa90fedisonn@google.comenum {
516addb1930013ebb2f984045141650fd7afcfa90fedisonn@google.com	CTRL_ATTR_UNSPEC,
52a518086928494319b8968abc09808eff492c194fvandebo@chromium.org	CTRL_ATTR_FAMILY_ID,
532ef12d4bb54312091d644f0ada3639c51c9f6e5avandebo@chromium.org	CTRL_ATTR_FAMILY_NAME,
542ef12d4bb54312091d644f0ada3639c51c9f6e5avandebo@chromium.org	CTRL_ATTR_VERSION,
552ef12d4bb54312091d644f0ada3639c51c9f6e5avandebo@chromium.org	CTRL_ATTR_HDRSIZE,
562ef12d4bb54312091d644f0ada3639c51c9f6e5avandebo@chromium.org	CTRL_ATTR_MAXATTR,
572ef12d4bb54312091d644f0ada3639c51c9f6e5avandebo@chromium.org	CTRL_ATTR_OPS,
582ef12d4bb54312091d644f0ada3639c51c9f6e5avandebo@chromium.org	CTRL_ATTR_MCAST_GROUPS,
598459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org	__CTRL_ATTR_MAX,
608459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org};
618459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org
628459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org#define CTRL_ATTR_MAX (__CTRL_ATTR_MAX - 1)
638459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org
648459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.orgenum {
658459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org	CTRL_ATTR_OP_UNSPEC,
668459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org	CTRL_ATTR_OP_ID,
678459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org	CTRL_ATTR_OP_FLAGS,
688459d4e5e32608ec6da3f2b81731aaeb7b038843vandebo@chromium.org	__CTRL_ATTR_OP_MAX,
692ef12d4bb54312091d644f0ada3639c51c9f6e5avandebo@chromium.org};
70421d6443fbd3a913dfa32b6492c4a2969bc6314bvandebo@chromium.org
71421d6443fbd3a913dfa32b6492c4a2969bc6314bvandebo@chromium.org#define CTRL_ATTR_OP_MAX (__CTRL_ATTR_OP_MAX - 1)
72421d6443fbd3a913dfa32b6492c4a2969bc6314bvandebo@chromium.org
73421d6443fbd3a913dfa32b6492c4a2969bc6314bvandebo@chromium.orgenum {
74421d6443fbd3a913dfa32b6492c4a2969bc6314bvandebo@chromium.org	CTRL_ATTR_MCAST_GRP_UNSPEC,
75421d6443fbd3a913dfa32b6492c4a2969bc6314bvandebo@chromium.org	CTRL_ATTR_MCAST_GRP_NAME,
76421d6443fbd3a913dfa32b6492c4a2969bc6314bvandebo@chromium.org	CTRL_ATTR_MCAST_GRP_ID,
77421d6443fbd3a913dfa32b6492c4a2969bc6314bvandebo@chromium.org	__CTRL_ATTR_MCAST_GRP_MAX,
78421d6443fbd3a913dfa32b6492c4a2969bc6314bvandebo@chromium.org};
79421d6443fbd3a913dfa32b6492c4a2969bc6314bvandebo@chromium.org
80421d6443fbd3a913dfa32b6492c4a2969bc6314bvandebo@chromium.org#define CTRL_ATTR_MCAST_GRP_MAX (__CTRL_ATTR_MCAST_GRP_MAX - 1)
816addb1930013ebb2f984045141650fd7afcfa90fedisonn@google.com
826addb1930013ebb2f984045141650fd7afcfa90fedisonn@google.com#endif	/* __LINUX_GENERIC_NETLINK_H */
836addb1930013ebb2f984045141650fd7afcfa90fedisonn@google.com