linux/net/ipv6/ah6.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Copyright (C)2002 USAGI/WIDE Project
 *
 * Authors
 *
 *	Mitsuru KANDA @USAGI       : IPv6 Support
 *	Kazunori MIYAZAWA @USAGI   :
 *	Kunihiro Ishiguro <[email protected]>
 *
 *	This file is derived from net/ipv4/ah.c.
 */

#define pr_fmt(fmt)

#include <crypto/hash.h>
#include <crypto/utils.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <net/ip.h>
#include <net/ah.h>
#include <linux/crypto.h>
#include <linux/pfkeyv2.h>
#include <linux/string.h>
#include <linux/scatterlist.h>
#include <net/ip6_route.h>
#include <net/icmp.h>
#include <net/ipv6.h>
#include <net/protocol.h>
#include <net/xfrm.h>

#define IPV6HDR_BASELEN

struct tmp_ext {};

struct ah_skb_cb {};

#define AH_SKB_CB(__skb)

static void *ah_alloc_tmp(struct crypto_ahash *ahash, int nfrags,
			  unsigned int size)
{}

static inline struct tmp_ext *ah_tmp_ext(void *base)
{}

static inline u8 *ah_tmp_auth(u8 *tmp, unsigned int offset)
{}

static inline u8 *ah_tmp_icv(void *tmp, unsigned int offset)
{}

static inline struct ahash_request *ah_tmp_req(struct crypto_ahash *ahash,
					       u8 *icv)
{}

static inline struct scatterlist *ah_req_sg(struct crypto_ahash *ahash,
					     struct ahash_request *req)
{}

static bool zero_out_mutable_opts(struct ipv6_opt_hdr *opthdr)
{}

#if IS_ENABLED(CONFIG_IPV6_MIP6)
/**
 *	ipv6_rearrange_destopt - rearrange IPv6 destination options header
 *	@iph: IPv6 header
 *	@destopt: destionation options header
 */
static void ipv6_rearrange_destopt(struct ipv6hdr *iph, struct ipv6_opt_hdr *destopt)
{}
#else
static void ipv6_rearrange_destopt(struct ipv6hdr *iph, struct ipv6_opt_hdr *destopt) {}
#endif

/**
 *	ipv6_rearrange_rthdr - rearrange IPv6 routing header
 *	@iph: IPv6 header
 *	@rthdr: routing header
 *
 *	Rearrange the destination address in @iph and the addresses in @rthdr
 *	so that they appear in the order they will at the final destination.
 *	See Appendix A2 of RFC 2402 for details.
 */
static void ipv6_rearrange_rthdr(struct ipv6hdr *iph, struct ipv6_rt_hdr *rthdr)
{}

static int ipv6_clear_mutable_options(struct ipv6hdr *iph, int len, int dir)
{}

static void ah6_output_done(void *data, int err)
{}

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

static void ah6_input_done(void *data, int err)
{}



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

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

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

static void ah6_destroy(struct xfrm_state *x)
{}

static int ah6_rcv_cb(struct sk_buff *skb, int err)
{}

static const struct xfrm_type ah6_type =;

static struct xfrm6_protocol ah6_protocol =;

static int __init ah6_init(void)
{}

static void __exit ah6_fini(void)
{}

module_init();
module_exit(ah6_fini);

MODULE_DESCRIPTION();
MODULE_LICENSE();
MODULE_ALIAS_XFRM_TYPE();