ip_set.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 _UAPI_IP_SET_H 20#define _UAPI_IP_SET_H 21#include <linux/types.h> 22#define IPSET_PROTOCOL 6 23#define IPSET_MAXNAMELEN 32 24#define IPSET_MAX_COMMENT_SIZE 255 25enum ipset_cmd { 26 IPSET_CMD_NONE, 27 IPSET_CMD_PROTOCOL, 28 IPSET_CMD_CREATE, 29 IPSET_CMD_DESTROY, 30 IPSET_CMD_FLUSH, 31 IPSET_CMD_RENAME, 32 IPSET_CMD_SWAP, 33 IPSET_CMD_LIST, 34 IPSET_CMD_SAVE, 35 IPSET_CMD_ADD, 36 IPSET_CMD_DEL, 37 IPSET_CMD_TEST, 38 IPSET_CMD_HEADER, 39 IPSET_CMD_TYPE, 40 IPSET_MSG_MAX, 41 IPSET_CMD_RESTORE = IPSET_MSG_MAX, 42 IPSET_CMD_HELP, 43 IPSET_CMD_VERSION, 44 IPSET_CMD_QUIT, 45 IPSET_CMD_MAX, 46 IPSET_CMD_COMMIT = IPSET_CMD_MAX, 47}; 48enum { 49 IPSET_ATTR_UNSPEC, 50 IPSET_ATTR_PROTOCOL, 51 IPSET_ATTR_SETNAME, 52 IPSET_ATTR_TYPENAME, 53 IPSET_ATTR_SETNAME2 = IPSET_ATTR_TYPENAME, 54 IPSET_ATTR_REVISION, 55 IPSET_ATTR_FAMILY, 56 IPSET_ATTR_FLAGS, 57 IPSET_ATTR_DATA, 58 IPSET_ATTR_ADT, 59 IPSET_ATTR_LINENO, 60 IPSET_ATTR_PROTOCOL_MIN, 61 IPSET_ATTR_REVISION_MIN = IPSET_ATTR_PROTOCOL_MIN, 62 __IPSET_ATTR_CMD_MAX, 63}; 64#define IPSET_ATTR_CMD_MAX (__IPSET_ATTR_CMD_MAX - 1) 65enum { 66 IPSET_ATTR_IP = IPSET_ATTR_UNSPEC + 1, 67 IPSET_ATTR_IP_FROM = IPSET_ATTR_IP, 68 IPSET_ATTR_IP_TO, 69 IPSET_ATTR_CIDR, 70 IPSET_ATTR_PORT, 71 IPSET_ATTR_PORT_FROM = IPSET_ATTR_PORT, 72 IPSET_ATTR_PORT_TO, 73 IPSET_ATTR_TIMEOUT, 74 IPSET_ATTR_PROTO, 75 IPSET_ATTR_CADT_FLAGS, 76 IPSET_ATTR_CADT_LINENO = IPSET_ATTR_LINENO, 77 IPSET_ATTR_MARK, 78 IPSET_ATTR_MARKMASK, 79 IPSET_ATTR_CADT_MAX = 16, 80 IPSET_ATTR_GC, 81 IPSET_ATTR_HASHSIZE, 82 IPSET_ATTR_MAXELEM, 83 IPSET_ATTR_NETMASK, 84 IPSET_ATTR_PROBES, 85 IPSET_ATTR_RESIZE, 86 IPSET_ATTR_SIZE, 87 IPSET_ATTR_ELEMENTS, 88 IPSET_ATTR_REFERENCES, 89 IPSET_ATTR_MEMSIZE, 90 __IPSET_ATTR_CREATE_MAX, 91}; 92#define IPSET_ATTR_CREATE_MAX (__IPSET_ATTR_CREATE_MAX - 1) 93enum { 94 IPSET_ATTR_ETHER = IPSET_ATTR_CADT_MAX + 1, 95 IPSET_ATTR_NAME, 96 IPSET_ATTR_NAMEREF, 97 IPSET_ATTR_IP2, 98 IPSET_ATTR_CIDR2, 99 IPSET_ATTR_IP2_TO, 100 IPSET_ATTR_IFACE, 101 IPSET_ATTR_BYTES, 102 IPSET_ATTR_PACKETS, 103 IPSET_ATTR_COMMENT, 104 IPSET_ATTR_SKBMARK, 105 IPSET_ATTR_SKBPRIO, 106 IPSET_ATTR_SKBQUEUE, 107 IPSET_ATTR_PAD, 108 __IPSET_ATTR_ADT_MAX, 109}; 110#define IPSET_ATTR_ADT_MAX (__IPSET_ATTR_ADT_MAX - 1) 111enum { 112 IPSET_ATTR_IPADDR_IPV4 = IPSET_ATTR_UNSPEC + 1, 113 IPSET_ATTR_IPADDR_IPV6, 114 __IPSET_ATTR_IPADDR_MAX, 115}; 116#define IPSET_ATTR_IPADDR_MAX (__IPSET_ATTR_IPADDR_MAX - 1) 117enum ipset_errno { 118 IPSET_ERR_PRIVATE = 4096, 119 IPSET_ERR_PROTOCOL, 120 IPSET_ERR_FIND_TYPE, 121 IPSET_ERR_MAX_SETS, 122 IPSET_ERR_BUSY, 123 IPSET_ERR_EXIST_SETNAME2, 124 IPSET_ERR_TYPE_MISMATCH, 125 IPSET_ERR_EXIST, 126 IPSET_ERR_INVALID_CIDR, 127 IPSET_ERR_INVALID_NETMASK, 128 IPSET_ERR_INVALID_FAMILY, 129 IPSET_ERR_TIMEOUT, 130 IPSET_ERR_REFERENCED, 131 IPSET_ERR_IPADDR_IPV4, 132 IPSET_ERR_IPADDR_IPV6, 133 IPSET_ERR_COUNTER, 134 IPSET_ERR_COMMENT, 135 IPSET_ERR_INVALID_MARKMASK, 136 IPSET_ERR_SKBINFO, 137 IPSET_ERR_TYPE_SPECIFIC = 4352, 138}; 139enum ipset_cmd_flags { 140 IPSET_FLAG_BIT_EXIST = 0, 141 IPSET_FLAG_EXIST = (1 << IPSET_FLAG_BIT_EXIST), 142 IPSET_FLAG_BIT_LIST_SETNAME = 1, 143 IPSET_FLAG_LIST_SETNAME = (1 << IPSET_FLAG_BIT_LIST_SETNAME), 144 IPSET_FLAG_BIT_LIST_HEADER = 2, 145 IPSET_FLAG_LIST_HEADER = (1 << IPSET_FLAG_BIT_LIST_HEADER), 146 IPSET_FLAG_BIT_SKIP_COUNTER_UPDATE = 3, 147 IPSET_FLAG_SKIP_COUNTER_UPDATE = (1 << IPSET_FLAG_BIT_SKIP_COUNTER_UPDATE), 148 IPSET_FLAG_BIT_SKIP_SUBCOUNTER_UPDATE = 4, 149 IPSET_FLAG_SKIP_SUBCOUNTER_UPDATE = (1 << IPSET_FLAG_BIT_SKIP_SUBCOUNTER_UPDATE), 150 IPSET_FLAG_BIT_MATCH_COUNTERS = 5, 151 IPSET_FLAG_MATCH_COUNTERS = (1 << IPSET_FLAG_BIT_MATCH_COUNTERS), 152 IPSET_FLAG_BIT_RETURN_NOMATCH = 7, 153 IPSET_FLAG_RETURN_NOMATCH = (1 << IPSET_FLAG_BIT_RETURN_NOMATCH), 154 IPSET_FLAG_BIT_MAP_SKBMARK = 8, 155 IPSET_FLAG_MAP_SKBMARK = (1 << IPSET_FLAG_BIT_MAP_SKBMARK), 156 IPSET_FLAG_BIT_MAP_SKBPRIO = 9, 157 IPSET_FLAG_MAP_SKBPRIO = (1 << IPSET_FLAG_BIT_MAP_SKBPRIO), 158 IPSET_FLAG_BIT_MAP_SKBQUEUE = 10, 159 IPSET_FLAG_MAP_SKBQUEUE = (1 << IPSET_FLAG_BIT_MAP_SKBQUEUE), 160 IPSET_FLAG_CMD_MAX = 15, 161}; 162enum ipset_cadt_flags { 163 IPSET_FLAG_BIT_BEFORE = 0, 164 IPSET_FLAG_BEFORE = (1 << IPSET_FLAG_BIT_BEFORE), 165 IPSET_FLAG_BIT_PHYSDEV = 1, 166 IPSET_FLAG_PHYSDEV = (1 << IPSET_FLAG_BIT_PHYSDEV), 167 IPSET_FLAG_BIT_NOMATCH = 2, 168 IPSET_FLAG_NOMATCH = (1 << IPSET_FLAG_BIT_NOMATCH), 169 IPSET_FLAG_BIT_WITH_COUNTERS = 3, 170 IPSET_FLAG_WITH_COUNTERS = (1 << IPSET_FLAG_BIT_WITH_COUNTERS), 171 IPSET_FLAG_BIT_WITH_COMMENT = 4, 172 IPSET_FLAG_WITH_COMMENT = (1 << IPSET_FLAG_BIT_WITH_COMMENT), 173 IPSET_FLAG_BIT_WITH_FORCEADD = 5, 174 IPSET_FLAG_WITH_FORCEADD = (1 << IPSET_FLAG_BIT_WITH_FORCEADD), 175 IPSET_FLAG_BIT_WITH_SKBINFO = 6, 176 IPSET_FLAG_WITH_SKBINFO = (1 << IPSET_FLAG_BIT_WITH_SKBINFO), 177 IPSET_FLAG_CADT_MAX = 15, 178}; 179enum ipset_create_flags { 180 IPSET_CREATE_FLAG_BIT_FORCEADD = 0, 181 IPSET_CREATE_FLAG_FORCEADD = (1 << IPSET_CREATE_FLAG_BIT_FORCEADD), 182 IPSET_CREATE_FLAG_BIT_MAX = 7, 183}; 184enum ipset_adt { 185 IPSET_ADD, 186 IPSET_DEL, 187 IPSET_TEST, 188 IPSET_ADT_MAX, 189 IPSET_CREATE = IPSET_ADT_MAX, 190 IPSET_CADT_MAX, 191}; 192typedef __u16 ip_set_id_t; 193#define IPSET_INVALID_ID 65535 194enum ip_set_dim { 195 IPSET_DIM_ZERO = 0, 196 IPSET_DIM_ONE, 197 IPSET_DIM_TWO, 198 IPSET_DIM_THREE, 199 IPSET_DIM_MAX = 6, 200 IPSET_BIT_RETURN_NOMATCH = 7, 201}; 202enum ip_set_kopt { 203 IPSET_INV_MATCH = (1 << IPSET_DIM_ZERO), 204 IPSET_DIM_ONE_SRC = (1 << IPSET_DIM_ONE), 205 IPSET_DIM_TWO_SRC = (1 << IPSET_DIM_TWO), 206 IPSET_DIM_THREE_SRC = (1 << IPSET_DIM_THREE), 207 IPSET_RETURN_NOMATCH = (1 << IPSET_BIT_RETURN_NOMATCH), 208}; 209enum { 210 IPSET_COUNTER_NONE = 0, 211 IPSET_COUNTER_EQ, 212 IPSET_COUNTER_NE, 213 IPSET_COUNTER_LT, 214 IPSET_COUNTER_GT, 215}; 216struct ip_set_counter_match0 { 217 __u8 op; 218 __u64 value; 219}; 220struct ip_set_counter_match { 221 __aligned_u64 value; 222 __u8 op; 223}; 224#define SO_IP_SET 83 225union ip_set_name_index { 226 char name[IPSET_MAXNAMELEN]; 227 ip_set_id_t index; 228}; 229#define IP_SET_OP_GET_BYNAME 0x00000006 230struct ip_set_req_get_set { 231 unsigned int op; 232 unsigned int version; 233 union ip_set_name_index set; 234}; 235#define IP_SET_OP_GET_BYINDEX 0x00000007 236#define IP_SET_OP_GET_FNAME 0x00000008 237struct ip_set_req_get_set_family { 238 unsigned int op; 239 unsigned int version; 240 unsigned int family; 241 union ip_set_name_index set; 242}; 243#define IP_SET_OP_VERSION 0x00000100 244struct ip_set_req_version { 245 unsigned int op; 246 unsigned int version; 247}; 248#endif 249