if_tunnel.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #ifndef _IF_TUNNEL_H_
  2. #define _IF_TUNNEL_H_
  3. #include <linux/types.h>
  4. #include <linux/ip.h>
  5. #define SIOCGETTUNNEL (SIOCDEVPRIVATE + 0)
  6. #define SIOCADDTUNNEL (SIOCDEVPRIVATE + 1)
  7. #define SIOCDELTUNNEL (SIOCDEVPRIVATE + 2)
  8. #define SIOCCHGTUNNEL (SIOCDEVPRIVATE + 3)
  9. #define SIOCGETPRL (SIOCDEVPRIVATE + 4)
  10. #define SIOCADDPRL (SIOCDEVPRIVATE + 5)
  11. #define SIOCDELPRL (SIOCDEVPRIVATE + 6)
  12. #define SIOCCHGPRL (SIOCDEVPRIVATE + 7)
  13. #define GRE_CSUM __constant_htons(0x8000)
  14. #define GRE_ROUTING __constant_htons(0x4000)
  15. #define GRE_KEY __constant_htons(0x2000)
  16. #define GRE_SEQ __constant_htons(0x1000)
  17. #define GRE_STRICT __constant_htons(0x0800)
  18. #define GRE_REC __constant_htons(0x0700)
  19. #define GRE_FLAGS __constant_htons(0x00F8)
  20. #define GRE_VERSION __constant_htons(0x0007)
  21. struct ip_tunnel_parm
  22. {
  23. char name[IFNAMSIZ];
  24. int link;
  25. __be16 i_flags;
  26. __be16 o_flags;
  27. __be32 i_key;
  28. __be32 o_key;
  29. struct iphdr iph;
  30. };
  31. /* SIT-mode i_flags */
  32. #define SIT_ISATAP 0x0001
  33. struct ip_tunnel_prl {
  34. __be32 addr;
  35. __u16 flags;
  36. __u16 __reserved;
  37. __u32 datalen;
  38. __u32 __reserved2;
  39. /* data follows */
  40. };
  41. /* PRL flags */
  42. #define PRL_DEFAULT 0x0001
  43. enum
  44. {
  45. IFLA_GRE_UNSPEC,
  46. IFLA_GRE_LINK,
  47. IFLA_GRE_IFLAGS,
  48. IFLA_GRE_OFLAGS,
  49. IFLA_GRE_IKEY,
  50. IFLA_GRE_OKEY,
  51. IFLA_GRE_LOCAL,
  52. IFLA_GRE_REMOTE,
  53. IFLA_GRE_TTL,
  54. IFLA_GRE_TOS,
  55. IFLA_GRE_PMTUDISC,
  56. __IFLA_GRE_MAX,
  57. };
  58. #define IFLA_GRE_MAX (__IFLA_GRE_MAX - 1)
  59. #endif /* _IF_TUNNEL_H_ */