Home | History | Annotate | Download | only in linux
      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
     88 struct 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 };
     98 struct 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 };
    106 struct 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 };
    118 struct ip_vs_getinfo {
    119   unsigned int version;
    120   unsigned int size;
    121   unsigned int num_services;
    122 };
    123 struct 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 };
    135 struct 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 };
    147 struct 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 };
    155 struct ip_vs_get_services {
    156   unsigned int num_services;
    157   struct ip_vs_service_entry entrytable[0];
    158 };
    159 struct ip_vs_timeout_user {
    160   int tcp_timeout;
    161   int tcp_fin_timeout;
    162   int udp_timeout;
    163 };
    164 struct 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
    171 struct ip_vs_flags {
    172   __u32 flags;
    173   __u32 mask;
    174 };
    175 enum {
    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)
    197 enum {
    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)
    208 enum {
    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)
    225 enum {
    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)
    242 enum {
    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)
    255 enum {
    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)
    271 enum {
    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