ip_set.h
001: #ifndef _IP_SET_H
002: #define _IP_SET_H
003:
004: <gozem@linux.nu>
005: <bof@bof.de>
006: <gandalf@wlug.westbo.se>
007: <kadlec@blackhole.kfki.hu>
008:
009:
010:
011:
012:
013:
014:
015: #define IPSET_PROTOCOL 6
016:
017:
018: #define IPSET_MAXNAMELEN 32
019:
020:
021: enum ipset_cmd {
022: IPSET_CMD_NONE,
023: IPSET_CMD_PROTOCOL,
024: IPSET_CMD_CREATE,
025: IPSET_CMD_DESTROY,
026: IPSET_CMD_FLUSH,
027: IPSET_CMD_RENAME,
028: IPSET_CMD_SWAP,
029: IPSET_CMD_LIST,
030: IPSET_CMD_SAVE,
031: IPSET_CMD_ADD,
032: IPSET_CMD_DEL,
033: IPSET_CMD_TEST,
034: IPSET_CMD_HEADER,
035: IPSET_CMD_TYPE,
036: IPSET_MSG_MAX,
037:
038:
039: IPSET_CMD_RESTORE = IPSET_MSG_MAX,
040: IPSET_CMD_HELP,
041: IPSET_CMD_VERSION,
042: IPSET_CMD_QUIT,
043:
044: IPSET_CMD_MAX,
045:
046: IPSET_CMD_COMMIT = IPSET_CMD_MAX,
047: };
048:
049:
050: enum {
051: IPSET_ATTR_UNSPEC,
052: IPSET_ATTR_PROTOCOL,
053: IPSET_ATTR_SETNAME,
054: IPSET_ATTR_TYPENAME,
055: IPSET_ATTR_SETNAME2 = IPSET_ATTR_TYPENAME,
056: IPSET_ATTR_REVISION,
057: IPSET_ATTR_FAMILY,
058: IPSET_ATTR_FLAGS,
059: IPSET_ATTR_DATA,
060: IPSET_ATTR_ADT,
061: IPSET_ATTR_LINENO,
062: IPSET_ATTR_PROTOCOL_MIN,
063: IPSET_ATTR_REVISION_MIN = IPSET_ATTR_PROTOCOL_MIN,
064: __IPSET_ATTR_CMD_MAX,
065: };
066: #define IPSET_ATTR_CMD_MAX (__IPSET_ATTR_CMD_MAX - 1)
067:
068:
069: enum {
070: IPSET_ATTR_IP = IPSET_ATTR_UNSPEC + 1,
071: IPSET_ATTR_IP_FROM = IPSET_ATTR_IP,
072: IPSET_ATTR_IP_TO,
073: IPSET_ATTR_CIDR,
074: IPSET_ATTR_PORT,
075: IPSET_ATTR_PORT_FROM = IPSET_ATTR_PORT,
076: IPSET_ATTR_PORT_TO,
077: IPSET_ATTR_TIMEOUT,
078: IPSET_ATTR_PROTO,
079: IPSET_ATTR_CADT_FLAGS,
080: IPSET_ATTR_CADT_LINENO = IPSET_ATTR_LINENO,
081:
082: IPSET_ATTR_CADT_MAX = 16,
083:
084: IPSET_ATTR_GC,
085: IPSET_ATTR_HASHSIZE,
086: IPSET_ATTR_MAXELEM,
087: IPSET_ATTR_NETMASK,
088: IPSET_ATTR_PROBES,
089: IPSET_ATTR_RESIZE,
090: IPSET_ATTR_SIZE,
091:
092: IPSET_ATTR_ELEMENTS,
093: IPSET_ATTR_REFERENCES,
094: IPSET_ATTR_MEMSIZE,
095:
096: __IPSET_ATTR_CREATE_MAX,
097: };
098: #define IPSET_ATTR_CREATE_MAX (__IPSET_ATTR_CREATE_MAX - 1)
099:
100:
101: enum {
102: IPSET_ATTR_ETHER = IPSET_ATTR_CADT_MAX + 1,
103: IPSET_ATTR_NAME,
104: IPSET_ATTR_NAMEREF,
105: IPSET_ATTR_IP2,
106: IPSET_ATTR_CIDR2,
107: IPSET_ATTR_IP2_TO,
108: IPSET_ATTR_IFACE,
109: __IPSET_ATTR_ADT_MAX,
110: };
111: #define IPSET_ATTR_ADT_MAX (__IPSET_ATTR_ADT_MAX - 1)
112:
113:
114: enum {
115: IPSET_ATTR_IPADDR_IPV4 = IPSET_ATTR_UNSPEC + 1,
116: IPSET_ATTR_IPADDR_IPV6,
117: __IPSET_ATTR_IPADDR_MAX,
118: };
119: #define IPSET_ATTR_IPADDR_MAX (__IPSET_ATTR_IPADDR_MAX - 1)
120:
121:
122: enum ipset_errno {
123: IPSET_ERR_PRIVATE = 4096,
124: IPSET_ERR_PROTOCOL,
125: IPSET_ERR_FIND_TYPE,
126: IPSET_ERR_MAX_SETS,
127: IPSET_ERR_BUSY,
128: IPSET_ERR_EXIST_SETNAME2,
129: IPSET_ERR_TYPE_MISMATCH,
130: IPSET_ERR_EXIST,
131: IPSET_ERR_INVALID_CIDR,
132: IPSET_ERR_INVALID_NETMASK,
133: IPSET_ERR_INVALID_FAMILY,
134: IPSET_ERR_TIMEOUT,
135: IPSET_ERR_REFERENCED,
136: IPSET_ERR_IPADDR_IPV4,
137: IPSET_ERR_IPADDR_IPV6,
138:
139:
140: IPSET_ERR_TYPE_SPECIFIC = 4352,
141: };
142:
143:
144: enum ipset_cmd_flags {
145: IPSET_FLAG_BIT_EXIST = 0,
146: IPSET_FLAG_EXIST = (1 << IPSET_FLAG_BIT_EXIST),
147: IPSET_FLAG_BIT_LIST_SETNAME = 1,
148: IPSET_FLAG_LIST_SETNAME = (1 << IPSET_FLAG_BIT_LIST_SETNAME),
149: IPSET_FLAG_BIT_LIST_HEADER = 2,
150: IPSET_FLAG_LIST_HEADER = (1 << IPSET_FLAG_BIT_LIST_HEADER),
151: };
152:
153:
154: enum ipset_cadt_flags {
155: IPSET_FLAG_BIT_BEFORE = 0,
156: IPSET_FLAG_BEFORE = (1 << IPSET_FLAG_BIT_BEFORE),
157: IPSET_FLAG_BIT_PHYSDEV = 1,
158: IPSET_FLAG_PHYSDEV = (1 << IPSET_FLAG_BIT_PHYSDEV),
159: };
160:
161:
162: enum ipset_adt {
163: IPSET_ADD,
164: IPSET_DEL,
165: IPSET_TEST,
166: IPSET_ADT_MAX,
167: IPSET_CREATE = IPSET_ADT_MAX,
168: IPSET_CADT_MAX,
169: };
170:
171:
172: #endif
173:
© Andrew Scott 2006 -
2025,
All Rights Reserved