1dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#ifndef __LINUX_GENERIC_NETLINK_H 2dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define __LINUX_GENERIC_NETLINK_H 3dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 4dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#include <linux/types.h> 5dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#include <linux/netlink.h> 6dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 7dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define GENL_NAMSIZ 16 /* length of family name */ 8dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 9dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define GENL_MIN_ID NLMSG_MIN_TYPE 10dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define GENL_MAX_ID 1023 11dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 12dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehatstruct genlmsghdr { 13dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat __u8 cmd; 14dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat __u8 version; 15dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat __u16 reserved; 16dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat}; 17dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 18dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define GENL_HDRLEN NLMSG_ALIGN(sizeof(struct genlmsghdr)) 19dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 20dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define GENL_ADMIN_PERM 0x01 21dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define GENL_CMD_CAP_DO 0x02 22dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define GENL_CMD_CAP_DUMP 0x04 23dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define GENL_CMD_CAP_HASPOL 0x08 24dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 25dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat/* 26dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * List of reserved static generic netlink identifiers: 27dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat */ 28dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define GENL_ID_GENERATE 0 29dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define GENL_ID_CTRL NLMSG_MIN_TYPE 30dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 31dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat/************************************************************************** 32dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat * Controller 33dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat **************************************************************************/ 34dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 35dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehatenum { 36dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat CTRL_CMD_UNSPEC, 37dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat CTRL_CMD_NEWFAMILY, 38dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat CTRL_CMD_DELFAMILY, 39dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat CTRL_CMD_GETFAMILY, 40dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat CTRL_CMD_NEWOPS, 41dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat CTRL_CMD_DELOPS, 42dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat CTRL_CMD_GETOPS, 43dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat CTRL_CMD_NEWMCAST_GRP, 44dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat CTRL_CMD_DELMCAST_GRP, 45dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat CTRL_CMD_GETMCAST_GRP, /* unused */ 46dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat __CTRL_CMD_MAX, 47dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat}; 48dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 49dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define CTRL_CMD_MAX (__CTRL_CMD_MAX - 1) 50dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 51dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehatenum { 52dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat CTRL_ATTR_UNSPEC, 53dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat CTRL_ATTR_FAMILY_ID, 54dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat CTRL_ATTR_FAMILY_NAME, 55dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat CTRL_ATTR_VERSION, 56dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat CTRL_ATTR_HDRSIZE, 57dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat CTRL_ATTR_MAXATTR, 58dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat CTRL_ATTR_OPS, 59dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat CTRL_ATTR_MCAST_GROUPS, 60dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat __CTRL_ATTR_MAX, 61dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat}; 62dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 63dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define CTRL_ATTR_MAX (__CTRL_ATTR_MAX - 1) 64dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 65dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehatenum { 66dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat CTRL_ATTR_OP_UNSPEC, 67dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat CTRL_ATTR_OP_ID, 68dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat CTRL_ATTR_OP_FLAGS, 69dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat __CTRL_ATTR_OP_MAX, 70dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat}; 71dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 72dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define CTRL_ATTR_OP_MAX (__CTRL_ATTR_OP_MAX - 1) 73dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 74dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehatenum { 75dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat CTRL_ATTR_MCAST_GRP_UNSPEC, 76dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat CTRL_ATTR_MCAST_GRP_NAME, 77dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat CTRL_ATTR_MCAST_GRP_ID, 78dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat __CTRL_ATTR_MCAST_GRP_MAX, 79dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat}; 80dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 81dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#define CTRL_ATTR_MCAST_GRP_MAX (__CTRL_ATTR_MCAST_GRP_MAX - 1) 82dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat 831a441f49ec87ef74b978d7ae17da2a9b2ca6e811Dmitry Shmidt 84dcfb7a77f8709125e97c313cb8ab6ec4d87468f4San Mehat#endif /* __LINUX_GENERIC_NETLINK_H */ 85