linux/include/net/amt.h

/* SPDX-License-Identifier: GPL-2.0+ */
/*
 * Copyright (c) 2021 Taehee Yoo <[email protected]>
 */
#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

/* Gateway events only */
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;

/* RFC 3810
 *
 * When the router is in EXCLUDE mode, the router state is represented
 * by the notation EXCLUDE (X,Y), where X is called the "Requested List"
 * and Y is called the "Exclude List".  All sources, except those from
 * the Exclude List, will be forwarded by the router
 */
enum amt_source_status {};

/* protected by gnode->lock */
struct amt_source_node {};

/* Protected by amt_tunnel_list->lock */
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 /* _NET_AMT_H_ */