1#ifndef _IPT_U32_H 2#define _IPT_U32_H 3#include <linux/netfilter_ipv4/ip_tables.h> 4 5enum ipt_u32_ops 6{ 7 IPT_U32_AND, 8 IPT_U32_LEFTSH, 9 IPT_U32_RIGHTSH, 10 IPT_U32_AT 11}; 12 13struct ipt_u32_location_element 14{ 15 u_int32_t number; 16 u_int8_t nextop; 17}; 18struct ipt_u32_value_element 19{ 20 u_int32_t min; 21 u_int32_t max; 22}; 23/* *** any way to allow for an arbitrary number of elements? 24 for now I settle for a limit of 10 of each */ 25#define U32MAXSIZE 10 26struct ipt_u32_test 27{ 28 u_int8_t nnums; 29 struct ipt_u32_location_element location[U32MAXSIZE+1]; 30 u_int8_t nvalues; 31 struct ipt_u32_value_element value[U32MAXSIZE+1]; 32}; 33 34struct ipt_u32 35{ 36 u_int8_t ntests; 37 u_int8_t invert; 38 struct ipt_u32_test tests[U32MAXSIZE+1]; 39}; 40 41#endif /*_IPT_U32_H*/ 42