Home | History | Annotate | Download | only in netfilter_ipv4
      1 #ifndef _IPT_POLICY_H
      2 #define _IPT_POLICY_H
      3 
      4 #define IPT_POLICY_MAX_ELEM	4
      5 
      6 #ifndef __KERNEL__
      7 #include <netinet/in.h>
      8 #endif
      9 
     10 enum ipt_policy_flags
     11 {
     12 	IPT_POLICY_MATCH_IN	= 0x1,
     13 	IPT_POLICY_MATCH_OUT	= 0x2,
     14 	IPT_POLICY_MATCH_NONE	= 0x4,
     15 	IPT_POLICY_MATCH_STRICT	= 0x8,
     16 };
     17 
     18 enum ipt_policy_modes
     19 {
     20 	IPT_POLICY_MODE_TRANSPORT,
     21 	IPT_POLICY_MODE_TUNNEL
     22 };
     23 
     24 struct ipt_policy_spec
     25 {
     26 	u_int8_t	saddr:1,
     27 			daddr:1,
     28 			proto:1,
     29 			mode:1,
     30 			spi:1,
     31 			reqid:1;
     32 };
     33 
     34 union ipt_policy_addr
     35 {
     36 	struct in_addr	a4;
     37 	struct in6_addr	a6;
     38 };
     39 
     40 struct ipt_policy_elem
     41 {
     42 	union ipt_policy_addr	saddr;
     43 	union ipt_policy_addr	smask;
     44 	union ipt_policy_addr	daddr;
     45 	union ipt_policy_addr	dmask;
     46 	u_int32_t		spi;
     47 	u_int32_t		reqid;
     48 	u_int8_t		proto;
     49 	u_int8_t		mode;
     50 
     51 	struct ipt_policy_spec	match;
     52 	struct ipt_policy_spec	invert;
     53 };
     54 
     55 struct ipt_policy_info
     56 {
     57 	struct ipt_policy_elem pol[IPT_POLICY_MAX_ELEM];
     58 	u_int16_t flags;
     59 	u_int16_t len;
     60 };
     61 
     62 #endif /* _IPT_POLICY_H */
     63