diff options
| author | Philippe Guibert <philippe.guibert@6wind.com> | 2019-12-19 18:33:56 +0100 | 
|---|---|---|
| committer | Philippe Guibert <philippe.guibert@6wind.com> | 2021-04-30 10:33:15 +0200 | 
| commit | 077c07cc58be1fbbe28a2df71cd884af87b121a7 (patch) | |
| tree | 71ca990630d121074fa3ae61acf0df0ea75d56c6 /include/linux | |
| parent | c962ab93a8dd2bb8255c2d5b70de77cb5fec96d4 (diff) | |
zebra: storage of gre information in zebra layer
zebra is able to get information about gre tunnels.
zebra_gre file is created to handle hooks, but is not yet used.
also, debug zebra gre command is done to add gre traces.
A zebra_gre file is used for complementary actions that may be needed.
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/if_tunnel.h | 71 | 
1 files changed, 71 insertions, 0 deletions
diff --git a/include/linux/if_tunnel.h b/include/linux/if_tunnel.h new file mode 100644 index 0000000000..982a1b60d0 --- /dev/null +++ b/include/linux/if_tunnel.h @@ -0,0 +1,71 @@ +#ifndef _IF_TUNNEL_H_ +#define _IF_TUNNEL_H_ + +#include <linux/types.h> +#include <linux/if.h> +#include <linux/ip.h> +#include <linux/in6.h> +#include <asm/byteorder.h> + + +#define SIOCGETTUNNEL   (SIOCDEVPRIVATE + 0) +#define SIOCADDTUNNEL   (SIOCDEVPRIVATE + 1) +#define SIOCDELTUNNEL   (SIOCDEVPRIVATE + 2) +#define SIOCCHGTUNNEL   (SIOCDEVPRIVATE + 3) +#define SIOCGETPRL      (SIOCDEVPRIVATE + 4) +#define SIOCADDPRL      (SIOCDEVPRIVATE + 5) +#define SIOCDELPRL      (SIOCDEVPRIVATE + 6) +#define SIOCCHGPRL      (SIOCDEVPRIVATE + 7) + +#define GRE_CSUM	__cpu_to_be16(0x8000) +#define GRE_ROUTING	__cpu_to_be16(0x4000) +#define GRE_KEY		__cpu_to_be16(0x2000) +#define GRE_SEQ		__cpu_to_be16(0x1000) +#define GRE_STRICT	__cpu_to_be16(0x0800) +#define GRE_REC		__cpu_to_be16(0x0700) +#define GRE_FLAGS	__cpu_to_be16(0x00F8) +#define GRE_VERSION	__cpu_to_be16(0x0007) + +struct ip_tunnel_parm { +	char			name[IFNAMSIZ]; +	int			link; +	__be16			i_flags; +	__be16			o_flags; +	__be32			i_key; +	__be32			o_key; +	struct iphdr		iph; +}; + +/* SIT-mode i_flags */ +#define	SIT_ISATAP	0x0001 + +struct ip_tunnel_prl { +	__be32			addr; +	__u16			flags; +	__u16			__reserved; +	__u32			datalen; +	__u32			__reserved2; +	/* data follows */ +}; + +/* PRL flags */ +#define	PRL_DEFAULT		0x0001 + +enum { +	IFLA_GRE_UNSPEC, +	IFLA_GRE_LINK, +	IFLA_GRE_IFLAGS, +	IFLA_GRE_OFLAGS, +	IFLA_GRE_IKEY, +	IFLA_GRE_OKEY, +	IFLA_GRE_LOCAL, +	IFLA_GRE_REMOTE, +	IFLA_GRE_TTL, +	IFLA_GRE_TOS, +	IFLA_GRE_PMTUDISC, +	__IFLA_GRE_MAX, +}; + +#define IFLA_GRE_MAX	(__IFLA_GRE_MAX - 1) + +#endif /* _IF_TUNNEL_H_ */  | 
