xref: /linux/include/net/gre.h (revision ca55b2fef3a9373fcfc30f82fd26bc7fccbda732)
1 #ifndef __LINUX_GRE_H
2 #define __LINUX_GRE_H
3 
4 #include <linux/skbuff.h>
5 #include <net/ip_tunnels.h>
6 
7 struct gre_base_hdr {
8 	__be16 flags;
9 	__be16 protocol;
10 };
11 #define GRE_HEADER_SECTION 4
12 
13 #define GREPROTO_CISCO		0
14 #define GREPROTO_PPTP		1
15 #define GREPROTO_MAX		2
16 #define GRE_IP_PROTO_MAX	2
17 
18 struct gre_protocol {
19 	int  (*handler)(struct sk_buff *skb);
20 	void (*err_handler)(struct sk_buff *skb, u32 info);
21 };
22 
23 int gre_add_protocol(const struct gre_protocol *proto, u8 version);
24 int gre_del_protocol(const struct gre_protocol *proto, u8 version);
25 
26 struct net_device *gretap_fb_dev_create(struct net *net, const char *name,
27 				       u8 name_assign_type);
28 #endif
29