xref: /linux/include/linux/if_tunnel.h (revision 125a77ed9fbd21d1277f53e9ed6b39ad3d34e613)
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