|
@@ -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 */
|