logo

oasis-root

Compiled tree of Oasis Linux based on own branch at <https://hacktivis.me/git/oasis/> git clone https://anongit.hacktivis.me/git/oasis-root.git

xt_policy.h (1051B)


  1. /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
  2. #ifndef _XT_POLICY_H
  3. #define _XT_POLICY_H
  4. #include <linux/netfilter.h>
  5. #include <linux/types.h>
  6. #include <linux/in.h>
  7. #include <linux/in6.h>
  8. #define XT_POLICY_MAX_ELEM 4
  9. enum xt_policy_flags {
  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. enum xt_policy_modes {
  16. XT_POLICY_MODE_TRANSPORT,
  17. XT_POLICY_MODE_TUNNEL
  18. };
  19. struct xt_policy_spec {
  20. __u8 saddr:1,
  21. daddr:1,
  22. proto:1,
  23. mode:1,
  24. spi:1,
  25. reqid:1;
  26. };
  27. union xt_policy_addr {
  28. struct in_addr a4;
  29. struct in6_addr a6;
  30. };
  31. struct xt_policy_elem {
  32. union {
  33. struct {
  34. union xt_policy_addr saddr;
  35. union xt_policy_addr smask;
  36. union xt_policy_addr daddr;
  37. union xt_policy_addr dmask;
  38. };
  39. };
  40. __be32 spi;
  41. __u32 reqid;
  42. __u8 proto;
  43. __u8 mode;
  44. struct xt_policy_spec match;
  45. struct xt_policy_spec invert;
  46. };
  47. struct xt_policy_info {
  48. struct xt_policy_elem pol[XT_POLICY_MAX_ELEM];
  49. __u16 flags;
  50. __u16 len;
  51. };
  52. #endif /* _XT_POLICY_H */