linux/include/net/gre.h

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __LINUX_GRE_H
#define __LINUX_GRE_H

#include <linux/skbuff.h>
#include <net/ip_tunnels.h>

struct gre_base_hdr {} __packed;

struct gre_full_hdr {} __packed;
#define GRE_HEADER_SECTION

#define GREPROTO_CISCO
#define GREPROTO_PPTP
#define GREPROTO_MAX
#define GRE_IP_PROTO_MAX

struct gre_protocol {};

int gre_add_protocol(const struct gre_protocol *proto, u8 version);
int gre_del_protocol(const struct gre_protocol *proto, u8 version);

struct net_device *gretap_fb_dev_create(struct net *net, const char *name,
				       u8 name_assign_type);
int gre_parse_header(struct sk_buff *skb, struct tnl_ptk_info *tpi,
		     bool *csum_err, __be16 proto, int nhs);

static inline bool netif_is_gretap(const struct net_device *dev)
{}

static inline bool netif_is_ip6gretap(const struct net_device *dev)
{}

static inline int gre_calc_hlen(const unsigned long *o_flags)
{}

static inline void gre_flags_to_tnl_flags(unsigned long *dst, __be16 flags)
{}

static inline __be16 gre_tnl_flags_to_gre_flags(const unsigned long *tflags)
{}

static inline void gre_build_header(struct sk_buff *skb, int hdr_len,
				    const unsigned long *flags, __be16 proto,
				    __be32 key, __be32 seq)
{}

#endif