#ifndef _PFCP_H_
#define _PFCP_H_
#include <uapi/linux/if_ether.h>
#include <net/dst_metadata.h>
#include <linux/netdevice.h>
#include <uapi/linux/ipv6.h>
#include <net/udp_tunnel.h>
#include <uapi/linux/udp.h>
#include <uapi/linux/ip.h>
#include <linux/string.h>
#include <linux/types.h>
#include <linux/bits.h>
#define PFCP_PORT …
struct pfcphdr { … };
#define PFCP_SEID_FLAG …
#define PFCP_MP_FLAG …
#define PFCP_VERSION_MASK …
#define PFCP_HLEN …
struct pfcphdr_node { … };
struct pfcphdr_session { … };
struct pfcp_metadata { … } __packed;
enum { … };
#define PFCP_HEADROOM …
#define PFCP6_HEADROOM …
static inline struct pfcphdr *pfcp_hdr(struct sk_buff *skb)
{ … }
static inline struct pfcphdr_node *pfcp_hdr_node(struct sk_buff *skb)
{ … }
static inline struct pfcphdr_session *pfcp_hdr_session(struct sk_buff *skb)
{ … }
static inline bool netif_is_pfcp(const struct net_device *dev)
{ … }
#endif