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) 181da177e4SLinus Torvalds 19*f3a7c66bSHarvey Harrison #define GRE_CSUM __cpu_to_be16(0x8000) 20*f3a7c66bSHarvey Harrison #define GRE_ROUTING __cpu_to_be16(0x4000) 21*f3a7c66bSHarvey Harrison #define GRE_KEY __cpu_to_be16(0x2000) 22*f3a7c66bSHarvey Harrison #define GRE_SEQ __cpu_to_be16(0x1000) 23*f3a7c66bSHarvey Harrison #define GRE_STRICT __cpu_to_be16(0x0800) 24*f3a7c66bSHarvey Harrison #define GRE_REC __cpu_to_be16(0x0700) 25*f3a7c66bSHarvey Harrison #define GRE_FLAGS __cpu_to_be16(0x00F8) 26*f3a7c66bSHarvey Harrison #define GRE_VERSION __cpu_to_be16(0x0007) 271da177e4SLinus Torvalds 281da177e4SLinus Torvalds struct ip_tunnel_parm 291da177e4SLinus Torvalds { 301da177e4SLinus Torvalds char name[IFNAMSIZ]; 311da177e4SLinus Torvalds int link; 32d5a0a1e3SAl Viro __be16 i_flags; 33d5a0a1e3SAl Viro __be16 o_flags; 34d5a0a1e3SAl Viro __be32 i_key; 35d5a0a1e3SAl Viro __be32 o_key; 361da177e4SLinus Torvalds struct iphdr iph; 371da177e4SLinus Torvalds }; 381da177e4SLinus Torvalds 39fadf6bf0STemplin, Fred L /* SIT-mode i_flags */ 40fadf6bf0STemplin, Fred L #define SIT_ISATAP 0x0001 41fadf6bf0STemplin, Fred L 42fadf6bf0STemplin, Fred L struct ip_tunnel_prl { 43fadf6bf0STemplin, Fred L __be32 addr; 44fadf6bf0STemplin, Fred L __u16 flags; 45fadf6bf0STemplin, Fred L __u16 __reserved; 46300aaeeaSYOSHIFUJI Hideaki __u32 datalen; 47300aaeeaSYOSHIFUJI Hideaki __u32 __reserved2; 482b4743bdSYOSHIFUJI Hideaki /* data follows */ 49fadf6bf0STemplin, Fred L }; 50fadf6bf0STemplin, Fred L 51fadf6bf0STemplin, Fred L /* PRL flags */ 52fadf6bf0STemplin, Fred L #define PRL_DEFAULT 0x0001 53fadf6bf0STemplin, Fred L 54c19e654dSHerbert Xu enum 55c19e654dSHerbert Xu { 56c19e654dSHerbert Xu IFLA_GRE_UNSPEC, 57c19e654dSHerbert Xu IFLA_GRE_LINK, 58c19e654dSHerbert Xu IFLA_GRE_IFLAGS, 59c19e654dSHerbert Xu IFLA_GRE_OFLAGS, 60c19e654dSHerbert Xu IFLA_GRE_IKEY, 61c19e654dSHerbert Xu IFLA_GRE_OKEY, 62c19e654dSHerbert Xu IFLA_GRE_LOCAL, 63c19e654dSHerbert Xu IFLA_GRE_REMOTE, 64c19e654dSHerbert Xu IFLA_GRE_TTL, 65c19e654dSHerbert Xu IFLA_GRE_TOS, 66c19e654dSHerbert Xu IFLA_GRE_PMTUDISC, 67c19e654dSHerbert Xu __IFLA_GRE_MAX, 68c19e654dSHerbert Xu }; 69c19e654dSHerbert Xu 70c19e654dSHerbert Xu #define IFLA_GRE_MAX (__IFLA_GRE_MAX - 1) 71c19e654dSHerbert Xu 721da177e4SLinus Torvalds #endif /* _IF_TUNNEL_H_ */ 73