11da177e4SLinus Torvalds #ifndef _IF_TUNNEL_H_ 21da177e4SLinus Torvalds #define _IF_TUNNEL_H_ 31da177e4SLinus Torvalds 46fd8bb88SMasahide NAKAMURA #include <linux/types.h> 50afd4a21SDavid S. Miller 60afd4a21SDavid S. Miller #ifdef __KERNEL__ 7c19e654dSHerbert Xu #include <linux/ip.h> 80afd4a21SDavid S. Miller #endif 96fd8bb88SMasahide NAKAMURA 101da177e4SLinus Torvalds #define SIOCGETTUNNEL (SIOCDEVPRIVATE + 0) 111da177e4SLinus Torvalds #define SIOCADDTUNNEL (SIOCDEVPRIVATE + 1) 121da177e4SLinus Torvalds #define SIOCDELTUNNEL (SIOCDEVPRIVATE + 2) 131da177e4SLinus Torvalds #define SIOCCHGTUNNEL (SIOCDEVPRIVATE + 3) 14300aaeeaSYOSHIFUJI Hideaki #define SIOCGETPRL (SIOCDEVPRIVATE + 4) 15fadf6bf0STemplin, Fred L #define SIOCADDPRL (SIOCDEVPRIVATE + 5) 16fadf6bf0STemplin, Fred L #define SIOCDELPRL (SIOCDEVPRIVATE + 6) 17fadf6bf0STemplin, Fred L #define SIOCCHGPRL (SIOCDEVPRIVATE + 7) 18*fa857afcSYOSHIFUJI Hideaki / 吉藤英明 #define SIOCGET6RD (SIOCDEVPRIVATE + 8) 19*fa857afcSYOSHIFUJI Hideaki / 吉藤英明 #define SIOCADD6RD (SIOCDEVPRIVATE + 9) 20*fa857afcSYOSHIFUJI Hideaki / 吉藤英明 #define SIOCDEL6RD (SIOCDEVPRIVATE + 10) 21*fa857afcSYOSHIFUJI Hideaki / 吉藤英明 #define SIOCCHG6RD (SIOCDEVPRIVATE + 11) 221da177e4SLinus Torvalds 23f3a7c66bSHarvey Harrison #define GRE_CSUM __cpu_to_be16(0x8000) 24f3a7c66bSHarvey Harrison #define GRE_ROUTING __cpu_to_be16(0x4000) 25f3a7c66bSHarvey Harrison #define GRE_KEY __cpu_to_be16(0x2000) 26f3a7c66bSHarvey Harrison #define GRE_SEQ __cpu_to_be16(0x1000) 27f3a7c66bSHarvey Harrison #define GRE_STRICT __cpu_to_be16(0x0800) 28f3a7c66bSHarvey Harrison #define GRE_REC __cpu_to_be16(0x0700) 29f3a7c66bSHarvey Harrison #define GRE_FLAGS __cpu_to_be16(0x00F8) 30f3a7c66bSHarvey Harrison #define GRE_VERSION __cpu_to_be16(0x0007) 311da177e4SLinus Torvalds 321da177e4SLinus Torvalds struct ip_tunnel_parm 331da177e4SLinus Torvalds { 341da177e4SLinus Torvalds char name[IFNAMSIZ]; 351da177e4SLinus Torvalds int link; 36d5a0a1e3SAl Viro __be16 i_flags; 37d5a0a1e3SAl Viro __be16 o_flags; 38d5a0a1e3SAl Viro __be32 i_key; 39d5a0a1e3SAl Viro __be32 o_key; 401da177e4SLinus Torvalds struct iphdr iph; 411da177e4SLinus Torvalds }; 421da177e4SLinus Torvalds 43fadf6bf0STemplin, Fred L /* SIT-mode i_flags */ 44fadf6bf0STemplin, Fred L #define SIT_ISATAP 0x0001 45fadf6bf0STemplin, Fred L 46fadf6bf0STemplin, Fred L struct ip_tunnel_prl { 47fadf6bf0STemplin, Fred L __be32 addr; 48fadf6bf0STemplin, Fred L __u16 flags; 49fadf6bf0STemplin, Fred L __u16 __reserved; 50300aaeeaSYOSHIFUJI Hideaki __u32 datalen; 51d1f8297aSSascha Hlusiak __u32 __reserved2; 522b4743bdSYOSHIFUJI Hideaki /* data follows */ 53fadf6bf0STemplin, Fred L }; 54fadf6bf0STemplin, Fred L 55fadf6bf0STemplin, Fred L /* PRL flags */ 56fadf6bf0STemplin, Fred L #define PRL_DEFAULT 0x0001 57fadf6bf0STemplin, Fred L 58*fa857afcSYOSHIFUJI Hideaki / 吉藤英明 struct ip_tunnel_6rd { 59*fa857afcSYOSHIFUJI Hideaki / 吉藤英明 struct in6_addr prefix; 60*fa857afcSYOSHIFUJI Hideaki / 吉藤英明 __be32 relay_prefix; 61*fa857afcSYOSHIFUJI Hideaki / 吉藤英明 __u16 prefixlen; 62*fa857afcSYOSHIFUJI Hideaki / 吉藤英明 __u16 relay_prefixlen; 63*fa857afcSYOSHIFUJI Hideaki / 吉藤英明 }; 64*fa857afcSYOSHIFUJI Hideaki / 吉藤英明 65c19e654dSHerbert Xu enum 66c19e654dSHerbert Xu { 67c19e654dSHerbert Xu IFLA_GRE_UNSPEC, 68c19e654dSHerbert Xu IFLA_GRE_LINK, 69c19e654dSHerbert Xu IFLA_GRE_IFLAGS, 70c19e654dSHerbert Xu IFLA_GRE_OFLAGS, 71c19e654dSHerbert Xu IFLA_GRE_IKEY, 72c19e654dSHerbert Xu IFLA_GRE_OKEY, 73c19e654dSHerbert Xu IFLA_GRE_LOCAL, 74c19e654dSHerbert Xu IFLA_GRE_REMOTE, 75c19e654dSHerbert Xu IFLA_GRE_TTL, 76c19e654dSHerbert Xu IFLA_GRE_TOS, 77c19e654dSHerbert Xu IFLA_GRE_PMTUDISC, 78c19e654dSHerbert Xu __IFLA_GRE_MAX, 79c19e654dSHerbert Xu }; 80c19e654dSHerbert Xu 81c19e654dSHerbert Xu #define IFLA_GRE_MAX (__IFLA_GRE_MAX - 1) 82c19e654dSHerbert Xu 831da177e4SLinus Torvalds #endif /* _IF_TUNNEL_H_ */ 84