1d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik#ifndef _XT_SET_H 2d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik#define _XT_SET_H 3d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik 4e3e241b2769b27669d05f0a05083acd21b4faa2cPatrick McHardy#include <linux/types.h> 5d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik#include <linux/netfilter/ipset/ip_set.h> 6d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik 7d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik/* Revision 0 interface: backward compatible with netfilter/iptables */ 8d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik 9d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik/* 10d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik * Option flags for kernel operations (xt_set_info_v0) 11d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik */ 12d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik#define IPSET_SRC 0x01 /* Source match/add */ 13d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik#define IPSET_DST 0x02 /* Destination match/add */ 14d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik#define IPSET_MATCH_INV 0x04 /* Inverse matching */ 15d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik 16d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsikstruct xt_set_info_v0 { 17d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik ip_set_id_t index; 18d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik union { 19d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik __u32 flags[IPSET_DIM_MAX + 1]; 20d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik struct { 21d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik __u32 __flags[IPSET_DIM_MAX]; 22d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik __u8 dim; 23d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik __u8 flags; 24d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik } compat; 25d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik } u; 26d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik}; 27d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik 28d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik/* match and target infos */ 29d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsikstruct xt_set_info_match_v0 { 30d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik struct xt_set_info_v0 match_set; 31d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik}; 32d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik 33d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsikstruct xt_set_info_target_v0 { 34d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik struct xt_set_info_v0 add_set; 35d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik struct xt_set_info_v0 del_set; 36d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik}; 37d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik 38ac8cc925d35fc5a05da2bd097e602f20de2478a4Jozsef Kadlecsik/* Revision 1 match and target */ 39d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik 40d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsikstruct xt_set_info { 41d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik ip_set_id_t index; 42d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik __u8 dim; 43d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik __u8 flags; 44d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik}; 45d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik 46d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik/* match and target infos */ 47ac8cc925d35fc5a05da2bd097e602f20de2478a4Jozsef Kadlecsikstruct xt_set_info_match_v1 { 48d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik struct xt_set_info match_set; 49d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik}; 50d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik 51ac8cc925d35fc5a05da2bd097e602f20de2478a4Jozsef Kadlecsikstruct xt_set_info_target_v1 { 52d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik struct xt_set_info add_set; 53d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik struct xt_set_info del_set; 54d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik}; 55d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik 56ac8cc925d35fc5a05da2bd097e602f20de2478a4Jozsef Kadlecsik/* Revision 2 target */ 57ac8cc925d35fc5a05da2bd097e602f20de2478a4Jozsef Kadlecsik 58ac8cc925d35fc5a05da2bd097e602f20de2478a4Jozsef Kadlecsikstruct xt_set_info_target_v2 { 59ac8cc925d35fc5a05da2bd097e602f20de2478a4Jozsef Kadlecsik struct xt_set_info add_set; 60ac8cc925d35fc5a05da2bd097e602f20de2478a4Jozsef Kadlecsik struct xt_set_info del_set; 615276e16bb6f35412583518d6f04651dd9dc114beJan Engelhardt __u32 flags; 625276e16bb6f35412583518d6f04651dd9dc114beJan Engelhardt __u32 timeout; 63ac8cc925d35fc5a05da2bd097e602f20de2478a4Jozsef Kadlecsik}; 64ac8cc925d35fc5a05da2bd097e602f20de2478a4Jozsef Kadlecsik 65d956798d82d2d331c031301965d69e17a1a48a2bJozsef Kadlecsik#endif /*_XT_SET_H*/ 66