linux/net/ipv4/xfrm4_protocol.c

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

#include <linux/init.h>
#include <linux/mutex.h>
#include <linux/skbuff.h>
#include <net/icmp.h>
#include <net/ip.h>
#include <net/protocol.h>
#include <net/xfrm.h>

static struct xfrm4_protocol __rcu *esp4_handlers __read_mostly;
static struct xfrm4_protocol __rcu *ah4_handlers __read_mostly;
static struct xfrm4_protocol __rcu *ipcomp4_handlers __read_mostly;
static DEFINE_MUTEX(xfrm4_protocol_mutex);

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

#define for_each_protocol_rcu(head, handler)	\

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

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

static int xfrm4_esp_rcv(struct sk_buff *skb)
{}

static int xfrm4_esp_err(struct sk_buff *skb, u32 info)
{}

static int xfrm4_ah_rcv(struct sk_buff *skb)
{}

static int xfrm4_ah_err(struct sk_buff *skb, u32 info)
{}

static int xfrm4_ipcomp_rcv(struct sk_buff *skb)
{}

static int xfrm4_ipcomp_err(struct sk_buff *skb, u32 info)
{}

static const struct net_protocol esp4_protocol =;

static const struct net_protocol ah4_protocol =;

static const struct net_protocol ipcomp4_protocol =;

static const struct xfrm_input_afinfo xfrm4_input_afinfo =;

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

int xfrm4_protocol_register(struct xfrm4_protocol *handler,
			    unsigned char protocol)
{}
EXPORT_SYMBOL();

int xfrm4_protocol_deregister(struct xfrm4_protocol *handler,
			      unsigned char protocol)
{}
EXPORT_SYMBOL();

void __init xfrm4_protocol_init(void)
{}