linux/net/ipv6/xfrm6_tunnel.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Copyright (C)2003,2004 USAGI/WIDE Project
 *
 * Authors	Mitsuru KANDA  <[email protected]>
 *		YOSHIFUJI Hideaki <[email protected]>
 *
 * Based on net/ipv4/xfrm4_tunnel.c
 */
#include <linux/module.h>
#include <linux/xfrm.h>
#include <linux/slab.h>
#include <linux/rculist.h>
#include <net/ip.h>
#include <net/xfrm.h>
#include <net/ipv6.h>
#include <linux/ipv6.h>
#include <linux/icmpv6.h>
#include <linux/mutex.h>
#include <net/netns/generic.h>

#define XFRM6_TUNNEL_SPI_BYADDR_HSIZE
#define XFRM6_TUNNEL_SPI_BYSPI_HSIZE

#define XFRM6_TUNNEL_SPI_MIN
#define XFRM6_TUNNEL_SPI_MAX

struct xfrm6_tunnel_net {};

static unsigned int xfrm6_tunnel_net_id __read_mostly;
static inline struct xfrm6_tunnel_net *xfrm6_tunnel_pernet(struct net *net)
{}

/*
 * xfrm_tunnel_spi things are for allocating unique id ("spi")
 * per xfrm_address_t.
 */
struct xfrm6_tunnel_spi {};

static DEFINE_SPINLOCK(xfrm6_tunnel_spi_lock);

static struct kmem_cache *xfrm6_tunnel_spi_kmem __read_mostly;

static inline unsigned int xfrm6_tunnel_spi_hash_byaddr(const xfrm_address_t *addr)
{}

static inline unsigned int xfrm6_tunnel_spi_hash_byspi(u32 spi)
{}

static struct xfrm6_tunnel_spi *__xfrm6_tunnel_spi_lookup(struct net *net, const xfrm_address_t *saddr)
{}

__be32 xfrm6_tunnel_spi_lookup(struct net *net, const xfrm_address_t *saddr)
{}
EXPORT_SYMBOL();

static int __xfrm6_tunnel_spi_check(struct net *net, u32 spi)
{}

static u32 __xfrm6_tunnel_alloc_spi(struct net *net, xfrm_address_t *saddr)
{}

__be32 xfrm6_tunnel_alloc_spi(struct net *net, xfrm_address_t *saddr)
{}
EXPORT_SYMBOL();

static void x6spi_destroy_rcu(struct rcu_head *head)
{}

static void xfrm6_tunnel_free_spi(struct net *net, xfrm_address_t *saddr)
{}

static int xfrm6_tunnel_output(struct xfrm_state *x, struct sk_buff *skb)
{}

static int xfrm6_tunnel_input(struct xfrm_state *x, struct sk_buff *skb)
{}

static int xfrm6_tunnel_rcv(struct sk_buff *skb)
{}

static int xfrm6_tunnel_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
			    u8 type, u8 code, int offset, __be32 info)
{}

static int xfrm6_tunnel_init_state(struct xfrm_state *x, struct netlink_ext_ack *extack)
{}

static void xfrm6_tunnel_destroy(struct xfrm_state *x)
{}

static const struct xfrm_type xfrm6_tunnel_type =;

static struct xfrm6_tunnel xfrm6_tunnel_handler __read_mostly =;

static struct xfrm6_tunnel xfrm46_tunnel_handler __read_mostly =;

static int __net_init xfrm6_tunnel_net_init(struct net *net)
{}

static void __net_exit xfrm6_tunnel_net_exit(struct net *net)
{}

static struct pernet_operations xfrm6_tunnel_net_ops =;

static int __init xfrm6_tunnel_init(void)
{}

static void __exit xfrm6_tunnel_fini(void)
{}

module_init();
module_exit(xfrm6_tunnel_fini);
MODULE_DESCRIPTION();
MODULE_LICENSE();
MODULE_ALIAS_XFRM_TYPE();