#ifndef _NET_AMT_H_
#define _NET_AMT_H_
#include <linux/siphash.h>
#include <linux/jhash.h>
#include <linux/netdevice.h>
#include <net/gro_cells.h>
#include <net/rtnetlink.h>
enum amt_msg_type { … };
#define AMT_MSG_MAX …
enum amt_ops { … };
#define AMT_OPS_MAX …
enum amt_filter { … };
#define AMT_FILTER_MAX …
enum amt_act { … };
#define AMT_ACT_MAX …
enum amt_status { … };
#define AMT_STATUS_MAX …
enum amt_event { … };
struct amt_header { … } __packed;
struct amt_header_discovery { … } __packed;
struct amt_header_advertisement { … } __packed;
struct amt_header_request { … } __packed;
struct amt_header_membership_query { … } __packed;
struct amt_header_membership_update { … } __packed;
struct amt_header_mcast_data { … } __packed;
struct amt_headers { … } __packed;
struct amt_gw_headers { … } __packed;
struct amt_relay_headers { … } __packed;
struct amt_skb_cb { … };
struct amt_tunnel_list { … };
amt_addr;
enum amt_source_status { … };
struct amt_source_node { … };
struct amt_group_node { … };
#define AMT_MAX_EVENTS …
struct amt_events { … };
struct amt_dev { … };
#define AMT_TOS …
#define AMT_IPHDR_OPTS …
#define AMT_IP6HDR_OPTS …
#define AMT_GC_INTERVAL …
#define AMT_MAX_GROUP …
#define AMT_MAX_SOURCE …
#define AMT_HSIZE_SHIFT …
#define AMT_HSIZE …
#define AMT_DISCOVERY_TIMEOUT …
#define AMT_INIT_REQ_TIMEOUT …
#define AMT_INIT_QUERY_INTERVAL …
#define AMT_MAX_REQ_TIMEOUT …
#define AMT_MAX_REQ_COUNT …
#define AMT_SECRET_TIMEOUT …
#define IANA_AMT_UDP_PORT …
#define AMT_MAX_TUNNELS …
#define AMT_MAX_REQS …
#define AMT_GW_HLEN …
#define AMT_RELAY_HLEN …
static inline bool netif_is_amt(const struct net_device *dev)
{ … }
static inline u64 amt_gmi(const struct amt_dev *amt)
{ … }
#endif