Home | History | Annotate | Download | only in netfilter
      1 #ifndef _XT_POLICY_H
      2 #define _XT_POLICY_H
      3 
      4 #include <linux/types.h>
      5 
      6 #define XT_POLICY_MAX_ELEM	4
      7 
      8 enum xt_policy_flags {
      9 	XT_POLICY_MATCH_IN	= 0x1,
     10 	XT_POLICY_MATCH_OUT	= 0x2,
     11 	XT_POLICY_MATCH_NONE	= 0x4,
     12 	XT_POLICY_MATCH_STRICT	= 0x8,
     13 };
     14 
     15 enum xt_policy_modes {
     16 	XT_POLICY_MODE_TRANSPORT,
     17 	XT_POLICY_MODE_TUNNEL
     18 };
     19 
     20 struct xt_policy_spec {
     21 	__u8	saddr:1,
     22 			daddr:1,
     23 			proto:1,
     24 			mode:1,
     25 			spi:1,
     26 			reqid:1;
     27 };
     28 
     29 #ifndef __KERNEL__
     30 union xt_policy_addr {
     31 	struct in_addr	a4;
     32 	struct in6_addr	a6;
     33 };
     34 #endif
     35 
     36 struct xt_policy_elem {
     37 	union {
     38 #ifdef __KERNEL__
     39 		struct {
     40 			union nf_inet_addr saddr;
     41 			union nf_inet_addr smask;
     42 			union nf_inet_addr daddr;
     43 			union nf_inet_addr dmask;
     44 		};
     45 #else
     46 		struct {
     47 			union xt_policy_addr saddr;
     48 			union xt_policy_addr smask;
     49 			union xt_policy_addr daddr;
     50 			union xt_policy_addr dmask;
     51 		};
     52 #endif
     53 	};
     54 	__be32			spi;
     55 	__u32		reqid;
     56 	__u8		proto;
     57 	__u8		mode;
     58 
     59 	struct xt_policy_spec	match;
     60 	struct xt_policy_spec	invert;
     61 };
     62 
     63 struct xt_policy_info {
     64 	struct xt_policy_elem pol[XT_POLICY_MAX_ELEM];
     65 	__u16 flags;
     66 	__u16 len;
     67 };
     68 
     69 #endif /* _XT_POLICY_H */
     70