165018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim#ifndef __LINUX_GENERIC_NETLINK_H
265018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim#define __LINUX_GENERIC_NETLINK_H
365018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim
467881151423f1173ddc31e4f27d736044c2c9a96Stephen Hemminger#include <linux/types.h>
565018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim#include <linux/netlink.h>
665018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim
765018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim#define GENL_NAMSIZ	16	/* length of family name */
865018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim
965018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim#define GENL_MIN_ID	NLMSG_MIN_TYPE
1065018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim#define GENL_MAX_ID	1023
1165018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim
1265018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salimstruct genlmsghdr {
1365018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim	__u8	cmd;
1465018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim	__u8	version;
1565018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim	__u16	reserved;
1665018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim};
1765018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim
1865018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim#define GENL_HDRLEN	NLMSG_ALIGN(sizeof(struct genlmsghdr))
1965018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim
20ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger#define GENL_ADMIN_PERM		0x01
217c9e557ee4144f36e6eb10080e913b07a9937473jamal#define GENL_CMD_CAP_DO		0x02
227c9e557ee4144f36e6eb10080e913b07a9937473jamal#define GENL_CMD_CAP_DUMP	0x04
237c9e557ee4144f36e6eb10080e913b07a9937473jamal#define GENL_CMD_CAP_HASPOL	0x08
24ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger
2565018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim/*
2665018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim * List of reserved static generic netlink identifiers:
2765018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim */
2865018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim#define GENL_ID_GENERATE	0
2965018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim#define GENL_ID_CTRL		NLMSG_MIN_TYPE
3065018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim
3165018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim/**************************************************************************
3265018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim * Controller
3365018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim **************************************************************************/
3465018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim
3565018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salimenum {
3665018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim	CTRL_CMD_UNSPEC,
3765018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim	CTRL_CMD_NEWFAMILY,
3865018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim	CTRL_CMD_DELFAMILY,
3965018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim	CTRL_CMD_GETFAMILY,
4065018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim	CTRL_CMD_NEWOPS,
4165018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim	CTRL_CMD_DELOPS,
4265018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim	CTRL_CMD_GETOPS,
4380c05b0976be86308e92b2837e0a94c484e388b4Johannes Berg	CTRL_CMD_NEWMCAST_GRP,
4480c05b0976be86308e92b2837e0a94c484e388b4Johannes Berg	CTRL_CMD_DELMCAST_GRP,
4580c05b0976be86308e92b2837e0a94c484e388b4Johannes Berg	CTRL_CMD_GETMCAST_GRP, /* unused */
4665018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim	__CTRL_CMD_MAX,
4765018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim};
4865018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim
4965018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim#define CTRL_CMD_MAX (__CTRL_CMD_MAX - 1)
5065018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim
5165018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salimenum {
5265018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim	CTRL_ATTR_UNSPEC,
5365018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim	CTRL_ATTR_FAMILY_ID,
5465018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim	CTRL_ATTR_FAMILY_NAME,
55ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger	CTRL_ATTR_VERSION,
56ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger	CTRL_ATTR_HDRSIZE,
57ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger	CTRL_ATTR_MAXATTR,
58ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger	CTRL_ATTR_OPS,
5980c05b0976be86308e92b2837e0a94c484e388b4Johannes Berg	CTRL_ATTR_MCAST_GROUPS,
6065018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim	__CTRL_ATTR_MAX,
6165018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim};
6265018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim
6365018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim#define CTRL_ATTR_MAX (__CTRL_ATTR_MAX - 1)
6465018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim
65ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemmingerenum {
66ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger	CTRL_ATTR_OP_UNSPEC,
67ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger	CTRL_ATTR_OP_ID,
68ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger	CTRL_ATTR_OP_FLAGS,
69ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger	__CTRL_ATTR_OP_MAX,
70ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger};
71ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger
72ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger#define CTRL_ATTR_OP_MAX (__CTRL_ATTR_OP_MAX - 1)
73ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger
7480c05b0976be86308e92b2837e0a94c484e388b4Johannes Bergenum {
7580c05b0976be86308e92b2837e0a94c484e388b4Johannes Berg	CTRL_ATTR_MCAST_GRP_UNSPEC,
7680c05b0976be86308e92b2837e0a94c484e388b4Johannes Berg	CTRL_ATTR_MCAST_GRP_NAME,
7780c05b0976be86308e92b2837e0a94c484e388b4Johannes Berg	CTRL_ATTR_MCAST_GRP_ID,
7880c05b0976be86308e92b2837e0a94c484e388b4Johannes Berg	__CTRL_ATTR_MCAST_GRP_MAX,
7980c05b0976be86308e92b2837e0a94c484e388b4Johannes Berg};
8080c05b0976be86308e92b2837e0a94c484e388b4Johannes Berg
8180c05b0976be86308e92b2837e0a94c484e388b4Johannes Berg#define CTRL_ATTR_MCAST_GRP_MAX (__CTRL_ATTR_MCAST_GRP_MAX - 1)
8280c05b0976be86308e92b2837e0a94c484e388b4Johannes Berg
83b4397f580e6eb3f20e8c433833be20283b44a3bcStephen Hemminger
8465018ae43b14c8157bbe05473d76635626177b87Jamal Hadi Salim#endif	/* __LINUX_GENERIC_NETLINK_H */
85