diff options
Diffstat (limited to 'include/linux/ip_vs.h')
| -rw-r--r-- | include/linux/ip_vs.h | 160 | 
1 files changed, 160 insertions, 0 deletions
diff --git a/include/linux/ip_vs.h b/include/linux/ip_vs.h index ec6eb49af2d..0f434a28fb5 100644 --- a/include/linux/ip_vs.h +++ b/include/linux/ip_vs.h @@ -242,4 +242,164 @@ struct ip_vs_daemon_user {  	int			syncid;  }; +/* + * + * IPVS Generic Netlink interface definitions + * + */ + +/* Generic Netlink family info */ + +#define IPVS_GENL_NAME		"IPVS" +#define IPVS_GENL_VERSION	0x1 + +struct ip_vs_flags { +	__be32 flags; +	__be32 mask; +}; + +/* Generic Netlink command attributes */ +enum { +	IPVS_CMD_UNSPEC = 0, + +	IPVS_CMD_NEW_SERVICE,		/* add service */ +	IPVS_CMD_SET_SERVICE,		/* modify service */ +	IPVS_CMD_DEL_SERVICE,		/* delete service */ +	IPVS_CMD_GET_SERVICE,		/* get service info */ + +	IPVS_CMD_NEW_DEST,		/* add destination */ +	IPVS_CMD_SET_DEST,		/* modify destination */ +	IPVS_CMD_DEL_DEST,		/* delete destination */ +	IPVS_CMD_GET_DEST,		/* get destination info */ + +	IPVS_CMD_NEW_DAEMON,		/* start sync daemon */ +	IPVS_CMD_DEL_DAEMON,		/* stop sync daemon */ +	IPVS_CMD_GET_DAEMON,		/* get sync daemon status */ + +	IPVS_CMD_SET_CONFIG,		/* set config settings */ +	IPVS_CMD_GET_CONFIG,		/* get config settings */ + +	IPVS_CMD_SET_INFO,		/* only used in GET_INFO reply */ +	IPVS_CMD_GET_INFO,		/* get general IPVS info */ + +	IPVS_CMD_ZERO,			/* zero all counters and stats */ +	IPVS_CMD_FLUSH,			/* flush services and dests */ + +	__IPVS_CMD_MAX, +}; + +#define IPVS_CMD_MAX (__IPVS_CMD_MAX - 1) + +/* Attributes used in the first level of commands */ +enum { +	IPVS_CMD_ATTR_UNSPEC = 0, +	IPVS_CMD_ATTR_SERVICE,		/* nested service attribute */ +	IPVS_CMD_ATTR_DEST,		/* nested destination attribute */ +	IPVS_CMD_ATTR_DAEMON,		/* nested sync daemon attribute */ +	IPVS_CMD_ATTR_TIMEOUT_TCP,	/* TCP connection timeout */ +	IPVS_CMD_ATTR_TIMEOUT_TCP_FIN,	/* TCP FIN wait timeout */ +	IPVS_CMD_ATTR_TIMEOUT_UDP,	/* UDP timeout */ +	__IPVS_CMD_ATTR_MAX, +}; + +#define IPVS_CMD_ATTR_MAX (__IPVS_SVC_ATTR_MAX - 1) + +/* + * Attributes used to describe a service + * + * Used inside nested attribute IPVS_CMD_ATTR_SERVICE + */ +enum { +	IPVS_SVC_ATTR_UNSPEC = 0, +	IPVS_SVC_ATTR_AF,		/* address family */ +	IPVS_SVC_ATTR_PROTOCOL,		/* virtual service protocol */ +	IPVS_SVC_ATTR_ADDR,		/* virtual service address */ +	IPVS_SVC_ATTR_PORT,		/* virtual service port */ +	IPVS_SVC_ATTR_FWMARK,		/* firewall mark of service */ + +	IPVS_SVC_ATTR_SCHED_NAME,	/* name of scheduler */ +	IPVS_SVC_ATTR_FLAGS,		/* virtual service flags */ +	IPVS_SVC_ATTR_TIMEOUT,		/* persistent timeout */ +	IPVS_SVC_ATTR_NETMASK,		/* persistent netmask */ + +	IPVS_SVC_ATTR_STATS,		/* nested attribute for service stats */ +	__IPVS_SVC_ATTR_MAX, +}; + +#define IPVS_SVC_ATTR_MAX (__IPVS_SVC_ATTR_MAX - 1) + +/* + * Attributes used to describe a destination (real server) + * + * Used inside nested attribute IPVS_CMD_ATTR_DEST + */ +enum { +	IPVS_DEST_ATTR_UNSPEC = 0, +	IPVS_DEST_ATTR_ADDR,		/* real server address */ +	IPVS_DEST_ATTR_PORT,		/* real server port */ + +	IPVS_DEST_ATTR_FWD_METHOD,	/* forwarding method */ +	IPVS_DEST_ATTR_WEIGHT,		/* destination weight */ + +	IPVS_DEST_ATTR_U_THRESH,	/* upper threshold */ +	IPVS_DEST_ATTR_L_THRESH,	/* lower threshold */ + +	IPVS_DEST_ATTR_ACTIVE_CONNS,	/* active connections */ +	IPVS_DEST_ATTR_INACT_CONNS,	/* inactive connections */ +	IPVS_DEST_ATTR_PERSIST_CONNS,	/* persistent connections */ + +	IPVS_DEST_ATTR_STATS,		/* nested attribute for dest stats */ +	__IPVS_DEST_ATTR_MAX, +}; + +#define IPVS_DEST_ATTR_MAX (__IPVS_DEST_ATTR_MAX - 1) + +/* + * Attributes describing a sync daemon + * + * Used inside nested attribute IPVS_CMD_ATTR_DAEMON + */ +enum { +	IPVS_DAEMON_ATTR_UNSPEC = 0, +	IPVS_DAEMON_ATTR_STATE,		/* sync daemon state (master/backup) */ +	IPVS_DAEMON_ATTR_MCAST_IFN,	/* multicast interface name */ +	IPVS_DAEMON_ATTR_SYNC_ID,	/* SyncID we belong to */ +	__IPVS_DAEMON_ATTR_MAX, +}; + +#define IPVS_DAEMON_ATTR_MAX (__IPVS_DAEMON_ATTR_MAX - 1) + +/* + * Attributes used to describe service or destination entry statistics + * + * Used inside nested attributes IPVS_SVC_ATTR_STATS and IPVS_DEST_ATTR_STATS + */ +enum { +	IPVS_STATS_ATTR_UNSPEC = 0, +	IPVS_STATS_ATTR_CONNS,		/* connections scheduled */ +	IPVS_STATS_ATTR_INPKTS,		/* incoming packets */ +	IPVS_STATS_ATTR_OUTPKTS,	/* outgoing packets */ +	IPVS_STATS_ATTR_INBYTES,	/* incoming bytes */ +	IPVS_STATS_ATTR_OUTBYTES,	/* outgoing bytes */ + +	IPVS_STATS_ATTR_CPS,		/* current connection rate */ +	IPVS_STATS_ATTR_INPPS,		/* current in packet rate */ +	IPVS_STATS_ATTR_OUTPPS,		/* current out packet rate */ +	IPVS_STATS_ATTR_INBPS,		/* current in byte rate */ +	IPVS_STATS_ATTR_OUTBPS,		/* current out byte rate */ +	__IPVS_STATS_ATTR_MAX, +}; + +#define IPVS_STATS_ATTR_MAX (__IPVS_STATS_ATTR_MAX - 1) + +/* Attributes used in response to IPVS_CMD_GET_INFO command */ +enum { +	IPVS_INFO_ATTR_UNSPEC = 0, +	IPVS_INFO_ATTR_VERSION,		/* IPVS version number */ +	IPVS_INFO_ATTR_CONN_TAB_SIZE,	/* size of connection hash table */ +	__IPVS_INFO_ATTR_MAX, +}; + +#define IPVS_INFO_ATTR_MAX (__IPVS_INFO_ATTR_MAX - 1) +  #endif	/* _IP_VS_H */  |