linux/net/ipv6/xfrm6_protocol.c

// SPDX-License-Identifier: GPL-2.0-or-later
/* xfrm6_protocol.c - Generic xfrm protocol multiplexer for ipv6.
 *
 * Copyright (C) 2013 secunet Security Networks AG
 *
 * Author:
 * Steffen Klassert <[email protected]>
 *
 * Based on:
 * net/ipv4/xfrm4_protocol.c
 */

#include <linux/init.h>
#include <linux/mutex.h>
#include <linux/skbuff.h>
#include <linux/icmpv6.h>
#include <net/ip6_route.h>
#include <net/ipv6.h>
#include <net/protocol.h>
#include <net/xfrm.h>

static struct xfrm6_protocol __rcu *esp6_handlers __read_mostly;
static struct xfrm6_protocol __rcu *ah6_handlers __read_mostly;
static struct xfrm6_protocol __rcu *ipcomp6_handlers __read_mostly;
static DEFINE_MUTEX(xfrm6_protocol_mutex);

static inline struct xfrm6_protocol __rcu **proto_handlers(u8 protocol)
{}

#define for_each_protocol_rcu(head, handler)	\

static int xfrm6_rcv_cb(struct sk_buff *skb, u8 protocol, int err)
{}

int xfrm6_rcv_encap(struct sk_buff *skb, int nexthdr, __be32 spi,
		    int encap_type)
{}
EXPORT_SYMBOL();

static int xfrm6_esp_rcv(struct sk_buff *skb)
{}

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

static int xfrm6_ah_rcv(struct sk_buff *skb)
{}

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

static int xfrm6_ipcomp_rcv(struct sk_buff *skb)
{}

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

static const struct inet6_protocol esp6_protocol =;

static const struct inet6_protocol ah6_protocol =;

static const struct inet6_protocol ipcomp6_protocol =;

static const struct xfrm_input_afinfo xfrm6_input_afinfo =;

static inline const struct inet6_protocol *netproto(unsigned char protocol)
{}

int xfrm6_protocol_register(struct xfrm6_protocol *handler,
			    unsigned char protocol)
{}
EXPORT_SYMBOL();

int xfrm6_protocol_deregister(struct xfrm6_protocol *handler,
			      unsigned char protocol)
{}
EXPORT_SYMBOL();

int __init xfrm6_protocol_init(void)
{}

void xfrm6_protocol_fini(void)
{}