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 {
     10 	XT_POLICY_MATCH_IN	= 0x1,
     11 	XT_POLICY_MATCH_OUT	= 0x2,
     12 	XT_POLICY_MATCH_NONE	= 0x4,
     13 	XT_POLICY_MATCH_STRICT	= 0x8,
     14 };
     15 
     16 enum xt_policy_modes
     17 {
     18 	XT_POLICY_MODE_TRANSPORT,
     19 	XT_POLICY_MODE_TUNNEL
     20 };
     21 
     22 struct xt_policy_spec
     23 {
     24 	__u8	saddr:1,
     25 			daddr:1,
     26 			proto:1,
     27 			mode:1,
     28 			spi:1,
     29 			reqid:1;
     30 };
     31 
     32 union xt_policy_addr
     33 {
     34 	struct in_addr	a4;
     35 	struct in6_addr	a6;
     36 };
     37 
     38 struct xt_policy_elem
     39 {
     40 	union {
     41 		struct {
     42 			union xt_policy_addr saddr;
     43 			union xt_policy_addr smask;
     44 			union xt_policy_addr daddr;
     45 			union xt_policy_addr dmask;
     46 		};
     47 	};
     48 	__be32			spi;
     49 	__u32		reqid;
     50 	__u8		proto;
     51 	__u8		mode;
     52 
     53 	struct xt_policy_spec	match;
     54 	struct xt_policy_spec	invert;
     55 };
     56 
     57 struct xt_policy_info
     58 {
     59 	struct xt_policy_elem pol[XT_POLICY_MAX_ELEM];
     60 	__u16 flags;
     61 	__u16 len;
     62 };
     63 
     64 #endif /* _XT_POLICY_H */
     65