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