ip_vs.h revision 96c1db7b9d601c31d103389cac074a6cce0d7633
1/**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 *** To edit the content of this header, modify the corresponding 11 *** source file (e.g. under external/kernel-headers/original/) then 12 *** run bionic/libc/kernel/tools/update_all.py 13 *** 14 *** Any manual change here will be lost the next time this script will 15 *** be run. You've been warned! 16 *** 17 **************************************************************************** 18 ****************************************************************************/ 19#ifndef _IP_VS_H 20#define _IP_VS_H 21#include <linux/types.h> 22#define IP_VS_VERSION_CODE 0x010201 23#define NVERSION(version) (version >> 16) & 0xFF, (version >> 8) & 0xFF, version & 0xFF 24#define IP_VS_SVC_F_PERSISTENT 0x0001 25#define IP_VS_SVC_F_HASHED 0x0002 26#define IP_VS_SVC_F_ONEPACKET 0x0004 27#define IP_VS_SVC_F_SCHED1 0x0008 28#define IP_VS_SVC_F_SCHED2 0x0010 29#define IP_VS_SVC_F_SCHED3 0x0020 30#define IP_VS_SVC_F_SCHED_SH_FALLBACK IP_VS_SVC_F_SCHED1 31#define IP_VS_SVC_F_SCHED_SH_PORT IP_VS_SVC_F_SCHED2 32#define IP_VS_DEST_F_AVAILABLE 0x0001 33#define IP_VS_DEST_F_OVERLOAD 0x0002 34#define IP_VS_STATE_NONE 0x0000 35#define IP_VS_STATE_MASTER 0x0001 36#define IP_VS_STATE_BACKUP 0x0002 37#define IP_VS_BASE_CTL (64 + 1024 + 64) 38#define IP_VS_SO_SET_NONE IP_VS_BASE_CTL 39#define IP_VS_SO_SET_INSERT (IP_VS_BASE_CTL + 1) 40#define IP_VS_SO_SET_ADD (IP_VS_BASE_CTL + 2) 41#define IP_VS_SO_SET_EDIT (IP_VS_BASE_CTL + 3) 42#define IP_VS_SO_SET_DEL (IP_VS_BASE_CTL + 4) 43#define IP_VS_SO_SET_FLUSH (IP_VS_BASE_CTL + 5) 44#define IP_VS_SO_SET_LIST (IP_VS_BASE_CTL + 6) 45#define IP_VS_SO_SET_ADDDEST (IP_VS_BASE_CTL + 7) 46#define IP_VS_SO_SET_DELDEST (IP_VS_BASE_CTL + 8) 47#define IP_VS_SO_SET_EDITDEST (IP_VS_BASE_CTL + 9) 48#define IP_VS_SO_SET_TIMEOUT (IP_VS_BASE_CTL + 10) 49#define IP_VS_SO_SET_STARTDAEMON (IP_VS_BASE_CTL + 11) 50#define IP_VS_SO_SET_STOPDAEMON (IP_VS_BASE_CTL + 12) 51#define IP_VS_SO_SET_RESTORE (IP_VS_BASE_CTL + 13) 52#define IP_VS_SO_SET_SAVE (IP_VS_BASE_CTL + 14) 53#define IP_VS_SO_SET_ZERO (IP_VS_BASE_CTL + 15) 54#define IP_VS_SO_SET_MAX IP_VS_SO_SET_ZERO 55#define IP_VS_SO_GET_VERSION IP_VS_BASE_CTL 56#define IP_VS_SO_GET_INFO (IP_VS_BASE_CTL + 1) 57#define IP_VS_SO_GET_SERVICES (IP_VS_BASE_CTL + 2) 58#define IP_VS_SO_GET_SERVICE (IP_VS_BASE_CTL + 3) 59#define IP_VS_SO_GET_DESTS (IP_VS_BASE_CTL + 4) 60#define IP_VS_SO_GET_DEST (IP_VS_BASE_CTL + 5) 61#define IP_VS_SO_GET_TIMEOUT (IP_VS_BASE_CTL + 6) 62#define IP_VS_SO_GET_DAEMON (IP_VS_BASE_CTL + 7) 63#define IP_VS_SO_GET_MAX IP_VS_SO_GET_DAEMON 64#define IP_VS_CONN_F_FWD_MASK 0x0007 65#define IP_VS_CONN_F_MASQ 0x0000 66#define IP_VS_CONN_F_LOCALNODE 0x0001 67#define IP_VS_CONN_F_TUNNEL 0x0002 68#define IP_VS_CONN_F_DROUTE 0x0003 69#define IP_VS_CONN_F_BYPASS 0x0004 70#define IP_VS_CONN_F_SYNC 0x0020 71#define IP_VS_CONN_F_HASHED 0x0040 72#define IP_VS_CONN_F_NOOUTPUT 0x0080 73#define IP_VS_CONN_F_INACTIVE 0x0100 74#define IP_VS_CONN_F_OUT_SEQ 0x0200 75#define IP_VS_CONN_F_IN_SEQ 0x0400 76#define IP_VS_CONN_F_SEQ_MASK 0x0600 77#define IP_VS_CONN_F_NO_CPORT 0x0800 78#define IP_VS_CONN_F_TEMPLATE 0x1000 79#define IP_VS_CONN_F_ONE_PACKET 0x2000 80#define IP_VS_CONN_F_BACKUP_MASK (IP_VS_CONN_F_FWD_MASK | IP_VS_CONN_F_NOOUTPUT | IP_VS_CONN_F_INACTIVE | IP_VS_CONN_F_SEQ_MASK | IP_VS_CONN_F_NO_CPORT | IP_VS_CONN_F_TEMPLATE) 81#define IP_VS_CONN_F_BACKUP_UPD_MASK (IP_VS_CONN_F_INACTIVE | IP_VS_CONN_F_SEQ_MASK) 82#define IP_VS_CONN_F_NFCT (1 << 16) 83#define IP_VS_CONN_F_DEST_MASK (IP_VS_CONN_F_FWD_MASK | IP_VS_CONN_F_ONE_PACKET | IP_VS_CONN_F_NFCT | 0) 84#define IP_VS_SCHEDNAME_MAXLEN 16 85#define IP_VS_PENAME_MAXLEN 16 86#define IP_VS_IFNAME_MAXLEN 16 87#define IP_VS_PEDATA_MAXLEN 255 88struct ip_vs_service_user { 89 __u16 protocol; 90 __be32 addr; 91 __be16 port; 92 __u32 fwmark; 93 char sched_name[IP_VS_SCHEDNAME_MAXLEN]; 94 unsigned int flags; 95 unsigned int timeout; 96 __be32 netmask; 97}; 98struct ip_vs_dest_user { 99 __be32 addr; 100 __be16 port; 101 unsigned int conn_flags; 102 int weight; 103 __u32 u_threshold; 104 __u32 l_threshold; 105}; 106struct ip_vs_stats_user { 107 __u32 conns; 108 __u32 inpkts; 109 __u32 outpkts; 110 __u64 inbytes; 111 __u64 outbytes; 112 __u32 cps; 113 __u32 inpps; 114 __u32 outpps; 115 __u32 inbps; 116 __u32 outbps; 117}; 118struct ip_vs_getinfo { 119 unsigned int version; 120 unsigned int size; 121 unsigned int num_services; 122}; 123struct ip_vs_service_entry { 124 __u16 protocol; 125 __be32 addr; 126 __be16 port; 127 __u32 fwmark; 128 char sched_name[IP_VS_SCHEDNAME_MAXLEN]; 129 unsigned int flags; 130 unsigned int timeout; 131 __be32 netmask; 132 unsigned int num_dests; 133 struct ip_vs_stats_user stats; 134}; 135struct ip_vs_dest_entry { 136 __be32 addr; 137 __be16 port; 138 unsigned int conn_flags; 139 int weight; 140 __u32 u_threshold; 141 __u32 l_threshold; 142 __u32 activeconns; 143 __u32 inactconns; 144 __u32 persistconns; 145 struct ip_vs_stats_user stats; 146}; 147struct ip_vs_get_dests { 148 __u16 protocol; 149 __be32 addr; 150 __be16 port; 151 __u32 fwmark; 152 unsigned int num_dests; 153 struct ip_vs_dest_entry entrytable[0]; 154}; 155struct ip_vs_get_services { 156 unsigned int num_services; 157 struct ip_vs_service_entry entrytable[0]; 158}; 159struct ip_vs_timeout_user { 160 int tcp_timeout; 161 int tcp_fin_timeout; 162 int udp_timeout; 163}; 164struct ip_vs_daemon_user { 165 int state; 166 char mcast_ifn[IP_VS_IFNAME_MAXLEN]; 167 int syncid; 168}; 169#define IPVS_GENL_NAME "IPVS" 170#define IPVS_GENL_VERSION 0x1 171struct ip_vs_flags { 172 __u32 flags; 173 __u32 mask; 174}; 175enum { 176 IPVS_CMD_UNSPEC = 0, 177 IPVS_CMD_NEW_SERVICE, 178 IPVS_CMD_SET_SERVICE, 179 IPVS_CMD_DEL_SERVICE, 180 IPVS_CMD_GET_SERVICE, 181 IPVS_CMD_NEW_DEST, 182 IPVS_CMD_SET_DEST, 183 IPVS_CMD_DEL_DEST, 184 IPVS_CMD_GET_DEST, 185 IPVS_CMD_NEW_DAEMON, 186 IPVS_CMD_DEL_DAEMON, 187 IPVS_CMD_GET_DAEMON, 188 IPVS_CMD_SET_CONFIG, 189 IPVS_CMD_GET_CONFIG, 190 IPVS_CMD_SET_INFO, 191 IPVS_CMD_GET_INFO, 192 IPVS_CMD_ZERO, 193 IPVS_CMD_FLUSH, 194 __IPVS_CMD_MAX, 195}; 196#define IPVS_CMD_MAX (__IPVS_CMD_MAX - 1) 197enum { 198 IPVS_CMD_ATTR_UNSPEC = 0, 199 IPVS_CMD_ATTR_SERVICE, 200 IPVS_CMD_ATTR_DEST, 201 IPVS_CMD_ATTR_DAEMON, 202 IPVS_CMD_ATTR_TIMEOUT_TCP, 203 IPVS_CMD_ATTR_TIMEOUT_TCP_FIN, 204 IPVS_CMD_ATTR_TIMEOUT_UDP, 205 __IPVS_CMD_ATTR_MAX, 206}; 207#define IPVS_CMD_ATTR_MAX (__IPVS_CMD_ATTR_MAX - 1) 208enum { 209 IPVS_SVC_ATTR_UNSPEC = 0, 210 IPVS_SVC_ATTR_AF, 211 IPVS_SVC_ATTR_PROTOCOL, 212 IPVS_SVC_ATTR_ADDR, 213 IPVS_SVC_ATTR_PORT, 214 IPVS_SVC_ATTR_FWMARK, 215 IPVS_SVC_ATTR_SCHED_NAME, 216 IPVS_SVC_ATTR_FLAGS, 217 IPVS_SVC_ATTR_TIMEOUT, 218 IPVS_SVC_ATTR_NETMASK, 219 IPVS_SVC_ATTR_STATS, 220 IPVS_SVC_ATTR_PE_NAME, 221 IPVS_SVC_ATTR_STATS64, 222 __IPVS_SVC_ATTR_MAX, 223}; 224#define IPVS_SVC_ATTR_MAX (__IPVS_SVC_ATTR_MAX - 1) 225enum { 226 IPVS_DEST_ATTR_UNSPEC = 0, 227 IPVS_DEST_ATTR_ADDR, 228 IPVS_DEST_ATTR_PORT, 229 IPVS_DEST_ATTR_FWD_METHOD, 230 IPVS_DEST_ATTR_WEIGHT, 231 IPVS_DEST_ATTR_U_THRESH, 232 IPVS_DEST_ATTR_L_THRESH, 233 IPVS_DEST_ATTR_ACTIVE_CONNS, 234 IPVS_DEST_ATTR_INACT_CONNS, 235 IPVS_DEST_ATTR_PERSIST_CONNS, 236 IPVS_DEST_ATTR_STATS, 237 IPVS_DEST_ATTR_ADDR_FAMILY, 238 IPVS_DEST_ATTR_STATS64, 239 __IPVS_DEST_ATTR_MAX, 240}; 241#define IPVS_DEST_ATTR_MAX (__IPVS_DEST_ATTR_MAX - 1) 242enum { 243 IPVS_DAEMON_ATTR_UNSPEC = 0, 244 IPVS_DAEMON_ATTR_STATE, 245 IPVS_DAEMON_ATTR_MCAST_IFN, 246 IPVS_DAEMON_ATTR_SYNC_ID, 247 IPVS_DAEMON_ATTR_SYNC_MAXLEN, 248 IPVS_DAEMON_ATTR_MCAST_GROUP, 249 IPVS_DAEMON_ATTR_MCAST_GROUP6, 250 IPVS_DAEMON_ATTR_MCAST_PORT, 251 IPVS_DAEMON_ATTR_MCAST_TTL, 252 __IPVS_DAEMON_ATTR_MAX, 253}; 254#define IPVS_DAEMON_ATTR_MAX (__IPVS_DAEMON_ATTR_MAX - 1) 255enum { 256 IPVS_STATS_ATTR_UNSPEC = 0, 257 IPVS_STATS_ATTR_CONNS, 258 IPVS_STATS_ATTR_INPKTS, 259 IPVS_STATS_ATTR_OUTPKTS, 260 IPVS_STATS_ATTR_INBYTES, 261 IPVS_STATS_ATTR_OUTBYTES, 262 IPVS_STATS_ATTR_CPS, 263 IPVS_STATS_ATTR_INPPS, 264 IPVS_STATS_ATTR_OUTPPS, 265 IPVS_STATS_ATTR_INBPS, 266 IPVS_STATS_ATTR_OUTBPS, 267 IPVS_STATS_ATTR_PAD, 268 __IPVS_STATS_ATTR_MAX, 269}; 270#define IPVS_STATS_ATTR_MAX (__IPVS_STATS_ATTR_MAX - 1) 271enum { 272 IPVS_INFO_ATTR_UNSPEC = 0, 273 IPVS_INFO_ATTR_VERSION, 274 IPVS_INFO_ATTR_CONN_TAB_SIZE, 275 __IPVS_INFO_ATTR_MAX, 276}; 277#define IPVS_INFO_ATTR_MAX (__IPVS_INFO_ATTR_MAX - 1) 278#endif 279