1e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy#ifndef _XT_POLICY_H 2e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy#define _XT_POLICY_H 3e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy 4350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardt#include <linux/types.h> 5350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardt 6e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy#define XT_POLICY_MAX_ELEM 4 7e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy 8350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardtenum xt_policy_flags { 9e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy XT_POLICY_MATCH_IN = 0x1, 10e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy XT_POLICY_MATCH_OUT = 0x2, 11e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy XT_POLICY_MATCH_NONE = 0x4, 12e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy XT_POLICY_MATCH_STRICT = 0x8, 13e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy}; 14e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy 15350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardtenum xt_policy_modes { 16e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy XT_POLICY_MODE_TRANSPORT, 17e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy XT_POLICY_MODE_TUNNEL 18e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy}; 19e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy 20350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardtstruct xt_policy_spec { 21350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardt __u8 saddr:1, 22e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy daddr:1, 23e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy proto:1, 24e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy mode:1, 25e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy spi:1, 26e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy reqid:1; 27e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy}; 28e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy 29350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardtunion xt_policy_addr { 30e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy struct in_addr a4; 31e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy struct in6_addr a6; 32e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy}; 33e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy 34350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardtstruct xt_policy_elem { 35e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy union { 36e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy struct { 37e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy union xt_policy_addr saddr; 38e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy union xt_policy_addr smask; 39e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy union xt_policy_addr daddr; 40e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy union xt_policy_addr dmask; 41e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy }; 42e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy }; 43e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy __be32 spi; 44350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardt __u32 reqid; 45350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardt __u8 proto; 46350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardt __u8 mode; 47e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy 48e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy struct xt_policy_spec match; 49e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy struct xt_policy_spec invert; 50e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy}; 51e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy 52350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardtstruct xt_policy_info { 53e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy struct xt_policy_elem pol[XT_POLICY_MAX_ELEM]; 54350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardt __u16 flags; 55350661a6eb089f3e54e67e022db9e16ea280499fJan Engelhardt __u16 len; 56e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy}; 57e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy 58e0bba47e550420e371c97425cc6d39909a6e059bPatrick McHardy#endif /* _XT_POLICY_H */ 59